• Tidak ada hasil yang ditemukan

ANALISIS PEMBENTUKAN KUNCI SINGKAT DINAMIS ALGORITMA ONE TIME PAD UNTUK PENGAMANAN PESAN TESIS MUSLIM RAMLI

N/A
N/A
Protected

Academic year: 2022

Membagikan "ANALISIS PEMBENTUKAN KUNCI SINGKAT DINAMIS ALGORITMA ONE TIME PAD UNTUK PENGAMANAN PESAN TESIS MUSLIM RAMLI"

Copied!
52
0
0

Teks penuh

(1)

ANALISIS PEMBENTUKAN KUNCI SINGKAT DINAMIS ALGORITMA ONE TIME PAD UNTUK PENGAMANAN PESAN

TESIS

MUSLIM RAMLI 167038056

PROGRAM STUDI S2 TEKNIK INFORMATIKA

(2)

ANALISIS PEMBENTUKAN KUNCI SINGKAT DINAMIS ALGORITMA ONE TIME PAD UNTUK PENGAMANAN PESAN

TESIS

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Magister Teknik Informatika

MUSLIM RAMLI 167038056

PROGRAM STUDI S2 TEKNIK INFORMATIKA

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

MEDAN

2018

(3)
(4)

PERNYATAAN

ANALISIS PEMBENTUKAN KUNCI SINGKAT DINAMIS ALGORITMA ONE TIME PAD UNTUK KEAMANAN PESAN

TESIS

Saya mengakui bahwa tesis ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.

Medan, ...

MUSLIM RAMLI 167038056

(5)

PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS

Sebagai civitas akademika Universitas Sumatera Utara, saya yang bertanda tangan dibawah ini :

Nama : Muslim Ramli

NIM : 167038056

Program Studi : S2 Teknik Informatika Jenis Karya Ilmiah : Tesis

Demi pengembangan ilmu pengetahuan, menyetujui untuk memberikan kepada Universitas Sumatera Utara Hak Bebas Royalti Non-Eksklusif (Non-Exclusive Royalti Free Right) atas tesis saya yang berjudul:

ANALISIS KUNCI SINGKAT DINAMIS ALGORITMA ONE TIME PAD UNTUK KEAMANAN PESAN

Beserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas Royalti Non-Eksklusif ini, Universitas Sumatera Utara berhak menyimpan, mengalih media, memformat, mengelola dalam bentuk database, merawat dan mempublikasikan tesis saya tanpa meminta izin dari saya selama tetap mencantumkan nama saya sebagai penulis dan sebagai pemegang dan/atau sebagai pemilik hak cipta.

(6)

Telah diuji pada

Tanggal : ...

PANITIA PENGUJI TESIS

Ketua : Prof. Dr. Saib Suwilo Anggota : 1. Dr. Zakarias Situmorang

: 2. Dr. Syahril Efendi, S.Si, M.IT : 3. Dr. Erna Budhiarti Nababan

(7)

RIWAYAT HIDUP

DATA PRIBADI

Nama Lengkap (berikut gelar) : Muslim Ramli, S.Kom Tempat dan Tanggal Lahir : Meukee Gogo, 22 Juni 1990

Alamat Rumah : Jl. Abdul Hakim Komplek Icon 3 Blok A No 2 Medan Selayang, Medan

Telepon/Faks/HP : 0852-7719-4064

Email : [email protected]

Website : www.muslimramli.com

Instansi Tempat Kerja : Sanger Production

Alamat Kantor : Jl. Abdul Hakim Komplek Icon 3 Blok A No 2 Medan Selayang, Medan

DATA PENDIDIKAN

SD : SDN 1 Padang Tiji, Pidie, Aceh TAMAT : 2003

SMP : SMPS YPPU Sigli TAMAT : 1996

SMA : SMAN Modal Bangsa Provinsi Aceh TAMAT : 2009 S1 : Teknologi Informasi USU Medan TAMAT : 2016

S2 : Teknik Informatika USU Medan TAMAT : 2018

(8)

UCAPAN TERIMAKASIH

Puji dan rasa syukur dipanjatkan ke hadirat Allah SWT yang telah melimpahkan segala karunia, rahmat dan hidayah-Nya sehingga penyusunan tesis ini dengan judul “ANALISIS KUNCI SINGKAT DINAMIS ALGORITMA ONE TIME PAD UNTUK KEAMANAN PESAN” dapat diselesaikan dengan baik. Selawat beriring salam turut serta disampaikan kepada Nabi Muhammad SAW, semoga diberikan syafaat pada hari akhirat kelak.

Tesis ini merupakan syarat untuk menyelesaikan studi pada jenjang magister (S2) yang dalam penyusunannya tidak terlepas dari dukungan berbagai pihak, baik secara moril maupun materil. Pada kesempatan yang sangat berbahagia saat ini dan dalam ruang ucapan terima kasih ini, kami menyampaikan rasa terima kasih dan penghargaan yang setinggi- tingginya dengan tulus dan ikhlas kepada :

1. Bapak Prof. Dr. Runtung Sitepu, S.H., M.Hum., selaku Rektor Universitas Sumatera Utara Medan;

2. Bapak Prof. Dr. Opim Salim Sitompul, M.Sc, selaku Dekan Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara Medan;

3. Bapak Prof. Dr. Muhammad Zarlis, M.Sc, selaku Ketua Program Studi S2 Teknik Informatika, Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara Medan;

4. Bapak Prof. Dr. Saib Suwilo, sebagai Dosen Pembimbing I yang telah memberikan bimbingan dan arahan dalam penyelesaian tesis ini;

5. Bapak Dr. Zakarias Situmorang, sebagai Dosen Pembimbing II yang telah memberikan bimbingan dan arahan dalam penyelesaian tesis ini;

6. Bapak Prof. Dr. Herman Mawengkang Dosen Pembanding/Penguji I yang telah memberikan saran dan masukan untuk perbaikan dan penyelesaian tesis ini;

7. Ibu Dr. Rahmat Widia Sembiring.,M.Sc, IT selaku Dosen Pembanding/Penguji II yang telah memberikan saran dan masukan untuk perbaikan dan penyelesaian tesis ini;

8. Kedua orangtua penulis: Ayahanda Ramli Mustafa dan Ibunda Lawiyah tercinta, beserta saudara penulis atas dukungan dan doanya untuk kelancaran dalam menyelesaikan tesis ini;

(9)

9. Tim Sanger Production: Malinda Sari Sembiring, Chairil Anwar, Umaya Putri Ramadhani, Afdhaluzzikri, Andy Satria, Rahmadi Asri, Fanny Ramadhani, Purwa Hasan Putra, Desilia Selvida, dan Surya Manik ;

10. Teman-teman seangkatan di MTI-Kom-A-2016 yang telah bersama-sama menempuh pendidikan pada Program Studi S2 Teknik Informatika Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara Medan.

Penulis menyadari bahwa penelitian ini masih jauh dari kata sempurna, ini dikarenakan oleh keterbatasan, kemampuan dan pengetahuan penulis. Harapan penulis, semoga penelitian ini bermanfaat bagi penulis khususnya dan pembaca pada umumnya.

Sekali lagi penulis mengucapkan terima kasih, semoga Allah SWT membalas kebaikan yang telah diberikan. Amin.

Medan, ...

Penulis,

MUSLIM RAMLI NIM. 167038056

(10)

THE ANALYSIS OF FORMATION OF SHORT KEY ONE TIME PAD DYNAMIC ALGORITHM FOR MESSAGE SECURITY

ABSTRACT

One Time Algorithm is one of the classic algorithms that is difficult to be solved.

However, due to the same number of characters and number of keys, this algorithm is not practical to use for a large number of plaintext characters. Modifications to the determination of the number of keys by manipulating the plaintext, managed to get a shorter number of keys. The encryption and decryption process for the One Time Pad Algorithm can run well with runtime comparisons, faster than the original version algorithm. On the other hand, the amount of memory needed is greater than the algorithm before modification.

Keywords: One Time Pad, Short Key, Encryption, Decryption, Cryptography

(11)

ABSTRAK

Algoritma One Time Pad merupakan salah satu algoritma klasik yang sulit dipecahkan.

