Anda di halaman 1dari 5

Nikken Prima Puspita, Nurdin Bahtiar

Jurusan Matematika, UNDIP

KRIPTOGRAFI HILL CIPHER DENGAN MENGGUNAKAN OPERASI MATRIKS

Nikken Prima Puspita dan Nurdin Bahtiar


Jurusan Matematika FMIPA UNDIP
Jl. Prof. H. Soedarto, S.H., Semarang 50275

ABSTRAK. Diberikan matriks A berukuran 2 × 2 dengan determinan 1 atau -1. Setiap karakter
pada plainteks dikonversikan kedalam angka berdasarkan kode ASCII. Proses enkripsi dilakukan
dengan cara mengalikan matriks plainteks dengan matriks A. Hasil elemen matriks perkaliannya
harus merupakan bilangan bulat modulo 95 yang kemudian ditambahkan dengan bilangan 32.
Sedangkan proses dekripsi hill cipher dilakukan dengan cara yang sejalan tetapi matriks cipherteks
−1
dioperasikan dengan matriks A .
Kata Kunci : cipherteks, dekripsi, enkripsi, plainteks.

1. PENDAHULUAN diberikan algoritma untuk menerjemahkan hill cipher


dalam program Delphi sehingga dapat membantu
Perkembangan teknologi informasi terutama pengirim dan penerima menjalankan proses konversi
komunikasi saat ini berkembang sangat pesat. teks.
Banyaknya media komunikasi umum ternyata
menyebabkan ketidakamanan, karena setiap orang
bebas untuk menggunakannya. Salah satu cara untuk 2. KRIPTOGRAFI
menjaga kerahasiaan pesan antara pihak satu dan
yang lainya adalah dengan konsep penyandian yang Bagian ini membahas konsep-konsep dasar
disebut dengan kriptografi. Kriptografi merupakan dan istilah-istilah yang digunakan dalam kriptografi.
seni dalam menyimpan atau merahasiakan pesan dari Kriptografi (cryptography) berasal dari bahasa yunani
penerima yang tidak berhak. Dalam hal ini pesan asli yaitu kripto dan graphia. Kripto berarti
dari pengirim disebut dengan plainteks, sedangkan menyembunyikan dan graphia artinya tulisan. Jadi
pesan yang disembunyikan disebut dengan secara utuh kriptografi artinya ilmu yang mempelajari
cipherteks. Pada tulisan ini akan dibahas tentang teknik-teknik matematika yang berhubungan dengan
penerapan aljabar linear khususnya operasi matriks keamanan informasi, seperti kerahasian data,
untuk kriptografi. Idenya adalah dengan memilih keabsahan data integritas data dan autentikasi data
matriks A berukuran n × n, setiap huruf pada (Menezes, Oorshot and Vanstone 1996). Selain itu
plainteks ditandai dengan angka berdasarkan kriptografi juga dapat diartikan sebagai seni atau ilmu
penomoran menurut ASCII, kemudian plainteks di dalam menyembunyikan pesan.
Dalam konsep persandian dikenal istilah
partisi menjadi sebuah matriks kolom n × 1. Setiap plainteks dan cipherteks. Pesan asli yang akan
matriks kolom tersebut dikalikan dengan matriks A. disembunyikan disebut sebagai plainteks sedangkan
Hasil perkalian yang diperoleh dikonversikan pesan yang akan disembunyikan disebut sebagai
kembali kedalam abjad dengan menggunakan aturan cipherteks. Enkripsi adalah proses konversi dari
modulo aritmatika. Hasil inilah yang menjadi plainteks ke cipherteks sedangkan proses konversi
cipherteksnya. Untuk dapat membaca pesan asli dari dari cipherteks disebut sebagai dekripsi.
pengirim, penerima harus mengkonversikan Kebalikan dari kriptografi yaitu ilmu untuk
cipherteks ke plainteks dengan algoritma yang sama memecahkan kriptografi dengan cara mendapatkan
−1 kunci dari cipherteks untuk memperoleh plainteks
namun matriks yang digunakan adalah A . Dalam
kriptografi proses ini disebut sebagai deciphering. disebut sebagai Kriptoanalisis (cryptanalysis).
Kriptografi yang dibahas dalam tulisan ini Menurut Menezes, Oorshot and Vanstone 1996,
merupakan salah satu seni persandian yang sederhana kriptografi mempunyai tujuan dasar anatara lain
karena hanya memainkan operasi-operasi dalam sebagai berikut:
matriks. Dalam penggunaannya jika matriks yang 1. Kerahasaian, yaitu aspek yang berhubungan
digunakan berukuran cukup besar akan sedikit sulit dengan penjagaan isi informasi dari siapapun
untuk melakukan perhitungan. Sedikit saja kecuali yang mempunyai kewenangan atau kunci
melakukan kesalahan akan menyebabkan penerima rahasia untuk membuka informasi.
salah membaca sandi. Oleh karena itu pada tulisan ini
1
Nikken Prima Puspita, Nurdin Bahtiar
Jurusan Matematika, UNDIP

