Perancangan Perangkat Lunak Pembelajaran Kriptografi Metoda Wake

(1)

KRIPTOGRAFI METODA WAKE

SKRIPSI

LISTIA ANDHARTI

100823016

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SUMATERA UTARA

MEDAN

2013


(2)

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

MEDAN

2013


(3)

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,

Prof. Drs. Tulus, Vordipl.Math., M.Si., Ph.D NIP. 19620901 198803 1 002


(4)

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

LISTIA ANDHARTI 100823016


(5)

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;


(6)

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


(7)

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.


(8)

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.


(9)

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


(10)

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.1.3 Proses Enkripsi 26

3.1.4 Proses Dekripsi 27

3.2 Perancangan 27

3.2.1 Form Main 31

3.2.2 Form Teori 34

3.2.3 Form Input Proses S-Box 35

3.2.4 Form Proses S-Box 36

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


(11)

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


(12)

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)


(13)

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.1 Waterfall Model 27

Gambar 3.2 Flowchart Proses Enkripsi 29 Gambar 3.3 Flowchart Proses Dekripsi 30

Gambar 3.4 Rancangan Form Main 32

Gambar 3.5 Rancangan Form Teori 34

Gambar 3.6 Rancangan Form Input Proses S-Box 35 Gambar 3.7 Rancangan Form Proses S-Box 36 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

Gambar 3.15 Rancangan Form About 45

Gambar 4.1 Tampilan Form Main 53

Gambar 4.2 Tampilan Form Teori 53

Gambar 4.3 Tampilan Form Input Proses S-Box 54 Gambar 4.4 Tampilan Form Tabel S-Box 54 Gambar 4.5 Tampilan Form Proses S-Box 55 Gambar 4.6 Tampilan Form Input Proses Pembentukan Kunci 55 Gambar 4.7 Tampilan Form Hasil Pembentukan Kunci 56 Gambar 4.8 Tampilan Form Proses Pembentukan Kunci 56 Gambar 4.9 Tampilan Form Input Proses Enkripsi 56 Gambar 4.10 Tampilan Form Proses Enkripsi 57 Gambar 4.11 Tampilan Form Input Proses Dekripsi 57 Gambar 4.12 Tampilan Form Proses Dekripsi 58


(14)

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.


(15)

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.


(16)

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 cepat implementasinya pada perangkat lunak.


(17)

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;


(18)

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 perangkat lunak.


(19)

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 pengirim yang tertera dan sebaliknya.


(20)

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 proses mengembalikan cipherteks menjadi plainteksvdinamakan dekripsi.


(21)

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)


(22)

(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. Sedangkan kunci rahasia digunakan untuk mendekripsi pesan. Kunci publik bersifat


(23)

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,


(24)

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


(25)

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

XOR adalah operasi Exclusive-OR yang dilambangkan dengan tanda “”. Aturan operasi XOR dapat dirumuskan seperti tabel berikut ini :


(26)

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.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 11000110 >> 2 : 00110001


(27)

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[0] : 726a8f3b (dalam heksadesimal) TT[1] : e69a3b5c (dalam heksadesimal)


(28)

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]

Z = T[59] OR (01000001h) Z = Z AND (FF7FFFFFh) X = (X AND FF7FFFFFh) + Z

6. Untuk T[0] … T[255], lakukan proses berikut : X = (X AND FF7FFFFFh) + Z

T[n] = T[n] AND 00FFFFFFh XOR X

7. Inisialisasi nilai untuk beberapa variabel berikut ini : T[256] = T[0]

X = X AND 255

8. 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]

T[2] = K[2] T[3] = K[3]


(29)

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

D

C

B

A

M

M

M

M

C P

K

i

i

i


(30)

Keterangan : P = Plaintext K = Key C = Ciphertext M = Fungsi M

i = Dimulai dari 0 sampai n.

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 C = P  K dengan :

P = Plaintext K = Key C = Ciphertext

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 Di = Bagian keempat dari pecahan kunci


(31)

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

Jenis pemakaian ini disebut dengan Computer Managed Instruction (CMI), dimana komputer digunakan untuk mengatur kemajuan peserta pelatihan dan


