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 .

  1. Alice membangkitkan kunci rahasia (untuk AES).
  2. Alice mengenkripsi dengan RSA memakai : .
  3. Alice mengenkripsi pesan dengan AES: .
  4. Alice mengirim dan kepada Bob.
  5. Bob mendekripsi dengan untuk memperoleh .
  6. 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).

LangkahAliceBob
1bangkitkan (privat), hitung , kirim
2bangkitkan (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).

Summary

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.