Back to IF4020 Kriptografi

Vigenère Cipher dan Kriptanalisis Kasiski

Questions/Cues

  • Apa beda cipher abjad-majemuk (polyalphabetic) dengan abjad-tunggal?
  • Bagaimana rumus enkripsi/dekripsi Vigenère dan cara pakai Vigenère square?
  • Mengapa histogram cipherteks Vigenère cenderung datar?
  • Apa varian Vigenère (Full, Auto-Key, Running-Key, Extended)?
  • Bagaimana metode Kasiski menemukan panjang kunci?
  • Setelah panjang kunci diketahui, bagaimana huruf kunci ditemukan?

Reference Points

  • IF4020 Kriptografi — Kriptografi Klasik Bagian 2 (Slides 27-65)

Cipher Abjad-Majemuk

Polyalphabetic cipher memakai kunci berbeda untuk tiap huruf plainteks, berbeda dari monoalphabetic yang memakai satu kunci untuk semua huruf. Tujuannya mengatasi kelemahan cipher abjad-tunggal terhadap analisis frekuensi.

Bentuk umum: kunci (panjang ). Karena lebih pendek dari plainteks, kunci diulang periodik. Cipherteks:

dengan = fungsi enkripsi cipher abjad-tunggal. Untuk ia ekuivalen cipher abjad-tunggal.

Vigenère Cipher

Setiap huruf plainteks dienkripsi dengan Caesar cipher memakai huruf kunci di bawahnya ():

Contoh, kunci soreang:

Plainteks : t e r i m a p e s a n a n g u l a i k a m b i n g
Kunci     : s o r e a n g s o r e a n g s o r e a n g s o r e
Cipherteks: L S I M M N V W G R R A A M M Z R M K N S T W E K

Contoh hitung: ; .

Vigenère square (tabel ): baris adalah pergeseran alfabet sejauh ; enkripsi = titik potong baris huruf kunci dengan kolom huruf plainteks. Tak wajib — perhitungan modular di atas sudah cukup.

Kelebihan dan Histogram Datar

Huruf plainteks yang sama tidak selalu menjadi huruf cipherteks yang sama (bergantung huruf kunci). Sebaliknya, satu huruf cipherteks bisa mewakili banyak huruf plainteks. Akibatnya distribusi huruf cipherteks mendekati seragam dan histogramnya datar (flat) — inilah yang menyulitkan analisis frekuensi langsung.

Sejarah

  • Digambarkan pertama kali oleh Giovan Battista Bellaso (1553, buku La Cifra del Sig. Giovan Battista Bellaso).
  • Disempurnakan & dipublikasikan diplomat Prancis Blaise de Vigenère (1586). Pada abad ke-19 orang mengira ia penemunya → dikenal sebagai Vigenère Cipher.
  • Dipecahkan Babbage dan Kasiski pada pertengahan abad ke-19. Sempat dijuluki “le chiffre indéchiffrable”.
  • Dipakai Tentara Konfederasi pada Perang Sipil Amerika — padahal cipher ini sudah bisa dipecahkan saat itu.

Varian Vigenère

  • Extended Vigenère — untuk 256 karakter ASCII: .
  • Full Vigenère — tiap baris tabel bukan pergeseran, melainkan permutasi acak alfabet; tabel harus dirahasiakan.
  • Auto-Key Vigenère — kunci disambung dengan plainteks itu sendiri hingga sepanjang plainteks. Mis. kunci INDO + pesan → INDONEGARAPENG....
  • Running-Key Vigenère — kunci adalah teks bermakna yang sangat panjang (naskah proklamasi, Pembukaan UUD 1945, ayat kitab suci).

Ketiga varian terakhir dibuat untuk melawan metode Kasiski yang mengeksploitasi pengulangan kunci periodik.

Kriptanalisis: Metode Kasiski

Friedrich Kasiski (1863) — metodenya tidak langsung menemukan kunci, tetapi mengestimasi panjang kunci. Intuisi: bila jarak antara dua string berulang di plainteks kelipatan panjang kunci, string itu menghasilkan kriptogram yang sama.

Contoh: plainteks cryptoisshortforcryptography

  • Kunci abcd (): jarak dua crypto = 16 = kelipatan 4 → crypto → kriptogram sama (CSASTP).
  • Kunci abcdef (): jarak 16 bukan kelipatan 6 → kriptogram berbeda.

Langkah metode Kasiski:

  1. Temukan semua kriptogram yang berulang di cipherteks.
  2. Hitung jarak antar-perulangan.
  3. Cari semua faktor pembagi tiap jarak (kandidat panjang kunci).
  4. Ambil irisan himpunan faktor → nilai yang muncul di semua adalah dugaan panjang kunci.

Contoh: DYDUXRMHTVDVNQDQNWDYDUXRMHARTJGWNQDDYDUXRMH berjarak 18 (faktor ), NQD berjarak 20 (faktor ). Irisan = 2 → panjang kunci .

flowchart TD
    A["Cari kriptogram berulang<br/>di cipherteks"] --> B["Hitung jarak antar-perulangan"]
    B --> C["Faktorkan tiap jarak"]
    C --> D["Irisan faktor → panjang kunci n"]
    D --> E["Kelompokkan huruf berjarak n<br/>→ n 'pesan' Caesar"]
    E --> F["Analisis frekuensi tiap kelompok<br/>→ tiap huruf kunci"]
    F --> G["Susun kunci, dekripsi"]

Menemukan Huruf Kunci

Setelah panjang kunci diketahui: setiap huruf berjarak dienkripsi dengan huruf kunci yang sama. Kelompokkan menjadi “pesan”, masing-masing adalah Caesar cipher → pecahkan tiap kelompok dengan analisis frekuensi (huruf tersering tiap kelompok ≈ e). Alternatif: exhaustive key search (lebih lambat).

Contoh: cipherteks dengan LJV berulang berjarak 15 dan 10 → faktor dan , irisan 5. Kelompokkan tiap 5 huruf; huruf tersering tiap kelompok: L, J, V, N, A. Karena LJV tersering = the, diperoleh kunci SCRAM (), dan cipherteks terdekripsi: “THE BEAR WENT OVER THE MOUNTAIN…”

Summary

Vigenère cipher adalah cipher abjad-majemuk: kunci diulang periodik, tiap huruf dienkripsi Caesar dengan huruf kuncinya — . Karena huruf sama bisa jadi cipher berbeda, histogram cipherteks datar dan analisis frekuensi langsung gagal. Dirumuskan Bellaso (1553), dipopulerkan Vigenère (1586), dipecahkan Kasiski (1863). Metode Kasiski mengestimasi panjang kunci: cari kriptogram berulang → jarak → faktor → irisan faktor. Setelah panjang kunci diketahui, kelompokkan huruf berjarak menjadi Caesar cipher dan pecahkan tiap kelompok dengan analisis frekuensi. Varian Full / Auto-Key / Running-Key menghilangkan periodisitas kunci untuk menggagalkan Kasiski. Cipher poligram Playfair dan Affine Cipher menempuh strategi berbeda.