Back to IF4020 Kriptografi
Hybrid Cryptography dan Diffie-Hellman
Questions/Cues
- Bagaimana Alice dan Bob berbagi kunci AES yang sama dengan aman?
- Bagaimana langkah-langkah hybrid cryptography?
- Bagaimana protokol pertukaran kunci Diffie-Hellman bekerja?
- Mengapa penyadap tidak dapat menghitung kunci bersama ?
- Mengapa DH rentan man-in-the-middle, dan bagaimana serangannya?
- Bagaimana DH diperluas untuk tiga pihak, dan siapa Merkle?
Reference Points
- IF4020 Kriptografi — Algoritma Pertukaran Kunci Diffie-Hellman (Slides 2-22)
Persoalan
Alice dan Bob sepakat memakai kunci-simetri (mis. AES), tetapi keduanya harus memiliki kunci AES yang sama. Bagaimana membagikannya tanpa diketahui pihak ketiga? Dua solusi: (1) hybrid cryptography dan (2) protokol pertukaran kunci Diffie-Hellman.
Hybrid Cryptography
Menggabungkan kriptografi simetri (AES) untuk pesan dengan kunci-publik (RSA) untuk kunci. Alice memiliki dan Bob .
- Alice membangkitkan kunci rahasia (untuk AES).
- Alice mengenkripsi dengan RSA memakai : .
- Alice mengenkripsi pesan dengan AES: .
- Alice mengirim dan kepada Bob.
- Bob mendekripsi dengan untuk memperoleh .
- Bob mendekripsi dengan AES memakai untuk memperoleh .
flowchart LR M["Pesan M"] --> AES["AES(K)"] --> CM["C_M"] K["Kunci sesi K"] --> AES K --> RSA["RSA(PK_Bob)"] --> CK["C_K"] CM --> BOB["Bob"] CK --> BOB BOB --> D1["RSA(SK_Bob) -> K"] --> D2["AES(K) -> M"]Diffie-Hellman: Konsep
Protokol (lebih tepat daripada “algoritma”) pertukaran kunci yang memungkinkan dua pihak berbagi kunci rahasia yang sama, yang lalu dipakai untuk enkripsi simetri (DES, AES, dsb). Dipublikasikan Diffie dan Hellman (1976). Keamanannya didasarkan pada sulitnya logaritma diskrit bilangan besar.
Analogi cat: Alice dan Bob menyepakati cat bersama (kuning, tidak rahasia); masing-masing punya cat rahasia (merah dan biru); masing-masing mencampur cat kuning dengan cat rahasianya (oranye dan biru terang) dan saling menukar campuran; lalu masing-masing mencampur cat rahasianya ke campuran yang diterima, sehingga keduanya memiliki warna akhir yang sama. Memisahkan campuran ke warna asal itu sangat sulit.
Algoritma
Parameter umum (tidak rahasia, boleh lewat saluran publik): prima dan akar primitif dari (Algoritma ElGamal).
Langkah Alice Bob 1 bangkitkan (privat), hitung , kirim 2 bangkitkan (privat), hitung , kirim 3 Keduanya memperoleh . Eve hanya tahu (semua publik); untuk mendapatkan ia perlu dari , yaitu logaritma diskrit, sangat sulit untuk bilangan besar.
Contoh: , . Alice : . Bob : . Alice: . Bob: . Kunci bersama .
sequenceDiagram participant A as Alice participant B as Bob Note over A,B: sepakat p dan g (publik) A->>B: A = g^a mod p B->>A: B = g^b mod p Note over A: K = B^a mod p = g^(ab) Note over B: K = A^b mod p = g^(ab)Serangan: Man-in-the-Middle
DH aman terhadap serangan pasif (penyadapan), tetapi tidak tahan serangan aktif. Mallory mencegat: ketika Alice mengirim , Mallory menggantinya dengan ke Bob; ketika Bob mengirim , ia menggantinya dengan ke Alice. Akibatnya Alice menghitung (sama dengan Mallory), Bob menghitung (sama dengan Mallory). Mallory dapat membaca dan mengubah semua pesan dengan mendekripsi/mengenkripsi ulang dengan dan (Serangan Pasif, Aktif, dan Side-Channel). Penyebabnya: pertukaran tidak mengotentikasi pihak lawan.
DH untuk Tiga Pihak
Alice, Bob, Carol sepakat dan memilih privat . Nilai dioper melingkar sampai ketiganya memperoleh : Alice mengirim ke Bob; Bob mengirim ke Carol; Carol menghitung . Lalu Carol, Alice (); Alice, Bob ().
Pemakaian dan Kredit
DH dipakai di SSL/TLS untuk mengamankan komunikasi client-server. Pada 2002 Hellman menyarankan nama Diffie-Hellman-Merkle untuk menghargai kontribusi Ralph Merkle dalam penemuan kriptografi kunci-publik (“a public key distribution system, a concept developed by Merkle”). Penghargaan IEEE Koji Kobayashi 1999 diberikan kepada Diffie, Hellman, dan Merkle; tahun 2000 kepada Rivest, Shamir, dan Adleman (RSA).
Untuk berbagi kunci AES yang sama ada dua jalan. Hybrid cryptography: kunci sesi dienkripsi dengan RSA (kunci publik penerima), pesan dienkripsi AES(), keduanya dikirim, penerima mendekripsi dengan kunci privatnya. Diffie-Hellman (1976) adalah protokol pertukaran kunci berbasis logaritma diskrit: dengan dan publik, Alice mengirim , Bob mengirim , dan keduanya menghitung (contoh , : ). Penyadap tak bisa memperoleh tanpa logaritma diskrit, tetapi DH rentan man-in-the-middle (Mallory berbagi dengan Alice dan dengan Bob) karena tak ada otentikasi. DH dapat diperluas ke tiga pihak (), dipakai di SSL/TLS, dan disebut juga Diffie-Hellman-Merkle. Algoritma kunci publik tertua yang berbeda pendekatannya: Algoritma Knapsack Merkle-Hellman.
Additional Information
DH + Tanda Tangan = Otentikasi
Perbaikan standar MITM: otentikasi parameter DH dengan tanda tangan digital atau sertifikat (mis. signed DH pada TLS, station-to-station protocol). TLS 1.3 memakai (EC)DHE ephemeral untuk forward secrecy: kunci dibuang setelah sesi sehingga kebocoran kunci jangka panjang tak membuka sesi lama.
Parameter Aman
sebaiknya prima aman ( dengan prima) dan bit; membangkitkan subgrup berorde besar. Logjam attack (2015) menunjukkan bahwa DH 512-bit (ekspor) dan prima standar yang dipakai bersama banyak server dapat dipecahkan dengan prakomputasi. Varian kurva eliptik ECDH (X25519) memberi keamanan setara dengan kunci 256-bit.
Hybrid Modern: KEM
Praktik terbaru merumuskan hybrid sebagai KEM/DEM (key encapsulation + data encapsulation): kunci publik hanya untuk membungkus kunci sesi, AES-GCM untuk data. ML-KEM (Kyber) adalah KEM pasca-kuantum yang menggantikan RSA/DH di TLS (mode hybrid X25519+ML-KEM).
Proyek Eksplorasi Mandiri
- Implementasikan DH tiga pihak dengan , dan tunjukkan ketiganya memperoleh yang sama; lalu simulasikan MITM Mallory dengan tiga proses.
- Bangun hybrid mini: pertukaran kunci DH, turunkan kunci AES dengan HKDF-SHA256, dan enkripsi pesan dengan AES-GCM.
Bacaan Lanjutan
- W. Diffie & M. Hellman, “New Directions in Cryptography”, 1976.
- Adrian et al., “Imperfect Forward Secrecy: How Diffie-Hellman Fails in Practice” (Logjam), CCS 2015.
- Demo:
asecuritysite.com/encryption/diffie.