<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Security on kenji.blog</title><link>http://kenji.blog/id/categories/security/</link><description>Recent content in Security on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>id</language><copyright>kenjinote</copyright><lastBuildDate>Fri, 11 Sep 2026 21:00:00 +0900</lastBuildDate><atom:link href="http://kenji.blog/id/categories/security/index.xml" rel="self" type="application/rss+xml"/><item><title>Intuisi Matematis Kriptografi Berbasis Kisi (Lattice-based cryptography)</title><link>http://kenji.blog/id/p/lattice-based-cryptography-math-intuition/</link><pubDate>Fri, 11 Sep 2026 21:00:00 +0900</pubDate><guid>http://kenji.blog/id/p/lattice-based-cryptography-math-intuition/</guid><description>&lt;img src="http://kenji.blog/p/lattice-based-cryptography-math-intuition/img/eyecatch.jpg" alt="Featured image of post Intuisi Matematis Kriptografi Berbasis Kisi (Lattice-based cryptography)" />&lt;h1 id="1-pendahuluan-fajar-kriptografi-pasca-kuantum-pqc-dan-bangkitnya-kriptografi-berbasis-kisi">1. Pendahuluan: Fajar Kriptografi Pasca-Kuantum (PQC) dan Bangkitnya Kriptografi Berbasis Kisi
&lt;/h1>&lt;p>Infrastruktur digital masyarakat modern saat ini ditopang oleh teknologi kriptografi kunci publik seperti kriptografi RSA dan kriptografi kurva eliptik (ECC). Metode kriptografi ini mendasarkan keamanannya pada kesulitan matematis seperti &amp;ldquo;masalah faktorisasi bilangan bulat&amp;rdquo; dan &amp;ldquo;masalah logaritma diskrit&amp;rdquo;, yang diyakini tidak dapat dipecahkan secara efisien (membutuhkan waktu eksponensial) oleh komputer klasik konvensional.&lt;/p>
&lt;p>Namun, &amp;ldquo;Algoritma Shor&amp;rdquo; yang diterbitkan oleh Peter Shor pada tahun 1994, mengirimkan gelombang kejut ke dunia kriptografi. Algoritma ini secara matematis membuktikan bahwa ketika komputer kuantum skala besar terwujud, komputer tersebut akan dapat menyelesaikan masalah faktorisasi bilangan bulat dan masalah logaritma diskrit dalam waktu polinomial. Ini berarti bahwa kriptografi kunci publik yang digunakan secara luas saat ini akan dapat dipecahkan sepenuhnya di masa depan.&lt;/p>
&lt;p>Untuk melawan &amp;ldquo;Ancaman Kuantum (Quantum Threat)&amp;rdquo; ini, penelitian tentang metode kriptografi baru yang sulit dipecahkan bahkan menggunakan komputer kuantum telah menjadi kebutuhan mendesak. Bidang ini disebut &amp;ldquo;Kriptografi Pasca-Kuantum (Post-Quantum Cryptography: PQC)&amp;rdquo;.&lt;/p>
&lt;p>Ada beberapa kandidat kuat untuk PQC. Kriptografi berbasis hash, kriptografi berbasis kode, kriptografi polinomial multivariat, kriptografi isogeni, dan lain-lain dapat disebutkan, tetapi di antara semuanya, yang paling menarik perhatian saat ini dan menjadi pusat proses standardisasi PQC oleh NIST (Institut Standar dan Teknologi Nasional AS) adalah &amp;ldquo;Kriptografi berbasis kisi (Lattice-based cryptography)&amp;rdquo;. Dibandingkan dengan metode lain, kriptografi berbasis kisi memiliki fitur luar biasa bahwa kecepatan pemrosesan enkripsi dan dekripsi sangat cepat, dan juga memiliki bukti keamanan yang sangat kuat dalam teori kriptografi, yaitu reduksi dari &amp;ldquo;kompleksitas kasus terburuk (Worst-case complexity)&amp;rdquo; ke &amp;ldquo;kompleksitas kasus rata-rata (Average-case complexity)&amp;rdquo;.&lt;/p>
&lt;p>Dalam artikel ini, kita akan memulai dari definisi matematis &amp;ldquo;Kisi (Lattice)&amp;rdquo; yang menjadi dasar kriptografi berbasis kisi ini, dan membahas secara mendalam tentang masalah-masalah sulit di atas kisi seperti SVP (Masalah Vektor Terpendek) dan CVP (Masalah Vektor Terdekat), serta &amp;ldquo;Masalah LWE (Learning With Errors)&amp;rdquo; yang dapat dikatakan sebagai jantung dari kriptografi berbasis kisi modern, disertai dengan rumus, intuisi geometris, dan contoh numerik konkret.&lt;/p>
&lt;h1 id="2-definisi-matematis-dan-intuisi-geometris-dari-kisi-lattice">2. Definisi Matematis dan Intuisi Geometris dari Kisi (Lattice)
&lt;/h1>&lt;h2 id="21-ruang-vektor-dan-kisi">2.1 Ruang Vektor dan Kisi
&lt;/h2>&lt;p>Dalam matematika, &amp;ldquo;Kisi (Lattice)&amp;rdquo; adalah himpunan titik-titik diskrit yang tersusun secara teratur dalam ruang vektor real berdimensi-$n$ $\mathbb{R}^n$. Ini mirip dengan Ruang Vektor (Vector Space) yang dipelajari dalam aljabar linear, tetapi ada perbedaan krusial. Sementara ruang vektor adalah ruang kontinu yang direpresentasikan oleh kombinasi linear dari vektor-vektor basis dengan &amp;ldquo;koefisien bilangan real&amp;rdquo;, kisi adalah ruang diskrit yang direpresentasikan oleh kombinasi linear dari vektor-vektor basis dengan &amp;ldquo;koefisien bilangan bulat&amp;rdquo;.&lt;/p>
&lt;p>Mari kita berikan definisi matematis yang ketat. Pertimbangkan $n$ buah ($n \le m$) vektor linear independen $\mathbf{b}_1, \mathbf{b}_2, \dots, \mathbf{b}_n$ dalam ruang vektor real berdimensi-$m$ $\mathbb{R}^m$. Misalkan matriks yang memiliki vektor-vektor ini sebagai vektor kolom adalah $B = [\mathbf{b}_1, \mathbf{b}_2, \dots, \mathbf{b}_n] \in \mathbb{R}^{m \times n}$. Kita menyebut $B$ ini sebagai &amp;ldquo;Basis&amp;rdquo; dari kisi.&lt;/p>
&lt;p>Kisi $\mathcal{L}(B)$ yang dihasilkan oleh basis $B$ ini didefinisikan sebagai berikut:&lt;/p>
$$
\mathcal{L}(B) = \left\{ \sum_{i=1}^{n} x_i \mathbf{b}_i \mathrel{\bigg|} x_i \in \mathbb{Z} \right\} = \{ B \mathbf{x} \mid \mathbf{x} \in \mathbb{Z}^n \}
$$
&lt;p>Yang penting di sini adalah bahwa koefisien $x_i$ tidak dibatasi pada bilangan real $\mathbb{R}$, melainkan pada bilangan bulat $\mathbb{Z}$. Dengan ini, alih-alih titik kontinu tak terhingga yang ada di dalam ruang, terbentuklah &amp;ldquo;himpunan titik-titik diskrit&amp;rdquo; yang menyerupai persimpangan jaring yang disusun pada interval yang sama.&lt;/p>
&lt;h2 id="22-citra-geometris">2.2 Citra Geometris
&lt;/h2>&lt;p>Mari kita pertimbangkan contoh bidang 2 dimensi $\mathbb{R}^2$. Jika kita memilih $\mathbf{b}_1 = \begin{pmatrix} 1 \\ 0 \end{pmatrix}$ dan $\mathbf{b}_2 = \begin{pmatrix} 0 \\ 1 \end{pmatrix}$ sebagai vektor basis, kisi yang dihasilkan oleh keduanya akan menjadi himpunan semua koordinat bilangan bulat $(x, y) \in \mathbb{Z}^2$ pada bidang koordinat. Ini adalah &amp;ldquo;kisi persegi&amp;rdquo; yang paling sederhana.&lt;/p>
&lt;p>Namun, kisi tidak selalu ortogonal. Misalnya, jika kita mempertimbangkan basis $\mathbf{b}_1 = \begin{pmatrix} 2 \\ 1 \end{pmatrix}$ dan $\mathbf{b}_2 = \begin{pmatrix} 1 \\ 3 \end{pmatrix}$, titik-titik yang dihasilkan akan terlihat seperti persimpangan jaring yang miring.&lt;/p>
&lt;h2 id="23-ketidakunikan-basis-dan-transformasi-unimodular">2.3 Ketidakunikan Basis dan Transformasi Unimodular
&lt;/h2>&lt;p>Terdapat sifat penting yang berkaitan dengan akar keamanan kriptografi berbasis kisi. Yaitu, &amp;ldquo;ada jumlah tak terhingga basis yang menghasilkan kisi yang sama&amp;rdquo;.&lt;/p>
&lt;p>Sebagai contoh, kisi $\mathbb{Z}^2$ yang dihasilkan oleh basis $\mathbf{b}_1 = (1, 0)^T, \mathbf{b}_2 = (0, 1)^T$ sebelumnya akan menghasilkan kisi $\mathbb{Z}^2$ yang sama persis bahkan jika kita menggunakan basis $\mathbf{b}'_1 = (1, 1)^T, \mathbf{b}'_2 = (2, 3)^T$.&lt;/p>
&lt;p>Syarat perlu dan cukup agar suatu basis $B$ dan basis lain $B'$ menghasilkan kisi yang sama adalah adanya suatu matriks elemen bilangan bulat $U \in \mathbb{Z}^{n \times n}$, dengan determinan $\det(U) = \pm 1$, sehingga dapat direpresentasikan sebagai
&lt;/p>
$$ B' = B U $$
&lt;p>
Matriks $U$ semacam itu disebut &amp;ldquo;Matriks unimodular (Unimodular matrix)&amp;rdquo;.&lt;/p>
&lt;p>Ide dasar dalam penerapannya pada kriptografi adalah menggunakan &amp;ldquo;basis yang baik (basis yang mendekati ortogonal dan terdiri dari vektor-vektor pendek)&amp;rdquo; sebagai kunci privat, dan menggunakan &amp;ldquo;basis yang buruk (basis yang sangat miring satu sama lain dan terdiri dari vektor-vektor yang sangat panjang)&amp;rdquo; sebagai kunci publik. Mencari basis yang baik dari basis yang buruk melalui perhitungan menjadi sangat sulit ketika dimensinya tinggi. Inilah intuisi dasar dari kriptografi berbasis kisi.&lt;/p>
&lt;h1 id="3-masalah-komputasi-yang-sulit-pada-kisi">3. Masalah Komputasi yang Sulit pada Kisi
&lt;/h1>&lt;p>Keamanan kriptografi berbasis kisi bergantung pada kesulitan memecahkan masalah matematis tertentu pada kisi. Di sini, kita akan memperkenalkan dua masalah yang paling mendasar dan terkenal.&lt;/p>
&lt;h2 id="31-masalah-vektor-terpendek-shortest-vector-problem-svp">3.1 Masalah Vektor Terpendek (Shortest Vector Problem: SVP)
&lt;/h2>&lt;p>SVP adalah masalah yang paling klasik dan terkenal dalam teori kisi.&lt;/p>
&lt;p>&lt;strong>Definisi (SVP):&lt;/strong>
Diberikan sembarang basis kisi $B$, temukan vektor $\mathbf{v}$ dengan norma Euclidean (panjang) terkecil di antara vektor-vektor bukan nol yang termasuk dalam kisi $\mathcal{L}(B)$ tersebut.&lt;/p>
&lt;p>Dinyatakan dalam rumus, ini adalah masalah mencari $\mathbf{v}$ sehingga $\min_{\mathbf{v} \in \mathcal{L}(B) \setminus \{\mathbf{0}\}} \| \mathbf{v} \|$. Panjang minimum ini ditulis sebagai $\lambda_1(\mathcal{L})$ dan disebut &amp;ldquo;Minimum berurutan pertama (First successive minimum) dari kisi&amp;rdquo;.&lt;/p>
&lt;p>Dalam dimensi rendah seperti 2 atau 3 dimensi, jika Anda menggambar sebuah gambar, Anda dapat melihat dan menemukan vektor terpendek dengan mata. Atau, Anda dapat menyelesaikannya secara efisien menggunakan algoritma reduksi kisi Gauss. Namun, ketika dimensi $n$ menjadi dimensi tinggi seperti ratusan hingga ribuan, diketahui bahwa memecahkan SVP secara eksak adalah NP-hard.&lt;/p>
&lt;p>Dalam kriptografi dunia nyata, alih-alih vektor terpendek eksak, SVP perkiraan ($\gamma$-SVP) yang menemukan &amp;ldquo;vektor yang secara perkiraan pendek&amp;rdquo; digunakan. Jika faktor perkiraan $\gamma$ berukuran polinomial, masalah ini masih dianggap sangat sulit.&lt;/p>
&lt;h2 id="32-masalah-vektor-terdekat-closest-vector-problem-cvp">3.2 Masalah Vektor Terdekat (Closest Vector Problem: CVP)
&lt;/h2>&lt;p>CVP juga merupakan masalah yang sangat penting dalam kriptografi berbasis kisi.&lt;/p>
&lt;p>&lt;strong>Definisi (CVP):&lt;/strong>
Diberikan sembarang basis kisi $B$, dan sembarang vektor target $\mathbf{t} \in \mathbb{R}^m$ di dalam ruang (tidak harus titik kisi), temukan titik kisi $\mathbf{v} \in \mathcal{L}(B)$ di antara titik-titik kisi yang paling dekat dengan $\mathbf{t}$.&lt;/p>
&lt;p>Dinyatakan dalam rumus, ini adalah masalah mencari titik kisi $\mathbf{v}$ sehingga $\min_{\mathbf{v} \in \mathcal{L}(B)} \| \mathbf{v} - \mathbf{t} \|$.&lt;/p>
&lt;p>CVP juga bersifat NP-hard dalam dimensi tinggi, sama seperti SVP. Dari perspektif aplikasi untuk kriptografi, masalah LWE yang dijelaskan di bawah ini berkaitan erat dengan varian khusus dari CVP (Bounded Distance Decoding: BDD).&lt;/p>
&lt;h2 id="33-mengapa-menjadi-tidak-dapat-dipecahkan-saat-dimensi-tinggi-keterbatasan-lll-dan-bkz">3.3 Mengapa Menjadi Tidak Dapat Dipecahkan Saat Dimensi Tinggi? (Keterbatasan LLL dan BKZ)
&lt;/h2>&lt;p>Sebagai algoritma terkenal untuk memecahkan masalah kisi berdimensi tinggi, terdapat algoritma LLL (Lenstra-Lenstra-Lovász algorithm). Algoritma LLL beroperasi dalam waktu polinomial dan dapat mereduksi (Reduction) basis kisi menjadi &amp;ldquo;basis yang baik&amp;rdquo; sampai tingkat tertentu. Namun, vektor terpendek yang dapat ditemukan oleh algoritma LLL memiliki faktor perkiraan yang eksponensial ($2^{\mathcal{O}(n)}$) terhadap panjang vektor terpendek yang sebenarnya, sehingga tidak mencapai tingkat di mana ia dapat merusak keamanan kriptografi.&lt;/p>
&lt;p>Jika kita menggunakan algoritma reduksi basis yang lebih kuat seperti algoritma BKZ (Block Korkine-Zolotarev) yang merupakan peningkatan dari LLL, kita dapat menemukan vektor yang lebih pendek, tetapi kompleksitas komputasinya meningkat secara eksponensial sehubungan dengan ukuran blok. Dalam kriptografi berbasis kisi, parameter yang aman (seperti ukuran dimensi $n$) ditentukan dengan memperkirakan waktu eksekusi dari algoritma BKZ ini. Dalam parameter standar PQC saat ini, nilai 500 hingga 1000 atau lebih dipilih untuk dimensi $n$, dan dikatakan bahwa akan memakan waktu lebih lama daripada umur alam semesta untuk mendekripsinya, bahkan dengan superkomputer atau komputer kuantum di masa depan.&lt;/p>
&lt;h1 id="4-formulasi-matematis-dari-masalah-lwe-learning-with-errors">4. Formulasi Matematis dari Masalah LWE (Learning With Errors)
&lt;/h1>&lt;p>Sebagian besar kriptografi berbasis kisi modern didasarkan pada &amp;ldquo;Masalah LWE (Learning With Errors)&amp;rdquo; yang diusulkan oleh Oded Regev pada tahun 2005. Keindahan dari masalah LWE terletak pada kesederhanaan formulasinya, dan fakta bahwa ia memiliki bukti matematis yang kuat, yaitu &amp;ldquo;reduksi dari kompleksitas kasus terburuk ke kompleksitas kasus rata-rata&amp;rdquo;.&lt;/p>
&lt;h2 id="41-sistem-persamaan-linear-tanpa-noise">4.1 Sistem Persamaan Linear Tanpa Noise
&lt;/h2>&lt;p>Untuk memahami masalah LWE, pertama-tama mari kita pertimbangkan sistem persamaan linear sederhana tanpa noise.
Misalkan ada vektor rahasia yang tidak diketahui $\mathbf{s} \in \mathbb{Z}_q^n$ (setiap komponen adalah bilangan bulat dari $0$ hingga $q-1$). Di sini $q$ adalah bilangan prima.&lt;/p>
&lt;p>Kita memilih vektor koefisien acak $\mathbf{a}_1, \mathbf{a}_2, \dots \in \mathbb{Z}_q^n$, dan menghitung hasil kali titik dengan vektor rahasia $\mathbf{s}$ dalam modulo $q$.
$b_1 = \langle \mathbf{a}_1, \mathbf{s} \rangle \pmod q$
$b_2 = \langle \mathbf{a}_2, \mathbf{s} \rangle \pmod q$
$\vdots$&lt;/p>
&lt;p>Mengingat jumlah pasangan $(\mathbf{a}_i, b_i)$ yang cukup ($n$ atau lebih), kita dapat dengan mudah memulihkan vektor rahasia $\mathbf{s}$ dengan menggunakan &amp;ldquo;Eliminasi Gauss (Gaussian elimination)&amp;rdquo; dalam aljabar linear. Ini adalah masalah yang dapat dengan mudah diselesaikan dalam waktu polinomial.&lt;/p>
&lt;h2 id="42-definisi-masalah-lwe-menambahkan-noise">4.2 Definisi Masalah LWE: Menambahkan Noise
&lt;/h2>&lt;p>Lalu, apa yang terjadi jika kita menambahkan sedikit &amp;ldquo;noise (kesalahan)&amp;rdquo; pada masalah ini?
Inilah esensi dari masalah LWE.&lt;/p>
&lt;p>Untuk vektor rahasia yang tidak diketahui $\mathbf{s} \in \mathbb{Z}_q^n$, kita menambahkan kesalahan kecil $e_i \in \mathbb{Z}_q$ ke hasil setiap persamaan.
$b_i = \langle \mathbf{a}_i, \mathbf{s} \rangle + e_i \pmod q$&lt;/p>
&lt;p>Di sini, $e_i$ adalah nilai bilangan bulat kecil dengan rata-rata 0 dan standar deviasi yang relatif kecil (misalnya, dipilih dari distribusi Gaussian diskrit, seperti distribusi normal).
Informasi yang diberikan adalah daftar pasangan vektor acak $\mathbf{a}_i$ dan $b_i$ yang dihitung dengan menambahkan kesalahan padanya.
$( \mathbf{a}_1, b_1 ), ( \mathbf{a}_2, b_2 ), \dots, ( \mathbf{a}_m, b_m )$&lt;/p>
&lt;p>Jika kita merepresentasikan ini dengan matriks, ini menjadi sangat rapi.
Menggunakan matriks acak $A \in \mathbb{Z}_q^{m \times n}$, vektor rahasia $\mathbf{s} \in \mathbb{Z}_q^n$, dan vektor kesalahan $\mathbf{e} \in \mathbb{Z}_q^m$,
&lt;/p>
$$ \mathbf{b} = A \mathbf{s} + \mathbf{e} \pmod q $$
&lt;p>
dapat ditulis seperti di atas. Yang diberikan hanyalah $A$ dan $\mathbf{b}$. Mencari $\mathbf{s}$ dari sini adalah &amp;ldquo;Masalah pencarian LWE (Search LWE problem)&amp;rdquo;.&lt;/p>
&lt;p>Karena terdapat kesalahan $e_i$, jika kita mencoba menggunakan eliminasi Gauss, kesalahan akan diperkuat secara eksponensial dalam proses penambahan dan pengurangan persamaan, sehingga mustahil untuk mencapai jawaban yang benar. Pada pandangan pertama, ini terlihat seperti sistem persamaan linear yang sederhana, tetapi hanya dengan menambahkan noise kecil ini, tingkat kesulitan masalah melompat ke tingkat NP-hard.&lt;/p>
&lt;h2 id="43-masalah-keputusan-lwe-decision-lwe">4.3 Masalah Keputusan LWE (Decision LWE)
&lt;/h2>&lt;p>Yang sering digunakan dalam pembuktian teori kriptografi adalah variasi dari masalah pencarian LWE, yaitu &amp;ldquo;Masalah keputusan LWE (Decision LWE problem)&amp;rdquo;.&lt;/p>
&lt;p>Masalah keputusan LWE adalah masalah di mana, diberikan daftar sampel yang diperoleh dari salah satu dari dua distribusi berikut, kita harus menentukan dari distribusi mana sampel tersebut berasal.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Distribusi LWE&lt;/strong>: Secara sengaja dihitung $(A, \mathbf{b} = A\mathbf{s} + \mathbf{e} \pmod q)$&lt;/li>
&lt;li>&lt;strong>Distribusi acak seragam&lt;/strong>: Sepasang $(A, \mathbf{u})$ yang terdiri dari matriks $A$ dan vektor $\mathbf{u}$ yang dipilih secara acak sepenuhnya.&lt;/li>
&lt;/ol>
&lt;p>Hebatnya, jika parameter masalah LWE dipilih dengan tepat, pasangan data yang diperoleh dari distribusi LWE menjadi &amp;ldquo;secara komputasi tidak dapat dibedakan (Computationally Indistinguishable)&amp;rdquo; dari pasangan data yang sepenuhnya acak. Sifat inilah yang menjadi dasar bagi kriptografi berbasis LWE untuk dapat menghasilkan &amp;ldquo;teks sandi (ciphertext) yang tidak dapat dibedakan dari angka acak&amp;rdquo;.&lt;/p>
&lt;h2 id="44-reduksi-dari-kompleksitas-kasus-terburuk-ke-kasus-rata-rata-teorema-regev">4.4 Reduksi dari Kompleksitas Kasus Terburuk ke Kasus Rata-rata (Teorema Regev)
&lt;/h2>&lt;p>Pencapaian terbesar Oded Regev adalah menghubungkan kesulitan masalah LWE ini secara matematis dengan kesulitan masalah kisi yang disebutkan sebelumnya (SVP dan CVP).&lt;/p>
&lt;p>Menggunakan reduksi kuantum (Quantum reduction), ia membuktikan bahwa &amp;ldquo;Jika ada algoritma waktu polinomial yang dapat menyelesaikan masalah LWE secara rata-rata (untuk $A$ dan $\mathbf{e}$ yang dipilih secara acak), maka ada algoritma kuantum waktu polinomial yang dapat menyelesaikan Gap-SVP kasus terburuk (kasus paling sulit) untuk sembarang kisi&amp;rdquo;. (Belakangan, reduksi klasik juga ditunjukkan oleh Peikert dkk.).&lt;/p>
&lt;p>Ini adalah sifat yang diimpikan dalam teori kriptografi. Karena ini menghilangkan kekhawatiran bahwa &amp;ldquo;kriptografi mungkin dapat dipecahkan karena kita kebetulan memilih kunci yang lemah (bagian dari kasus rata-rata)&amp;rdquo;, dan memberikan jaminan kuat bahwa &amp;ldquo;jika LWE rata-rata dapat dipecahkan, semua masalah sulit dari kisi dapat dipecahkan (sehingga LWE mutlak sulit)&amp;rdquo;.&lt;/p>
&lt;div class="mermaid">graph TD
A["Masalah Kisi Kasus Terburuk (Gap-SVP, SIVP)"] -->|Reduksi Kuantum/Klasik| B["Masalah LWE Kasus Rata-rata"]
B -->|Konstruksi Kriptografi| C["Kriptosistem berbasis LWE (PKE, KEM, FHE)"]
style A fill:#ffcccc,stroke:#ff0000,stroke-width:2px,color:#000
style B fill:#ccffcc,stroke:#00aa00,stroke-width:2px,color:#000
style C fill:#ccccff,stroke:#0000ff,stroke-width:2px,color:#000&lt;/div>
&lt;h1 id="5-konstruksi-kriptografi-kunci-publik-menggunakan-lwe-kriptografi-regev">5. Konstruksi Kriptografi Kunci Publik menggunakan LWE (Kriptografi Regev)
&lt;/h1>&lt;p>Setelah memahami kesulitan masalah LWE, mari kita lihat skema kriptografi kunci publik dasar yang diusulkan oleh Oded Regev tentang bagaimana menggunakannya untuk enkripsi dan dekripsi. Di sini, kita akan menjelaskan mekanisme paling dasar untuk mengenkripsi pesan 1-bit $M \in \{0, 1\}$.&lt;/p>
&lt;h2 id="51-pembuatan-kunci-key-generation">5.1 Pembuatan Kunci (Key Generation)
&lt;/h2>&lt;ol>
&lt;li>Sebagai parameter sistem, kita tentukan bilangan prima $q$ yang menjadi modulo, dimensi $n$, dan jumlah persamaan $m$ ($m > n \log q$).&lt;/li>
&lt;li>Sebagai kunci privat, pilih secara acak vektor $\mathbf{s} \in \mathbb{Z}_q^n$.&lt;/li>
&lt;li>Hasilkan matriks acak $A \in \mathbb{Z}_q^{m \times n}$.&lt;/li>
&lt;li>Pilih vektor kesalahan kecil $\mathbf{e} \in \mathbb{Z}_q^m$ dari distribusi kesalahan seperti distribusi Gaussian diskrit.&lt;/li>
&lt;li>Hitung vektor $\mathbf{b} = A \mathbf{s} + \mathbf{e} \pmod q$.&lt;/li>
&lt;li>Kunci publik (Public Key) adalah $(A, \mathbf{b})$.&lt;/li>
&lt;li>Kunci privat (Secret Key) adalah $\mathbf{s}$.&lt;/li>
&lt;/ol>
&lt;p>Kunci publik persis merupakan &amp;ldquo;instansiasi dari masalah LWE&amp;rdquo; itu sendiri. Menemukan kunci privat $\mathbf{s}$ dari kunci publik $(A, \mathbf{b})$ sama dengan memecahkan masalah pencarian LWE, sehingga keamanannya terjamin.&lt;/p>
&lt;h2 id="52-enkripsi-encryption">5.2 Enkripsi (Encryption)
&lt;/h2>&lt;p>Alice menggunakan kunci publik Bob $(A, \mathbf{b})$ untuk mengenkripsi pesan 1-bit $M \in \{0, 1\}$.&lt;/p>
&lt;ol>
&lt;li>Pilih vektor biner acak (komponennya adalah 0 atau 1) $\mathbf{r} \in \{0, 1\}^m$.&lt;/li>
&lt;li>Sebagai paruh pertama dari teks sandi, hitung vektor $\mathbf{u} = A^T \mathbf{r} \pmod q$. ($A^T$ adalah matriks transpose dari $A$. Dengan kata lain, ia menjumlahkan baris-baris dari $A$ di mana komponen dari $\mathbf{r}$ adalah 1).&lt;/li>
&lt;li>Sebagai paruh kedua dari teks sandi, hitung skalar $v = \mathbf{b}^T \mathbf{r} + M \cdot \lfloor \frac{q}{2} \rfloor \pmod q$.
(Jika pesan $M$ adalah 0, tidak ditambahkan apa-apa, dan jika $1$, ditambahkan persis setengah dari nilai $q$, yaitu $\lfloor \frac{q}{2} \rfloor$).&lt;/li>
&lt;li>Teks sandi (Ciphertext) adalah $(\mathbf{u}, v)$.&lt;/li>
&lt;/ol>
&lt;p>Makna intuitif dari enkripsi adalah mengambil &amp;ldquo;jumlah subset acak&amp;rdquo; sehubungan dengan matriks kunci publik $A$ dan vektor $\mathbf{b}$. Karena kesulitan masalah keputusan LWE, teks sandi $(\mathbf{u}, v)$ ini tampak tidak dapat dibedakan dari vektor acak sepenuhnya dan bilangan acak seragam (Keamanan semantik: Semantic Security).&lt;/p>
&lt;div class="mermaid">flowchart LR
M["Pesan M dalam {0,1}"] --> Enc
PK["Kunci Publik (A, b)"] --> Enc
r["Vektor biner acak r"] --> Enc
subgraph Enc ["Proses Enkripsi"]
direction TB
u_calc["u = A^T * r mod q"]
v_calc["v = b^T * r + M * floor(q/2) mod q"]
end
Enc --> CT["Teks Sandi (u, v)"]&lt;/div>
&lt;h2 id="53-dekripsi-decryption">5.3 Dekripsi (Decryption)
&lt;/h2>&lt;p>Bob mendekripsi teks sandi $(\mathbf{u}, v)$ menggunakan kunci privat $\mathbf{s}$.&lt;/p>
&lt;ol>
&lt;li>Hitung nilai berikut: $D = v - \mathbf{s}^T \mathbf{u} \pmod q$&lt;/li>
&lt;li>Jika hasil perhitungan mendekati $0$, keluarkan $M=0$, jika mendekati $\lfloor \frac{q}{2} \rfloor$, keluarkan $M=1$.&lt;/li>
&lt;/ol>
&lt;p>Mari kita jabarkan secara matematis mengapa ini dapat didekripsi.
Ingatlah bahwa $\mathbf{b} = A \mathbf{s} + \mathbf{e}$.&lt;/p>
$$
\begin{aligned}
v - \mathbf{s}^T \mathbf{u} &amp;= (\mathbf{b}^T \mathbf{r} + M \cdot \lfloor \frac{q}{2} \rfloor) - \mathbf{s}^T (A^T \mathbf{r}) \\
&amp;= ((A \mathbf{s} + \mathbf{e})^T \mathbf{r} + M \cdot \lfloor \frac{q}{2} \rfloor) - \mathbf{s}^T A^T \mathbf{r} \\
&amp;= (\mathbf{s}^T A^T \mathbf{r} + \mathbf{e}^T \mathbf{r} + M \cdot \lfloor \frac{q}{2} \rfloor) - \mathbf{s}^T A^T \mathbf{r} \\
&amp;= \mathbf{e}^T \mathbf{r} + M \cdot \lfloor \frac{q}{2} \rfloor \pmod q
\end{aligned}
$$
&lt;p>Di sini, dari rumus tersebut, $\mathbf{s}^T A^T \mathbf{r}$ saling meniadakan dengan rapi dan menghilang!
Yang tersisa adalah $\mathbf{e}^T \mathbf{r} + M \cdot \lfloor \frac{q}{2} \rfloor$.&lt;/p>
&lt;p>$\mathbf{e}$ adalah vektor noise dengan komponen yang sangat kecil, dan $\mathbf{r}$ adalah vektor biner dengan komponen 0 atau 1. Oleh karena itu, hasil kali titik dari keduanya, $\mathbf{e}^T \mathbf{r}$, juga (jika parameter dipilih dengan benar) tetap merupakan nilai yang relatif kecil.&lt;/p>
&lt;ul>
&lt;li>Jika $M=0$, hasilnya menjadi $\mathbf{e}^T \mathbf{r}$, yang merupakan nilai kecil mendekati $0$.&lt;/li>
&lt;li>Jika $M=1$, hasilnya menjadi $\mathbf{e}^T \mathbf{r} + \lfloor \frac{q}{2} \rfloor$, yang terletak di sekitar nilai setengah dari $q$, yaitu $\lfloor \frac{q}{2} \rfloor$.&lt;/li>
&lt;/ul>
&lt;p>Jika parameter dirancang sedemikian rupa sehingga nilai absolut dari kesalahan $\mathbf{e}^T \mathbf{r}$ berada di bawah $\frac{q}{4}$, Bob dapat menentukan (mendekripsi) pesan $M$ secara akurat hanya dengan melihat apakah hasil perhitungan lebih dekat ke $0$ atau ke $\lfloor \frac{q}{2} \rfloor$. Ini adalah mekanisme indah di mana kriptografi berbasis LWE bekerja.&lt;/p>
&lt;div class="mermaid">flowchart LR
CT["Teks Sandi (u, v)"] --> Dec
SK["Kunci Privat s"] --> Dec
subgraph Dec ["Proses Dekripsi"]
direction TB
calc["Hitung D = v - s^T * u mod q"]
check["Periksa apakah D lebih dekat ke 0 atau q/2"]
end
calc --> check
Dec --> M_out["Pesan M yang Dipulihkan"]&lt;/div>
&lt;h1 id="6-contoh-mainan-toy-example-dari-kriptografi-lwe-dengan-nilai-numerik-spesifik">6. Contoh Mainan (Toy Example) dari Kriptografi LWE dengan Nilai Numerik Spesifik
&lt;/h1>&lt;p>Saya pikir sulit untuk merasakan hanya dengan deretan rumus, jadi mari kita benar-benar mengatur parameter numerik yang sangat kecil dan mengikuti perhitungan dari enkripsi hingga dekripsi.
(※ Dalam sistem kriptografi dunia nyata, untuk memastikan keamanan, nilai 500 atau lebih digunakan untuk $n$, dan ribuan atau lebih digunakan untuk $q$)&lt;/p>
&lt;p>&lt;strong>[Pengaturan Parameter]&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Modulo $q = 17$ (Bilangan prima. Oleh karena itu, nilainya berkisar dari $0$ hingga $16$)&lt;/li>
&lt;li>Dimensi $n = 2$&lt;/li>
&lt;li>Jumlah persamaan $m = 4$&lt;/li>
&lt;li>Misalkan kita mengenkripsi pesan $M = 1$.&lt;/li>
&lt;li>Jumlah pergeseran pesan: $\lfloor \frac{q}{2} \rfloor = \lfloor \frac{17}{2} \rfloor = 8$&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>[1. Fase Pembuatan Kunci]&lt;/strong>
Bob memilih kunci privat $\mathbf{s}$, matriks $A$, dan vektor kesalahan $\mathbf{e}$ secara acak.
&lt;/p>
$$ \mathbf{s} = \begin{pmatrix} 3 \\ 4 \end{pmatrix} \in \mathbb{Z}_{17}^2 $$
$$ A = \begin{pmatrix} 2 &amp; 15 \\ 1 &amp; 8 \\ 14 &amp; 5 \\ 9 &amp; 10 \end{pmatrix} \in \mathbb{Z}_{17}^{4 \times 2} $$
$$ \mathbf{e} = \begin{pmatrix} 1 \\ -1 \\ 0 \\ 2 \end{pmatrix} \equiv \begin{pmatrix} 1 \\ 16 \\ 0 \\ 2 \end{pmatrix} \pmod{17} $$
&lt;p>Selanjutnya kita hitung kunci publik $\mathbf{b}$.
&lt;/p>
$$ A \mathbf{s} = \begin{pmatrix} 2 &amp; 15 \\ 1 &amp; 8 \\ 14 &amp; 5 \\ 9 &amp; 10 \end{pmatrix} \begin{pmatrix} 3 \\ 4 \end{pmatrix} = \begin{pmatrix} 2\times 3 + 15\times 4 \\ 1\times 3 + 8\times 4 \\ 14\times 3 + 5\times 4 \\ 9\times 3 + 10\times 4 \end{pmatrix} = \begin{pmatrix} 6 + 60 \\ 3 + 32 \\ 42 + 20 \\ 27 + 40 \end{pmatrix} = \begin{pmatrix} 66 \\ 35 \\ 62 \\ 67 \end{pmatrix} $$
&lt;p>
Kita hitung ini dalam modulo 17. ($66 = 17 \times 3 + 15$, dst.)
&lt;/p>
$$ A \mathbf{s} \pmod{17} = \begin{pmatrix} 15 \\ 1 \\ 11 \\ 16 \end{pmatrix} $$
&lt;p>
Tambahkan vektor kesalahan $\mathbf{e}$.
&lt;/p>
$$ \mathbf{b} = A \mathbf{s} + \mathbf{e} = \begin{pmatrix} 15 \\ 1 \\ 11 \\ 16 \end{pmatrix} + \begin{pmatrix} 1 \\ 16 \\ 0 \\ 2 \end{pmatrix} = \begin{pmatrix} 16 \\ 17 \\ 11 \\ 18 \end{pmatrix} \equiv \begin{pmatrix} 16 \\ 0 \\ 11 \\ 1 \end{pmatrix} \pmod{17} $$
&lt;p>Kunci publiknya adalah $A$ dan $\mathbf{b} = (16, 0, 11, 1)^T$.&lt;/p>
&lt;p>&lt;strong>[2. Fase Enkripsi]&lt;/strong>
Alice mengenkripsi pesan $M = 1$.
Pilih vektor acak $\mathbf{r}$. Di sini kita tetapkan $\mathbf{r} = (1, 0, 1, 0)^T$.&lt;/p>
&lt;p>Hitung $\mathbf{u}$.
&lt;/p>
$$ \mathbf{u} = A^T \mathbf{r} = \begin{pmatrix} 2 &amp; 1 &amp; 14 &amp; 9 \\ 15 &amp; 8 &amp; 5 &amp; 10 \end{pmatrix} \begin{pmatrix} 1 \\ 0 \\ 1 \\ 0 \end{pmatrix} = \begin{pmatrix} 2 \times 1 + 14 \times 1 \\ 15 \times 1 + 5 \times 1 \end{pmatrix} = \begin{pmatrix} 16 \\ 20 \end{pmatrix} \equiv \begin{pmatrix} 16 \\ 3 \end{pmatrix} \pmod{17} $$
&lt;p>Hitung $v$.
&lt;/p>
$$ \mathbf{b}^T \mathbf{r} = (16, 0, 11, 1) \begin{pmatrix} 1 \\ 0 \\ 1 \\ 0 \end{pmatrix} = 16 \times 1 + 11 \times 1 = 27 \equiv 10 \pmod{17} $$
&lt;p>
Tambahkan nilai $\lfloor 17/2 \rfloor = 8$ yang sesuai dengan pesan $M=1$.
&lt;/p>
$$ v = \mathbf{b}^T \mathbf{r} + M \cdot 8 = 10 + 1 \times 8 = 18 \equiv 1 \pmod{17} $$
&lt;p>Alice mengirimkan teks sandi $(\mathbf{u}, v) = \left( \begin{pmatrix} 16 \\ 3 \end{pmatrix}, 1 \right)$ kepada Bob.&lt;/p>
&lt;p>&lt;strong>[3. Fase Dekripsi]&lt;/strong>
Menerima teks sandi, Bob mendekripsinya menggunakan kunci privat $\mathbf{s} = (3, 4)^T$.
Rumus proses dekripsi: Hitung $D = v - \mathbf{s}^T \mathbf{u} \pmod{17}$.&lt;/p>
$$ \mathbf{s}^T \mathbf{u} = (3, 4) \begin{pmatrix} 16 \\ 3 \end{pmatrix} = 3 \times 16 + 4 \times 3 = 48 + 12 = 60 \equiv 9 \pmod{17} $$
$$ D = v - \mathbf{s}^T \mathbf{u} = 1 - 9 = -8 \pmod{17} $$
&lt;p>Di sini, di dunia modulo 17, $-8$ sama dengan $9$ ($-8 + 17 = 9$).
Tentukan apakah nilai $D = 9$ yang diperoleh lebih dekat ke $0$ atau $8$ ($\lfloor 17/2 \rfloor$).
Karena $9$ jelas lebih dekat ke $8$ daripada ke $0$, Bob berhasil memulihkan $M = 1$ dengan benar!&lt;/p>
&lt;p>Mengapa menjadi $9$? Mari kita ingat kembali pembuktian sebelumnya.
Bagian kesalahan adalah $\mathbf{e}^T \mathbf{r} = (1, -1, 0, 2) (1, 0, 1, 0)^T = 1 \times 1 + 0 \times 1 = 1$.
Oleh karena itu, hasil perhitungannya adalah $\mathbf{e}^T \mathbf{r} + M \cdot 8 = 1 + 8 = 9$, dan dapat dipastikan bahwa nilai sesuai dengan teori telah dihitung.&lt;/p>
&lt;h1 id="7-evolusi-menuju-penerapan-praktis-ring-lwe-dan-module-lwe">7. Evolusi Menuju Penerapan Praktis: Ring-LWE dan Module-LWE
&lt;/h1>&lt;p>Masalah LWE standar (Standard LWE) yang dijelaskan sejauh ini memiliki bukti keamanan yang sangat kuat, tetapi memiliki kelemahan fatal dalam penggunaan praktis. Yaitu &amp;ldquo;ukuran kunci menjadi raksasa&amp;rdquo; dan &amp;ldquo;biaya komputasi tinggi&amp;rdquo;.&lt;/p>
&lt;p>Dalam Standard LWE, kunci publik berisi matriks raksasa $A \in \mathbb{Z}_q^{m \times n}$. Ketika parameter $n$ menjadi ratusan hingga ribuan, ukuran matriks ini mencapai beberapa megabyte, sehingga terlalu berat untuk dikirim dan diterima setiap saat dalam protokol komunikasi di internet (seperti TLS). Selain itu, perkalian matriks dan vektor membutuhkan kompleksitas komputasi sebesar $\mathcal{O}(n^2)$.&lt;/p>
&lt;p>Untuk mengatasi masalah ini, diperkenalkanlah &amp;ldquo;Ring-LWE (RLWE)&amp;rdquo; dan &amp;ldquo;Module-LWE (MLWE)&amp;rdquo;, yang memasukkan struktur aljabar yang disebut cincin polinomial (Polynomial rings) ke dalam kisi.&lt;/p>
&lt;h2 id="71-intuisi-dari-ring-lwe">7.1 Intuisi dari Ring-LWE
&lt;/h2>&lt;p>Dalam Ring-LWE, vektor dan matriks digantikan dengan elemen (polinomial) pada cincin polinomial $\mathcal{R}_q = \mathbb{Z}_q[X]/(X^n + 1)$. (Di sini $n$ dipilih sebagai pangkat 2).&lt;/p>
&lt;p>Sementara kunci publik dari Standard LWE adalah matriks $A$, Ring-LWE menggunakan polinomial tunggal $a(x)$. Kunci privat $s(x)$ dan kesalahan $e(x)$ juga menjadi polinomial.
Persamaannya menjadi sebagai berikut:
&lt;/p>
$$ b(x) = a(x) \cdot s(x) + e(x) \pmod q $$
&lt;p>Karena ini adalah perkalian polinomial, dengan menggunakan &amp;ldquo;Number Theoretic Transform (NTT)&amp;rdquo;, yang mirip dengan Fast Fourier Transform (FFT), kompleksitas komputasi dapat dikurangi secara dramatis menjadi $\mathcal{O}(n \log n)$. Lebih jauh lagi, karena ukuran kunci publik juga berkurang dari matriks menjadi polinomial tunggal, ukuran data berkurang menjadi $\mathcal{O}(n)$. Ini memberikan keuntungan yang luar biasa dalam bandwidth komunikasi.&lt;/p>
&lt;p>Secara matematis, Ring-LWE bukan direduksi menjadi masalah pada kisi umum, melainkan pada kisi dengan simetri khusus yang disebut &amp;ldquo;Kisi Ideal (Ideal Lattice)&amp;rdquo;.&lt;/p>
&lt;h2 id="72-module-lwe-dan-standardisasi-nist-kyber--ml-kem">7.2 Module-LWE dan Standardisasi NIST (Kyber / ML-KEM)
&lt;/h2>&lt;p>Meskipun Ring-LWE efisien, ada sedikit kekhawatiran bahwa struktur aljabar khusus dari kisi ideal dapat menjadi petunjuk untuk serangan di masa depan. Oleh karena itu, &amp;ldquo;Module-LWE (MLWE)&amp;rdquo; mengambil &amp;ldquo;yang terbaik dari kedua dunia&amp;rdquo; dari keamanan konservatif Standard LWE dan efisiensi Ring-LWE.&lt;/p>
&lt;p>Dalam Module-LWE, kita mempertimbangkan matriks kecil dan vektor yang elemennya adalah polinomial. Dengan kata lain, kita menangani modul di atas cincin.
Saat ini, &amp;ldquo;CRYSTALS-Kyber&amp;rdquo; (nama standar: ML-KEM), yang dipilih oleh NIST sebagai standar untuk algoritma enkapsulasi kunci (KEM) PQC, dibangun tepat di atas kesulitan masalah Module-LWE ini.&lt;/p>
&lt;h1 id="8-mengapa-ini-aman-terhadap-komputer-kuantum">8. Mengapa Ini Aman Terhadap Komputer Kuantum?
&lt;/h1>&lt;p>Terakhir, mari kita sentuh bagian inti dari &amp;ldquo;Mengapa kriptografi berbasis kisi diyakini tidak dapat dipecahkan bahkan menggunakan komputer kuantum?&amp;rdquo;.&lt;/p>
&lt;p>Algoritma Shor, yang digunakan komputer kuantum untuk memecahkan kriptografi RSA dan kriptografi kurva eliptik, pada dasarnya adalah algoritma untuk memecahkan &amp;ldquo;Masalah Subgrup Tersembunyi (Hidden Subgroup Problem: HSP)&amp;rdquo;. Struktur matematika di balik RSA dan ECC (grup Abelian hingga) memiliki periodisitas, dan dengan menggunakan operasi yang unik untuk algoritma kuantum yang disebut Transformasi Fourier Kuantum (Quantum Fourier Transform: QFT), periode ini (subgrup tersembunyi) dapat diekstraksi sekaligus.&lt;/p>
&lt;p>Namun, masalah kisi pada dasarnya berbeda. Meskipun kisi juga memiliki periodisitas, apa yang dicari dalam SVP dan CVP adalah sifat geometris non-linear seperti &amp;ldquo;jarak terpendek&amp;rdquo; dan &amp;ldquo;penghilangan noise&amp;rdquo;. Bahkan jika &amp;ldquo;transformasi Fourier kuantum pada grup Abelian&amp;rdquo; seperti algoritma Shor diterapkan secara langsung, informasi berguna yang merupakan jawaban dari masalah kisi tidak dapat diekstraksi secara efisien. Hingga saat ini, tidak ada algoritma kuantum yang dapat memecahkan SVP dan LWE dalam waktu polinomial yang telah ditemukan, dan diyakini secara luas bahwa bahkan dengan kekuatan komputasi paralel dari komputer kuantum, satu-satunya metode yang efektif hanyalah pencarian yang mendekati brute force (percepatan akar kuadrat oleh algoritma Grover).&lt;/p>
&lt;h1 id="9-kesimpulan">9. Kesimpulan
&lt;/h1>&lt;p>Dalam artikel ini, kami telah menjelaskan secara rinci tentang intuisi matematis kriptografi berbasis kisi, mulai dari definisi geometris kisi, formulasi masalah LWE, dan menuju konstruksi kriptografi kunci publik.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Kisi (Lattice)&lt;/strong> adalah ruang diskrit yang direpresentasikan oleh kombinasi linear koefisien bilangan bulat dari vektor basis, dan dalam dimensi tinggi menjadi sulit untuk menemukan &amp;ldquo;basis yang baik&amp;rdquo; yang mendekati ortogonal (SVP).&lt;/li>
&lt;li>&lt;strong>Masalah LWE (Learning With Errors)&lt;/strong> adalah masalah memecahkan sistem persamaan linear dengan noise, dan karena ini terkait dengan kesulitan masalah kasus terburuk pada kisi, ini memberikan bukti keamanan yang kuat.&lt;/li>
&lt;li>Dengan menggunakan masalah LWE, enkripsi dan dekripsi (&lt;strong>Kriptografi Regev&lt;/strong>) direalisasikan oleh mekanisme cerdik yang secara sengaja menambahkan atau menghapus noise.&lt;/li>
&lt;li>Dalam protokol dunia nyata, untuk meningkatkan efisiensi komunikasi dan kecepatan komputasi, &lt;strong>Ring-LWE&lt;/strong> dan &lt;strong>Module-LWE&lt;/strong> yang menggunakan cincin polinomial diadopsi, dan ini menjadi fondasi &lt;strong>ML-KEM&lt;/strong> yang merupakan standar NIST.&lt;/li>
&lt;/ol>
&lt;p>Di tengah pergeseran paradigma komputasi yang belum pernah terjadi sebelumnya yang disebut komputer kuantum, sangatlah romantis bahwa &amp;ldquo;Kriptografi berbasis kisi&amp;rdquo;, yang lahir dari kedalaman aljabar linear klasik dan teori bilangan, akan memikul fondasi keamanan internet masa depan. Matematika yang menjadi dasar kriptografi berbasis kisi sama sekali tidak terlalu sulit untuk dipahami, dan dengan pengetahuan dasar tentang aljabar linear dan probabilitas, struktur indahnya dapat dipahami dengan baik. Kami berharap artikel ini dapat membantu Anda dalam memahami kriptografi berbasis kisi, yang merupakan inti dari PQC.&lt;/p></description></item><item><title>Mekanisme Zero-Knowledge Proof (ZKP) dan Aplikasinya pada Web3 serta Keamanan Terkini</title><link>http://kenji.blog/id/p/zero-knowledge-proofs-zkp-web3-security/</link><pubDate>Fri, 11 Sep 2026 19:00:00 +0900</pubDate><guid>http://kenji.blog/id/p/zero-knowledge-proofs-zkp-web3-security/</guid><description>&lt;img src="http://kenji.blog/p/zero-knowledge-proofs-zkp-web3-security/img/eyecatch.jpg" alt="Featured image of post Mekanisme Zero-Knowledge Proof (ZKP) dan Aplikasinya pada Web3 serta Keamanan Terkini" />&lt;h2 id="pendahuluan">Pendahuluan
&lt;/h2>&lt;p>Dalam masyarakat digital modern, privasi data dan skalabilitas menjadi dua tantangan yang paling penting. Di tengah meningkatnya risiko kebocoran dan penyalahgunaan informasi pribadi, ada kebutuhan yang kuat akan teknologi yang memungkinkan seseorang untuk &amp;ldquo;membuktikan bahwa mereka memiliki suatu informasi tanpa mengungkapkan informasi itu sendiri kepada pihak lain&amp;rdquo;. Hal ini diwujudkan oleh &lt;strong>Zero-Knowledge Proof (ZKP) atau Bukti Tanpa Pengetahuan&lt;/strong>.&lt;/p>
&lt;p>Zero-Knowledge Proof adalah konsep teori kriptografi yang pertama kali diusulkan pada tahun 1980-an oleh Shafi Goldwasser, Silvio Micali, dan Charles Rackoff, namun untuk waktu yang lama hanya sebatas penelitian teoretis. Akan tetapi, dengan munculnya teknologi blockchain dan Web3, situasinya berubah drastis. ZKP kini mendapat sorotan sebagai &amp;ldquo;tongkat ajaib&amp;rdquo; yang mampu menyelesaikan sekaligus masalah skalabilitas (batas kapasitas pemrosesan) dan masalah privasi (semua transaksi bersifat publik) yang dihadapi oleh blockchain publik seperti Ethereum.&lt;/p>
&lt;p>Dalam artikel ini, kami akan menjelaskan secara sangat terperinci dan mendalam dari sudut pandang teknis, mulai dari konsep dasar Zero-Knowledge Proof, mekanisme matematis dan kriptografis yang mendalam dari &lt;strong>zk-SNARKs&lt;/strong> dan &lt;strong>zk-STARKs&lt;/strong> yang saat ini menjadi arus utama, hingga contoh aplikasi terkininya pada Web3 dan keamanan seperti ZK-Rollups dan Identitas Terdesentralisasi (DID).&lt;/p>
&lt;hr>
&lt;h2 id="apa-itu-zero-knowledge-proof-zkp">Apa itu Zero-Knowledge Proof (ZKP)?
&lt;/h2>&lt;p>Zero-Knowledge Proof (ZKP) mengacu pada protokol di mana saat seorang Pembuktian (Prover) membuktikan kepada seorang Pemverifikasi (Verifier) bahwa suatu proposisi adalah benar, &amp;ldquo;tidak ada informasi lain yang disampaikan selain fakta bahwa proposisi tersebut benar&amp;rdquo;.&lt;/p>
&lt;h3 id="3-syarat-yang-harus-dipenuhi-zkp">3 Syarat yang Harus Dipenuhi ZKP
&lt;/h3>&lt;p>Agar suatu protokol dapat disebut sebagai ZKP, ia harus memenuhi tiga karakteristik berikut secara ketat:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Kelengkapan (Completeness)&lt;/strong>
Jika proposisi itu benar, dan baik pembukti maupun pemverifikasi mengikuti protokol dengan benar, maka pemverifikasi harus menerima (Accept) bukti tersebut dengan probabilitas yang sangat tinggi.&lt;/li>
&lt;li>&lt;strong>Kekukuhan (Soundness)&lt;/strong>
Jika proposisi itu salah, seberapa tinggi pun kemampuan komputasi pembukti yang berniat jahat, tidak mungkin (kecuali dengan probabilitas yang sangat kecil sehingga dapat diabaikan) bagi mereka untuk menipu pemverifikasi agar menerima bukti tersebut.&lt;/li>
&lt;li>&lt;strong>Sifat Tanpa Pengetahuan (Zero-Knowledge)&lt;/strong>
Jika proposisi itu benar, pemverifikasi tidak dapat memperoleh informasi apa pun dari proses pembuktian selain fakta bahwa &amp;ldquo;proposisi itu benar&amp;rdquo;. Dari sudut pandang pemverifikasi, ini dibuktikan oleh definisi matematis yang menyatakan bahwa proses pembuktian dapat disimulasikan (terdapat sebuah simulator).&lt;/li>
&lt;/ol>
&lt;h3 id="bukti-interaktif-dan-bukti-non-interaktif">Bukti Interaktif dan Bukti Non-Interaktif
&lt;/h3>&lt;p>Dalam ZKP, terdapat dua jenis: &lt;strong>Bukti Interaktif&lt;/strong> di mana pembukti dan pemverifikasi berkomunikasi beberapa kali, dan &lt;strong>Bukti Non-Interaktif&lt;/strong> di mana pembukti hanya mengirimkan data bukti sekali dan selesai.&lt;/p>
&lt;h4 id="bukti-interaktif-interactive-zkp">Bukti Interaktif (Interactive ZKP)
&lt;/h4>&lt;p>ZKP awal dirancang sebagai protokol interaktif. Analogi terkenal &amp;ldquo;Gua Ali Baba&amp;rdquo; termasuk dalam kategori ini. Alur umum protokolnya adalah sebagai berikut:&lt;/p>
&lt;div class="mermaid">sequenceDiagram
participant Prover as "Prover (Pembukti)"
participant Verifier as "Verifier (Pemverifikasi)"
Note over Prover, Verifier: "Alur dasar protokol bukti interaktif"
Prover->>Verifier: "1. Mengirimkan komitmen (Commitment)"
Verifier->>Prover: "2. Mengirimkan tantangan acak (Challenge)"
Prover->>Verifier: "3. Menghitung dan mengirimkan respons (Response)"
Note over Verifier: "Memverifikasi respons (Verification)"
Verifier-->>Prover: "4. Menerima atau menolak (Accept / Reject)"
Note over Prover, Verifier: "※Diulang puluhan kali untuk meningkatkan tingkat kepastian"&lt;/div>
&lt;p>Metode ini sangat kuat, tetapi mengharuskan pemverifikasi untuk selalu online, sehingga kurang praktis diterapkan pada sistem terdistribusi asinkron seperti blockchain. Di blockchain, siapa pun harus dapat memverifikasi bukti-bukti masa lalu kapan saja.&lt;/p>
&lt;h4 id="transformasi-fiat-shamir-fiat-shamir-heuristic-dan-non-interaktivitas">Transformasi Fiat-Shamir (Fiat-Shamir Heuristic) dan Non-Interaktivitas
&lt;/h4>&lt;p>Metode terobosan untuk mengubah bukti interaktif menjadi bukti non-interaktif (Non-Interactive Zero-Knowledge Proof: NIZK) adalah &lt;strong>Transformasi Fiat-Shamir&lt;/strong>.&lt;/p>
&lt;p>Sebagai pengganti &amp;ldquo;tantangan acak&amp;rdquo; yang dikirim oleh pemverifikasi, pembukti menghasilkan sendiri &amp;ldquo;tantangan pseudo-acak&amp;rdquo; menggunakan komitmennya sendiri dan nilai hash dari informasi publik. Dengan asumsi bahwa fungsi hash kriptografi (misalnya SHA-256 atau Keccak) berfungsi sebagai oracle acak, pembukti tidak dapat memprediksi atau memanipulasi tantangan sebelumnya. Hal ini memungkinkan penyelesaian pembuktian hanya dengan satu kali pengiriman pesan, namun tetap menjaga tingkat keamanan yang setara dengan bukti interaktif.&lt;/p>
&lt;hr>
&lt;h2 id="detail-teknis-zk-snarks">Detail Teknis zk-SNARKs
&lt;/h2>&lt;p>Saat ini, jenis ZKP yang paling banyak digunakan adalah &lt;strong>zk-SNARKs&lt;/strong> (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge). Sesuai dengan namanya, ini merupakan argumen pengetahuan (Argument of Knowledge) yang memiliki sifat tanpa pengetahuan (zk), dengan ukuran bukti yang sangat kecil dan cepat diverifikasi (Succinct), serta bersifat non-interaktif (Non-Interactive).&lt;/p>
&lt;p>Fondasi dari zk-SNARKs adalah geometri aljabar tingkat lanjut dan teori kriptografi. Ia mengubah eksekusi program atau komputasi menjadi verifikasi persamaan polinomial tertentu.&lt;/p>
&lt;h3 id="1-sirkuit-aritmatika-dan-transformasi-ke-r1cs-rank-1-constraint-system">1. Sirkuit Aritmatika dan Transformasi ke R1CS (Rank-1 Constraint System)
&lt;/h3>&lt;p>Pertama-tama, komputasi apa pun yang ingin dibuktikan (algoritma atau logika smart contract) diubah menjadi &lt;strong>Sirkuit Aritmatika (Arithmetic Circuit)&lt;/strong> yang terdiri dari gerbang penjumlahan (addition gates) dan gerbang perkalian (multiplication gates).&lt;/p>
&lt;p>Selanjutnya, sirkuit aritmatika ini diubah menjadi sekumpulan persamaan matriks yang disebut &lt;strong>R1CS (Rank-1 Constraint System)&lt;/strong>. R1CS adalah masalah mencari matriks $A, B, C$ yang memenuhi kendala berikut untuk sebuah vektor variabel $x$.&lt;/p>
$$ (A \cdot x) \circ (B \cdot x) = C \cdot x $$
&lt;p>Di sini, $\circ$ melambangkan perkalian Hadamard (perkalian elemen per elemen). Kendala ini memastikan bahwa semua gerbang logika dalam sirkuit (terutama gerbang perkalian) telah dihitung dengan benar.&lt;/p>
&lt;h3 id="2-transformasi-ke-qap-quadratic-arithmetic-program">2. Transformasi ke QAP (Quadratic Arithmetic Program)
&lt;/h3>&lt;p>Karena kendala matriks R1CS bisa sangat banyak, memverifikasinya satu per satu akan sangat tidak efisien. Oleh karena itu, interpolasi Lagrange digunakan untuk mengompresi kendala-kendala ini menjadi sebuah persamaan polinomial tunggal. Inilah yang disebut &lt;strong>QAP (Quadratic Arithmetic Program)&lt;/strong>.&lt;/p>
&lt;p>Dengan transformasi ke QAP, masalah yang perlu dibuktikan direduksi menjadi: &amp;ldquo;Apakah sebuah polinomial tertentu $P(x)$ dapat dibagi habis oleh polinomial lain yang diketahui, $Z(x)$?&amp;rdquo;&lt;/p>
$$ P(x) = L(x) \cdot R(x) - O(x) $$
&lt;p>Di sini, $L(x), R(x), O(x)$ masingmasing adalah kombinasi polinomial yang sesuai dengan setiap baris matriks $A, B, C$. Jika pembukti mengetahui solusi yang benar (Witness), maka pada setiap akar (titik evaluasi) dari $P(x)$ nilainya akan menjadi 0, sehingga $P(x)$ akan memiliki polinomial target $Z(x)$ sebagai faktor. Dengan kata lain, terdapat suatu polinomial $H(x)$ sehingga berlaku persamaan berikut:&lt;/p>
$$ P(x) = H(x) \cdot Z(x) $$
&lt;p>Pemverifikasi hanya perlu memeriksa apakah persamaan $P(s) = H(s) \cdot Z(s)$ berlaku pada sebuah titik rahasia acak $s$, dan ia dapat langsung memverifikasi bahwa keseluruhan perhitungan telah dilakukan dengan benar. Inilah rahasia dari &amp;ldquo;Succinct&amp;rdquo; (keringkasan).&lt;/p>
&lt;h3 id="3-kriptografi-kurva-eliptik-dan-pasangan-bilinear-pairings">3. Kriptografi Kurva Eliptik dan Pasangan (Bilinear Pairings)
&lt;/h3>&lt;p>Namun, jika pemverifikasi mengetahui titik rahasia $s$, pembukti dapat merekayasa polinomial palsu yang memenuhi persamaan tersebut (keruntuhan kekukuhan). Oleh karena itu, komputasi harus dilakukan dengan mengenkripsi $s$ (menggunakan enkripsi homomorfik) sehingga tidak diketahui oleh siapa pun.&lt;/p>
&lt;p>Hal ini diwujudkan dengan &lt;strong>Pasangan Kurva Eliptik (Bilinear Pairings)&lt;/strong>.
Pasangan (Pairing) $e$ adalah sebuah fungsi khusus yang mampu menghitung nilai enkripsi dari perkalian dua buah nilai yang terenkripsi.&lt;/p>
$$ e(g_1^a, g_2^b) = e(g_1, g_2)^{ab} $$
&lt;p>Pembukti menghitung nilai terenkripsi dari polinomial $P(s)$ dan $H(s)$ menggunakan nilai terenkripsi dari pangkat $s$ (disebut CRS: Common Reference String), tanpa perlu mengetahui $s$ itu sendiri. Pemverifikasi menggunakan fungsi pasangan untuk memverifikasi apakah hubungan $P(s) = H(s) \cdot Z(s)$ berlaku, langsung dalam bentuk nilai yang terenkripsi.&lt;/p>
&lt;h3 id="4-pengaturan-terpercaya-trusted-setup">4. Pengaturan Terpercaya (Trusted Setup)
&lt;/h3>&lt;p>Kelemahan terbesar zk-SNARKs (terutama Groth16 versi awal) adalah perlunya proses untuk menghasilkan titik rahasia $s$, yang disebut &lt;strong>Pengaturan Terpercaya (Trusted Setup)&lt;/strong>. Jika pembuat $s$ tidak membuangnya dan menyimpannya, mereka dapat menghasilkan bukti palsu apa pun (masalah Limbah Beracun / Toxic Waste).&lt;/p>
&lt;p>Untuk mencegahnya, sebuah upacara yang disebut &amp;ldquo;Ceremony&amp;rdquo; diadakan menggunakan Komputasi Multi-Pihak (Multi-Party Computation / MPC). Banyak peserta bekerja sama untuk menyediakan nilai acak, dan jika setidaknya satu peserta membuang nilai acaknya dengan jujur, keamanan seluruh sistem akan tetap terjaga. Namun, penelitian untuk menghilangkan ketergantungan ini telah berlangsung selama bertahun-tahun.&lt;/p>
&lt;hr>
&lt;h2 id="detail-teknis-zk-starks">Detail Teknis zk-STARKs
&lt;/h2>&lt;p>Sebagai jawaban atas ketergantungan pada pengaturan terpercaya dan risiko dekripsi kriptografi kurva eliptik oleh komputer kuantum, muncullah &lt;strong>zk-STARKs&lt;/strong> (Zero-Knowledge Scalable Transparent Argument of Knowledge).&lt;/p>
&lt;p>STARKs yang dikembangkan oleh Eli Ben-Sasson dan kawan-kawan memiliki karakteristik sesuai namanya, yaitu &amp;ldquo;Transparent&amp;rdquo; (Transparan) karena sama sekali tidak memerlukan pengaturan terpercaya, dan &amp;ldquo;Scalable&amp;rdquo; (Terukur) di mana ukuran bukti dan waktu verifikasi tetap efisien meskipun jumlah komputasi meningkat.&lt;/p>
&lt;h3 id="1-komitmen-polinomial-dan-protokol-fri">1. Komitmen Polinomial dan Protokol FRI
&lt;/h3>&lt;p>zk-STARKs tidak menggunakan kriptografi kurva eliptik, melainkan mendasarkan keamanannya &lt;strong>hanya pada fungsi hash&lt;/strong>. Oleh karena itu, ia memiliki sifat sebagai kriptografi pasca-kuantum (Post-Quantum Cryptography).&lt;/p>
&lt;p>Verifikasi perhitungan dilakukan menggunakan sifat polinomial satu dimensi atau multi-dimensi setelah diubah menjadi format yang disebut AIR (Algebraic Intermediate Representation). Inti dari STARKs terletak pada protokol &lt;strong>FRI (Fast Reed-Solomon Interactive Oracle Proof of Proximity)&lt;/strong>.&lt;/p>
&lt;p>Protokol FRI adalah teknologi untuk memverifikasi &amp;ldquo;apakah suatu fungsi cukup dekat dengan polinomial dengan derajat tertentu (Proximity)&amp;rdquo;. Pembukti melakukan komitmen (komitmen polinomial) dengan menjadikan nilai-nilai polinomial sebagai daun (leaf) dari Pohon Merkle (Merkle Tree).&lt;/p>
&lt;div class="mermaid">graph TD
Root["Akar Merkle (Komitmen)"] --> Node0["Node 0"]
Root --> Node1["Node 1"]
Node0 --> Leaf0["P(x_0)"]
Node0 --> Leaf1["P(x_1)"]
Node1 --> Leaf2["P(x_2)"]
Node1 --> Leaf3["P(x_3)"]&lt;/div>
&lt;p>Pemverifikasi akan meminta pembukaan beberapa titik secara acak, lalu menggunakan bukti Merkle (Merkle Proof) untuk mengonfirmasi bahwa titik-titik tersebut termasuk dalam komitmen. Dengan mengulang proses ini secara rekursif, dapat dijamin dengan probabilitas yang sangat besar bahwa derajat polinomial aslinya memang rendah.&lt;/p>
&lt;h3 id="perbandingan-antara-zk-snarks-dan-zk-starks">Perbandingan antara zk-SNARKs dan zk-STARKs
&lt;/h3>&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Karakteristik&lt;/th>
&lt;th style="text-align:left">zk-SNARKs&lt;/th>
&lt;th style="text-align:left">zk-STARKs&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>Asumsi Kriptografis&lt;/strong>&lt;/td>
&lt;td style="text-align:left">Kurva eliptik, pasangan (pairing)&lt;/td>
&lt;td style="text-align:left">Fungsi hash tahan bentrokan (collision-resistant)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>Pengaturan Terpercaya&lt;/strong>&lt;/td>
&lt;td style="text-align:left">Diperlukan (seperti Plonk bersifat universal)&lt;/td>
&lt;td style="text-align:left">Tidak diperlukan (Transparent)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>Tahan Kuantum&lt;/strong>&lt;/td>
&lt;td style="text-align:left">Tidak&lt;/td>
&lt;td style="text-align:left">Ya&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>Ukuran Bukti&lt;/strong>&lt;/td>
&lt;td style="text-align:left">Sangat kecil (~200 Byte)&lt;/td>
&lt;td style="text-align:left">Agak besar (puluhan KB)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>Biaya Komputasi Pembuatan Bukti&lt;/strong>&lt;/td>
&lt;td style="text-align:left">Tinggi&lt;/td>
&lt;td style="text-align:left">Relatif lebih rendah dari SNARKs&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>Biaya Verifikasi (Biaya Gas)&lt;/strong>&lt;/td>
&lt;td style="text-align:left">Sangat rendah (konstan)&lt;/td>
&lt;td style="text-align:left">Rendah (meningkat secara logaritmik)&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Dalam beberapa tahun terakhir, dengan munculnya &amp;ldquo;SNARKs yang tidak memerlukan pengaturan terpercaya atau hanya sekali saja&amp;rdquo; seperti Plonk atau Halo2, batas antara SNARKs dan STARKs perlahan menjadi kabur, tetapi perbedaan pendekatan matematis dasar antara keduanya tetap penting.&lt;/p>
&lt;hr>
&lt;h2 id="aplikasi-terkini-zero-knowledge-proof-pada-web3-dan-keamanan">Aplikasi Terkini Zero-Knowledge Proof pada Web3 dan Keamanan
&lt;/h2>&lt;p>Setelah beralih dari teori ke praktik, ZKP saat ini sedang memicu revolusi di garis depan Web3 dan keamanan siber.&lt;/p>
&lt;h3 id="1-skala-puncak-ethereum-melalui-zk-rollups">1. Skala Puncak Ethereum Melalui ZK-Rollups
&lt;/h3>&lt;p>Blockchain L1 (Layer 1) seperti Ethereum terlalu memprioritaskan desentralisasi dan keamanan sehingga menghadapi keterbatasan besar dalam skalabilitas (trilema). Solusi L2 (Layer 2) definitif untuk memecahkan masalah ini adalah &lt;strong>ZK-Rollups&lt;/strong>.&lt;/p>
&lt;p>Pada ZK-Rollup, ribuan transaksi dieksekusi dan diproses secara off-chain (L2), lalu menghasilkan &amp;ldquo;sebuah ZKP (Bukti Validitas / Validity Proof)&amp;rdquo; yang menunjukkan bahwa semua transaksi tersebut telah dieksekusi dengan benar. Smart contract pada rantai L1 hanya perlu memverifikasi bukti ini.&lt;/p>
&lt;div class="mermaid">flowchart LR
Users["Users (Kirim Tx)"] --> Sequencer["Sequencer (Kumpul &amp; Eksekusi Tx)"]
Sequencer --> Prover["Prover (Pembuat ZKP)"]
Sequencer --> L1Contract["L1 Smart Contract (Publikasi Data Tx)"]
Prover --> L1Contract["Penyerahan ZKP (Bukti)"]
L1Contract --> Verify["Verifikasi &amp; Pembaruan Status"]&lt;/div>
&lt;p>Keuntungan terbesar dari ZK-Rollups adalah, berbeda dengan Optimistic Rollups (seperti Arbitrum atau Optimism), ia tidak memerlukan masa tantangan (biasanya 7 hari) untuk bukti kecurangan (Fraud Proof). Karena kebenarannya dijamin secara kriptografis, penarikan dana ke L1 (Finalitas) akan selesai seketika begitu bukti berhasil diverifikasi. Saat ini, proyek-proyek seperti zkSync, Starknet, Scroll, dan Polygon zkEVM sedang bersaing ketat dalam pengembangan, dan perwujudan &lt;strong>zkEVM&lt;/strong> yang kompatibel dengan EVM (Ethereum Virtual Machine) mendorong pertumbuhan ekosistem dengan sangat pesat.&lt;/p>
&lt;h3 id="2-identitas-pelindung-privasi-zkp-untuk-identitas">2. Identitas Pelindung Privasi (ZKP untuk Identitas)
&lt;/h3>&lt;p>Cara autentikasi pribadi di dunia digital juga akan berubah secara fundamental oleh ZKP.
Sebagai contoh, ketika ditanya &amp;ldquo;Apakah Anda berusia 18 tahun ke atas?&amp;rdquo;, pada sistem konvensional, Anda harus menunjukkan SIM atau paspor, yang secara tidak langsung memberikan informasi pribadi yang tidak diperlukan seperti nama dan alamat kepada pihak lain.&lt;/p>
&lt;p>Dengan menggunakan ZKP, berdasarkan sertifikat digital (Verifiable Credential) yang diterbitkan oleh instansi publik, seseorang &lt;strong>hanya perlu membuktikan secara matematis fakta&lt;/strong> bahwa &amp;ldquo;Berdasarkan tanggal lahir saya, saat ini saya berusia 18 tahun ke atas&amp;rdquo;. Pemverifikasi hanya perlu memverifikasi tanda tangan sertifikat dan ZKP, tanpa bisa mengetahui tanggal lahir atau identitas asli pengguna.&lt;/p>
&lt;p>Pada proyek Proof of Personhood (bukti kemanusiaan) seperti Worldcoin, data selaput pelangi (iris) mata tidak disimpan atau dibagikan secara langsung. Sebaliknya, mereka menggunakan ZKP untuk membuktikan &amp;ldquo;hanya bahwa seseorang adalah manusia yang unik&amp;rdquo;.&lt;/p>
&lt;h3 id="3-smart-contract-rahasia-dan-penggunaan-di-tingkat-perusahaan-enterprise">3. Smart Contract Rahasia dan Penggunaan di Tingkat Perusahaan (Enterprise)
&lt;/h3>&lt;p>Sifat blockchain publik di mana &amp;ldquo;semua data dipublikasikan&amp;rdquo; sebelumnya menjadi hambatan besar bagi perusahaan ketika mereka ingin mengelola transaksi rahasia atau informasi rantai pasokan di atas blockchain.&lt;/p>
&lt;p>Dengan menggunakan teknologi ZKP (misalnya pada jaringan yang berfokus pada privasi seperti Aleo atau Aztec), kita dapat mengenkripsi nilai masukan transaksi, nilai keluaran, bahkan logika smart contract yang dieksekusi, dan hanya mencatatkan kebenaran dari pembaruan status ke dalam rantai publik. Hal ini memungkinkan pencegahan front-running (MEV) dalam DeFi (Keuangan Terdesentralisasi) serta pembentukan jaringan konsorsium rahasia antarperusahaan, sembari tetap menikmati tingkat keamanan yang tinggi dari rantai publik.&lt;/p>
&lt;hr>
&lt;h2 id="tantangan-dan-prospek-zkp-ke-depan">Tantangan dan Prospek ZKP ke Depan
&lt;/h2>&lt;p>ZKP tidak diragukan lagi merupakan teknologi dasar generasi berikutnya, tetapi masih menyisakan beberapa tantangan:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Biaya Komputasi Pembuatan Bukti dan Akselerasi Perangkat Keras&lt;/strong>
Pembuatan ZKP memerlukan operasi polinomial yang sangat besar, FFT (Fast Fourier Transform), dan MSM (Multi-Scalar Multiplication). Saat ini, penelitian tentang pengembangan perangkat keras khusus (FPGA atau ASIC) untuk mempercepat pembuatan bukti ini, atau yang disebut &lt;strong>Penambangan ZKP (Prover Network)&lt;/strong>, sedang berkembang pesat.&lt;/li>
&lt;li>&lt;strong>Standardisasi dan Peningkatan Pengalaman Pengembang (DX)&lt;/strong>
Banyak bahasa khusus yang bermunculan untuk menulis sirkuit ZKP, seperti Circom, Cairo, Noir, Leo, dan lain-lain. Kemampuan untuk menyatukan standar ini dan kematangan kompiler yang secara otomatis dapat menghasilkan sirkuit ZKP dari bahasa pemrograman yang ada seperti Rust atau C++ akan menjadi kunci bagi para rekayasawan perangkat lunak umum untuk mengadopsi ZKP.&lt;/li>
&lt;/ol>
&lt;h2 id="penutup">Penutup
&lt;/h2>&lt;p>Zero-Knowledge Proof (ZKP) telah berevolusi dari sekadar &amp;ldquo;teknologi untuk meningkatkan anonimitas mata uang kripto&amp;rdquo; menjadi &amp;ldquo;teknologi serbaguna yang mendefinisikan ulang kepercayaan (trust) di seluruh internet&amp;rdquo;. Bukti kecil yang dihitung dari kedalaman formula matematika dan teori kriptografi ini akan menjadi perisai kuat yang melindungi privasi kita, sekaligus memperluas skalabilitas blockchain tanpa batas.&lt;/p>
&lt;p>Dalam mewujudkan adopsi massal Web3 yang sesungguhnya dan membangun internet generasi mendatang yang aman dan privat, Zero-Knowledge Proof akan terus berfungsi sebagai bagian yang paling penting. Evolusi teknologi ZKP ke depannya sangat patut untuk terus diperhatikan.&lt;/p>
&lt;hr>
&lt;p>&lt;em>Referensi dan Tautan Terkait&lt;/em>&lt;/p>
&lt;ul>
&lt;li>Groth, J. (2016). &amp;ldquo;On the Size of Pairing-based Non-interactive Arguments&amp;rdquo;&lt;/li>
&lt;li>Ben-Sasson, E., et al. (2018). &amp;ldquo;Scalable, transparent, and post-quantum secure computational integrity&amp;rdquo;&lt;/li>
&lt;li>Vitalik Buterin&amp;rsquo;s blog on zk-SNARKs and zk-STARKs&lt;/li>
&lt;/ul></description></item><item><title>Apa itu Fully Homomorphic Encryption (FHE)? Menjelaskan Kunci Keamanan Generasi Berikutnya</title><link>http://kenji.blog/id/p/fully-homomorphic-encryption-fhe-explained/</link><pubDate>Fri, 11 Sep 2026 11:00:00 +0900</pubDate><guid>http://kenji.blog/id/p/fully-homomorphic-encryption-fhe-explained/</guid><description>&lt;img src="http://kenji.blog/p/fully-homomorphic-encryption-fhe-explained/img/eyecatch.jpg" alt="Featured image of post Apa itu Fully Homomorphic Encryption (FHE)? Menjelaskan Kunci Keamanan Generasi Berikutnya" />&lt;p>Seiring dengan cloud computing dan teknologi AI yang menjadi infrastruktur masyarakat, pertukaran antara &amp;ldquo;privasi data&amp;rdquo; dan &amp;ldquo;pemanfaatan data&amp;rdquo; telah menjadi salah satu masalah terpenting. Meskipun terdapat permintaan yang meningkat untuk membiarkan AI di cloud menganalisis data yang sangat sensitif seperti data medis, informasi keuangan, dan informasi biometrik pribadi, banyak perusahaan ragu untuk mengirimkan data ke pihak eksternal karena masalah keamanan.&lt;/p>
&lt;p>Teknologi enkripsi konvensional (seperti AES dan RSA) sangat baik dalam melindungi data yang disimpan dalam penyimpanan (Data at Rest) dan data yang mengalir melalui jaringan (Data in Transit). Namun, &lt;strong>saat melakukan pemrosesan (komputasi) seperti pencarian dan machine learning pada data di sisi server (Data in Use), data tersebut harus didekripsi terlebih dahulu untuk kembali ke bentuk plaintext&lt;/strong>. Jika server diretas pada saat dekripsi ini, atau jika administrator internal yang berniat jahat mengintip data tersebut, hal ini akan langsung menyebabkan kebocoran informasi.&lt;/p>
&lt;p>Teknologi impian yang mengatasi kelemahan mendasar dari &amp;ldquo;dekripsi saat pemrosesan&amp;rdquo; ini adalah &lt;strong>Fully Homomorphic Encryption (FHE)&lt;/strong>. Dengan menggunakan FHE, dimungkinkan untuk melakukan proses komputasi sambil menjaga data tetap terenkripsi tanpa mendekripsinya sama sekali, dan hanya mengembalikan ciphertext dari hasil komputasi tersebut kepada klien.&lt;/p>
&lt;p>Artikel ini akan secara mendalam membahas tentang FHE yang merupakan kunci keamanan generasi berikutnya, mulai dari konsep FHE, sejarah, terobosan inovatif oleh Craig Gentry, dasar-dasar matematika (seperti Ring-LWE), tantangan terbesar yaitu &amp;ldquo;noise&amp;rdquo; dan solusinya (bootstrapping), hingga library implementasi terbaru.&lt;/p>
&lt;hr>
&lt;h2 id="1-apa-itu-homomorphic-encryption-konsep-dasar">1. Apa itu Homomorphic Encryption? Konsep Dasar
&lt;/h2>&lt;p>&amp;ldquo;Homomorphic&amp;rdquo; (Homomorfik) adalah istilah dalam aljabar, yang merujuk pada sifat di mana himpunan dengan struktur tertentu dapat dipetakan sambil mempertahankan struktur operasi tersebut. &amp;ldquo;Homomorfisme&amp;rdquo; dalam teori kriptografi adalah sifat di mana &lt;strong>operasi dalam ruang plaintext sesuai dengan operasi dalam ruang ciphertext&lt;/strong>.&lt;/p>
&lt;p>Dinyatakan dalam rumus matematika sederhana, misalkan fungsi enkripsi untuk plaintext $m_1$ dan $m_2$ adalah $E(\cdot)$, dan fungsi dekripsinya adalah $D(\cdot)$. Jika operasi (seperti penjumlahan dan perkalian) pada plaintext adalah $\circ$ dan operasi pada ciphertext adalah $\diamond$, maka hubungan berikut ini berlaku.&lt;/p>
$$ D(E(m_1) \diamond E(m_2)) = m_1 \circ m_2 $$
&lt;p>Artinya, jika kita mendekripsi hasil dari penerapan operasi $\diamond$ pada ciphertext $E(m_1)$ dan $E(m_2)$, hasilnya akan sama dengan hasil operasi $\circ$ pada plaintext aslinya.&lt;/p>
&lt;h3 id="alur-data-dalam-cloud-computing">Alur Data dalam Cloud Computing
&lt;/h3>&lt;p>Arsitektur pemrosesan cloud menggunakan FHE sama sekali berbeda dari arsitektur konvensional. Diagram berikut menunjukkan alur pemrosesan data yang aman menggunakan FHE.&lt;/p>
&lt;div class="mermaid">graph TD
A["Klien (Menyimpan kunci privat)"] -->|1. Enkripsi plaintext x: E(x)| B["Server Cloud (Hanya data terenkripsi)"]
B -->|2. Terapkan fungsi f pada ciphertext: E(f(x))| B
B -->|3. Ciphertext dari hasil perhitungan E(y)| A
A -->|4. Dekripsi dengan kunci privat: y = f(x)| A
style A fill:#d4edda,stroke:#28a745
style B fill:#f8d7da,stroke:#dc3545&lt;/div>
&lt;p>Server menerima data terenkripsi $E(x)$, tetapi tidak pernah dapat mengetahui isi data tersebut karena tidak memiliki kunci privat. Namun, dengan memanfaatkan properti FHE, server dapat menerapkan fungsi $f$ (misalnya, model inferensi machine learning) pada ciphertext untuk menghasilkan $E(f(x))$. Klien menerima hasil ini, dan dengan mendekripsinya menggunakan kunci privat mereka sendiri, klien mendapatkan hasil yang diinginkan $y = f(x)$.&lt;/p>
&lt;hr>
&lt;h2 id="2-sejarah-evolusi-homomorphic-encryption-phe-she-fhe">2. Sejarah Evolusi Homomorphic Encryption: PHE, SHE, FHE
&lt;/h2>&lt;p>Homomorphic Encryption tidak langsung mencapai bentuk &amp;ldquo;sempurna&amp;rdquo; yang ada saat ini sekaligus. Ini secara luas diklasifikasikan ke dalam 3 tahap berdasarkan jenis dan jumlah operasi yang dapat direalisasikan.&lt;/p>
&lt;h3 id="partially-homomorphic-encryption-phe">Partially Homomorphic Encryption (PHE)
&lt;/h3>&lt;p>PHE adalah skema enkripsi yang memungkinkan operasi penjumlahan atau perkalian, &lt;strong>salah satu dari keduanya saja&lt;/strong>, tanpa batas. Faktanya, enkripsi dengan sifat ini telah ada sejak lama.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Enkripsi RSA (Homomorfisme terhadap perkalian)&lt;/strong>
Enkripsi RSA secara tidak sengaja memiliki homomorfisme perkalian. Jika plaintext $m_1, m_2$ dan kunci publik $(e, N)$:
$$ E(m_1) = m_1^e \pmod N $$
$$ E(m_2) = m_2^e \pmod N $$
Jika kita mengalikannya:
$$ E(m_1) \times E(m_2) = (m_1 \cdot m_2)^e \pmod N = E(m_1 \times m_2) $$
Dengan cara ini, perkalian ciphertext berhubungan dengan perkalian plaintext.&lt;/li>
&lt;li>&lt;strong>Enkripsi Paillier (Homomorfisme terhadap penjumlahan)&lt;/strong>
Ditemukan pada tahun 1999, enkripsi Paillier memiliki homomorfisme terhadap penjumlahan. Ini telah digunakan secara praktis dalam e-voting (menghitung suara terenkripsi dan hanya mendekripsi hasil akhirnya).&lt;/li>
&lt;/ul>
&lt;h3 id="somewhat-homomorphic-encryption-she">Somewhat Homomorphic Encryption (SHE)
&lt;/h3>&lt;p>Ini adalah metode di mana &lt;strong>baik&lt;/strong> penjumlahan maupun perkalian dapat dilakukan, tetapi ada &lt;strong>batasan pada jumlah operasi (kedalaman sirkuit)&lt;/strong> yang dapat dihitung. Karena akumulasi &amp;ldquo;noise&amp;rdquo; yang akan dibahas nanti, dekripsi menjadi mustahil setelah sejumlah perkalian tertentu dilakukan. Enkripsi BGN (Boneh-Goh-Nissim) dari tahun 2005 termasuk dalam kategori ini, tetapi memiliki keterbatasan dalam melakukan komputasi kompleks yang praktis (seperti deep learning).&lt;/p>
&lt;h3 id="fully-homomorphic-encryption-fhe">Fully Homomorphic Encryption (FHE)
&lt;/h3>&lt;p>Ini adalah skema enkripsi yang dapat menjalankan baik penjumlahan maupun perkalian dengan &lt;strong>jumlah yang tidak terbatas&lt;/strong>. Mirip dengan Turing completeness dalam teori informasi, jika kita dapat menggabungkan penjumlahan (setara dengan XOR) dan perkalian (setara dengan AND) tanpa batas, itu berarti secara prinsip, setiap fungsi atau algoritma yang dapat dihitung dapat dieksekusi dalam keadaan terenkripsi.&lt;/p>
&lt;p>FHE telah lama disebut sebagai &amp;ldquo;Cawan Suci dunia kriptografi&amp;rdquo;, dan bahkan dikatakan mustahil untuk direalisasikan. Namun, pada tahun 2009, &lt;strong>Craig Gentry&lt;/strong>, yang saat itu adalah seorang mahasiswa program doktor di Universitas Stanford, mengusulkan skema FHE pertama menggunakan Ideal Lattices, yang mengejutkan dunia.&lt;/p>
&lt;hr>
&lt;h2 id="3-fondasi-matematika-fhe-masalah-lwe-dan-ring-lwe">3. Fondasi Matematika FHE: Masalah LWE dan Ring-LWE
&lt;/h2>&lt;p>Sebagian besar skema FHE utama saat ini didasarkan pada &lt;strong>Masalah LWE (Learning With Errors)&lt;/strong>, yang merupakan masalah matematika sulit dalam &amp;ldquo;Lattice-based Cryptography (Kriptografi berbasis kisi)&amp;rdquo;, yang juga dikenal sebagai kriptografi tahan kuantum (Post-Quantum Cryptography).&lt;/p>
&lt;h3 id="pemahaman-intuitif-tentang-masalah-lwe">Pemahaman Intuitif tentang Masalah LWE
&lt;/h3>&lt;p>Menyelesaikan persamaan linear simultan adalah mudah jika Anda menggunakan metode seperti eliminasi Gauss.&lt;/p>
$$ \begin{cases} 3s_1 + 4s_2 + 2s_3 \equiv 12 \pmod{17} \\ 1s_1 + 9s_2 + 5s_3 \equiv 8 \pmod{17} \\ \vdots \end{cases} $$
&lt;p>Namun, apa yang terjadi jika Anda menambahkan &amp;ldquo;kesalahan (noise) acak&amp;rdquo; $e$ yang sangat kecil ke hasil persamaan ini?&lt;/p>
$$ \begin{cases} 3s_1 + 4s_2 + 2s_3 + e_1 \equiv 13 \pmod{17} \\ 1s_1 + 9s_2 + 5s_3 + e_2 \equiv 7 \pmod{17} \\ \vdots \end{cases} $$
&lt;p>Dengan hanya menambahkan error $e$ ini, masalah untuk menemukan vektor variabel rahasia $\vec{s}$ berubah menjadi masalah NP-hard yang sulit dipecahkan bahkan jika menggunakan superkomputer saat ini atau komputer kuantum. Inilah masalah LWE.&lt;/p>
&lt;h3 id="masalah-ring-lwe-rlwe">Masalah Ring-LWE (RLWE)
&lt;/h3>&lt;p>Masalah LWE standar melibatkan operasi matriks, yang menyebabkan ukuran kunci yang sangat besar (terkadang dalam gigabyte) dan efisiensi komputasi yang buruk. Untuk mengatasi hal ini, diperkenalkanlah &lt;strong>masalah Ring-LWE (RLWE)&lt;/strong>, yang menggunakan operasi pada gelanggang polinomial (polynomial rings).&lt;/p>
&lt;p>Pada RLWE, elemen-elemen tersebut termasuk dalam gelanggang polinomial $R_q = \mathbb{Z}_q[x] / (x^N + 1)$ (di mana $N$ adalah pangkat dari 2, dan $q$ adalah bilangan prima sebagai modulus).
Jika kunci privat adalah polinomial $s(x)$, dengan polinomial acak $a(x)$, dan polinomial noise kecil $e(x)$, maka pasangan kunci publiknya adalah sebagai berikut.&lt;/p>
$$ (a(x), b(x)) \quad \text{dimana} \quad b(x) = -a(x) \cdot s(x) + e(x) \pmod q $$
&lt;p>Selama enkripsi, properti polinomial ini digunakan untuk mengenkode plaintext $m(x)$ dan menghasilkan ciphertext.&lt;/p>
&lt;hr>
&lt;h2 id="4-hambatan-terbesar-noise-dan-bootstrapping-gentry">4. Hambatan Terbesar &amp;ldquo;Noise&amp;rdquo; dan Bootstrapping Gentry
&lt;/h2>&lt;p>Konsep paling penting dalam memahami FHE adalah &lt;strong>&amp;ldquo;Manajemen Noise&amp;rdquo;&lt;/strong>.&lt;/p>
&lt;p>Dalam kriptografi berbasis LWE/RLWE, &amp;ldquo;noise (error)&amp;rdquo; kecil sengaja disertakan untuk menjamin keamanan.
Proses mendekripsi ciphertext $c$ dari plaintext $m$ dapat diekspresikan secara kasar dengan rumus berikut.&lt;/p>
$$ D(c) = (c \cdot s) \pmod q = m + \text{noise} $$
&lt;p>Selama dekripsi, plaintext yang benar $m$ diperoleh dengan menghilangkan &lt;code>noise&lt;/code> ini melalui proses seperti pembulatan (rounding). Namun, ketika melakukan operasi homomorfik (terutama perkalian) di antara ciphertext, noise ini akan berlipat ganda secara dramatis.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Penjumlahan Homomorfik&lt;/strong>: Noise meningkat secara aditif ($e_1 + e_2$). Ini adalah peningkatan yang relatif lambat.&lt;/li>
&lt;li>&lt;strong>Representasi matematika dari homomorfisme melalui penjumlahan homomorfik&lt;/strong>:
$$ E(m_1) \oplus E(m_2) = E(m_1 + m_2) $$&lt;/li>
&lt;li>&lt;strong>Perkalian Homomorfik&lt;/strong>: Noise meledak secara multiplikatif (karena mencakup komponen seperti $e_1 \times e_2$). Hanya dengan melakukan perkalian beberapa kali, noise akan melampaui ambang batas $q/2$, membuat proses pembulatan yang benar menjadi tidak mungkin, dan dekripsi akan gagal.&lt;/li>
&lt;li>&lt;strong>Representasi matematika dari homomorfisme melalui perkalian homomorfik&lt;/strong>:
$$ E(m_1) \otimes E(m_2) = E(m_1 \times m_2) $$&lt;/li>
&lt;/ul>
&lt;p>Inilah sebabnya mengapa FHE tidak dapat direalisasikan untuk waktu yang lama, dan hanya terbatas pada SHE (dengan batas jumlah).&lt;/p>
&lt;h3 id="keajaiban-bootstrapping">Keajaiban Bootstrapping
&lt;/h3>&lt;p>Kontribusi jenius dari Craig Gentry adalah penemuan teknik pengurangan noise yang disebut &lt;strong>&amp;ldquo;Bootstrapping&amp;rdquo;&lt;/strong>. Ini adalah pergeseran paradigma (paradigm shift) dalam kriptografi.&lt;/p>
&lt;p>Secara intuitif, operasi ini berarti &amp;ldquo;sebelum ciphertext rusak karena dipenuhi noise, &amp;lsquo;dekripsi&amp;rsquo; ia untuk membersihkannya selagi masih dalam kondisi terenkripsi, lalu masukkan ke dalam ciphertext baru.&amp;rdquo;&lt;/p>
&lt;ol>
&lt;li>Misalkan ada ciphertext dengan noise tinggi $C_{noisy}$.&lt;/li>
&lt;li>Klien terlebih dahulu memberikan kepada server kunci privat $sk$ yang &amp;ldquo;dienkripsi dengan kunci publik&amp;rdquo; $E_{pk}(sk)$ (ini disebut kunci bootstrapping).&lt;/li>
&lt;li>Server mengeksekusi &lt;strong>sirkuit dekripsi (Decryption Circuit)&lt;/strong> secara homomorfik pada $C_{noisy}$.&lt;/li>
&lt;li>Secara khusus, ia melakukan &amp;ldquo;dekripsi dalam ruang terenkripsi&amp;rdquo; pada $E_{pk}(C_{noisy})$ menggunakan $E_{pk}(sk)$.&lt;/li>
&lt;li>Karena sirkuit dekripsi ini sendiri adalah operasi homomorfik yang menghasilkan noise baru, noise dari ciphertext baru yang dihasilkan $C_{fresh}$ akan di-reset ke &amp;ldquo;tingkat tetap&amp;rdquo; tertentu.&lt;/li>
&lt;/ol>
&lt;div class="mermaid">graph LR
A["Ciphertext Noise Tinggi C_noisy"] --> B["Sirkuit Dekripsi Homomorfik (Eval_Dec)"]
C["Kunci privat terenkripsi E(sk)"] --> B
B --> D["Ciphertext Noise Rendah C_fresh"]
style B fill:#ffeeba,stroke:#ffc107&lt;/div>
&lt;p>Dengan menjalankan bootstrapping ini secara berkala selama perhitungan, secara teoritis dimungkinkan untuk menghitung sirkuit dengan kedalaman tak terbatas (pencapaian FHE). Namun, skema awal Gentry sangat memakan biaya komputasi, dengan proses bootstrapping ini membutuhkan waktu puluhan menit hingga beberapa jam untuk sekali proses.&lt;/p>
&lt;hr>
&lt;h2 id="5-generasi-fhe-dan-evolusi-skema-utama">5. Generasi FHE dan Evolusi Skema Utama
&lt;/h2>&lt;p>Menuju implementasi praktis FHE, para kriptografer di seluruh dunia telah berlomba untuk meningkatkan algoritmanya. Saat ini, FHE diklasifikasikan ke dalam 4 generasi/keluarga utama.&lt;/p>
&lt;h3 id="generasi-kedua-komputasi-eksak-pada-bilangan-bulat-bgv-bfv">Generasi Kedua: Komputasi Eksak pada Bilangan Bulat (BGV, BFV)
&lt;/h3>&lt;p>Skema &lt;strong>BGV (Brakerski-Gentry-Vaikuntanathan)&lt;/strong> dan &lt;strong>BFV (Brakerski/Fan-Vercauteren)&lt;/strong> yang muncul sekitar tahun 2011-2012. Skema ini didasarkan pada RLWE dan cocok untuk aritmatika modular (perhitungan eksak) pada bilangan bulat.
Skema ini mendukung teknologi batching seperti SIMD (Single Instruction, Multiple Data), yang ditandai dengan kemampuannya untuk mengemas ribuan slot data ke dalam satu ciphertext polinomial besar dan menghitungnya secara paralel sekaligus.&lt;/p>
&lt;h3 id="generasi-ketiga-akselerasi-bootstrapping-gsw-fhew-tfhe">Generasi Ketiga: Akselerasi Bootstrapping (GSW, FHEW, TFHE)
&lt;/h3>&lt;p>Skema &lt;strong>GSW (Gentry-Sahai-Waters)&lt;/strong> pada tahun 2013 menyederhanakan struktur FHE. Dan dari perkembangan ini, salah satu pendekatan utama saat ini adalah &lt;strong>TFHE (Fast Fully Homomorphic Encryption over the Torus)&lt;/strong>.
Fitur dari TFHE adalah bahwa bootstrapping-nya sangat cepat (dalam urutan milidetik). Ini unggul dalam operasi tingkat gerbang logis (sirkuit logika seperti AND, XOR) dan karena ukuran ciphertext-nya relatif kecil, ia cocok untuk mengevaluasi sirkuit logika acak dengan kecepatan tinggi.&lt;/p>
&lt;h3 id="generasi-keempat-spesialisasi-dalam-komputasi-perkiraan-dan-machine-learning-ckks">Generasi Keempat: Spesialisasi dalam Komputasi Perkiraan dan Machine Learning (CKKS)
&lt;/h3>&lt;p>Skema &lt;strong>CKKS (Cheon-Kim-Kim-Song)&lt;/strong> yang diusulkan oleh Cheon dkk. pada tahun 2017 adalah teknologi definitif dalam pelestarian privasi untuk AI dan machine learning saat ini.
Sementara FHE sebelumnya berfokus pada &amp;ldquo;komputasi bilangan bulat eksak&amp;rdquo;, CKKS mendukung &lt;strong>&amp;ldquo;komputasi perkiraan floating-point&amp;rdquo;&lt;/strong> sambil tetap terenkripsi. Skema ini menunjukkan kinerja luar biasa dalam komputasi bilangan riil di mana sedikit kesalahan (error) diperbolehkan, seperti dalam pelatihan dan inferensi neural network.&lt;/p>
&lt;p>Tabel berikut merangkum cara memilih skema berdasarkan tujuan.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Nama Skema&lt;/th>
&lt;th style="text-align:left">Tipe Data yang Dikuasai&lt;/th>
&lt;th style="text-align:left">Use Case yang Disarankan&lt;/th>
&lt;th style="text-align:left">Fitur&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>BFV / BGV&lt;/strong>&lt;/td>
&lt;td style="text-align:left">Bilangan Bulat (Integer)&lt;/td>
&lt;td style="text-align:left">Komputasi statistik eksak, agregasi data keuangan, pencarian DB&lt;/td>
&lt;td style="text-align:left">Throughput tinggi menggunakan batching SIMD&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>CKKS&lt;/strong>&lt;/td>
&lt;td style="text-align:left">Bilangan Riil (Real/Complex)&lt;/td>
&lt;td style="text-align:left">Machine Learning (DNN, regresi logistik), pemrosesan sinyal&lt;/td>
&lt;td style="text-align:left">Akselerasi dengan komputasi perkiraan, penskalaan ulang (rescaling)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>TFHE&lt;/strong>&lt;/td>
&lt;td style="text-align:left">Nilai Boolean (Boolean)&lt;/td>
&lt;td style="text-align:left">Sirkuit logika acak, pencarian string, evaluasi fungsi non-linear&lt;/td>
&lt;td style="text-align:left">Bootstrapping ultra-cepat (tingkat milidetik)&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="6-praktik-library-fhe-dan-kode-konseptual">6. Praktik: Library FHE dan Kode Konseptual
&lt;/h2>&lt;p>Saat ini, terdapat banyak library open-source yang tersedia yang memungkinkan penggunaan FHE tanpa perlu memiliki pengetahuan mendalam tentang kriptografi.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Microsoft SEAL (Simple Encrypted Arithmetic Library)&lt;/strong>: Library C++ yang mendukung BFV, BGV, dan CKKS. Ini adalah salah satu standar industri. Binding Python-nya, &lt;strong>TenSEAL&lt;/strong>, populer di kalangan engineer AI.&lt;/li>
&lt;li>&lt;strong>Zama (Concrete)&lt;/strong>: Framework berbasis TFHE. Dapat ditulis dengan Rust/Python, dan menyediakan fungsionalitas (Concrete ML) untuk mengompilasi model PyTorch yang ada agar berjalan pada FHE.&lt;/li>
&lt;li>&lt;strong>OpenFHE&lt;/strong>: Penerus PALISADE, library C++ komprehensif yang mendukung semua skema utama.&lt;/li>
&lt;/ul>
&lt;h3 id="contoh-pemrograman-fhe-menggunakan-python-tenseal">Contoh Pemrograman FHE menggunakan Python (TenSEAL)
&lt;/h3>&lt;p>Berikut adalah contoh kode Python konseptual yang menggunakan skema CKKS untuk menambahkan dan mengalikan vektor bilangan riil yang masih dalam keadaan terenkripsi.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;span class="lnt">29
&lt;/span>&lt;span class="lnt">30
&lt;/span>&lt;span class="lnt">31
&lt;/span>&lt;span class="lnt">32
&lt;/span>&lt;span class="lnt">33
&lt;/span>&lt;span class="lnt">34
&lt;/span>&lt;span class="lnt">35
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">tenseal&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">ts&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 1. Setup Konteks (Termasuk pembuatan kunci)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Menggunakan skema CKKS dan mengatur derajat polinomial modulus ke 8192&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">context&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ts&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">context&lt;/span>&lt;span class="p">(&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ts&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">SCHEME_TYPE&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">CKKS&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">poly_modulus_degree&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">8192&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">coeff_mod_bit_sizes&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">60&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">40&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">40&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">60&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">context&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">generate_galois_keys&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">context&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">global_scale&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="o">**&lt;/span>&lt;span class="mi">40&lt;/span> &lt;span class="c1"># Scaling factor untuk bilangan riil&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 2. Sisi Klien: Enkripsi data&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">vector1&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="mf">1.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">vector2&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="mf">2.0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Mengonversi vektor plaintext menjadi ciphertext (Secara ideal dieksekusi di sisi klien)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">enc_v1&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ts&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">ckks_vector&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">context&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">vector1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">enc_v2&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ts&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">ckks_vector&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">context&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">vector2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 3. Sisi Server: Komputasi dalam keadaan terenkripsi (Perlindungan Data in Use)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Server tidak mengetahui plaintext, tetapi dapat melakukan penjumlahan dan perkalian&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">enc_add&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">enc_v1&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">enc_v2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">enc_mul&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">enc_v1&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">enc_v2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 4. Sisi Klien: Mendekripsi hasil&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Hanya klien yang memiliki kunci privat yang dapat melihat hasilnya&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">res_add&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">enc_add&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">decrypt&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">res_mul&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">enc_mul&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">decrypt&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;Hasil penjumlahan setelah dekripsi: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">res_add&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Contoh Output: [3.5000001, 5.5000001, 7.5000002] (Mengandung kesalahan sangat kecil karena komputasi perkiraan)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;Hasil perkalian setelah dekripsi: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">res_mul&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Contoh Output: [3.0000002, 7.5000005, 14.0000003]&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Seperti yang bisa dilihat dari kode di atas, perhitungan antara ciphertext dapat ditulis secara intuitif dengan melakukan overload pada operator Python biasa, seperti &lt;code>enc_v1 + enc_v2&lt;/code>. Di sisi server, komputasi vektor diselesaikan tanpa perlu mengetahui isi dari vektor tersebut.&lt;/p>
&lt;hr>
&lt;h2 id="7-tantangan-fhe-performa-dan-akselerasi-hardware">7. Tantangan FHE: Performa dan Akselerasi Hardware
&lt;/h2>&lt;p>Meskipun FHE memberikan keamanan yang secara teoritis sempurna, tantangan terbesar dalam implementasi praktisnya adalah &lt;strong>&amp;ldquo;overhead kinerja (performance overhead)&amp;rdquo;&lt;/strong>.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Overhead Komputasi&lt;/strong>: Dibandingkan dengan komputasi pada plaintext, komputasi pada ciphertext membutuhkan waktu ribuan hingga puluhan ribu kali lebih lambat di CPU. Perkalian polinomial dan bootstrapping memerlukan perhitungan FFT (Fast Fourier Transform) dan NTT (Number Theoretic Transform) dalam jumlah yang sangat besar.&lt;/li>
&lt;li>&lt;strong>Ekspansi Ukuran Data (Ciphertext Expansion)&lt;/strong>: Plaintext yang hanya berukuran beberapa byte bisa membengkak menjadi beberapa megabyte saat dienkripsi. Ini sangat membebani bandwidth memori dan bandwidth jaringan.&lt;/li>
&lt;/ol>
&lt;h3 id="pendekatan-solusi-melalui-hardware">Pendekatan Solusi melalui Hardware
&lt;/h3>&lt;p>Untuk mengatasi overhead ini, pengembangan akselerator hardware khusus FHE (mendukung ASIC, FPGA, GPU) sedang dilakukan di seluruh dunia.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Akselerasi GPU&lt;/strong>: Upaya sedang dilakukan untuk memparalelkan komputasi NTT dan bootstrapping menggunakan GPU bertenaga seperti NVIDIA, dan akselerasi puluhan kali lipat dibandingkan dengan implementasi perangkat lunak telah dilaporkan (contoh: 100x.ai, backend TFHE-rs CUDA dari Zama).&lt;/li>
&lt;li>&lt;strong>Proyek DARPA DPRIVE&lt;/strong>: Defense Advanced Research Projects Agency (DARPA) dari AS mendorong proyek pengembangan hardware khusus &amp;ldquo;DPRIVE (Data Protection in Virtual Environments)&amp;rdquo; untuk meningkatkan kecepatan komputasi FHE ke tingkat yang setara dengan kecepatan pemrosesan plaintext (dalam overhead 10x). Intel, Microsoft, dan Intellectual Ventures berpartisipasi dalam proyek ini.&lt;/li>
&lt;li>&lt;strong>Kemunculan FPU (FHE Processing Unit)&lt;/strong>: Startup seperti Cornami dan Optalysys sedang mengembangkan chip khusus FHE yang menggunakan komputasi optik (optical computing) atau arsitektur silikon khusus.&lt;/li>
&lt;/ul>
&lt;p>Dalam waktu dekat, seperti halnya NPU (Neural Processing Unit) pada AI, kita mungkin akan melihat era di mana &amp;ldquo;FPU&amp;rdquo; dipasang sebagai standar pada server dan infrastruktur cloud.&lt;/p>
&lt;hr>
&lt;h2 id="8-use-case-yang-diharapkan">8. Use Case yang Diharapkan
&lt;/h2>&lt;p>Sekarang setelah FHE mendekati kecepatan yang praktis, inovasi destruktif diharapkan terjadi di berbagai bidang berikut.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Perlindungan Privasi dalam Analisis Medis dan Genomik&lt;/strong>:
Dengan membiarkan AI di cloud melatih data rekam medis pasien atau data DNA yang dimiliki oleh banyak rumah sakit sambil tetap terenkripsi dengan FHE, pengembangan model diagnosis kanker akurasi tinggi atau penemuan obat baru dapat dilakukan tanpa melanggar undang-undang privasi (seperti HIPAA atau GDPR).&lt;/li>
&lt;li>&lt;strong>Deteksi Penipuan dan Anti-Pencucian Uang (AML) untuk Institusi Keuangan&lt;/strong>:
Bank-bank yang saling bersaing dapat mencocokkan data masing-masing dalam keadaan terenkripsi tanpa mengungkapkan informasi rekening pelanggan atau riwayat transaksi, sehingga memungkinkan analisis antar bank (cross-bank) untuk mendeteksi jaringan transfer penipuan yang besar.&lt;/li>
&lt;li>&lt;strong>API Inferensi AI yang Aman (MaaS: Model as a Service)&lt;/strong>:
Pengguna dapat mengenkripsi audio, gambar wajah, atau prompt mereka sendiri dan mengirimkannya ke layanan AI (seperti LLM seperti ChatGPT). Penyedia AI menghasilkan respons tanpa mengetahui input pengguna sama sekali, dan mengembalikannya sebagai ciphertext. Dengan ini, kekhawatiran tentang &amp;ldquo;AI yang mempelajari atau mengintip informasi pribadi&amp;rdquo; dapat sepenuhnya dihilangkan.&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="9-kesimpulan-masa-depan-kriptografi-menuju-komputasi-tak-terlihat">9. Kesimpulan: Masa Depan Kriptografi menuju &amp;ldquo;Komputasi Tak Terlihat&amp;rdquo;
&lt;/h2>&lt;p>Sama seperti penemuan kriptografi kunci publik (RSA) pada tahun 1970-an yang memungkinkan komunikasi aman di internet (seperti HTTPS), penemuan FHE oleh Craig Gentry adalah salah satu tonggak sejarah paling penting dalam sejarah kriptografi.&lt;/p>
&lt;p>Saat ini, Fully Homomorphic Encryption (FHE) telah melompat dari teori di laboratorium, dan memasuki tahap di mana Microsoft, IBM, Intel, Google, dan banyak startup bersaing keras menuju implementasi praktisnya. Walaupun tantangan dalam biaya komputasi dan ukuran data masih ada, perbaikan kinerja terus berlanjut melampaui Hukum Moore berkat penyempurnaan algoritma dan evolusi akselerator hardware.&lt;/p>
&lt;p>Beberapa tahun dari sekarang, &amp;ldquo;komputasi data sambil tetap terenkripsi&amp;rdquo; tidak akan menjadi sesuatu yang istimewa, melainkan akan menjadi praktik perlindungan data standar dalam layanan cloud. FHE adalah kunci keamanan generasi berikutnya yang merealisasikan &lt;strong>keseimbangan tertinggi antara privasi absolut dan pemanfaatan data&lt;/strong> dalam masyarakat yang digerakkan oleh data.&lt;/p></description></item></channel></rss>