02 September 2017

Affine Cipher

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
Berikut adalah contoh ENKRIPSI dan DEKRIPSI dengan menggunakan library Affine Cryptosystem yang sudah tersedia di Sagemath. Author Affine Cipher adalah Minh Van Nguyen (Agustus 2009)

  • ENKRIPSI dengan menggunakan KUNCI INVERS
Mengenkripsi Ciphertext di atas dengan menggunakan invers key akan menghasilkan Plaintext juga. Jadi selain dengan Dekripsi ciphertext menggunakan key aslinya, Plaintext-nya dapat dihasilkan juga dengan Enkripsi ciphertext dengan invers key-nya.

  • BRUTE FORCE
Contoh berikut ini menunjukkan Brute Force terhadap Enkripsi di atas untuk menghasilkan plaintext tanpa menggunakan kuncinya :

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.
Pada video di bawah ini diberikan contoh cara mencari invers pada modulo 26.

Berikut adalah Affine Cipher versi Buku William Stalling:
Contoh Enkripsi dan Dekripsi Affine Cipher dengan fungsi-fungsi di atas sbb:

2 comments:

  1. Evaluate Sage Code yang di atas-nya terlebih dahulu sebelum menjalankan yang di bawah-nya...

    ReplyDelete

SAAT RESTORAN DIBUKA KEMBALI, INILAH YANG HARUS ANDA KETAHUI TENTANG AC, ALIRAN UDARA, DAN COVID-19

Pengunjung yang makan di restoran mungkin bisa memberi tahu banyak tentang bagaimana para penggiat bisnis restoran berusaha mengurangi risik...