• Tidak ada hasil yang ditemukan

Implementasi enkripsi dan dekripsi menggunakan algoritma one time pad dengan pembangkit bilangan acak Mersenne TWister.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi enkripsi dan dekripsi menggunakan algoritma one time pad dengan pembangkit bilangan acak Mersenne TWister."

Copied!
148
0
0

Teks penuh

(1)

ABSTRAK

Pada dasarnya melakukan pengiriman data tanpa melakukan pengamanan pada konten dari data yang dikirim, dapat menyebabkan adanya penyadapan pada jalur pengirimannya. Data penting yang berformat .txt mudah sekali untuk disadap dan data berformat .doc dapat disandikan menggunakan password namun fitur tersebut memiliki kelemahan yaitu adanya aplikasi yang dapat digunakan untuk membobol file yang telah terenkripsi. Untuk itulah peranan teknologi keamanan informasi benar - benar dibutuhkan. Salah satu teknik untuk pengamanan data adalah dengan menggunakan algoritma penyandian data.

Algoritma One Time Pad merupakan algoritma sederhana dan unbreakable dikarenakan algoritma One Time Pad memiliki barisan kunci acak yang ditambahkan ke pesan plaintext yang tidak acak untuk menghasilkan chipertext yang seluruhnya acak. Kunci acak tersebut dibangkitkan menggunakan metode pembangkit bilangan acak antara lain Mersenne Twister. Mersenne Twister menghasilkan bilangan acak yang memiliki distribusi yang sangat bagus, pembangkitan bilangan yang sangat cepat dan menggunakan memori yang efisien.

Pada tugas akhir ini penulis mencari tahu presentase keberhasilan implementasi algoritma One Time Pad untuk mengenkripsi dan mendekripsi berkas dokumen dalam bentuk .txt,.doc.

Hasil penelitian yang dilakukan sebanyak 10 pengujian memperlihatkan bahwa presentase keberhasilan implementasi algoritma One Time Pad untuk mengenkripsi dan mendekripsi berkas dokumen dalam bentuk .txt,.doc adalah 100% serta lama proses enkripsi dekripsi didasarkan pada randomnya kunci acak yang digunakan dalam proses tersebut.

(2)

ABSTRACT

Basically perform data transmission without providing security on the content of the data sent, may cause tapping on shipping lanes. Important data format easy to be tapped .txt and .doc formatted data can be encrypted using a password but the feature has the disadvantage of their application that can be used to break into files that have been encrypted. For that role of information security technology really - really needed. One technique for data security is to use the data encryption algorithms.

One Time Pad algorithm is an algorithm because the algorithm is simple and unbreakable One Time Pad has rows of random keys that are added to the plaintext message that is not random to produce ciphertext which is entirely random. Random key is generated using a random number generator, among others Mersenne Twister. Mersenne Twister random number which has resulted in a very good distribution, generation numbers are very fast and uses memory efficiently.

In this thesis the author to find out the percentage of successful implementation of One Time Pad algorithm to encrypt and decrypt the document file in the form of .txt, .doc.

Results of research conducted as many as 10 test showed that the percentage of successful implementation of One Time Pad algorithm to encrypt and decrypt the document file in the form of .txt, .doc is 100% and the long process of encryption decryption randomnya based on random keys that are used in the process.

(3)

i

IMPLEMENTASI ENKRIPSI DAN DEKRIPSI

DOKUMEN MENGGUNAKAN ALGORITMA ONE

TIME PAD DENGAN PEMBANGKIT BILANGAN

ACAK MERSENNE TWISTER

Skripsi

Diajukan Untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Komputer Program Studi Teknik Informatika

Oleh:

Fidelis Asterina Surya Prasetya

105314021

PROGRAM STUDI TEKNIK INFORMATIKA

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

(4)

ii

IMPLEMENTATION CONVENTIONAL

ENCRYPTION ALGORITHM USING ONE TIME PAD

WITH THE MERSENNE TWISTER RANDOM

NUMBER GENERATOR

A Thesis

Presented as Partial Fulfillment of the Requirements To Obtain the Sarjana Komputer Degree In Informatics Engineering Study Program

By:

Fidelis Asterina Surya Prasetya

105314021

INFORMATICS ENGINEERING STUDY PROGRAM

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

(5)
(6)
(7)

HALAMAN MOTTO

(8)
(9)
(10)

ABSTRAK

Pada dasarnya melakukan pengiriman data tanpa melakukan pengamanan pada konten dari data yang dikirim, dapat menyebabkan adanya penyadapan pada jalur pengirimannya. Data penting yang berformat .txt mudah sekali untuk disadap dan data berformat .doc dapat disandikan menggunakan password namun fitur tersebut memiliki kelemahan yaitu adanya aplikasi yang dapat digunakan untuk membobol file yang telah terenkripsi. Untuk itulah peranan teknologi keamanan informasi benar - benar dibutuhkan. Salah satu teknik untuk pengamanan data adalah dengan menggunakan algoritma penyandian data.

Algoritma One Time Pad merupakan algoritma sederhana dan unbreakable dikarenakan algoritma One Time Pad memiliki barisan kunci acak yang ditambahkan ke pesan plaintext yang tidak acak untuk menghasilkan chipertext yang seluruhnya acak. Kunci acak tersebut dibangkitkan menggunakan metode pembangkit bilangan acak antara lain Mersenne Twister. Mersenne Twister menghasilkan bilangan acak yang memiliki distribusi yang sangat bagus, pembangkitan bilangan yang sangat cepat dan menggunakan memori yang efisien.

Pada tugas akhir ini penulis mencari tahu presentase keberhasilan implementasi algoritma One Time Pad untuk mengenkripsi dan mendekripsi berkas dokumen dalam bentuk .txt,.doc.

Hasil penelitian yang dilakukan sebanyak 10 pengujian memperlihatkan bahwa presentase keberhasilan implementasi algoritma One Time Pad untuk mengenkripsi dan mendekripsi berkas dokumen dalam bentuk .txt,.doc adalah 100% serta lama proses enkripsi dekripsi didasarkan pada randomnya kunci acak yang digunakan dalam proses tersebut.

(11)

ABSTRACT

Basically perform data transmission without providing security on the content of the data sent, may cause tapping on shipping lanes. Important data format easy to be tapped .txt and .doc formatted data can be encrypted using a password but the feature has the disadvantage of their application that can be used to break into files that have been encrypted. For that role of information security technology really - really needed. One technique for data security is to use the data encryption algorithms.

One Time Pad algorithm is an algorithm because the algorithm is simple and unbreakable One Time Pad has rows of random keys that are added to the plaintext message that is not random to produce ciphertext which is entirely random. Random key is generated using a random number generator, among others Mersenne Twister. Mersenne Twister random number which has resulted in a very good distribution, generation numbers are very fast and uses memory efficiently.

In this thesis the author to find out the percentage of successful implementation of One Time Pad algorithm to encrypt and decrypt the document file in the form of .txt, .doc.

Results of research conducted as many as 10 test showed that the percentage of successful implementation of One Time Pad algorithm to encrypt and decrypt the document file in the form of .txt, .doc is 100% and the long process of encryption decryption randomnya based on random keys that are used in the process.

(12)

KATA PENGANTAR

Puji dan syukur kepada Tuhan Yesus Kristus, atas segala berkat dan karunia sehingga penulis dapat menyelesaikan penelitian tugas akhir dengan judul “Implementasi Enkripsi dan Dekripsi Dokumen Menggunakan Algoritma One Time Pad Dengan Pembangkit Bilangan Acak Mersenne Twister” dengan baik. Tugas ini ditulis sebagai salah satu syarat memperoleh gelar sarjana komputer program studi Teknik Informatika, Fakultas Sains dan Teknologi Universitas Sanata Dharma.

Penelitian ini tidak dapat berjalan dengan baik tanpa adanya dukungan, semangat, motivasi dan bantuan dalam bentuk apapun yang telah diberikan oleh banyak pihak. Untuk itu penulis mengucapkan terimakasih yang sebesar-besarnya kepada:

1. Tuhan Yesus Kristus, dan Bunda Maria, telah memberkati serta membimbing penulis sehingga dapat menyelesaikan tugas akhir ini. 2. Ibu Paulina Heruningsih Prima Rosa, S.Si., M.Sc. selaku Dekan Fakultas

Sains dan Teknologi.

3. Ibu Dr. Anastasia Rita Widiarti, M.Kom selaku Ketua Program Studi Teknik Informatika.

4. Ibu Dr. Anastasia Rita Widiarti, M.Kom selaku dosen pembimbing yang telah dengan sabar membimbing dan memberikan kesabaran, waktu, kebaikan, dan motivasi.

5. Bapak Bambang Soelistijanto, Ph.D dan Bapak Eko Hari Permadi,S.Si., M.Kom selaku dosen penguji atas kritik dan saran yang telah diberikan. 6. Ibu Agnes Maria Polina S.Kom., M.Sc. selaku Dosen Pembimbing

