ANALISIS PEMBANGKIT KUNCI DENGAN TENT MAP, SESSION
KEY DAN LINEAR CONGRUENTIAL GENERATOR PADA CIPHER
ALIRAN
Adriana Fanggidae1, Yulianto Triwahyuadi Polly2 1,2Jurusan Ilmu Komputer, FST, Universitas Nusa Cendana Email: 1[email protected], 2[email protected]
ABSTRAK
Cipher aliran merupakan salah satu algoritma simetris yang beroperasi pada mode bit tunggal. Pada proses enkripsi dan dekripsi-nya dibutuhkan panjang plainteks atau cipherteks yang sama dengan panjang kunci, sehingga digunakan teknik tent map dan session key untuk membangkitkan kunci baru sepanjang plainteks atau cipherteks. Metode linear congruential generator digunakan untuk mengacak susunan kunci baru yang dihasilkan. Sistem yang dibangun ada dua, yaitu: sistem dengan teknik pengacakan kunci, dan sistem dengan teknik pengacakan kunci beserta posisinya. Hasil pengujian diperoleh: (1) korelasi antara plainteks dan cipherteks untuk kedua sistem sangat rendah, (2) kedua sistem sangat sensitif terhadap perubahan 1 karakter pada kunci dan (3) sistem kedua lebih sensitif terhadap penyisipan beberapa kata pada plainteks yang sama dengan kunci yang sama.
Kata Kunci: Cipher Aliran, Tent Map, Session Key, Linear Congruential Generator
1. PENDAHULUAN
Cipher aliran diperkenalkan pertama kali oleh Vernam, cipher aliran merupakan salah satu kriptografi simetris yang beroperasi pada mode bit tunggal [1]. Setiap bit plainteks atau cipherteks dikenakan operasi XOR dengan setiap bit kunci [2], untuk mendapatkan panjang bit kunci yang sama dengan panjang bit plainteks atau cipherteks dibutuhkan teknik pembangkitan kunci. Teknik pembangkitan kunci digunakan agar pengguna tidak perlu memasukkan kunci sepanjang plainteks atau cipherteks, teknik ini akan membangkitkan kunci baru sepanjang plainteks atau cipherteks berdasarkan kunci yang dimasukkan oleh pengguna. Chaos merupakan sistem dinamik yang menampilkan ketergantungan sensitif kondisi awal pada set invarian tertutup (lebih dari satu orbit) untuk menghasilkan nilai-nilai yang acak atau tidak beraturan [3]. Pemberian kondisi awal pada chaos dapat dilakukan dengan session key, yaitu mengubah bentuk karakter kunci ke dalam bentuk numerik. Fungsi chaos yang digunakan pada makalah ini adalah tent map. Selain penggunaan teknik pembangkitan kunci, digunakan juga teknik pengacakan posisi kunci yaitu linear congruential generator. Pengujian dilakukan terhadap tipe data teks, untuk dapat melihat seberapa baik metode yang digunakan.
2. METODE 2.1. Cipher Aliran
Cipher aliran (stream cipher) merupakan algoritma kriptografi yang beroperasi pada pesan asli atau pesan tersandi dalam bentuk bit tunggal yang dienkripsi atau dekripsi bit per bit [1]. Penggambaran cipher aliran dapat dilihat pada Gambar 1.
Keysteam Generator Keysteam Generator
Plainteks Enkripsi Cipherteks Dekripsi
pi ci ki Keystream Plainteks pi Keystream ki
Gambar 1. Konsep cipher aliran [2]. 2.2. Teknik Padding
Teknik padding merupakan teknik untuk menambahkan karakter kunci yang terakhir dengan pola yang teratur agar panjangnya sama dengan ukuran kunci yang ditetapkan [2].
2.3. Pengacakan Kunci
Tent map yang merupakan salah satu fungsi dari chaos yang berperilaku acak, termasuk dalam pemetaan satu dimensi artinya sistem sederhana yang mampu melakukan gerak tidak beraturan [4]:
dimana: ( ) { (2) Nilai awal xk atau x0 ditentukan dengan menggunakan teknik session keys [5]:
x0 = (x01 + x02 + .. + x0t) mod 1 (3)
ki = k1, k2, .., kn (4)
dimana x0 ∈ [0,1], n = panjang kunci, t = banyaknya potongan kunci, di mana setiap potongan (B1, B2, .. ,
Bt) akan berisi (dengan syarat n mod t = 0), i = 1..n dan ki mewakili 8-bit dari setiap karakter kunci. ( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) (5)
dimana, j = 1..t, p = 1..s, k1,1 .. k1,8 sampai dengan kn,1 ... kn,8 merupakan nilai biner (0 atau 1) dari setiap karakter kunci, karena setiap karakter kunci diwakili oleh 8-bit biner maka l = t * 8, maka nilai x01, x02, ..
, x0t dapat dihitung menggunakan representasi biner:
( ( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( ) )
(6) Hasil dari tent map dibawa ke bentuk karakter ASCII:
( )
(7)
2.4. Pengacakan Posisi Kunci
Linear congruential generator (LCG) merupakan pembangkit bilangan acak, dengan definisi [6]: ( )
dimana,
xr = bilangan acak ke-r
xr-1 = bilangan acak sebelumnya
a = faktor pengali b = increment m = modulus pembagi
Bilangan acak yang dibangkitkan adalah sepanjang kunci yang dibangkitkan, untuk mendapatkan LCG yang tidak berulang harus diperhatikan syarat-syarat berikut.
1) Jika panjang plainteks atau cipherteks mod 4 = 0 maka m = panjang plainteks atau cipherteks else m = panjang plainteks atau cipherteks + (4 - (panjang plainteks atau cipherteks mod 4)). 2) b adalah bilangan prima yang lebih kecil dari m, dan b mod m = 1.
3) . 2.5. Korelasi
Koefisien korelasi dari dua buah peubah acak diskrit yang masing-masing beranggotakan n elemen dihitung dengan rumus berikut [7]:
√ ( ) ( ) ( ) (8)
Interpretasi koefisien korelasi sebagai berikut [8]: 0,00 - 0,199 = sangat rendah
0,20 - 0,399 = rendah 0,40 - 0,599 = sedang 0,60 - 0,799 = kuat 0,80 - 1,000 = sangat kuat 3. HASIL DAN PEMBAHASAN
Sistem yang dibangun ada 2 yaitu sistem dengan pengacakan kunci dan sistem dengan pengacakan kunci dan posisi. Flowchart kedua sistem dapat dilihat pada Gambar 2.
mulai input kunci, tetapkan plainteks atau cipherteks, p=0,8, t=4 padding kunci sampai n byte bangkitkan kunci sepanjang plainteks atau cipherteks cipherteks = plainteks xor kunci baru
atau plainteks = cipherteks
xor kunci baru
selesai output plainteks atau cipherteks kunci < n ? ya tid ak (a) mulai input kunci, tetapkan plainteks atau cipherteks, p=0,8, t=4 padding kunci sampai n byte bangkitkan kunci sepanjang plainteks atau cipherteks cipherteks = plainteks xor kunci baru
atau plainteks = cipherteks
xor kunci baru
selesai output plainteks
atau cipherteks acak posisi kunci
kunci < n ?
ya
tid
ak
(b)
Gambar 2. Flowchart sistem secara umum: (a) sistem dengan pengacakan kunci (b) sistem dengan pengacakan kunci dan posisi.
Pada pengujian digunakan beberapa parameter yaitu nilai p = 0,8, t = 4 dan n = 16. Pengujian dilakukan dalam 3 macam, yaitu:
1) Pengujian pertama, kedua sistem diberi plainteks dan kunci yang sama kemudian dihitung korelasi antara plainteks dan cipherteks. Hasil pengujian pertama dapat dilihat pada Tabel 1.
Tabel 1. Pengujian pertama dengan kunci = “adriana” Nama File Sistem dengan Pengacakan
Kunci
Sistem dengan Pengacakan Kunci dan Posisi
Korelasi Korelasi Abstrak 1 0.00537715257569895 0.00109021365735034 Abstrak 2 0.0187458576792638 0.0281592991086581 Abstrak 3 0.0364348799302942 0.00109021365735034 Abstrak 4 0.00381167814782048 0.0052082751473097 Abstrak 5 0.0487690378057724 0.075527663751252 Rata-rata 0.02262772122777000 0.02221513306438410
2) Pengujian kedua dilakukan perbandingan antara cipherteks1 (hasil enkripsi plainteks1) dengan cipherteks2 (hasil enkripsi plainteks2). Ada 3 bentuk plainteks2, yaitu (1) pada bagian akhir plainteks1 disisipi beberapa kata, (2) pada bagian tengah plainteks1 disisipi beberapa kata dan (3) pada bagian depan plainteks1 disisipi beberapa kata. Hasil pengujian kedua dapat dilihat pada Tabel 2 dan Tabel 3.
Tabel 2. Pengujian kedua dengan kunci = “adriana” untuk sistem dengan pengacakan kunci Posisi Penyisipan Beberapa
Kata pada plainteks 1
Perbandingan Hasil Enkripsi
Bagian akhir Cipherteks1 dan cipherteks2 mempunyai
karakter yang sama mulai dari karakter pertama sampai karakter terakhir cipherteks1
Bagian tengah Cipherteks1 dan cipherteks2 mempunyai
karakter yang sama mulai dari karakter pertama sampai karakter sebelum terjadi penyisipan
Tabel 3. Pengujian kedua dengan kunci = “adriana” untuk sistem dengan pengacakan kunci dan posisi
Posisi Penyisipan Beberapa Kata pada Plainteks 1
Perbandingan Hasil Enkripsi
Bagian akhir Cipherteks1 dan cipherteks2 berbeda
Bagian tengah Cipherteks1 dan cipherteks2 berbeda
Bagian depan Cipherteks1 dan cipherteks2 berbeda
3) Pengujian ketiga dilakukan perhitungan korelasi antara cipherteks1 (hasil enkripsi plainteks1 dengan kunci = “adriana”) dengan cipherteks2 (hasil enkripsi plainteks1 dengan perubahan kunci 1 karakter). Hasil pengujian ketiga dapat dilihat pada Tabel 4.
Tabel 4. Pengujian ketiga terhadap 5 dokumen abstrak untuk perubahan 1 karakter kunci Kunci Nama File Sistem dengan
Pengacakan Kunci
Sistem dengan Pengacakan Kunci dan Posisi
Korelasi Korelasi adriana >< adriani Abstrak 1 0.01802734865899 0.0596914763301505 Abstrak 2 0.0222578959014164 0.0182723680583149 Abstrak 3 0.036813426307898 0.0145889609203408 Abstrak 4 0.0122783591749636 0.0182723680583149 Abstrak 5 0.0248991449145327 0.0596914763301505 Rata-rata 0.02285523499156010 0.03410332993945430 adriana >< adniana Abstrak 1 0.00321483799076978 0.0199854419242333 Abstrak 2 0.0381460656895068 0.0166966780844937 Abstrak 3 0.0224073233648534 0.0674254067988369 Abstrak 4 0.0190385981868258 0.0166966780844937 Abstrak 5 0.0272719532894967 0.0199854419242333 Rata-rata 0.02201575570429050 0.02815792936325820 adriana >< idriana Abstrak 1 0.0529855974069327 0.0199637379053594 Abstrak 2 0.00400708003368895 0.0521657722480058 Abstrak 3 0.00879644986440949 0.00187670421809576 Abstrak 4 0.0651611175171047 0.0521657722480058 Abstrak 5 0.0251237145249897 0.0199637379053594 Rata-rata 0.03121479186942510 0.02922714490496520 Rata-rata 0.0253619275217586 0.0304961347358926
Pada pengujian pertama diperoleh bahwa kedua sistem memiliki nilai korelasi rata-rata, yaitu: 0,02262772122777000 dan 0,02221513306438410 yang menunjukkan korelasi antara plainteks dan cipherteks yang dihasilkan sangat rendah. Pengujian kedua menunjukkan sistem kedua memberikan hasil enkripsi yang lebih teracak dibandingkan dengan sistem pertama. Pengujian ketiga dengan perubahan 1 karakter pada kunci diperoleh korelasi untuk kedua sistem, yaitu: 0,0253619275217586 dan 0,0304961347358926 yang menunjukkan korelasi antara kedua cipherteks yang dihasilkan sangat rendah. 4. SIMPULAN
Penggunaan teknik pengacakan kunci dengan tent map dan session key dapat digunakan untuk pengamanan data, akan tetapi teknik ini sangat rentan terhadap penyisipan beberapa kata pada plainteks yang sama dengan kunci yang sama. Penggunaan teknik pengacakan kunci dengan tent map, session key dan linear congruential generator dapat digunakan untuk pengamanan data, karena sangat sensitif terhadap perubahan 1 karakter pada kunci dan juga sensitif terhadap penyisipan beberapa kata pada plainteks yang sama dengan kunci yang sama.
5. REFERENSI
[1] Nathasia, N. D. dan Wicaksono, A. E. 2011. Penerapan Teknik Kriptografi Stream-Cipher untuk Pengamanan Basis Data. Jurnal Basis Data, ICT Research Center UNAS. Vol. 6, No. 1, Mei 2011.
[2] Munir, R. 2006. Kriptografi. Informatika, Bandung.
[3] Wiggnis, S. 2003. Introduction to Applied Nonlinear Dynamical Systems and Chaos. (Online), (http://link.springer.com/book/10.1007%2Fb97481, diakses 17 Maret 2015).
[6] Jain, R. 2008. Random-Number Generation. (Online),
(http://www.cse.wustl.edu/~jain/cse567-08/ftp/k_26rng.pdf, diakses 17 Maret 2015).
[7] Hongmei, T., Liying, H., Yu, H., dan Xia, W. 2010. An Improved Compound Image Encryption Scheme. Proceeding of 2010 International Conference on Computer and Communication Technologies in Agriculture Engineering.