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