(32)

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 (artificial intelligence). Socratic mampu melakukan interaksi dalam natural language dan bisa memahami apa yang ditanyakan pengguna. [4]


(33)

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 :

Misalkan inputkey= ‘SELAMAT PAGI, BU’, maka proses pembentukan tabel S-Box dalam heksadesimal adalah sebagai berikut :


(34)

1. Inisialisasi nilai TT[0] ... TT[7].

TT[0] = 726A8F3B (dalam heksadesimal) TT[1] = E69A3B5C

TT[2] = D3C71FE5 TT[3] = AB3C73D2 TT[4] = 4D3A8EB3 TT[5] = 0396D6E8 TT[6] = 3D4C2F7A TT[7] = 9EE27CF3

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

E 69 45

L 76 4C

A 65 41

M 77 4D

A 65 41

T 84 54

(spasi) 32 20

P 80 50

A 65 41

G 71 47

I 73 49

, 44 2C

(spasi) 32 20

B 66 42

U 85 55

Kunci (dalam heksa) = 53454C414D415420504147492C204255 T[0] = K[0] = 53454C41


(35)

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

-> X = T[0] + T[3] = 53454C41 + 2C204255 = 7F658E96 -> X >> 3 (Shift Right 3 bit) = 7F658E96 >> 3 = 0FECB1D2 X AND 7 = 7F658E96 AND 7(10) = 6

T[4] = X >> 3 XOR TT[X AND 7] = 0FECB1D2 XOR TT[6] = 32A09EA8

n = 5

-> X = T[1] + T[4] = 4D415420 + 32A09EA8 = 7FE1F2C8 -> X >> 3 (Shift Right 3 bit) = 7FE1F2C8 >> 3 = 0FFC3E59 X AND 7 = 7FE1F2C8 AND 7(10) = 0

T[5] = X >> 3 XOR TT[X AND 7] = 0FFC3E59 XOR TT[0] = 7D96B162

n = 6

-> X = T[2] + T[5] = 50414749 + 7D96B162 = CDD7F8AB -> X >> 3 (Shift Right 3 bit) = CDD7F8AB >> 3 = 19BAFF15 X AND 7 = CDD7F8AB AND 7(10) = 3

T[6] = X >> 3 XOR TT[X AND 7] = 19BAFF15 XOR TT[3] = B2868CC7 (dan seterusnya hingga n = 255)

4. Untuk n = 0 sampai 22, lakukan prosedur berikut :

n = 0

T[0] = T[0] + T[89] = 53454C41 + 1E1B65BB = 7160B1FC

n = 1

T[1] = T[1] + T[90] = 4D415420 + 98318522 = E572D942 X = T[n-4] + T[n-1]

T[n] = X>>3 XOR TT(X AND 7)


(36)

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]


(37)

n = 0

Temp = T[188] XOR X AND 255 = 16EA18EE XOR 000000BC AND 255 = 00000052

T[0] = T[82] = 78EA2B3C T[188] = T[1] = 15E23804

n = 1

Temp = T[189] XOR X AND 255 = 89BBFFAF XOR 000000BC AND 255 = 00000013

T[1] = T[19] = 2B877278 T[188] = T[2] = 88499140 n = 2

Temp = T[190] XOR X AND 255 = FC52321B XOR 000000BC AND 255 = 000000A7

T[2] = T[167] = A790EE98 T[188] = T[3] = FBB504D5 n = 3

Temp = T[191] XOR X AND 255 = 6F67E974 XOR 000000BC AND 255 = 000000C8

T[3] = T[200] = 7A2C1865 T[188] = T[4] = 6EB24F72

(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)


(38)

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

B(0) = 4D415420 C(0) = 50414749 D(0) = 2C204255

--- KUNCI PUTARAN 1 ---

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


(39)

--- 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


(40)

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


(41)

--- 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.


(42)

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


(43)

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 secara menyeluruh.


(44)

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

SIMPAN SIMPAN


(45)

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


(46)

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