2. Integritas data, adalah aspek yang berhubungan b. Determinan matriks adalah 1 atau -1.
dengan penjagaan dari perubahan data secara Berdasarkkan asumsi tersebut berikut diberikan
tidak sah. algoritma untuk memperoleh cipherteks secara
3. Autentikasi, yaitu aspek yang berhubungan manual. Proses yang disebut enkripsi ini dilakukan
dengan identifikasi atau pengenalan baik secara oleh pengirim pesan.
kesatuan system maupun informasi itu
sendiri.Pihak yang saling berkomunikasi harus 1. Algoritma Enkripsi Hill Cipher
saling memperkenalkan diri.
4. Non repudiation (menolak penyangkalan), Langkah 1 : Pilih matriks A berukuran 2 × 2 yang
merupakan usaha untuk mencegah terjadinya mempunyai determinan 1 dan -1. Setiap elemen dari
penyangkalan terhadap pengiriman suatu matriks A merupakan elemen » 95 (bilangan bulat
informasi oleh yang mengirimkan.
Algoritma kriptografi atau cipher adalah modulo 95). Matriks A adalah kunci rahasia dan
suatu fungsi matematis yang digunakan untuk harus disepakati dulu antara penerima dan pengirim
melakukan enkripsi dan deskripsi (Schneier, 1996). a a 
Algoritma kriptografi terbagi menjadi dua bagian pesan. Misalkan dipilih matriks A =  11 12 
yaitu algoritma simetris dan algortima asimetris.  a21 a22 
Algoritma simetris adalah algoritma yang berukuran 2 × 2.
menggunakan kunci enkripsi yang sama dengan kunci Langkah 2 : Setiap 2 karakter yang berurutan dalam
deskripsinya. Dalam hal ini pengirim dan penerima plainteks dijadikan pasangan. Jika dibagian terakhir
harus menyepakati kunci yang akan dipakai dalam tersisa 1 karakter, maka tambahkan sebarang dummy
proses komunikasi. Membocorkan kunci kepada untuk melengkapi pasangan yang terakhir.
orang yang tidak berhak menyebabkan hilangnya Langkah 3 : Konversikan setiap pasangan plainteks
kerahasiaan pesan. Jadi keamanan algoritma ini
tergantung pada kuncinya. Algoritma ini disebut juga p 
sebagai algortima kunci rahasia atau algoritma satu
p1 p2 menjadi sebuah vector kolom P1 =  1  .
kunci.  p2 
Algoritma asimetris yang disebut juga Kemudian bentuk matriks plainteks dengan setiap
sebagai algoritma kunci publik menggunakan dua kolomnya merupakan vector-vektor kolom tersebut,
kunci yaitu kunci publik dan kunci rahasia. Kunci sehingga diperoleh P = ( P1 P2 P3 ........Pn ) .
publik digunakan untuk mengenkripsi pesan Langkah 4 : Selanjutnya lakukan operasi perkalian
sedangkan kunci rahasia digunakan untuk
mendekripsi pesan. antara matriks A dengan matriks P.
Langkah 5 : Setiap elemen matriks yang diperoleh
di Langkah 4 dijadikan bilangan bulat modulo 95 dan
III. OPERASI MATRIKS UNTUK hasilnya ditambahkan dengan 32. Terakhir
KRIPTOGRAFI konversikan angka yang diperoleh kedalam karakter
yang bersesuain pada ASCII. Hasil bagi tiap elemen
Konsep kriptografi yang merupakan dengan 95 disertakan pada bagian terakhir cipherteks
penerapan dari aljabar linier elementer khususnya dengan aturan jika hasil bagi karakter pertama dengan
matriks lebih dikenal dengan Hill Cipher. Pada 95 adalah 0, maka ditulis dengan P, jika hasilnya 1
tuliasan ini penulis menganggap bahwa pembaca ditulis Q, jika hasilnya 2 ditulis dengan R demikian
sudah paham dengan operasi-operasi pada matriks seterusnya hingga karakter terakhir.
seperti perkalian matriks, mencari determinan matriks Sampai pada tahap 5 ini proses enkripsi
dan invers matriks. Sebelum masuk pada algoritma selesai dan pengirim dapat mengirim pesanya berupa
enskripsi dan deksripsi Hill Cipher, penulis perlu cipherteks yang diperoleh. Selanjutnya adalah
menginformasikan bahwa setiap karakter yang ada tahapan dekripsi yang dilakukan oleh penerima untuk
dalam pesan terlebih dahulu harus dikonversikan dapat membaca pesan asli dari pengirim. Untuk itu
kedalam angka-angka yang bersesuain berdasarkan diberikan algoritmanya sebagai berikut.
American Standart Code for Information Interchange 2. Algoritma Dekripsi Hill Cipher
(ASCII). (Daftar tabel ASCII dapat dilihat dalam
lampiran). Pada tulisan ini matriks yang dipakai Algoritma dekripsi sejalan dengan proses
untuk proses enkripsi dan dekripsi diasumsikan enkripsi, namun matriks kunci yang digunakan adalah
sebagai berikut : invers dari matriks A.
a. Matriks berukuran 2 × 2.
2
Nikken Prima Puspita, Nurdin Bahtiar
Jurusan Matematika, UNDIP

