Back to IF4020 Kriptografi

One-Time Pad dan Perfect Secrecy

Questions/Cues

  • Apakah unbreakable cipher benar-benar ada, dan apa syaratnya?
  • Siapa penemu OTP dan siapa yang membuktikan keamanannya?
  • Bagaimana enkripsi dan dekripsi OTP, dan apa bedanya dengan Vigenère?
  • Mengapa kunci dari teks novel atau kunci yang dipakai dua kali membuat OTP gagal?
  • Mengapa cipherteks OTP tidak bisa dipecahkan (pemetaan satu-ke-satu)?
  • Apa definisi perfect secrecy menurut Shannon?

Reference Points

  • IF4020 Kriptografi — One-Time Pad (Slides 1-19)

Unbreakable Cipher

Unbreakable cipher adalah klaim kriptografer atas algoritma rancangannya, tetapi kebanyakan algoritma yang pernah dibuat adalah breakable cipher. Caesar, Vigenère, Playfair, Affine, Enigma, dan Hill sudah kedaluwarsa karena semuanya breakable (lihat Caesar Cipher dan ROT13 sampai Hill Cipher dan Enigma Cipher).

Apakah cipher yang tak terpecahkan benar-benar ada? Ada. Syaratnya ada tiga:

  1. Kunci acak sejati (truly random).
  2. Panjang kunci = panjang plainteks.
  3. Kunci hanya dipakai sekali, tidak boleh dipakai ulang untuk pesan lain.

Acak sejati berarti nilainya tidak dapat diprediksi dan pembangkitannya tidak dapat diulang. Ini berbeda dengan pseudo-random, yang bisa diulang persis bila seed-nya sama. Akibat syarat 1 dan 2: plainteks yang sama tidak selalu menghasilkan cipherteks yang sama.

One-Time Pad (OTP)

One-time pad adalah satu-satunya algoritma kriptografi dengan perfect secrecy. Ditemukan oleh Gilbert Vernam (1917) dan dibuktikan secara matematis oleh Claude Shannon (1949).

OTP menambal kelemahan Vigenère. Vigenère mengulang kunci secara periodik sehingga jatuh oleh metode Kasiski (Vigenère Cipher dan Kriptanalisis Kasiski); pada OTP panjang kunci sama dengan panjang plainteks dan seluruh karakternya acak sejati.

Pad berarti bloknot: lembaran berisi deretan huruf kunci acak. Pengirim dan penerima memegang salinan pad yang sama. Satu pad hanya dipakai sekali lalu dihancurkan agar tidak dipakai lagi, sehingga kriptanalisis makin sulit.

flowchart LR
    G["Bangkitkan pad<br/>acak sejati, sepanjang pesan"] --> S["Salin pad ke<br/>pengirim &amp; penerima<br/>(saluran aman)"]
    S --> E["Pengirim: C = (P + K) mod 26"]
    E --> D["Penerima: P = (C - K) mod 26"]
    D --> X["Hancurkan pad<br/>(tidak boleh dipakai lagi)"]

Enkripsi dan Dekripsi

Aturannya persis seperti Vigenère, hanya tanpa pengulangan kunci:

Contoh : . Dekripsi : .

Plainteksonetimepad
Kuncitbfrgfarfm
CipherteksHOJKOREGFP

Catatan verifikasi: slide menulis cipherteks HOJKOREGHP, tetapi hasil hitung ulang a + f = 0 + 5 = F memberi huruf ke-9 = F, bukan H. Catatan ini memakai hasil yang dihitung ulang.

Pelanggaran Syarat = Bukan OTP Lagi

  • Kunci diambil dari teks panjang (novel, buku, berita): bukan lagi OTP karena teks bermakna tidak acak. Tidak ada perfect secrecy dan cipherteks dapat dipecahkan (setara running-key Vigenère).
  • Kunci dipakai dua kali: menjadi two-time pad dan tidak aman. Dua cipherteks berkunci sama, bila dikurangkan, menghilangkan kunci dan menyisakan selisih dua plainteks, yang bisa diurai dengan analisis frekuensi dan tebakan kata.

Mengapa OTP Tidak Dapat Dipecahkan

  1. Kunci acak + plainteks tidak acak = cipherteks acak.
  2. Pemetaan satu-ke-satu: untuk sembarang pasangan plainteks dan cipherteks hanya ada satu kunci yang memetakannya. Kriptanalis yang mencoba banyak kunci akan mendapat banyak plainteks bermakna dan tidak punya dasar memilih yang benar.

Contoh (cipherteks HOJKOREGFP, 10 huruf): kunci POYYAEAAZX menghasilkan salmoneggs (telur ikan salmon), sedangkan kunci BXFGBMWCUM menghasilkan greenfield (lapangan hijau). Keduanya bermakna; tidak ada cara memutuskan mana yang asli.

Nilai kunci di slide (LMCCAWAAZD dan ZDVUZOEYEO) tidak mereproduksi kedua plainteks itu saat dihitung ulang; prinsipnya tetap sama.

Bukti Ringkas

Misalkan dengan seragam: . Untuk setiap plainteks tetap , pemetaan bersifat satu-ke-satu, sehingga

yakni cipherteks berdistribusi seragam apa pun plainteksnya.

Perfect Secrecy

Perfect secrecy: cipherteks tidak memberi informasi apa pun tentang plainteks maupun kunci. Shannon membuktikan OTP memilikinya dalam “Communication Theory of Secrecy Systems” (Bell System Technical Journal, 28(4), 1949). Secara matematis, informasi tentang plainteks tidak bertambah setelah cipherteks diamati:

Peluang plainteks tertentu sama sebelum dan sesudah cipherteks dilihat.

Summary

Unbreakable cipher ada, yaitu one-time pad (Vernam, 1917; dibuktikan Shannon, 1949), dengan tiga syarat: kunci acak sejati, sepanjang plainteks, dan sekali pakai. Rumusnya sama dengan Vigenère, , tetapi tanpa pengulangan kunci sehingga Kasiski tak berlaku. Kunci dari teks bermakna bukan OTP, dan kunci yang dipakai dua kali menjadi two-time pad yang tidak aman. OTP tak terpecahkan karena pemetaan untuk kunci tertentu bersifat satu-ke-satu: satu cipherteks bisa didekripsi menjadi banyak plainteks bermakna (mis. salmoneggs vs greenfield) tanpa cara membedakannya, dan cipherteks berdistribusi seragam . Inilah perfect secrecy: . Kerugiannya ada pada praktik, dibahas di Kelemahan dan Penggunaan OTP.