Namun, karena jumlah karakter dan jumlah kunci yang sama mengakibatkan algoritma ini tidak praktis digunakan untuk jumlah karakter plaintext yang banyak. Modifikasi pada penentuan jumlah kunci dengan melakukan manipulasi pada plaintext berhasil mendapatkan jumlah kunci yang lebih pendek. Proses enkripsi dan dekripsi untuk Algoritma One Time Pad dapat berjalan dengan baik dengan perbandingan runtime lebih cepat daripada algoritma versi asli. Namun, jumlah memori yang dibutuhkan lebih besar daripada algoritma sebelum dilakukan modifikasi.

Kata Kunci: One Time Pad, Kunci Singkat, Enkripsi, Dekripsi, Kriptografi

(12)

DAFTAR ISI

HALAMAN JUDUL i

PERSETUJUAN ii

PERNYATAAN iii

PERNYATAAN PERSETUJUAN PUBLIKASI iv

RIWAYAT HIDUP vi

UCAPAN TERIMA KASIH vii

ABSTRAK ix

ABSTRACT x

DAFTAR ISI xi

DAFTAR GAMBAR xiii

DAFTAR TABEL xiv

BAB 1 PENDAHULUAN

1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Batasan Masalah 2

1.4 Tujuan Penelitian 2

1.5 Manfaat Penelitian 2

BAB 2 TINJAUAN PUSTAKA

2.1 Kriptografi 3

2.1.1 Algoritma Kriptografi Simetri 4

2.1.2 Algoritma Kriptografi Asimetri 5

2.2 Kompleksitas Algoritma 5

2.2.1 Kompleksitas Waktu 6

2.2.2 Kompleksitas Ruang 6

2.3 Algoritma One Time Pad 7

(13)

2.3.1 Sejarah One Time Pad 7

2.3.1 Cara Kerja One Time Pad 8

2.4 Penelitian Terdahulu 12

BAB 3 METODOLOGI PENELITIAN

3.1 Analisis Algoritma 13

3.2 Diagram Blok Sistem 13

3.2.1 Diagram Blok Sistem Pengamanan Pesan 13

3.2.2 Proses Enkripsi One Time Pad 14

3.2.3 Proses Dekripsi One Time Pad 16

3.3 Pengujian Sistem 17

BAB 4 HASIL DAN PEBAHASAN

4.1 Pendahuluan 19

4.2 Proses Enkripsi 19

4.3 Proses Deksripsi 23

4.4 Hasil Implementasi Program 24

4.5 Perbandingan Memori dan Runtime 30

BAB 5 KESIMPULAN DAN SARAN

5.1 Kesimpulan 35

5.2 Saran 35

DAFTAR PUSTAKA 36

(14)

DAFTAR GAMBAR

Gambar 2.1 Proses enkripsi dan dekrisi pada algoritma simetris 5 Gambar 3.1 Diagram blok sistem pengamanan pesan 13

Gambar 3.2 Proses Enkripsi 14

Gambar 3.3 Proses Dekripsi 16

Gambar 4.1 Tampilan aplikasi 25

Gambar 4.2 Proses enkripsi tahap 1 26

Gambar 4.3 Proses enkripsi tahap 2 27

Gambar 4.4 Proses dekripsi 28

Gambar 4.5 Grafik memori dan runtime pada proses enkripsi 32 Gambar 4.6 Grafik memori dan runtime pada proses dekripsi 34

(15)

DAFTAR TABEL

Tabel 2.1 Karakter dengan penomoran bilang 8

Tabel 2.2 Konversi karakter ke ASCII dan Biner 10 Tabel 2.3 Konversi krakter kunci ke ASCII dan biner 10

Tabel 2.4 Penelitian terdahulu 11

Tabel 3.1 Perbedaan proses enkripsi Algoritm One Time Pad 15 Tabel 3.2 Perbedaan proses dekripsi Algoritm One Time Pad 17 Tabel 4.1 Konversi plaintext ke ASCII ke biner 20 Tabel 4.2 Nilai karakter bilangan ganjil pada plaintext 21 Tabel 4.3 Nilai karakter bilangan genap pada kunci 22 Tabel 4.4 Konversi karakter ke ASCII dan biner plaintext modifikasi 22 Tabel 4.5 Konversi karakter ke ASCII dan biner kunci 22

Tabel 4.6 ciphertext hasil perhitungan XOR 23

Tabel 4.7 Karakter hasil dekripsi dalam bentuk ASCII dan biner 24 Tabel 4.8 Perbandingan memori dan runtime pada proses enkripsi 30 Tabel 4.9 Perbandingan memori dan runtime pada proses dekripsi 32

(16)

BAB 1 PENDAHULUAN 1.1 Latar Belakang

Perkembangan internet ikut berdampak kepada pengembangan algoritma kriptografi.

Sebuah algoritma yang digunakan untuk melakukan sebuah enkripsi dan dekripsi tidak hanya harus benar saja, namun juga harus efisien digunakan. Sebuah algoritma dikatakan efisien apabila algoritma tersebut menggunakan memori yang relatif lebih kecil dan memiliki waktu proses yang cepat.

Sejauh ini, banyak penelitian yang telah membahas mengenai efisiensi sebuah algoritma. Mengenai pengukuran waktu dan ruang memori yang dibutuhkan dikenal dengan kompleksitas algoritma. Kompleksitas algoritma sendiri dapat diartikan sebagai sejumlah tahapan komputasi yang dilakukan oleh sebuah algoritma untuk menyelesaikan masalah (Berthold. V, 2013).

Algoritma One Time Pad merupakan salah satu algoritma kriptografi klasik yang sulit dipecahkan (Zulfidar, 2014, Stamp, 2011). Hal ini dikarenakan dalam melakukan proses enkripsi, One Time Pad melakukan enkripsi dan dekripsi setiap karakter dalam plaintext yang mengakibatkan jumlah karakter plaintext dan kunci sama. Hal ini akan membuat kriptanalis kesulitan dalam memecahkan kode kunci One Time Pad apabila kunci yang digunakan adalah acak.

Algoritma One Time Pad Memiliki kelemahan dalam penggunaannya untuk mengekripsi sebuah pesan. Kelemahannya adalah One Time Pad hanya dapat melakukan proses enkripsi dan dekripsi untuk pesan singkat saja. Hal ini diakibatkan karena jumlah karakter plaintext dan kunci sama, akan memakan banyak memori dan waktu yang lama dalam melakukan proses enkripsi dan dekripsi (Zulfidar, 2014).

Kelemahan ini mengakibatkan One Time Pad tidak lagi menjadi algoritma yang praktis untuk di gunakan. Banyak penelitian sebelumnya hanya membahas mengenai kombinasi algoritma One Time Pad dan Algoritma lainnya dalam pembangkitan kunci, bukan kepada efektifitas dan kompleksitas penggunaan algoritma.

Penulis merasa perlu mengusulkan sebuah metode baru untuk membuat One Time Pad menjadi lebih efektif digunakan, yaitu dengan cara membuat kunci lebih singkat atau tidak bergantung kepada jumlah karakter plaintext. Kunci tersebut juga akan langsung terbentuk berdasarkan karakter dari isi pesan.

(17)

Berdasarkan uraian tersebut, penulis memilih judul “Analisis Pembentukan Kunci Singkat Dinamis Algoritma One Time Pad untuk Pengamanan Pesan.

1.2 Rumusan Masalah

Algoritma One Time Pad tidak efektif jika digunakan untuk pengamanan pesan dengan jumlah karakter yang banyak dikarenakan jumlah karakter kunci dan jumlah karakter plaintext akan sama.

1.3 Batasan Masalah

Batasan-batasan masalah dalam penelitian ini adalah sebagai berikut:

1. Simulasi komputer menggunakan bahasa pemrograman Java

2. Pesan berupa teks (menggunakan kombinasi huruf, angka dan simbol) 3. Tidak membahas serangan

1.4 Tujuan Penelitian

Tujuan penelitian ini adalah untuk menemukan metode baru dalam membuat kunci OTP yang singkat dan tidak bergantung kepada jumlah karakter plaintext.

1.5 Manfaat Penelitian

Manfaat penelitian ini adalah sebagai berikut:

1. Dapat menambah pengetahuan dan wawasan bagi masyarakat terutama pelajar/

mahasiswa.

2. Sebagai bahan pembelajaran tentang konsep keamanan pesan menggunakan algoritma kriptografi One Time Pad.

(18)

BAB 2

TINJAUAN PUSTAKA 2.1 Kriptografi

Kriptografi dapat diartikan sebagai bidang ilmu dalam mengamankan pesan. Orang yang melakukan proses kriptografi disebut cryptographer. Sedangkan cryptanalysis adalah suatu ilmu atau dalam memcahkan ciphertext dan orang yang melakukannya disebut cryptanalyst.