Form Main berfungsi sebagai form utama perangkat lunak dan memiliki beberapa menu, yaitu : menu ‘File’ untuk melakukan operasi file (save atau open), menu ‘Teori’ untuk menampilkan teori pembelajaran, menu ‘Pembelajaran’ untuk menunjukkan proses – proses yang dikerjakan dan menu ‘Tentang’ untuk menampilkan data – data pembuat perangkat lunak.


(47)

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 :

a. Sub menu ‘Buka Data’, berfungsi untuk membuka data (kunci, plaintext dan ciphertext) yang telah disimpan sebelumnya.


(48)

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 formInput

Proses S-Box’.

b. Sub menu ‘Proses Pembentukan Kunci’, berfungsi untuk menampilkan formInputProses Pembentukan Kunci’.

c. Sub menu ‘Proses Enkripsi’, berfungsi untuk menampilkan formInput

Proses Enkripsi’.

d. Sub menu ‘Proses Dekripsi’, berfungsi untuk menampilkan formInput

Proses Dekripsi’.


(49)

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.

5 : tombol ‘Keluar’, berfungsi untuk keluar dari form‘Teori’ dan kembali ke formMain’.


(50)

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’.

7 : tombol ‘Proses kerja S-Box’, berfungsi untuk menampilkan form‘Proses S-Box’. 8 : tombol ‘Keluar’, berfungsi untuk keluar dari form‘Input Proses S-Box’ dan kembali ke form‘Main’.


(51)

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.


(52)

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’.

10 : tombol ‘Keluar’, berfungsi untuk keluar dari form‘Proses Pembentukan Kunci’ dan kembali ke formMain’.


(53)

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.


(54)

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 formMain’.

8 : tombol ‘Proses’, berfungsi untuk menampilkan form ‘Proses Enkripsi / Dekripsi’.


(55)

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.

6 : textbox dan updown sebagai tempat pengisian banyaknya putaran untuk menghasilkan kunci.


(56)

7 : tombol ‘Keluar’, berfungsi untuk keluar dari form‘Input Proses Dekripsi’ dan kembali ke formMain’.

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


(57)

(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.

10 : tombol ‘Cetak’, berfungsi untuk mencetak hasil eksekusi. 11 : tombol ‘Keluar’, berfungsi untuk keluar dari form.


(58)

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.

4 : vertical scroll bar, untukmenggulung (scroll) tabel S-Box secara horizontal. 5 : tombol ‘Keluar’, berfungsi untukkeluar dari form ‘Tabel S-Box’.


(59)

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.

5 : label, untukmenampilkan hasil pembentukan kunci dalam bentuk biner. 6 : label, untukmenampilkan hasil pembentukan kunci dalam bentuk heksa. 7 : tombol ‘OK’, berfungsi untuk keluar dari form.


(60)

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.


(61)

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(5) = FHexToBiner("0396d6e8")


(62)

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

{X = T[n-4] + T[n-1]}

X = FAddBiner(T(N - 4), T(N - 1), 32)

{T[n] = X>>3 XOR TT[X AND 7]}

T(N) = FOpBiner("XOR", FShiftRight(X, 3), _

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), Z, 32)


(63)

{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)

{T[n] = T[Temp]}

T(N) = T(FBinerToDec(Temp))

{T[X] = T[n+1]}

T(FBinerToDec(X)) = T(N + 1) Next N

4.1.2 Algoritma Proses Pembentukan Kunci

Proses pembentukan kunci pada metode WAKE adalah sebanyak n putaran. Banyak putaran (besar n) ditentukan oleh user. Hasil pembentukan kunci berbeda untuk setiap putaran.


(64)

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

A(0) = Mid(X, 1, 32) B(0) = Mid(X, 33, 32) C(0) = Mid(X, 65, 32) D(0) = Mid(X, 97, 32)

{Putaran kunci – n putaran}

For N = 1 To pnPutaran

A(N) = FungsiM(A(N - 1), D(N - 1)) B(N) = FungsiM(B(N - 1), A(N)) C(N) = FungsiM(C(N - 1), B(N)) D(N) = FungsiM(D(N - 1), C(N)) Next N

{Kunci yang terbentuk = D} strKunciBiner = D(N - 1)

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 Dim Temp As String

