Enkripsi-Dekripsi
menggunakan Metode Hill Cipher
Enkripsi merupakan proses perubahan data asli (plaintext) menjadi ciphertext (data yang tidak dapat dimengerti) sedangkan Dekripsi kebalikan dari enkripsi yaitu proses pengembalian bentuk ciphertext menjadi plaintext kembali sehingga bisa dipahami. Enkripsi dan Dekripsi dilakukan menggunakan kunci yang sudah ditentukan. Hill Cipher merupakan salah satu algoritma kriptografi kunci simetris yang menggunakan aritmatika modulo terhadap matriks.
Algoritma Hill Cipher menggunakan matriks berukuran m x m (matriks persegi) yang invertible dalam modulus p, 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. Proses enkripsi pada algoritma Hill Cipher dimulai dengan mengkonversikan plaintext kedalam angka sesuai dengan table korespondensi. Selanjutnya angka-angka tersebut dikelompokkan menjadi beberapa blok, dimana masing-masing blok terdiri dari m anggota sesuai dengan ordo matriks kunci K(mxm). Selanjutnya dicari ciphertext dengan C= K * P. Proses Dekripsi diawali dengan mengkonversikan ciphertext kedalam angka sesuai dengan table korespondensi. Seperti halnya pada proses enkripsi, angka-angka tersebut dikelompokkan menjadi beberapa blok dengan anggota masing-masing blok sebanyak m, lalu dicari plaintextnya dengan P = K-1 * C.
A. Inisialisasi Matriks Kunci
Langkah 1: Tentukan jumlah baris dan kolom matriks K, dimana baris > kolom dan kolom > 1.
Langkah 2: Tentukan elemen matriks K. Selanjutnya hitung rank matriks tersebut. Jika rank ≠ kolom, maka kembali ke langkah 1, Jika rank = kolom, lanjutkan ke langkah 3.
Langkah 3: Buat matriks transpose T dari matriks K.
Langkah 4: Kalikan matriks transpose T dengan matriks kunci K. Hasil perkalian TK dijadikan bilangan bulat modulo 26
Langkah 5: Hitung determinan dari matriks TK. Nilai det (TK) dijadikan bilangan bulat modulo 26.
Langkah 6: Cari nilai invers det (TK) terhadap modulo 95. Jika tidak memiliki nilai invers, kembali ke langkah 1. Jika memiliki nilai invers lanjutkan ke langkah 7.
Langkah 7: Cari adjoin (TK). Setiap elemen hasil penghitungan dijadikan bilangan bulat modulo 26.
Langkah 8: Cari invers matriks (TK)-1 dengan mengalikan invers det (TK) dengan adjoin (TK). Setiap elemen hasil kalinya dijadikan bilangan bulat modulo 26.
Langkah 9: Kalikan invers matriks (TK)-1 dengan matriks transpose T. Jadikan bilangan bulat modulo 95 untuk setiap elemennya. Sehingga didapat matriks M.
Langkah 10: Cari matriks KMK. Pada setiap penghitungannya, jangan lupa dijadikan bilangan bulat modulo 95 pada setiap elemennya. Selanjutnya periksa, apakah KMK = K?, jika Ya, lanjutkan ke langkah 11. Jika tidak kembali ke langkah 1.
Langkah 11: Cari matriks MKM. Pada setiap penghitungannya, jangan lupa dijadikan bilangan bulat modulo 95 pada setiap elemennya. Selanjutnya periksa, apakah MKM = M ?, jika Ya, lanjutkan ke langkah 12. Jika tidak kembali ke langkah 1.
Langkah 12: Cari matriks KMdan(KM)*. (KM)* adalah matriks hermitian. Pada setiap penghitungannya, jangan lupa dijadikan bilangan bulat modulo 26 pada setiap elemennya. Selanjutnya periksa, apakah (KM)* = KM?, jika Ya, lanjutkan ke langkah 13. Jika tidak kembali ke langkah 1.Langkah 13: Cari matriks MK dan (MK)*. (MK)* adalah matriks hermitian. Pada setiap penghitungannya, jangan lupa dijadikan bilangan bulat modulo 26 pada setiap elemennya. Selanjutnya periksa, apakah (MK)* = MK?, Jika tidak kembali ke langkah 1. Jika Ya, berarti matriks K dapat dijadikan matriks kunci dengan M sebagai matriks p-invers nya.
B. Proses Enkripsi
Langkah 1: Hitung panjang plaintextmod kolom matriks kunci K. jika bukan nol, maka tambahkan spasi sehingga panjang plaintextmod kolom matriks kunci K = 0.
Langkah 2: Korespondensikan plaintext ke dalam bentuk angka sesuai dengan tabel korespondensi, sehingga didapatkan himpunan angka P.
Langkah 3: Partisi P kedalam beberapa blok, dengan masing-masing blok terdiri dari beberapa elemen sesuai dengan jumlah kolom matriks kunci K sehingga didapat P1 sampai Pndimana n =panjang plaintext dibagi jumlah kolom matriks kunci.
Langkah 4 : Transposkan matriks partisi P1 sampai Pn
Langkah 5: Kalikan matriks kunci K dengan masing-masing transpose matriks partisi P. Hasil penghitungan dibulatkan kedalam modulo 26.
Langkah 6: Transposkan hasil kali matriks pada langkah 5, kemudian digabungkan sehingga didapatkan himpunan angka ciphertext.
Langkah 7: Korespondensikan himpunan angka ciphertext dengan karakter sesuai data pada tabel korespondensi, sehingga didapatkan ciphertext.
TUGAS.
Buatlah Enkripsi serta dekripsinya untuk Plaintex dibawah ini dengan menggunakan Metode Hill Cipher.:
a. SERANG MALAM INI
b. RORO MENDUT