Bruce Scheiner dalam bukunya “Applied Cryptography” menggambarkan kriptografi sebagai ilmu pengetahuan untuk menjaga suatu pesan supaya tetap aman. Beberapa prinsip yang mendasari kriptografi, diantaranya adalah:

● Kerahasiaan: pengiriman pesan harus dapat dipastikan kerahasisaanya. Hal ini biasanya dengan memanfaatkan sebuah algoritma yang mampu mengubah subuah pesan menjadi karakter aneh yang sulit dibaca.

● Keutuhan data: Pesan yang dikirimkan dapat mendeteksi adanya manipulasi, penghapusan dan penambahan sebagian atau keseluruhan pesan oleh pihak yang tidak bertanggungjawab.

● Keontetikan: Pesan yang dikirim dan pesan yang diterima harus dapat di idenfitikasi dan verifikasi terhadap keaslian pesannya.

● Anti-penyangkalan: Pesan yang dikirim dan diterima dapat mencegah pihak-pihak yang menyangkal aksi yang dilakukan oleh pengirim atau penerima, misalnya pengirim tidak mengakui bahwa dia adalah yang mengirim pesan tersebut.

Cryptographic system atau cryptosystem adalah suatu sistem untuk mengubah plaintext ke ciphertext dan juga sebaliknya. Dalam melakukan proses enkripsi dan dekripsi sebuah pesan dibutuhkan kunci yang telah dibuat sebelumnya menggunakan algoritma tertentu. Kesulitan pembentukan kunci akan bergantung kepada algoritma yang dipilih.

Sebuah Algoritma kriptografi terdiri dari algoritma enkripsi (E) dan algoritma dekripsi (D). Algoritma enkripsi menggunakan kunci enkripsi (KE), sedangkan algoritma dekripsi menggunakan kunci dekripsi (KD). Secara umum operasi enkripsi dan dekripsi dapat diterangkan secara matematis sebagai berikut:

(19)

EK (M) = C (Proses Enkripsi) DK (C) = M (Proses Dekripsi)

Pada saat proses enkripsi, kita menyandikan pesan M dengan suatu kunci K lalu dihasilkan pesan C. Sedangkan pada proses dekripsi, pesan C tersebut diuraikan dengan menggunakan kunci K sehingga dihasilkan pesan M yang sama seperti pesan sebelumnya.

Apabila seseorang mengetahui jenis algoritma yang kita gunakan dalam melakukan proses enkripsi sebuah pesan pada dasarnya tidak masalah, asal tidak tahu kunci yang kita gunakan. Setiap algoritma memiliki level kerumitan yang berbeda-beda dalam menjaga sebuah pesan agar tetap rahasia.

Terdapat dua jenis algoritma kriptografi berdasarkan jenis kuncinya:

1. Algoritma Kriptografi Simetris 2. Algoritma Kriptografi Asimetris

2.1.1. Algoritma Kriptografi Simetris

Algoritma Kriptografi Simetris atau dikenal juga dengan secret kunci algorithm menggunakan teknik penggunaan kunci eknripsi yang sama dengan kunci untuk dekskripsinya (Zulfizar, 2014). Level keamanan algoritma ini bergantung kepada jenis pemilihan algoritma dan kesulitan kunci yang digunakan. Beberapa contoh algortima simetris adalah, RC2, DES, , RC5, RC6, IDEA, RC4 Twofish, Magenta, OTP AES, Blowfish, GOST, A5, Kasumi dan banyak lainnya.

Mekanismenya dapat digambarkan seperti berikut ini:

1. Budi dan Ani menyepakati untuk mengirim sebuah pesan rahasia. Mereka sepakat untuk menggunakan sebuah algoritma kriptografi simetris.

2. Budi dan Ani menyepakati kunci yang telah dibuat untuk pemecahan pesan rahasia.

(20)

Adapun proses enkripsi dan dekripsi algoritma simetris dapat dilihat pada gambar 2.1.

Gambar 2.1 Proses enkripsi dan dekripsi pada algoritma simetris

2.1.2. Algoritma Kriptografi Asimetris

Algoritma kriptografi asimetris atau dikenal dengan algoritma public kunci didesain dengan prinsip kemudahan dalam penyebaran kunci. Kunci yang digunakan untuk enkripsi akan berbeda dari kunci yang digunakan untuk dekripsi. Hal ini berbeda dengan algoritma simetris yang kunci keduanya adalah sama. Umumnya kunci untuk proses enkripsi disebut dengan kunci publik dan kunci untuk dekripsi disebut dengan kunci privat. Beberapa contoh algoritma yang termasuk ke dalam algoritma asimetris adalah RSA, DH, Quantum, ECC, DSA, ElGamal dan lain-lain (Haramaini T 2014).

2.2 Kompleksitas Algoritma

Kompleksitas algoritma dapat dikatakan sebagai ukuran dari banyaknya tahapan komputasi yang diperlukan oleh algoritma untuk menyelesaikan sebuah masalah. Pada umumnya, sebuah algoritma yang dapat melakukan tahapan komputasi yang singkat (waktu yang dibutuhkan sedikit) memiliki kompleksitas yang rendah. Sebaliknya, algoritma yang membutuhkan banyak tahapan dan waktu penyelesaian yang lama untuk menyelesaikan masalahnya mempunyai kompleksitas yang tinggi. ( Kumalasari D, 2017) Kompleksitas sebuah algoritma setidaknya dapat dikategorikan ke dalam dua macam.

Yaitu kompleksitas waktu dan kompleksitas ruang. Kompleksitas waktu, biasanya dinyatakan dengan , dihitung berdasarkan dari jumlah tahapan komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukan , dimana

(21)

ukuran masukan merupakan jumlah data yang diproses oleh sebuah algoritma.

Kompleksitas ruang, dinyatakan oleh , diukur dari memori yang digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari dari masukan . Dengan menggunakan kompleksitas waktu atau kompleksitas ruang, dapat ditentukan laju peningkatan waktu atau ruang yang diperlukan algoritma, seiring dengan meningkatnya ukuran masukan.

2.2.1. Kompleksitas Waktu

Kebenaran sebuah algoritma harus selalu melewati tahap pengujian dengan jumlah masukan tertentu, tujuannya adalah untuk memastikan kinerja algoritma berupa waktu yang dibutuhkan untuk mengeksekusi sebuah algoritma dan melihat ruang memori yang dipakai untuk penggunaan struktur datanya (Nugraha D.W. 2012).

Menentukan kompleksitas waktu suatu algoritma, diperlukan ukuran masukan serta running time algoritma tersebut. Sehingga running time suatu algoritma dapat dinyatakan sebagai fungsi dari .

Running time algoritma pada masukan tertentu adalah jumlah langkah komputasi yang dieksekusi. Satu baris pseudocode dapat memiliki jumlah waktu yang berbeda dari baris lain. Kita dapat mengasumsikan bahwa setiap pelaksanaan baris ke-i membutuhkan waktu sebesar ci , dimana ci adalah konstanta.

Kompleksitas waktu dibedakan atas 3 macam, yaitu:

1. : kompleksitas waktu untuk kasus terburuk (worst case) 2. : kompleksitas waktu untuk kasus terbaik (best case) 3. : kompleksitas waktu untuk kasus rata-rata (average case)

(22)

2.2.2. Kompleksitas Ruang

Kompleksitas ruang dapat diartikan sebagai jumlah memori yang dibutuhkan oleh komputer untuk menjalankan sebuah tahapaan komputasi atau algoritma sampai selesai.

Kompleksitas ruang dapat diukur dari memori yang digunakan oleh struktur data yang terdapat dalam algoritma sebagai fungsi dari ukuran masukan n.

2.3 Algoritma One Time Pad (OTP)

One Time Pad (OTP) adalah salah satu algoritma klasik yang memiliki kunci simetris.

Artinya, Algoritma OTP memiliki kunci enkripsi yang sama dengan kunci dekripsi.

Algoritma ini termasuk salah satu algoritma yang sulit dipecahkan hingga sekarang.

(Hortsmeyer et al., 2013, Zaienah et al., 2015).

Cara kerja One Time Pad adalah penyampai pesan dan penerima pesan mememiliki kunci yang sama. Kunci yang digunakan juga hanya dipakai satu kali saja untuk melakukan proses enkripsi dan dekripsi. Apabila sudah selesai digunakan, harus segera dihapus/dihilangkan agar tidak dapat dipakai lagi untuk enkripsi dan dekripsi pesan yang lain.