Akademik.

(13)

8. Kedua orang tua tercinta YB. Suryadi dan Tri Yuli Prasetyaningsih. Terimakasih untuk setiap doa, kasih sayang, perhatian, dan dukungan yang selalu diberikan kepada saya.

9. Adik tersayang Balissa Rosarina Surya Prasetya. Terimakasih untuk dukungan yang selalu diberikan kepada saya.

10. Engelbert Eric dan Felisitas Brillianti. Terimakasih untuk segala bantuan yang selalu diberikan kepada saya.

11. Kristoforus Sugiarto Adji Soenarso, S.Farm, Apt. Terimakasih untuk segala dukungan dan bantuan yang selalu diberikan.

12. Verena Pratita Adji, Felisitas Brillianti, Ria Riska Topurmera, dan Yustina Ayu. Terimakasih untuk persahabatan serta dukungan kalian. 13. Seluruh teman-teman kuliah Teknik Informatika 2010 (HMPS).

Terimakasih untuk kebersamaan kita selama menjalani masa perkuliahan.

14. Pihak-pihak lain yang telah membantu penulis dalam menyelesaikan tugas akhir ini, yang tidak dapat disebutkan satu per satu.

Penelitian tugas akhir ini masih memiliki banyak kekurangan. Untuk itu penulis sangat membutuhkan kritik dan saran untuk perbaikan dimasa yang akan datang. Semoga penelitian tugas akhir ini dapat membawa manfaat bagi semua pihak.

Yogyakarta, 18 Januari 2016

(14)

DAFTAR ISI

HALAMAN JUDUL ... i

HALAMAN PERSETUJUAN ... iii

HALAMAN PENGESAHAN ... iv

HALAMAN MOTTO ... v

PERNYATAAN KEASLIAN KARYA ... vi

PERNYATAAN PERSETUJUAN PUBLIKASI ... vii

ABSTRAK ... viii

ABSTRACT ... ix

KATA PENGANTAR ...x

DAFTAR ISI ... xii

DAFTAR GAMBAR ... xv

DAFTAR TABEL ... xvi

BAB I PENDAHULUAN ... 1

1.1 Latar Belakang ... 1

1.2 Rumusan Masalah ... 2

1.3 Tujuan ... 2

1.4 Batasan Masalah ... 3

1.5 Metodologi Penelitian ... 3

1.6 Sistematika Penulisan ... 4

BAB II LANDASAN TEORI ... 5

2.1 Kriptografi ... 5

2.2 Komponen Kriptografi ... 6

2.3 Kunci Simetris dan Asimetris ... 7

2.4 Algoritma One Time Pad ... 8

2.4.1 Proses Enkripsi dan Dekripsi ... 8

2.5 Pembangkit Bilangan Acak ... 9

2.6 Pembangkit Bilangan Acak Semu ... 9

2.7 Mersenne Twister ... 11

(15)

3.1 Enkripsi Pada One Time Pad ... 13

3.1.1 Kebutuhan Input ... 13

3.1.2 Kebutuhan Proses ... 13

3.1.3 Kebutuhan Output ... 13

3.2 Dekripsi Pada One Time Pad ... 13

3.2.1 Kebutuhan Input ... 13

3.2.2 Kebutuhan Proses ... 13

3.2.3 Kebutuhan Output ... 14

3.3 Diagram Alir Sistem ... 14

3.3.1 Diagram Alir Enkripsi ... 14

3.3.2 Diagram Alir Dekripsi ... 15

3.4 Analisis Algoritma One Time Pad ... 16

3.4.1 Algoritma Enkripsi ... 16

3.4.2 Algoritma Dekripsi ... 18

3.4.3 Algoritma Mersenne Twister ... 20

3.5 Perancangan Antar Muka ... 21

3.5.1 Tampilan Halaman Awal ... 21

3.5.2 Tampilan Halaman Enkripsi ... 21

3.5.3 Tampilan Halaman Dekripsi ... 22

3.6 Rancangan Input Dokumen ... 23

3.6.1 Berformat .txt ... 23

3.6.2 Berformat .doc ... 24

BAB IV HASIL DAN PEMBAHASAN ... 25

4.1 Implementasi Antar Muka ... 25

4.1.1 Implementasi Halaman Awal ... 25

4.1.2 Implementasi Halaman Enkripsi ... 26

4.1.3 Implementasi Halaman Dekripsi ... 28

4.2 Hasil Pengujian ... 34

4.3 Pembahasan ... 38

4.3.1 Enkripsi ... 38

(16)

4.4 Analisa ... 42

4.5 Kelebihan Algoritma One Time Pad ... 44

4.6 Kekurangan Algoritma One Time Pad ... 44

BAB V KESIMPULAN DAN SARAN... 45

5.1 Kesimpulan ... 45

5.2 Saran ... 45

DAFTAR PUSTAKA ... 46

(17)

DAFTAR GAMBAR

Gambar 2.1 Enkripsi Dekeripsi Sederhana ... 5

Gambar 2.2 Enkripsi dan Dekripsi dengan Kunci Publik ... 8

Gambar 2.3 Skema PNRG ... 11

Gambar 3.1 Diagram Alir Enkripsi... 15

Gambar 3.2 Diagram Alir Dekripsi ... 16

Gambar 3.3 Algoritma Enkripsi ... 17

Gambar 3.4 Algoritma Dekripsi ... 19

Gambar 3.5 Tampilan Halaman Awal ... 21

Gambar 3.6 Tampilan Halaman Enkripsi... 22

Gambar 3.7 Tampilan Halaman Dekripsi ... 23

Gambar 4.1 Tampilan Halaman Awal ... 25

Gambar 4.2 Kotak Dialog saat Memilih Dokumen ... 26

Gambar 4.3 Tampilan Isi Dokumen dan Kunci Acak... 27

Gambar 4.4 Tampilan Hasil Enkripsi dan Lama Proses ... 27

Gambar 4.5 Tampilan Save Dialog... 28

Gambar 4.6 Pesan Ketika Proses Penyimpanan Hasil Enkripsi Berhasil Dilakukan ... 28

Gambar 4.7 Kotak Dialog saat Memilih Dokumen ... 29

Gambar 4.8 Tampilan Isi Ciphertext dan Kunci Acak yang Tersimpan ... 30

Gambar 4.9 Tampilan Hasil Dekripsi dan Lama Proses ... 30

Gambar 4.10 Tampilan Save Dialog ... 31

(18)

DAFTAR TABEL

Tabel 4.1 Kandidat Plaintext berformat .txt ... 33

Tabel 4.2 Kandidat Kunci untuk Plaintext berformat .txt ... 34

Tabel 4.3 Kandidat Plaintext berformat .doc ... 34

Tabel 4.4 Kandidat Kunci untuk Plaintext berformat .doc ... 35

Tabel 4.5 Ciphertext Proses Enkripsi berformat .txt ... 36

Tabel 4.6 Ciphertext Proses Enkripsi berformat .doc ... 36

Tabel 4.7 Proses Enkripsi ... 37

Tabel 4.8 Proses Dekripsi... 39

Tabel 4.9 Keberhasilan Enkripsi Dekripsi Berformat .txt... 41

Tabel 4.10 Keberhasilan Enkripsi Dekripsi Berformat .doc ... 41

Tabel 4.11 Lama Proses Enkripsi ... 42

(19)

1

BAB I

PENDAHULUAN

1.1 Latar Belakang

Perkembangan teknologi informasi yang semakin pesat telah mempengaruhi seluruh aspek kehidupan dan memberikan banyak sekali keuntungan. Selain itu ada juga aspek – aspek dari sisi negatif dari kemajuan sistem informasi tersebut. Pada dasarnya melakukan pengiriman data tanpa melakukan pengamanan pada konten dari data yang dikirim, dapat menyebabkan adanya penyadapan pada jalur pengirimannya.

Data penting yang berformat .txt seperti berkas teks biasa, skrip, kode sumber program (source code program), berkas konfigurasi atau gambar (ASCII art) mudah sekali untuk disadap ketika proses pengiriman dikarenakan tidak adanya sistem untuk penyandian berkas tersebut. Untuk data berformat .doc dapat disandikan menggunakan password karena Miscrosoft Word memiliki fitur enkripsi. Namun fitur enkripsi Ms Word tersebut memiliki kelemahan yaitu adanya aplikasi yang dapat digunakan untuk membobol file yang telah terenkripsi.

Untuk itulah peranan teknologi keamanan informasi benar - benar dibutuhkan. Salah satu cara yang bisa digunakan adalah menyandikan (mengenkripsi) informasi atau data rahasia yang akan dikirim, sehingga pihak yang tidak berkepentingan tidak dapat membaca informasi tersebut, pihak tersebut sulit bahkan tidak dapat memahami isi informasi tersebut.

Salah satu teknik untuk pengamanan data adalah dengan menggunakan algoritma penyandian data. Algoritma penyandian data saat ini semakin banyak jumlahnya, sejalan dengan berkembangnya ilmu yang mempelajari penyandian data tersebut. Ilmu ini biasa disebut Kriptografi.

