Back to IF4020 Kriptografi

Playfair dan Affine Cipher

Questions/Cues

  • Apa itu polygram cipher dan mengapa Playfair bekerja per bigram?
  • Bagaimana menyusun matriks kunci Playfair dan mengapa huruf J dibuang?
  • Apa langkah preprocessing pesan dan tiga aturan enkripsi Playfair?
  • Bagaimana rumus Affine cipher dan syarat kuncinya?
  • Bagaimana dekripsi Affine memakai invers modulo?
  • Bagaimana kedua cipher ini dikriptanalisis?

Reference Points

  • IF4020 Kriptografi — Kriptografi Klasik Bagian 2 (Slides 66-94)

Playfair Cipher — Polygram

Ditemukan Charles Wheatstone (1854), dipromosikan Baron Lyon Playfair. Termasuk polygram cipher: satu blok huruf plainteks disubstitusi dengan satu blok cipherteks. Playfair bekerja per bigram (2 huruf) — mis. AS → RT, BY → SL.

Matriks Kunci

Kunci disusun sebagai matriks berisi huruf A–Z. Karena hanya 25 sel untuk 26 huruf, huruf J dibuang (secara historis I dan J tak dibedakan; semua J diperlakukan sebagai I). Jumlah kemungkinan matriks: .

Contoh kunci dari kalimat JALAN GANESHA SEPULUH: buang duplikat & J → ALNGESHPU, sambung sisa alfabet (tanpa J) → ALNGESHPUBCDFIKMOQRTVWXYZ:

A L N G E
S H P U B
C D F I K
M O Q R T
V W X Y Z

Preprocessing Pesan

  1. Buang semua spasi.
  2. Ganti j dengan i.
  3. Tulis pesan berpasangan (bigram).
  4. Jika sebuah bigram berisi dua huruf sama, sisipkan x di tengahnya.
  5. Jika jumlah huruf ganjil, tambahkan x di akhir.

Contoh temui ibu nanti malamte mu ii bu na nt im al am → (sisip x) te mu ix ib un an ti ma la m → (padding) te mu ix ib un an ti ma la mx.

Tiga Aturan Enkripsi

flowchart TD
    B["Bigram (h1, h2)"] --> Q1{"Sebaris?"}
    Q1 -- ya --> R1["Ganti tiap huruf dengan<br/>huruf di KANANnya (siklik)"]
    Q1 -- tidak --> Q2{"Sekolom?"}
    Q2 -- ya --> R2["Ganti tiap huruf dengan<br/>huruf di BAWAHnya (siklik)"]
    Q2 -- tidak --> R3["Aturan persegi panjang:<br/>tiap huruf → perpotongan barisnya<br/>dengan kolom huruf pasangannya"]
  1. Sebaris — tiap huruf diganti huruf di kanannya (siklik). Mis. di → FK.
  2. Sekolom — tiap huruf diganti huruf di bawahnya (siklik). Mis. nq → PX.
  3. Persegi panjang — huruf pertama diganti huruf pada perpotongan barisnya dengan kolom huruf kedua; huruf kedua diganti dari sudut keempat persegi panjang. Mis. hz → BW.

Hasil: temui ibu nanti malam → bigram te mu ix ib un an ti ma la mx → cipherteks ZB RS FY KU PG LG RK VS NL QV.

Dekripsi membalik: sebaris → geser kiri; sekolom → geser atas; persegi panjang → aturan sama; terakhir buang x yang tak bermakna.

Kriptanalisis Playfair

Ada bigram, jadi identifikasi bigram individual lebih sukar dari huruf tunggal. Tetapi ukuran poligramnya hanya 2 — tetap tidak aman:

  • Dapat dipecahkan dengan analisis frekuensi pasangan huruf (TH, HE tersering di B. Inggris) bila cipherteks cukup banyak.
  • Bigram dan kebalikannya (AB vs BA) menghasilkan pola plainteks bertukar (RE vs ER) — bahasa Inggris penuh kata seperti receiver, departed.
  • Dari dugaan (mis. cipherteks BM sering → plainteks TH), rekonstruksi matriks parsial dengan menguji aturan baris/kolom/persegi panjang.

Affine Cipher

Perluasan Caesar cipher dengan dua parameter kunci dan :

dengan = ukuran alfabet, = pergeseran, dan harus relatif prima dengan () agar ada. Caesar cipher = kasus khusus .

Contoh, plainteks kripto = , , , :

→ cipherteks CZOLNE. Dekripsi: (sebab ), jadi . Cek : . ✓

Kriptanalisis Affine

  • Known-plaintext attack — dua pasang , memberi kekongruenan simultan , ; kurangkan → , substitusi → . Contoh: , memberi , , lalu .
  • Exhaustive key search — hanya kombinasi ( nilai relatif prima dengan 26, nilai ). Sangat sedikit.
  • Memperbesar faktor kerja — enkripsi per blok huruf, bukan huruf individual. Blok 4-huruf krip, pakai modulus (ZZZZ), relatif prima dengan (mis. ).

Summary

Playfair cipher (Wheatstone, 1854) adalah polygram cipher yang mengenkripsi per bigram memakai matriks kunci (huruf J dibuang, diperlakukan sebagai I). Setelah preprocessing (buang spasi, j→i, pisah bigram kembar dengan x, padding x), tiap bigram dienkripsi dengan tiga aturan: sebaris → geser kanan; sekolom → geser bawah; selainnya → aturan persegi panjang. Ia dipecahkan dengan analisis frekuensi bigram dan kelemahan bigram-terbalik. Affine cipher menggeneralisasi Caesar: dengan ; dekripsi butuh invers modulo (lihat Teori Bilangan untuk Kriptografi). Affine jatuh oleh known-plaintext attack (2 pasang huruf cukup) atau brute force atas hanya 300 kunci. Cipher poligram berbasis aljabar linier yang lebih kuat adalah Hill cipher — Hill Cipher dan Enigma Cipher.