Langkah 1 : Setiap huruf pada cipherteks yang


 2 221 51 141 151 630 
berupa karakter ASCII didikonversikan kedalam = 1 .
angka yang bersesuain, kemudian dikurangi dengan 163 583 422 383 323 332 
32. Matriks cipherteks diperoleh dengan menambahkan
Langkah 2 : Setiap elemen matriks pada Langkah 1
setiap elemen matriks AP dengan 32. Sehingga
dijumlahkan dengan kelipatan 95 sesuai dengan
diperoleh matriks
karakter hasil bagi pada cipherteks, yaitu 0 untuk P,
95 untuk Q, 190 untuk R dan seterusnya.  34 541 371 461 471 950 
C = 1 .
Langkah 3 : Matriks yang diperoleh pada Langkah 2
 483 903 742 703 643 652 
dikalikan dengan A−1 , sehingga diperoleh matriks Indeks pada matriks diatas merupakan hasil bagi
plainteks P. Konversikan bilangan pada matriks P bilangan dengan 95. Setelah dikonversikan kedalam
kedalam karakter ASCII yang bersesuaian. ASCII cpherteksnya adalah
Untuk dapat mengkonversikan dengan "06Z%J.F/@_AQSQSQRQSQSPR.
benar, pembaca diharapkan telah memahami aturan b. Proses Dekripsi
modulo (konsep sisa hasil bagi). Berikut diberikan Untuk dapat mengetahui banyaknya karakter
contoh penggunaan algoritma diatas dengan cipherteks yang asli, maka jumlah karakter cipherteks
perhitungan manual. Kemudian pada bagian yang diterima dibagi menjadi dua. Untuk pesan
selanjutnya algoritma tersebut akan dijalankan dalam "06Z%J.F/@_AQSQSQRQSQSPR, ada sebanyak 12
program Delphi sehingga proses perhitungan karakter yang harus dibaca. Analog seperti proses
konversi lebih cepat dan meminimumkan terjadinya enkripsi, setiap dua huruf pada pesan cipherteks
kesalahan perhitungan. dipasangkan, sehingga diperoleh pasangan "0 6Z %J
Contoh: Agung akan mengirim sebuah pesan rahasia .F /@ _A . Kemudian konversikan tiap pasangan
kepada Beni, untuk itu mereka telah menyepakati kedalam angka berdasarkan kode ASCII, diperoleh
sebuah matriks rahasia sebagai kunci yaitu  34   54   37 
0 1 C1 =   , C2 =   , C3 =   ,
A=  . Pesan yang akan di kirim agung  48   90   74 
1 2 Setiap
adalah kamu dimana?. Lakukan proses enkripsi dan
 46   47   95 
C4 =   , C5 =   , dan C6 =   .
dekripsi yang harus dilakukan Agung dan Beni.  70   64   65 
Solusi :
elemen vektor Ci dikurangi dengan 32 dan hasilnya
a. Proses Enkripsi.
Plainteks dipasangkan sesuai dengan urutanya. dijumlahkan dengan kelipatan 95 berdasarkan
Kemudian konversikan masing-masing karakter karakter hasil baginya, sehingga diperoleh matriks
kedalam bilangan ASCII yang bersesuaian sehingga
diperoleh matriks kolom  97 117 100 109 110 95 
 107   109   32  C'= .
P1 =   , P2 =   , P3 =  ,  301 343 232 323 317 65 
 97   117  100  dan matriks plainteks
 105   97   97 
P4 =   , P5 =   dan P6 =   .  −2 1  97 117 100 109 110 95
109   110   63  P = A−1C ' =   
Dengan menguunakan perkalian matriks diperoleh  1 0 301 343 232 323 317 65
hasil berikut : 107 109 32 105 97 97 
 0 1 107 109 32 105 97 
97 = .
AP =     97 117 100 109 110 63
 1 2  97 117 100 109 110 63  Setelah dikonversikan dapat terbaca pesan aslinya