(20)

2

terenkripsi). Kemudian ciphertext akan didekripsi dengan kunci yang sama menjadi plaintext kembali. Proses ini disebut dekripsi.

Metode kriptografi yang digunakan dalam tugas akhir ini yaitu Algoritma One Time Pad. Algoritma One Time Pad merupakan algoritma sederhana dan unbreakable yang sampai saat ini dinyatakan aman karena masih belum ada serangan yang benar-benar dapat mematahkan algoritma ini. Hal ini dikarenakan algoritma One Time Pad memiliki barisan kunci acak yang ditambahkan ke pesan plaintext yang tidak acak untuk menghasilkan chipertext yang seluruhnya acak. Beberapa barisan kunci yang digunakan untuk mendeskripsi ciphertext mungkin menghasilkan plaintext yang mempunyai makna. Kunci acak tersebut dibangkitkan menggunakan metode pembangkit bilangan acak Mersenne Twister, Mersenne Twister menghasilkan bilangan acak yang memiliki distribusi yang sangat bagus, pembangkitan bilangan yang sangat cepat dan menggunakan memori yang efisien.

1.2 Rumusan Masalah

Berdasarkan latar belakang di atas, maka yang menjadi rumusan masalah adalah sebagai berikut :

1. Berapa presentase keberhasilan pengujian implementasi algoritma One

Time Pad dalam mengenkripsi dan mendekripsi berkas dokumen (.txt,.doc)?

1.3 Tujuan

(21)

3 1.4 Batasan Masalah

Batasan masalah dalam penelitian ini adalah:

1. Program ini dibuat untuk pemakaian single user.

2. Program diimplementasikan untuk mengenkripsi dan mendekripsi berkas dokumen .txt dan .doc.

3. Program hanya bisa disimpan dalam berkas dokumen .txtdan .doc. 4. Tidak membahas manajemen kunci.

1.5 Metodologi Penelitian 1.5.1 Studi Literatur

Mengenal prinsip enkripsi dan dekripsi sebagai pengetahuan dasar untuk memecahkan masalah.

Mengenal dan memahami Algoritma One Time Pad dan proses kerjanya.

Mengenal dan memahami metode Mersenne Twister dan proses kerjanya.

1.5.2 Analisis Sistem

Membuat gambaran mengenai data dan proses serta kebutuhan sistem yang diperlukan dalam mengimplementasikan program.

1.5.3 Perancangan Sistem

Perancangan meliputi : desain form – form yang digunakan beserta tombol – tombol yang digunakan pada setiap form.

1.5.4 Pembuatan Program

Tahap ini adalah penerapan desain ke dalam bentuk program dengan memanfaatkan bahasa pemrograman yang ada, yaitu Java.

1.5.5 Uji Coba Program

(22)

4 1.6 Sistematika Penulisan

BAB I PENDAHULUAN

Berisi latar belakang masalah, rumusan masalah, tujuan penulisan, batasan masalah, metodologi penulisan, dan sistematika penulisan.

BAB III LANDASAN TEORI

Berisi tentang pengertian kriptografi, algoritma kriptografi, algoritma One Time Pad dan pembangkit bilangan acak dengan metode Mersenne Twister.

BAB III ANALISIS DAN PERANCANGAN

Berisi tentang perancangan sistem berupa diagram alir enkripsi dan dekripsi menggunakan Algoritma One Time Pad. Bab ini juga beriai tentang rancangan desain user interface, serta dukungan hardware dan software terhadap program yang telah dibuat. BAB IV ANALISIS DAN PERANCANGAN

Berisi tentang cara kerja untuk melakukan enkripsi dekripsi dokumen menggunakan algoritma One Time Pad.

BAB V ANALISIS DAN PERANCANGAN

(23)

5

BAB II

LANDASAN TEORI

2.1 Kriptografi

Kriptografi berasal dari bahasa Yunani yaitu Crypto dan Graphia yang berarti penulisan rahasia (www.criptography.com). Kriptografi (cryptography) berarti ilmu dan seni penyimpanan pesan, data, atau informasi secara aman sehingga informasi tersebut tidak dapat diketahui pihak yang tidak sah.

Kriptografi mentransformasikan data asli (plaintext) ke dalam bentuk data sandi (ciphertext) yang tidak dapat dikenali untuk menjaga kerahasiaan data. Ciphertext inilah yang kemudian dikirimkan oleh pengirim (sender) kepada penerima (receiver). Setelah sampai di penerima, ciphertext tersebut ditransformasikan kembali ke dalam bentuk plaintext agar dikenali. Proses transformasi dari plaintext menjadi ciphertext disebut enkripsi (encryption), sedangkan proses mentransformasikan kembali ciphertext menjadi plaintext disebut proses dekripsi (decryption) (Iswanti, 2003).

Kriptografi menggunakan suatu algoritma (cipher) dan kunci (key) untuk mengenkripsi dan mendekripsi data. Cipher adalah fungsi matematika yang digunakan untuk mengenkripsi dan mendekripsi, sedangkan kunci merupakan sederetan bit yang diperlukan untuk mengenkripsi dan mendekripsi data. Secara sederhana dapat digambarkan sebagai berikut:

Plaintext Enkripsi Ciphertext Dekripsi Plaintext

Kunci

Gambar 2.1 Enkripsi Dekripsi Sederhana

Secara umum, enkripsi dan dekripsi dapat diterangkan sebagai berikut : EK (M) = C (Proses Enkripsi)

(24)

6

Pada proses enkripsi, pesan M akan disandikan dengan kunci K sehingga menghasilkan pesan C. Untuk proses dekripsi, pesan C akan diuraikan dengan menggunakan kunci K sehingga akan menghasilkan pesan M yang sama seperti sebelumnya (Iswanti, 2003).

Pesan yang diamankan bergantung pada kunci yang digunakan, dan bukan pada algoritma yang digunakan. Oleh karena itu, walaupun algoritma- algoritma yang digunakan tersebut dapat dipublikasikan, namun selama kunci yang dipakai tidak diketahui, maka pesan pesan tetap tidak bisa dibaca (Kurniawan, 2004).

2.2 Komponen Kriptografi

Pada dasarnya, kriptografi terdiri dari beberapa komponen sebagai berikut (Amelia, 2007) :

1. Algoritma, merupakan himpunan aturan matematis yang digunakan dalam enkripsi dan dekripsi.

2. Enkripsi, adalah transformasi data ke dalam bentuk yang tidak dapat terbaca tanpa sebuah kunci tertentu.

3. Dekripsi, merupakan kebalikan dari enkripsi, yaitu transformasi data terenkripsi kembali ke bentuknya semula.

4. Kunci (Key), digunakan pada saat melakukan enkripsi dan dekripsi. Pada kriptografi modern, keamanan enkripsi tergantung pada kunci, dan tidak tergantung kepada algoritmanya apakah dilihat orang lain atau tidak.

5. Pesan asli (Plaintext), disebut juga dengan clear-text, merupakan teks asli yang akan diproses menggunakan algoritma kriptografi tertentu untuk menjadi ciphertext.

6. Ciphertext, merupakan pesan yang telah melalui proses enkripsi yang merupakan himpunan karakter acak.

7. Kriptologi, merupakan studi tentang kriptografi dan kriptanalisis. 8. Kriptanalisis (Cryptanalysist), merupakan aksi memecahkan

(25)

7

menemukan kelemahan dari suatu algoritma kriptografi sehingga akhirnya dapat ditemukan kunci atau teks asli.

9. Kriptosistem, adalah perangkat keras atau implementasi perangkat lunak kriptografi yang diperlukan dalam mentransformasi sebuah pesan asli menjadi ciphertext dan juga sebaliknya.

2.3 Kunci Simetris dan Asimetris

Berdasarkan kunci yang dipakai, algoritma kriptografi dapat dibedakan menjadi 2, yaitu:

a. Kunci Tunggal (Symmetric Algorithm)

Algoritma simetris (konvensial) adalah algoritma yang menggunakan satu kunci yang sama untuk proses enkripsi dan dekripsi. Jika misalkan A ingin mengirim pesan kepada B, maka pesan tersebut akan dienkrip dengan menggunakan suatu kunci. Jika B menerima pesan tersebut, maka B harus mendeskrip pesan dengan menggunakan kunci yang sama dengan kunci yang digunakan oleh A. Keuntungan algoritma simetris yaitu memiliki kecepatan proses enkripsi dan dekripsi, daripada menggunakan kunci publik. Kelemahan kunci simeris yaitu kunci yang digunakan hanya satu, sehingga jika kunci disergap ditengah jalan atau sudah ditebak orang lain, maka sistem ini sudah tidak aman lagi (Raharjo, 2004).

b. Kunci Publik (Public Key Algorithms)

(26)

8

diketahui oleh pihak yang sah (Raharjo, 2002). Contohnya RSA, Elgamal, Diffie-Hellman.

