28 September 2017

Hill Cipher

<<Affine Cipher
  • HILL OR MATRIX CIPHER. 
Hill Cipher diciptakan oleh Lester S. Hill pada tahun 1929 [2]. Teknik kriptografi ini diciptakan dengan maksud untuk dapat menciptakan cipher (kode) yang tidak dapat dipecahkan menggunakan teknik analisis frekuensi. Hill Cipher tidak mengganti setiap abjad yang sama pada plaintext dengan abjad lainnya yang sama pada ciphertext karena menggunakan perkalian matriks pada dasar enkripsi dan dekripsinya.

Hill Cipher yang merupakan polyalphabetic cipher dapat dikategorikan sebagai block cipher [2] karena teks yang akan diproses akan dibagi menjadi blok-blok dengan ukuran tertentu. Setiap karakter dalam satu blok akan saling mempengaruhi karakter lainnya dalam proses enkripsi dan dekripsinya, sehingga karakter yang sama tidak dipetakan menjadi karakter yang sama pula.

Hill Cipher termasuk algoritma kriptografi klasik yang sangat sulit dipecahkan oleh kriptanalis apabila kriptanalisis-nya hanya dengan mengetahui berkas ciphertext saja. Namun, teknik ini dapat dipecahkan dengan cukup mudah apabila seorang kriptanalis memiliki berkas ciphertext dan potongan berkas plaintext. Teknik kriptanalisis ini disebut known-plaintext attack [1].

  • ALGORITMA HILL CIPHER.
Algoritmanya yaitu Hill Cipher mengenkripsi plaintext sepanjang m menjadi ciphertext dengan panjang yang sama (m). Substitusinya ditentukan oleh persamaan linier m dimana masing-masing karakter diganti dengan nilai nominal (a=0, b=1, ..., z=25). Untuk m=3, sistemnya seperti berikut :
\[c_{1}=(k_{11}p_{1}+k_{21}p_{2}+k_{31}p_{3})\bmod 26\]
\[c_{2}=(k_{12}p_{1}+k_{22}p_{2}+k_{32}p_{3})\bmod 26\]
\[c_{3}=(k_{13}p_{1}+k_{23}p_{2}+k_{33}p_{3})\bmod 26\]
Jika digambarkan dalam vektor baris dan matriks adalah sebagai berikut :
\[(c_{1}c_{2}c_{3})=(p_{1}p_{2}p_{3})\begin{bmatrix}k_{11} & k_{12} & k_{13} \\k_{21} & k_{22} & k_{23}\\k_{31} & k_{32} & k_{33} \end{bmatrix}\bmod 26\]
\[C=PK\bmod26\]
dimana C dan P adalah vektor baris dengan panjang 3 dan K adalah kunci enkripsi berupa matriks berukuran 3 x 3. Operasi dilakukan dengan modulo 26.

Berikut adalah contoh Enkripsi & Dekripsi  Hill Cipher dengan menggunakan library pada Sagemath. Pembuat library Hill Cipher pada Sage adalah David Kohel (2007) [3]. 

Membuat cryptosystem Hill Cipher yang didefinisikan oleh ruang matriks m x m pada Z/NZ, di mana N adalah ukuran alfabet dari string monoid S.

Berikut adalah contoh Enkripsi dan Dekripsi Hill Cipher dengan menggunakan Random Key.

Catatan:
  1. Plaintext yang akan dienkripsi panjangnya harus merupakan kelipatan m (ukuran matrix yg digunakan sebagai kunci).
  2.  Plaintext harus sudah dalam format encoding (tidak ada lagi spasi, huruf kecil dan tanda baca).
Berikut ini adalah contoh Hill Cipher tanpa menggunakan library dari Sage. Hill Cipher di bawah ini dibuat menggunakan Bahasa Pemrograman Python yang sudah disesuaikan (preparse) dengan Sage[4]:

  • KRIPTANALISIS HILL CIPHER.
Kriptanalisis terhadap Hill Cipher sangat sulit jika dilakukan dengan ciphertext-only attack, apalagi jika matriks kunci yang digunakan berukuran besar. Kesulitan ini disebabkan oleh ciphertext Hill Cipher tidak memiliki pola dan setiap karakter dalam satu blok saling mempengaruhi karakter lainnya.

Teknik yang dapat digunakan untuk melakukan kriptanalisis terhadap Hill Cipher adalah known-plaintext attack. Jika kriptanalisis memiliki pecahan plaintext dan ciphertext yang saling berkorespondensi, maka Hill Cipher dapat dipecahkan. Namun proses yang cukup sulit adalah untuk menentukan panjang kunci yang digunakan. Hal ini menjadi salah satu kekuatan yang dimiliki oleh Hill Cipher. Cara yang dapat dilakukan hanya dengan mencari tahu panjang kunci atau dengan melakukan perkiraan dan percobaan.

Referensi:
  1. Anton, Howard, Rorres, Chris, Elementary linear algebra, John Wiley & Sons, 2011
  2. Forouzan, Behrouz, Cryptography and Network Security, McGraw-Hill, 2006
  3. Stalling, William, Cryptography and Network Security, Pearson, 2014
  4. https://github.com/rhtyd/hacklab/blob/master/labwork/Security/hill-cipher.py

No comments:

Post a Comment

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...