Pertukaran kunci Diffie–Hellman: Perbedaan antara revisi
Konten dihapus Konten ditambahkan
penerjemahan dari en:Diffie–Hellman key exchange |
Tidak ada ringkasan suntingan |
||
Baris 30:
Pertukaran kunci Diffie–Hellman membuat kunci rahasia bersama antara dua pihak yang dapat dipakai untuk komunikasi rahasia atau pertukaran data melalui jaringan publik. Analoginya adalah menggunakan warna sebagai pengganti bilangan besar.
Proses ini dimulai dari kedua pihak, Ani dan Budi, menyepakati warna awal secara publik yang tidak perlu dirahasiakan, tetapi harus berbeda tiap saat.<ref name=adrian2015 /> Dalam contoh ini, warnanya adalah kuning. Tiap pihak juga memiliki warna rahasia—dalam kasus ini, jingga dan biru telur. Langkah pentingnya adalah tiap orang mencampurkan warna bersama yang telah disepakati bersama dengan warna rahasia masing-masing sehingga menghasilkan warna cokelat kulit dan biru langit. Selanjutnya, mereka saling berkirim warna hasil pencampuran secara publik. Terakhir, tiap pihak mencampurkan warna rahasia masing-masing ke warna yang diterima masing-masing. Hasilnya adalah warna cokelat tua yang keduanya identik dan rahasia sehingga menjadi warna rahasia bersama.
Jika ada pihak ketiga yang mengamati jalur publik, ia hanya mengetahui warna awal (kuning) dan warna hasil pencampuran awal (cokelat kulit dan biru langit). Namun, hanya dari itu saja, ia akan sulit mengetahui warna yang telah menjadi warna rahasia bersama antara Ani dan Budi. Di dunia nyata, yang ditukarkan adalah bilangan besar alih-alih warna. Hampir tidak mungkin untuk menghitungnya dalam waktu praktis, bahkan oleh superkomputer.
=== Penjelasan kriptografis ===
Implementasi protokol yang sederhana dan asli<ref name=diffie1976 /> menggunakan [[Grup perkalian bilangan bulat modulus n|grup perkalian bilangan bulat modulus]] ''p'' dengan ''p'' adalah bilangan prima serta bilangan bulat ''g'' dengan ''g'' adalah [[Akar primitif modulus n|akar primitif modulus]] ''p''. Dua bilangan tersebut dipilih sedemikian rupa agar hasilnya dapat menerima bilangan dari 1 hingga {{
# Ani dan Budi menyepakati secara publik untuk memilih bilangan pembagi {{nowrap|1=<span style="color: blue;">''p''</span> = <span style="color: blue;">23</span>}} dan bilangan dasar {{nowrap|1=<span style="color: blue;">''g''</span> = <span style="color: blue;">5</span>}} yang menjadi akar primitif modulus 23.
# Ani memilih bilangan bulat rahasia {{nowrap|1=<span style="color: red;">''a''</span> = <span style="color: red;">4</span>}}, lalu mengirimi Budi bilangan {{nowrap|1=<span style="color: blue;">''A''</span> = <span style="color: blue;">''g''</span><sup><span style="color: red;">''a''</span></sup> mod <span style="color: blue;">''p''</span>}}.
#* <span style="color: blue;">''A''</span> = <span style="color: blue;">5</span><sup><span style="color: red;">4</span></sup> mod <span style="color: blue;">23</span> = <span style="color: blue;">4</span>
# Budi memilih bilangan bulat rahasia {{nowrap|1=<span style="color: red;">''b''</span> = <span style="color: red;">3</span>}}, lalu mengirimi Ani bilangan {{nowrap|1=<span style="color: blue;">''B''</span> = <span style="color: blue;">''g''</span><sup><span style="color: red;">''b''</span></sup> mod <span style="color: blue;">''p''</span>}}.
#* <span style="color: blue;">''B''</span> = <span style="color: blue;">5</span><sup><span style="color: red;">3</span></sup> mod <span style="color: blue;">23</span> = <span style="color: blue;">10</span>
# Ani lalu menghitung nilai {{nowrap|1=<span style="color: red;">''s''</span> = <span style="color: blue;">''B''</span><sup><span style="color: red;">''a''</span></sup> mod <span style="color: blue;">''p''</span>}}.
#* <span style="color: red;">''s''</span> = <span style="color: blue;">10</span><sup><span style="color: red;">4</span></sup> mod <span style="color: blue;">23</span> = <span style="color: red;">18</span>
# Budi lalu menghitung nilai {{nowrap|1=<span style="color: red;">''s''</span> = <span style="color: blue;">''A''</span><sup><span style="color: red;">''b''</span></sup> mod <span style="color: blue;">''p''</span>}}.
#* <span style="color: red;">''s''</span> = <span style="color: blue;">4</span><sup><span style="color: red;">3</span></sup> mod <span style="color: blue;">23</span> = <span style="color: red;">18</span>
# Sekarang, Ani dan Budi sama-sama memiliki bilangan rahasia yang sama (bilangan <span style="color: red;">18</span>).
Baris 56:
: <math>({\color{blue}g}^{\color{red}a} \bmod {\color{blue}p})^{\color{red}b} \bmod {\color{blue}p} = ({\color{blue}g}^{\color{red}b} \bmod {\color{blue}p})^{\color{red}a} \bmod {\color{blue}p}.</math>
Hanya ''a'' dan ''b'' yang dirahasiakan. Nilai-nilai yang lain dikirim secara terang. Kekuatan metode ini berasal dari fakta bahwa {{
Tentunya, nilai ''a'', ''b'', dan ''p'' harus besar agar aman. Jika ''p'' paling tidak 600 angka, komputer modern tercepat pun tidak dapat mencari ''a'' dari ''p'', ''g'', dan {{
=== Tabel kerahasiaan ===
Baris 67:
* <span style="color: red;">''a''</span> = kunci pribadi Ani yang hanya diketahui oleh Ani. <span style="color: red;">''a''</span> = <span style="color: red;">6</span>
* <span style="color: red;">''b''</span> = kunci pribadi Budi yang hanya diketahui oleh Budi. <span style="color: red;">''b''</span> = <span style="color: red;">15</span>
* <span style="color: blue;">''A''</span> = kunci publik Ani yang diketahui oleh Ani, Budi, dan Eka. {{nowrap|1=<span style="color: blue;">''A''</span> = <span style="color: blue;">''g''</span><sup><span style="color: red;">''a''</span></sup> mod <span style="color: blue;">''p''</span> = <span style="color: blue;">8</span>}}
* <span style="color: blue;">''B''</span> = kunci publik Budi yang diketahui oleh Ani, Budi, dan Eka. {{nowrap|1=<span style="color: blue;">''B''</span> = <span style="color: blue;">''g''</span><sup><span style="color: red;">''b''</span></sup> mod <span style="color: blue;">''p''</span> = <span style="color: blue;">19</span>}}
<div><ul style="margin-left: 0px;">
|