Plaintext Enkripsi Ciphertext Dekripsi Plaintext

Kunci Publik Kunci Privat

Gambar 2.2 Enkripsi dan Dekripsi dengan Kunci Publik

2.4 Algoritma One Time Pad

One Time Pad adalah saah satu metode kriptografi dengan algoritma jenis simetri. Metode ktiptografi ini ditemukan pada tahun 1917 oleh Major Yoseph Mouborgne dan Gilbert Vernam pada perang dunia ke dua. Metode ini telah diklaim sebagai satu - satunya algoritma kriptografi sempurna yang tidak dapat dipecahkan. Suatu algoritma dikatakan aman, apabila tidak ada cara untuk menemukan plaintext-nya. Sampai saat ini, hanya algoritma One Time Pad (OTP) yang dinyatakan tidak dapat dipecahkan meskipun diberikan sumber daya yang tidak terbatas (Febryan, 2014).

2.4.1 Proses Enkripsi dan Dekripsi

Prinsip enkripsi pada algoritma ini adalah dengan mengkombinasikan masing-masing karakter pada plaintext dengan satu karakter pada kunci. Oleh karena itu, panjang kunci harus sama dengan panjang plaintext. Enkripsi dapat dinyatakan sebagai penjumlahan modulo 256 (menggunakan kode ASCII 8 bit) dari satu karakter plaintext dengan satu karakter kunci OTP (Bilqis. 2012):

ci = (pi + ki) mod 256 (2.1)

(27)

9

dkarakter ciphertext menjadi karakter-karakter plaintext dengan persamaan:

pi = (ci ki) mod 256 (2.2)

2.5 Pembangkit Bilangan Acak

Pembangkit Bilangan Acak atau Random Number Generator (RNG) adalah suatu peralatan komputasional yang dirancang untuk menghasilkan suatu urutan nilai tersebut dapat dianggap sebagai suatu keadaan acak (random). RNG ini tidak dapat diterapkan dalam prakteknya. Bilangan acak yang dihasilkan oleh komputer sekalipun tidak benar – benar acak dan kebanyakan bilangan acak yang diterapkan dalam kriptograsi juga tidak benar – benar acak, tetapi hanya berupa acak semu. Ini berarti bahwa bilangan acak yang dihasilkan itu dapat ditebak susunan atau urutan nilainya. Dalam kriptografi, bilangan acak sering dibangkitkan dengan menggunakan pembangkit bilangan acak semu atau Pseudo Random Number Generator (PRNG) (Bilqis,2012).

2.6 Pembangkit Bilangan Acak Semu

Pembangkit Bilangan Acak Semu atau Pseudo Random Number Generator (PRNG) merupakan suatu algoritma yang menghasilkan suatu urutan nilai dimana elemen – elemennya bergantung pada setiap nilai yang dihasilkan. Output dari PRNG tidak betul – betul acak, tetapi hanya mirip dengan properti dari nilai acak. Hal ini didukung oleh penelitian sebelumnya. (Douglas, 1995) menyimpulkan dari beberapa algoritma untuk membangkitkan bilanga acak semu, tidak ada yang benar – benar dapat menghasilkan bilangan acak secara sempurna dalam arti benar – benar acak dan tanpa ada perulangan selama pembangkit yang digunakan adalah komputer yang memiliki sifat deterministik dan bilangan benar – benar acak hanya dapat dihasilkan oleh perangkat keras (hardware).

(28)

10

1. Dapat diulang. Sekumpulan (barisan) bilangan yang sama harus bisa diperoleh (diulang) dengan menggunakan seed yang sama, hal ini kadang – kadang diperlukan untuk pemeriksaan dan penelusuran program (debugging).

2. Keacakan. Barisan bilangan harus memenuhi syarat keacakan secara seragam (uniform) yang dapat diuji melalui uji statistika.

3. Periode panjang. Karena pada dasarnya bilangan acak itu merupakan barisan berulang dengan berbagai periode, maka periode pengulangan harus sangat besar atau lama melebihi banyaknya bilangan acak yang diperlukan.

Tidak peka seed. Sekalipun barisan bilangannya bergantung pada seed tetapi sifat keacakan dan periodisasi sedapat mungkin tidak bergantung pada seed-nya.

Secara umum, sebuah PRNG didefinisikan sebagai algoritma kriptografi yang digunakan untuk menghasilkan bilangan secara acak. Pengertian acak sendiri adalah bilangan yang dihasilkan dalam setiap waktu tidaklah sama. Sebuah PRNG memiliki sebuah kondisi awal K yang rahasia. Saat digunakan, PNRG harus membangkitkan output acak yang tidak dapat diidentifikasi oleh kriptanalis yang tidak tahu dan tidak dapat menebak kondisi awal K. Dalam hal ini, PRNG memiliki kesamaan dengan cipher aliran. Akan tetapi, sebuah PRNG harus mampu mengubah kondisi awalnya dengan memproses input sehingga tidak dapat diprediksi oleh kriptanalis. Umumnya PRNG memiliki kondisi awal yang tidak sengaja dapat ditebak oleh kriptanalis dan harus mengalami banyak proses sebelum kondisinya aman dan rahasia. Patut dipahami bahwa sebuah input untuk PRNG mrmiliki informasi rahasia yang tidak diketahui oleh kriptanalis. Input –

(29)

11

Kebanyakan algoritma dari PRNG ditujukan untuk mengahasilkan suatu sampel yang secara seragam terdistribusi. PRNG ini sering digunakan dalam kriptografo pada proses pembentukan kunci dari metode kriptografi. Tingkat kerumitan dari PRNG menentukan tingkat keamanan dari metode kriptografi. Semakin rumit PRNG yang digunakan maka semakin tinggi tingkat keamanan dari metode kriptografi (Richard A, 2005).

PRNG

Bilangan acak semu

Input seed rahasia

Gambar 2.3 Skema Dasar PRNG

Semua deretan bilangan acak yang dibangkitkan dari rumus matematika, serumit apapun, dianggap sebagai deret acak semu, karena dapat diulang pembangkitnya. Sementara itu, banyak produk software yang dinyataan sebagai produk yang aman karena menggunakan bilangan acak semacam OTP (One Time Pad). Namun karena OTP ini dibangkitkan dari bilangan acak semu, maka keamanan yang diperoleh juga semu.

2.7 Mersenne Twister

Mersenne Twister merupakan suatu pseudo random number generator yang dikembangkan pada tahun 1997 oleh Makoto Matsumoto dan Takuji Nishimura. Algoritma ini menawarkan generasi yang cepat dari bilangan acak kualitas tinggi, telah dirancang secara khusus untuk mengatasi setiap cacat yang ditemukan pada algoritma terdahulu.

(30)

12

a. Dirancang untuk mempunyai suatu periode kolosal 129937 – 1. Periode ini menjelaskan sesuai dengan namanya, suatu Mersenne prime, dan beberapa jaminan atas algoritma bergantung pada penggunaan internal dari Mersenne prime.

b. Mersenne Twister mempunyai suatu equidistribution dimensional high order. Ini berarti secara default, terdapat korelasi serial yang dapat diabaikan anatara nilai suksesif dalam deret output.

c. Algoritma lebih cepat daripda algoritma yang ada tetapi menggunakan generator yang lebih statistikal.

d. Algoritma ini bersifat statistikal secara acak dalam semua bit outputnya.

(31)

13

BAB III

ANALISA DAN PERANCANGAN

3.1Enkripsi pada One Time Pad 3.1.1. Kebutuhan Input :

1. Beberapa kalimat atau teks panjang sebagai plaintext. 2. Menggunakan beberapa huruf atau simbol acak sebagai key.

3.1.2 Kebutuhan Proses :

1. Proses enkripsi sebuah plaintext dengan key menggunakan tabel ASCII yang sudah ada.

2. Kemudian sesuaikan setiap huruf pada plaintext dengan huruf atau simbol yang menjadi key, yaitu dengan mengubah menjadi bilangan desimal yang kemudian dijumlahkan lalu dimodulo 256.

3.1.3 Kebutuhan Output :

Hasil penjumlahan yang telah dimodulo 256 kemudian diubah kembali menjadi huruf atau simbol. Hasil tersebut merupakan output dari enkripsi One Time Pad yang menjadi ciphertext.

3.2 Dekripsi pada One Time Pad 3.2.1 Kebutuhan Input :

1. Beberapa kalimat atau teks panjang sebagai ciphertext

2. Menggunakan beberapa huruf atau simbol acak yang sama dengan yang digunakan untuk enkripsi.

3.2.2 Kebutuhan Proses :

1. Proses dekripsi sebuah ciphertext dengan key yang sama menggunakan tabel ASCII yang sudah ada.

(32)

14 3.2.3 Kebutuhan Output :

Hasil pengurangan yang telah dimodulo 256 kemudian diubah kembali menjadi huruf atau simbol. Hasil tersebut merupakan output dari dekripsi One Time Pad yang menjadi plaintext kembali