OTP dianggap tidak dapat dipecahkan apabila kunci yang digunakan hanya sekali, dan menggunakan kunci dengan algoritma random. Dalam proses enkripsi, algoritma ini menggunakan metode stream chipper yang berasal dari XOR antara bit plaintext dengan bit kunci. Plaintext terlibih dahulu diubah ke dalam kode ASCII dan kemudian dikenakan operasi XOR. (Zulfizar.,2014, Nemati., 2011, Katti Y., 2015, Haramaini T., 2014).

2.3.1 Sejarah One Time Pad

Algoritma One Time Pad pertama kali ditemukan oleh Frank Miller pada tahun 1882. Ia menggunakan algoritma tersebut untuk mengamankan pesan telegraf.

Kemudian pada tahun 1917 algoritma ini dipatenkan oleh Gilbert Vernam setelah ia menemukan sebuah chipper berdasarkan teknologi teleprinter. Setiap karakternya dapat langsung dikombinasikan secara elektrik menggunakan kunci pita kertas. Joseph Mauborgne yang saat itu menjabat sebagai kapten U.S Army menyadari bahwa urutan plaintext pada kunci pita tadi benar-benar acak, dan sangat sulit untuk dipecahkan oleh cryptanalyst.

(23)

Seiring dengan berjalanya waktu, OTP terus mengalami perkembangan.

Berikutnya adalah menggunakan paper pad system. Untuk kode, kata-kata yang akan di enkripsi menggunakan codebook, mirip seperti kamus. Demi menjaga kerahasiaan, nomor penting dikombinasikan dahulu.

Claude Shannon pada tahun 1940 melakukan percobaan untuk membuktikan level keamanan algoritma OTP, hasilnya OTP memang tidak dapat dipecahkan hingga sekarang (Doeeley., 2013).

2.3.2 Proses Kerja One Time Pad

Berikut ini merupakan cara kerja algoritma One Time Pad:

1. Enkripsi Ci=(Pi+Ki) mod 26 2. Dekripsi Pi=(Ci-Ki) mod 26 Pi adalah plaintext dan Ki adalah kunci.

Misalnya:

Kita mempunyai sebuah plaintext: MUSLIMRAMLI Kita menggunakan kunci random: HGYGKDUBUEL Kita mengasumsikan A=0, B=1, C=2, ….,Z=25.

Informasi mengenai karakter dengan penomoran bilangan dijelaskan pada tabel 2.1 Tabel 2.1 Karakter dengan penomoran bilangan

A B C D E F G H I J K L M

0 1 2 3 4 5 6 7 8 9 10 11 12

N O P Q R S T U V W X Y Z

13 14 15 16 17 18 19 20 21 22 23 24 25

(M+H) mod 26 = 12+7 mod 26 = 19 = T

(24)

(M+U) mod 26 = (12+20) mod 26 = 6 = G (L+E) mod 26 = (11+4) mod 26 = 15 = P (I+L) mod 26 = (8+11) mod 26 = 19 = T

Dengan demikian chippertext yang terbentuk adalah TAQRSPLBGPT dengan total karakter adalah 11. Ingat, panjang plaintext sama dengan panjang kunci dan sama dengan panjang chippertext. Untuk dekripsinya agar pesan tersebut kembali normal menggunakan Pi=(Ci-Ki) mod 26 sebagai berikut:

(T-H) mod 26 = 19-7 mod 26 = 12 = M (A-G) mod 26 = (0-6) mod 26 = 20 = U (Q-Y) mod 26 = (16-24) mod 26 = 18 = S (R-G) mod 26 = (17-6) mod 26 = 11 = L (S-K) mod 26 = (18-10) mod 16 = 8 = I (P-D) mod 26 = (15-3) mod 12 = M (L-U) mod 26 = (11-20) mod 26 = 17 = R (B-B) mod 26 = (1-1) mod 26 = 0 = A (G-U) mod 26 = (22-20) mod 26 = 12 = M (P-E) mod 26 = (15-4) mod 26 = 11 = L (T-L) mod 26 = (19-11) mod 26 = I

Setelah mengalami proses enkripsi, chippertext kembali menjadi plaintext yaitu MUSLIMRAMLI.

Selain menggunakan rumus di atas untuk melakukan enkripsi dan dekripsi, kita juga dapat menggunakan XOR. Caranya adalah dengan mengubah terlibih dahulu setiap karakter ke biner, kemudia baru di XOR kan dengan kuncinya. Contohnya adalah:

Kita mempunya plaintext : MALU Kuncinya adalah : BTRP

Langkah pertama kita akan mencari nilai ASCII untuk setiap karakter dan mengubahnya ke binner.

(25)

Tabel 2.2 akan menjelaskan mengenai konversi bilangan contoh plaintext dari ASCII ke Biner.

Tabel 2.2 Konversi karakter ke ASCII dan Biner

Karakter ASCII Biner

M 77 1001101

A 65 1000001

L 76 1001100

U 85 1010101

Tabel 2.3 akan menjelaskan mengenai konversi bilangan kunci dari ASCII ke Biner.

Tabel 2.3 Konversi karakter kunci ke ASCII dan Biner

Karakter ASCII Biner

B 66 1000010

T 84 1010100

R 82 1010010

P 80 1010000

Setelah itu, masing-masing karakter plaintext akan kita XOR-kan dengan kunci.

M= 0100 1101 | A= 0100 0001 | L= 0100 1100 | U=0101 0101 Plaintext B = 0100 0010 | T = 0101 0100 | R= 0101 0010 | P=0101 0000 Kunci

……….. XOR

SI= 0000 1111 | NAK = 0001 0101 | RS=0001 1110 | ENQ=0000 0101 Chippertext Keterangan:

SI : Shift in (tidak tampak)

(26)

0100 0010 | 0101 0100 | 0101 0010 | 0101 0000 => Kunci

………. => XOR

0100 1101 | 0100 0001 | 0100 1101 | 0101 0101 => Plaintext (MALU)

Terlihat jelas hasil enkripsi dan dekripsi diatas berjalan dengan sempurna. Plaintext MALU yang melakukan proses enkripsi menghasilkan ciphertext SI NAK RS ENQ (bilangan ASCII). Jika dideksripsi ulang menggunakan kunci BTRP maka akan menghasilkan plaintext dasar yaitu MALU.

2.4 Penelitian Terdahulu

Penelitian terdahulu mengenai One Time Pad dapat dilihat pada tabel 2.4.

Tabel 2.4 Penelitian terdahulu

NO Penelitian (Tahun) Metode yang Digunakan Hasil 1. Nasution W.N et al. (

2017)

Insertion transposition dan kunci coloumnar

transposition

Perpaduan kedua metode ini mampu meingkatkan kinerja OTP 2. Srikantaswami (2017) Penambahan aritmatik dan

operasi logika untuk pembentukan kunci

Skema yang diusulkan dapat bekerja dengan baik

3. Devipria (2015) Menggunakan Complement Method

Metode yang diusulkan sukses meningkat kinerja kemaanan baik di sisi klien maupun server

(27)

(Lanjutan) Tabel. 2.4 Penelitian terdahulu NO Penelitian (Tahun) Metode yang Digunakan Hasil 4. Kumar et al (2011) Menggunakan Metode

Enhanced

Metode ini sukses mengurangi jumlah karakter kunci dengan tanpa

mengorbankan kompleksitas ruang memori.

5. Widiasari I.R (2012) Kombinasi AES dan OTP Panjang kunci tidak berefek ke waktu proses, ukuran file sama sebelum dan sesudah enkripsi.

(28)

BAB 3

METODOLOGI PENELITIAN 3.1 Analisis Algoritma

Pada tahapan ini, analisis dilakukan dengan mengkaji secara teoritis algoritma One Time Pad serta menganalisis nilai kompleksitas algoritma yang sudah dimodifikasi dan algoritma yang belum mengalami modifikasi.

3.2 Diagram Blok Sistem

3.2.1. Diagram Blok Sistem Pengamanan Pesan

Diagram blok pengamanan pesan secara umum akan dijelaskan pada gambar 3.1

Gambar 3.1 Diagram blok sistem pengamanan pesan

Umumnya cara kerja proses enkripsi dan dekripsi pada algoritma klasik seperti One Time Pad adalah sesuai dengan diagram blok gambar 3.1. Urutan kerjanya adalah sebagai berikut:

1. Pengirim pesan menyiap pesan yang akan dikirim. Kemudian melakukan pemilihan kunci. Pemilihan kunci umumnya terserah pengirim pesan, bisa secara acak atau ada pola tertentu.

2. Setelah ada pesan dan kunci, langkah berikutnya pesan tersebut akan dienkripsi menjadi ciphertext. Ciphertext inilah nantinya yang akan disampaikan kepada penerima.

3. Penerima mendapatkan cihpertext dan kunci. Untuk mendapatkan plaintext atau pesan asli, maka harus mengalami proses dekripsi dulu menggunakan ciphertext dan kunci yang benar

(29)

3.2.2. Proses Enkripsi One Time Pad

Proses enkripsi untuk Algoritma One Time Pad asli dan Algoritma One Time Pad modifikasi dijelaskan pada gambar 3.2.

Gambar 3.2 Proses enkripsi

Pada Gambar 3.2 terdapat dua versi skema kerja Algoritma One Time Pad, yaitu algoritma yang masih original dan yang sudah dimodifikasi. Pada bagian algoritma versi original, tahapannya adalah pengirim pesan menyiapkan plaintext, kemudian menentukan kunci. Berikutnya plaintext dan kunci yang sudah ditentukan akan mengalami proses enkripsi XOR. Hasil dari XOR kunci dan plaintext adalah ciphertext.

Pada skema model kedua atau algoritma One Time Pad yang sudah mengalami proses modifikasi. Caranya kerjanya adalah pengirim pesan membuat plaintext yang hendak dikirimkan, kemudian menentukan jumlah kunci. Proses pembuatan kunci berdasarkan skema pengambilan bilangan genap secara descending dan tidak boleh ada karakter yang berulang. Berikutnya adalah sistem akan membuat plaintext hasil modifikasi dengan menggunakan skema pengambilan bilang ganjil dengan urutan ascending dan tidak ada karakter yang sama. Setalah itu sistem melakukan proses enkripsi XOR dengan menggunakan kunci dan plaintext hasil modifikasi. Setelah melakukan

(30)

Perbedaan proses enkripsi antara Algoritma One Time Pad asli dan Algoritma One Time Pad modifikasi akan dijelaskan pada tabel 3.1.

Tabel 3.1 Perbedaan proses enkripsi Algoritma One Time Pad NO One Time Pad Modifikasi One Time Pad Asli 1. Pengirim menyiapkan pesan atau

plaintext

Pengirim menyiapkan pesan atau plaintext

2. Pengirim menentukan jumlah kunci yang ingin dibuat oleh sistem. Jumlah kunci harus lebih sedikit daripada plaintext.

Pengirim tidak perlu menentukan jumlah kunci. Pengirim langsung menyiapkan kunci sejumlah plaintext yang telah dibuat.

3. Sistem melakukan proses pembuatan kunci berdasarkan skema pengambilan bilangan genap secara descending dan tidak boleh ada karakter yang berulang.

Sistem tidak melakukan proses pembuatan kunci.

4. Sistem akan membuat plaintext hasil modifikasi dengan menggunakan skema pengambilan bilang ganjil dengan urutan ascending dan tidak ada karakter yang sama.

Sistem tidak membuat plaintext modifikasi.

5. Sistem melakukan proses enkripsi XOR dengan menggunakan kunci dan plaintext hasil modifikasi.

Sistem melakukan proses enkripsi XOR dengan menggunakan kunci dan plaintext asli.

6. Pengirim memperoleh ciphertext dengan jumlah karakter sama dengan kunci. Ciphertext ini nantinya akan di pakai oleh penerima pesan untuk proses dekripsi.

Pengirim memperoleh ciphertext dengan jumlah karakter sama dengan kunci. Ciphertext ini nantinya akan di pakai oleh penerima pesan untuk proses dekripsi.

(31)

Proses Dekripsi Pesan

Proses dekripsi pesan dijelankan pada gambar 3.3.

Gambar 3.3 Proses Dekripsi

Gambar 3.3 menampilkan dua diagram alur proses dekripsi untuk penerima pesan, yaitu proses dekripsi untuk Algoritma One Time Pad versi original dan versi modifikasi. Pada proses dekripsi One Time Pad penerima memastikan bahwa kunci yang diterima adalah benar. Berikutnya penerima menyiapkan ciphertext yang akan di dekripsi. Kemudian sistem akan melakukan proses XOR dekripsi antara kunci dan ciphertext. Berikutnya sistem akan melakukan proses XOR antara kunci dan ciphertext, hasilnya adalah ciphertext.

Pada proses dekripsi menggunakan algoritma One Time Pad hasil modifikasi adalah sistem akan melakukan proses dekripsi XOR antara kunci dan plaintext hasil

(32)

Perbedaan proses dekripsi antara Algoritma One Time Pad asli dan Algoritma One Time Pad modifikasi akan dijelaskan pada Tabel 3.2.

Tabel 3.2 Perbedaan proses dekripsi Algoritma One Time Pad NO One Time Pad Modifikasi One Time Pad Asli 1. Penerima memastikan bahwa kunci

yang diterima adalah benar.

penerima memastikan bahwa kunci yang diterima adalah benar.

2. Penerima menyiapkan chipertext yang akan di dekripsi.

Penerima menyiapkan chipertext yang akan di dekripsi.

3. Sistem melakukan proses XOR dekripsi antara kunci dan ciphertext hingga menemukan plaintext hasil modifikasi.

Sistem melakukan proses XOR dekripsi antara kunci dan cipertext untuk mendapatkan plaintext asli.

4. Sistem melakukan proses dekripsi tahap dua untuk menemukan urutan posisi plaintext asli berdasarkan skema pengambilan plaintext modifikasi.

Proses selesai.

5. Dekripsi sukses, sistem akan menampilkan plaintext asli.

Proses selesai.

3.3 Pengujian Sistem

Simulasi adalah suatu prosedur kuantitatif yang menggambarkan sebuah sistem dengan mengembangkan sebuah model dari sistem tersebut dan melakukan sederetan uji coba untuk memperkirakan perilaku sistem pada kurun waktu tertentu.

Bahasa Pemrograman yang dipilah adalah java. Beberapa keunggulan Java adalah:

1. Berorientasi Objek 2. Terdistribusi 3. Aman

4. Netral Arsitektur 5. Portable

(33)

6. Interpreter 7. Powerful 8. Multithreading 9. Dinamis

(34)

BAB 4

HASIL DAN PEMBAHASAN 4.1. Pendahuluan

Pada penelitian ini akan dilakukan pengujian kinerja terhadap modifikasi Algoritma One Time Pad untuk menentukan kunci singkat dan dinamis. Penentuan kunci untuk algoritma ini berdasar jumlah karakter yang diminta oleh pengirim pesan, dengan ketentuan teks harus panjang dan jumlah karakter kunci yang diminta lebih sedikit daripada plaintext yang tersedia.

4.2 Proses Enkripsi

Pada proses enkripsi, kita harus menyiapkan terlebih dahulu plaintext atau pesan asli yang kita ubah. Pada tahap ini, sedikit perbedaaan dengan algoritma asli dan hasil modifikasi. Pada Algoritma One Time Pad versi asli, kita harus menyiapkan dulu kunci- nya. Kunci bisa hasil karakter yang menggukan algoritma acak atau pun karakter yang memang sudah dipersiapkan oleh si pengirim pesan. Aturannya adalah, Jumlah kunci yang disediakan harus sama dengan jumlah plaintext yang akan di enkripsi. Artinya, hasil dekripsi yaitu ciphertext juga memiliki jumlah karakter yang sama dengan plaintext dan kunci.

Perbedaan dengan algoritma One Time Pad hasil modifikasi adalah kunci yang digunakan jumlahnya akan diatur oleh sistem sebanyak jumlah karakter yang diminta oleh si pengirim pesan. Misalnya, pengirim pesan menggunakan plaintext dengan 1000 karakter, namun ia hanya ingin memiliki 10 kunci saja. Sistem akan melalukan pencarian kunci baru sebanyak 10 karakter sesuai dengan skema perhitungan di algoritma hasil modifikasi.

Dalam pembahasan ini penulis hanya akan membuat skema enkripsi 29 karakter dengan mencari jumlah kunci 5 karakter baru. Namun, untuk pengujian sistem, nanti penulis akan mencoba jumlah karakter yang lebih banyak untuk dapat mengetahui lebih jelas mengenai efektivitas algoritma, perbandingan waktu yang diperlukan memori yang digunakan. Misalnya, kita mempunyai sebuah plaintext: BUDI KULIAH DI FASILKOMTI USU (29 karakter dengan spasi).

