Kriptografi dengan Artificial Neural Network
Ringkasan Penelitian (Penelitian Mandiri - th. 2008)
Judul Lengkap :
Pembangkitan Kunci Acak Simetris untuk Aplikasi Kriptografi dengan menggunakan Jaringan Syaraf Tiruan Self Organization Fiture Map (SOFM)
Achmad Fanany Onnilita Gaffar
Jurusan Teknik Elektro – Politeknik Negeri Samarinda
Samarinda – Kalimantan Timur - Indonesia
Abstrak
Komputasi algoritma kriptografi kunci simetri memiliki beberapa kesamaan dengan komputasi jaringan saraf tiruan dalam hal menghasilkan data keluaran yang berdasarkan operasi terhadap data masukan dan saling memiliki keterkaitan. Kesamaan ini dapat dilihat pada salah satu penggunaan jaringan saraf tiruan, yaitu untuk keperluan kompresi data yang menghasilkan data keluaran dengan pola yang berkaitan dengan data masukan. Cipherteks dapat dianggap sebagai representasi plainteks dengan pola yang berbeda namun masih memiliki keterkaitan antara data masukan dengan data keluaran.
Penelitian ini membahas tentang upaya perancangan algoritma pembangkitan kunci acak simetris (Symmetric Random Key : SRK) dengan menggunakan jaringan saraf tiruan SOFM. SRK yang telah dibangkitkan dengan keytext tertentu melalui SOFM kemudian digunakan untuk membangkitkan cryptor key sebanyak blok bit plaintext/chipertext. Cryptor key ini dimanfaatkan sebagai kunci simetris dalam proses enkripsi dan dekripsi pada mode chipper block (operasi per blok bit). Analisis performansi dilakukan pada hasilnya dengan parameter-parameter performansi berupa : jumlah variasi vector perubahan SRK, jumlah variasi perubahan cryptor key, jumlah algoritma AES, permutasi karakter keyteks. Hasil analisis performansi menunjukkan dengan keytext =”POLNES”, plaintext = “RAHASIA HATI MANUSIA” diperoleh total kemungkinan sebanyak ≈ 31. 1035
PENDAHULUAN
Terdapat dua jenis sistem kriptografi, yaitu sistem kriptografi kunci simetri dan sistem kriptografi kunci publik. Perbedaan antara kedua sistem kriptografi tersebut adalah pemanfaatan kunci yang digunakan dalam proses enkripsi dan dekripsi. Pada kriptografi kunci simetri, kunci yang digunakan untuk proses pengenkripsian adalah sama dengan kunci yang digunakan untuk proses pendekripsian. Hal ini menyebabkan kerahasiaan kunci yang digunakan dalam kriptografi kunci simetri menjadi sangat penting untuk dijaga. Sedangkan ada kriptografi kunci publik, kunci yang digunakan untuk proses pendekripsian berbeda dengan kunci yang digunakan untuk proses pengenkripsian. Hal ini menyebabkan kunci pengenkripsi tidak harus dijaga kerahasiaannya dan dapat dipublikasikan dengan bebas.
Jaringan syaraf tiruan Self Organizing Fiture Maps (SOFM) digunakan untuk membangkitkan kunci simetris secara acak yang nantinya kunci acak simetris ini diterapkan pada proses enkripsi dan dekripsi. Kriptografi kunci simetris yang digunakan pada penelitian ini adalah mode chipper block, yaitu kriptografi yang beroperasi pada plaintext/chipertext dalam bentuk blok-blok bit.
CHIPER BLOCK
Pada chiper blok, rangkaian bit-bit plaintext dibagi menjadi blok-blok bit dengan panjang sama. Enkripsi dilakukan terhadap blok bit plaintext dengan menggunakan bit-bit kunci yang memiliki ukuran yang sama dengan ukuran blok plaintext. Algoritma enkripsi menghasilkan blok chipertext yang berukuran sama dengan blok plaintext. Deskripsi dilakukan dengan cara yang sama dengan enkripsi. Sebagai ilustrasi, misalkan blok plaintext yang berukuran tertentu dapat dinyatakan sebagai vektor berikut:
P = (p1, p2, ..., pm)
Yang dalam hal ini P menyatakan plaintext, m menyatakan jumlah bit dalam blok tersebut, dan pi adalah nilai biner 0 dan 1 untuk i = 1, 2, …, m
Blok chipertext dinyatakan sebagai vektor berikut :
C = (c1, c2, ..., cm)
Dalam hal ini C menyatakan blok chipertext, m menyatakan jumlah bit dalam blok tersebut, dan ci adalah nilai biner 0 atau 1 untuk i = 1, 2, …, m
Bila plaintext dibagi menjadi n buah blok, barisan blok plaintext dinyatakan sebagai berikut :
(P1, P2, ..., Pn)
Untuk masing-masing blok plaintext, bit-bit penyusunnya dinyatakan sebagai vektor :
Pi = (pi1, pi2, ..., pnm)
Dalam hal ini Pi menyatakan blok plaintext ke-i.
Fungsi enkripsi dinyatakan dengan : EK(P) = C. Fungsi dekripsi dinyatakan dengan : DK(C) = P
Dimana K menyatakan kunci simetri.
SELF ORGANIZING FITURE MAPS
Pada Jaringan Syaraf Tiruan ini, suatu lapisan yang berisi neuron-neuron akan menyusun dirinya sendiri berdasarkan input nilai tertentu dalam suatu kelompok yang disebut dengan istilah cluster. Selama proses penyusunan diri, cluster yang memiliki vektor bobot paling cocok dengan input (memiliki jarak yang paling dekat) akan terpilih sebagai pemenang. Neuron yang menjadi pemenang beserta neuron-neuron tetangganya akan memperbaiki bobot-bobotnya. Dalam hal ini vektor bobot dari neuron-neuron tetangga dinyatakan tidak dekat dengan pola input.
Berikut adalah gambar arsitektur SOFM.
Vektor input dapat terdiri dari sejumlah input i = 1 … n. Setiap input dapat terdiri dari beberapa sejumlah data yang dianggap sebagai kelas input yang sama.
Contoh :
X1 = [0.1 0.3 0.2 0.4] ; X2 = [0.1 0.3 0.2 0.1]
Sehingga :
Dalam hal ini, i = 1 … 2.
Vektor bobot tergantung dari jumlah neuron yang akan direncanakan untuk melakukan penyusunan sendiri berdasarkan vektor input yang diberikan.
Terdapat beberapa model dimensi dan topologi SOFM yaitu : GridTop, HexTop, dan RandTop. Teknik inisialisasi bobot (W) yang biasa digunakan untuk SOFM adalah : zero initialization, Random initialization, MidPoint initialization. Sedangkan fungsi distance yang digunakan adalah : BoxDist, LinkDisk, Euclidean Dist, ManDist, NegDist. Fungsi pemroses untuk normalisasi data yang biasa digunakan adalah MinMax mapping, Std mapping.
PEMBANGKITAN SRK
Beberapa kriteria digunakan sebagai panduan dalam perancangan algoritma kriptografi kunci simetri dengan menggunakan jaringan saraf tiruan. Kriteria-kriteria tersebut adalah :
- Untuk mencapai efek avalanche dalam proses enkripsi, setiap bit masukan harus mempengaruhi bit keluaran sedemikian rupa sehingga pengubahan satu bit masukan akan dapat mempengaruhi seluruh keluaran dari hasil enkripsi.
- Dalam proses dekripsi, algoritma yang dihasilkan harus melakukan proses dekripsi dengan tingkat kesalahan serendah mungkin untuk menghindari kesalahan dekripsi.
Algoritma SOFM
- Tentukan vektor input yang akan di-cluster → X ( xi , i = 1..m)
- Tentukan jumlah dan dimensi neuron pada layer SOFM
- Tentukan topologi neuron pada layer SOFM (hextop, gridtop, randtop)
- Tentukan distance function yang digunakan (dist, linkdist, mandist)
- Inisialisasi vektor bobot → W ( wij , i = 1 .. m, j = 1 .. n)
- Tentukan :
- Ordering-phase learning rate (α, default = 0.9)
- Ordering-phase steps (default = 1000)
- Tuning-phase learning rate (αT, default = 0.02)
- Tuning-phase neighborhood distance (default = 1)
- Max.epoch (default = 100)
- Kerjakan selama STOP = False
- Untuk setiap vektor input (X), kerjakan :
- Untuk setiap j, hitung D(j) antara vektor bobot (W) dengan vektor input (X) dengan menggunakan distance function.
- Tentukan j sedemikian rupa hingga D(j) minimum.
- Perbaiki pembobot untuk vektor bobot dengan j yang terpilih, dengan :
wij(baru) = wij(lama) + α*(xi - wij(lama))
- Perbaiki learning rate (α) dengan menggunakan tuning-phase learning rate (αT).
- Kurangi jarak radius ke-tetangga-an.
- Uji kondisi berhenti → STOP = True
PROSES ENKRIPSI
Algoritma enkripsi pada mode Chiper Block Chaining adalah sebagai berikut :
- Pembangkitan Kunci Acak Simetris (SRK) dengan keytext tertentu. SRK akan berupa row average/mean dari vektor bobot (W) yang diperoleh.
- Plaintext/Message-text dibagi menjadi beberapa blok pesan (message block) dengan panjang tiap blok adalah 64 bit (8 karakter) seperti berikut :
Mj = (M1, M2, ..., Mk)
dimana j = 1 … k k = int((panjang plaintext)/8) + 1
sedangkan :Mj(i) = (Mj(1), Mj(2), ..., Mj(7))dimana : i = 0 … 7- Jika plaintext kurang dari 64 bit (8 karakter) maka perlu ditambahkan karakter “@” agar panjangnya sama dengan 64 bit. Enkripsi dilakukan dengan menggunakan langkah ke 3).
- Jika plaintext >= 64 bit maka enkripsi dilakukan dengan menggunakan langkah ke 3).
- Proses enkripsi untuk tiap message block menggunakan fungsi enkripsi dengan menggunakan cryptor key, yang memenuhi persamaan :dimana :
C = E(M)
M = pesan asli
E = fungsi enkripsi
C = pesan yang sudah tersandikan (chipertext) Cryptor key akan sejumlah message block yang ada yang dibangkitkan berdasarkan SRK yang sudah dibangkitkan. - Hasil akhir enkripsi akan berupa chipertext dalam format hexadesimal
Model operasi enkripsi chiper block dilakukan dengan model seperti di bawah ini :
PROSES DEKRIPSI
Algoritma dekripsi dengan operasi Chiper Block adalah sebagai berikut :
- Pembangkitan Kunci Acak Simetris (SRK) dengan keytext yang sama dengan yang digunakan pada proses enkripsi. SRK akan berupa row average/mean dari vektor bobot (W) yang diperoleh.
- Chipertext dibagi menjadi beberapa blok pesan (chiper block) dengan panjang tiap blok adalah 64 bit (8 karakter) seperti berikut :dimana :
Cj = (C1, C2, ..., Ck)
j = 1 … k k = int((panjang chipertext)/8) + 1
sedangkan :Cj(i) = (Cj(1), Cj(2), ..., Cj(m))dimana :
m = 0 … 7 - Proses dekripsi untuk tiap chiper block menggunakan fungsi dekripsi dengan menggunakan cryptor key, yang memenuhi persamaan :M = D(C)dimana :
M = pesan asli (hasil dekripsi)
D = fungsi dekripsi
C = pesan yang tersandikan (chipertext) - Hasil akhir dekripsi akan berupa plaintext dalam format character dengan menghilangkan karakter “@” jika panjang chipertext kurang dari 64 bit.
Cryptor key yang digunakan sama dengan cryptor key sejumlah chiper block (= message block) yang ada yang dibangkitkan berdasarkan SRK yang sudah dibangkitkan.
Model operasi dekripsi chiper block dilakukan dengan model seperti di bawah ini :
ANALISIS PERFORMANSI
Analisis performansi dari Algoritma Pembangkitan Kunci Acak dengan menggunakan JST SOFM menggunakan beberapa parameter performansi yang akan dianalisis adalah sebagai berikut :
- Dengan keytext yang sama, perubahan vektor kunci acak simetris (vector SRK) dipengaruhi oleh :
- Banyak iterasi pelatihan (epochs) pada JST SOFM.
- Jumlah neuron pada layer JST SOFM yang direncanakan.
- Dimensi neuron layer JST SOFM yang digunakan.
- Topologi layer JST SOFM yang digunakan.
- Distance function yang digunakan pada layer JST SOFM.
- Fungsi inisialisasi vektor pembobot yang digunakan.
- Preprocessing function untuk normalisasi data input JST SOFM.
- Variasi perubahan cryptor key tergantung dari jumlah message block dari plaintext yang akan dienkripsi.
- Algoritma AES yang digunakan.
- Jumlah karakter pada keytext yang digunakan.
REFERENSI
- Adam L. Young, Moti Yung, Malicious Cryptograhpy – Exposing Cryptovirology, Wiley Publishing. Inc., Indianapolis, 2004.
- Brian R. Hunt, Ronald L. Lipsman, Jonathan M. Rosenberg, A Guide to MATHLAB For Beginners and Experienced Users, Cambridge University Press, New York, 2001
- Derek Partridge, Artificial Intelligence and Software Engineering, Intellect Ltd, New York, 1998.
- Dorothy Elizabeth, Cryptograhpy and Data Security, Purdue University, Addison-Weley Publishing Co., California, 1982.
- Mitchell M., Tom, Machine Learning, McGraw-Hill Companies. Inc., 1997.
- Mark Adler, Jean Loup Gailly, An Introduction to Cryptography, PGP Corporation, USA, 2003.
0 komentar:
:)) :)] ;)) ;;) :D ;) :p :(( :) :( :X =(( :-o :-/ :-* :| 8-} ~x( :-t b-( :-L x( =))
Beri Komentar