3.3 Diagram Alir Sistem

3.3.1 Diagram Alir Sistem Enkripsi

(33)

15

Cari plaintext Mulai

Masukkan kunci random

Enkripsi

Ciphertext

Simpan

Selesai

Gambar 3.1 Diagram Alir Enkripsi

3.3.2 Diagram Alir Sistem Dekripsi

(34)

16

Cari ciphertext Mulai

Masukkan kunci random

Dekripsi

Plaintext

Simpan

Selesai

Gambar 3.2 Diagram Alir Dekripsi

3.4 Analisis Algoritma One Time Pad 3.4.1 Algoritma Enkripsi

(35)

17

diproses dengan data[i] = (im[i] + ik[i])%256 jika i < message.length maka akan dilakukan looping dan jika tidak maka return.

Start Insialisasi im

Insialisasi ik

i = 0

data[i] = (im[i] + ik[i])%256

i < message.length

End

Ya

Tidak

Return Insialisasi data

(36)

18 3.4.2 Algoritma Dekripsi

(37)

19

Start

Insialisasi im

Insialisasi ik

i = 0

data[i] = (im[i] - ik[i])%256

i < message.length

Return

End

Ya

Tidak

Inisialisasi data

(38)

20

3.4.3 Algoritma Mersenne Twister ( Archana Jagannatam)

Berikut adalah agoritma untuk kelas Mersenne Twister : 1. Step 0

Tentukan bitmask untuk upper dan lower bits

U ← ,

2. Step 1

Tentukan array x dengan nilai bukan 0 x[0], x[1], ..., x[n-1] 3. Step 2

Hitung ( ), dimana the upper bits digabungkan dengan the

lower bits x[i+1]

y ← (x[i] AND u) OR (x[(i +1)mod n] AND ll)

4. Step 3

Hitung langkah selanjutnya 5. Step 4

Kali x[i] dengan mengganti matrik T untuk persamaan distribusi yang lebih baik

y ← x[i]

y ← y ⊕ ( y >> u)

y ← y ⊕ (( y << s) & b)

y ← y ⊕ (( y << t) & c)

z ← y ⊕ ( y >> l) output y

6. Step 5

Tambahkan i dengan 1

i ← (i +1)mod n

7. Step 6

(39)

21 3.5 Perancangan Antarmuka

3.5.1 Tampilan Halaman Awal

Halaman awal pada Gambar 3.1 adalah tampilan pertama saat sistem dijalankan. Pada halaman ini terdapat button Enkripsi dan Dekripsi. Jika user menekan button Enkripsi, maka sistem akan menampilkan halaman selanjutnya, yaitu Halaman Enkripsi. Dan jika user menekan button Dekripsi, maka sistem akan menampilkan halaman selanjutnya, yaitu Halaman Dekripsi.

Gambar 3.5 Tampilan Halaman Awal

3.5.2 Tampilan Halaman Enkripsi

Halaman Enkripsi pada Gambar 3.2 adalah tampilan untuk proses

enkripsi. Pada halaman ini terdapat button “Browse” yang digunakan untuk

mencari dokumen untuk dienkripsi. Button “Genarate Key” digunakan untuk menampilkan kunci acak, lalu button “Proses” yang digunakan untuk menampilkan hasil enkripsi serta lamanya proses enkripsi. Button

(40)

22

Gambar 3.6 Tampilan Halaman Enkripsi

3.5.3 Tampilan Halaman Dekripsi

Halaman Dekripsi pada Gambar 3.3 adalah tampilan untuk proses

dekripsi. Pada halaman ini terdapat button “Browse” yang digunakan untuk

mencari dokumen untuk didekripsi. Button “Genarate Key” digunakan untuk menampilkan kunci acak, lalu button “Proses” yang digunakan untuk

menampilkan hasil dekripsi serta lamanya proses dekripsi. Button

(41)

23

Gambar 3.7 Tampilan Halaman Dekripsi

3.6 Perancangan Input Dokumen 3.6.1 Berformat .txt

Berikut kandidat plaintext untuk dokumen yang berformat .txt dan .doc dimana nanti akan menggunakan kunci acak yang berbeda :

1. Engkau selalu hadir dalam setiap langkah ku

2. I want him to be the only man that I’ll love for the rest of my life 3. Fidelis Asterina

4. File_output_stream = new FileOutputstream(f) 5. key[i] = (char) (key[i] - 72);

(42)

24

7. Tujuan penelitian ini adalah untuk mengimplementasikan algoritma One Time Pad untuk mengenkripsi dan mendekripsi berkas dokumen (.txt,.doc) dan Mersenne Twister sebagai pembangkit kunci.