Konversi setiap karakter plaintext ke bilangan ASCII dan Biner akan dijelaskan pada gambar 4.1.

(35)

Tabel 4.1 Konversi plaintext ke ASCII dan Biner

Karakter ASCII Biner

B 66 1000010

U 85 1010101

D 68 1000100

I 108 1101100

SPASI 32 1000000

K 75 1001011

U 85 1010101

L 76 1001100

I 108 1101100

A 65 1000001

H 72 1001000

SPASI 32 1000000

D 68 1000100

I 108 1101100

SPASI 32 1000000

F 70 1000110

A 65 1000001

S 83 1010011

I 108 1101100

L 76 1001100

K 75 1001011

O 79 1001111

M 77 1001101

(36)

Berdasarkan plaintext di atas, sebelumnya kita akan menentukan jumlah kunci untuk mendapatkan plaintext baru. Misalnya dari 29 karakter tadi, kita ingin hanya 5 karakter saja yang menjadi kunci baru.

Untuk mendapatkan kunci tersebut kita akan menggunakan skema pemilihan karakter baru menggunakan kode bilang genap secara Descanding dan karakter yang dipilih tidak berulang. Simulasi nilai karakter bilangan ganjil dapat dilihat pada tabel 4.2.

Tabel 4.2 Nilai karakter bilangan ganjil pada plaintext

B U D I K U L I A H D I

66 85 68 108 32 75 85 76 108 65 65 32 68 108 32

(Lanjutan) Tabel 4.2 Nilai karakter bilangan ganjil pada plaintext

F A S I L K O M T I U S U

70 65 83 108 76 75 79 77 84 108 32 85 83 85

Karakter yang berwarna merah adalah karakter dengan ASCII yang bernilai ganjil, sebaliknya karakter yang berwarna hitam adalah karakter yang bernilai genap. Untuk memilih key dengan aturan karakater tidak berulang, mulai dari descanding dan memiliki nilai bilang ASCII genap ditandai dengan warna biru. Sedangkan yang berwarna kuning adalah karakter yang sama dan dilewati.

Dari kalimat BUDI KULIAH DI FASILKOMTI, kita sudah mendapatkan jumlah 5 kunci baru berdasarkan bilangan ASCII yang bernilai ganjil dan dimulai dari urutan ascending. Kunci tersebut adalah (SPASI)ITLF.

Langkah berikutnya adalah kita akan melakukan proses manipulasi mencari plaintext baru dengan aturan plaintext-nya haru memiliki jumlah karakter yang sama dengan kunci, yaitu 5 karakter.

Tabel 4.3 Nilai karakter bilangan genap pada kunci

B U D I K U L I A H D I

66 85 68 108 32 75 85 76 108 65 65 32 68 108 32

(37)

(Lanjutan) Tabel 4.3 Nilai karakter bilangan genap pada kunci

F A S I L K O M T I U S U

70 65 83 108 76 75 79 77 84 108 32 85 83 85

Pada tabel di atas, karakter yang berwarna hitam adalah plaintext karakter yang bernilai ganjil dan tidak berulang. Proses pencariannya menggunakan urutan ascending.

Dari tabel di atas akan digambarkan plaintext hasil modifikasi dengan berwarna hijau, dan karakter yang mengalami perulangan dengan berwarna kuning. Palintext baru hasil modifikasi adalah: UKAHS.

Langkah berikutnya adalah kita akan melakukan proses enkripsi dengan menggunakan XOR untuk plaintext hasil modifikasi dengan kunci yang telah kita dapatkan tadi. Berikut ini adalah tabel bilangan ASCII dan bilangan binner untuk plaintext hasil modifikasi dan kunci. Konversi setiap karakter plaintext hasil modifikasi ke SCII dan Biner akan dijelaskan pada tabel 4.4.

Tabel 4.4 Konversi karakter ke ASCII dan Biner plaintext modifikasi

Karakter ASCII Biner

SPASI 32 1000000

I 73 1001001

T 84 1010100

L 76 1001100

F 70 1000110

Tabel 4.6 menunjukan konversi setiap karakter kunci yang kita gunakan ke bilangan ASCII dan Biner.

(38)

Setelah itu, masing-masing karakter plaintext akan kita XOR-kan dengan kunci.

0100 0000 | 0100 1001 | 0101 0100 | 0100 1100 | 0100 0110 Plaintext 0101 0101 | 0100 1011 | 0100 0001 | 0100 1000 | 0101 0011 Kunci

……….. XOR 0001 0101 | 0000 0010 | 0001 0101 | 0000 0100 | 0001 0101 Ciphertext

Setelah melakukan proses enkripsi, kita akan mendapatkan ciphertext dalam bentuk bilangan biner. Konversi bilangannya ke ASCII dan karakter asli akan dijelaskan pada tabel 4.6.

Tabel 4.6 Karakter ciphertext hasil perhitungan XOR

Biner ASCII Karakter ciphertext

0001 0101 21 (nak)

0000 0010 2 (stx)

0001 0101 21 (nak)

0000 0100 4 (eot)

0001 0101 21 (nak)

Dari hasil perhitungan tadi maka didapatkan chipertext-nya, yaitu:

(nak)(stx)(nak)(eot)(nak).

4.3 Proses Dekripsi

Setelah melakukan prosen enkripsi, tentunya kita juga perlu melakukan proses dekripsi untuk memastikan bahwa algoritma tersebut dapat bekerja dengan baik. Untuk melakukan proses dekripsi, kita harus menggunakan rumus Plaintext = Kunci XOR Ciphertext.

Kunci untuk pesan: BUDI KULIAH DI FASILKOMTI USU adalah UKUAH dan Ciphertext-nya adalah: (nak)(stx)(nak)(eot)(nak)

0001 0101 | 0000 0010 | 0001 0101 | 0000 0100 | 0001 0101 Plaintext 0101 0101 | 0100 1011 | 0100 0001 | 0100 1000 | 0101 0011 Kunci

……….. XOR

0100 0000 | 0100 1001 | 0101 0100 | 0100 1100 | 0100 0110 Chippertext

(39)

Setelah melakukan proses dekripsi, kita akan mendapatkan plaintext dalam bentuk bilangan biner. Konversi bilangannya ke ASCII dan karakter asli akan dijelaskan pada tabel 4.7.

Tabel 4.7 Karakter hasil dekripsi dalam bentuk ASCII dan Biner

Karakter ASCII Biner

SPASI 32 01000000

I 73 01001001

T 84 01010100

L 76 01001100

F 73 01001001

Hasil XOR antara chipertext dan kunci terlihat dapat kembali mencari plaintext hasil modifikasi. Langkah berikutnya adalah sistem akan mencari kembali lokasi array penempatan plaintext modifikasi untuk dapat menampilkan plaintext asli secara utuh.

4.4 Hasil Implementasi Program

Prinsip kerja algoritma ini dapat dimodelkan di pemograman Java, dengan melakukan modfikasi algoritma One Time Pad pada saat proses pembentukan kunci dan mendapatkan plaintext baru sejumlah karakter kunci yang diminta oleh si pengirim pesan. Berikut ini adalah tampilan aplikasi One Time Pad untuk mendapatkan kunci lebih singkat dari jumlah plaintext asli.

Tampilan program aplikasi secara keseluruhan dapat dilihat pada gambar 4.1.

(40)

Gambar 4.1. Tampilan aplikasi

Gambar 4.1 adalah tampilan aplikasi Algoritma One Time Pad yang telah di modifikasi.

Terdapat beberapa fitur, diantaranya adalah:

1. Form plaintext

Di sini adalah halam kerja pengirim pesan. Pesan dapat di ketik atau di copy di bagian ini dengan jumlah karakter yang tidak terbatas.

2. Set length of key

Pada bagian ini pengirim pesan akan menentukan berapa karakter jumlah kunci yang akan dibentuk oleh sistem menggunakan skema yang sudah dijelaskan di atas.

3. Form plaintext modifikasi

Pada bagian ini akan ditampilkan plaintext hasil modifikasi sesuai dengan jumlah karakter kunci yang ditentukan sebelumnya.

4. Form kunci

Pada bagian ini akan ditampilkan kunci yang telah diminta oleh pengirim pesan berdasarkan jumlah karakter dan sesuai skema sebelumnya.

5. Button enkripsi

Jika button ini ditekan, makan akan muncul ciphertext baru di form yang telah disediakan.

