Rabu, 25 Maret 2015

ALGORITMA HILL CHIPER DAN COLUMNAR

HILL CHIPER
Hill Cipher merupakan penerapan aritmatika modulo pada kriptografi. Teknik kriptografi ini menggunakan sebuah matriks persegi sebagai kunci yang digunakan untuk melakukan enkripsi dan dekripsi.

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 blokblok 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 kepada algoritma kriptografi klasik yang sangat sulit dipecahkan oleh kriptanalis apabila dilakukan hanya dengan mengetahui berkas ciphertext saja. Namun, teknik ini dapat dipecahkan dengan cukup mudah apabila kriptanalis memiliki berkas ciphertext dan potongan berkas plaintext. Teknik kriptanalisis ini disebut known-plaintext attack [1].

Dasar Teknik Hill Cipher
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. Matriks K yang menjadi kunci ini harus merupakan matriks yang invertible, yaitu memiliki inverse K-1 sehingga :
Kunci harus memiliki invers karena matriks K-1 tersebut adalah kunci yang digunakan untuk melakukan dekripsi.

Teknik Enkripsi pada Hill Cipher
Proses enkripsi pada Hill Cipher dilakukan per blok plaintext. Ukuran blok tersebut sama dengan ukuran matriks kunci. Sebelum membagi teks menjadi deretan blok-blok, plaintext terlebih dahulu dikonversi menjadi angka, masing-masing sehingga A=1, B=2, hingga Y=25. Z diberi nilai 0.

Secara matematis, proses enkripsi pada Hill Cipher adalah:

C = K . P (2)
C = Ciphertext
K = Kunci
P = Plaintext

Teknik Dekripsi pada Hill Cipher
Proses dekripsi pada Hill Cipher pada dasarnya sama dengan proses enkripsinya. Namun matriks kunci harus dibalik (invers) terlebih dahulu. Secara matematis, proses dekripsi pada Hill Cipher dapat diturunkan dari persamaan (2).

 Menjadi persamaan proses dekripsi:

Columnar Transposition
Columnar transposition merupakan salah satu metode kriptografi dimana pesan dituliskan berderet dari suatu panjang yang ditetapkan, lalu dibaca kembali kolom per kolom dengan urutan pembacaan berdasarkan suatu kata kunci. Panjang deret ditentukan oleh panjang kata kunci. Urutan pembacaan kolom berdasarkan urutan abjad kata kunci, misalnya ZEBRAS menjadi “6 3 2 4 1 5”. Perintah dipilih oleh urutan abjad dari huruf-huruf dalam kata kunci.

Regular Case (Kasus biasa)
Dalam columnar transposisi cipher biasa, ruang-ruang kosong yang diisi dengan huruf acak.
Misalnya, kita menggunakan ZEBRAS kata kunci dan pesan WE ARE DISCOVERED FLEE AT ONCE.
Grid kita akan terlihat seperti ini:

Z E B R A S
6 3 2 4 1 5
- - - - - -
W E A R E D
I S C O V E
R E D F L E
E A T O N C
E Q K J E U

Enam kolom kini ditulis dalam urutan acak didefinisikan oleh kata kunci:
EVLNE ACDTK ESEAQ ROFOJ DEECU WIREE

Irregular Case (Kasus yang tidak teratur)
Dalam kasus yang tidak teratur, surat-surat yang kosong tidak diisi dengan  huruf acak:

Z E B R A S
6 3 2 4 1 5
- - - - - -
W E A R E D
I S C O V E
R E D F L E
E A T O N C
E  

Hal ini menyebabkan berikut (pendek) ciphertext: 
EVLNA CDTES EAROF ODEEC WIREE

Untuk memahaminya, penerima harus bekerja di luar panjang kolom dengan membagi panjang pesan  dengan panjang kunci. Langkah ini sedikit lebih sulit jika kasus tidak teratur digunakan. Setelah menentukan jumlah kolom,pesan dapat ditulis dalam kolom dan diatur ulang kembali ke pesan plaintext.

Double Column Transposition (Kolom ganda Transposisi)
Untuk membuat pesan lebih sulit untuk menguraikan, Anda dapat mengambil ciphertext yang dihasilkan oleh algoritma ini dan menjalankannya melalui enkripsi lagi  menggunakan kata kunci yang berbeda. Ini transposes kolom dua kali dan membuat  pesan sangat sulit untuk menguraikan.