KRIPTOGRAFI METODA WAKE
SKRIPSI
LISTIA ANDHARTI
100823016
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
KRIPTOGRAFI METODA WAKE
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Sains
LISTIA ANDHARTI
100823016
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
PERSETUJUAN
Judul : PERANCANGAN PERANGKAT LUNAK
PEMBELAJARAN KRIPTOGRAFI METODA WAKE
Kategori : SKRIPSI
Nama : LISTIA ANDHARTI
Nomor Induk Mahasiswa : 100823016
Program Studi : SARJANA (S1) MATEMATIKA Departemen : MATEMATIKA
Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA
Diluluskan di
Medan, September 2013
Komisi Pembimbing :
Pembimbing II, Pembimbing I,
Drs. Marihat Situmorang, M.Kom Drs. Sawaluddin, M.IT NIP. 19631214 198903 1 001 NIP. 19591231 199802 1 001
Diketahui
Departemen Matematika FMIPA USU Ketua,
PERNYATAAN
PERANCANGAN PERANGKAT LUNAK PEMBELAJARAN KRIPTOGRAFI METODA WAKE
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, September 2013
PENGHARGAAN
Puji dan syukur saya ucapkan kepada Allah SWT, dengan limpah rahmat dan karunia-Nya, sehingga saya dapat menyelesaikan Skripsi ini. Tak lupa pula shalawat dan salam kepada Nabi Muhammad SAW sebagai suri teladan bagi umat manusia, yang telah membawa kita dari zaman jahiliyah ke zaman yang terang benderang dengan ilmu pengetahuan seperti sekarang ini.
Adapun judul Skripsi ini adalah “PERANCANGAN PERANGKAT LUNAK PEMBELAJARAN KRIPTOGRAFI METODA WAKE”. Skripsi ini merupakan syarat untuk dapat menyelesaikan pendidikan program S-1 Matematika Bidang Komputer Fakultas Matematika dan Ilmu Pengetahuan Alam di Universitas Sumatera Utara.
Pada kesempatan ini, saya juga menyampaikan terima kasih kepada semua pihak yang telah banyak membantu, antara lain :
1. Bapak Sutarman, selaku Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam di Universitas Sumatera Utara;
2. Bapak Prof. Drs. Tulus, Vordipl.Math., M.Si., Ph.D, selaku Ketua Departemen Matematika di FMIPA USU;
3. Bapak Drs. Pengarapen Bangun, M.Si, selaku Koordinator Ektension FMIPA USU;
4. Bapak Drs. Sawaluddin, M.IT, selaku Dosen Pembimbing I yang telah banyak memberikan pengarahan, bimbingan dan kemudahan dalam penulisan Skripsi ini;
5. Bapak Drs. Marihat Situmorang, M.Kom, selaku Dosen Pembimbing II yang juga telah banyak memberikan pengarahan, bimbingan dan kemudahan dalam penulisan Skripsi ini;
6. Bapak Dr. Syahril Efendi, S.Si, M.IT dan Bapak Syahriol Sitorus, S.Si, M.IT, selaku Dosen penguji yang telah banyak memberikan saran dan masukan dalam penyempurnan Skripsi ini;
8. Kedua orangtua tercinta, Ayahanda Sutiyo dan Ibunda Susilawati yang telah memberikan semangat dan dukungan kepada Penulis;
9. Suami, Wahyudi Manurung yang telah memberikan semangat, dukungan dan bantuan baik moril maupun materi;
10.Teman-teman : Way Yantono Saing, Andi Hazri Hasibuan, Hasnan Aulia Haq dan Ali Makmur Simamora, yang telah banyak membantu dalam penyelesaian Skripsi ini;
11.Senior D-III Ilmu Komputer 2006, Ratih Nindya Kusuma Sidabutar dan suami yang telah banyak sekali membantu dalam perbaikan program dalam Skripsi ini;
12.Junior D-III Ilmu Komputer 2009, Prima Suhendra yang telah banyak sekali membantu dalam penyelesaian program dalam Skripsi ini.
Saya menyadari bahwa Skripsi ini masih memiliki kekurangan, untuk itu saya mengharapkan kritik dan saran yang konstruktif dari semua pihak untuk perbaikan dan kesempuraan Skripsi ini.
Akhirnya, saya berharap semoga Skripsi ini bermanfaat bagi para pembaca.
Medan, September 2013
ABSTRAK
Perangkat lunak ini bertujuan untuk membantu/mendukung pembelajaran Kriptografi
Metoda WAKE. Sistem ini dirancang menggunakan perangkat lunak Microsoft Visual Basic 6.0 sebagai compiler dan Adobe Photoshop CS4 untuk mendesain interface. Kriptografi Metoda WAKE terletak pada Tabel S-Box dan pembentukan kunci.
Interface didesain sedemikian rupa agar lebih mudah mempelajari proses demi proses
Kriptografi Metoda WAKE.
DESIGNING SOFTWARE CRYPTOGRAPHY WAKE LEARNING
METHODS
ABSTRACT
This software aims to help / support learning WAKE cryptography method. The
system was designed using the software Microsoft Visual Basic 6.0 as the compiler
and Adobe Photoshop CS4 for designing interfaces. Cryptography methods WAKE
located in Table S-Box and key establishment. Interface is designed in such a way as
to make it easier to learn the Cryptographic Methods WAKE process.
DAFTAR ISI
Halaman
PERSETUJUAN ii
PERNYATAAN iii
PENGHARGAAN iv
ABSTRAK vi
ABSTACT vii
DAFTAR ISI viii
DAFTAR TABEL xi
DAFTAR GAMBAR xii
BAB 1 PENDAHULUAN 1
1.1 Latar Belakang 1
1.2 Perumusan Masalah 2
1.3 Tujuan dan Manfaat Penulisan 2
1.4 Pembatasan Masalah 2
1.5 Metodologi Penyelesaian Masalah 3
BAB 2 LANDASAN TEORI 4
2.1 Kriptografi 4
2.2 Sistem Kriptografi 6
2.2.1 Sistem Kriptografi Simetris 6
2.2.2 Sistem Kriptografi Asimetris 7
2.2.3 Stream Chiper 8
2.3 Dasar-Dasar Matematika kriptografi 9
2.3.2 OR 10
2.3.3 XOR 10
2.3.4 Pergeseran Bit (Shift) 11
2.4 WAKE (Word Auto Key Encryption) 12
2.4.1 Proses Pembentukan Tabel S-Box 12
2.4.2 Proses Pembentukan Kunci 14
2.4.3 Proses Enkripsi dan Dekripsi 15
2.5 Perangkat Lunak Pembelajaran 15
2.5.1 Tujuan Perangkat Lunak Pembelajaran 16
2.5.2 Jenis-Jenis Perangkat Lunak Pembelajaran 16
BAB 3 PEMBAHASAN DAN PERANCANGAN 18
3.1 Pembahasan 18
3.1.1 Proses Pembentukan Tabel S-Box 18
3.1.2 Proses Pembentukan Kunci 22
3.2.5 Form Input Proses Pembentukan Kunci 37
3.2.6 Form Proses Pembentukan Kunci 38
3.2.7 Form Input Proses Enkripsi 39
3.2.8 Form Input Proses Dekripsi 40
3.2.9 Form Proses Enkripsi/Dekripsi 41
3.2.11 Form Hasil Pembentukan Kunci 44
3.2.12 Form About 45
BAB 4 ALGORITMA DAN IMPLEMENTASI 46
4.1 Algoritma 46
4.1.1 Algoritma Proses Pembentukan Tabel S-Box 46
4.1.2 Algoritma Proses Pembentukan Kunci 48
4.1.3 Algoritma Proses Enkripsi 50
4.1.4 Algoritma Proses Dekripsi 51
4.2 Implementasi Sistem 51
4.2.1 Spesifikasi Perangkat Keras dan Perangkat Lunak 52
4.2.2 Tampilan Output 52
4.3 Pengujian Perangkat Lunak 58
4.3.1 Black Box Testing 58
4.3.2 White Box Testing 61
BAB 5 KESIMPULAN DAN SARAN 62
5.1 Kesimpulan 62
5.2 Saran 62
DAFTAR PUSTAKA 64
DAFTAR TABEL
Halaman
Tabel 2.1 Aturan Operasi AND 9
Tabel 2.2 Aturan Operasi OR 10
Tabel 2.3 Aturan Operasi XOR 11
Tabel 3.1 Tabel ASCII 19
(American Standard Code for Information Interchange)
DAFTAR GAMBAR
Halaman
Gambar 2.1 Model Sederhana Sistem Kriptografi Simetris 6 Gambar 2.2 Model Sederhana Sistem Kriptografi Asimetris 8 Gambar 2.8 Bagan Proses Pembentukan Kunci 14 Gambar 3.8 Rancangan Form Input Proses Pembentukan Kunci 37 Gambar 3.9 Rancangan Form Proses Pembentukan Kunci 38 Gambar 3.10 Rancangan Form Input Proses Enkripsi 39 Gambar 3.11 Rancangan Form Input Proses Dekripsi 40 Gambar 3.12 Rancangan Form Proses Enkripsi/Dekripsi 41 Gambar 3.13 Rancangan Form Tabel S-Box 43 Gambar 3.14 Rancangan Form Hasil Pembentukan Kunci 44
ABSTRAK
Perangkat lunak ini bertujuan untuk membantu/mendukung pembelajaran Kriptografi
Metoda WAKE. Sistem ini dirancang menggunakan perangkat lunak Microsoft Visual Basic 6.0 sebagai compiler dan Adobe Photoshop CS4 untuk mendesain interface. Kriptografi Metoda WAKE terletak pada Tabel S-Box dan pembentukan kunci.
Interface didesain sedemikian rupa agar lebih mudah mempelajari proses demi proses
Kriptografi Metoda WAKE.
DESIGNING SOFTWARE CRYPTOGRAPHY WAKE LEARNING
METHODS
ABSTRACT
This software aims to help / support learning WAKE cryptography method. The
system was designed using the software Microsoft Visual Basic 6.0 as the compiler
and Adobe Photoshop CS4 for designing interfaces. Cryptography methods WAKE
located in Table S-Box and key establishment. Interface is designed in such a way as
to make it easier to learn the Cryptographic Methods WAKE process.
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Kriptografi, secara umum adalah ilmu dan seni untuk menjaga kerahasiaan pesan. Selain pengertian tersebut terdapat pula diartikan sebagai ilmu yang mempelajari
teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi
seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data. Metoda
WAKE merupakan salah satu metoda yang telah digunakan secara komersial. WAKE
merupakan singkatan dari Word Auto Key Encryption. Metoda ini ditemukan oleh David J. Wheeler pada tahun 1993. Tujuannya adalah untuk mendesain sebuah sistem
enkripsi dengan keamanan tinggi. Inti dari algoritma WAKE adalah proses
pembentukan S-box dan pembentukan kunci. Metoda WAKE ini telah digunakan pada
program Dr. Solomon Anti Virus versi terbaru. Proses penyelesaian metoda ini cukup rumit dan sulit untuk dikerjakan secara manual berhubung karena algoritmanya yang
cukup panjang dan kompleks.
Dalam ilmu kriptografi, selain metoda WAKE, masih banyak metoda yang
dapat digunakan untuk mengamankan data. Setiap metoda memiliki kelebihan dan
kekurangannya masing-masing. Namun, untuk mengetahui dan memahami cara kerja
dari metoda kriptografi tersebut diperlukan suatu perangkat lunak untuk mempelajari
metoda kriptografi tersebut. Penulis memilih metoda WAKE karena metoda ini cukup
Berdasarkan uraian di atas maka Penulis ingin membuat tugas akhir dengan judul “Perancangan Perangkat Lunak Pembelajaran Metoda Kriptografi WAKE (Word Auto Key Encryption)”.
1.2 Perumusan Masalah
Adapun permasalahan dalam pembuatan perangkat lunak ini adalah bagaimana
membuat aplikasi yang dapat menjadi alternatif pembelajaran teori kriptografi metoda
WAKE yang mudah dipahami dengan menampilkan langkah-langkah enkripsi dan
dekripsi.
1.3 Tujuan dan Manfaat Penulisan
Tujuan penyusunan tugas akhir ini adalah untuk merancang suatu perangkat lunak
pembelajaran metoda kriptografi WAKE.
Manfaat dari penyusunan tugas akhir ini yaitu :
1. Untuk membantu mempelajari kriptografi metoda WAKE;
2. Perangkat lunak dapat digunakan sebagai fasilitas pendukung ataupun metoda
alternatif dalam proses belajar mengajar.
1.4 Pembatasan Masalah
Pembatasan permasalahan dalam merancang perangkat lunak ini adalah :
1. Perangkat lunak akan menampilkan tahap-tahap perhitungan dalam bentuk biner
dan heksadesimal;
2. Input data berupa karakter (string) dengan perincian : a. Kunci 16 karakter;
3. Perangkat lunak menyediakan teori-teori pembentukan tabel, kunci, enkripsi dan
dekripsi dari metoda WAKE;
4. Perangkat lunak akan menampilkan tahapan-tahapan pembentukan tabel, kunci,
enkripsi dan dekripsi.
1.5 Metodologi Penyelesaian Masalah
Langkah-langkah pembuatan perangkat lunak ini antara lain :
1. Menganalisa segala sesuatu yang dibutuhkan dalam pembuatan perangkat lunak;
2. Studi Pustaka, yaitu membaca dan mempelajari buku-buku kriptografi yang
berhubungan dengan kriptografi metoda WAKE, MicrosoftVisual Basic 6.0 dan Adobe Photoshop CS4 untuk mengumpulkan informasi yang dibutuhkan dalam proses perancangan perangkat lunak;
3. Perancangan, yaitu dengan menggunakan Adobe Photoshop CS4 yang meliputi perancangan tampilan interface sistem, fitur apa saja yang akan ditampilkan
dalam sistem dan bagaimana proses jalannya sistem;
4. Pembuatan Program, yaitu pembuatan aplikasi dengan menggunakan bahasa
pemrograman MicrosoftVisual Basic 6.0;
5. Melakukan proses pengujian dan pengecekan kesalahan (error) terhadap perangkat lunak yang telah dirancang;
6. Apabila dalam proses uji coba terdapat error ataupun masih terdapat fitur
yang kurang di dalam perangkat lunak yang dibuat, maka dilakukan revisi program
untuk menyempurnakan kembali perangkat lunak tersebut;
7. Pembuatan Laporan yang membahas mengenai keseluruhan proses pembuatan
BAB 2
LANDASAN TEORI
2.1 Kriptografi
Menurut Stalling, ada beberapa hal yang terkait dengan keamanan data yaitu :
1. Confidentiality
Menjamin bahwa data tersebut hanya bisa diakses oleh pihak-pihak tertentu saja
(pihak yang telah ditentukan).
2. Authentication
Kedua belah pihak (pengirim dan penerima), perlu mengetahui bahwa pengirim
dan penerima pesan tersebut adalah orang yang sebenarnya seperti yang diklaim.
3. Integrity
Menjamin setiap pesan yang dikirim pasti sampai pada penerimanya tanpa ada
bagian dari pesan tersebut yang diganti, diduplikasi, dirusak, diubah urutannya,
dan ditambahkan.
4. Nonrepudiation
Pengirim maupun penerima tidak dapat mengingkari bahwa mereka telah
mengirimkan atau menerima suatu pesan/informasi. Jika sebuah pesan dikirim,
penerima dapat membuktikan bahwa pesan tersebut memang dikirim oleh
5. Access Control
Membatasi sumber data hanya kepada orang-orang tertentu.
6. Availability
Jika diperlukan setiap saat semua informasi pada sistem komputer harus tersedia
bagi semua pihak yang berhak atas informasi tersebut.
Kriptografi (cryptography) berasal dari Bahasa Yunani: “cryptós” artinya “secret” (rahasia), dan “gráphein” artinya “writing” (tulisan). Jadi, keseluruhan arti
kriptografi berarti “secret writing” (tulisan rahasia) [1]. Tetapi kriptografi dalam defenisi yang dipakai sebelum tahun 1980-an menyatakan bahwa kriptografi adalah
ilmu dan seni untuk menjaga kerahasian pesan menggunakan penyandian ke dalam
bentuk yang tidak dapat dimengerti lagi maknanya (Schneier, 1996).
Berikut adalah istilah-istilah yang digunakan dalam Bidang Kriptografi : [7]
a. Pesan, Plainteks, dan Chipherteks
Pesan (message) adalah data atau informasi yang dapat dibaca dan dimengerti
maknanya. Nama lain dari pesan adalah plainteks (plaintext). Agar pesan tidak
bisa dimengerti maknanya oleh pihak lain, maka pesan perlu disandikan ke
bentuk lain yang tidak dapat dipahami. Bentuk pesan yang tersandi disebut
cipherteks (chiphertext).
b. Pengirim dan Penerima
Pengirim adalah entitas yang mengirim pesan kepada entitas lainnya. Penerima
adalah entitas yang menerima pesan. Entitas di sini dapat berupa orang, mesin
(komputer), kartu kredit dan sebagainya.
c. Enkripsi dan Dekripsi
Proses menyandikan plainteks menjadi cipherteks disebut enkripsi. Sedangkan
d. Kunci
Algoritma kriptografi disebut juga ciphernya itu aturan untuk enchipering
dan dechipering, atau fungsi matematika yang digunakan untuk enkripsi dan
dekripsi. Beberapa ciphermemerlukan algoritma yang berbeda untuk
enciphering dan deciphering.
e. Penyadap
Penyadap (eavesdropper) adalah orang yang mencoba menangkap pesan
selama ditransmisikan. Nama lain penyadap: enemy, adversary, intruder,
interceptor, atau bad guy.
2.2 Sistem Kriptografi
Berdasarkan jumlah kunci yang digunakan, ada dua jenis sistem kriptografi yaitu
sistem kriptografi simetris dan sistem kriptografi asimetris.
2.2.1 Sistem Kriptografi Simetris
Algoritma kriprografi simetris adalah algoritma yang menggunakan kunci enkripsi
yang sama dengan kunci dekripsinya. Algoritma kriprografi simetris sering disebut
algoritma kunci rahasia, algoritma kunci tunggal, atau algoritma satu kunci, dan
mengharuskan pengirim dan penerima menyetujui suatu kunci tertentu. Kelebihan dari
algoritma kriprografi simetris adalah waktu proses untuk enkripsi dan dekripsi relatif
cepat. Hal ini disebabkan efesiensi yang terjadi pada pembangkit kunci.
Kunci
enkripsi dekripsi
(a)
(b)
Gambar 2.1. Model Sederhana Sistem Kriptografi Simetris
Kelebihan algoritma simetris:
1. Kecepatan operasi lebih tinggi bila dibandingkan dengan algoritma asimetris;
2. Karena kecepatan operasinya yang cukup tinggi, maka dapat digunakan pada
sistem real-time.
Kelemahan algoritma simetris:
1. Untuk tiap pengiriman pesan dengan user yang berbeda dibutuhkan kunci yang berbeda juga, sehingga akan terjadi kesulitan dalam manajemen kunci tersebut;
2. Permasalahan dalam pengiriman kunci itu sendiri yang disebut "key
distribution problem".
Contoh dari algoritma kriptografi simetris adalah Cipher Permutasi, Cipher Substitusi,
Cipher Hill, OTP, RC6, Twofish, Magenta, FEAL, SAFER, LOKI, CAST, Rijndael
(AES), Blowfish, GOST, A5, Kasumi, DES, IDEA dan WAKE.
2.2.2 Sistem Kriptografi Asimetris
Sistem kriptografi asimetris biasanya lebih dikenal dengan kriptografi kunci-publik
(public-key cryptography), menggunakan dua jenis kunci, yaitu kunci publik (public key) dan kunci rahasia (secret key).
Kunci publik merupakan kunci yang digunakan untuk mengenkripsi pesan.
umum, artinya kunci ini tidak dirahasiakan sehingga dapat dilihat oleh siapa saja.
Sedangkan kunci rahasia adalah kunci yang dirahasiakan dan hanya orang-orang
tertentu saja yang boleh mengetahuinya. Algoritma asimetris pertama kali
dipublikasikan oleh Diffie dan Hellman pada tahun 1976 dalam papernya yang
berjudul “New Directions in Cryptography”.
Kelebihan algoritma asimetris:
1. Masalah keamanan pada distribusi kunci dapat lebih baik;
2. Masalah manajemen kunci yang lebih baik karena jumlah kunci yang lebih
sedikit.
Kelemahan algoritma asimetris:
1. Kecepatan yang lebih rendah bila dibandingkan dengan algoritma simetris;
2. Untuk tingkat keamanan sama, kunci yang digunakan lebih panjang
dibandingkan dengan algoritma simetris.
kunci publik kunci pribadi
penerima penerima
enkripsi dekripsi
Gambar 2.2 Model Sederhana Sistem Kriptografi Asimetris
Contoh dari algoritma asimetris adalah RSA, ElGamal, McEliece, LUC dan
DSA (Digital Signature Algorithm).
2.2.3 Stream Cipher
Stream cipher adalah jenis algoritma enkripsi simetri. Stream cipheradalah algoritma sandi yang mengenkripsi data persatuan data, seperti bit, byte, nible atau per lima bit.
Setiap mengenkripsi satu satuan data di gunakan kunci yang merupakan hasil
pembangkitan dari kunci sebelum. Stream cipher dapat dibuat sangat cepat sekali,
jauh lebih cepat dibandingkan dengan algoritma block cipher yang manapun. Algoritma block cipher secara umum digunakan untuk unit plaintext yang besar sedangkan stream cipher digunakan untuk blok data yang lebih kecil, biasanya ukuran bit.
Contoh stream cipher diantaranya : OTP, RC4, A5/1 yang digunakan pada handphone. Metoda stream cipher yang umum digunakan adalah RC4. Satu hal yang menarik bahwa mode operasi tertentu dari suatu block cipher dapat men-transformasikan secara efektif hasil operasi tersebut ke dalam satu keystream generator dan dalam hal ini, block cipher apa saja dapat digunakan sebagai suatu stream cipher; seperti dalam DES, CFB atau OFB. Akan tetapi, stream ciphers dengan desain khusus biasanya jauh lebih cepat. [1]
2.3 Dasar-Dasar Matematika Kriptografi
Beberapa operasi dasar matematika yang digunakan dalam kriptografi metoda WAKE
adalah operasi AND, OR, XOR dan Shift Right.
2.3.1 AND
Operasi AND dilambangkan dengan tanda “”.
Aturan operasi AND dapat dinyatakan seperti tabel berikut :
Tabel 2.1 Aturan operasi AND
A B A B
0 0 0
0 1 0
1 0 0
Contoh :
11000110
10110011
---
10000010
2.3.2 OR
Operasi OR dilambangkan dengan tanda “”.
Aturan operasi OR dapat dinyatakan seperti tabel berikut :
Tabel 2.2 Aturan operasi OR
A B A B
0 0 0
0 1 1
1 0 1
1 1 1
Contoh :
11000110
10110011
---
11110111
2.3.3 XOR
Tabel 2.3 Aturan Operasi XOR
2.3.4 Pergeseran Bit (Shift)
Pergeseran bit (Shift) adalah operasi pergeseran terhadap suatu barisan bit sebanyak yang diinginkan. Bit kosong yang telah tergeser akan diberikan nilai bit “0” (nol).
Operasi pergeseran terbagi menjadi dua macam yaitu :
1. Operasi Geser Kiri (Shift Left) yaitu 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 yang menggeser sejumlah bit ke kanan (right) dan mengisi tempat kosong dengan nilai bit “0” (nol). Operasi shift rightdilambangkan dengan “>>”.
Contoh operasi shift right : [3]
11000110 >> 1 : 01100011
2.4 WAKE (Word Auto Key Encryption)
Metoda WAKE merupakan salah satu metoda kriptografi simetris dengan
menggunakan algoritma stream cipher WAKE merupakan singkatan dari Word Auto Key Encryption. Metoda ini ditemukan oleh David J. Wheeler pada tahun 1993.
Metoda WAKE menggunakan kunci 128 bit dan sebuah tabel 256 x 32 bit.
Dalam algoritmanya, metoda ini menggunakan operasi XOR, AND, OR dan Shift Right.
Proses utama WAKE terdiri dari :
1. Proses pembentukan tabel S-Box (Substitution Box). 2. Proses pembentukan kunci.
3. Proses enkripsi dan dekripsi.
Inti dari metoda WAKE terletak pada proses pembentukan tabel S-Box dan proses pembentukan kunci. Tabel S-Box dari metoda WAKE bersifat fleksibel dan berbeda-beda untuk setiap putaran. [4]
2.4.1 Proses Pembentukan Tabel S-Box
Pada kriptografi, tabel S-Box adalah komponen dasar dari algoritma kunci simetris. S-Box mengubah bit-bit input menjadi bit-bit output. Pada S-Box yang ideal,
perubahan 1 bit input dapat berakibat perubahan untuk setengah bit-bit output, dan masing-masing bit output tergantung pada setiap bit input. Pada umumnya, S-Box menggunakan beberapa inputm, kemudian mengubahnya menjadi beberapa bit outputn (S-Boxm x n). S-Box tersebut diimplementasikan sebagai suatu table.
Proses pembentukan tabel S-Box adalah sebagai berikut : [5] 1. Inisialisasi nilai TT[0] … TT[7] :
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)
2. Inisialisasi nilai awal untuk T[0] … T[3] : T[0] = K[0]
T[1] = K[1]
K[0], K[1], K[2], K[3] dihasilkan dari kunci yang dipecah menjadi 4 bagian
yang sama panjang.
3. Untuk T[4] sampai T[255], lakukan proses berikut :
X = T[n-4] + T[n-1]
T[n] = X >> 3 XOR TT(X AND 7)
4. Untuk T[0] sampai T[22], lakukan proses berikut :
T[n] = T[n] + T[n+89]
5. Set nilai untuk beberapa variabel di bawah ini :
X = T[33]
7. Inisialisasi nilai untuk beberapa variabel berikut ini :
2.4.2 Proses Pembentukan Kunci
Proses pembentukan kunci dari metoda WAKE dapat ditentukan sendiri yaitu
sebanyak n putaran. Semakin banyak putaran dari proses pembentukan kunci, maka
keamanan datanya akan semakin terjamin. Fungsi yang digunakan dalam proses
pembentukan kunci adalah M(X, Y) = (X + Y) >> 8 XOR T[(X + Y) AND 255].
Kunci yang di-input akan dipecah menjadi 4 bagian dan di-set sebagai nilai awal dari variabel A0, B0, C0, dan D0. Nilai dari variabel ini akan diproses dengan
melalui langkah berikut : [5]
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 Ki.
Agar lebih jelas, lihatlah bagan proses pembentukan kunci berikut : [3]
Gambar 2.3 Bagan Proses Pembentukan Kunci
Keterangan :
2.4.3 Proses Enkripsi dan Dekripsi
Inti dari metoda WAKE tidak terletak pada proses enkripsi dan dekripsinya, karena
proses enkripsi dan dekripsinya hanya berupa operasi XOR dari plaintext dan kunci untuk menghasilkan ciphertext atau operasi XOR ciphertext dan kunci untuk menghasilkan plaintext. [4]
P = C K
2.5 Perangkat Lunak Pembelajaran
Seiring dengan perkembangan peradaban manusia dan kemajuan pesat di bidang
teknologi, tanpa disadari komputer telah ikut berperan dalam dunia pendidikan
terutama penggunaannya sebagai alat bantu pengajaran. Perangkat lunak pembelajaran
adalah suatu program computer yang dirancang khusus untuk membantu proses
pemahaman ilmu dan pengetahuan tertentu.
Banyak istilah yang dipakai untuk menyatakan perangkat lunak pembelajaran
dengan komputer, seperti Computer Assisted Instruction (CAI), Computer Based Ai = Bagian pertama dari pecahan kunci
Bi = Bagian kedua dari pecahan kunci
Ci = Bagian ketiga dari pecahan kunci
Instruction (CBI), Computer Based Education (CBE), Computer Assisted Learning (CAL), atau Computer Based Training (CBT). [4]
2.5.1 Tujuan Perangkat Lunak Pembelajaran
Tujuan dari perangkat lunak pembelajaran antara lain : [3]
1. Peningkatan pengawasan;
2. Penggunaan sumber daya;
3. Individualisasi;
4. Ketepatan waktu dan tingkat ketersediaan;
5. Pengurangan waktu latihan;
6. Perbaikan hasil kerja;
7. Alat yang nyaman dipakai;
8. Pengganti cara belajar;
9. Peningkatan kepuasan belajar;
10. Pengurangan waktu pengembangan.
2.5.2 Jenis-Jenis Perangkat Lunak Pembelajaran
Jenis pemakaian komputer untuk perangkat lunak pembelajaran digolongkan menjadi
tiga bagian, yaitu :
1. Pengujian
Dalam jenis CBT, komputer digunakan untuk memberikan penilaian dan analisis
tes, membuat soal tes, membuat nilai acak, tes interaksi, dan tes adaptasi. Jenis ini
sering disebut dengan Computer Assisted Testing (CAT).
2. Manajemen
alat-alat yang dipakai. CMI biasanya digunakan untuk meningkatkan pengawasan dan
efisiensi dalam sistem pelatihan.
3. Instruksi
Ada dua bentuk yang hampir sama mengenai pengguna komputer untuk instruksi.
Computer Assisted Instruction (CAI), menganggap komputer sebagai media penyimpanan instruksi sama seperti slide, tape, video atau buku-buku. Menurut sudut pandang CAI, masalah utamanya adalah bagaimana menyusun bahan-bahan
instruksi yang akan ditampilkan oleh komputer dengan cara yang paling efektif.
Ada tiga jenis CAI yakni :
a. Drill and Practice
Merupakan cara yang paling mudah, terdiri dari tahap-tahap penampilan
permasalahan, penerimaan respon pengguna, pemberian hasil analisis, umpan
balik, dan pemberian pertanyaan lain. Secara umum jenis ini tidak
menampilkan informasi baru tapi memberikan latihan dari konsep yang sudah
ada.
b. Tutorial
Jenis ini berisi konsep atau prosedur yang disertai dengan pertanyaan atau
latihan pada akhir dari pelatihan. Selama pelatihan, komputer mengajarkan
informasi-informasi yang baru kepada siswa seperti layaknya seorang guru
pembimbing. Setelah itu, pemahaman siswa diukur melalui serangkaian tes
dan komputer melanjutkan pengajaran berdasarkan hasil pengukuran tadi.
c. Socratic
Berisi komunikasi antara pengguna dan komputer dalam natural language. Jenis ini sebenarnya berasal dari penelitian dalam bidang intelijensia semu
BAB 3
PEMBAHASAN DAN PERANCANGAN
3.1 Pembahasan
Proses kriptografi metoda WAKE terdiri atas 4 (empat) proses, yaitu :
1. Proses Pembentukan Tabel S-Box; 2. Proses Pembentukan Kunci;
3. Proses Enkripsi;
4. Proses Dekripsi.
Inti dari metoda WAKE terletak pada proses pembentukan tabel S-Box dan proses pembentukan kunci. Proses enkripsi dan dekripsi hanya berupa operasi XOR
dari plaintext dan kunci untuk menghasilkan ciphertext dan operasi XOR dari ciphertext dan kunci untuk menghasilkan plaintext.
3.1.1 Proses Pembentukan Tabel S-Box
Proses pembentukan tabel S-Box terdiri atas 8 (delapan) proses utama. Dalam prosesnya, pembentukan tabel S-Box memerlukan input kunci dengan panjang 128 bit biner atau 16 karakter ASCII. Untuk lebih jelas, proses ini dapat dilihat pada contoh berikut :
1. Inisialisasi nilai TT[0] ... TT[7].
TT[0] = 726A8F3B (dalam heksadesimal)
TT[1] = E69A3B5C
2. Pecah kunci menjadi 4 kelompok dan masukkan pada T[0] ... T[3].
Kunci : 'SELAMAT PAGI, BU'
Tabel 3.1 Tabel ASCII (American Standard Code for Information Interchange)
CHARACTER DESIMAL HEXADESIMAL
S 83 53
Kunci (dalam heksa) = 53454C414D415420504147492C204255
T[1] = K[1] = 4D415420
T[2] = K[2] = 50414749
T[3] = K[3] = 2C204255
3. Untuk n = 4 sampai 255, lakukan prosedur berikut :
n = 4
(dan seterusnya hingga n = 255)
4. Untuk n = 0 sampai 22, lakukan prosedur berikut :
n = 2
T[2] = T[2] + T[91] = 50414749 + AEC5D102 = FF07184B
n = 3
T[3] = T[3] + T[92] = 2C204255 + F518F1B0 = 21393405
(dan seterusnya hingga n = 22)
5. Set nilai untuk beberapa variabel di bawah ini :
X = BC57E9F7
Z = T[59] OR 01000001 = 72BDA7C5 OR 01000001 = 73BDA7C5
Z = Z AND FF7FFFFF = 73BDA7C5 AND FF7FFFFF = 733DA7C5
X = X AND FF7FFFFF = BC57E9F7 AND FF7FFFFF = 2F9591BC
6. Untuk n = 0 sampai 255, lakukan prosedur berikut :
n = 0
X = (2F9591BC AND FF7FFFFF) + 733DA7C5 = A2533981
T[0] = 7160B1FC] AND 00FFFFFF XOR A2533981 = A233887D
n = 1
X = (A2533981 AND FF7FFFFF) + 733DA7C5 = 1590E146
T[1] = E572D942] AND 00FFFFFF XOR 1590E146 = 15E23804
n = 2
X = (1590E146 AND FF7FFFFF) + 733DA7C5 = 884E890B
T[2] = FF07184B] AND 00FFFFFF XOR 884E890B = 88499140
(dan seterusnya hingga n = 255)
7. Set nilai untuk beberapa variabel berikut.
T[256] = T[0] = A233887D
X = X AND 255(10) = 2FBD56BC AND 255(10) = 000000BC
8. Untuk n = 0 sampai 255, lakukan prosedur berikut. X = (X AND FF7FFFFF) + Z
T[n] = T[n] AND 00FFFFFF XOR X
Temp = (T[n XOR X] XOR X) AND 255
T[n] = T[Temp]
n = 0
(dan seterusnya hingga n = 255).
3.1.2 Proses Pembentukan Kunci
Proses pembentukan kunci memerlukan inputkunci dengan panjang 128 bit biner atau 16 karakter ASCII. Pertama , input kunci dipecah menjadi 4 kelompok dan di-set sebagai nilai awal dari variabel A0, B0, C0, D0. Kemudian isi variabel A, B, C dan D
dan ulangi sebanyak n-putaran yang di-input.
Ai+1 = M(Ai, Di) Ci+1 = M(Ci, Bi+1)
Fungsi M(X, Y) = (X + Y)>>8 XOR T[(X + Y) AND 255]. Nilai dari Di
merupakan nilai dari kunci Ki. Proses ini dapat dilihat pada contoh berikut :
Misalkan input key : ‘SELAMAT PAGI, BU’ dan putaran kunci sebanyak 5 kali, maka proses pembentukan kunci dalam heksadesimal adalah sebagai berikut :
Kunci 'SELAMAT PAGI, BU' diubah dalam bentuk heksa =
53454C414D415420504147492C204255
Pecah kunci menjadi 4 kelompok dan masukkan ke A(0), B(0), C(0) dan D(0).
A(0) = 53454C41
FungsiM(A[0],D[0]) = FungsiM(53454C41,2C204255) = (53454C41 +
2C204255)>>8 XOR T[(53454C41 + 2C204255) AND 255(10)] = 7F658E96>>8
XOR T[150] = 007F658E XOR 981DC169 = 9862A4E7
A[1] = 9862A4E7
FungsiM(B[0],A[1]) = FungsiM(4D415420,9862A4E7) = (4D415420 +
9862A4E7)>>8 XOR T[(4D415420 + 9862A4E7) AND 255(10)] = E5A3F907>>8
XOR T[7] = 00E5A3F9 XOR F977E99D = F9924A64
B[1] = F9924A64
FungsiM(C[0],B[1]) = FungsiM(50414749,F9924A64) = (50414749 +
F9924A64)>>8 XOR T[(50414749 + F9924A64) AND 255(10)] = 49D391AD>>8
XOR T[173] = 0049D391 XOR 6415A084 = 645C7315
C[1] = 645C7315
FungsiM(D[0],C[1]) = FungsiM(2C204255,645C7315) = (2C204255 +
645C7315)>>8 XOR T[(2C204255 + 645C7315) AND 255(10)] = 907CB56A>>8
XOR T[106] = 00907CB5 XOR D7260767 = D7B67BD2
---
KUNCI PUTARAN 2
---
FungsiM(A[1],D[1]) = FungsiM(9862A4E7,D7B67BD2) = (9862A4E7 +
D7B67BD2)>>8 XOR T[(9862A4E7 + D7B67BD2) AND 255(10)] =701920B9>>8
XOR T[185] = 00701920 XOR 9FBC452B = 9FCC5C0B
A[2] = 9FCC5C0B
FungsiM(B[1],A[2]) = FungsiM(F9924A64,9FCC5C0B) = (F9924A64 +
9FCC5C0B)>>8 XOR T[(F9924A64 + 9FCC5C0B) AND 255(10)] = 995EA66F>>8
XOR T[111] = 00995EA6 XOR F23A3EB2 = F2A36014
B[2] = F2A36014
FungsiM(C[1],B[2]) = FungsiM(645C7315,F2A36014) = (645C7315 +
F2A36014)>>8 XOR T[(645C7315 + F2A36014) AND 255(10)] = 56FFD329>>8
XOR T[41] = 0056FFD3 XOR 0138DEF7 = 016E2124
C[2] = 016E2124
FungsiM(D[1],C[2]) = FungsiM(D7B67BD2,016E2124) = (D7B67BD2 +
016E2124)>>8 XOR T[(D7B67BD2 + 016E2124) AND 255(10)] = D9249CF6>>8
XOR T[246] = 00D9249C XOR 49C24168 = 491B65F4
D[2] = 491B65F4
---
KUNCI PUTARAN 3
---
FungsiM(A[2],D[2]) = FungsiM(9FCC5C0B,491B65F4) = (9FCC5C0B +
491B65F4)>>8 XOR T[(9FCC5C0B + 491B65F4) AND 255(10)] = E8E7C1FF>>8
XOR T[255] = 00E8E7C1 XOR DEAB2185 = DE43C644
A[3] = DE43C644
FungsiM(B[2],A[3]) = FungsiM(F2A36014,DE43C644) = (F2A36014 +
DE43C644)>>8 XOR T[(F2A36014 + DE43C644) AND 255(10)] = D0E72658>>8
XOR T[88] = 00D0E726 XOR 89BBFFAF = 896B1889
FungsiM(C[2],B[3]) = FungsiM(016E2124,896B1889) = (016E2124 +
896B1889)>>8 XOR T[(016E2124 + 896B1889) AND 255(10)] = 8AD939AD>>8
XOR T[173] = 008AD939 XOR 6415A084 = 649F79BD
C[3] = 649F79BD
FungsiM(D[2],C[3]) = FungsiM(491B65F4,649F79BD) = (491B65F4 +
649F79BD)>>8 XOR T[(491B65F4 + 649F79BD) AND 255(10)] = ADBADFB1>>8
XOR T[177] = 00ADBADF XOR 51C0F15F = 516D4B80
D[3] = 516D4B80
---
KUNCI PUTARAN 4
---
FungsiM(A[3],D[3]) = FungsiM(DE43C644,516D4B80) = (DE43C644 +
516D4B80)>>8 XOR T[(DE43C644 + 516D4B80) AND 255(10)] = 2FB111C4>>8
XOR T[196] = 002FB111 XOR 3BA22D9F = 3B8D9C8E
A[4] = 3B8D9C8E
FungsiM(B[3],A[4]) = FungsiM(896B1889,3B8D9C8E) = (896B1889 +
3B8D9C8E)>>8 XOR T[(896B1889 + 3B8D9C8E) AND 255(10)] = C4F8B517>>8
XOR T[23] = 00C4F8B5 XOR 5C647784 = 5CA08F31
B[4] = 5CA08F31
FungsiM(C[3],B[4]) = FungsiM(649F79BD,5CA08F31) = (649F79BD +
5CA08F31)>>8 XOR T[(649F79BD + 5CA08F31) AND 255(10)] = C14008EE>>8
XOR T[238] = 00C14008 XOR 7724A9A9 = 77E5E9A1
C[4] = 77E5E9A1
FungsiM(D[3],C[4]) = FungsiM(516D4B80,77E5E9A1) = (516D4B80 +
77E5E9A1)>>8 XOR T[(516D4B80 + 77E5E9A1) AND 255(10)] = C9533521>>8
XOR T[33] = 00C95335 XOR 9FBC452B = 9F75161E
---
KUNCI PUTARAN 5
---
FungsiM(A[4],D[4]) = FungsiM(3B8D9C8E,9F75161E) = (3B8D9C8E +
9F75161E)>>8 XOR T[(3B8D9C8E + 9F75161E) AND 255(10)] = DB02B2AC>>8
XOR T[172] = 00DB02B2 XOR 2B877278 = 2B5C70CA
A[5] = 2B5C70CA
FungsiM(B[4],A[5]) = FungsiM(5CA08F31,2B5C70CA) = (5CA08F31 +
2B5C70CA)>>8 XOR T[(5CA08F31 + 2B5C70CA) AND 255(10)] = 87FCFFFB>>8
XOR T[251] = 0087FCFF XOR 1E2E7E26 = 1EA982D9
B[5] = 1EA982D9
FungsiM(C[4],B[5]) = FungsiM(77E5E9A1,1EA982D9) = (77E5E9A1 +
1EA982D9)>>8 XOR T[(77E5E9A1 + 1EA982D9) AND 255(10)] = 968F6C7A>>8
XOR T[122] = 00968F6C XOR 95F71933 = 9561965F
C[5] = 9561965F
FungsiM(D[4],C[5]) = FungsiM(9F75161E,9561965F) = (9F75161E +
9561965F)>>8 XOR T[(9F75161E + 9561965F) AND 255(10)] = 34D6AC7D>>8
XOR T[125] = 0034D6AC XOR 4E03B7B2 = 4E37611E
D[5] = 4E37611E
KUNCI = D[5] = 4E37611E
3.1.3 Proses Enkripsi
Proses enkripsi dari metoda WAKE untuk menghasilkan ciphertext adalah berupa hasil operasi XOR dari plaintext dan 32 bit kunci yang dihasilkan dari proses pembentukan kunci.
3.1.4 Proses Dekripsi
Proses dekripsi dari metoda WAKE untuk menghasilkan plaintext adalah berupa hasil operasi XOR dari ciphertext dan 32 bit kunci yang dihasilkan dari proses pembentukan kunci.
3.2 Perancangan
Dalam perancangan aplikasi kritptografi WAKE ini, dibutuhkan suatu metoda yang
sistematis dan terurut, yaitu Metoda Waterfall Model. Pada metoda ini terdapat 5
(lima) tahapan, yaitu :
Gambar 3.1 Waterfall Model
Plaintext (P) = Ciphertext (C) XOR Key (K)
Analisa Kebutuhan
Desain Sistem dan Aplikasi
Implementasi
Pengujian Perangkat Lunak
1. Analisa Kebutuhan
Pada tahap ini dilakukan proses pengumpulan data yang kemudian akan
dianalisa agar diketahui apa saja yang diperlukan untuk pembuatan aplikasi.
Beberapa poin yang harus ada di dalamnya, yaitu :
a. Aplikasi dapat melakukan proses enkripsi dan dekripsi dengan
menggunakan inputan data numerik dan karakter;
b. Spesifikasi perangkat lunak yang digunakan dalam aplikasi adalah
Microsoft Visual Basic 6.0, Microsoft Visio dan Adobe Photoshop CS4.
c. Spesifikasi Perangkat Keras yang digunakan adalah sebagai berikut :
1. Prosesor Intel Pentium IV 2.26 GHz.
2. Memory 256 MB.
3. Harddisk 40 GB.
4. VGA card 32 MB.
5. Monitor dengan resolusi 1024 X 768 pixel. 6. Keyboard dan Mouse.
2. Desain Sistem dan Aplikasi
Berdasarkan semua data yang dikumpulkan maka pada tahap ini aplikasi dan
semua sistem terkait didesain sedemikian rupa agar memenuhi kebutuhan
Gambar 3.2 Flowchart Proses Enkripsi
NO
YES START
Input Kunci = 16
VALID
Proses S-Box T[0] …… T[256]
Proses Pembentukan Kunci D[n] = …..?
Input Plaintext
ENKRIPSI Plaintext XOR D[n]
KELUAR
Gambar 3.3 Flowchart Proses Dekripsi
3. Implementasi
Dari desain yang telah dibuat maka pada tahap ini penulisan kode program
dilakukan untuk menjadikan aplikasi secara utuh.
4. Pengujian Perangkat Lunak
Pada tahap ini, aplikasi akan diuji apakah sudah sesuai dengan yang
diharapkan berdasarkan analisis kebutuhan. START
Input Kunci = 16
VALID
Proses S-Box T[0] …… T[256]
Proses Pembentukan Kunci D[n] = …..?
Input Plaintext
DEKRIPSI Ciphertext XOR D[n]
KELUAR
SIMPAN NO
YES
5. Maintenance
Pada tahap ini, kesalahan-kesalahan atau bugs yang diketahui saat melakukan
pengujian akan diperbaiki agar aplikasi dapat berjalan sesuai dengan
kebutuhan.
Perangkat lunak pembelajaran ini memiliki beberapa form, seperti : 1. FormMain.
2. Form Teori.
3. FormInput Proses S-Box. 4. Form Proses S-Box.
5. FormInput Proses Pembentukan Kunci. 6. Form Proses Pembentukan Kunci. 7. FormInput Proses Enkripsi. 8. FormInput Proses Dekripsi. 9. Form Proses Enkripsi / Dekripsi. 10.Form Tabel S-Box.
11.Form Hasil Pembentukan Kunci. 12.Form About.
13.Form Teori Kriptografi.
3.2.1 Form Main
Gambar 3.4 Rancangan Form Main
Keterangan :
1 : title bar, berisikan tulisan ‘Perangkat lunak pembelajaran kriptografi – metoda WAKE’.
2 : tombol ‘Minimize’, berfungsi untuk mengecilkan tampilan form. 3 : tombol ‘Maximize’, berfungsi untuk memperbesar tampilan form. 4 : tombol ‘Close’, berfungsi untuk menutup form dan keluar dari program.
5 : menu baryang berisikan menu ‘File’, ‘Teori Kriptografi WAKE’, ‘Pembelajaran WAKE’, dan ‘Tentang’.
6 : nama perangkat lunak.
7 : data penyusun skripsi atau pembuat perangkat lunak.
8 : data kampus.
Menu-menu yang terdapat pada FormMain dapat dirincikan sebagai berikut :
1. Menu ‘File’, memiliki beberapa sub menu, antara lain :
b. Sub menu ‘Simpan Data’, berfungsi untuk menyimpan data (kunci, plaintext dan ciphertext).
c. Sub menu ‘Keluar’, berfungsi untuk keluar dari perangkat lunak.
2. Menu ‘Teori Kriptografi WAKE’, memiliki beberapa sub menu, antara lain : a. Sub menu ‘Kriptografi - Metoda WAKE’, berfungsi untuk menampilkan
teori mengenai metoda WAKE.
b. Sub menu ‘Pembentukan Tabel S-Box’, berfungsi untuk menampilkan teori mengenai proses pembentukan tabel S-Box pada metoda WAKE. c. Sub menu ‘Pembentukan Kunci’, berfungsi untuk menampilkan teori
mengenai proses pembentukan kunci pada metoda WAKE.
d. Sub menu ‘Proses Enkripsi’, berfungsi untuk menampilkan teori mengenai proses enkripsi pada metoda WAKE.
e. Sub menu ‘Proses Dekripsi’, berfungsi untuk menampilkan teori mengenai proses dekripsi pada metoda WAKE.
3. Menu ‘Pembelajaran WAKE’ memiliki beberapa sub menu, antara lain : a. Sub menu ‘Proses S-Box’, berfungsi untuk menampilkan form ‘Input
Proses S-Box’.
b. Sub menu ‘Proses Pembentukan Kunci’, berfungsi untuk menampilkan form‘InputProses Pembentukan Kunci’.
c. Sub menu ‘Proses Enkripsi’, berfungsi untuk menampilkan form ‘Input
Proses Enkripsi’.
d. Sub menu ‘Proses Dekripsi’, berfungsi untuk menampilkan form ‘Input
Proses Dekripsi’.
3.2.2 Form Teori
Gambar 3.5 Rancangan Form Teori
Keterangan :
1 : judul teori.
2 : daerah tampilan teori.
3 : tombol ‘Sebelumnya’, berfungsi melihat halaman teori sebelumnya. 4 : tombol ‘Berikutnya’, berfungsi melihat ke halaman teori selanjutnya.
3.2.3 Form Input Proses S-Box
Gambar 3.6 Rancangan Form Input Proses S-Box
Keterangan :
1 : title bar, berisikan tulisan ‘Proses S-Box’.
2 : tombol ‘Close’, berfungsi untuk menutup form‘Proses S-Box’. 3 : textbox sebagai tempat pengisian input kunci.
4 : option button‘Biner’, berfungsi untuk memilih proses ditampilkan dalam biner. 5 : option button‘Heksadesimal’, berfungsi untuk memilih proses ditampilkan dalam bentuk Heksadesimal.
6 : label‘Lihat Hasil / Tabel S-Box’, berfungsi untuk menampilkan form‘Tabel S- Box’.
3.2.4 Form Proses S-Box
Gambar 3.7 Rancangan Form Proses S-Box
Keterangan :
1 : title bar, berisikan tulisan ‘Proses S-Box’.
2 : tombol ‘Close’, berfungsi untuk menutup form‘Proses S-Box’. 3 : daerah tampilanalgoritma untuk pembentukan tabel S-Box.
4 : daerah tampilan bagan.
5 : combo box ‘Kecepatan’, berfungsi untuk memilih kecepatan proses. 6 : daerah tampilan hasil eksekusi proses.
7 : tombol ‘Jalankan’, berfungsi untuk memulai proses pembentukan tabel S-Box. 8 : tombol ‘Skip’, berfungsi untuk menghasilkan tabel S-Box tanpa melalui animasi tahapan– tahapan proses yang ada.
9 : tombol ‘Ulang’, berfungsi untuk mengulangi proses pembentukan tabel S-Box. 10 : tombol ‘Simpan’, berfungsi untuk menyimpan hasil eksekusi.
11 : tombol ‘Cetak’, berfungsi untuk mencetak hasil eksekusi.
3.2.5 Form Input Proses Pembentukan Kunci
Gambar 3.8 Rancangan Form Input Proses Pembentukan Kunci
Keterangan :
1 : title bar, berisikan tulisan ‘Proses Pembentukan Kunci’.
2 : tombol ‘Close’, berfungsi untuk menutupform‘Input Proses Pembentukan Kunci’.
3 : option button‘Biner’, berfungsi untuk memilih proses ditampilkan dalam biner. 4 : option button‘Heksadesimal’, berfungsi untuk memilih proses ditampilkan dalam bentuk Heksadesimal.
5 : textbox sebagai tempat pengisian banyaknya putaran untuk menghasilkan kunci. 6 : textbox sebagai tempat pengisian input kunci.
7 : label‘Lihat Tabel S-Box’, berfungsi untuk menampilkan form‘Tabel S-Box’. 8 : label‘Kunci yang terbentuk’, berfungsi untuk menampilkan form‘Hasil Pembentukan Kunci’.
9 : tombol ‘Proses’, berfungsi untuk menampilkan form‘Proses Pembentukan Kunci’.
3.2.6 Form Proses Pembentukan Kunci
Gambar 3.9 Rancangan Form Proses Pembentukan Kunci
Keterangan :
1 : title bar, berisikan tulisan ‘Proses Pembentukan Kunci’.
2 : tombol ‘Close’, berfungsi untuk menutup form‘Proses Pembentukan Kunci’. 3 : daerah tampilandiagram pembentukan kunci.
4 : combo box ‘Kecepatan’, berfungsi untuk memilih kecepatan proses. 5 : daerah tampilan hasil eksekusi proses.
6 : tombol ‘Jalankan’, berfungsi untuk memulai proses pembentukan kunci. 7 : tombol ‘Skip’, berfungsi untuk menghasilkan kuncitanpa melalui animasi tahapan– tahapan proses yang ada.
8 : tombol ‘Ulang’, berfungsi untuk mengulangi proses pembentukan kunci. 9 : tombol ‘Simpan’, berfungsi untuk menyimpan hasil eksekusi.
10 : tombol ‘Cetak’, berfungsi untuk mencetak hasil eksekusi.
3.2.7 Form Input Proses Enkripsi
Gambar 3.10 Rancangan Form Input Proses Enkripsi
Keterangan :
1 : title bar, berisikan tulisan ‘Proses Enkripsi’.
2 : tombol ‘Close’, berfungsi untuk menutup form‘Input Proses Enkripsi’. 3 : textbox sebagai tempat pengisian inputplaintext.
4 : textbox sebagai tempat pengisian inputkunci.
5 : textbox dan updown sebagai tempat pengisian banyaknya putaran untuk menghasilkan kunci.
6 : option button ‘Heksadesimal dan Biner’, berfungsi untuk memilih proses ditampilkan dalam bentuk heksa decimal atau biner.
7 : tombol ‘Keluar’, berfungsi untuk keluar dari form ‘Input Proses Enkripsi’ dan kembali ke form‘Main’.
9 : label ‘Kunci yang terbentuk’, berfungsi untuk menampilkan form ‘Hasil
Pembentukan Kunci’.
10 : label‘Lihat Tabel S-Box’, berfungsi untuk menampilkan form‘Tabel S-Box’.
3.2.8 Form Input Proses Dekripsi
Gambar 3.11 Rancangan Form Input Proses Dekripsi
Keterangan :
1 : title bar, berisikan tulisan ‘Proses Dekripsi’.
2 : tombol ‘Close’, berfungsi untuk menutup form‘Input Proses Dekripsi’. 3 : textbox sebagai tempat pengisian inputciphertext.
4 : textbox sebagai tempat pengisian inputkunci.
5 : option button ‘Heksadesimal dan Biner’, berfungsi untuk memilih proses ditampilkan dalam bentuk heksa decimal atau Biner.
7 : tombol ‘Keluar’, berfungsi untuk keluar dari form‘Input Proses Dekripsi’ dan kembali ke form‘Main’.
8 : tombol ‘Proses’, berfungsi untuk menampilkan form‘Proses Enkripsi / Dekripsi’.
9 : label‘Kunci yang terbentuk’, berfungsi untuk menampilkan form‘Hasil Pembentukan Kunci’.
10 : label‘Lihat Tabel S-Box’, berfungsi untuk menampilkan form‘Tabel S-Box’.
3.2.9 Form Proses Enkripsi / Dekripsi
(b)
Gambar 3.12 Rancangan Form Proses Enkripsi / Dekripsi
Keterangan :
1 : title bar, berisikan tulisan ‘Proses Enkripsi’atau ‘Proses Dekripsi’. 2 : tombol ‘Close’, berfungsi untuk menutup form.
3 : label, untuk menampilkan nama proses (proses enkripsi atau dekripsi). 4 : combo box ‘Kecepatan’, berfungsi untuk memilih kecepatan proses. 5 : daerah tampilandiagram enkripsi atau dekripsi.
6 : daerah tampilan hasil eksekusi proses.
7 : tombol ‘Jalankan’, berfungsi untuk memulai proses enkripsi atau dekripsi. 8 : tombol ‘Skip’, berfungsi untuk menghasilkan plaintext atau ciphertext tanpa melalui animasi tahapan– tahapan proses yang ada.
8 : tombol ‘Ulang’, berfungsi untuk mengulangi proses enkripsi atau dekripsi. 9 : tombol ‘Simpan’, berfungsi untuk menyimpan hasil eksekusi.
3.2.10 Form Tabel S-Box
Gambar 3.13 Rancangan Form Tabel S-Box
Keterangan :
1 : title bar, berisikan tulisan ‘Tabel S-Box’.
2 : tombol ‘Close’, berfungsi untuk menutup form‘Tabel S-Box’. 3 : tabel S-Box.
3.2.11 Form Hasil Pembentukan Kunci
Gambar 3.14 Rancangan Form Hasil Pembentukan Kunci
Keterangan :
1 : title bar, berisikan tulisan ‘Hasil Pembentukan Kunci’.
2 : tombol ‘Close’, berfungsi untuk menutup form. 3 : label, untuk menampilkan input key.
4 : label, untuk menampilkan input putaran kunci.
3.2.12 Form About
Gambar 3.15 Rancangan Form About
Keterangan :
1 : title bar, berisikan tulisan ‘Tentang Kriptografi – Metoda WAKE’. 2 : tombol ‘Close’, berfungsi untuk menutup form.
3 : gambar icon dari perangkat lunak. 4 : judul skripsi.
5 : data penyusun skripsi dan kampus. 6 : tombol ‘OK’ untuk keluar dari form.
597
BAB 4
ALGORITMA DAN IMPLEMENTASI
4.1 Algoritma
Algoritma perancangan perangkat lunak pembelajaran kriptografi metode WAKE
dibagi menjadi 4 bagian yaitu :
1. Algoritma Proses Pembentukan Tabel S-Box. 2. Algoritma Proses Pembentukan Kunci.
3. Algoritma Proses Enkripsi.
4. Algoritma Proses Dekripsi.
4.1.1 Algoritma Proses Pembentukan Tabel S-Box
Proses pembentukan tabel S-Box memerlukan input kunci 16 karakter ascii atau 128 bit biner, sehingga tabel S-Box pada metode WAKE adalah berbeda untuk input kunci yang berbeda.
Algoritma proses pembentukan tabel S-Box adalah sebagai berikut : {1. Inisialisasi nilai TT[0] - T[7]}
TT(0) = FHexToBiner("726a8f3b")
TT(1) = FHexToBiner("e69a3b5c")
TT(2) = FHexToBiner("d3c71fe5")
TT(3) = FHexToBiner("ab3c73d2")
TT(4) = FHexToBiner("4d3a8eb3")
TT(6) = FHexToBiner("3d4c2f7a")
TT(7) = FHexToBiner("9ee27cf3")
{2. Pecah kunci (128 bit) menjadi 4 kelompok dan masukkan nilainya ke T[0], T[1],
T[2], T[3]}
X = ""
For N = 1 To Len(pcKunci)
X = X & FormatS(FDecToBiner(Asc(Mid(pcKunci,N, 1))),"0",8)
Next N
T(0) = Mid(X, 1, 32)
T(1) = Mid(X, 33, 32)
T(2) = Mid(X, 65, 32)
T(3) = Mid(X, 97, 32)
{3. Untuk N = 4 sampai 255, lakukan proses berikut} For N = 4 To 255
TT(FBinerToDec(FOpBiner("AND", X, "111"))), 32)
Next N
{4. Untuk N = 0 sampai 22, lakukan proses berikut} For N = 0 To 22
{T[n] = T[n] + T[n+89]}
T(N) = FAddBiner(T(N), T(N + 89), 32)
Next N
{5. Set nilai untuk variabel di bawah ini} X = T(33)
Z = FOpBiner("OR", T(59), FHexToBiner("01000001"), 32)
Z = FOpBiner("AND", Z, FHexToBiner("FF7FFFFF"), 32)
X = FAddBiner(FOpBiner("AND", X, FHexToBiner("FF7FFFFF"),32),
{6. Untuk N = 0 sampai 255, lakukan proses berikut} For N = 0 To 255
{X = (X And FF7FFFFF) + Z}
X = FAddBiner(FOpBiner("AND",X,_
FHexToBiner("FF7FFFFF"),32),Z,32)
{T[n] = T[n] AND 00FFFFFF XOR X}
T(N) = FOpBiner("XOR", FOpBiner("AND", T(N), _
FHexToBiner("00FFFFFF"), 32), X, 32)
Next N
{7. Inisialisasi nilai untuk beberapa variabel berikut} T(256) = T(0)
X = FOpBiner("AND", X, FDecToBiner(255), 32)
{8. Untuk N = 0 sampai T[255], lakukan proses berikut} For N = 0 To 255
{Temp = (T[n XOR X] XOR X) AND 255}
Temp = T(FBinerToDec(FOpBiner("XOR", FDecToBiner(N), X,
32)))
Temp = FOpBiner("XOR", Temp, X, 32)
Temp = FOpBiner("AND", Temp, FDecToBiner(255), 32)
4.1.2 Algoritma Proses Pembentukan Kunci
Proses pembentukan kunci pada metode WAKE adalah sebanyak n putaran. Banyak
Algoritma proses pembentukan kunci adalah sebagai berikut :
{1. Ubah kunci 128 bit ke biner, pecah menjadi 4 kelompok dan masukkan nilainya ke A[0], B[0], C[0], D[0] masing – masing 32 bit}
X = ""
For N = 1 To Len(pcKunci)
X = X & FormatS(FDecToBiner(Asc(Mid(pcKunci,N, 1))),"0",8)
Next N
Perancangan algoritma untuk fungsi M(X,Y) yang dipakai di dalam proses ini
dalam bentuk sebuah fungsi. Algoritma fungsi M(X,Y) adalah sebagai berikut :
{FUNGSI M(X,Y)}
Public Function FungsiM(pX As String, pY As String) As String
{Temp1 = (X + Y) And 255}
Temp1 = FBinerToDec(FOpBiner("AND", Temp1, "11111111"))
{Temp1 = T[(X + Y) And 255)]}
4.1.3 Algoritma Proses Enkripsi
Proses enkripsi pada metode WAKE adalah melakukan operasi XOR dari plaintext (32 bit) dan kunci (32 bit) untuk menghasilkan ciphertext (32 bit).
Algoritma proses enkripsi adalah sebagai berikut :
{Text untuk di-enkripsi (plaintext)} strPlain = pcEnkripsi
{Ubah plaintext dari karakter ascii ke bentuk biner} X = ""
For N = 1 To Len(strPlain)
X = X & FormatS(FDecToBiner(Asc(Mid(strPlain,N, 1))),"0",8)
Next N
{XOR-kan plaintext dengan kunci}
X = FOpBiner("XOR", X, strKunciBiner, 32)
{Hasil XOR - ubah menjadi karakter ascii} cHasil = ""
For N = 8 To 32 Step 8
cHasil = cHasil & Chr(FBinerToDec(Mid(X, N - 7, 8)))
{Ciphertext– hasil enkripsi} strCipher = cHasil
4.1.4 Algoritma Proses Dekripsi
Proses dekripsi pada metode WAKE adalah melakukan operasi XOR dari ciphertext (32 bit) dan kunci (32 bit) untuk menghasilkan plaintext (32 bit).
Algoritma proses dekripsi adalah sebagai berikut :
{Text untuk di-dekripsi (ciphertext)} strCipher = pcDekripsi
{Ubah ciphertext dari karakter ASCII ke bentuk biner} X = ""
For N = 1 To Len(strCipher)
X = X & FormatS(FDecToBiner(Asc(Mid(strCipher,N,1))),"0",8)
Next N
{XOR-kan ciphertext dengan kunci}
X = FOpBiner("XOR", X, strKunciBiner, 32)
{Hasil XOR - ubah menjadi karakter ascii} cHasil = ""
For N = 8 To 32 Step 8
cHasil = cHasil & Chr(FBinerToDec(Mid(X, N - 7, 8)))
Next N
{Plaintext – hasil dekripsi} strPlain = cHasil
4.2 Implementasi Sistem
Implementasi sistem dalam perangkat lunak pembelajaran ini mencakup spesifikasi
4.2.1 Spesifikasi Perangkat Keras dan Perangkat Lunak
Program ini dijalankan dengan menggunakan perangkat keras (hardware) yang direkomendasikan sebagai berikut :
1. Prosesor Intel Pentium IV 2.26 GHz.
2. Memory 256 MB.
3. Harddisk 40 GB.
4. VGA card 32 MB.
5. Monitor dengan resolusi 1024 X 768 pixel. 6. Keyboard dan Mouse.
Adapun sistem operasi yang direkomendasikan untuk menjalankan aplikasi ini
adalah lingkungan sistem operasi MS-Windows NT/2000/XP.
Sedangkan perangkat lunak aplikasi yang digunakan dalam proses perancangan
perangkat lunak ini adalah aplikasi Adobe Photoshop CS4 dan Microsoft Visual Basic 6.0.
4.2.2 Tampilan Output
Gambar 4.1 Tampilan Form Main
Apabila menu [Teori Kriptografi WAKE] di-klik dan salah satu sub menu teori
dipilih, maka akan muncul form teori yang berisi teori singkat mengenai kriptografi metode WAKE.
Untuk melihat proses pembentukan tabel S-Box, pilih menu ‘Pembelajaran
WAKE’ dan klik sub menu ‘Proses S-Box’. Muncul forminput berikut :
Gambar 4.3 Tampilan Form Input Proses S-Box
Untuk melihat hasil pembentukan tabel S-Box tanpa mengikuti proses secara bertahap, klik pada tulisan biru ‘Lihat Hasil / Tabel S-Box’ di sebelah kiri bawah form, maka akan muncul form berikut :
Apabila user ingin melihat dan mengikuti prosedur kerja proses pembentukan tabel S-Box secara bertahap, maka klik pada tombol ‘Proses kerja S-Box’. Selanjutnya, muncul form‘Proses S-Box’, sebagai berikut :
Gambar 4.5 Tampilan Form Proses S-Box
Untuk melihat proses pembentukan kunci, pilih menu ‘Pembelajaran WAKE’ dan klik sub menu ‘Proses Pembentukan Kunci’. Muncul forminput berikut :
Gambar 4.6 Tampilan Form Input Proses Pembentukan Kunci
Gambar 4.7 Tampilan Form Hasil Pembentukan Kunci
Apabila user ingin melihat dan mengikuti prosedur kerja proses pembentukan kunci secara bertahap, maka klik pada tombol ‘Proses’. Selanjutnya, muncul form
‘Proses Pembentukan Kunci’.
Gambar 4.8 Tampilan Form Proses Pembentukan Kunci
Untuk melihat proses enkripsi, pilih menu ‘Pembelajaran WAKE’ dan klik sub menu ‘Proses Enkripsi’. Muncul forminput berikut :
Klik pada tulisan biru ‘Lihat Tabel S-Box’ di sebelah kiri bawah form akan memunculkan form ‘Tabel S-Box’ pada gambar 4.4, sedangkan klik pada tulisan biru ‘Kunci yang terbentuk’ akan memunculkan form ‘Hasil Pembentukan Kunci’ pada gambar 4.7.
Untuk melihat dan mengikuti prosedur kerja proses enkripsi secara bertahap, maka klik pada tombol ‘Proses’. Selanjutnya, muncul form‘Proses Enkripsi’.
Gambar 4.10 Tampilan Form Proses Enkripsi
Untuk melihat proses dekripsi, pilih menu ‘Pembelajaran WAKE’ dan klik sub menu ‘Proses Dekripsi’. Muncul forminput berikut :
Klik pada tulisan biru ‘Lihat Tabel S-Box’ di sebelah kiri bawah form akan memunculkan form ‘Tabel S-Box’ pada gambar 4.4, sedangkan klik pada tulisan biru ‘Kunci yang terbentuk’ akan memunculkan form ‘Hasil Pembentukan Kunci’ pada gambar 4.7.
Untuk melihat dan mengikuti prosedur kerja proses dekripsi secara bertahap, maka klik pada tombol ‘Proses’. Selanjutnya, muncul form‘Proses Dekripsi’.
Gambar 4.12 Tampilan Form Proses Dekripsi
4.3 Pengujian Perangkat Lunak
Pengujian perangkat lunak adalah elemen kritis dari jaminan kualitas perangkat lunak
dan merepresentasikan spesifikasi, desain dan pengkodean. Dua macam pendekatan
test yaitu :
4.3.1 Black Box Testing
Test case ini bertujuan untuk menunjukkan fungsi perangkat lunak tentang cara
diharapkan dan apakah informasi yang disimpan secara eksternal selalu dijaga
kemutakhirannya.
Tehnik pengujian black-box berfungsi menemukan :
a. Fungsi-fungsi yang tidak benar/hilang;
b. Kesalahan interface;
c. Kesalahan kinerja.
Uji coba Black Box, antara lain :
1. Graph Based Testing;
2. Equivalence Partitioning;
3. Boundary Value Analysist;
4. Comparison Testing.
Tabel 4.1 Tabel Pengujian Black Box
NO. PENGUJIAN TEST CASE HASIL YANG dan akan menampilkan pesan, "Panjang Kunci Harus 16 Karakter"
Jika dipilih Hexadesimal, maka Proses Kerja S-Box akan ditampilkan dalam bentuk Hexadesimal menampilkan Tabel S-Box dari kunci dalam Biner dan Hexadesimal
Sesuai Harapan
1 2 3 4 5 6 Pembentukan Kunci dan akan menampilkan pesan, "Panjang Kunci Harus 16 Karakter" Kunci akan ditampilkan dalam bentuk Biner dan dikerjakan sesuai jumlah putaran yang diinginkan
Sesuai Harapan
VALID
1 2 3 4 5 6
4 Proses Dekripsi Input Ciphertext ≤ karakter
4.3.1 White Box Testing
Pengujian white-box menguji semua statement program.
Uji coba White Box, antara lain :
1. Basis Path Testing (Tom Mc Cabe), terdiri atas :
d. Notasi Diagram Alir;
e. Cyclomatic Complexity;
f. Graph Metrik.
2. Control Structure Testing, terdiri atas :
a. Condition Testing;
b. Data Flow Testing;
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Setelah menyelesaikan Perancangan Perangkat Lunak Pembelajaran Kriptografi
Metode WAKE ini, Penulis mengambil beberapa kesimpulan, yaitu :
1. Perangkat lunak ini menunjukkan setiap langkah dan tahapan proses pembentukan
tabel S-Box, proses pembentukan kunci, proses enkripsi dan proses dekripsi yang terdapat di dalam kriptografi metode WAKE, sehingga dapat membantu
pemahaman atau pembelajaran prosedur kerja atau algoritma dari metode
kriptografi tersebut;
2. Semakin banyak putaran dari proses pembentukan kunci, maka keamanan data
akan semakin terjamin.
5.2 Saran
Penulis ingin memberikan beberapa saran yang mungkin dapat membantu dalam
pengembangan perangkat lunak pembelajaran metoda kriptografi WAKE, yaitu :
2. Metoda WAKE dapat dimodifikasi untuk mempertangguh keamanan dari metoda
tersebut seperti mengganti operasi logika dalam metoda WAKE dengan metoda