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 AB 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 AB 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 AB 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=CK C=PK P = Plaintext K= Key C= Ciphertext