<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cryptography on kenji.blog</title><link>http://kenji.blog/id/tags/cryptography/</link><description>Recent content in Cryptography 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/tags/cryptography/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>Hipotesis Riemann dan Distribusi Bilangan Prima: Hubungan Mendalam dengan Kriptografi Modern</title><link>http://kenji.blog/id/p/riemann-hypothesis-prime-distribution-cryptography/</link><pubDate>Fri, 11 Sep 2026 16:00:00 +0900</pubDate><guid>http://kenji.blog/id/p/riemann-hypothesis-prime-distribution-cryptography/</guid><description>&lt;img src="http://kenji.blog/p/riemann-hypothesis-prime-distribution-cryptography/img/eyecatch.jpg" alt="Featured image of post Hipotesis Riemann dan Distribusi Bilangan Prima: Hubungan Mendalam dengan Kriptografi Modern" />&lt;h1 id="1-pendahuluan-misteri-alam-semesta-bilangan-prima-dan-hipotesis-riemann">1. Pendahuluan: Misteri Alam Semesta Bilangan Prima dan Hipotesis Riemann
&lt;/h1>&lt;p>&amp;ldquo;Bilangan prima (Prime Numbers)&amp;rdquo; adalah bilangan asli yang hanya bisa dibagi oleh 1 dan bilangan itu sendiri, yang juga sering disebut sebagai &amp;ldquo;atom&amp;rdquo; dalam dunia matematika. Deret bilangan 2, 3, 5, 7, 11, 13&amp;hellip; ini pada pandangan pertama terlihat tidak beraturan dan muncul secara acak. Sejak matematikawan Yunani kuno, Euclid, membuktikan bahwa &amp;ldquo;bilangan prima jumlahnya tak terhingga&amp;rdquo;, tak terhitung banyaknya matematikawan yang menantang diri mereka untuk mengungkap keteraturan yang tersembunyi di balik susunan bilangan prima ini.&lt;/p>
&lt;p>Yang paling mendekati misteri bilangan prima ini adalah &lt;strong>&amp;ldquo;Hipotesis Riemann (Riemann Hypothesis)&amp;rdquo;&lt;/strong>, yang diusulkan oleh matematikawan Jerman, Bernhard Riemann, pada tahun 1859. Hipotesis Riemann adalah salah satu dari masalah terpenting dan belum terpecahkan dalam matematika modern, serta merupakan salah satu dari Masalah Hadiah Milenium (Millennium Prize Problems) yang ditetapkan oleh Clay Mathematics Institute dengan hadiah sebesar 1 juta dolar.&lt;/p>
&lt;p>Sekilas, masalah sulit matematika murni terkait distribusi bilangan prima mungkin terasa tidak ada hubungannya dengan kehidupan kita sehari-hari. Namun, keamanan internet yang menopang infrastruktur masyarakat modern, terutama &lt;strong>teknologi kriptografi modern seperti kriptografi RSA dan kriptografi kurva eliptik (ECC)&lt;/strong>, sangat bergantung pada sifat-sifat bilangan prima yang sangat besar.&lt;/p>
&lt;p>Dalam artikel ini, kita akan melakukan perjalanan matematis dari distribusi bilangan prima menuju Teorema Bilangan Prima, fungsi Zeta Riemann, hingga ke inti dari Hipotesis Riemann, lalu menggali lebih dalam dan detail tentang bagaimana hal tersebut terhubung dengan teknologi kriptografi modern, serta apa yang akan terjadi pada dunia jika Hipotesis Riemann berhasil dibuktikan.&lt;/p>
&lt;hr>
&lt;h1 id="2-teorema-bilangan-prima-dan-distribusi-bilangan-prima-penemuan-gauss">2. Teorema Bilangan Prima dan Distribusi Bilangan Prima: Penemuan Gauss
&lt;/h1>&lt;p>Untuk memahami bagaimana bilangan prima terdistribusi, para matematikawan memikirkan &lt;strong>fungsi penghitungan bilangan prima (Prime-counting function)&lt;/strong> $\pi(x)$, yang menyatakan &amp;ldquo;berapa banyak bilangan prima yang ada di bawah suatu bilangan $x$&amp;rdquo;.&lt;/p>
&lt;p>Sebagai contoh:&lt;/p>
&lt;ul>
&lt;li>$\pi(10) = 4$ (2, 3, 5, 7)&lt;/li>
&lt;li>$\pi(100) = 25$&lt;/li>
&lt;li>$\pi(1000) = 168$&lt;/li>
&lt;/ul>
&lt;p>Carl Friedrich Gauss, seorang matematikawan jenius berusia 15 tahun, menghitung tabel bilangan prima yang sangat besar dan menemukan bahwa frekuensi kemunculan bilangan prima berkurang secara berbanding terbalik dengan logaritma natural $\ln x$. Dengan kata lain, ia memperkirakan bahwa peluang menemukan bilangan prima di sekitar suatu bilangan $x$ adalah sekitar $\frac{1}{\ln x}$.&lt;/p>
&lt;p>Representasi dari penemuan ini menggunakan integral disebut &lt;strong>integral logaritmik (Logarithmic integral)&lt;/strong> $\text{Li}(x)$.&lt;/p>
$$ \text{Li}(x) = \int_{2}^{x} \frac{dt}{\ln t} $$
&lt;p>Perkiraan Gauss kemudian dibuktikan secara independen oleh Jacques Hadamard dan Charles-Jean de La Vallée Poussin pada tahun 1896, yang memantapkannya sebagai &lt;strong>Teorema Bilangan Prima (Prime Number Theorem, PNT)&lt;/strong>.&lt;/p>
$$ \lim_{x \to \infty} \frac{\pi(x)}{\text{Li}(x)} = 1 $$
&lt;p>Atau secara pendekatan dinyatakan sebagai berikut.&lt;/p>
$$ \pi(x) \sim \frac{x}{\ln x} $$
&lt;p>Melalui teorema ini, kita mengetahui bahwa jika dilihat secara makroskopis, bilangan prima memiliki distribusi yang sangat mulus dan dapat diprediksi. Namun, jika dilihat secara mikroskopis, selalu terdapat &amp;ldquo;galat (error)&amp;rdquo; atau &amp;ldquo;fluktuasi&amp;rdquo; antara $\pi(x)$ dan $\text{Li}(x)$. Sifat asli dari fluktuasi inilah misteri terbesar yang coba dipecahkan oleh Hipotesis Riemann.&lt;/p>
&lt;hr>
&lt;h1 id="3-fungsi-zeta-riemann-dan-produk-euler">3. Fungsi Zeta Riemann dan Produk Euler
&lt;/h1>&lt;p>Senjata paling kuat dalam menganalisis distribusi bilangan prima adalah &lt;strong>Fungsi Zeta Riemann (Riemann Zeta Function)&lt;/strong>. Awalnya, fungsi ini adalah deret tak terhingga yang didefinisikan untuk bilangan real $s > 1$ oleh Leonhard Euler.&lt;/p>
$$ \zeta(s) = \sum_{n=1}^\infty \frac{1}{n^s} = 1 + \frac{1}{2^s} + \frac{1}{3^s} + \frac{1}{4^s} + \dots $$
&lt;p>Salah satu pencapaian terbesar Euler adalah membuktikan bahwa deret tak terhingga ini dapat dinyatakan sebagai produk tak terhingga (perkalian tak terhingga) atas semua bilangan prima $p$. Inilah yang disebut dengan &lt;strong>Produk Euler (Euler Product Formula)&lt;/strong>.&lt;/p>
$$ \zeta(s) = \prod_{p \text{ prime}} \frac{1}{1 - p^{-s}} = \left( \frac{1}{1 - 2^{-s}} \right) \left( \frac{1}{1 - 3^{-s}} \right) \left( \frac{1}{1 - 5^{-s}} \right) \dots $$
&lt;p>Pemahaman intuitif dari pembuktian ini adalah dengan mengekspansi setiap suku di ruas kanan sebagai deret geometri, lalu mengalikannya. Berdasarkan Teorema Dasar Aritmetika (setiap bilangan asli dapat direpresentasikan secara unik sebagai hasil kali bilangan prima), jumlah kebalikan dari bilangan asli pada ruas kiri akan direkonstruksi sepenuhnya.&lt;/p>
&lt;p>&lt;strong>Satu rumus matematika ini menjadi jembatan yang menghubungkan analisis (deret tak terhingga, fungsi kontinu) dengan teori bilangan (bilangan prima, angka diskrit).&lt;/strong> Menyelidiki fungsi zeta sama artinya dengan menyelidiki distribusi bilangan prima.&lt;/p>
&lt;hr>
&lt;h1 id="4-perluasan-analitik-dan-perluasan-ke-bidang-kompleks">4. Perluasan Analitik dan Perluasan ke Bidang Kompleks
&lt;/h1>&lt;p>Kejeniusan Riemann terletak pada kenyataan bahwa ia memperluas variabel $s$ dalam $\zeta(s)$, yang awalnya hanya dipertimbangkan Euler pada bilangan real, menjadi &lt;strong>bilangan kompleks $s = \sigma + it$ ($\sigma$ adalah bagian real, $t$ adalah bagian imajiner)&lt;/strong>.&lt;/p>
&lt;p>Deret tak terhingga aslinya hanya konvergen pada $\sigma > 1$, namun Riemann menggunakan metode yang disebut &amp;ldquo;Perluasan Analitik (Analytic Continuation)&amp;rdquo; untuk memperluas definisi sehingga $\zeta(s)$ memiliki arti di seluruh bidang kompleks, kecuali pada titik kutub $s = 1$.&lt;/p>
&lt;p>Lebih lanjut, ia menurunkan persamaan fungsional (Functional equation) indah yang dipenuhi oleh fungsi zeta.&lt;/p>
$$ \zeta(s) = 2^s \pi^{s-1} \sin\left(\frac{\pi s}{2}\right) \Gamma(1-s) \zeta(1-s) $$
&lt;p>Di sini, $\Gamma(x)$ adalah fungsi Gamma. Berdasarkan persamaan ini, kita dapat mengetahui sifat di bidang sebelah kiri dari sifat di bidang sebelah kanan.&lt;/p>
&lt;h3 id="pembuat-nol-zeros-of-the-zeta-function">Pembuat Nol (Zeros of the Zeta Function)
&lt;/h3>&lt;p>Bilangan kompleks $s$ yang membuat nilai fungsi zeta menjadi 0 disebut sebagai &amp;ldquo;pembuat nol&amp;rdquo; (titik nol).
Dari persamaan fungsional, ketika $s$ adalah bilangan genap negatif ($-2, -4, -6, \dots$), nilai $\sin(\pi s / 2)$ menjadi 0, sehingga $\zeta(s) = 0$. Ini disebut sebagai &lt;strong>pembuat nol trivial (Trivial zeros)&lt;/strong>.&lt;/p>
&lt;p>Namun, yang penting dalam distribusi bilangan prima adalah pembuat nol lainnya, yaitu &lt;strong>pembuat nol non-trivial (Non-trivial zeros)&lt;/strong> yang berada di dalam &amp;ldquo;jalur kritis (Critical strip)&amp;rdquo; $0 \le \sigma \le 1$.&lt;/p>
&lt;hr>
&lt;h1 id="5-inti-dari-hipotesis-riemann-dan-rumus-eksplisit">5. Inti dari Hipotesis Riemann dan Rumus Eksplisit
&lt;/h1>&lt;p>Riemann menghitung sejumlah kecil pembuat nol dan merumuskan sebuah dugaan yang mengejutkan. Inilah &lt;strong>Hipotesis Riemann&lt;/strong>.&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>Hipotesis Riemann (Riemann Hypothesis)&lt;/strong>
Semua pembuat nol non-trivial dari fungsi zeta Riemann $\zeta(s)$ berada pada garis dengan bagian real $1/2$ ($\text{Re}(s) = 1/2$).&lt;/p>
&lt;/blockquote>
&lt;p>Garis dengan bagian real 1/2 ini disebut sebagai &amp;ldquo;Garis kritis (Critical line)&amp;rdquo;.&lt;/p>
&lt;div class="mermaid">graph TD
A["Fungsi Zeta Riemann ζ(s)"] --> B["Perluasan ke bidang kompleks dengan perluasan analitik"]
B --> C["Pembuat nol trivial (s = -2, -4, -6 ...)"]
B --> D["Pembuat nol non-trivial (0 &lt;= Re(s) &lt;= 1)"]
D --> E["Hipotesis Riemann"]
E --> F["Semua pembuat nol non-trivial berada pada Re(s) = 1/2"]
F --> G["Menuju pembuktian limit suku galat dari distribusi bilangan prima"]&lt;/div>
&lt;p>Mengapa Hipotesis Riemann begitu penting? Hal itu karena pembuat nol dari fungsi zeta &lt;strong>sepenuhnya&lt;/strong> menentukan distribusi bilangan prima.&lt;/p>
&lt;p>Riemann dan kemudian matematikawan von Mangoldt, menurunkan &amp;ldquo;Rumus eksplisit (Explicit formula)&amp;rdquo; yang mendeskripsikan distribusi bilangan prima dengan akurat. Dengan menggunakan fungsi Chebyshev $\psi(x)$, hal tersebut diekspresikan sebagai berikut.&lt;/p>
$$ \psi(x) = x - \sum_{\rho} \frac{x^\rho}{\rho} - \ln(2\pi) - \frac{1}{2}\ln(1 - x^{-2}) $$
&lt;p>Di sini, $\rho$ adalah penjumlahan atas semua pembuat nol non-trivial dari fungsi zeta.
Suku utamanya adalah $x$ (yang berkorespondensi dengan Teorema Bilangan Prima), dan dengan menambahkan/mengurangkan suku berbentuk gelombang yang bergantung pada pembuat nol $\rho$, bentuk tangga distribusi bilangan prima yang akurat dapat dipulihkan. Dapat dikatakan bahwa pembuat nol non-trivial merepresentasikan &amp;ldquo;frekuensi (gelombang)&amp;rdquo; dari distribusi bilangan prima.&lt;/p>
&lt;p>Jika Hipotesis Riemann benar, dan bagian real dari semua pembuat nol non-trivial $\rho$ tepat bernilai $1/2$, maka suku galat pada Teorema Bilangan Prima secara teoretis akan berada pada rentang batas minimum yang mungkin terbayangkan.&lt;/p>
$$ |\pi(x) - \text{Li}(x)| \le \frac{1}{8\pi} \sqrt{x} \ln x \quad \text{untuk} \quad x \ge 2657 $$
&lt;p>Dengan kata lain, &lt;strong>jika Hipotesis Riemann terbukti benar, hal itu akan membuktikan bahwa bilangan prima terdistribusi dengan cara yang paling &amp;ldquo;teratur dan indah&amp;rdquo; yang dapat kita bayangkan&lt;/strong>.&lt;/p>
&lt;hr>
&lt;h1 id="6-hubungan-yang-tak-terpisahkan-antara-teknologi-kriptografi-modern-dan-bilangan-prima">6. Hubungan yang Tak Terpisahkan Antara Teknologi Kriptografi Modern dan Bilangan Prima
&lt;/h1>&lt;p>Sejauh ini kita berada di ranah matematika murni yang mendalam, namun sifat bilangan prima ini menjadi pondasi dasar bagi masyarakat digital modern. Contoh utamanya adalah kriptografi kunci publik seperti &lt;strong>Kriptografi RSA&lt;/strong>.&lt;/p>
&lt;p>Keamanan dari berbagai komunikasi, mulai dari pembayaran kartu kredit di internet, pengiriman kata sandi, hingga tanda tangan digital pada blockchain, semuanya bergantung pada &amp;ldquo;bilangan prima&amp;rdquo;.&lt;/p>
&lt;h3 id="cara-kerja-kriptografi-rsa">Cara Kerja Kriptografi RSA
&lt;/h3>&lt;p>Keamanan kriptografi RSA didasarkan pada fakta matematis (masalah faktorisasi prima) bahwa &amp;ldquo;memfaktorkan bilangan komposit (majemuk) dengan jumlah digit yang besar adalah hal yang sangat sulit&amp;rdquo;.&lt;/p>
&lt;ol>
&lt;li>
&lt;p>&lt;strong>Pembuatan Kunci&lt;/strong>:
Pilih secara acak bilangan prima $p$ dan $q$ yang berukuran besar (misalnya masing-masing 2048 bit).
Kalikan keduanya untuk menghitung $N = p \times q$. Nilai $N$ ini menjadi bagian dari kunci publik.
Gunakan fungsi totient Euler $\phi(N) = (p-1)(q-1)$ untuk menghasilkan kunci privat $d$.&lt;/p>
$$ e \times d \equiv 1 \pmod{\phi(N)} $$
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Enkripsi dan Dekripsi&lt;/strong>:
Teks terang (plaintext) $M$ diubah menjadi teks sandi (ciphertext) $C$ menggunakan kunci publik $e$ dan $N$.
&lt;/p>
$$ C \equiv M^e \pmod{N} $$
&lt;p>
Hanya orang yang memiliki kunci privat $d$ yang bisa melakukan dekripsi.
&lt;/p>
$$ M \equiv C^d \pmod{N} $$
&lt;/li>
&lt;/ol>
&lt;div class="mermaid">graph LR
A["Teks Terang (Plaintext)"] --> B["Enkripsi dengan Kunci Publik (e, N)"]
B --> C["Teks Sandi (Ciphertext)"]
C --> D["Dekripsi dengan Kunci Privat (d)"]
D --> E["Teks Terang Asli"]
F["Penyerang (Attacker)"] -- "Mencoba faktorisasi prima dari N" --> C
F -.-> G["Tanpa mengetahui p dan q, d tidak dapat dihitung"]&lt;/div>
&lt;p>Untuk memecahkan kriptografi RSA, seseorang harus menemukan (melakukan faktorisasi prima) bilangan prima asli $p$ dan $q$ dari nilai $N$ yang sangat besar. Meskipun menggunakan algoritma arus utama saat ini (seperti General Number Field Sieve: GNFS), memfaktorkan angka dengan ratusan digit akan membutuhkan waktu jauh melampaui usia alam semesta, bahkan jika menggunakan superkomputer sekalipun.&lt;/p>
&lt;hr>
&lt;h1 id="7-dampak-hipotesis-riemann-terhadap-teknologi-kriptografi">7. Dampak Hipotesis Riemann terhadap Teknologi Kriptografi
&lt;/h1>&lt;p>Lalu, bagaimana &amp;ldquo;Hipotesis Riemann&amp;rdquo; yang berada di puncak matematika murni, bersinggungan dengan &amp;ldquo;teknologi kriptografi&amp;rdquo;?&lt;/p>
&lt;h3 id="71-algoritma-pembangkitan-bilangan-prima-pengujian-keprimaan-dan-hipotesis-riemann-yang-diperluas-grh">7.1. Algoritma Pembangkitan Bilangan Prima (Pengujian Keprimaan) dan Hipotesis Riemann yang Diperluas (GRH)
&lt;/h3>&lt;p>Untuk mengoperasikan kriptografi RSA, pertama-tama kita perlu membangkitkan bilangan prima $p$ dan $q$ yang berukuran sangat besar. Akan tetapi, tidaklah mudah untuk memastikan dengan cepat dan pasti apakah &amp;ldquo;suatu bilangan merupakan bilangan prima atau bukan&amp;rdquo;.&lt;/p>
&lt;p>Saat ini, metode yang digunakan secara praktis adalah algoritma probabilistik yang disebut &lt;strong>Uji Keprimaan Miller-Rabin (Miller-Rabin primality test)&lt;/strong>. Algoritma ini sangat cepat, namun memiliki risiko bahwa bilangan komposit disalahartikan sebagai bilangan prima atau disebut &amp;ldquo;bilangan prima semu (pseudoprime)&amp;rdquo; dengan probabilitas yang sangat kecil.&lt;/p>
&lt;p>Namun, jika kita berasumsi bahwa &lt;strong>&amp;ldquo;Hipotesis Riemann yang Diperluas (Generalized Riemann Hypothesis, GRH)&amp;rdquo;&lt;/strong>, yang memperluas Hipotesis Riemann pada fungsi L-Dirichlet bernilai benar, maka ceritanya akan berubah secara dramatis.
Jika GRH benar, batas atas dari jumlah pengujian dalam uji Miller-Rabin akan dijamin secara matematis, sehingga meningkatkannya dari sekadar algoritma probabilistik menjadi &lt;strong>&amp;ldquo;Algoritma Waktu Polinomial Deterministik&amp;rdquo;&lt;/strong> (Ini adalah fakta penting yang telah diketahui bahkan sebelum Uji Keprimaan AKS ditemukan).&lt;/p>
&lt;p>Dengan kata lain, Hipotesis Riemann (dan perluasannya) memainkan peranan langsung dalam memberikan kepastian mutlak pada pondasi dasar kriptografi: &amp;ldquo;apakah kita dapat membangkitkan bilangan prima raksasa secara cepat dan dengan keyakinan yang pasti&amp;rdquo;.&lt;/p>
&lt;h3 id="72-hubungan-dengan-algoritma-faktorisasi-prima">7.2. Hubungan dengan Algoritma Faktorisasi Prima
&lt;/h3>&lt;p>Pengetahuan tentang distribusi bilangan prima juga mutlak diperlukan ketika mengevaluasi kompleksitas komputasi dari algoritma pihak pemecah sandi (seperti General Number Field Sieve). Banyak algoritma faktorisasi prima bergantung pada distribusi &amp;ldquo;bilangan mulus (Smooth numbers: bilangan yang hanya memiliki faktor prima kecil)&amp;rdquo;.&lt;/p>
&lt;p>Untuk mengevaluasi secara ketat seberapa sering bilangan mulus ini muncul, pemahaman yang mendalam mengenai distribusi bilangan prima sangatlah diperlukan, dan di sinilah teknik teori bilangan analitik yang berhubungan langsung dengan fungsi zeta dan Hipotesis Riemann banyak digunakan. Jika Hipotesis Riemann berhasil dibuktikan, dan batas galat dari distribusi bilangan prima ditetapkan sepenuhnya, maka kita akan mampu mengidentifikasi batas performa algoritma faktorisasi prima secara lebih akurat.&lt;/p>
&lt;hr>
&lt;h1 id="8-jika-hipotesis-riemann-terbukti-apakah-kriptografi-akan-terpecahkan">8. Jika Hipotesis Riemann Terbukti, Apakah Kriptografi Akan Terpecahkan?
&lt;/h1>&lt;p>Terkadang muncul legenda urban yang mengatakan, &amp;ldquo;Jika Hipotesis Riemann terpecahkan, kriptografi RSA akan runtuh seketika&amp;rdquo;, tetapi &lt;strong>secara matematis hal ini tidaklah tepat&lt;/strong>.&lt;/p>
&lt;p>Pembuktian Hipotesis Riemann itu sendiri tidak serta merta akan langsung menghasilkan algoritma ajaib yang mempercepat faktorisasi prima secara drastis. Hipotesis Riemann pada dasarnya adalah teorema tentang &amp;ldquo;keteraturan distribusi bilangan prima secara makroskopis&amp;rdquo;, dan hal ini tidak serta merta memberikan petunjuk langsung tentang bilangan prima manakah yang dapat membagi bilangan $N$ tertentu (sifat secara lokal).&lt;/p>
&lt;p>Namun, dampaknya tidaklah nol.
Sebab, dalam proses pembuktian Hipotesis Riemann, probabilitas ditemukannya &lt;strong>&amp;ldquo;peralatan matematis baru&amp;rdquo; atau &amp;ldquo;metode analisis yang belum pernah diketahui&amp;rdquo;&lt;/strong> sangatlah tinggi. Melihat sejarah ke belakang, ketika Teorema Terakhir Fermat atau Konjektur Poincaré dibuktikan, teori-teori baru yang dikembangkan selama proses tersebut telah mendorong lompatan besar bagi matematika secara keseluruhan.&lt;/p>
&lt;p>Jika suatu metode geometri aljabar atau geometri non-komutatif yang belum diketahui dapat dimantapkan, di mana metode ini bisa mengontrol secara penuh sifat dari pembuat nol fungsi zeta Riemann, bukan tidak mungkin hal itu pada akhirnya berujung pada penemuan algoritma faktorisasi prima yang revolusioner (contohnya, algoritma klasik yang dapat mereduksi kompleksitas komputasi menjadi waktu polinomial). Dalam artian tersebut, para ahli kriptografi tidak pernah bisa memalingkan pandangannya dari perkembangan Hipotesis Riemann.&lt;/p>
&lt;h3 id="komputer-kuantum-dan-algoritma-shor">Komputer Kuantum dan Algoritma Shor
&lt;/h3>&lt;p>Ancaman yang lebih langsung dan nyata bagi teknologi kriptografi bukanlah pembuktian Hipotesis Riemann, melainkan &lt;strong>komputer kuantum&lt;/strong>. &amp;ldquo;Algoritma Shor&amp;rdquo;, yang dipublikasikan oleh Peter Shor pada tahun 1994, membuktikan bahwa jika terdapat komputer kuantum dengan performa yang cukup, faktorisasi prima dapat dipecahkan dalam waktu polinomial. Hal ini secara mendasar akan mematahkan kriptografi RSA maupun kriptografi kurva eliptik.&lt;/p>
&lt;p>Saat ini, transisi menuju &amp;ldquo;Kriptografi Pasca-Kuantum (Post-Quantum Cryptography, PQC)&amp;rdquo; (seperti kriptografi kisi/lattice-based cryptography), yang bahkan tidak dapat dipecahkan oleh komputer kuantum, sedang digalakkan di seluruh dunia. Teknologi kriptografi yang bergantung pada bilangan prima dalam beberapa artian mungkin sedang mendekati akhir masa keemasannya, namun nilai matematis dari bilangan prima itu sendiri tidak akan pernah pudar selamanya.&lt;/p>
&lt;hr>
&lt;h1 id="9-penutup-persimpangan-antara-abstraksi-matematika-dan-dunia-nyata">9. Penutup: Persimpangan Antara Abstraksi Matematika dan Dunia Nyata
&lt;/h1>&lt;div class="mermaid">graph TD
A["Eksplorasi Matematika Murni"] --> B["Pengungkapan Hipotesis Riemann"]
B --> C["Pemahaman Sempurna atas Distribusi Bilangan Prima"]
C --> D["Perkembangan Pesat pada Teori Bilangan dan Geometri Aljabar"]
D -.-> E["Kemungkinan Algoritma Faktorisasi Prima yang Baru"]
E -.-> F["Pembaruan Evaluasi Keamanan Teknologi Kriptografi"]
A --> G["Matematika Terapan dan Ilmu Komputer"]
G --> H["Efisiensi Pengujian Keprimaan dan Pembangkitan Kriptografi"]
H --> F&lt;/div>
&lt;p>Pencarian tiada henti akan bilangan prima yang telah berlangsung sejak zaman Yunani Kuno, melalui tangan jenius bernama Riemann, disublimasikan menjadi sebuah simfoni yang indah di atas bidang kompleks (yaitu pembuat nol fungsi zeta). Dan yang sangat menakjubkan, kristalisasi dari matematika yang murni ini, melintasi waktu berabad-abad, kini diaplikasikan sebagai tameng terkuat yang menjamin keamanan masyarakat internet.&lt;/p>
&lt;p>Hipotesis Riemann adalah sebuah eksistensi yang secara bersamaan menyimbolkan &amp;ldquo;keindahan yang abstrak&amp;rdquo; yang dimiliki matematika dan &amp;ldquo;daya aplikatifnya yang menakjubkan terhadap dunia fisik serta masyarakat nyata&amp;rdquo;.&lt;/p>
&lt;p>Kelak suatu hari, ketika puncak gunung raksasa matematika yang belum pernah ditaklukkan oleh siapa pun ini berhasil didaki, kita tidak hanya akan memahami secara utuh kebenaran semesta dari bilangan prima, tetapi juga akan mendapatkan sudut pandang yang sama sekali baru mengenai landasan dari masyarakat informasi ini. Pada akhirnya, mempelajari teknologi kriptografi juga berarti menelusuri sejarah kebijaksanaan umat manusia itu sendiri.&lt;/p></description></item><item><title>Sejarah Kriptografi: Dari Sandi Caesar hingga Kriptografi Pasca-Kuantum (PQC)</title><link>http://kenji.blog/id/p/history-of-cryptography-caesar-to-pqc/</link><pubDate>Fri, 11 Sep 2026 15:00:00 +0900</pubDate><guid>http://kenji.blog/id/p/history-of-cryptography-caesar-to-pqc/</guid><description>&lt;img src="http://kenji.blog/p/history-of-cryptography-caesar-to-pqc/img/eyecatch.jpg" alt="Featured image of post Sejarah Kriptografi: Dari Sandi Caesar hingga Kriptografi Pasca-Kuantum (PQC)" />&lt;h1 id="1-pendahuluan-apa-itu-kriptografi">1. Pendahuluan: Apa itu Kriptografi?
&lt;/h1>&lt;p>Kriptografi (Cryptography) adalah teknologi untuk menjaga kerahasiaan informasi, dan telah berevolusi bersamaan dengan sejarah umat manusia. Dari transmisi perintah rahasia dalam perang kuno hingga perlindungan informasi kartu kredit di internet modern, tujuan kriptografi tetap konsisten. Tujuannya adalah &amp;ldquo;memastikan bahwa hanya penerima yang dituju yang dapat memahami informasi tersebut, dan tidak dapat diuraikan oleh pihak ketiga&amp;rdquo;.&lt;/p>
&lt;p>Dalam keamanan informasi modern, kriptografi tidak hanya terbatas pada &amp;ldquo;kerahasiaan informasi (Kerahasiaan: Confidentiality)&amp;rdquo;, tetapi juga memainkan peran penting dalam &amp;ldquo;Integritas (Integrity)&amp;rdquo;, &amp;ldquo;Otentikasi (Authentication)&amp;rdquo;, dan &amp;ldquo;Nirsangkal (Non-repudiation)&amp;rdquo; dari data.&lt;/p>
&lt;p>Dalam artikel ini, kita akan mengungkap sejarah evolusi kriptografi dari perspektif teknis dan matematis, dimulai dari sandi substitusi sederhana kuno, mesin sandi mekanis, kriptografi kunci simetris dan kunci publik modern, hingga era &amp;ldquo;Kriptografi Pasca-Kuantum (PQC)&amp;rdquo; yang tiba dengan komersialisasi komputer kuantum.&lt;/p>
&lt;hr>
&lt;h1 id="2-era-kriptografi-klasik-substitusi-dan-transposisi-karakter">2. Era Kriptografi Klasik: Substitusi dan Transposisi Karakter
&lt;/h1>&lt;p>Asal-usul kriptografi berawal sejak sebelum masehi. Kriptografi awal terutama terdiri dari dua pendekatan: &amp;ldquo;Transposisi (penyusunan ulang)&amp;rdquo; dan &amp;ldquo;Substitusi (penggantian)&amp;rdquo;.&lt;/p>
&lt;h2 id="sandi-scytale-sandi-transposisi">Sandi Scytale (Sandi Transposisi)
&lt;/h2>&lt;p>&amp;ldquo;Scytale&amp;rdquo;, yang digunakan di Sparta, Yunani Kuno pada abad ke-5 SM, adalah salah satu perangkat kriptografi tertua. Sepotong perkamen tipis dililitkan pada tongkat kayu dengan ketebalan tertentu, dan pesan ditulis secara horizontal di atasnya. Ketika perkamen dibuka, huruf-huruf tersusun dalam urutan yang tidak dapat dipahami, tetapi penerima yang memiliki tongkat dengan ketebalan yang sama dapat membaca pesan asli dengan melilitkan kembali perkamen tersebut.&lt;/p>
&lt;h2 id="sandi-caesar-sandi-substitusi-monoalfabetik">Sandi Caesar (Sandi Substitusi Monoalfabetik)
&lt;/h2>&lt;p>&amp;ldquo;Sandi Caesar&amp;rdquo;, yang konon digunakan oleh pahlawan Romawi Kuno Julius Caesar pada abad ke-1 SM, adalah sandi substitusi monoalfabetik (Monoalphabetic substitution) yang menggeser alfabet sejumlah tertentu (biasanya 3 huruf).&lt;/p>
&lt;p>Secara matematis, dengan menganggap huruf sebagai angka dari $0$ hingga $25$, dan jumlah pergeseran adalah $K$, transformasi dari plainteks $P$ menjadi cipherteks $C$ direpresentasikan oleh kongruensi berikut:&lt;/p>
$$C \equiv P + K \pmod{26}$$
&lt;p>Dekripsi dilakukan dengan operasi kebalikannya:&lt;/p>
$$P \equiv C - K \pmod{26}$$
&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;/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="c1"># Contoh implementasi sederhana Sandi Caesar dengan Python&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">caesar_cipher&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">text&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">shift&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">mode&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;encrypt&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="n">result&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">mode&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s2">&amp;#34;decrypt&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="n">shift&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="o">-&lt;/span>&lt;span class="n">shift&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="k">for&lt;/span> &lt;span class="n">char&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">text&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">char&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">isalpha&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">base&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">ord&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;A&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">if&lt;/span> &lt;span class="n">char&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">isupper&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="k">else&lt;/span> &lt;span class="nb">ord&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;a&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Perhitungan pergeseran&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">result&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="nb">chr&lt;/span>&lt;span class="p">((&lt;/span>&lt;span class="nb">ord&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">char&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="n">base&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">shift&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="mi">26&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">base&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">result&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="n">char&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">result&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"># Contoh eksekusi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plaintext&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;HELLO WORLD&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ciphertext&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">caesar_cipher&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">plaintext&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;encrypt&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="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;Cipherteks: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">ciphertext&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="c1"># KHOOR ZRUOG&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h2 id="analisis-frekuensi-dan-sandi-vigenère">Analisis Frekuensi dan Sandi Vigenère
&lt;/h2>&lt;p>Sandi substitusi monoalfabetik dengan mudah dipecahkan oleh &amp;ldquo;Analisis Frekuensi (Frequency Analysis)&amp;rdquo; yang diciptakan oleh cendekiawan Arab abad ke-9, Al-Kindi. Ini memanfaatkan karakteristik statistik bahasa, seperti fakta bahwa &amp;ldquo;E&amp;rdquo; dan &amp;ldquo;T&amp;rdquo; sering muncul dalam bahasa Inggris.&lt;/p>
&lt;p>Untuk melawan hal ini, &amp;ldquo;Sandi Vigenère (Vigenère cipher)&amp;rdquo; diciptakan pada abad ke-16. Ini adalah sandi substitusi polialfabetik (Polyalphabetic substitution) yang secara periodik mengganti beberapa pergeseran (kunci), dan selama sekitar 300 tahun disebut &amp;ldquo;Sandi yang tidak dapat dipecahkan (Le Chiffre Indéchiffrable)&amp;rdquo;.&lt;/p>
&lt;p>Secara matematis, huruf ke-$i$ dari plainteks $P_i$ dan huruf ke-$i$ dari kunci yang berulang $K_i$ dienkripsi sebagai berikut:&lt;/p>
$$C_i \equiv P_i + K_i \pmod{26}$$
&lt;p>Sandi ini juga akhirnya dipecahkan pada abad ke-19 ketika Charles Babbage dan Friedrich Kasiski menemukan &amp;ldquo;Ujian Kasiski (Kasiski examination)&amp;rdquo;, yang menentukan panjang kunci dari pola yang berulang dalam cipherteks.&lt;/p>
&lt;div class="mermaid">graph TD
subgraph "Klasifikasi Kriptografi Klasik"
A["Kriptografi Klasik"] --> B["Sandi Transposisi"]
A --> C["Sandi Substitusi"]
B --> D["Sandi Scytale"]
C --> E["Substitusi Monoalfabetik"]
C --> F["Substitusi Polialfabetik"]
E --> G["Sandi Caesar"]
F --> H["Sandi Vigenère"]
end&lt;/div>
&lt;hr>
&lt;h1 id="3-kriptografi-mekanis-dan-perang-dunia-enigma-dan-pemecahannya">3. Kriptografi Mekanis dan Perang Dunia: Enigma dan Pemecahannya
&lt;/h1>&lt;p>Memasuki abad ke-20, alat komunikasi beralih dari surat ke telegraf dan radio, menuntut kecepatan dan kompleksitas dalam enkripsi. Di sinilah muncul &amp;ldquo;Sandi Mekanis&amp;rdquo; yang menggabungkan rotor (piringan berputar).&lt;/p>
&lt;h2 id="ancaman-enigma">Ancaman Enigma
&lt;/h2>&lt;p>Selama Perang Dunia II, &amp;ldquo;Enigma&amp;rdquo; yang digunakan oleh Nazi Jerman adalah mesin sandi paling terkenal dalam sejarah kriptografi. Enigma terdiri dari beberapa rotor (biasanya 3-4), sebuah plugboard (Steckerbrett) yang menukar koneksi huruf, dan sebuah reflektor (rotor pembalik).&lt;/p>
&lt;p>Setiap kali sebuah huruf diketik pada keyboard, rotor berputar, sehingga meskipun huruf yang sama diketik berturut-turut, huruf sandi yang berbeda akan dihasilkan (puncak dari sandi polialfabetik). Ruang kunci (kombinasi pengaturan) mencapai sekitar $1.58 \times 10^{19}$ (sekitar 15,8 kuintiliun), dan dengan teknologi saat itu dianggap tidak mungkin untuk dipecahkan dengan serangan brute force.&lt;/p>
&lt;h2 id="alan-turing-dan-bombe">Alan Turing dan &amp;ldquo;Bombe&amp;rdquo;
&lt;/h2>&lt;p>Tim pemecah kode Bletchley Park di Inggris, yang melanjutkan pencapaian awal ahli matematika Polandia seperti Marian Rejewski, menantang Enigma yang tampaknya tidak dapat ditembus ini.&lt;/p>
&lt;p>Secara khusus, Alan Turing mengembangkan mesin pemecah sandi elektromekanis yang disebut &amp;ldquo;Bombe&amp;rdquo;, yang memanfaatkan tebakan plainteks (Crib) yang sesuai dengan bagian dari cipherteks. Bombe mendeteksi kontradiksi logis pada kecepatan tinggi, berhasil memecahkan Enigma dengan terus menerus menghilangkan pengaturan rotor yang tidak mungkin. Pencapaian ini konon telah mempercepat kemenangan pihak Sekutu selama beberapa tahun.&lt;/p>
&lt;hr>
&lt;h1 id="4-awal-kriptografi-modern-kriptografi-kunci-simetris-des-dan-aes">4. Awal Kriptografi Modern: Kriptografi Kunci Simetris (DES dan AES)
&lt;/h1>&lt;p>Setelah perang, dengan munculnya komputer, kriptografi mengalami pergeseran paradigma yang dramatis dari manipulasi &amp;ldquo;karakter&amp;rdquo; menjadi manipulasi &amp;ldquo;bit (0 dan 1)&amp;rdquo;.&lt;/p>
&lt;h2 id="claude-shannon-dan-teori-informasi">Claude Shannon dan Teori Informasi
&lt;/h2>&lt;p>Pada tahun 1949, Claude Shannon menerbitkan makalah &amp;ldquo;Teori Komunikasi Sistem Kerahasiaan (Communication Theory of Secrecy Systems)&amp;rdquo;, yang meletakkan dasar matematika untuk kriptografi modern. Dia mengusulkan &amp;ldquo;Konfusi (Confusion)&amp;rdquo; dan &amp;ldquo;Difusi (Diffusion)&amp;rdquo; sebagai prinsip desain kriptografi yang aman.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Konfusi (Confusion)&lt;/strong>: Membuat hubungan antara kunci dan cipherteks serumit mungkin. (Dicapai melalui substitusi / S-box)&lt;/li>
&lt;li>&lt;strong>Difusi (Diffusion)&lt;/strong>: Memastikan bahwa perubahan 1 bit dari plainteks mempengaruhi banyak bit dari cipherteks. (Dicapai melalui transposisi / permutasi)&lt;/li>
&lt;/ul>
&lt;h2 id="des-data-encryption-standard">DES (Data Encryption Standard)
&lt;/h2>&lt;p>Pada tahun 1977, Institut Nasional Standar dan Teknologi AS (NIST, saat itu NBS) menetapkan &amp;ldquo;DES&amp;rdquo;, yang berdasarkan desain IBM, sebagai standar kriptografi.
DES mengadopsi arsitektur yang disebut &amp;ldquo;Jaringan Feistel (Feistel Network)&amp;rdquo;, dengan panjang blok 64 bit dan panjang kunci 56 bit. Ia memiliki keuntungan implementasi di mana algoritma enkripsi dan dekripsi memiliki struktur yang hampir sama.&lt;/p>
&lt;p>Namun, seiring dengan peningkatan daya komputasi komputer, menjadi jelas bahwa panjang kunci 56 bit (sekitar $7.2 \times 10^{16}$ kemungkinan) tidak mencukupi. Pada tahun 1998, Electronic Frontier Foundation (EFF) mengembangkan mesin khusus &amp;ldquo;Deep Crack&amp;rdquo; dan mendemonstrasikan pemecahan DES dalam hitungan hari.&lt;/p>
&lt;h2 id="aes-advanced-encryption-standard">AES (Advanced Encryption Standard)
&lt;/h2>&lt;p>Sebagai standar baru untuk menggantikan DES, &amp;ldquo;AES&amp;rdquo; ditetapkan pada tahun 2001. Algoritma &amp;ldquo;Rijndael&amp;rdquo; yang diciptakan oleh kriptografer Belgia, yang dipilih melalui kompetisi publik, diadopsi.&lt;/p>
&lt;p>AES tidak menggunakan struktur Feistel melainkan &amp;ldquo;Jaringan Substitusi-Permutasi (SPN: Substitution-Permutation Network)&amp;rdquo; dan memanfaatkan operasi matematika di atas medan Galois (medan berhingga) $GF(2^8)$. Panjang kunci dapat dipilih dari 128, 192, atau 256 bit, dan hingga saat ini digunakan secara luas sebagai kriptografi kunci simetris standar di seluruh dunia.&lt;/p>
&lt;div class="mermaid">graph TD
subgraph "Pemrosesan 1 Putaran AES (Struktur SPN)"
A["Status Input (128-bit)"] --> B("SubBytes (Substitusi Byte / S-Box)")
B --> C("ShiftRows (Pergeseran Baris)")
C --> D("MixColumns (Pencampuran Kolom / Perkalian di GF(2^8))")
D --> E("AddRoundKey (XOR dengan Kunci Putaran)")
E --> F["Ke putaran berikutnya"]
end&lt;/div>
&lt;hr>
&lt;h1 id="5-revolusi-kriptografi-kunci-publik-dari-diffie-hellman-ke-rsa">5. Revolusi Kriptografi Kunci Publik: Dari Diffie-Hellman ke RSA
&lt;/h1>&lt;p>Kriptografi kunci simetris memiliki kelemahan fatal: &amp;ldquo;Masalah Distribusi Kunci (Key Distribution Problem)&amp;rdquo;. Masalahnya adalah bagaimana berbagi &amp;ldquo;kunci bersama&amp;rdquo; dengan aman dengan pihak yang berada jauh sebelum memulai komunikasi terenkripsi. &amp;ldquo;Kriptografi Kunci Publik&amp;rdquo; yang lahir pada tahun 1970-an memecahkan masalah ini.&lt;/p>
&lt;h2 id="pertukaran-kunci-diffie-hellman">Pertukaran Kunci Diffie-Hellman
&lt;/h2>&lt;p>Pada tahun 1976, Whitfield Diffie dan Martin Hellman menerbitkan makalah terobosan &amp;ldquo;Arah Baru dalam Kriptografi (New Directions in Cryptography)&amp;rdquo;. Mereka mengusulkan metode untuk berbagi kunci dengan aman bahkan melalui saluran komunikasi yang disadap, menggunakan kesulitan matematis yang disebut &amp;ldquo;Masalah Logaritma Diskrit (Discrete Logarithm Problem)&amp;rdquo;.&lt;/p>
&lt;ol>
&lt;li>Publikasikan bilangan prima besar $p$ dan generator $g$.&lt;/li>
&lt;li>Alice memilih nilai rahasia $a$, menghitung $A = g^a \pmod{p}$, dan mengirimkannya ke Bob.&lt;/li>
&lt;li>Bob memilih nilai rahasia $b$, menghitung $B = g^b \pmod{p}$, dan mengirimkannya ke Alice.&lt;/li>
&lt;li>Alice menghitung $K = B^a \pmod{p}$, dan Bob menghitung $K = A^b \pmod{p}$.&lt;/li>
&lt;li>Melalui hukum eksponen, $K = (g^b)^a = (g^a)^b = g^{ab} \pmod{p}$, memungkinkan mereka untuk dengan sukses berbagi kunci yang sama $K$.&lt;/li>
&lt;/ol>
&lt;h2 id="kriptografi-rsa">Kriptografi RSA
&lt;/h2>&lt;p>Tahun berikutnya, pada tahun 1977, &amp;ldquo;Kriptografi RSA&amp;rdquo; diciptakan oleh tiga orang: Ron Rivest, Adi Shamir, dan Leonard Adleman. Ini didasarkan pada properti bahwa &amp;ldquo;memfaktorkan bilangan komposit besar menjadi bilangan prima adalah sulit&amp;rdquo;.&lt;/p>
&lt;p>&lt;strong>Mekanisme Matematis RSA:&lt;/strong>&lt;/p>
&lt;ol>
&lt;li>Pilih dua bilangan prima besar $p$ dan $q$, hitung $n = p \times q$.&lt;/li>
&lt;li>Hitung fungsi totient Euler $\phi(n) = (p-1)(q-1)$.&lt;/li>
&lt;li>Pilih bilangan bulat $e$ (kunci publik) yang relatif prima terhadap $\phi(n)$.&lt;/li>
&lt;li>Hitung bilangan bulat $d$ (kunci privat) sehingga $e \times d \equiv 1 \pmod{\phi(n)}$.&lt;/li>
&lt;/ol>
&lt;p>Enkripsi: Untuk plainteks $M$, $C \equiv M^e \pmod{n}$
Dekripsi: Untuk cipherteks $C$, $M \equiv C^d \pmod{n}$&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;/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="c1"># Kode Python menunjukkan konsep kriptografi RSA (bukan untuk penggunaan praktis)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">ext_euclid&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">a&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">b&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Perhitungan invers modular menggunakan algoritma Euclidean yang diperluas&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">b&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="k">return&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">a&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">x&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">y&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">g&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ext_euclid&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">b&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">a&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="n">b&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">y&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">x&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">a&lt;/span> &lt;span class="o">//&lt;/span> &lt;span class="n">b&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">y&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">g&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="k">def&lt;/span> &lt;span class="nf">rsa_example&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 menggunakan bilangan prima kecil&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">p&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">q&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">61&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">53&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">n&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">p&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">q&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">phi&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">p&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">q&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="mi">1&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="n">e&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">17&lt;/span> &lt;span class="c1"># nilai yang relatif prima dengan phi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">d&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">_&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">_&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ext_euclid&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">e&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">phi&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">d&lt;/span> &lt;span class="o">&amp;lt;&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">d&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="n">phi&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;Kunci Publik: (e=&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">e&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">, n=&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">n&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="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;Kunci Privat: (d=&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">d&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">, n=&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">n&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>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Enkripsi dan dekripsi pesan&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">message&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">65&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ciphertext&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">message&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">e&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">n&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">decrypted&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">pow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ciphertext&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">d&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">n&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;Plainteks: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">message&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2"> -&amp;gt; Cipherteks: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">ciphertext&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2"> -&amp;gt; Setelah dekripsi: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">decrypted&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>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">rsa_example&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;hr>
&lt;h1 id="6-bangkitnya-kriptografi-kurva-eliptik-ecc">6. Bangkitnya Kriptografi Kurva Eliptik (ECC)
&lt;/h1>&lt;p>Meskipun kriptografi RSA kuat, dengan peningkatan kinerja komputer, menjadi perlu untuk memperpanjang kunci (saat ini 2048 atau 3072 bit) untuk menjaga keamanan, yang mengakibatkan masalah peningkatan biaya komputasi.&lt;/p>
&lt;p>Sebagai solusinya, &amp;ldquo;Kriptografi Kurva Eliptik (ECC: Elliptic Curve Cryptography)&amp;rdquo; diusulkan pada tahun 1985. Ini menggunakan penambahan titik pada kurva eliptik di atas medan berhingga (umumnya dalam bentuk $y^2 = x^3 + ax + b$).&lt;/p>
&lt;p>Masalah logaritma diskrit pada kurva eliptik (ECDLP) diketahui lebih sulit dipecahkan daripada masalah faktorisasi prima, sehingga &lt;strong>ECC dapat mencapai tingkat keamanan yang setara dengan RSA 3072-bit hanya dengan panjang kunci 256-bit&lt;/strong>. Hal ini memungkinkan komunikasi terenkripsi yang cepat dan aman (seperti ECDSA dan ECDH) bahkan di lingkungan dengan sumber daya komputasi terbatas seperti smartphone dan perangkat IoT.&lt;/p>
&lt;hr>
&lt;h1 id="7-ancaman-komputer-kuantum-dan-kriptografi-pasca-kuantum-pqc">7. Ancaman Komputer Kuantum dan Kriptografi Pasca-Kuantum (PQC)
&lt;/h1>&lt;p>Teknologi kriptografi tampaknya sangat solid, tetapi algoritma Shor yang diterbitkan oleh Peter Shor pada tahun 1994 memberikan kejutan besar.&lt;/p>
&lt;p>Komputer kuantum melakukan komputasi menggunakan sifat mekanika kuantum dari &amp;ldquo;superposisi&amp;rdquo; dan &amp;ldquo;keterikatan kuantum (quantum entanglement)&amp;rdquo;. Telah terbukti secara matematis bahwa ketika algoritma Shor dieksekusi pada komputer kuantum dengan kinerja yang memadai, masalah faktorisasi prima dan masalah logaritma diskrit dapat diselesaikan dalam &amp;ldquo;waktu polinomial&amp;rdquo;. Ini berarti bahwa pada hari ketika komputer kuantum yang praktis selesai (Q-Day), semua kriptografi kunci publik yang digunakan saat ini seperti RSA dan ECC akan hancur seketika.&lt;/p>
&lt;h2 id="kemunculan-pqc-post-quantum-cryptography">Kemunculan PQC (Post-Quantum Cryptography)
&lt;/h2>&lt;p>Untuk mempersiapkan diri terhadap ancaman yang belum pernah terjadi sebelumnya ini, penelitian mengenai &amp;ldquo;Kriptografi Pasca-Kuantum (PQC)&amp;rdquo; dengan cepat dimajukan. PQC didasarkan pada masalah matematika baru yang sulit dipecahkan bahkan oleh komputer kuantum. NIST (Institut Nasional Standar dan Teknologi AS) telah memajukan proses standardisasi PQC selama bertahun-tahun, dan pendekatan matematika berikut ini sebagian besar dianggap paling menjanjikan:&lt;/p>
&lt;h3 id="1-kriptografi-berbasis-kisi-lattice-based-cryptography">1. Kriptografi Berbasis Kisi (Lattice-based Cryptography)
&lt;/h3>&lt;p>Ini adalah pendekatan paling menjanjikan saat ini, dan telah diadopsi dalam algoritma standardisasi NIST (ML-KEM / Kyber, ML-DSA / Dilithium). Hal ini didasarkan pada kesulitan menemukan titik tertentu pada &amp;ldquo;kisi (Lattice)&amp;rdquo; dalam ruang multidimensi (seperti Shortest Vector Problem: SVP) dan kesulitan masalah LWE (Learning With Errors).&lt;/p>
&lt;p>Konsep masalah LWE memanfaatkan sifat bahwa jika &amp;ldquo;derau kecil (kesalahan)&amp;rdquo; secara sengaja ditambahkan ke sistem persamaan linear, maka secara tiba-tiba akan menjadi sangat sulit untuk menemukan solusinya.
Sistem Persamaan: $\mathbf{A}\mathbf{s} + \mathbf{e} \equiv \mathbf{b} \pmod{q}$
($\mathbf{A}$ dan $\mathbf{b}$ adalah publik, $\mathbf{s}$ adalah kunci rahasia, $\mathbf{e}$ adalah derau mikroskopis)&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;/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="c1"># Kode pseudo konseptual dari masalah LWE (untuk tujuan pembelajaran)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">numpy&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">np&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="n">n&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">256&lt;/span> &lt;span class="c1"># Dimensi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">q&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">3329&lt;/span> &lt;span class="c1"># Modulus&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">m&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">512&lt;/span> &lt;span class="c1"># Jumlah persamaan&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"># Kunci rahasia s dan kesalahan kecil e&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">s&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">np&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">random&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">randint&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">size&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">e&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">np&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">random&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">randint&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="o">-&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">size&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">m&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"># Matriks publik A dan vektor publik b&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">A&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">np&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">random&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">randint&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">q&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">size&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">m&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">n&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">b&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">np&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">A&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">s&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">e&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">%&lt;/span> &lt;span class="n">q&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"># Bahkan dengan menggunakan komputer kuantum, sangat sulit untuk memulihkan s dari A dan b&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="2-kriptografi-berbasis-hash-hash-based-cryptography">2. Kriptografi Berbasis Hash (Hash-based Cryptography)
&lt;/h3>&lt;p>Ini adalah skema tanda tangan digital yang mendasarkan keamanannya semata-mata pada ketahanan bentrokan (collision resistance) dari fungsi hash. Ia kuat terhadap serangan kuantum karena tidak memiliki struktur matematis, tetapi cenderung menghasilkan ukuran tanda tangan yang besar (seperti SPHINCS+).&lt;/p>
&lt;h3 id="3-kriptografi-berbasis-kode-code-based-cryptography">3. Kriptografi Berbasis Kode (Code-based Cryptography)
&lt;/h3>&lt;p>Ini adalah skema kriptografi berdasarkan teori kode koreksi kesalahan (error-correcting codes). Kriptografi McEliece yang diusulkan pada tahun 1978 terkenal dan memiliki sejarah panjang serta reputasi keamanan yang baik, tetapi memiliki kelemahan yaitu ukuran kunci publik yang sangat besar (terkadang mencapai beberapa megabyte).&lt;/p>
&lt;div class="mermaid">timeline
title "Sejarah Evolusi Teknologi Kriptografi dan Komputer"
"Kuno hingga Pertengahan" : "Sandi Caesar" : "Sandi Vigenère" : "Kelahiran Analisis Frekuensi"
"Tahun 1930 - 1940-an" : "Pengoperasian dan Pemecahan Enigma" : "Pengembangan Mesin Turing / Bombe"
"Tahun 1970-an" : "Standardisasi DES (1977)" : "Pertukaran Kunci Diffie-Hellman (1976)" : "Kelahiran Kriptografi RSA (1977)"
"Tahun 1980 - 1990-an" : "Usulan Kriptografi Kurva Eliptik (ECC)" : "Publikasi Algoritma Shor (1994)"
"Tahun 2000-an" : "Standardisasi AES (2001)"
"Tahun 2010-an hingga kini" : "Akselerasi Penelitian Komputer Kuantum" : "Dimulainya Proyek Standardisasi PQC oleh NIST"
"Masa Depan Dekat (Q-Day)" : "Realisasi Komputer Kuantum Skala Besar?" : "Transisi Penuh ke PQC (ML-KEM/ML-DSA)"&lt;/div>
&lt;hr>
&lt;h1 id="8-kesimpulan-pertarungan-tanpa-akhir-antara-perisai-dan-tombak">8. Kesimpulan: Pertarungan Tanpa Akhir antara Perisai dan Tombak
&lt;/h1>&lt;p>Sejarah teknologi kriptografi adalah sejarah pertarungan tanpa akhir antara penemuan metode kriptografi baru (perisai) dan metode dekripsi baru (tombak) yang memecahkannya.&lt;/p>
&lt;p>Sandi Caesar dikalahkan oleh analisis frekuensi, dan Enigma yang konon tak terkalahkan dihancurkan oleh otak jenius Turing dan kekuatan mesin. Dan kini, kriptografi kuat seperti RSA dan ECC yang mendukung fondasi masyarakat internet modern, dihadapkan pada ancaman dari &amp;ldquo;tombak&amp;rdquo; baru yang disebut komputer kuantum.&lt;/p>
&lt;p>Namun, umat manusia telah melihat masa depan dan sedang bersiap dengan &amp;ldquo;perisai&amp;rdquo; baru yang disebut Kriptografi Pasca-Kuantum (PQC). Saat ini, mempersiapkan transisi dari kriptografi kunci publik yang ada menuju PQC (memastikan Crypto Agility) adalah tugas mendesak di infrastruktur TI di seluruh dunia.&lt;/p>
&lt;p>Kriptografi bukan sekadar teka-teki matematika yang sulit, melainkan benteng pertahanan terkuat untuk melindungi privasi, properti, dan infrastruktur sosial kita.&lt;/p></description></item></channel></rss>