Implementasi dan Analisis Performa Kriptografi Metode WAKE pada

advertisement
Bab 2
Tinjauan Pustaka
2.1 Penelitian Sebelumnya
Pada penelitian sebelumnya, yang berjudul “Pembelajaran
Berbantu komputer
Algoritma
Word Auto Key Encryption
(WAKE)”. Didalamnya memuat mengenai langkah-langkah dalam
melakukan proses enkripsi dan dekripsi kriptografi dengan metode
WAKE. Pemrosesan yang dilakukan hanya terbatas pada inputan
yang dimasukan oleh user saja. (Reynaldo.2010)
Pada penelitian ini, penulis akan menggunakan metode Word
Auto Key Encryption (WAKE), disini penulis akan melakukan
pengujian untuk mengetahui kemampuan kriptografi metode WAKE
dalam menangani file yang berisi kombinasi antara numerik dan
karakter.
2.2 Kriptografi
Keamanan telah menjadi aspek yang sangat penting dari suatu
sistem informasi. Sebuah informasi umumnya hanya ditujukan bagi
golongan tertentu.
mencegahnya
jatuh
Oleh karena
kepada
itu
sangat
pihak-pihak
penting
lain
yang
untuk
tidak
berkepentingan. Untuk melaksanakan tujuan tersebut dirancang
suatu sistem keamanan yang berfungsi melindungi sistem informasi.
Salah satu upaya pengamanan sistem informasi yang dapat
dilakukan adalah kriptografi. Kriptografi sesungguhnya merupakan
studi terhadap teknik matematis yang terkait dengan aspek
5
6
keamanan suatu sistem informasi. Menurut Stalling, ada beberapa
tuntutan yang terkait dengan isu keamanan data yaitu :
1. Kerahasiaan (Confidentiality)
Kerahasiaan adalah layanan yang digunakan untuk menjaga
informasi dari
setiap
pihak
yang
tidak
berwenang
untuk
mengaksesnya. Dengan demikian informasi hanya akan dapat
diakses oleh pihak-pihak yang berhak saja.
2. Otentikasi (Authentication)
Otentikasi merupakan layanan yang terkait dengan identifikasi
terhadap pihak-pihak yang ingin mengakses sistem informasi (entity
authentication) maupun keaslian data dari sistem informasi itu
sendiri (data origin authentication). Pada saat mengirim atau
menerima informasi kedua belah pihak perlu mengetahui bahwa
pengirim dari pesan tersebut adalah orang yang sebenarnya seperti
yang diklaim.
3. Integritas data (Data integrity)
Integritas data merupakan layanan yang bertujuan untuk
mencegah terjadinya pengubahan informasi oleh pihak-pihak yang
tidak berwenang. Untuk meyakinkan integritas data ini harus
dipastikan agar sistem informasi mampu mendeteksi terjadinya
manipulasi data. Manipulasi data yang dimaksud di sini meliputi
penyisipan, penghapusan, maupun penggantian data. Tuntutan ini
berhubungan dengan jaminan setiap pesan yang dikirim pasti sampai
pada penerimanya tanpa ada bagian dari pesan tersebut yang diganti,
diduplikasi, dirusak, diubah urutannya, dan ditambahkan.
7
4. Nonrepudiation
Nonrepudiation
mencegah
pengirim
maupun
penerima
mengingkari bahwa mereka telah mengirimkan atau menerima suatu
pesan/informasi. Jika sebuah pesan dikirim, penerima dapat
membuktikan bahwa pesan tersebut memang dikirim oleh pengirim
yang tertera. Sebaliknya, jika sebuah pesan diterima, pengirim dapat
membuktikan bahwa pesannya telah diterima oleh pihak yang
ditujunya.
Kriptografi dapat didefinisikan sebagai ilmu yang mempelajari
teknik-teknik matematika yang berhubungan dengan aspek-aspek
pada keamanan informasi misalnya kerahasiaan, integritas data,
otentikasi pengirim /
penerima data,
dan otentikasi data.
Cryptanalysis adalah studi tentang bagaimana mengalahkan
(memecahkan) mekanisme kriptografi, dan cryptology yang berasal
dari kata kryptos dan logos (bahasa Yunani) yang artinya kata
tersembunyi, adalah penggabungan disiplin cryptography dan
cryptanalysis. (Jusuf Ir,2002)
Di dalam kriptografi kita akan sering menemukan berbagai istilah
atau terminologi. Beberapa istilah yang penting untuk diketahui :
 Plaintext (M) adalah pesan yang hendak dikirimkan (berisi data
asli).
 Ciphertext (C) adalah pesan ter-enkrip (tersandi) yang merupakan