6. Form Ciphertext

(41)

Pada form ini akan ditampilkan ciphertext setelah mengalami proses penghitungan XOR antara Plaintext modifikasi dan kunci

7. Form Kunci

Masukan kunci awal untuk melakukan proses enkripsi 8. Button Dekripsi

Jika sudah isi chipertext dan kunci yang sesuai, penerima pesan dapat melakukan dekripsi dengan mengggunakan button ini.

9. Form Memory Usage

Pada form tersebut akan ditampilan memori yang digunakan untuk memproses sebuah pesan.

10. Form JavaRuntime

Pada Form ini akan ditampilkan lamanya waktu yang diperlukan untuk melakukan sebuah proses enkripsi dan dekripsi pesan.

11. Form Hitung Karakter

Pada Form ini akan ditampilkan jumlah karakter yang digunakan untuk proses enkripsi.

Beberapa proses tampilan aplikasi mulai dari proses pembentukan plaintext baru, pembentukan kunci, enkripsi, dekripsi, tampilan memori dan runtime untuk setiap proses enkripsi dan dekripsi akan ditampilkan pada gambar 4.2

(42)

Pada bagian ini pengirim pesan memasukan pesan yang hendak dikrim ke form plaintext yang telah disediakan. Jumlah karakter plaintext tidak dibatasi. Jika sudah menentukan plaintext, berikutnya pengirim pesan memilih jumlah karakter kunci yang akan diminta kepada sistem. Kunci dan plaintext baru akan muncul berdasarkan skema perhitungan seperti sebelumnya. Proses enkrispi tahap 2 dapat dilihat pada gambar 4.3.

Gambar 4.3 Proses enkripsi tahap 2.

Setelah menentukan jumlah kunci dan mendapatkan plaintext hasil modifikasi, berikutnya pengirim pesan akan menekan button encrypt untuk mendapatkan ciphertext.

Ciphertext dapat muncul dalam bentuk karakter terlihat, symbol atau Unicode. Hasil ini didapat setelah mengalami proses perhitungan XOR antara plaintext baru dan kunci.

Gambar 4.4 menunjukkan proses dekripsi Algoritma One Time Pad modifikasi.

(43)

Gambar 4.4 Proses dekripsi

Setelah mendapatkan ciphertext, tugas pengirim sudah selesai. Ciphertext dan kunci akan diserahkan kepada penerima pesan. Penerima pesan kemudian memasukan ciphertext dan kunci ke form yang tersedia. Kemudian menekan button decrypt untuk melihat pesan asli atau plaintext versi awal. Sebenarnya sebelum plaintext versi awal ini ditampilkan, ada proses dimana kunci dan ciphertext mengalami proses XOR hingga mendapatkan plaintext versi modifikasi. Langkah berikutnya, plaintext hasil modifikasi ini akan menempati array yang ditandai menggunakan library hashmap pada pemrograman java.

Untuk lebih jelasnya model perhitungan dan penempatan array dari proses enkripsi dan dekripsi dari awal hingga akhir, berikut ini adalah pseudocode yang digunakan dalam membangun aplikasi.

(44)

j (int) c

if (j % 2 = 1) then

newPlaintext += message.charAt(i) index ++

return newPlaintext

2. Untuk menemukan key:

Start Read key index 0

i message.length()-1

while (index < panjangKey) then c message

j (int) c

if (j % 2 = 0) then

key += message.charAt(i) index --

return key

3. Untuk enkripsi:

Start

Read plainTextBytes, keyBytes, encryptedText plaintextBytes newPlaintext.getBytes() keyBytes key.getBytes()

for (i = 0; i< plaintextBytes.length; i++) do

encryptedText (byte) keyBytes ^ plainTextBytes

return encryptedText

4. Untuk dekripsi:

Start

Read plainTextBytes, chiper, keyBytes, decryptedText plaintextBytes chiper.getBytes()

(45)

keyBytes key.getBytes()

for (i = 0; i< plaintextBytes.length; i++) do

decryptedText (byte) keyBytes ^ plainTextBytes return decryptedText

5. Untuk pengembalian plaintext awal: HashMap Start

Read newPlaintextIndex, newKeyIndex, message

message HashMap (Character, integer)

newPlaintextIndex HashMap (Character, integer) newKeyIndex HashMap (Character, integer)

if (newPlaintextIndex = decrypted) then

print “dengan menggunakan {key}, chipertext yang terdekripsi menghasilkan pesan {message}”

else

hasil tidak sesuai break

4.5 Perbandingan Memori dan Runtime

Setelah melakukan 15 kali percobaan dengan jumlah karakter berbeda untuk algoritma One Time Pad versi asli dan One Time Pad versi modifikasi, terdapat perbedaan penggunaan memori dan waktu eksekusi program untuk enkripsi dan dekripsi masing- masing algoritma.

Perbandingan memori dan runtime pada proses enkripsi dapat dilihat pada tabel 4.8

(46)

Tabel 4.8 Perbandingan Memori dan Runtime Proses Enkripsi (Lanjutan)

No Jumlah Karakter

Memori (bits) Runtime (ms)

Original Modifikasi Original Modifikasi

3 898 3731200 6483968 23 10

4 925 3935024 7226872 24 11

5 956 4483104 7353664 25 11

6 972 4713768 7218616 27 10

7 996 4918928 7240584 28 14

8 1005 5005232 7335224 30 15

9 1406 5305984 7350640 32 14

10 1948 5739744 7303072 34 14

11 2000 5793392 7434616 35 14

12 2104 5935400 7369904 37 15

13 2465 6076272 7366616 40 15

14 3100 6595752 7425600 43 18

15 3514 6836952 7418960 47 15

Pada tabel enkripsi di atas untuk masing-masing algoritma secara keseluruhan dapat disimpulkan bahwa memori yang dibutuhkan oleh Algoritma One Time Pad versi asli lebih sedikit dibandingkan dengan algoritma hasil modifikasi. Namun, proses eksekusi program atau runtime jauh lebih cepat. Untuk jumlah karakter di bawah 1000, terlihat perbedaan waktu eksekusi One Time Pad modifikasi tidak jauh berbeda dengan algoritma One Time Pad versi asli. Namun, untuk jumlah karakter mencapai 3500 karakter, jumlah waktu yang diperlukan, algoritma One Time Pad hasil modifikasi 3 kali lebih cepat dibandingkan algoritma asli.

Jumlah memori dan runtime yang dibutuhkan oleh sistem digambarkan dalam bentuk grafik pada gambar 4.5.

(47)

Gambar 4.5 Grafik kebutuhan memori dan kebutuhan runtime pada proses enkripsi

Pada grafik terlihat jika jumlah karakter yang input untuk masing-masing algoritma baik versi asli maupun versi modifikasi menghasilkan kebutuhan memori dan runtime yang berbeda. Pada 470 karakter, Algoritma One Time Pad original membutuhkan 3731200 bits memory dan 23 ms runtime. Sedangkan pada Algoritma versi modifikasi dengan jumlah karakter yang sama, yaitu 470 karakter membutuhkan 6483968bits memori dan 10 ms.

Pada jumlah karakter yang lain 3514 karakter yang di uji, masing-masing untuk Algoritma One Time Pad asli membutuhkan 6836952 bits dan 47 ms, sedangkan pada algoritma hasil modifikasi membutuhkan 7418960 bits dan 15 ms. Hal ini menunjukkan bahwa makin banyak karakter yang digunakan algoritma hasil modifikasi menggunakan memori lebih banyak, namun memiliki waktu proses relatif lebih singkat dibandingkan algoritma asli. Hal ini dikarenakan algoritma modifikasi menyimpan beberapa proses tambahan di memory, namun tidak memproses semua karakter saat melakukan proses enkripsi dari plaintext asli ke plaintext hasil modifikasi.

Perbandingan memori dan runtime pada proses dekripsi dapat dilihat pada tabel 4.8

470 879 898 925 956 972 996 1005 1406 1948 2000 2104 2465 3100 3514 0 10 20 30 40 50

0 2000000 4000000 6000000 8000000

Jumlah Karakter Memori (bits) Memori (bits) Runtime (ms) Runtime (ms)

(48)

Tabel 4.11 Perbandingan Memori dan Runtime Proses Dekripsi (Lanjutan)

No Jumlah Karakter Memori Runtime

Original Modifikasi Original Modifikasi

4 925 3935024 3771520 24 7

5 956 4383106 4234712 25 4

6 972 4713768 4246064 27 6

