UNIVERSITAS BINA NUSANTARA ______________________________________________________________________________
Program Ganda T. Informatika - Matematika Skripsi Sarjana Program Ganda Semester Genap 2006/2007
PERANCANGAN PROGRAM APLIKASI KRIPTOGRAFI DENGAN MENGGUNAKAN ALGORITMA TWOFISH Jeffry Ryzaldy NIM: 0600653152
Abstrak Saat ini perkembangan teknologi berkembang pesat yang menyebabkan tingkat ancaman dalam keamanan menjadi semakin tinggi. Informasi yang ingin diberikan pihak tertentu kepada pihak lain melalui data digital menjadi tidak aman disebabkan adanya pihak yang memiliki kemampuan untuk mencuri atau merubah informasi data tersebut, dengan menggunakan kriptografi diharapkan dapat mengatasi masalah ini. Tujuan perancangan adalah untuk menghasilkan program aplikasi kriptografi yang dapat menjaga informasi yang ingin disampaikan agar tidak dapat dibaca atau diubah oleh pihak yang tidak diinginkan. Program aplikasi kriptografi ini akan menggunakan algoritma Twofish, algoritma ini adalah algoritma kriptografi yang menggunakan key simetris berjenis block cipher. Block cipher adalah suatu fungsi yang memetakan n-bit blok dari plaintext ke dalam nbit blok ciphertext dimana n adalah panjang blok, Twofish menggunakan block cipher yang berukuran 128 bit. Twofish menggunakan Feistel Network seperti kebanyakan algoritma pada block cipher namun untuk meningkatkan tingkat keamanan maka algoritma ini menambahkan whitening pada awal dan akhir proses dan perputaran bit pada setiap putaran Feistel. Twofish dapat dikatakan sebagai 8 cycle Feistel Network dengan fungsi bijektif. Hasil dari penelitian ini adalah suatu program aplikasi yang dapat melakukan proses enkripsi maupun dekripsi menggunakan algoritma Twofish. Aplikasi ini di uji dengan menggunakan berbagai macam data informasi guna mengetahui waktu yang diperlukan dan kemampuan dari aplikasi ini. Karena program aplikasi ini menggunakan user interface yang user friendly maka aplikasi ini dapat digunakan oleh berbagai kalangan bahkan untuk kalangan awam sekalipun. Namun program ini memiliki waktu proses yang cukup lama untuk file yang berukuran lebih dari 10 MB. Kata Kunci: Kriptografi, Enkripsi, Dekripsi, Simetris, Block Cipher, AES, Algoritma, Twofish.
v
KATA PENGANTAR
Puji Syukur penulis panjatkan terhadap kehadiran Tuhan Yang Maha Esa atas rahmat dan petunjuk yang telah diberikan oleh-Nya sehingga penulis dapat mengerjakan dan menyelesaikan penulisan skripsi ini dengan baik. Adapun maksud dan tujuan dari penulisan skripsi ini adalah untuk memenuhi salah satu syarat dalam mendapatkan gelar Sarjana Jenjang Strata Satu pada Program Ganda Fakultas MIPA Jurusan Matematika, Universitas Bina Nusantara. Dalam kesempatan ini penulis dengan tulus hati ingin mengucapkan terima kasih yang sebesar-besarnya kepada semua pihak yang telah memberikan bantuan baik dari segi moral maupun spiritual yang sangat bermanfaat bagi penulis dalam penyusunan skripsi ini. Ucapan terima kasih ini, penulis tujukan kepada:
1. Bapak Prof. Dr. Geraldus Polla, M.App.Sc., selaku rektor Universitas Bina Nusantara, yang telah berkenan memberikan kesempatan untuk menuntut ilmu kepada penulis di Universitas yang berada di bawah pimpinan beliau. 2. Bapak Wikaria Gazali, S.Si., MT., selaku Dekan Fakultas MIPA Universitas Bina Nusantara atas perhatian, pertolongan dan pengajaran yang telah diberikan selama ini. 3. Bapak Drs. Ngarap Imanuel Manik, M.Kom., selaku Ketua Jurusan Matematika Fakultas MIPA Universitas Bina Nusantara atas perhatian, pertolongan dan pengajaran yang telah diberikan selama ini. 4. Bapak Rojali, S. Si., selaku Sekretaris Jurusan Matematika Fakultas MIPA Universitas Bina Nusantara atas perhatian, pertolongan dan pengajaran yang telah diberikan selama ini. 5. S. Liawatimena, Pgdip.App.Sci., Dr, selaku Dosen Pembimbing kesatu yang telah banyak memberikan bantuan dan bimbingan yang diberikan selama masa penyusunan skripsi ini serta atas ide, pengertian, pengajaran, pertolongan dan kesabarannya yang memudahkan skripsi ini terselesaikan tepat pada waktunya.
vi
6. Mangasi Alion Marpaung, Drs., M.Si., Dr., selaku Dosen Pembimbing kedua yang telah banyak memberikan bantuan dan bimbingan yang diberikan selama masa penyusunan skripsi ini serta atas pengertian, pengajaran, pertolongan dan kesabarannya yang memudahkan skripsi ini terselesaikan tepat pada waktunya. 7. Seluruh Dosen Universitas Bina Nusantara yang selama ini telah memberikan ilmu dan bimbingan akademis kepada penulis dari awal hingga akhir perkuliahan. 8. Keluarga penulis atas doa, kasih, kesabaran, dan dukungan yang diberikan kepada penulis selama penyusunana skripsi ini. 9. Teman-teman jurusan ganda Teknik Informatika – Matematika atas dukungan dan bantuannya yang diberikan kepada penulis selama ini. 10. Pihak-pihak lain yang tidak dapat disebutkan satu persatu yang telah mendukung dan membantu penulis dalam penyelesaian skripsi ini.
Penulis menyadari bahwa skripsi ini masih jauh dari sempurna, karena keterbatasan kemampuan dan pengetahuan penulis. Oleh karenanya, penulis mohon maaf dan harap maklum serta pengertian dari pembaca jika menemukan kesalahankesalahan dalam penulisan kata-kata pada skripsi ini. Penulis berharap agar skripsi ini berguna dapat memberikan masukan yang positif bagi setiap pihak.
Jakarta, 7 Juli 2007
Penulis
vii
DAFTAR ISI Halaman Halaman Judul Luar ..................................................................................................... i Halaman Judul Dalam.................................................................................................. ii Halaman Persetujuan Hardcover.................................................................................. iii Pernyataan Dewan Penguji .......................................................................................... iv Abstrak ......................................................................................................................... v Kata Pengantar ............................................................................................................. vi Daftar Isi ...................................................................................................................... viii Daftar Tabel ................................................................................................................. x Daftar Gambar.............................................................................................................. xi Daftar Lampiran........................................................................................................... xiii BAB 1 PENDAHULUAN ........................................................................................ 1 1.1
Latar Belakang ..................................................................................... 1
1.2
Perumusan Masalah ............................................................................. 2
1.3 Ruang Lingkup..................................................................................... 2 1.4
Tujuan dan Manfaat ............................................................................. 2 1.4.1 Tujuan ......................................................................................... 2 1.4.2 Manfaat ....................................................................................... 2
1.5 Metodologi Penelitian ............................................................................. 3 BAB 2 LANDASAN TEORI.................................................................................... 4 2.1
Kriptografi............................................................................................ 4 2.1.1 Sejarah Singkat ........................................................................... 6 2.1.2 Kriptografi Public-key atau Asimetris ........................................ 6 2.1.3 Kriptografi Simetris .................................................................... 7 2.1.4 Kriptografi simetris dibandingkan dengan Kriptografi asimetris 9
2.2
Algoritma Twofish................................................................................ 11 2.2.1 Key Schedule ............................................................................... 16 2.2.2 Expanded Key ............................................................................. 17 2.2.2.1 Fungsi h........................................................................... 18
viii
2.2.2.2 Permutasi q0 dan q1 ......................................................... 21 2.2.3 Langkah Utama ........................................................................... 21 2.2.3.1 Fungsi F .......................................................................... 22 2.2.3.2 Fungsi g........................................................................... 23 2.2.4 Algoritma Dekripsi Twofish........................................................ 24 2.3
ROL dan ROR...................................................................................... 24
2.4
Interaksi Manusia dan Komputer......................................................... 25
2.5
Rekayasa Piranti Lunak ....................................................................... 27 2.5.1 State Transition Diagram (STD) ................................................ 28 2.5.2 Spesifikasi Proses........................................................................ 29
BAB 3 PERANCANGAN PROGRAM.................................................................... 30 3.1
Struktur Menu ...................................................................................... 30
3.2
State Transition Diagram (STD) ......................................................... 31
3.3
Rancangan Layar.................................................................................. 35
3.4
Spesifikasi Modul ................................................................................ 40
BAB 4 IMPLEMENTASI DAN EVALUASI .......................................................... 45 4.1
Kebutuhan Perangkat ........................................................................... 45 4.1.1 Perangkat Keras .......................................................................... 45 4.1.2 Piranti Lunak............................................................................... 45
4.2
Tampilan dan Cara Pengoperasian Program Aplikasi ......................... 46
4.3
Pengujian Program Aplikasi ................................................................ 62
4.4
Evaluasi Program Aplikasi................................................................... 69
BAB 5 SIMPULAN DAN SARAN .......................................................................... 77 5.1 Simpulan ................................................................................................. 77 5.2 Saran........................................................................................................ 78 DAFTAR PUSTAKA .................................................................................................. 79 RIWAYAT HIDUP...................................................................................................... 80 LAMPIRAN................................................................................................................. L-1
ix
DAFTAR TABEL Halaman Tabel 4.1
Pengujian Program Aplikasi ................................................................... 68
Tabel 4.2
Tabel Enkripsi ......................................................................................... 73
Tabel 4.3
Tabel Dekripsi......................................................................................... 74
x
DAFTAR GAMBAR
Halaman Gambar 2.1 Enkripsi dengan teknik public key.............................................................. 7 Gambar 2.2 Enkripsi dengan kriptografi simetris........................................................... 8 Gambar 2.3 Bentuk umum Feistel Network ................................................................... 12 Gambar 2.4 Twofish ....................................................................................................... 15 Gambar 2.5 Fungsi h....................................................................................................... 20 Gambar 2.6 State............................................................................................................. 29 Gambar 2.7 State Transition ........................................................................................... 29 Gambar 3.1 Rancangan Struktur Menu Utama............................................................... 30 Gambar 3.2 Rancangan Struktur File.............................................................................. 31 Gambar 3.3 Rancangan Struktur Tools........................................................................... 31 Gambar 3.4 STD Menu utama ........................................................................................ 32 Gambar 3.5 STD Menu File............................................................................................ 33 Gambar 3.6 STD Menu Tools......................................................................................... 34 Gambar 3.7 STD Option ................................................................................................. 35 Gambar 3.8 Rancangan layar Menu Utama (Enkripsi)................................................... 36 Gambar 3.9 Rancangan layar Menu Utama (Dekripsi)................................................... 38 Gambar 3.10 Rancangan layar option............................................................................. 39 Gambar 3.11 Rancangan layar How To Use dan About................................................. 40 Gambar 4.1 Layar Menu Utama ..................................................................................... 46 Gambar 4.2 Layar About ................................................................................................ 47 Gambar 4.3 Menu Tools ................................................................................................. 48 Gambar 4.4 Menu File .................................................................................................... 48 Gambar 4.5 Dialog Open ................................................................................................ 49 Gambar 4.6 Layar Menu Utama mode Enkripsi ............................................................. 50 Gambar 4.7 Layar Option ............................................................................................... 50 Gambar 4.8 Select Directory Dialog............................................................................... 51 Gambar 4.9 Layar Error .................................................................................................. 52 xi
Gambar 4.10 Layar Peringatan ....................................................................................... 53 Gambar 4.11 Layar Konfirmasi ...................................................................................... 53 Gambar 4.12 Proses Enkripsi selesai .............................................................................. 54 Gambar 4.13 Layar Konfirmasi ...................................................................................... 55 Gambar 4.14 Layar Menu Utama mode Dekripsi........................................................... 56 Gambar 4.15 Layar Error ............................................................................................... 57 Gambar 4.16 Layar Peringatan ....................................................................................... 58 Gambar 4.17 Proses Dekripsi.......................................................................................... 59 Gambar 4.18 Proses Dekripsi selesai.............................................................................. 60 Gambar 4.19 Layar Informasi......................................................................................... 60 Gambar 4.20 Layar Konfirmasi ...................................................................................... 61 Gambar 4.21 Dialog Save ............................................................................................... 62 Gambar 4.22 Grafik Perbandingan Waktu Enkripsi dan Dekripsi pada file “ViewProfile.htm” ..................................................................................... 69 Gambar 4.23 Grafik Perbandingan Waktu Enkripsi dan Dekripsi pada file “other.jpg” 69 Gambar 4.24 Grafik Perbandingan Waktu Enkripsi dan Dekripsi pada file “teks1mb.txt”...................................................................................................... 70 Gambar 4.25 Grafik Perbandingan Waktu Enkripsi dan Dekripsi pada file “other1mb.mp3”................................................................................................... 70 Gambar 4.26 Grafik Perbandingan Waktu Enkripsi dari setiap File .............................. 71 Gambar 4.27 Grafik Perbandingan Waktu Dekripsi dari setiap File .............................. 71 Gambar 4.28 Hasil dekripsi dengan key yang salah ....................................................... 72 Gambar 4.29 Grafik Alur Waktu Enkripsi...................................................................... 75 Gambar 4.30 Grafik Alur Waktu Dekripsi...................................................................... 76
xii
DAFTAR LAMPIRAN
Halaman Lampiran 1
Listing Program (Kriptografi.pas)..................................................... L-1
Lampiran 2
Listing Program (u_option.pas) ........................................................ L-24
xiii