hasil enkripsi.
 Enkripsi (fungsi E) adalah proses pengubahan plaintext menjadi
ciphertext.
 Dekripsi (fungsi D) adalah kebalikan dari enkripsi yakni mengubah
ciphertext menjadi plaintext, sehingga berupa data awal/asli.
8
 Kunci adalah suatu bilangan yang dirahasiakan yang digunakan dalam
proses enkripsi dan dekripsi.
2.3 Algoritma Simetris
Algoritmas simetris atau disebut juga algoritma kunci tunggal
adalah algoritma yang menggunakan 1 kunci , dimana kunci yang
digunakan untuk proses enkripsi dan dekripsi adalah kunci yang
sama. Pengirim dan penerima harus menyetujui satu kunci yang
akan digunakan untuk melakukan proses enkripsi dan dekripsi.
Gambar 2.1 Model sederhana Sistem Kriptografi Simetris
Kelebihan dari algoritma kriprografi simetris adalah waktu
proses untuk enkripsi dan dekripsi relatif cepat. Hal ini disebabkan
efesiensi yang terjadi pada pembangkit kunci. Karena prosesnya
relative cepat maka algoritma ini tepat untuk digunakan pada sistem
komunikasi digital secara real time seperti GSM. Tetapi untuk
pengiriman pesan dengan pengguna yang berbeda dibutuhkan kunci
yang berbeda juga. Sehingga jumlah kunci akan berbanding lurus
dengan jumlah pengguna.(Tedi,1999)
2.1
Algoritma Stream Cipher
Stream cipher merupakan salah satu tipe algoritma kriptografi
simetriAlgoritma stream cipher digunakan untuk blok data yang
lebih kecil, biasanya ukuran bit karena mengenkripsikan plainteks
menjadi chiperteks bit per bit (1 bit setiap kali transformasi). Proses
9
enkripsi stream cipher, transformasi dari unit plaintext yang lebih
kecil ini berbeda antara satu dengan lainnya, tergantung pada kapan
unit tersebut ditemukan selama proses enkripsi. (Tedi,1999)
Pada stream cipher bit hanya mempunyai dua buah nilai,
sehingga proses enkripsi hanya menyebabkan dua keadaan pada bit
tersebut: berubah atau tidak berubah. Dua keadaan tersebut
ditentukan oleh kunci enkripsi yang disebut aliran-bit-kunci
(keystream).
Proses enkripsi dicapai dengan menggabungkan keystream
dengan plaintext biasanya dengan operasi bitwise XOR bit-bit
plainteks dengan bit-bit aliran-kunci pada posisi yang
berkoresponden. Metode stream cocok untuk mengenkripsikan
aliran data yang terus menerus melalui saluran komunikasi. Jika bit
cipherteks yang diterima mengandung kesalahan, hal ini hanya
menghasilkan satu bit kesalahan pada waktu dekripsi, karena tiap bit
plainteks ditentukan hanya oleh satu bit cipherteks. Kondisi berbeda
untuk cipher blok karena jika satu bit cipherteks yang diterima
mengandung kesalahan, kesalahan ini akan merambat pada seluruh
blok bit plainteks hasil dekripsi (error propagation). (Jusuf Ir,2002)
2.5 Dasar-dasar matematika kriptografi
Beberapa operasi dasar matematika yang digunakan dalam
kriptografi metode WAKE adalah operasi AND, OR, XOR,
penjumlahan modulo dan Shift Right.
10
2.5.1 Operasi AND
Operasi AND dengan dua inputan akan bernilai 1 jika kedua
nilai imputan bernilai 1. Jika salah satu inputan yang dimasukan
memiliki nilai 0, maka hasil output yang didapatkan akan bernilai 0.
Lambang dari operasi AND adalah tanda “”. Aturan operasi AND
dapat dinyatakan seperti tabel berikut : (Stefan, 2011)
Tabel 2.1 Aturan operasi AND
A
0
0
1
1
B
0
1
0
1
AB
0
0
0
1
Contoh :
11000110
10110011
------------ 
10000010
2.5.2 Operasi OR
Operasi OR dengan dua inputan akan bernilai 1 jika salah satu
nilai imputan bernilai 1. Jika kedua inputan yang dimasukan
memiliki nilai 0, maka hasil output yang didapatkan akan bernilai 0.
Lambang dari operasi OR adalah tanda “”. (Stefan, 2011)
Tabel 2.2 Aturan operasi OR
A
0
0
1
1
B
0
1
0
1
AB
0
1
1
1
11
Contoh :
11000110
10110011
------------ 
11110111
2.5.3 Operasi XOR
XOR adalah operasi Exclusive-OR yang dilambangkan dengan
tanda “”. Operasi XOR dengan dua inputan akan bernilai 1 jika
salah satu nilai imputan bernilai 1. Jika kedua inputan yang
dimasukan memiliki nilai 0 atau 1, maka hasil output yang
didapatkan akan bernilai 0. (Stefan, 2011)
Tabel 2.3 Aturan Operasi XOR
A
B
AB
0
0
0
0
1
1
1
0
1
1
1
0
Contoh :
11000110
10110011
------------ 
01110101
2.5.4 Operasi Shift
Fungsi operasi shift adalah menggeser bit kearah yang
ditentukan sejumlah bit yang diinginkan. Operasi shift terbagi
menjadi dua macam, yaitu :
12
1. Operasi Geser Kiri (Shift Left) yaitu operasi pergeseran terhadap
suatu barisan bit sebanyak bit yang diinginkan kearah kiri. Hasil
pergeseran tersebut akan menyebabkan adanya bit kosong. Bit
kosong yang telah tergeser akan diberikan nilai bit “0”
(nol).operasi yang menggeser sejumlah bit ke kiri (left) dan
mengisi tempat kosong dengan nilai bit “0” (nol). Operasi shift
left dilambangkan dengan “<<”.
Contoh operasi shift left :
11000110 << 1 : 10001100
11000110 << 2 : 00011000
2. Operasi Geser Kanan (Shift Right) yaitu operasi pergeseran
terhadap suatu barisan bit sebanyak bit yang diinginkan kearah
kanan. Hasil pergeseran tersebut akan menyebabkan adanya bit
kosong. Bit kosong yang telah tergeser akan diberikan nilai bit
“0” (nol).
Operasi shift right dilambangkan dengan “>>”.
Contoh operasi shift right : (Bruce, 1996)
11000110 >> 1 : 01100011
11000110 >> 2 : 00110001
2.5.5 Penjumlahan Modulo
Penjumlahan bit modulo yang digunakan dalam metode
WAKE tidak berbeda jauh dengan penjumlahan desimal. Cara yang
dilakukan adalah menjumlahkan dua buah bit bilangan yang sama
panjang dan menghasilkan bilangan dengan panjang bit yang sama
pula. Jika panjang bit bilangan lebih besar, maka bit bilangan yang
berlebihan (paling depan) tersebut akan dibuang. (Bruce, 1996)
13
Contoh :
10111101
10010101
101010010
+
Bit 1 yang berlebihan di depan akan dibuang sehingga hasil yang
didapatkan dari proses penjumlahan di atas adalah 01010010.
2.5.6 Konversi Bilangan Berbasis
Bilangan
–
bilangan
berbasis
dapat
diubah
atau
dikonversikan satu sama lain. Proses pengubahan bilangan berbasis
yang akan dibahas antara lain :
1. Konversi bilangan biner ke bilangan heksadesimal
2. Konversi bilangan biner ke bilangan desimal
3. Konversi bilangan desimal ke bilangan heksadesimal
4. Pengubahan bilangan desimal ke bilangan biner
2.5.6.1 Konversi Bilangan Biner ke Bilangan Heksadesimal
Proses konversi bilangan biner ke bilangan heksadesimal
dapat dilakukan cara, algoritma berikut, sebagai contoh, diambil
bilangan biner 1101101101, proses konversi bilangan biner tersebut
ke dalam bentuk bilangan heksadesimal adalah sebagai berikut,
1. Jumlah digit bilangan biner 1101101101 ada sebanyak 10
buah dan bukan merupakan kelipatan 4, sehingga harus
ditambahkan 2 buah bilangan 0 di depan bilangan biner
tersebut agar jumlah digit merupakan kelipatan 4.
1101101101  001101101101
2. Pisahkan bilangan biner tersebut ke dalam bentuk kelompok
empatan.
001101101101  0011 | 0110 | 1101
14
3. Konversi masing – masing kelompok empatan tersebut ke
dalam bilangan heksadesimal dengan menggunakan tabel
sistem bilangan di atas.
0011 | 0110 | 1101
3
6
D
4. Sehingga bilangan heksadesimal yang didapat adalah 36D.
2.5.6.2 Konversi Bilangan Biner ke Bilangan Desimal
Proses pengubahan bilangan biner ke bilangan desimal dapat
dilakukan dengan menjumlahkan kesetaraan desimal masing –
masing posisinya. Sebagai contoh, diambil bilangan biner
1101101101 = 1 X 29 + 1 X 28 + 0 X 27 + 1 X 26 + 1 X 25 + 0 X 24
+ 1 X 23 + 1 X 22 + 1 X 20
= 512+ 256 + 0 + 64 + 32 + 0 + 8 + 4 + 1
= 877
2.5.6.3 Konversi Bilangan Desimal ke Bilangan Heksadesimal
Untuk mengubah satu bilangan bulat desimal ke bilangan
heksadesimalnya, dilakukan dengan cara membagi secara berurutan
bilangan bilangan desimal dengan 16 dan konversikan angka sisanya
ke dalam bentuk heksadesimal dengan urutan terbalik.
877 / 16 = 54 sisa 13  D
54 / 16 = 3 sisa 6
6
3 / 16 = 0 sisa 3
3
Sehingga bilangan heksadesimal yang didapat adalah 36D.
15
2.5.6.4 Konversi Bilangan Desimal ke Bilangan Biner
Sedangkan, untuk mengubah satu bilangan bulat desimal ke
kesetaraan binernya, bagilah secara berurutan bilangan tersebut
dengan 2 dan catatlah angka sisanya dengan urutan terbalik.
877 / 2 = 438 sisa 1
1
438 / 2 = 219 sisa 0
0
219 / 2 = 109 sisa 1
1
109 / 2 = 54 sisa 1
1
54 / 2 = 27 sisa 0
0
27 / 2 = 13 sisa 1
1
13 / 2 = 6 sisa 1
1
6 / 2 = 3 sisa 0
0
3 / 2 = 1 sisa 1
1
1/2 = 0 sisa 1
1
Sehingga bilangan biner yang didapat adalah 1101101101.
2.6
WAKE (Word Auto Key Encryption)
Metode WAKE merupakan salah satu algoritma stream cipher
yang telah digunakan secara komersial. WAKE merupakan
singkatan dari Word Auto Key Encryption. Metode ini ditemukan
oleh David Wheeler pada tahun 1993.
Metode WAKE menggunakan kunci 128 bit dan sebuah tabel
256 x 32 bit. Dalam algoritmanya, metode ini menggunakan operasi
XOR, AND, OR, penjumlahan modulo dan Shift Right.
Proses utama WAKE terdiri dari :
1. Proses pembentukan tabel S-Box (Substitution Box).
2. Proses pembentukan kunci.
16
3. Proses enkripsi dan dekripsi.
Inti dari metode WAKE terletak pada proses pembentukan
tabel S-Box dan proses pembentukan kunci. Tabel S-Box dari metode
WAKE bersifat fleksibel dan berbeda-beda untuk setiap putaran.
(wheeler,2011)
2.6.1 Proses Pembentukan Tabel S-Box
Proses pembentukan tabel S-Box adalah sebagai berikut :
(wheeler,2011)
Inisialisasi nilai TT[0] … TT[7] :
TT[0] : 726a8f3b (dalam heksadesimal)
TT[1] : e69a3b5c (dalam heksadesimal)
TT[2] : d3c71fe5 (dalam heksadesimal)
TT[3] : ab3c73d2 (dalam heksadesimal)
TT[4] : 4d3a8eb3 (dalam heksadesimal)
TT[5] : 0396d6e8 (dalam heksadesimal)
TT[6] : 3d4c2f7a (dalam heksadesimal)
TT[7] : 9ee27cf3 (dalam heksadesimal)
1. Inisialisasi nilai awal untuk T[0] … T[3] :
Pecah kunci yang dimasukan oleh user menjadi 4 dengan
panjang yang sama. Masukan hasil pemecahan kunci
kedalam T[0] … T[3].
T[0] = K[0]
T[2] = K[2]
T[1] = K[1]
T[3] = K[3]
2. Untuk mengisi nilai T[4] sampai T[255], lakukan proses
berikut :
X = T[n-4] + T[n-1]
17
T[n] = X >> 3 XOR TT(X AND 00000111)
3. Untuk T[0] sampai T[22], lakukan proses berikut :
T[n] = T[n] + T[n+89]
4. Set nilai untuk beberapa variabel di bawah ini :
X = T[33]
Z = T[59] OR (01000001h)
Z = Z AND (FF7FFFFFh)
X = (X AND FF7FFFFFh) + Z
5. Untuk T[0] … T[255], lakukan proses berikut :
X = (X AND FF7FFFFFh) + Z
T[n] = T[n] AND 00FFFFFFh XOR X
6. Inisialisasi nilai untuk beberapa variabel berikut ini :
T[256] = T[0]
X = X AND 255
7. Untuk T[0] … T[255], lakukan proses berikut :
Temp = (T[n XOR X] XOR X) AND 255
T[n] = T[Temp]
T[X] = T[n+1]
2.6.2 Proses Pembentukan Kunci
Pada proses pembentukan kunci, user dapat menentukan
jumlah putaran yang akan digunakan. Fungsi proses pembentukan
kunci adalah :
M(X, Y) = (X + Y) >> 8 XOR T[(X + Y) AND 255]
Kunci yang dimasukan dipecah menjadi 4 bagian. Masukan
hasil pemecahan kunci sebagai nilai awal dari variabel A0, B0, C0,
18
D0. Nilai dari variabel ini diproses melalui langkah berikut :
(wheeler,2011)
Ai+1
= M(Ai, Di)
Bi+1
= M(Bi, Ai+1)
Ci+1
= M(Ci, Bi+1)
Di+1
= M(Di, Ci+1)
Nilai dari Di merupakan nilai dari kunci K. Proses pembentukan
kunci akan diulang sesuai dengan nilai putaran yang dimasukan oleh
user.
D
C
B
A
i
i
i
i
M
M
M
M
K
P
C
Gambar 2.2 Bagan proses pembentukan kunci
Keterangan :
P
= Plaintext
K
= Key
C
= Ciphertext
M
= Fungsi M
Ai
= Bagian pertama dari pecahan kunci
Bi
= Bagian kedua dari pecahan kunci
Ci
= Bagian ketiga dari pecahan kunci
Di
= Bagian keempat dari pecahan kunci
19
2.6.3 Proses Enkripsi dan Dekripsi
Proses enkripsi dan dekripsi metode WAKE hanya berupa
operasi XOR dari plaintext dan kunci untuk menghasilkan ciphertext
atau operasi XOR ciphertext dan kunci untuk menghasilkan
plaintext. (Bruce, 1996)
P=CK
C=PK
P = Plaintext
K= Key
C= Ciphertext
Download