Metode Affine cipher adalah perluasan dari metode Caesar cipher, yang mengalikan plainteks dengan sebuah nilai P dan menambahkannya dengan sebuah pergeseran b menghasilkan cipherteks C dinyatakan dengan fungsi kongruen:
\[C\equiv mP+b(\bmod n) \]
Yang mana n adalah ukuran alphabet, m adalah bilangan bulat yang harus relatif prima dengan n (jika tidak relatif prima, maka dekripsi tidak bisa dilakukan) dan b adalah jumlah pergeseran (Caesar cipher adalah bentuk khusus dari Affine cipher dengan m=1). Untuk melakukan dekripsi, persamaan di atas harus dipecahkan untuk memperoleh P. Solusi kekongruenan tersebut hanya ada jika invers m (mod n), dinyatakan dengan \(m^{-1}\). Jika \(m^{-1}\) ada maka dekripsi dilakukan dengan persamaan sebagai berikut: (Munir, 2006)
\[P\equiv m^{-1}(C-b)(\bmod n)\]
- ENKRIPSI & DEKRIPSI
- ENKRIPSI dengan menggunakan KUNCI INVERS
- BRUTE FORCE
Catatan :
- Jika dilihat di atas, nilai a memiliki batasan. Nilai a yang diijinkan adalah 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 dan 25 (jika alfabet yang digunakan adalah 26 karakter -- mod 26) karena sesuai dengan Teorema Bezout menunjukkan bahwa invers a (a') hanya ada jika a dan 26 (panjang alfabet) adalah coprime. Biasa saja kita melakukan Enkripsi dengan nilai a yang tidak coprime dengan 26 akan tetapi pada saat Dekripsi kita akan mendapatkan hasil dekripsi yang salah.
- Nilai b memiliki batasan dari 1 s.d. 25 jika modulo yang digunakan adalah mod 26. Sebenarnya bisa juga menggunakan nilai negatif seperti -1 akan tetapi hasilnya sama saja karena pada mod 16, nilai -1 sama dengan 25 (25 = -1 mod 26).
- Pada contoh Brute Force di atas, dicoba sebanyak 312 kombinasi key (a,b). Nilai key a yang mungkin sebanyak 12 key dan b sebanyak 26 sehingga 12 x 26 = 312.
Berikut adalah Affine Cipher versi Buku William Stalling: