Pertukaran kunci Diffie–Hellman: Perbedaan antara revisi
Konten dihapus Konten ditambahkan
penerjemahan dari en:Diffie–Hellman key exchange |
Ibuperiwiki (bicara | kontrib) Fitur saranan suntingan: 3 pranala ditambahkan. |
||
(3 revisi perantara oleh 2 pengguna tidak ditampilkan) | |||
Baris 3:
* kesepakatan kunci Diffie–Hellman,
* pembentukan kunci Diffie–Hellman,
* pertukaran kunci eksponensial,
* protokol Diffie–Hellman, dan
Baris 12 ⟶ 11:
dipakai untuk mengamankan berbagai macam layanan internet. Namun, riset yang dipublikasikan pada Oktober 2015 menyebutkan bahwa parameter yang dipakai untuk banyak aplikasi internet yang memakai DH tidak cukup kuat untuk mencegah serangan yang didanai dengan cukup, seperti layanan keamanan di beberapa negara.<ref name=adrian2015>{{cite web |url=https://weakdh.org/imperfect-forward-secrecy-ccs15.pdf |title=Imperfect Forward Secrecy: How Diffie–Hellman Fails in Practice |date=October 2015 |last1=Adrian |first1=David |last2=Bhargavan |first2=Karthikeyan |last3=Durumeric |first3=Zakir |last4=Gaudry |first4=Pierrick |last5=Green |first5=Matthew |last6=Halderman |first6=J. Alex |last7=Heninger |first7=Nadia |last8=Springall |first8=Drew |last9=Thomé |first9=Emmanuel |last10=Valenta |first10=Luke |last11=VanderSloot |first11=Benjamin |last12=Wustrow |first12=Eric |last13=Zanella-Béguelin |first13=Santiago |last14=Zimmermann |first14=Paul}}</ref>
Metode ini dipublikasikan oleh Whitfield Diffie dan Martin Hellman pada tahun 1976.<ref name=diffie1976 /> Namun, pada tahun 1997, terungkap bahwa [[James H. Ellis]],<ref>{{cite web |url=http://cryptocellar.web.cern.ch/cryptocellar/cesg/possnse.pdf |last=Ellis |first=J. H. |author-link=James H. Ellis |date=Januari 1970 |title=The possibility of Non-Secret digital encryption |work=CESG Research Report |access-date=28 Agustus 2015 |url-status=dead |archive-url=https://web.archive.org/web/20141030210530/https://cryptocellar.web.cern.ch/cryptocellar/cesg/possnse.pdf |archive-date=30 Oktober 2014}}</ref> [[Clifford Cocks]], dan [[Malcolm J. Williamson]] dari [[Government Communications Headquarters|GCHQ]], badan intelijen sinyal [[Britania Raya]] telah menunjukkan pada tahun 1969<ref>{{cite web |url=https://www.gchq.gov.uk/sites/default/files/document_files/CESG_Research_Report_No_3006_0.pdf |title=The Possibility of Secure Non-Secret Digital Encryption |archive-url=https://web.archive.org/web/20170216051636/https://www.gchq.gov.uk/sites/default/files/document_files/CESG_Research_Report_No_3006_0.pdf |archive-date=16 Februari 2017 |url-status=live |access-date=8 Juli 2017}}</ref> tentang cara mencapai kriptografi kunci publik.<ref>{{cite news |url=https://www.bbc.co.uk/news/uk-england-gloucestershire-11475101 |title=GCHQ trio recognised for key to secure shopping online |date=5 Oktober 2010 |work=[[BBC News]] |access-date=5 Agustus 2014 |url-status=live |archive-url=https://web.archive.org/web/20140810044800/http://www.bbc.co.uk/news/uk-england-gloucestershire-11475101 |archive-date=10 Agustus 2014}}</ref>
Meski tidak memiliki fungsi autentikasi, kesepakatan kunci Diffie–Hellman menjadi dasar untuk berbagai protokol berautentikasi dan memberikan [[kerahasiaan ke depan]] dalam mode [[kunci tak kekal]] [[Transport Layer Security|TLS]] (disebut sebagai EDH atau DHE).
Metode ini diikuti segera oleh [[RSA]], yaitu implementasi kriptografi kunci publik dengan [[Algoritma|algoritme]] asimetris.
{{US patent|4200770}} tahun 1977 (telah kedaluwarsa) menjelaskan algoritme ini yang sekarang berada dalam [[domain publik]]. Ia menyebut Hellman, Diffie, dan Merkle sebagai penemu.
Baris 30 ⟶ 29:
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 ⟶ 55:
: <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 ⟶ 66:
* <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;">
Baris 180 ⟶ 179:
== Kegunaan lain ==
=== Enkripsi ===
Skema enkripsi kunci publik yang menggunakan pertukaran kunci Diffie–Hellman telah diusulkan. Salah satunya adalah [[enkripsi Elgamal]].
=== Kerahasiaan ke depan ===
Protokol yang menerapkan [[kerahasiaan ke depan]] menghasilkan pasangan kunci baru untuk tiap [[Sesi (komputer)|sesi]] dan membuangnya pada akhir sesi. Pertukaran kunci Diffie–Hellman sering dipakai untuk membuat kunci baru karena pembuatan kuncinya yang cepat.
=== Kesepakatan kunci terautentikasi ===
Ketika Ani dan Budi berbagi kata sandi, mereka mungkin bisa memakai Diffie–Hellman dalam [[kesepakatan kunci terautentikasi kata sandi]] (PK) untuk menghindari [[serangan orang di tengah]]. Salah satu caranya adalah dengan membandingkan ''hash'' dari ''s'' yang dibuat beserta kata sandi secara mandiri. Pendekatan ini dijelaskan dalam Rekomendasi [[ITU-T]] [[X.1035]].
=== Kunci publik ===
Diffie–Hellman dapat dipakai dalam [[infrastruktur kunci publik]] sehingga Budi dapat mengenkripsi pesan yang hanya bisa didekripsi oleh Ani tanpa komunikasi sebelumnya. Misalkan kunci publik Ani adalah {{nowrap|(''g<sup>a</sup>'' mod ''p'', ''g'', ''p'')}}. Untuk mengiriminya pesan, Budi memilih bilangan acak ''b'', lalu mengirimi Ani {{nowrap|''g<sup>b</sup>'' mod ''p''}} (tidak dienkripsi) beserta pesan yang dienkripsi dengan kunci simetris {{nowrap|(''g<sup>a</sup>'')<sup>''b''</sup> mod ''p''}}. Hanya Ani yang dapat mendekripsi kunci simetris karena memiliki ''a'' sehingga dapat mendekripsi pesan yang dikirim oleh Budi.
== Lihat pula ==
|