8. MersenneTwisterFast other = (MersenneTwisterFast) o; 9. for (int x = 0; x < mt.length; x++) {

10.Batasan masalah dalam penelitian ini adalah:

3.6.2 Berformat .doc

Berikut kandidat plaintext untuk dokumen yang berformat .doc : 1. Give him the best of me till the day that i die

2. JOptionPane.showMessageDialog(this, "Penyimpanan Hasil Dekripsi Telah Berhasil Disimpan!! di " + filename);

3. Allah Bapa sungguh besar kasih Mu,, Engkau selalu hadir dalam setiap langkah ku,,

4. Universitas Sanata Dharma 5. for (;k!=0; k--){

6. Algoritma penyandian 7. Algortima

8. FileWriter outFile = new FileWriter(f);

PrintWriter out = new PrintWriter(outFile, true); 9. THIS PLAINTEXT

(43)

25

BAB IV

HASIL DAN PEMBAHASAN

4.1 Implementasi Antarmuka

Implementasi program ini dilakukan dengan menggunakan NetBeans IDE 6.9.1 pada komputer dengan spesifikasi processor Intel Core i3 2,27 GHz,RAM 4.00 GB, dan hardisk 320 GB. Program ini dibuat sesuai dengan perancangan yang dibuat pada bab sebelumnya. Dan program ini dibuat dengan menggunakan bahasa pemrograman Java.

4.1.1. Implementasi Halaman Awal

Halaman awal adalah tampilan yang pertama kali keluar pada saat program dijalankan. Pada halaman ini terdapat tombol “Enkripsi” dan “Dekripsi”. Jika user ingin menggunakan program untuk mengenkripsi dokumen, maka user harus menekan tombol “Enkripsi”. Dan jika user

ingin menggunakan program untuk mendekripsi dokumen, maka user

harus menekan tombol “Dekripsi”.

(44)

26 4.1.2 Implementasi Halaman Enkripsi

Halaman enkripsi akan muncul setelah user menekan tombol

“Enkripsi”. Pada halaman enkripsi ini terdapat tombol “Browse”, tombol “Generate Key”, tombol “Proses”, tombol “Simpan”,tpmbol “Kembali”, text area “plainArea”, text area “enkripKey”, text area “hasilEnkrip”, dan text area “LamaEnkrip”.

Jika user ingin mengenkripsi dokumen maka user menekan tombol

“Browse” untuk mencari dokumen yang akan dienkripsi seperti di bawah ini.

Gambar 4.2 Kotak Dialog saat memilih Dokumen

(45)

27

Gambar 4.3 Tampilan Isi Dokumen dan Kunci Acak

Kemudian user melakukan proses enkripsi dengan menekan tombol

“Proses” maka hasil dari proses akan muncul serta lamanya proses tersebut dilakukan.

(46)

28

Selanjutnya user dapat menyimpan hasil enkripsi dengan menekan

tombol “Simpan”. Hasil enkripsi dapat disimpan dengan format .txt dan .doc.

Gambar 4.5 Tampilan Save Dialog

Setelah selesai menyimpan, jika dokumen berhasil disimpan akan muncul pesan "Penyimpanan Hasil Enkripsi dan Key Telah Berhasil Disimpan!! di ...". Titik-titik tersebut berisi direktori tempat dokumen disimpan.

Gambar 4.6 Pesan Ketika Proses Penyimpanan Hasil Enkripsi Berhasil Dilakukan

4.1.3 Implementasi Halaman Dekripsi

Halaman dekripsi akan muncul setelah user menekan tombol

(47)

29

“cipherArea”, text area “dekripKey”, text area “hasilDekripsi”, dan text area “LamaDekripsi”. Jika user ingin mendekripsi dokumen maka user menekan tombol “Browse” untuk mencari dokumen yang akan didekripsi seperti di

bawah ini.

Gambar 4.7 Kotak Dialog saat memilih Dokumen

(48)

30

Gambar 4.8 Tampilan Isi Ciphertext dan Kunci Acak yang Tersimpan

Kemudian user melakukan proses dekripsi dengan menekan tombol

“Proses” maka hasil dari proses akan muncul serta lamanya proses tersebut dilakukan.

(49)

31

Selanjutnya user dapat menyimpan hasil dekripsi dengan menekan

tombol “Simpan”. Hasil enkripsi dapat disimpan dengan format .txt dan .doc.

Gambar 4.10 Tampilan Save Dialog

Setelah selesai menyimpan, jika dokumen berhasil disimpan akan muncul pesan "Penyimpanan Hasil Dekripsi Telah Berhasil Disimpan!! di ..." Titik-titik tersebut berisi direktori tempat dokumen disimpan.

(50)

32

Berikut listing program beberapa proses yang terdapat pada tombol - tombol di Form Tampilan :

1. Tombol Generate Key

Berikut baris – baris perintah untuk menampilkan kunci secara acak, dimana kelas Mersenne Twister sudah ada :

2. Proses Enkripsi

(51)

33 4.2 Hasil Pengujian

Berikut ini adalah kandidat plaintext berformat .txt yang akan dienkripsi : Tabel 4.1 Kandidat Plaintext berformat .txt

No Plaintext

1 Engkau selalu hadir dalam setiap langkah ku

2 I want him to be the only man that I’ll love for the rest of my life

3 Fidelis Asterina

4 File_output_stream = new FileOutputstream(f)

5 key[i] = (char) (key[i] - 72);

6 private static final int MATRIX_A = 0x9908b0df;

7 Tujuan penelitian ini adalah untuk mengimplementasikan algoritma One

Time Pad untuk mengenkripsi dan mendekripsi berkas dokumen (.txt,.doc) dan Mersenne Twister sebagai pembangkit kunci.

8 MersenneTwisterFast other = (MersenneTwisterFast) o;

9 for (int x = 0; x < mt.length; x++) {

10 Batasan masalah dalam penelitian ini adalah:

public static String decrypt(String message, String key) { if (message.length() != key.length()) {

error("Lengths must be equal"); }

int[] im = charArrayToInt(message.toCharArray()); int[] ik = charArrayToInt(key.toCharArray()); int[] data = new int[message.length()];

for (int i = 0; i < message.length(); i++) { data[i] = (im[i] - ik[i])%256;

}

(52)

34

Berikut ini adalah kandidat kunci untuk plaintetx berformat .txt yang mana panjang kunci sama dengan panjang plaintext :

Tabel 4.2 Kandidat Kunci untuk Plaintext berformat .txt

No Kunci

1 ofnPZo[\MG6qV[P<f;h_FbieiOy>SyMHeKgUfEi@\6l

2 TybGYUiKD<JcmjV[slqcJo]rR`oZ;78oQo:Ooc8oabrer8T`_buhQ599QM

D<Y\ie8z=L

3 ]_IU8Ug6VnX7d7W

4 5i85KP=z;SprP]ETktbFm8<SMqhecZOOIW_9<ccOTfr5 5 P[dig7`<[aZQQWAUM]`^Xr3;kW4v34

6 9>X4LH\yyrKG[XZW]Qf[NgX3hvc6eZ^kwzex\rvrYcRM93

7 rW[YVsX:6]uY5s[VtxaxmcSWuOtj`[bvNsmAJjlPGHVsCa@Ze]KiUj^q

FP8JYaKEhEMbiP\=P8zmN7kXiM3aP@whS[HsWWr:sHxN6Fm[6tJQI 3m3Y78VeL`pbfpD6Pj:n_xsmMAu_r_z_y^9CzSzmGkts^zJZ`i5VT_PiD YdE[UsxfmwGO8oHOF;W@5

8 RdQYwh\e[z9?xxtm`X_XZ:wsriiZ6xjkxi4ty>;sTpn_;_R\dzkg 9 emTls^Zv4M@gvuy_XSrg^Oq[TE7sdN:xbvK:R

10 bKHR7vqqXy]e4`4p89c4IzmwfVORSxr5jbW;KZ;8goNQ

Berikut ini adalah kandidat plaintext berformat .doc yang akan dienkripsi : Tabel 4.3 Kandidat Plaintext berformat .doc

No Plaintext

1 Give him the best of me till the day that i die

2 JOptionPane.showMessageDialog(this, "Penyimpanan Hasil Dekripsi

Telah Berhasil Disimpan!! di " + filename);

3 Allah Bapa sungguh besar kasih Mu,, Engkau selalu hadir dalam setiap

langkah ku,,

(53)

35 5 for (;k!=0; k--){

6 Algoritma penyandian

7 Algoritma

8 FileWriter outFile = new FileWriter(f);

PrintWriter out = new PrintWriter(outFile, true);

9 THIS PLAINTEXT

10 TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI

Berikut ini adalah kandidat kunci untuk plaintetx berformat .doc yang mana panjang kunci sama dengan panjang plaintext :

Tabel 4.4 Kandidat Kunci untuk Plaintext berformat .doc

No Kunci

1 wrV5l5AvrRIybaR;iR]vFnOBlYC;_sdgy\t7QC:3ivhKurYkx7dzP 2 6zSZe><kSUwRpDA6Fqdxp`k\e5gpyZUN;t_fZ54tZ\TTU3[:IPGOx[UL

w8BbS``TxV:K_Vy_b4d`SJqIqt`NdMLs3fKyYgUJW?kY`POHrYv:=Bd

3 ZyHIoUlQc4rVIIE3Z`ruP7Huo\LgURJ_KH]gV6i6mPN\7`[OhJgLbW7A

vWCV<y^^\:HCd_@VJO9WZIlM^X\3Y

4 NlF>WeBv6P]b4O6dMH3Y\x_TYWgU@ 5 5TQEk]hNLM^5kGrAv]Ui^oOa@

6 V8?oqOBVdZLasvsuCOqv`bvWIHp

7 9_m\7W8abn9Fk4Ev

8 zn>sze6>nZW\f?mPwTvkbKxh?]an9dBy4B[WZnriLs^WFKLoPR:KHIT

T^;8M:QRK8Zf4TkmqvLUNbCuvXnZwtvzjvy_vVT

9 :XPi9s4b:VuVbv`:rQ

(54)

36

Berikut ini adalah hasil dari proses enkripsi dari plaintext berformat .txt : Tabel 4.5 Ciphertext Proses Enkripsi berformat .txt

No Ciphertext

1 ´ÔÕ»»ä{ϲ³ÝË{¸Ê¤ÚªÃÕÆÖoì£Ç⮸· ÈÃͰʨ|¡á

2 Ù¨Çɳ-©j×ܸÀàÙÈjÞËÞËÜ»©W¬×²ãZϤÍÑèÊÃÒÖÝÍq§¬Åm³¢yÉâ¤ã£± 3 £È-º¤¾ÚVáÌÖ ÅÓ

4 Ò¤ª¿²î«ÈäÑÃÑ·¹ÌᦡÊm·ÑÑÈ©ÄùÌÓ°ÕÈ°ÁØ^ 5 »ÀÝÄÐy{½¹²ÉjuuÈÅ׳Û[wk¨\o

6 ©°Áª-¼Áì欻Ļz½Æ¿ÇÇnÐƧä·£¶Ê¸¢ê¯ «´}

7 ÆÌÅηáxªËÚÅçÄ·âÊæÖ´»Ö»ÕÒÐÐêÃÞ®¯ ØÓ¹´¸ÂØ°Æ®ÎÆдԶØ~Ò²·§

¼ÂÕ¸¦»Ç¤ÅªµXÊβWàÆݽ¥åϸɳåÀÇ壬ټV³ÒÉٵò£àyÈÐ-ÓÆÕÛ ¹£µØZìëáyoÙÎÕÃÚÌYßÅíÒµÙÙ²ñ³ÍÔΧvÇIJʫºÍe˺àÚÇÛÞ²¸¬³Ä´ÀnU

8 ÉÃÌÜÖÊʯ ñ¢²ìÝæ³ÁËÓxÉ®ßØä¦z^ ÅÏÝë΢âÞ²ÜÇäÓÑÀÅÐÚ¢

9 ËÜÆÇÈêTÅ`¤¥´Ðs®ËÃǹ³çÌZð¡tZÍ

10 ¤¬¼³ª×ßÅÚÐÆ Á϶ÝÜÔ»»»ÇáÓ£ËŤk»Óж

Berikut ini adalah hasil dari proses enkripsi dari plaintext berformat .doc : Tabel 4.6 Ciphertext Proses Enkripsi berformat .doc

No Ciphertext

1 ¾Û̪ãƱÞ÷®ÝrÌÜfÛ´b௠§çÌÌÀÕ°q·¢ÝÑkÙÛ¾xDnZ

2 ÉÃÎÎ-ª»´ÃÜ㬰-Ö×ëÑÇÐ ÎÓßàɶ¤ç|âÓÅÁĶ¡¼¨i¨ÂáÇuÜ£´ËÃÓÉtÌ»¦¬

Çv»ÄÔÅÓ¼¶ÚçɻԮºT¯ âyuuw¥ÔÅž°µ×±GGOn

3 å´ª×u®²Óɾ·¬ÏÈ×µª©çÇ-Ú¾ºj¬Àt¤Ð¡ÎÅnÏ̼»ÝjÏ-ÆÀ©aÚ¸¯ ·©ÑÃУ

©³Ë¡Ä±º¿z´áyef@c

4 £Ú¯ ´¼×µßª±Ð°¤ÅÁ©SÄÙÑÁºdqbJ 5 ÃÃe¹lnU¬£~Ù|YnJ

6 ¤¦Þ㸶ÃÅz¼ÆáïÔ㧸ÒäodSUz

7 zËÔË©À¬ÎÃFPx>R

8 ÀתØÑײÓÌwËÛ³³¹ã¹¨¹Ýß_£ÊÚ»´â¨§ÍÀ-vVÃÐÀ´¿£á¹Æ½h¸ÉÈ~xX»ÈrªÃ

(55)

37 akan diubah menjadi bilangan desimal yang kemudian dijumlahkan dengan kunci acak yang juga diubah menjadi bilangan desimal setelah itu dimodulo 256. Kemudian hasil penjumlahan tersebut diubah ke huruf atau simbol. Pengubahan dari huruf atau simbol menjadi bilangan desimal atau sebaliknya ini menggunakan tabel ASCII (lampiran).

Contoh : Plaintext :

Universitas Sanata Dharma Kunci :

8@NajlJRkMa3^b`7[xi8_VqoU

(56)

38

(110 + 64) mod 256 174 ® (105 + 78) mod 256 183 · (118 + 97) mod 256 215 × (101 + 106) mod 256 207 Ï (114 + 108) mod 256 222 Þ

(115 + 74) mod 256 189 ½ (105 + 82) mod 256 187 » (116 + 107) mod 256 223 ß (97 + 77) mod 256 174 ® (115 + 97) mod 256 212 Ô

(32 + 51) mod 256 83 S (83 + 94) mod 256 177 ± (97 + 98) mod 256 195 Ã (110 + 145) mod 256 255 Î

(97 + 55) mod 256 152 ˜

(116 + 91) mod 256 207 Ï (97 + 55) mod 256 312 Ù (32 + 105) mod 256 137 ‰

(68 + 56) mod 256 124 | (104 + 45) mod 256 149 •

(97 + 86) mod 256 183 · (114 + 113) mod 256 227 ã

(109 + 111) mod 256 220 Ü (97 + 85) mod 256 182 ¶

Setelah proses enkripsi selesai, maka didapatlah ciphertext sebagai berikut :

Ciphertext :

(57)

39 4.3.2 Dekripsi

Pada proses dekripsi ini, ciphertext yang berupa huruf atau simbol akan diubah menjadi bilangan desimal yang kemudian dikurangkan dengan kunci acak yang juga diubah menjadi bilangan desimal setelah itu dimodulo 256. Kemudian hasil pengurangan tersebut diubah ke huruf atau simbol. Pengubahan dari huruf atau simbol menjadi bilangan desimal atau sebaliknya ini menggunakan tabel ASCII (lampiran).

Dari proses enkripsi di atas akan didapatkan hasil enkripsi sebagai

(58)

40

(207 - 106) mod 256 101 e (222 - 108) mod 256 114 r (189 - 74) mod 256 115 s (187 - 82) mod 256 105 i (223 - 107) mod 256 116 t (174 - 77) mod 256 97 a (212 - 97) mod 256 115 s

(83- 51) mod 256 32 (spasi) (177 - 94) mod 256 83 S (195 - 98) mod 256 97 a

(255 - 145) mod 256 110 n (152 - 55) mod 256 97 a (207 - 91) mod 256 116 t (312 - 55) mod 256 97 a (137 - 105) mod 256 32 (spasi)

(124 - 56) mod 256 68 D (149 - 45) mod 256 104 h (183 - 86) mod 256 97 a

(227 - 113) mod 256 114 r (220 - 111) mod 256 109 m

(182 - 85) mod 256 97 a

Setelah proses dekripsi selesai, maka didapatlah plaintext yang berisi sama dengan plaintext awal sebelum proses enkripsi sebagai berikut : Plaintext :

(59)

41 4.4Analisa

Berdasarkan pada hasil pengujian yang dapat dilihat pada halaman lampiran dihasilkan hasil benar dan salah. Hasil dikatakan benar jika ciphertext yang didekripsi menghasilkan plaintext yang sama dengan berkas asli. Dan hasil dikatakan salah jika ciphertext yang didekripsi tidak menghasilkan plaintext yang sama dengan berkas asli atau tidak dapat dilakukan proses dekripsi. Di bawah ini adalah tabel keberhasilan enkripsi dekripsi dokumen:

Tabel 4.9 Keberhasilan Enkripsi Dekripsi Format .txt No Pengujian Hasil Keterangan

1 01.txt Benar -

2 02.txt Benar -

3 03.txt Benar -

4 04.txt Benar -

5 05.txt Benar -

6 06.txt Benar -

7 07.txt Benar -

8 08.txt Benar -

9 09.txt Benar -

10 10.txt Benar -

Tabel 4.10 Keberhasilan Enkripsi Dekripsi Format .doc No Pengujian Hasil Keterangan

1 01.doc Benar -

2 02.doc Benar -

3 03.doc Benar -

4 04.doc Benar -

5 05.doc Benar -

6 06.doc Benar -

7 07.doc Benar -

(60)

42

9 09.doc Benar -

10 10.doc Benar -

Dilihat dari tabel 4.9 dapat diketahui bahwa presentasi keberhasilan enkripsi dekripsi dokumen untuk format .txt adalah 100% meski ada beberapa simbol yang tidak terbaca. Dari tabel 4.10 dapat diketahui bahwa presentasi keberhasilan enkripsi dekripsi dokumen untuk format .doc adalah 100% karena adanya chipertext dan key yang memiliki panjang yang tidak sama sehingga tidak dapat dilakukan proses dekripsi.

Sehingga dapat dianalisis bahwa program enkripsi dekripsi dokumen dengan algoritma One Time Pad ternyata telah berjalan sesuai dengan algoritma yang ada dan dapat berfungsi dengan baik meski ada beberapa pengujian dimana beberapa huruf / simbol tidak terbaca diprogram saat akan dilakukan proses dekripsi, tetapi hal itu tidak mengganggu proses dekripsi dan isi dokumen hasil dekripsi tetap sama dengan berkas asli sebelum dilakukan proses enkripsi.

Berdasarkan pada hasil pengujian yang dapat dilihat pada halaman lampiran dapat dilihat juga lamanya dari proses enkripsi dan lamanya dari proses dekripsi. Dapat dilihat lamanya proses tidak bergantung pada format berkas namun bergantung pada randomnya key yang didapatkan. Di bawah ini adalah Tabel 4.11 dan Tabel 4.12 yang merupakan tabel lama proses enkripsi dekripsi dokumen:

Tabel 4.11 Lama Proses Enkripsi

No Nama File Lama proses berformat

.txt .doc

(61)

43

8 file8 0,00162997 0,00191756 9 file9 0,00041847 0,00037001 10 file10 0,00024954 0,0003211

Rata - rata 0,00322 0,002206011

Tabel 4.12 Lama Proses Dekripsi

No Nama File Lama proses berformat

.txt .doc

1 file1 0,004684768 0,002998179 2 file2 0,002670282 0,001715574 3 file3 0,002136769 0,001937946 4 file4 0,000336955 0,001612767 5 file5 0,000454256 0,002295283 6 file6 0,005159856 0,001222822 7 file7 0,003030788 0,000376358 8 file8 0,002007693 0,002003617 9 file9 0,003011313 0,000502716 10 file10 0,002533507 0,001274905

Rata - rata 0,002602619 0,001594017

4.5Kelebihan Algoritma One Time Pad

Kelebihan dari menggunakan Algoritma One Time Pad adalah sebagai berikut :

1. Kunci acak yang hanya dapat digunakan sekali saja.

2. Melakukan proses enkripsi dekripsi dengan kunci yang berbeda akan menghasilkan plaintext yang berbeda pula dari berkas asli.

3. Hanya cocok untuk pesan berukuran kecil.

4.6Kekurangan Algoritma One Time Pad

Kekurangan dari menggunakan Algoritma One Time Pad adalah sebagai berikut :

(62)

44

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan pengujian yang dilakukan sebanyak 10 kali, maka presentase keberhasilan untuk berkas dokumen berformat .txt adalah 100% dimana berkas dokumen asli sama dengan berkas dokumen setelah proses dekripsi. Presentase keberhasilan untuk berkas dokumen berformat .doc adalah 100%. Maka dapat disimpulkan bahwa algoritma One Time Pad dapat mengenkripsi dan mendekripsi berkas dokumen (.txt, .doc) dengan benar. Lamanya proses enkripsi bergantung pada randomnya kunci acak yang digunakan. Dibutuhkan waktu rata – rata 0,00322 detik untuk melakukan proses enkripsi dokumen berformat .txt dan 0,002206011 detik untuk melakukan proses enkripsi dokumen berformat .doc. Untuk proses dekripsi dokumen berformat .txt dibutuhkan waktu rata – rata 0,002602619 detik dan 0,001594017 detik untuk melakukan proses dekripsi dokumen berformat .doc.

5.2 Saran

Dari hasil analisis pada tugas akhir ini, penulis memberikan saran untuk

perbaikan dan pengembangan program lebih lanjut antara lain :

1.Program dapat melakukan enkripsi dekripsi dokumen untuk semua tipe file.

2.Kunci yang tersimpan dapat terhapus otomatis setelah kunci tersebut digunakan.

(63)

45

Astutik, Amelia. 2007. Algoritma Enkripsi One Time Pad untuk Sistem Pengamanan Access Database Server. Skripsi. Semarang, Indonesia : Universitas Negeri Semarang.

Bilqis. 2012. Analisis dan Perancangan Aplikasi Pesan Rahasia Menggunakan

Algoritma One TimePad (OTP) Dengan Pembangkit Bilangan Acak Linear Congruential Generator (LCG). Skripsi. Medan, Indonesia : Universitas Sumatera Utara

Iswanti. 2003. Sistem Keamanan Data dengan Metode Public Key Cryptography. Penerbit ITB. Bandung .

Kurniawan, Yusuf. 2004. Kriptografi: Keamanan Internet dan Jaringan Komunikasi. Penerbit Informatika. Bandung.

Raharjo, Budi. 2002. Keamanan Sistem Informasi Berbasis Internet. PT. Insan Indonesia –Bandung & PT INDOCISC –Jakarta.

Septian, Devi Agung. 2008. Simulasi Proses Pembangkitan Deret Bilangan Acak Semu

Menggunakan Generator Beth Piper Step dan Go (LSFR). Skripsi. Bandung : UNIKOM.

Winaryo, Febryan Christy. 2014. Implementasi Modifikasi Kriptografi One Time Pad (OTP) untuk Pengamanan Data File. Skripsi. Salatiga, Indonesia : Universitas Kristen Satya Wacana.

(64)

46

(65)

LAMPIRAN 1

Pengujian Program

A. Uji Coba Berkas Dokumen Berformat .txt

1. Pengujian 01 : Berkas asli

Key

(66)

Plaintext, hasil proses dekripsi

2. Pengujian 02 : Berkas asli

Key

(67)

Plaintext, hasil proses dekripsi

3. Pengujian 03 : Berkas asli

Key

(68)

Plaintext, hasil proses dekripsi

4. Pengujian 04 : Berkas asli

Key

(69)

Plaintext, hasil proses dekripsi

5. Pengujian 05 : Berkas asli

Key

(70)

Plaintext, hasil proses dekripsi

6. Pengujian 06 : Berkas asli

Key

(71)

Plaintext, hasil proses dekripsi

7. Pengujian 07 : Berkas asli

Key

(72)

Plaintext, hasil proses dekripsi

8. Pengujian 08 : Berkas asli

Key

(73)

Plaintext, hasil proses dekripsi

9. Pengujian 09 : Berkas asli

Key

(74)

Plaintext, hasil proses dekripsi

10.Pengujian 10 : Berkas asli

Key

(75)

Plaintext, hasil proses dekripsi

B. Uji Coba Berkas Dokumen Berformat .doc

1. Pengujian 01 : Berkas asli

Key

(76)

Plaintext, hasil proses dekripsi

2. Pengujian 02 : Berkas asli

Key

(77)

Plaintext, hasil proses dekripsi

3. Pengujian 03 : Berkas asli

Key

(78)

Plaintext, hasil proses dekripsi

4. Pengujian 04 : Berkas asli

Key

(79)

Plaintext, hasil proses dekripsi

5. Pengujian 05 : Berkas asli

Key

(80)

Plaintext, hasil proses dekripsi

6. Pengujian 06 : Berkas asli

Key

(81)

Plaintext, hasil proses dekripsi

7. Pengujian 07 : Berkas asli

Key

(82)

Plaintext, hasil proses dekripsi

8. Pengujian 08 : Berkas asli

Key

(83)

Plaintext, hasil proses dekripsi

9. Pengujian 09 : Berkas asli

Key

(84)

Plaintext, hasil proses dekripsi

10.Pengujian 10 : Berkas asli

Key

(85)
(86)

LAMPIRAN 2

Listing Program

1. Implementasi Kelas HalamanAwal.java

package skripsiotp;

public class HalamanAwal extends javax.swing.JFrame {

(87)

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jButton1.setText("Enkripsi");

jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt);

} });

jButton2.setText("Dekripsi");

jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jLabel4.setText("Universitas Sanata Dharma");

javax.swing.GroupLayout layout = new

(88)

.addGap(83, 83, 83)

.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addGroup(javax.swing.GroupLayout.Alignment.TRAILING,

(89)

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

(90)

import java.util.logging.Logger; import javax.swing.JFileChooser; import javax.swing.JOptionPane;

import javax.swing.filechooser.FileNameExtensionFilter; import org.apache.poi.hwpf.extractor.WordExtractor;

public class HalamanEnkripsi extends javax.swing.JFrame {

(91)

jPanel1.setBorder(javax.swing.BorderFactory.createLineBorder(new

jScrollPane1.setViewportView(enkripsiKey);

PlainButton.setText("Browse");

PlainButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) {

jScrollPane2.setViewportView(plainArea);

GenerateKey.setText("Generate Key");

GenerateKey.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { GenerateKeyActionPerformed(evt);

} });

prosesEnkripsi.setText("Proses");

prosesEnkripsi.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) {

jScrollPane3.setViewportView(hasilEnkripsi);

(92)

jLabel5.setText("Lama Proses");

jLabel6.setText("detik");

simpanEnkripsi.setText("Simpan");

simpanEnkripsi.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) {

simpanEnkripsiActionPerformed(evt); }

});

jButton1.setText("Kembali");

jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jPanel1Layout.setHorizontalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI NG)

(93)

(94)
(95)
(96)
(97)

}

long t2 = System.nanoTime();

LamaEnkrip.setText("" + (t2 - t1) * java.lang.Math.pow(10, -9)); }

private void simpanEnkripsiActionPerformed(java.awt.event.ActionEvent evt) {

JFileChooser fileChooser = new JFileChooser(new File("E:/"));

fileChooser.setFileFilter(new FileNameExtensionFilter("Microsoft Word (*.doc)", "doc"));

(98)
(99)

private javax.swing.JButton GenerateKey; private javax.swing.JTextField LamaEnkrip; private javax.swing.JButton PlainButton; private javax.swing.JTextArea enkripsiKey; private javax.swing.JTextArea hasilEnkripsi; private javax.swing.JButton jButton1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JPanel jPanel1;

private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JScrollPane jScrollPane3; private javax.swing.JTextArea plainArea; private javax.swing.JButton prosesEnkripsi; private javax.swing.JButton simpanEnkripsi;

public class HalamanDekripsi extends javax.swing.JFrame {

(100)

initComponents();

jPanel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

jLabel2.setFont(new java.awt.Font("Times New Roman", 1, 12)); // NOI18N jLabel2.setText("Ciphertext");

dekripsiKey.setColumns(20); dekripsiKey.setRows(5);

jScrollPane1.setViewportView(dekripsiKey);

CipherButton.setText("Browse");

Gambar

Gambar 2.1 Enkripsi Dekripsi Sederhana
Gambar 2.2 Enkripsi dan Dekripsi dengan Kunci Publik
Gambar 2.3 Skema Dasar PRNG
Gambar 3.1 adalah diagram alir dari sistem enkripsi yang dimulai
+7

Referensi

Dokumen terkait

Tujuan penelitian tesis ini menganalisa kerja kombinasi algoritma One Time Pad dan Algoritma ElGamal untuk proses keamanan pada teks sehingga dari kombinasi algoritma tersebut

Implementasi Three Pass Protocol dengan Kombinasi Algoritma Beaufort Cipher dan One Time Pad untuk Pengamanan Data.. Medan: Universitas

Implementasi Algoritma One Time Pad dan Algoritma Hill Cipher pada Aplikasi Short Message Service (SMS) Berbasis Android. Medan: Universitas

Pada proses pengujian Bluetooth dilakukan pengiriman perintah melalui ponsel android yang mana perintah nya telah di enkripsi dengan algoritma One-Time Pad lalu perintah tersebut

[12] menyimpulkan dari beberapa algoritma untuk membangkitkan bilangan acak semu, tidak ada yang benar-benar dapat menghasilkan bilangan acak secara sempurna dalam arti

Dengan metode algoritma One Time Pad (OTP), penelitian ini merancang sistem enkripsi-dekripsi OTP untuk mengamankan data dan informasi yang ada didalam database

Penelitian dengan judul “Implementasi Dan Analisis Algoritma One Time Pad Sebagai Keamanan Data Pada Software As A Services Berbasis OwnCloud” ini disusun dalam rangkaian

Penutup One-Time Pad Cipher mengenkripsi sekumpulan karakter dalam pesan dalam satu proses dan dapat menyembunyikan hubungan antara plainteks dengan cipherteks, karena huruf yang sama