7 996 4918928 5248296 28 6

8 1005 5005232 4280112 30 5

9 1406 5305984 4326216 32 7

10 1948 5739744 4304672 34 9

11 2000 5793392 4342640 35 6

12 2104 5935400 4343408 36 5

13 2465 6076272 4356248 40 9

14 3100 6595752 4412776 43 2

15 3514 6836952 4444464 46 7

Hasil pengujian untuk proses dekripsi di atas untuk algoritma One Time Pad versi asli dan One Time Pad versi modifikasi adalah jumlah waktu yang diperlukan Algoritma One Time Pad modifikasi untuk melakukan proses eksekusi program jauh lebih cepat dibandingkan dengan algoritma versi asli. Kecepatannya untuk jumlah karakter tertentu mencapai 20 kali lipat lebih cepat.

Jumlah memori yang dibutuhkan algoritma modifikasi lebih banyak dibandingkan Algoritma One Time Pad. Jumlah rata-rata memori yang diperlukan untuk melakukan pengujian 1000-3500 karakter plaintext hampir 2 kali lipat algoritma versi asli.

Gambar 4.6 menunjukkan grafik mengenai kebutuhan memori dan runtime yang diperlukan pada proses dekripsi pesan dengan jumlah karakter yang berbeda.

(49)

Gambar 4.6 Grafik kebutuhan memori dan kebutuhan runtime pada proses dekripsi

Pada grafik 4.6 terlihat dengan jumlah karakter yang sama penggunaan memori dan runtime yang yang berbeda untuk algoritma asli dan modifikasi. Untuk jumlah 470 karakter memori dan runtime yang dibutuhkan untuk melakukan proses dekripsi pada algoritmas asli adalah 2200974 bits dan 15 ms. Sedangkan pada algoritma hasil modifikasi dengan jumlah 470 karakter memori dan runtime yang dibutuhkan adalah3293128 bits dan 7 ms. Jumlah memori yang dibutuhkan bergantung kepada banyaknya karakter dan proses yang dilakukan pada proses dekripsi. Selain itu, jumlah kunci juga menentukan jumlah memori dan kecepatan sebuah proses dekripsi.

Secara umum dapat disimpulkan bahwa algoritma asli tanpa modifikasi lebih hemat penggunaan memori untuk melakukan proses enkripsi dan dekripsi. Namun proses eksekusi program atau runtime lebih lambat dibandingkan dengan algoritma hasil modifikasi. Hal ini disebabkan oleh banyak-nya ruang penyimpanan yang dibutukan oleh algoritma modifikasi sebelum melakukan proses lanjutan ke enkripsi.

470 879 898 925 956 972 996 1005 1406 1948 2000 2104 2465 3100 3514 0 10 20 30 40 50

0 2000000 4000000 6000000 8000000

Jumlah Karakter Memori Memori Runtime Runtime

(50)

BAB 5

HASIL DAN PEMBAHASAN 5.1 Kesimpulan

Adapun kesimpulan yang didapatkan dari hasil pengujian algoritma modifikasi dan algoritma hasil modifikasi adalah sebagai berikut:

1. Algoritma One Time Pad dapat dimodifikasi untuk mendapatkan kunci yang lebih pendek dari jumlah karakter. Aturan yang diterapkan adalah pemilihan jumlah kunci ditentukan oleh bilangan genap dengan urutan descending dan tidak boleh ada karakter yang sama atau berulang.

2. Proses pengembalian karakter yang disimpan dengan menggunakan library hashmap pada array program java dapat diterapkan untuk memanipulasi plaintext yang akan dienkripsi dan dekripsi.

3. Jumlah memori yang dibutuhkan oleh Algoritma One Time Pad hasil modifikasi lebih banyak.

4. Waktu eksekusi atau runtime Algoritma One Time Pad untuk enkripasi dan dekripsi jauh lebih cepat dibandingkan dengan algoritma asli.

5.2 Saran

Saran untuk pengembangan penelitian ini adalah:

1. Mencoba model atau skema lain untuk melakukan proses request kunci selain penentuan karakter ASCII genap dan ganjil.

2. Melakukan pengujian library atau bahasa pemrograman lain dalam melakukan simulasi array agar mendapatkan hasil yang lebih cepat.

(51)

DAFTAR PUSTAKA

Berthold Vocking, Helmut Alt, Martin Dietzfelbinger, Rudiger Reischuk, Christian Scheideler, Heribert Vollmer, Dorothea Wagner. Algorithm Unplugged. Springer:

New York.

Devipria. M. 2015. A New Technique for One Time Pad Security Scheme with Complement Method. Internation Journal of Advanced Research in Computer Science and Software Engineering 5 (6): 220-223.

Dooley, John F. 2013. A Brief History of Cryptology and Cryptographic Algorithms.

Springer-Verlag Berlin Heidelberg: New York.

Haramaini T. 2014. Algoritma One Time Pad pada Skema Three Pass Protocol. Tesis.

Universitas Sumatera Utara.

Katti J, Santoshi Pote, B.K. Lande. 2015. Two Level Encryption Based on One Time Pad and Koblitz Methdod of Encoding. International Journal of Computer Applications (0975- 8887) 122 (15): 1-4.

Kumalasari D. 2017. Analisa Perbandingan Kompleksitas Algoritma Bubble Sort, Coktail Sort, dan Comb Sort, dengan Bahasa Pemrograman C++. Journal Speed 9 2:, 1-5.

Kumar R, Roma Jindal, Abhinav Gupta, Sagar Bhalla, Harshit Arora. A Secure Authentication System Using Enhanced One Time Pad Technique. IJCSNS 11 (2):

11-17.

Nemati, Hamid R. & Yang, Li. 2011. Applied Cryptography for Cyber Security and Defense: Information Encryption and Cyphering. Informatic Science Reference: New York.

Nugraha D.W. 2012. Penerapan Kompleksitas Waktu Algoritma Prim untuk Menghitung

(52)

Widiasari I.R. 2012. Combining Advanced Encryption Standard (AES) and One Time Pad Encryption for Data Security. International Journal of Computer Application 57 (20): 1-5.

Zaeniah, Bambang Eka Purnama. 2015. An Analysis of Encryption and Decryption Application by Using One Time Pad Algorithm. IJACSA 6 (9): 292-297.

Zulfizar. 2014. Analisis Kombinasi Algoritma One Time Pad dan Algoritma Elgamal dalam Pengamanan Pesan. Tesis. Universitas Sumatera Utara.

Gambar

Gambar 2.1 Proses enkripsi dan dekripsi pada algoritma simetris
Tabel  2.2  akan  menjelaskan  mengenai  konversi  bilangan  contoh  plaintext  dari  ASCII ke Biner
Tabel 2.4 Penelitian terdahulu
Diagram blok pengamanan pesan secara umum akan dijelaskan pada gambar 3.1
+7

Referensi

Dokumen terkait

(3) Tidak termasuk objek retribusi sebagaimana dimaksud pada ayat (2) adalah tempat usaha/kegiatan yang telah ditentukan oleh. Pemerintah, Pemerintah Propinsi

Dalam penyusunan secara hierarki memerhatikan RPJMD/Renstra Propinsi Kepulauan Riau sebagai acuan Rencana Program Jangka Menengah (RPJMD) Kabupaten

Jadi dari uraian tersebut diatas bisa ditarik kesimpulan secara singkat bahwa manusia hakikatnya adalah makhluk biologis, psikolsogi dan sosial yang memiliki

Hasil penyadapan dengan pola sadap horizontal memiliki produktivitas getah yang lebih tinggi (15,64 g/takik) dibandingkan pola vertikal (11,85 g/takik). Akan tetapi pada

Angket ini saya maksudkan sebagai alat pengumpulan data dalam rangka menyusun skripsi yang berjudul “ Etos Kerja Penenun dalam Meningkatkan Status Ekonomi (Studi Deskriptif

1. Maksiat adalah melakukan suatu perbuatan yang diharamkam syarak dan meninggalkan perbuatan yang diwajibkan syarak. Perbuatan maksiat ini tidak saja yang menyangkut

diawasi, Ooh kalau itu tidak pernah mas, soalnya saya kalau berobat di RSPAW Salatiga cuman minum obat aja P1 (87-135) Pengontrolan yang dilakukan oleh petugas atapun

Audit Manajemen Sumber Daya Manusia tersebut meliputi faktor-faktor sebagai berikut : (a) Independensi (bebas tidak memihak) Berusaha bersikap netral dan