ANALISIS DAN PERANCANGAN APLIKASI PESAN RAHASIA MENGGUNAKAN ALGORITMA ONE TIME PAD (OTP) DENGAN PEMBANGKIT BILANGAN ACAK LINEAR CONGRUENTIAL GENERATOR (LCG) SKRIPSI BILQIS 081401072
ANALISIS DAN PERANCANGAN APLIKASI PESAN RAHASIA
MENGGUNAKAN ALGORITMA ONE TIME PAD (OTP)
DENGAN PEMBANGKIT BILANGAN ACAK LINEAR
CONGRUENTIAL GENERATOR (LCG)
SKRIPSI
BILQIS
081401072
PROGRAM STUDI S1 ILMU KOMPUTER
DEPARTEMEN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2012 ANALISIS DAN PERANCANGAN APLIKASI PESAN RAHASIA MENGGUNAKAN ALGORITMA ONE TIME PAD (OTP)
DENGAN PEMBANGKIT BILANGAN ACAK LINEAR CONGRUENTIAL GENERATOR (LCG)
SKRIPSI Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar
Sarjana Komputer BILQIS
081401072 PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN
2012
PERSETUJUAN
Judul : ANALISIS DAN PERANCANGAN APLIKASI PESAN RAHASIA MENGGUNAKAN ALGORITMA ONE TIME PAD (OTP) DENGAN PEMBANGKIT BILANGAN ACAK LINEAR CONGRUENTIAL GENERATOR (LCG)
Kategori : SKRIPSI Nama : BILQIS Nomor Induk Mahasiswa : 081401072 Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen : ILMU KOMPUTER Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN
ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA Diluluskan di Medan, 22 Mei 2012
Komisi Pembimbing : Pembimbing 2 Pembimbing 1 M. Andri Budiman, S.T, M.Comp. Sc Dian Rachmawati, S.Si, M.Kom NIP. 197510082008011001 NIP. 198307232009122004 Diketahui/Disetujui oleh Program Studi S1 Ilmu Komputer Ketua, Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001
PERNYATAAN
ANALISIS DAN PERANCANGAN APLIKASI PESAN RAHASIA MENGGUNAKAN ALGORITMA ONE TIME PAD (OTP)
DENGAN PEMBANGKIT BILANGAN ACAK LINEAR CONGRUENTIAL GENERATOR (LCG)
SKRIPSI Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 22 Mei 2011 Bilqis 081401072
PENGHARGAAN
Alhamdulillah, puji syukur penulis sampaikan kehadirat Allah SWT, yang telah memberikan rahmat dan hidayah-Nya serta segala sesuatunya sehingga dapat menyelesaikan penyusunan skripsi ini sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi S1 Ilmu Komputer Universitas Sumatera Utara. Shalawat dan salam penulis persembahkan kepada Nabi Besar Muhammad SAW.
Pada kesempatan ini penulis juga ingin memberikan ucapan terima kasih yang sebesar-besarnya kepada semua pihak yang telah membantu penulis mulai dari awal pembuatan skripsi sampai selesainya skripsi ini, antara lain kepada: 1.
Ibu Dian Rachmawati, S.Si, M.Kom sebagai Dosen Pembimbing I dan Bapak M. Andri Budiman, S.T, M.Comp.Sc sebagai Dosen Pembimbing II yang telah memberikan bimbingan, saran dan masukan untuk menyempurnakan kajian ini.
2. Dosen Penguji Ibu Maya Silvi Lydia, B.Sc, M.Sc dan Bapak Amer Sharif, S.Si, M.Kom atas saran dan kritikan yang sangat berguna bagi penulis.
3. Ketua dan Sekretaris Program Studi S1 Ilmu Komputer, Bapak Dr. Poltak Sihombing, M.Kom dan Ibu Maya Silvi Lydia, B.Sc, M.Sc.
4. Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara.
5. Seluruh dosen serta pegawai di Program Studi S1 Ilmu Komputer FMIPA USU.
6. Kepada kedua orangtua dan keluarga yang telah memberikan dukungan dan
motivasi, ayahanda M.Ilyas Arafat dan ibunda Fatma yang selalu sabar dalam mendidik dan selalu mendoakan penulis.
7. Kepada teman-teman penulis di Program S-1 Ilmu Komputer USU Medan yang telah banyak membantu memberikan dukungan penulis selama ini.
Penulis menyadari bahwa skripsi ini jauh dari kesempurnaan, oleh karena itu penulis menerima kritik dan saran yang bersifat membangun demi kesempurnaan skripsi ini sehingga dapat bermanfaat bagi kita semua.
Medan, 22 Mei 2012 Penulis
ABSTRAK
Meningkatnya penggunaan teknologi informasi yang menggunakan komputer sebagai medianya, maka keamanan data (pesan) menjadi aspek yang sangat penting dalam sistem teknologi informasi. Salah satu metode yang digunakan untuk menjaga keamanan data tersebut adalah algoritma kriptografi One Time Pad (OTP). OTP dipilih karena merupakan algoritma sederhana dan belum dapat terpecahkan. Kunci yang digunakan pada algoritma ini haruslah kunci yang benar-benar acak sehingga kerahasiaan pesan didalamnya dapat terjamin, maka digunakanlah metode pembangkit bilangan acak Linear Congruential Generator (LCG). Sistem ini dikembangkan dengan menggunakan bahasa pemrograman Matlab 7.5.0. Hasil dari pembahasan ini adalah menghasilkan sebuah aplikasi yang dapat digunakan untuk mengenkripsi dan mendekripsi plaintext menggunakan algoritma OTP dan LCG sebagai pembangkit kunci.
Kata Kunci : Kriptografi, One Time Pad (OTP), Pembangkit Bilangan Acak, Linear
Congruential Generator (LCG)
ANALYSIS AND DESIGN APPLICATION OF SECRET MESSAGE USING
ONE TIME PAD (OTP) ALGORITHM WITH RANDOM NUMBER
GENERATOR OF LINEAR CONGRUENTIAL
GENERATOR (LCG)
ABSTRACT
Because of the increasing usage of information technology that uses computers as medium, then the security data (message) is important aspect in information technology system. One method used to protect data is One Time Pad (OTP) algorithm of cryptography . The OTP is chosen because it is a simple and unbreakable algorithm. Since the key that is used in this algorithm must be truly random so that confidentiality of the data (message) can be assured, so Linear Congruential Generator (LCG) is used as the method of random generator number. The system is implemented by using the program language of Matlab 7.5.0. The result of this study is an application that can be used to encrypt and decrypt a plaintext using OTP algorithm and LCG as key generator.
Keywords : Cryptography, One Time Pad (OTP), Random Numbers Generator, Linear Congruential Generator ( LCG).
Halaman Persetujuan ii
18
2.4 Blok Cipher dan Stream Cipher
11
2.5 Tujuan Kriptografi
12
2.6 Keamanan Algoritma Kriptografi
13
2.7 Pembangkit Bilangan Acak
13
2.8 Pembangkit Bilangan Acak Semu
14
2.9 Linear Congruential Generator (LCG)
16
2.10 One Time Pad (OTP)
2.10.1 Proses Enkripsi dan Dekripsi
2.3.2 Kunci Asimetris
19 Bab 3 Analisis dan Perancangan Sistem
21
3.1 Analisis Algoritma One Time Pad
21
3.2 Analisis Algoritma Linear Congruential Generator
25
3.3 Desain Sistem
28
3.4 Algoritma dan Flowchart Sistem
28
3.4.1 Algoritma dan Flowchart Proses Enkripsi dan dekripsi dari File Teks
31
3.4.2 Algoritma dan Flowchart Proses Pembangkitan Kunci
9
8
Pernyataan iii
2
Penghargaan iv
Abstrak v
Abstract vi
Daftar Isi vii
Daftar Tabel ix
Daftar Gambar x
Bab 1 Pendahuluan
1
1.1 Latar Belakang
1
1.2 Perumusan Masalah
2
1.3 Batasan Masalah
1.4 Tujuan Penelitian
2.3.1 Kunci Simetris
3
1.5 Manfaat Penelitian
3
1.6 Metode Penelitian
3
1.7 Sistematika Penulisan
4 Bab 2 Landasan Teori
6
2.1 Kriptografi
6
2.2 Komponen Kriptografi
7
2.3 Kunci Simetris dan Asimetris
8
33
3.4.3 Algoritma dan Flowchart Proses Enkripsi dan dekripsi dari Keyboard
35
3.5 Diagram Use Case
37
3.6 Perancangan Antarmuka
39
3.6.1 Tampilan Menu Utama
39
3.6.2 Tampilan Enkripsi dan Dekripsi dari File
40
3.6.3 Tampilan Enkripsi dan Dekripsi dari Keyboard
42
3.6.4 Tampilan Bantuan
44 Bab 4 Implementasi dan Pengujian
46
4.1 Implementasi
46
4.2 Pengujian
53 Bab 5 Penutup
58
5.1 Kesimpulan
58
5.2 Saran
59 Daftar Pustaka
60 Lampiran A : Kode Program A-1
DAFTAR TABEL
18
24
24
23
23
22
22
21
3.8 Hasil pembangkitan bilangan acak dengan metode LCG Proses Enkripsi dengan Kunci yang Sama dengan Plaintext Proses Enkripsi dengan Sebuah Kunci Berdasarkan Jumlah Karakter Plaintext yang Berulang Proses Enkripsi dengan Kunci Berdasarkan Sebuah Kata dari Plaintext Proses Enkripsi dengan Konsep Autokey Proses Enkripsi dengan OTP dan LCG Proses Enkripsi dengan OTP dan LCG Proses Enkripsi dengan OTP dan LCG Spesifikasi Use Case Kriptografi
No. Tabel Judul Halaman
3.7
3.6
3.5
3.4
3.3
3.2
3.1
2.1
38
DAFTAR GAMBAR
No.30
6
9
10
16
25
26
26
27
27
33
Flowchart Proses Enkripsi dan Dekripsi dari Keyboard
34
37
38
39
41
43
45
46
47
Diagram Use Case Sistem RancanganTampilan Awal Rancangan Tampilan Enkripsi dan Dekripsi dari File Rancangan Tampilan Enkripsi dan Dekripsi dari Keyboard RancanganTampilan Bantuan Tampilan Menu Utama Tampilan Menu Enkripsi dan Dekripsi dari File Tampilan Memilih File Teks
Proses Pembangkitan Kunci
Gambar Judul Halaman
3.6
2.1
2.2
2.3
2.4
3.1
3.2
3.3
3.4
3.5
3.7
Flowchart Sistem Flowchart Proses Enkripsi dan Dekripsi dari File Teks Flowchart
3.8
3.9
3.10
3.11
3.12
3.13
3.14
4.1
4.2
4.3 Proses - proses kriptografi Kunci simetris Penggunaan kunci asimetris Skema Dasar PRNG Grafik dengan nilai Xo = 30, a=19, b=17, dan m=11 Grafik dengan Xo = 30, a=5, b=31, dan m=11 Grafik dengan Xo = 30, a=13, b=7, dan m=11 Grafik dengan Xo = 30, a=13, b=10, dan m=11 Grafik dengan Xo = 30, a=3, b=23, dan m=11
47
4.4
49
56
55
54
54
53
52
52
51
51
50
50
49
48
4.5
4.18 Tampilan Isi File Teks dan Properties Tampilan Pembangkitan Kunci Tampilan Ciphertext (Kode ASCII) Hasil Enkripsi Tampilan Plaintext Semula Hasil Dekripsi Tampilan Pesan Error untuk Mempersingkat Plaintext Tampilan Pesan Error untuk Inputan Numerik Tampilan Menu Enkripsi dan Dekripsi dari Keyboard Tampilan Menu Bantuan Tampilan Pesan Pilihan Keluar dari Sistem Tampilan Menu Enkripsi dan Dekripsi dari Keyboard (1) Tampilan Kunci yang Telah Dibangkitkan dan Disimpan dalam random key.txt Tampilan Ciphertext yang Disimpan dalam ciphertext.txt Tampilan Menu Enkripsi dan Dekripsi dari Keyboard (2) Tampilan Menu Enkripsi dan Dekripsi dari Keyboard (3) Tampilan Menu Enkripsi dan Dekripsi dari Keyboard (4)
4.17
4.16
4.15
4.14
4.13
4.12
4.11
4.10
4.9
4.8
4.7
4.6
57