adalah kamu dimana? .
 97 117 100 109 110 63  Jika teks yang akan dikirim dalam jumlah
= 
 301 343 232 323 317 223  yang banyak, tentu saja cara manual ini akan sulit
untuk dilakukan, untuk itu dalam paper ini juga
diberikan program untuk melakukan proses enkripsi
dan dekripsi. Algoritma program hill cipher ini
digambarkan dalam diagram flow chart sebagai
berikut :
3
Nikken Prima Puspita, Nurdin Bahtiar
Jurusan Matematika, UNDIP

FLOW CHART PROSES ENKRIPSI DAN DEKRIPSI TEKS


HILL CIPHER DENGAN MATRIKS

Mulai Mulai

M Text M Text terenkripsi


A  matriks A  matriks 2x2

panjangText  length(M)
panjangText  length(M)
-1
B A
For i  1 to panjangText

For i  1 to panjangText
huruf[i]  M[i]
nilaiASCII[i] 
huruf[i]  M[i]
nilaiASCII[i]  ord(huruf[i])

For i  1 to panjangText

For i  1 to panjangText

i mod 2 = 1?
N

Y i mod 2 = 1?
N
C[1] A[1,1] x nilaiASCII[i] + A[1,2] x nilaiASCII[i+1]
C[2] A[2,1] x nilaiASCII[i] + A[2,2] x
Y
C[1] B[1,1] x nilaiASCII[i] + B[1,2] x nilaiASCII[i+1]
C[2] B[2,1] x nilaiASCII[i] + B[2,2] x nilaiASCII[i+1]

Cetak
Chr(C[1]) dan Chr(C[2])

Selesai Cetak
Chr(C[1]) dan Chr(C[2])
Gambar 1 Proses Enkripsi

Selesai

Gambar 2 Proses Dekripsi

4
Nikken Prima Puspita, Nurdin Bahtiar
Jurusan Matematika, UNDIP

Berdasarkan Flow Chart Gambar 1 dan Gambar 2,


berikut diberikan output Hill chiper yang dikerjakan
dalam Delphi.

Gambar 3. Program Hill Chiper pada Delphi

3. KESIMPULAN 5. DAFTAR PUSTAKA

Hill Cipher dengan menggunakan operasi [1]. Anonim, 2010, Hill Cipher, [online],
matriks ini merupakan salah satu contoh kriptografi (http://en.wikipedia.org/wiki/Hill_cipher,
yang sederhana. Dengan memanfaatkan kode karakter diakses tanggal 14 Juli 2010).
ASCII dan operasi matriks, proses enkripsi dan [2]. Anton, H., and Rorres, C., 2000, Elementary
dekripsi dapat dilakukan oleh pengirim dan penerima Linear Algebra Apllications Version, New
pesan secara manual. Jika teks yang dikirim cukup York.
panjang sehingga menyulitkan pengguna hill cipher [3]. Menezes, Oorcshot, and Vanstone, 1996,
untuk melakukan perhitungan secara manual, dapat Handbook of Applied Cryptography, CRC
dilakukan dengan menggunakan program komputer Press, Inc. USA.
seperti yang sudah diberikan pada bagian
sebelumnya. [4]. Riyanto, M., Z., 2007, Pengamanan Pesan
Rahasia Menggunakan Algortima Kriptografi
4. SARAN Elgamal atau Grup Pergandaan
Z p∗ , Universitas Gadjah Mada, Yogyakarta.
Hill Cipher yang dijelaskan dalam paper ini
merupakan contoh sederhana dari kriptografi yang [5]. Schneier, Bruce, 1996, Applied Cryptography,
memanfaatkan kode ASCII. Beberapa tulisan telah Second Edition: Protocol, Algorithms and
menjelaskan algoritma hill chipper yang sedikit Source Code in C, John Wiley and Sons, Inc.
berbeda dan tidak menggunakan ASCII sebagai [6]. Shiefloe, P., 2001, Cryptography : Hill
pengkonversi karakter pada teksnya. Paper ini masih Ciphers, [online],
bisa dikembangkan lebih luas dengan memperluas (http://www.math.washington.edu/~king/cours
asumsi matriks kuncinya. Misalnya determinan edir/m308a01/Projects/Cryptography.htm,
matriks kunci tidak harus 1 dan -1 sehingga hasil diakses tanggal 14 Juli 2010).
invers matriks bukan merupakan bilangan bulat. [7]. Wikipedia, 2006, Cryptography, [online],
Masalah ini dapat diselesaikan dengan menggunakan (http://en.wikipedia.org/wiki/Cryptography,
Modular aritmatika yaitu reciprocal atau diakses 10 Juli 2010).
multiplicative inverse.

Anda mungkin juga menyukai