Dim Temp1 As String

{Temp1 = X + Y}

Temp1 = FAddBiner(pX, pY, 32)

{Temp = Temp1 Shift >> 8 kali}

Temp = FShiftRight(Temp1, 8)


(65)

{Temp1 = (X + Y) And 255}

Temp1 = FBinerToDec(FOpBiner("AND", Temp1, "11111111")) {Temp1 = T[(X + Y) And 255)]}

Temp1 = T(Val(Temp1))

{di-XOR T(X + Y)}

Temp = FOpBiner("XOR", Temp, Temp1, 32)

{Kembalikan nilai ke fungsi M}

FungsiM = Temp End Function

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))) Next N


(66)

{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 kebutuhan perangkat keras (hardware) dan spesifikasi perangkat lunak (software).


(67)

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

Klik pada file ‘Wake-Crypto.exe’ untuk menjalankan perangkat lunak. Setelah itu akan muncul tampilan formMain’. FormMain’ memiliki menu - menu yang digunakan untuk memanggil form sesuai dengan fungsi perangkat lunak pembelajaran.


(68)

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.


(69)

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 :


(70)

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

Klik pada tulisan biru ‘Lihat Tabel S-Box’ di sebelah kiri bawah form akan memunculkan form‘Tabel S-Box’ pada gambar 4.4. Untuk melihat hasil pembentukan kunci tanpa mengikuti proses secara bertahap, klik pada tulisan biru ‘Kunci yang terbentuk’ di sebelah kiri bawah form, maka akan muncul form berikut :


(71)

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 :


(72)

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 :


(73)

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 beroperasinya, apakah pemasukan data keluaran telah berjalan sebagaimana yang


(74)

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

DIHARAPKAN

HASIL

PENGUJIAN KESIMPULAN

1 2 3 4 5 6

1 Proses S-Box Input Kunci ≠ 6 karakter

Sistem akan menolak akses Proses Kerja S-Box dan akan menampilkan pesan, "Panjang Kunci Harus 16 Karakter"

Sesuai Harapan

VALID

Input Kunci ≠ 6 karakter

Sistem menerima perintah & menampilkan Proses Kerja S-Box

Sesuai Harapan

VALID

Pilih output bit akan ditampilkan dalam Biner atau Hexadesimal

Jika dipilih Biner, maka Proses Kerja S-Box akan ditampilkan dalam bentuk Biner

Sesuai Harapan

VALID

Jika dipilih Hexadesimal, maka Proses Kerja S-Box akan ditampilkan dalam bentuk Hexadesimal

Sesuai Harapan

VALID

Lihat Hasil Tabel S-Box

Sistem akan menampilkan Tabel S-Box dari kunci dalam Biner dan Hexadesimal

Sesuai Harapan


(75)

1 2 3 4 5 6

2 Proses Pembentukan Kunci

Input Kunci ≠ 6 karakter

Sistem akan menolak akses Proses Pembentukan Kunci dan akan menampilkan pesan, "Panjang Kunci Harus 16 Karakter"

Sesuai Harapan

VALID

Input Kunci = 16 karakter

Sistem menerima perintah dan menampilkan Proses Pembentukan Kunci

Sesuai Harapan

VALID

Pilih output bit akan ditampilkan dalam Biner atau Hexadesimal dan tentukan berapa putaran untuk Proses

Pembentukan Kunci

Jika dipilih Biner, maka Proses Pembentukan Kunci akan ditampilkan dalam bentuk Biner dan dikerjakan sesuai jumlah putaran yang diinginkan

Sesuai Harapan

VALID

Jika dipilih Hexadesimal, maka Proses Pembentukan Kunci akan ditampilkan dalam bentuk Hexadesimal dan dikerjakan sesuai jumlah putaran yang diinginkan

Sesuai Harapan

VALID

Lihat Kunci Yang Terbentuk

Sistem akan menampilkan bit kunci yang terbentuk dari kunci yang diinput dalam Biner dan Hexadesimal sesuai dengan jumlah putaran

Sesuai Harapan

VALID

3 Proses Enkripsi Input Plaintext ≤ 32 karakter

Sistem akan menolak perintah dan akan menampilkan pesan, "Panjang Kunci Harus 16 Karakter"

Sesuai Harapan

VALID Input Kunci ≠ 6

karakter

Input Plaintext ≤ 32 karakter

Sistem akan menampilkan Proses Enkripsi

Sesuai Harapan

VALID

Input Kunci = 16 karakter


(76)

1 2 3 4 5 6

4 Proses Dekripsi Input Ciphertext ≤ karakter

Sistem akan menolak perintah dan akan menampilkan pesan, "Panjang Kunci Harus 16 Karakter"

Sesuai Harapan

VALID Input Kunci ≠ 6

karakter

Input Plaintext ≤ 32 karakter

Sistem akan menampilkan Proses Dekripsi

Sesuai Harapan

VALID

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; c. Loop Testing


(77)

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 :

1. Perangkat lunak dapat ditambahkan fasilitas Multimedia agar lebih menarik dan lebih mendukung pembelajaran metoda WAKE;


(78)

2. Metoda WAKE dapat dimodifikasi untuk mempertangguh keamanan dari metoda tersebut seperti mengganti operasi logika dalam metoda WAKE dengan metoda rancangan sendiri.


(79)

DAFTAR PUSTAKA

Jusuf, K. 2002. Keamanan Internet dan Jaringan Komunikasi, Bandung : Informatika.

Ario. S. 2001. Microsoft Visual Basic 6.0. Jakarta : PT. Elex Media Komputindo.

Sodhi, Jag. 1991. Software Engineering Methods, Management, and CASE Tools,

TAB Professional dan Reference Books. Amerika.

Stalling, W. 1998. Cryptography and Network Security, Principle and Practice Second Edition, Perason Education, Inc.

Pudovkina, M. 2007. Analysis of chosen plaintext attacks on the WAKE Stream

Cipher. Moscow : Moscow Engineering Physics Institute (Technical

University) Department of Cryptology and Discrete Mathematics.

Wheeler, D. J. 1993. A Bulk Data Encryption Algorithm. U.K : Computer Laboratory Cambridge University.

http://www.pengertiandaninfo.blogspot.com/2012/08/istilah-dalam-kriptografi.html. Diakses tanggal 16 September 2012


(80)

LAMPIRAN A :

Tabel ASCII (American Standard Code for


(81)

(1)

61

1 2 3 4 5 6

4 Proses Dekripsi Input Ciphertext ≤ karakter

Sistem akan menolak perintah dan akan menampilkan pesan, "Panjang Kunci Harus 16 Karakter"

Sesuai Harapan

VALID Input Kunci ≠ 6

karakter

Input Plaintext ≤ 32 karakter

Sistem akan

menampilkan Proses Dekripsi

Sesuai Harapan

VALID

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; c. Loop Testing


(2)

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


(3)

63 2. Metoda WAKE dapat dimodifikasi untuk mempertangguh keamanan dari metoda tersebut seperti mengganti operasi logika dalam metoda WAKE dengan metoda rancangan sendiri.


(4)

DAFTAR PUSTAKA

Jusuf, K. 2002. Keamanan Internet dan Jaringan Komunikasi, Bandung : Informatika.

Ario. S. 2001. Microsoft Visual Basic 6.0. Jakarta : PT. Elex Media Komputindo.

Sodhi, Jag. 1991. Software Engineering Methods, Management, and CASE Tools, TAB Professional dan Reference Books. Amerika.

Stalling, W. 1998. Cryptography and Network Security, Principle and Practice Second Edition, Perason Education, Inc.

Pudovkina, M. 2007. Analysis of chosen plaintext attacks on the WAKE Stream Cipher. Moscow : Moscow Engineering Physics Institute (Technical University) Department of Cryptology and Discrete Mathematics.

Wheeler, D. J. 1993. A Bulk Data Encryption Algorithm. U.K : Computer Laboratory Cambridge University.

http://www.pengertiandaninfo.blogspot.com/2012/08/istilah-dalam-kriptografi.html. Diakses tanggal 16 September 2012


(5)

65

LAMPIRAN A :

Tabel ASCII (American Standard Code for


(6)