Kode Hill atau
lebih dikenal dengan Hill cipher merupakan salah satu algoritma kriptografi
kunci simetris dan merupakan salah satu kripto polyalphabetic. Hill cipher
diciptakan oleh Lester S. Hill pada tahun 1929.
Teknik kriptografi ini diciptakan dengan maksud untuk dapat menciptakan cipher
yang tidak dapat dipecahkan menggunakanteknik analisis frekuensi. Berbeda
dengan caesar cipher, hill cipher tidak mengganti setiap abjad yang sama pada
plainteks dengan abjad lainnya yang sama pada cipherteks karena menggunakan
perkalian matriks pada dasar enkripsi dan dekripsinya.
Hill cipher merupakan penerapan aritmatika modulo pada kriptografi. Teknik
kriptografi ini enggunakan sebuah matriks persegi sebagai kunci berukuran m x m
sebagai kunci untuk melakukan enkripsi dan dekripsi. Dasar teori matriks yang
digunakan dalam Hill cipher antara lain adalah perkalian antar matriks dan
melakukan invers pada matriks. Karena menggunakan matriks sebagai kunci, Hill cipher merupakan algoritma
kriptografi kunci simetris yang sulit dipecahkan, karena teknik kriptanalisis
seperti analisis frekuensi tidak dapat diterapkan dengan mudah untuk memecahkan
algoritma ini. Hill cipher sangat sulit dipecahkan jika kriptanalis hanya
memiliki ciphertext saja (chipertext-only), namun dapat dipecahkan dengan mudah
jika kriptanalis memiliki ciphertext dan potongan dari plaintext-nya
(known-plaintext).
Perhitungan Matematis Dasar dari teknik hill cipher
adalah aritmatika modulo terhadap matriks. Dalam penerapannya, Hill cipher
menggunakan teknik perkalian matriks dan teknik invers terhadap matriks. Kunci
pada hill cipher adalah matriks n x n dengan n merupakan ukuran blok. Jika
matriks kunci kita sebut dengan K, maka matriks K adalah sebagai berikut :
Matriks K yang menjadi kunci ini harus merupakan
matriks yang invertible, yaitu memiliki multiplicative inverse K-1 sehingga :
K.K-1 = 1
Kunci harus memiliki invers karena matriks K-1 tersebut adalah kunci
yang digunakan untuk melakukan dekripsi.
Cara Enkripsi
Dengan mengkodekan atau mengubah setiap huruf abjad dengan integer sebagai
berikut :
A = 0, B = 1, …, Z = 25
maka secara matematis, proses enkripsi pada hill
cipher adalah :
C = K . P mod 26
C = Cipherteks | K = Kunci | P = Plainteks
Proses enkripsi pada hill cipher dilakukan per blok plainteks. Ukuran blok
tersebut sama dengan ukuran matriks kuncinya.
Perhatikan contoh dibawah ini !!
P = D O D I S P U T R A, dikodekan/diintegerkan menjadi P = 3 14 3 8 18 15 20 19 17 0
Karena matriks kunci K berukuran 2, maka plainteks
dibagi menjadi blok yang masing-masing bloknya berukuran 2 karakter. Blok
pertama dari plainteks P1,2 =[3;14] kemudian dienkripsi dengan kunci K dengan
persamaan C = K . P mod 26. Karena perkalian tersebut menghasilkan lebih dari
angka 25 maka dilakukan modulo 26 pada hasil yang lebih dari 25.
Karakter yang berkorespondensi dengan 21 dan 9
adalah V dan J. Setelah melakukan enkripsi semua blok pada plainteks P maka
dihasilkan cipherteks C sebagai berikut :
P = D O D I S P U T R A
C = V J R N P W L U R X
Cipherteks yang dihasilkan oleh enkripsi hill chiper atau kode hill
menghasilkan cipherteks yang tidak memiliki pola yang mirip dengan plainteks
atau pesan aslinya.
Mancari K Invers dan Teknik Dekripsi
Perhitungan matematis dekripsi pada hill chiper atau kode hill ini sama halnya
dengan enkripsi. Namun matriks kunci harus dibalik (invers) terlebih dahulu dan
kunci invers harus memenuhi persamaan K.
K-1 = 1.
P = K-1.Cm26
Sebelum mendekripsi kita akan menginvers kunci K terlebih dahulu, untuk
menginvers kita akan menggunakan persamaan [K | I] = K-1, proses invers ini
kita akan kita lakukan dengan operasi baris/ row operation.
Dari perhitungan di atas didapatkan K invers :
K invers ini sudah memenuhi persamaan K . K-1 = I,
berdasarkan perkalian K dengan K-1 kemudian dimodulasi dengan 26 menghasilkan I
= [1 0;0 1]. Setelah itu kita akan melakukan dekripsi terhadap chiperteks,
kemudian dirubah menjadi integer terlebih dahulu. Dengan kunci dekripsi yang
dimiliki, kriptanalis hanya perlu menerapkan persamaan (P = K-1 . C mod 26)
pada cipherteks dan kunci, sehingga menghasilkan plainteks/ pesan asli (P = D O
D I S P U T R A).
Hill cipher/ kode hill merupakan algoritma kriptografi klasik yang sangat kuat
dilihat dari segi keamanannya dnegan matriks kunci hill cipher harus merupakan
matriks yang invertible, karena disitulah letak keunikan sekaligus kesulitan
kode hill tersebut.