Anda di halaman 1dari 151

Universitas Sumatera Utara

Repositori Institusi USU http://repositori.usu.ac.id


Departemen Teknologi Informasi Tesis Magister

2018

Algoritma RSA dan Elgamal sebagai


Algoritma Tambahan untuk Mengatasi
Kelemahan Algoritma One Time Pad
pada Skema Three Pass Protocol

Sidik, Agung Purnomo

http://repositori.usu.ac.id/handle/123456789/3880
Downloaded from Repositori Institusi USU, Univsersitas Sumatera Utara
ALGORITMA RSA DAN ELGAMAL SEBAGAI ALGORITMA
TAMBAHAN UNTUK MENGATASI KELEMAHAN
ALGORITMA ONE TIME PAD PADA SKEMA
THREE PASS PROTOCOL

TESIS

AGUNG PURNOMO SIDIK


157038075

PROGRAM STUDI S2 TEKNIK INFORMATIKA


FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2018

Universitas Sumatera Utara


ALGORITMA RSA DAN ELGAMAL SEBAGAI ALGORITMA
TAMBAHAN UNTUK MENGATASI KELEMAHAN
ALGORITMA ONE TIME PAD PADA SKEMA
THREE PASS PROTOCOL

TESIS

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah


Magister Teknik Informatika

AGUNG PURNOMO SIDIK


157038075

PROGRAM STUDI S2 TEKNIK INFORMATIKA


FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI
UNIVERSITAS SUMATERA UTARA
MEDAN
2018

Universitas Sumatera Utara


ii

Universitas Sumatera Utara


PERNYATAAN

Algoritma RSA dan Elgamal sebagai Algoritma Tambahan untuk Mengatasi


Kelemahan Algoritma One Time Pad pada Skema Three Pass Protocol

TESIS

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

Medan, 6 Febuari 2018

Agung Purnomo Sidik


NIM. 157038075

iii

Universitas Sumatera Utara


PERNYATAAN PERSETUJUAN PUBLIKASI
KARYA ILMIAH UNTUK KEPENTINGAN
AKADEMIS

Sebagai sivitas akademika Universitas Sumatera Utara, saya yang bertanda tangan di
bawah ini:

Nama : Agung Purnomo Sidik


NIM : 157038075
Program Studi : Magister (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 Royalty
Free Right) atas tesis saya yang berjudul:

Algoritma RSA dan Elgamal sebagai Algoritma Tambahan untuk Mengatasi


Kelemahan Algoritma One Time Pad pada Skema Three Pass Protocol

Beserta perangkat yang ada (jika diperlukan). Dengan Hak Bebas Royalti Non-
Eksklusif ini, Universitas Sumatera Utara berhak menyimpan, mengalih media,
memformat, mengelola dalam bentuk databse, 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.

Demikian pernyataan ini dibuat dengan sebenarnya.

Medan, 6 Febuari 2018

Agung Purnomo Sidik


NIM. 157038075

iv

Universitas Sumatera Utara


Telah diuji pada
Tanggal: 13 Febuari 2018

PANITIA PENGUJI TESIS


Ketua : Dr. Syahril Efendi, S.Si, M.IT
Anggota : 1. Suherman, Ph.D
2. Prof. Dr. Muhammad Zarlis
3. Prof. Dr. Herman Mawengkang

Universitas Sumatera Utara


RIWAYAT HIDUP

DATA PRIBADI

Nama Lengkap : Agung Purnomo Sidik, S.Kom, M.Kom


Tempat dan Tanggal Lahir : Medan, 24 Febuari 1991
Alamar Rumah : Jalan Medan-Binjai KM. 12,5 Jalan Harapan
Dusun V Blok 1 Gg. Rukun No. 753 Desa Puji
Mulyo Kecamatan Sunggal
Telepon/Faks/HP : 0821 6813 5060
E-mail : agungkomed@gmail.com
Instansi Tempat Bekerja : 1. BLC (British Learning Centre)
2. Universitas Pembangunan Pancabudi
Alamat Kantor : 1. Komp. Multatuli Indah Blok CC No. 52-54
Medan 20151
2. Jalan Gatot Subroto Km. 4,5 Medan 20122

DATA PENDIDIKAN

SD : SDN 107825 Tamat : 2003


SMP : MTs. Riyadhusshalihin Tamat : 2006
SMA : SMA Swasta Bayu Pertiwi Tamat : 2009
S1 : Universitas Pembangunan Pancabudi Tamat : 2014
S2 : Teknik Informatika USU Tamat : 2018

vi

Universitas Sumatera Utara


ABSTRAK

Penelitian ini bertujuan untuk menutup kekurangan dari algoritma one time pad pada
skema three pass protocol dengan merancang sebuah algoritma usulan dengan
tambahan algoritma RSA dan Elgamal untuk menutupi kekurangan tersebut. Pada
penelitian ini dilakukan modifikasi terhadap skema three pass protocol agar
mengijinkan terjadinya pertukaran public key. Pesan yang diuji adalah pesan teks.
Terdapat tiga algoritma kriptografi yang digunakan, yaitu algoritma one time pad yang
akan menghasilkan cipher text, algoritma Elgamal dan algoritma RSA yang akan
menghasilkan super cipher text. Algoritma Lehmann Primality Test digunakan untuk
membangkitkan bilangan prima, sedangkan kunci acak KA dan KB untuk algoritma
one time pad dibangkitkan dengan algoritma Blum Blum Shub. Ketiga cipher text
yang dihasilkan pada skema three pass protocol dilakukan enkripsi terlebih dahulu
dengan algoritma RSA atau algoritma Elgamal sebelum melewati jalur three pass
protocol, sehingga hanya super cipher text yang melewati jalur, sedangkan cipher text
tetap rahasia. Cipher text A dan cipher text B dienkripsi menggunakan algoritma
Elgamal menjadi super cipher text A dan super cipher text B, sedangkan cipher text
AB dienkripsi menggunakan algoritma RSA menjadi super cipher text AB. Kunci
yang boleh melewati jalur modifikasi three pass protocol hanya public key, sedangkan
private key dan kunci KA dan KB tidak diijinkan. Hasil pengujian menunjukkan,
perbedaan waktu proses dari algoritma yang dirancang dengan algoritma terdahulu
yang tidak signifikan, dengan ratio dari keduanya yang cenderung semakin mendekati
satu (selisih semaking mengecil) jika semakin panjang pesan yang diproses. Hasil
analisa keamanan menunjukkan algoritma yang dirancang aman dari ancaman teknik
XOR, teknik bruto force, teknik ciphertext-only analysis, dan teknik known-plain text
analysis. Hasil penelitian secara keseluruhan menunjukkan bahwa algoritma yang
dirancang cukup layak untuk diimplementasikan untuk pengiriman pesan teks dari
segi waktu proses dan tingkat keamanan yang dimiliki. Selain itu, algoritma yang
dirancang memiliki keamanan pengiriman pesan yang jauh lebih baik daripada
algoritma terdahulu.

Kata Kunci : One Time Pad, Three Pass Protocol, RSA, Elgamal

vii

Universitas Sumatera Utara


ABSTRACT

This study aims to cover the shortcomings of a one time pad algorithm on a three pass
protocol scheme by designing a proposed algorithm with additional RSA and Elgamal
algorithms to cover the deficiency. In this study modification of the three pass
protocol scheme to allow the exchange of public key. The message tested is a text
message. There are three cryptographic algorithms used, one time pad algorithm that
will generate cipher text, Elgamal algorithm and RSA algorithm that will generate
super cipher text. Lehmann Primality Test algorithm is used to generate prime
numbers, while random keys KA and KB for one time pad algorithm are generated by
Blum Blum Shub algorithm. The three cipher text generated in the three pass protocol
scheme is encrypted with RSA algorithm or Elgamal algorithm before passing through
the three pass protocol, so only the super cipher text passes through the path, while
the cipher text remains confidential. Cipher text A and cipher text B are encrypted
using Elgamal algorithm to super cipher text A and super cipher text B, while cipher
text AB is encrypted using RSA algorithm to super cipher text AB. The passable key of
the three pass protocol module is public key only, while private keys and KA and KB
keys are not allowed. The test results show that the process time difference of the
algorithm designed with the previous algorithm is not significant, with the ratio of the
two which tends to be closer to one (the difference in semaking decreases) if the
length of the message is processed. The results of security analyzes show that
algorithms are designed to be safe from XOR technique threats, gross force
techniques, ciphertext-only analysis, and known-plain text analysis techniques.
Overall research results show that the designed algorithm is feasible enough to be
implemented for sending text messages in terms of process time and level of security
owned. In addition, the designed algorithm has a much better messaging security than
previous algorithms.

Keywords : One Time Pad, Three Pass Protocol, RSA, Elgamal

viii

Universitas Sumatera Utara


KATA PENGANTAR

Segala puji bagi Allah SWT, tuhan semesta alam segala nikmat dan karunia-Nya
sehingga penulis dapat menyelesaikan penelitian dan tesis ini tepat pada waktunya.
Shalawat besertakan salam juga penulis panjatkan kepada nabi besar Muhammad
SAW.
Pada kesempatan ini penulis mengucapkan terimakasih yang sebesar-besarnya
kepada :
1. Bapak Prof. Dr. Runtung Sitepu, SH, Mhum selaku Rektor Universitas Sumatera
Utara
2. Bapak Prof. Opim Salim Sitompul selaku Dekan Fakultas Ilmu Komputer dan
Teknologi Informasi Universitas Sumatera Utara.
3. Bapak Prof. Dr. Muhammad Zarlis selaku Ketua Program Studi Magister (S2)
Teknik Informatika Universitas Sumatera Utara dan panitia penguji tesis yang
banyak memberikan masukan dan saran kepada penulis.
4. Bapak Dr. Syahril Efendi, S.Si, M.IT selaku dosen pembimbing I yang selalu
membimbing dan mengkoreksi penelitian penulis serta memberikan berbagai
saran agar penelitian yang dihasilkan menjadi semakin lebih baik.
5. Bapak Suherman, Ph.D dosen pembimbing II yang memberikan banyak masukan,
saran, dan arahan dalam proses penelitian yang penulis lakukan sehingga
menghasilkan tesis yang lebih baik.
6. Prof. Dr. Herman Mawengkang selaku panitia penguji tesis yang memberikan
banyak masukan dan saran kepada penulis.
7. Seluruh dosen dan tenaga pengajar Fakultas Ilmu Komputer dan Teknologi
Informasi Universitas Sumatera Utara yang telah memberikan banyak
pengetahuan mereka kepada penulis selama proses perkuliahan.
8. Kedua orangtua penulis dan kakak kandung penulis yang selalu memberikan
semangat selama penulis menyelesaikan pendidikan strata-2 di Fakultas Ilmu
Komputer dan Teknologi Informasi Universitas Sumatera Utara.
9. Istri tercinta Hartati Rianti, S.E yang selalu memberikan dukungan, dan semangat
kepada penulis.
10. Seluruh pegawai dan tata usaha Fakultas Ilmu Komputer dan Teknologi Informasi
Universitas Sumatera Utara yang mengurus segala administrasi penulis selama
menyelesaikan pendidikan Strata-2, terutama bang Ewin dan Kak Inest.
11. Miss Merry selaku supervisor di British Learning Centre yang selalu memberikan
kemudahan dan ijin kepada penulis saat permisi meninggalkan kantor guna
menyelesaikan kegiatan dan urusan akademik di Universitas Sumatera Utara.
12. Azhary Rizky Lubis, S.Sos (Ari Lenk) yang selalu ada disaat penulis
membutuhkan pertolongan untuk fotocopy dan jilid tesis selama bimbingan.
13. Seluruh rekan-rekan KOM C 2015 program studi Magister (S2) Teknik
Informatika Fakultas Fakultas Ilmu Komputer dan Teknologi Informasi, Rizky,
ix

Universitas Sumatera Utara


Hafiz, Umam, bang Maranto, bang Budi Hasian, Mifta, Yessy, Kak Syafrina,
Martiano, Insid, Priya, dan seluruh teman-teman KOM C lain yang tidak dapat
disebutkan satu persatu.
Penelitian dan penulisan tesis ini penulis kerjakan dengan penuh semangat dan
dengan langkah-langkah semaksimal mungkin agar menghasilkan karya ilmiah yang
baik. Tetapi, penulis menyadari sepenuhnya bahwa tesis ini masih jauh dari kata
sempurna walau telah dikerjakan sebaik-baiknya, sehingga penulis dengan senang hati
menerima berbagai saran, masukan, dan kritik yang membangun agar kiranya penulis
dapat menghasilkan berbagai penelitian dan karya ilmiah yang lebih baik dimasa
mendatang.

Medan, Febuari 2018


Penulis

Agung Purnomo Sidik


NIM : 157038075

Universitas Sumatera Utara


DAFTAR ISI

HALAMAN JUDUL ...................................................................................... i


LEMBAR PERSETUJUAN .......................................................................... ii
LEMBAR PERNYATAAN ........................................................................... iii
PERNYATAAN PERSETUJUAN PUBLIKASI ........................................ iv
LEMBAR PANITIA PENGUJI TESIS ....................................................... v
RIWAYAT HIDUP ........................................................................................ vi
ABSTRAK ...................................................................................................... vii
ABSTRACT .................................................................................................... viii
KATA PENGANTAR .................................................................................... ix
DAFTAR ISI ................................................................................................... xi
DAFTAR TABEL .......................................................................................... xiv
DAFTAR GAMBAR ...................................................................................... xvi

BAB 1 – PENDAHULUAN
1.1. Latar Belakang Masalah ....................................................................... 1
1.2. Rumusan Masalah ................................................................................ 3
1.3. Batasan Masalah................................................................................... 3
1.4. Tujuan Penelitian ................................................................................. 4
1.5. Manfaat Penelitian ............................................................................... 4

BAB 2 – LANDASAN TEORI


2.1. Kriptografi ............................................................................................ 5
2.1.1. Pengertian Kriptografi .............................................................. 5
2.1.2. Tujuan Kriptografi .................................................................... 6
2.1.3. Istilah-Istilah pada Kriptografi ................................................. 6
2.1.4. Algoritma Kunci Simetris ........................................................ 8
2.1.5. Algoritma Kunci Asimetris ...................................................... 9
2.2. Algoritma One Time Pad ..................................................................... 10
2.2.1. One Time Pad Klasik ............................................................... 11
2.2.2. One Time Pad Modern ............................................................. 13

xi

Universitas Sumatera Utara


2.3. Algoritma RSA..................................................................................... 14
2.3.1. Pembentukan Kunci ................................................................. 14
2.3.2. Proses Enkripsi ......................................................................... 15
2.3.3. Proses Deskripsi ....................................................................... 16
2.4. Algoritma Elgamal ............................................................................... 16
2.4.1. Pembentukan Kunci ................................................................. 17
2.4.2. Proses Enkripsi ......................................................................... 18
2.4.3. Proses Deskripsi ....................................................................... 19
2.5. Three Pass Protocol .............................................................................. 20
2.6. Pembangkit Bilangan Acak Semu ............................................ 22
2.6.1. Syarat Algoritma Pembangkit Bilangan Acak Semu ............... 22
2.6.2. Blum-Blum Shub (BBS) .......................................................... 23
2.7. Landasan Matematika Kriptografi ....................................................... 24
2.7.1. Bilangan Prima ......................................................................... 24
2.7.2. Pembagi Bilangan Terbesar (PBB) .......................................... 24
2.7.3. Relatif Prima............................................................................. 26
2.7.4. Aritmatika Modula ................................................................... 26
2.7.5. Lehmann Primality Test ........................................................... 27
2.7.6. Invers Modulo .......................................................................... 27
2.7.7. Euler Totient ............................................................................. 29
2.8. Penelitian Terkait ................................................................................. 29

BAB 3 – METODE PENELITIAN


3.1. Alur Penelitian ..................................................................................... 33
3.2. Analisa Masalah ................................................................................... 33
3.3. Studi Literatur ...................................................................................... 38
3.4. Analisa dan Desain Penyelesaian Masalah .......................................... 38
3.4.1. Analisa Proses .......................................................................... 38
3.4.2. Modifikasi Skema Three Pass Protocol.................................... 41
3.4.3. Kombinasi Algoritma ............................................................... 42
3.4.4. Proses Penyelesaian Masalah ................................................... 50
3.5. Penyiapan Instrumen Penelitian dan Implementasi ............................. 56
3.5.1. Perangkat Keras ........................................................................ 56

xii

Universitas Sumatera Utara


3.5.2. Perangkat Lunak ....................................................................... 56
3.5.3. Data .......................................................................................... 56
3.5.4. Algoritma.................................................................................. 56
3.6. Pengujian dan Analisa Hasil Pengujian ............................................... 57
3.6.1. Pengujian Algoritma................................................................. 57
3.6.2. Perbandingan Algoritma........................................................... 58
3.6.3. Analisa Kekuatan Algoritma .................................................... 58
3.6.4. Pengujian Keamanan ................................................................ 58
3.7. Penarikan Kesimpulan ......................................................................... 59

BAB 4 – HASIL DAN PEMBAHASAN


4.1. Pengujian Algoritma ............................................................................ 60
4.1.1. Tahap Pertama .......................................................................... 60
4.1.2. Tahap Kedua............................................................................. 71
4.1.3. Tahap Ketiga ............................................................................ 81
4.2. Perbandingan Algoritma ...................................................................... 91
4.3. Analisa Kekuatan Algoritma ................................................................ 94
4.3.1. Kunci ........................................................................................ 94
4.3.2. Cipher Text ............................................................................... 96
4.4. Pengujian Keamanan ............................................................................ 97
4.4.1. XOR.......................................................................................... 97
4.4.2. Bruto Force ............................................................................... 103
4.4.3. Cipher text-Only Analysis ........................................................ 111
4.4.4. Known-Plain Text Analysis ..................................................... 112

BAB 5 – KESIMPULAN DAN SARAN


5.1. Kesimpulan .......................................................................................... 114
5.2. Saran ..................................................................................................... 115

DAFTAR PUSTAKA
LAMPIRAN

xiii

Universitas Sumatera Utara


DAFTAR TABEL

No. Judul Halaman

2.1. Tabel Encoding one time pad ................................................................. 12


2.2. Logika XOR ........................................................................................... 13
2.3. Proses Enkripsi dengan XOR ................................................................. 14
2.4. Proses Deskripsi dengan XOR ............................................................... 14
2.5. Penelitian Terkait .................................................................................... 29
3.1. Proses Enkripsi Plain text dengan Kunci KA .......................................... 35
3.2. Proses Enkripsi Cipher text A dengan Kunci KB.................................... 36
3.3. Proses Deskripsi Cipher text AB dengan Kunci KA .............................. 36
3.4. Proses Deskripsi Cipher text B dengan Kunci KB .................................. 37
3.5. Proses Pembentukan Plain Text dengan Meng-XOR-kan Cipher Text
A, Cipher Text AB, dan Cipher Text B. ................................................. 37
4.1. Proses Enkripsi Plain text dengan Kunci KA .......................................... 67
4.2. Proses Enkripsi Cipher text A dengan Kunci KB.................................... 78
4.3. Proses Dekripsi Cipher Text AB dengan Kunci KA ............................... 83
4.4. Proses Dekripsi Cipher Text B dengan Kunci KB .................................. 90
4.5. Perbandingan Waktu Proses dari Algoritma yang Dirancang dengan
Algoritma Terdahulu .............................................................................. 91
4.6. Rasio Perbandingan dari Waktu Proses Algoritma yang Dirancang
dengan Waktu Proses Algoritma Terdahulu ........................................... 93
4.7. Proses Pembentukan Plain Text dengan Meng-XOR-kan Cipher Text
A, Cipher Text AB, dan Cipher Text B. ................................................. 97
4.8. Konversi plain text ke bentuk biner ........................................................ 98
4.9. Konversi super cipher text A ke bentuk biner dengan teknik pertama ... 99
4.10. Konversi super cipher text AB ke bentuk biner...................................... 99
4.11. Konversi super cipher text B ke bentuk biner dengan teknik pertama ... 99
4.12. Pengujian Proses XOR pada Super Cipher text A, Super Cipher text
AB, dan Super Cipher text B dengan Teknik Pertama ........................... 100

xiv

Universitas Sumatera Utara


4.13. Pengujian Modulo Hasil Operasi XOR terhadap plain text dengan
Teknik pertama ....................................................................................... 100
4.14. Konversi super cipher text A ke bentuk biner dengan teknik kedua ...... 101
4.15. Konversi super cipher text AB ke bentuk biner...................................... 101
4.16. Konversi super cipher text B ke bentuk biner dengan teknik kedua ...... 102
4.17. Pengujian proses XOR pada super cipher text A, super cipher text AB,
dan super cipher text B dengan teknik kedua ......................................... 102
4.18. Pengujian Modulo Hasil Operasi XOR terhadap plain text dengan
Teknik Kedua. ........................................................................................ 103
4.19. Hubungan Plain text dengan Cipher text A, Cipher text AB, dan
Cipher text B ........................................................................................... 113

xv

Universitas Sumatera Utara


DAFTAR GAMBAR

No. Judul Halaman

2.1. Proses Enkripsi dan Deskripsi Data........................................................ 5


2.2. Proses Enkripsi dan Dekripsi Data dengan Algoritma Kunci Simetris .. 9
2.3. Proses Ennkripsi dan Deskripsi Data dengan Algoritma Kunci
Asimetris ................................................................................................. 10
2.4. Alur Kerja Algoritma Elgamal ............................................................... 17
2.5. Skema Three Pass Protocol .................................................................... 21
3.1. Diagram Metode Penelitian yang Digunakan ......................................... 33
3.2. Skema Three Pass Protocol yang digunakan Anton dan Beby ............... 34
3.3. Skema Modifikasi Three Pass Protocol .................................................. 41
3.4. Flowchart Enkripsi dengan Algoritma One Time Pad ........................... 43
3.5. Flowchart Dekripsi dengan Algoritma One Time Pad ........................... 43
3.6. Flowchart Generate Key dari Algoritma Elgamal .................................. 44
3.7. Flowchart Enkripsi dengan Algoritma Elgamal ..................................... 45
3.8. Flowchart Dekripsi dengan Algoritma Elgamal ..................................... 46
3.9. Flowchart Generate Key dari Algoritma RSA ....................................... 47
3.10. Flowchart Enkripsi dengan Algoritma RSA ........................................... 47
3.11. Flowchart Dekripsi dengan Algoritma RSA........................................... 48
3.12. Flowchart dari Algoritma Blum Blum Shub .......................................... 49
3.13. Flowchart dari Algoritma Lehmann Primality Test................................ 50
3.14. Proses Secara Lengkap ........................................................................... 51
3.15. Proses Tahap Pertama ............................................................................. 52
3.16. Proses Tahap Kedua ............................................................................... 54
3.17. Proses Tahap Ketiga ............................................................................... 55
4.1. Perbandingan Waktu Proses dari Algoritma yang Dirancang dengan
Algoritma Terdahulu dalam Bentuk Bar Graph Pertama ....................... 92
4.2. Perbandingan Waktu Proses dari Algoritma yang Dirancang dengan
Algoritma Terdahulu dalam Bentuk Bar Graph Kedua .......................... 92

xvi

Universitas Sumatera Utara


4.3. Rasio Perbandingan dari waktu proses algoritma yang dirancang
dengan waktu proses algoritma terdahulu .............................................. 93
4.4. Grafik dari Seluruh Data Pengujian Algoritma yang Dirancang
dengan Algoritma Terdahulu .................................................................. 94

xvii

Universitas Sumatera Utara


BAB 1

PENDAHULUAN

1.1. Latar Belakang

Skema three pass protocol di kembangkan oleh Adi Shamir, seorang profesor
berkebangsaan Israel sekitar tahun 1980. Protokol ini memiliki kerangka tiga jalur
untuk melakukan pengiriman pesan atau data. Protokol ini juga memungkinkan dua
pihak saling bertukar informasi dengan aman tanpa harus melakukan pertukaran
kunci, sehingga masalah distribusi kunci yang ada pada algoritma simetris dapat
teratasi dengan baik (Oktaviana, 2016).
Algoritma-algoritma dengan teknik XOR (eksklusif-OR) dapat
diimplementasikan pada skema protokol ini, seperti algoritma one time pad
(Oktaviana, 2016), vigenere cipher (Subandi, 2017), dan caesar cipher (A. Siahaan,
2016). Selain itu, algoritma berbasis matriks seperti hill cipher juga dapat
diimplementasikan pada skema protokol ini (A. Abdullah,2015).

Algoritma dengan teknik XOR yang diimplementasikan untuk skema three


pass protocol memiliki kelemahan yang sangat fatal, bahkan untuk satu-satunya
algoritma unbreakable (tidak terpecahkan) yang ada saat ini, yaitu algoritma one time
pad pun akan menjadi breakable (terpecahkan) dengan sangat mudah jika diterapkan
pada skema protokol ini. Ada pun kelemahan fatal tersebut dapat ditunjukkan pada
formula di bawah ini (Kanamori, 2009):

(M (M (M 

Pada formula di atas, dapat dijelaskan bahwa andai Anton ingin mengirimkan
pesan kepada Beby, Anton akan mengenkripsi pesan dengan kunci yang dia miliki
yaitu (KA) dengan formula cipher text (M , setalah itu cipher text A hasil
enkripsi akan dikirim ke Beby, lalu Beby akan mengenkripsi cipher text A dengan

Universitas Sumatera Utara


2

kunci yang dia miliki (KB) dengan formula cipher text (M , lalu cipher
text AB hasil enkripsi akan dikirim kembali ke Anton dan Anton akan mendeskripsi
cipher text AB menjadi cipher text B dengan kunci yang dia miliki (KA) yang
menghasilkan formula cipher text (M Ciphert text B ini akan dikirimkan
kembali kepada Beby, lalu Beby akan mendeskripsi cipher text B dengan kunci yang
dia miliki (Kb) yang akan menghasilkan M (plain text) (Jun Lang, 2012).
Pada penjelasan di atas, jika Ucok berhasil melakukan penyadapan terhadap
komunikasi percakapan Anton dan Beby dan mendapatkan ketiga cipher text yang
dikirim, yaitu cipher text A, cipher text AB, dan cipher text B, maka Ucok akan
dengan sangat mudah mendapatkan M atau plain text dari pesan yang dikirim hanya
dengan melakukan operasi XOR terhadap cipher text A dengan cipher text AB, dan
hasilnya kembali di XOR kan dengan cipher text B. Dengan kelemahan fatal ini, maka
skema three pass protocol yang dirancang untuk komunikasi yang lebih aman menjadi
sangat tidak aman.
Algoritma one time pad yang merupakan algoritma unbreakable atau algoritma
yang tidak terpecahkan akan menjadi algoritma yang tidak layak pakai dari segi
keamanan jika digunakan pada skema three pass protocol karena kelemahan yang
telah dijelaskan sebelumnya. Untuk mengatasi kelemahan tersebut, perlu dilakukan
sesuatu pada cipher text A, cipher text AB, dan cipher text B agar jika ketiganya di-
XOR-kan tidak akan menghasilkan M (plain text).
Algoritma RSA(Rivest Shamir Adleman) dan Elgamal merupakan algoritma
kriptografi kunci publik atau asimetris, dimana algoritma ini memiliki kunci yang
berbeda dalam melakukan enkripsi dan deskripsi. Dalam proses pembangkitan kunci
dengan algoritma ini akan menghasilkan dua buah kunci, yaitu : public key yang
bersifat tidak rahasia dan dapat dipublikasikan dan diketahui secara bebas. Public key
hanya digunakan untuk melakukan enkripsi. Satu kunci yang lain adalah private key
yang bersifat sangat rahasia, tidak boleh didistribusikan, dan hanya penerima pesan
yang boleh mengetahui kunci ini. Private key digunakan untuk melakukan deskripsi
cipher text. Jika private key diketahui oleh pihak lain, maka pihak tersebut akan
dengan sangat mudah mendeskripsikan cipher text.
Algoritma RSA dan Elgamal merupakan algoritma yang memiliki tingkat
keamanan yang sangat baik. Algoritma RSA secara de facto bahkan menjadi algoritma

Universitas Sumatera Utara


3

asimetris resmi yang digunakan pada banyak bidang. Tingkat keamanan algoritma
RSA terletak pada sulitnya memfaktorkan bilangan bulat menjadi dua buah bilangan
prima, sedangkan tingkat keamanan algoritma Elgamal terletak pada sulitnya
menghitung logaritma diskrit (Okeyinka, 2015).
Pada penelitian ini, algoritma RSA dan Elgamal akan digunakan untuk
melakukan modifikasi terhadap cipher text A, cipher text AB, dan cipher text B
sebelum dilakukan pengiriman dan melewati jalur komunikasi, agar pesan M tidak
dapat direkontruksi dengan meng-XOR-kan ketiga cipher text yang telah terjadi
modifikasi.

1.2. Rumusan Masalah

Berdasarkan latar belakang yang telah diuraikan, maka dapat diambil beberapa
rumusan masalah sebagai berikut :
1. Adanya kelemahan yang fatal pada cipher text dari algoritma one time pad jika
diterapkan pada skema three pass protocol..
2. Tingkat keamanan yang rendah dari cipher text yang dikirim pada skema three
pass protocol.

1.3. Batasan Masalah

Beberapa batasan masalah dalam penelitian ini adalah sebagai berikut:


1. Algoritma yang digunakan untuk enkripsi dan deskripsi adalah algoritma one
time pad, RSA dan Elgamal.
2. Blum Blum Shub Generator sebagai pembangkit bilangan acak semu
digunakan untuk membangkitkan kunci acak one time pad dan bilangan k pada
proses pengenkripsian mengguanakan algoritma Elgamal.
3. Pembangkitan bilangan prima yang diperlukan oleh algoritma RSA, Elgamal,
dan Blum Blum Shub Generator akan dibangkitkan dengan Algoritma
Lehmann Primality Test.
4. Skema three pass protocol akan dimodifikasi agar mengijinkan terjadinya
pertukaran kunci public.
5. Proses pengiriman pesan akan menggunakan skema three pass protocol yang
dimodifikasi.

Universitas Sumatera Utara


4

6. Penelitian ini tidak mencari efisiensi waktu proses, tetapi pada tingkat
keamanan.
7. Perbandingan waktu proses akan tetap dilakukan antara kombinasi algoritma
pada penelitian ini (one time pad, RSA, dan Elgamal) dengan hanya algoritma
one time pada jalur three pass protocol.
8. Pengujian tingkat keamanan akan dilakukan dengan menganalisis teknik
kriptoanalis XOR, bruto force, ciphertext-only analysis, dan known-plaintext
analysis.
9. Pesan yang diuji adalah pesan text.

1.4. Tujuan Penelitian

Adapun tujuan dari penelitian ini adalah:


1. Untuk memperbaiki cipher text hasil enkripsi dengan algoritma one time pad
pada skema three pass protocol dengan menggunakan algoritma RSA dan
Elgamal.
2. Meningkatkan keamanan dari cipher text yang akan dikirim pada skema three
pass protocol.

1.5. Manfaat Penelitian

Adapun manfaat dari penelitian ini adalah:


1. Menambah wawasan dan kemampuan penulis dalam mengaplikasikan ilmu-
ilmu Teknik Informatika, khususnya dalam bidang kriptografi untuk
proseskeamanan.
2. Menambah referensi bagi para peneliti dan akademisi dalam bidang
kriptografi.

Universitas Sumatera Utara


BAB 2

LANDASAN TEORI

2.1. Kriptografi
2.1.1. Pengertian kriptografi

Kriptografi adalah ilmu mengenai teknik enkripsi dimana data diacak menggunakan
suatu kunci enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang yang tidak
memiliki kunci dekripsi. Dekripsi menggunakan kunci dekripsi untuk mendapatkan
data asli kembali. Proses enkripsi dilakukan menggunakan suatu algoritma dengan
beberapa parameter. Biasanya algoritma tidak dirahasiakan, bahkan enkripsi yang
mengandalkan kerahasiaan algoritma dianggap sesuatu yang tidak baik. Rahasia
terletak di beberapa parameter yang digunakan, jadi kunci ditentukan oleh parameter.
Parameter yang menentukan kunci dekripsi itulah yang harus dirahasiakan (parameter
menjadi ekuivalen dengan kunci) (Kromodimoeljo, 2010).
Dalam arti lain, kriptografi adalah seni dan ilmu dalam mengamankan pesan.
Dalam dunia kriptografi, pesan disebut plain text atau clear text. Proses untuk
menyamarkan pesan dengan cara sedemikian rupa untuk menyembunyikan isi aslinya
disebut enkripsi. Pesan yang telah dienkripsi disebut cipher text. Proses pengembalian
sebuah cipher text ke plain text disebut dekripsi.

Gambar 2.1. Proses Enkripsi dan Dekripsi Data


(Subandi, 2017)

Universitas Sumatera Utara


6

Dalam kriptografi klasik, teknik enkripsi yang digunakan adalah enkripsi


simetris dimana kunci dekripsi sama dengan kunci enkripsi. Untuk kriptografi kunci
publik, diperlukan teknik enkripsi asimetris dimana kunci dekripsi tidak sama dengan
kunci enkripsi. Enkripsi, dekripsi dan pembuatan kunci untuk teknik enkripsi asimetris
memerlukan komputasi yang lebih intensif dibandingkan enkripsi simetris, karena
enkripsi asimetris menggunakan bilangan-bilangan yang sangat besar. Namun,
walaupun enkripsi asimetris lebih besar dalam komplektifitas dibandingkan enkripsi
simetris, kriptografi kunci publik sangat berguna untuk key management dan digital
signature (Kromodimoeljo, 2010).

2.1.2. Tujuan kriptografi

Ada empat tujuan mendasar dari kriptografi yang juga merupakan aspek keamanan
informasi (Munir, 2006), yaitu:
1. Privacy/Confidentiality
Aspek yang berhubungan dengan penjagaan isi informasi dari siapapun kecuali
yang memiliki otoritas atau kunci rahasia untuk membuka informasi yang telah
dienkripsi.
2. Integrity
Aspek yang berhubungan dengan penjagaan dari perubahan data secara tidak sah
dan menjamin bahwa isi pesan tidak dapat diubah tanpa ijin.
3. Authentication
Aspek yang berhubungan dengan identifikasi atau pengenalan, baik secara
kesatuan sistem maupun informasi itu sendiri.
4. Non-repudiation
Usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman suatu
informasi oleh yang mengirimkan, atau harus dapat membuktikan bahwa suatu
pesan berasal dari seseorang, apabila dia menyangkal mengirim informasi tersebut.

2.1.3. Istilah-istilah pada Kriptografi

Berikut merupakan istilah-istilah yang dikenal pada kriptografi :


1. Algoritma Kriptografi

Universitas Sumatera Utara


7

Sebuah algoritma yang digunakan untuk melakukan proses enkripsi terhadap plain
text menjadi cipher text dan proses dekripsi terhadap cipher text kembali menjadi
plain text dengan suatu aturan dan kunci tertentu. Sehingga pada suatu algoritma
kriptografi terdapat tiga buah proses, yaitu: generate key, enkripsi, dan dekripsi.
2. Plain text
Yaitu pesan atau data dalam bentuk aslinya dapat terbaca. Plaintext merupakan
masukan bagi algoritma enkripsi
3. Cipher text
Cipher text adalah keluaran algoritma enkipsi. Cipher text dapat dianggap sebagai
pesan dalam bentuk tersembunyi. Algoritma enkripsi yang baik akan menghasilkan
cipher text yang kelihatan acak. Selanjutnya digunakan istilah teks sandi sebagai
sinonim kata cipher text
4. Key (kunci)
Sebuah kunci yang akan mempengaruhi dan menentukan hasil dari proses enkripsi
dan dekripsi dengan suatu algoritma kriptografi. Kunci dapat dibangkitkan dengan
suatu aturan algoritma tertentu atau dengan memilih kunci secara bebas.
Kunci terbagi menjadi dua jenis, yaitu :
a. Kunci Simetris
Kunci untuk melakukan proses enkripsi sama dengan kunci untuk melakukan
proses dekripsi, sehingga hanya dikenal sebuah kunci untuk satu proses enkripsi
dekripsi. Kunci simetris bersifat sangat rahasia, dan mutlak hanya boleh
diketahui oleh pengirim dan penerima pesan.
b. Kunci Asimetris
Kunci untuk melakukan proses enkripsi berbeda dengan untuk melakukan
proses dekripsi. Kunci untuk melakukan proses enkripsi disebut dengan public
key. Public key bersifat tidak rahasia dan boleh diketahui oleh siapapun dan
dapat disebarkan secara bebas. Kunci untuk melakukan proses dekripsi disebut
sebagai private key. Privatekey bersifat sangat rahasia dan hanya boleh diketahui
oleh penerima pesan atau pembangkit kunci, bahkan pengirim pesan juga tidak
diijinkan mengetahui private key.

Universitas Sumatera Utara


8

5. Enkripsi
Proses mengubah plain text menjadi cipher text dengan suatu algoritma kriptografi
tertentu dan dengan sebuah kunci tertentu. Baik menggunakan kunci simetris atau
menggunakan kunci asimetris (public key).
6. Dekripsi
Proses mengubah cipher text menjadi plain text kembali dengan algoritma
kriptografi tertentu dan dengan sebuah kunci tertentu. Baik kunci simetris atau
kunci asimetris (private key).

2.1.4. Algoritma kunci simetris

Algoritma kunci simetris adalah suatu algoritma kriptografi yang melakukan proses
enkripsi dan dekripsi dengan menggunakan sebuah kunci yang sama. Apabila kunci
yang digunakan dalam melakukan enkripsi dan dekripsi berbeda, maka menyebabkan
keluaran terakhir dari algoritma kacau, sehingga tidak berhasil mengembalikan bentuk
cipher text ke plain text semula. Karena kunci ini memegang peranan yang sangat
penting dalam melakukan enkripsi maupun dekripsi, maka algoritma simetris ini
disebut juga dengan algoritma kunci rahasia (secret key algorithm).
Algortima ini mengharuskan pengirim dan penerima pesan untuk menyetujui
kunci yang akan digunakan dan keamanan dari algoritma ini tergantung dari kunci
yang digunakan, sehingga kunci ini harus dirahasiakan. Jika kunci ini disebarkan
berarti semua orang dapat melakukan enkripsi dan dekripsi pesan dalam sistem
tersebut.
Dalam notasi matematika, proses algoritma kunci rahasia digambarkan sebagai
berikut:
Ek(P) = C ................................................ [2.1]
Dk(C) = P ................................................ [2.2]
Keterangan :
E = Fungsi enkripsi
D = Fungsi dekripsi
k = Kunci simetris (sama untuk enkripsi maupun dekripsi)
C = Cipher text

Universitas Sumatera Utara


9

P = Pesan (message) atau plain text.


Ek dan Dk adalah fungsi enkripsi dan dekripsi yang menggunakan kunci yang
sama.

Gambar 2.2. Proses Enkripsi dan Dekripsi Data dengan Algoritma Kunci Simetris
(Subandi, 2017)
Algoritma Simetris dapat dibagi menjadi dua kategori, yaitu algoritma stream
(stream algorithm) atau stream ciphers, yang beroperasi pada setiap bit dari plain text,
dan algoritma blok (block algorithms) atau cipher blok (block ciphers), yang
beroperasi pada kelompok-kelompok bit.

2.1.5. Algoritma kunci asimetris

Algoritma kunci publik (disebut juga algoritma kunci asimetris) dirancang sedemikian
rupa sehingga kunci yang digunakan untuk enkripsi berbeda dari kunci yang
digunakan untuk dekripsi. Selanjutnya, kunci dekripsi tidak dapat dihitung dengan
kunci enkripsi (setidaknya dengan proses yang sangat sulit dan atau dengan waktu
yang cukup lama).
Algoritma ini disebut kunci publik karena kunci enkripsi dapat diberitahukan
ke publik: Orang asing dapat menggunakan kunci enkripsi untuk mengenkripsi pesan,
namun hanya orang-orang tertentu saja dengan kunci dekripsi yang sesuai yang dapat
mendekripsi pesan. Dalam sistem ini, kunci enkripsi sering disebut sebagai public key,
dan kunci dekripsi sering disebut private key. Private key terkadang disebut kunci
rahasia, tetapi untuk menghindari kerancuan dengan algoritma simetris, istilah
tersebut tidak digunakan (Schneier, 1996).

Universitas Sumatera Utara


10

Gambar 2.3. Proses Enkripsi dan Dekripsi Data dengan Algoritma Kunci Asimetris
(Subandi, 2017)
Enkripsi menggunakan kunci publik K disimbolkan :
Epublic (P) = C ............................................... [2.3]
Walaupun publickey dan privatekey berbeda, dekripsi dengan privatekey yang
cocok disimbolkan dengan:
Dprivate (C) = P ............................................... [2.4]
Keterangan :
E = Fungsi enkripsi
D = Fungsi dekripsi
Public =Public Key
Private = Private Key
C = Cipher text
P = Pesan (message) atau plain text.

2.2. Algoritma One Time Pad

One time pad termasuk dalam kriptografi klasik yang berkunci simetris. One time pad
disebut juga sebagai algoritma yang tidak terpecahkan (unbreakable) atau juga
diketahui sebagai holy grail algorithm (Iqbal,2016).
Algoritma one time pad mempunyai cara kerja dimana penerima pesan
mempunya salinan kunci yang sama dan kunci tersebut hanya dipakai satu kali (one
time) untuk enkripsi dan dekripsi dan setelah digunakan maka pad (kertas block not)
harus segera dihancurkan agar tidak bisa dipakai lagi untuk enkripsi dan dekripsi
pesan yang lain.

Universitas Sumatera Utara


11

Pengirim dan penerima harus sama-sama memiliki satu set materi kunci acak
dan memiliki panjang yang sama dengan panjang plain text. Jadi secara teori alasan
algoritma one time pad tidak dapat dipecahkan karena kuncinya secara sempurna
diacak, memiliki panjang yang sama dengan plain text, dirahasiakan, dan hanya
dipakai sekali saja (Srikantaswamy, 2011)
Cipher text yang dihasilkan oleh algoritma one time pad memiliki panjang yang
sama dengan panjang dari plain text. Algoritma one time pad memiliki panjang kunci
yang sama dengan panjang plain text dan cipher text. Sehingga tidak ada kebutuhan
untuk mengulang penggunaaan kunci selama proses enkripsi.
Proses kerja dari algoritma one time pad dapat menggunakan proses kerja klasik
atau modern. Proses kerja klasik dapat dilakukan dengan membuat tabel encoding
untuk mengkonversi karakter ke desimal untuk dilakukan proses enkripsi dan dekripsi.
Proses kerja modern dapat dilakukan dengan teknik XOR dengan meng-XOR-kan
setiap karakter plain text dengan pasangan kuncinya.(Srikantaswamy, 2011).

2.2.1. One time pad klasik

Adapun aturan enkripsi dan dekripsi dari algoritma one time pad dengan proses kerja
klasik adalah sebagai berikut:
Enkripsi Ci = (Pi + Ki)mod 26 .................................. [2.5]
Dekripsi Pi= (Ci - Ki) mod 26 ................................... [2.6]

Dimana:
P = Plain text
C = Cipher text
i = Urutan karakter dari plain text, cipher text, atau kunci.
Contoh:
Plain text : ILKOM
Langkah awal adalah dengan membuat tabel encoding untuk konversi karakter
ke desimal seperti tabel berikut:

Universitas Sumatera Utara


12

Tabel 2.1. Tabel Encoding One Time Pad

A B C D E F G H I J K L M N O P Q R S T U VW X Y Z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

Karakter plain text dikonversikan menjadi bentuk desimal seperti berikut:


Plain text: 8 11 10 14 12
Kunci dibangkitkan secara acak sepanjang plain text dan dikonversikan ke
dalam bentuk desimal.
Kunci : GXONW
Kunci: 6 23 14 13 22
Enkripsi dilakukan dengan persamaan:
Ci = (Pi + Ki)mod 26
C1 = (8 + 6)mod 26 = 14 =O
C2 = (11 + 23)mod 26 = 8 =I
C3 = (10 + 14)mod 26 = 24 =Y
C4 = (14 + 13)mod 26 = 1 =B
C5 = (12 + 22)mod 26 = 8 =I
Seluruh cipher text yang masih dalam bentuk desimal dikoversikan ke dalam
bentuk karakter, menjadi:
Cipher text : OIYBI
Proses dekripsi dilakukan dengan persamaan :
Pi= (Ci - Ki) mod 26
P1= (14 -6) mod 26 =8 =I
P2= (8 -23) mod 26 = 11 =L
P3= (24 -14) mod 26 = 10 =K
P4= (1 -13) mod 26 = 14 =O
P5= (8 -22) mod 26 = 12 =M
Plain text diperoleh kembali dengan benar, yaitu: ILKOM.

Universitas Sumatera Utara


13

2.2.2. One time pad modern

Proses kerja algoritma one time pad secara modern dapat juga disebut sebagai vernam
cipher. Prosesnya dilakukan dengan meng-XOR-kan setiap karakter cipher text
dengan masing-masing pasangan kuncinya (Munir, 2016).
Logika operasi XOR ditunjukkan pada tabel 2.2 berikut:
Tabel 2.2. Logika XOR

p q Hasil
1 1 0
1 0 1
0 1 1
0 0 0

Persamaan yang digunakan adalah sebagai berikut:

Enkripsi Ci = (Pi Ki) ..................................................................... [2.7]

Dekripsi Pi = (Ci Ki) ...................................................................... [2.8]

Keterangan :
C = Cipher Text
P = Plain Text
K = Kunci
i = Urutan bit
Contoh :
Plain text : ILKOM
Kunci : GXONW
Plain text dan kunci dikonversikan terlebih dahulu ke dalam bentuk biner
berdasarkan kode ASCII, lalu lakukan operasi XOR untuk enkripsi dan
dekripsi, seperti yang terlihat pada tabel berikut:

Universitas Sumatera Utara


14

Tabel 2.3. Proses Enkripsi dengan XOR

I L K O M
Plain text
1001001 1001100 1001011 1001111 1001101
G X O N W
Kunci
1001001 1001100 1001011 1001111 1001101
Cipher text
0001110 0010100 0000100 0000001 0011010
Biner
Cipher text
e 14 4 1 1a
Heksadesimal

Cipher text yang didapatkan : e.14.4.1.1a


Dekripsi dapat dilihat pada tabel dibawah ini:
Tabel 2.4. Proses Dekripsi dengan XOR

Cipher text
e 14 4 1 1a
Heksadesimal
Cipher text
0001110 0010100 0000100 0000001 0011010
Biner
G X O N W
Kunci
1001001 1001100 1001011 1001111 1001101
1001001 1001100 1001011 1001111 1001101
Cipher text
I L K O M

Plain text : ILKOM

2.3. Algoritma RSA

RSA diciptakan oleh Ron Rivest, Adi Shamir, dan Leonard Adleman, sesuai dengan
nama penemunya, pada tahun 1970-an. Rancangan ini bergantung pada kerumitan
dalam memfaktorisasi bilangan bulat (integer) yang berbeda dari penyelesaian
algoritma diskrit (Kallam, 2011). Proses pada algoritma RSA terdiri dari tiga buah
proses, yaitu:

2.3.1. Pembentukan kunci

Pembangkitan kunci algoritma RSA antara lain :


1. Pilih dua bilangan prima acak ukuran besar, p dan q.
2. Hitung modulus sistem n = p * q
3. Pilih kunci enkripsi e secara acak
Dimana 1 < e < ɸ (n), gcd (e, ɸ (n)) = 1(dimana ɸ (n) = (p – 1)(q – 1))

Universitas Sumatera Utara


15

1. Selesaikan rumus berikut untuk menentukan kunci dekripsi d


e * d = 1 (mod ɸ(n)) dan 0 ≤ d ≤ n
2. Kemudian tiap pengguna memberikan kunci enkripsi publik :
Public key = {e, n} dan menyimpan kunci dekripsi : private key = {d, n}.
Jika p adalah pesan yang akan dikirim, maka rumus enkripsinya adalah :

 gunakan kunci publik public key = {e, n}

 c = pe (mod n), dimana 0 ≤ p ≤ n


Dan untuk mendekripsi digunakan rumus:

 Gunakan private key = {d, n}.

 p = cd (mod n).
Contoh :
Anton membuat sistem kunci publiknya dengan pertama-tama memilih dua
bilangan prima, p = 17 dan q = 11. Maka didapat nilai n = p * q = 187 dan ɸ (n) = (p-
1)(q-1) = 16 * 10 = 160. Anton membutuhkan sebuah e, dimana gcd(e, 160) = 1 dan
memilih e = 7. Sekarang Anton harus menemukan d, invers e modulo ɸ (n). Anton
menyadari bahwa 23* 7 = 161 = 10 * 16 + 1 (atau menggunakan algoritma
Euclidean), dan maka d = 23. Kemudian Anton mempublish public key : {7,187}, dan
menyimpan private key : {23,187}.

2.3.2. Proses enkripsi

Proses enkripsi dapat dilakukan dengan menggunakan publickey berdasarkan


persamaan berikut :
Ci = Pie mod n ...................................................... [2.9]
Dimana
C = Cipher text
P = Plain text
e = Publickey
n = Hasil perkalian dua buah bilangan prima p da q.
i = Urutan karakter

Universitas Sumatera Utara


16

2.3.3. Proses dekripsi


Proses dekripsi dilakukan dengan menggunakan privatekey berdasarkan persamaan
berikut :
Pi = Cid mod n ...................................................... [2.10]
Dimana
C = Cipher text
P = Plain text
d = Privatekey
n = Hasil perkalian dua buah bilangan prima p da q yang ditentukan saat
pembangkitan kunci.
i = Urutan karakter

2.4. Algoritma Elgamal

Algoritma Elgamal dirancang oleh seorang ilmuan yang berasal dari Mesir bernama
Taher Elgamal pada tahun 1984 berdasarkan konsep algoritma Diffie-Helman.
Algoritma ini termasuk dalam kategori algoritma kriptografi kunci publik atau
asimetris. Algoritma ini awalnya digunakan untuk proses digital signature, namun
kemudian dimodifikasi sehingga bisa digunakan untuk proses enkripsi dan dekripsi
(Munir, 2006).
Algoritma kriptografi kunci publik Elgamal merupakan algoritma block chiper
yaitu algoritma yang melakukan proses enkripsi pada blok-blok plain text yang
kemudian menghasilkan blok-blok cipher text, yang nantinya blok-blok cipher text
tersebut akan didekripsi kembali dan hasilnya kemudian digabungkan menjadi plain
text semula. Algoritma Elgamal mempunyai kunci publik yang terdiri dari tiga buah
bilangan dan kunci rahasia yang terdiri dari dua buah bilangan.
Keamanan algoritma Elgamal terletak pada kesulitan perhitungan logaritma
diskrit pada modulo prima yang besar, sehingga upaya untuk menyelesaikan masalah
logaritma ini menjadi sulit untuk dipecahkan yang menjadi kelebihan dari algoritma
ini. Selain itu, algoritma ini juga memiliki kelebihan lain, yaitu bahwa suatu plain text
yang sama akan dienkripsi menjadi cipher text yang berbeda-beda. Akan tetapi,

Universitas Sumatera Utara


17

walaupun cipher text yang diperoleh berbeda-beda, tetapi pada proses dekripsi akan
diperoleh plain text yang sama.
Algoritma ini memiliki pembangkitan kunci yang menggunakan logaritma
diskrit dan metode enkripsi dekripsi yang menggunakan proses komputasi yang besar
sehingga hasil enkripsinya berukuran dua kali dari ukuran semula. Dimana hal
tersebut menjadi kekurangan dari algoritma ini. Dikarenakan membutuhkan
komputasi yang besar, maka algoritma ini membutuhkan resource atau sumber daya
yang baik dan processor yang mampu untuk melakukan komputasi yang besar
(Caroline, 2011).

Gambar 2.4. Alur Kerja Algoritma Elgamal


(Widarma, 2016)
Algoritma Elgamal terdiri dari tiga buah proses, yaitu: proses pembentukan
kunci, proses enkripsi, dan proses dekripsi.

2.4.1. Pembentukan kunci

Proses pembentukan kunci ini terdiri dari pembentukan kunci publik dan juga
pembentukan kunci rahasia. Kunci publik ini akan digunakan pada proses
pengenkripsian, sedangkan kunci rahasia digunakan pada saat proses pendekripsian.

Universitas Sumatera Utara


18

Pada proses pembentukan kunci, dibutuhkan sebuah bilangan prima p,


bilangan acak g dan x, dengan syarat g < p dan 1 ≤ x ≤ p-2. Kunci publik algoritma
Elgamal terdiri atas pasangan 3 bilangan(y, g, p) dimana:
y = gx mod p ......................................................... [2.11]
Sedangkan kunci rahasianya adalah bilangan (x, p) tersebut.
Karena pada algoritma Elgamal menggunakan bilangan bulat dalam proses
perhitungannya, maka pesan harus dikonversi ke dalam suatu bilangan bulat. Untuk
mengubah pesan menjadi bilangan bulat, maka digunakan kode ASCII (American
Standard for Information Interchange).
Kode ASCII merupakan representasi numeric dari karakter-karakter yang
digunakan pada komputer, serta mempunyai nilai minimal 0 dan maksimal 255. Oleh
karena itu, berdasarkan sistem kriptografi Elgamal di atas maka harus digunakan
bilangan prima yang lebih besar dari 255. Kode ASCII berkorespondensi 1-1 dengan
karakter pesan.
Proses pembentukan kunci terdiri dari langkah-langkah sebagai berikut :
1. Pilih bilangan prima yang besar secara acak. Lebih besar akan jauh lebih
aman dan lebih kuat
2. Pilih dua buah bilangan acak, yaitu g dan x. dimana dengan syarat g < p dan
1 ≤ x ≤ p-2
3. Cari nilai y dengan rumus y = gx mod p

2.4.2. Proses enkripsi

Proses enkripsi menggunakan kunci publik (y,g,p) dan sebuah bilanganacak dengan
syarat 1 ≤ k ≤ p-2. Untuk setiap karakter dalam pesan dienkripsi harus menggunakan
bilangan k yang selalu berbeda untuk meningkatkan keacakan dankeamanan dari
cipher text yang dihasilkan.
Satu karakter yang direpresentasikan dengan menggunakan bilangan bulat
ASCII akan menghasilkan kode dalam bentuk blok yang terdiri atas dua nilai (a,b).
Berikut adalah langkah-langkahuntuk proses enkripsi:
1. Ambil karakter plain text dan konversikan ke dalam bentuk desimal
berdasarkan tabel ASCII yang disebut dengan m.

Universitas Sumatera Utara


19

2. Bangkitkan bilangan acak k dengan syarat 1 ≤ k ≤ p-2.


3. Hitung nilai a dan b dengan persamaan dibawah ini:
a = gk mod p ......................................................... [2.12]
b = ykm mod p...................................................... [2.13]
Hasil perhitungan akan mendapatkan blok cipher text dari karakter m dalam
blok (a,b).
4. Lakukan langkah 1 dan 3 hingga karakter plain text terakhir.
5. Gabungkan setiap blok (a,b) yang didapat untuk mendapatkan seluruh
cipher text yang utuh.
Berdasarkan proses yang telah diuraikan, dapat dianalisa bahwa suatu plain
text yang sama akan dienkripsi menjadi cipher text yang berbeda-beda. Hal ini
dikarenakan bilangan acak k yang digunakan untuk mengenkripsi setiap karakter
harus berbeda-beda. Akan tetapi,walaupun cipher text yang diperoleh berbeda-beda,
tetapi pada proses dekripsi akan diperoleh plain text yang sama.

2.4.3. Proses Dekripsi

Dekripsi dari cipher text ke plain text menggunakan kunci rahasia x dan p yang
disimpan kerahasiaanya oleh penerima pesan. Bilangan (y, g, p) sebagai kunci publik
dan x sebagai kunci rahasia pada algoritma Elgamal yang didapat pada proses
pembentukan kunci. Jika diberikan cipher text (a, b), maka cipher text tersebut dapat
didekripsi menjadi plain text dengan persamaan sebagai berikut:
m = b.c mod p ...................................................... [2.14]
Dimana m adalah plain text. Nilai dari variabel c dapat dicari dengan
menggunakan persamaan sebagai berikut :
c = ap-1-xmod p ...................................................... [2.15]
Berikut langkah-langkah untuk proses dekripsi:
1. Ambil blok cipher text hasil enkripsi oleh pengirim
2. Dengan menggunakan bilangan x, yang menjadi bagian dari kunci rahasia,
maka lakukan pengoperasian terhadap blok cipher text dengan persamaan
diatas.

Universitas Sumatera Utara


20

3. Hasil dekripsi akan dalam bentuk desimal, konversikan desimal kembali ke


dalam karakter berdasarkan tabel ASCII.
4. Ulangi langkah 1 dan 3 hingga blok cipher text terakhir.
5. Gabungkan setiap karakter yang dihasilkan untuk mendapatkan plain text
secara utuh.

2.5. Three Pass Protocol

Dalam kriptografi, Shamir’s three pass protocol (dalam penelitian ini hanya disebut
dengan three pass protocol), dalam proses pengiriman pesan merupakan suatu
kerangka kerja yang memungkinkan satu pihak untuk aman mengirim pesan ke pihak
kedua tanpa perlu untuk bertukar atau mendistribusikan kunci rahasia. Disebut dengan
Shamir’s three pass protocol karena pengirim dan penerima pesan melakukan
pertukaran sebanyak tiga tahap untuk mengenkripsi pesan tersebut.
Shamir’s three pass protocol pertama kali dikembangkan oleh Adi Shamir pada
sekitar tahun 1980. Konsep dasar Shamir’s Three pass protocol adalah bahwa masing-
masing pihak memiliki kunci enkripsi pribadi dan sebuah kunci dekripsi pribadi.
Kedua belah pihak menggunakan kunci mereka masing-masing untuk mengenkripsi
pesan dan kemudian untuk mendekripsi pesan. Dalam hal ini pengirim disebut sebagai
Anton dan penerima disebut sebagai Beby. Sehingga dengan skema three pass
protocol, Anton dan Beby dapat saling bertukar data tanpa harus melakukan
pertukaran kunci. Tidak terjadinya pertukaran kunci, maka kunci tidak akan bisa
disadap dan kerahasiaan akan tetap terjamin (Oktaviana, 2016).
Skema dari alur kerja three pass protocol dapat dilihat pada gambar 2.5 berikut:

Universitas Sumatera Utara


21

Gambar 2.5. Skema Three Pass Protocol


Alur kerja skema three pass protocol terdiri dari tiga tahap proses pengiriman,
yaitu :
1. Anton membangkitkan kunci rahasia yaitu KA untuk proses enkripsi dan
dekripsi dan tidak boleh dipublikasikan atau didistribusikan. Plain text yang
akan dikirim terlebih dahulu dienkripsi dengan menggunakan kunci KA.
setelah itu, cipher text yang dihasilkan dikirim ke Beby.
2. Beby juga membangkitkan kunci rahasia yaitu KB untuk proses enkripsi dan
dekripsi dan tidak boleh dipublikasikan dan didistribusikan. Cipher text yang
diterima dari Anton dienkripsikan dengan menggunakan kunci KB. Cipher
text yang dihasilkan lalu dikirim kembali kepada Anton.
3. Cipher text yang telah diterima oleh Beby didekripsikan dengan kunci KA,
hasil dekripsi masih berupa cipher text yang kemudian dikirimkan kembali
kepada Beby. Beby yang menerima cipher text tersebut kemudian
mendekripsikan kembali cipher text tersebut dengan kunci KB, hasil dekripsi
akan menghasilkan plain text atau pesan asli yang dimaksudnya oleh Anton.

Universitas Sumatera Utara


22

2.6. Pembangkit Bilangan Acak Semu

Pembangkitan bilangan acak sangat dibutuhkan oleh berbagai bidang keilmuan.


Namun dua bidang keilmuan yang sangat bergantung pada pembangkitan bilangan
acak adalah bidang statistik dan kriptografi. Pada bidang statistik, bilangan acak
dibutuhkan untuk menghasilkan suatu analisa statistik, untuk itu bilangan acak harus
benar-benar acak. Bila bilangan acak memiliki sifat-sifat tertentu karena hasil
perhitungan aritmatika tertentu, misal: berulang, maka hasil analisas statistiuk yang
dihasilkan tidak akurat dan kurang dapat dipercaya. Pada bidang kriptografi, bilangan
acak dibutuhkan untuk menghasilkan berbagai hal, seperti menghasilkan kata kunci
yang baik, menghasilkan kunci dan padanannya pada algoritma kriptografi
asimetrik/publik, membangkitkan vektor inisialisasi pada hampir seluruh algoritma
kriptografi dan lainnya (Lietara, 2016).

2.6.1. Syarat algoritma pembangkit bilangan acak semu

Algoritma pembangkit bilangan acak harus setidaknya memenuhi syarat-syarat yang


telah ditentukan pada Request for Commands 1750 (Randomness Recommendations
for Security). Ringkasan dari RFC 1750 adalah sebagai berikut:
1. Tidak dapat diprediksi. Suatu algoritma pembangkit bilangan acak harus
bersifat tidak dapat diprediksi hasil keluarannya. Sebab dengan dapat
memprediksi keluaran suatu algoritma, maka dengan tidak langsung dapat
pula mengetahui kelauran dari fungsi kriptografi secara keseluruhan.
2. Untuk algoritma yang berdasarkan pada perangkat keras maka harus tahan
akan pembelokan. Yaitu bila perangkat keras dimanipulasi, maka algoritma
dapat tahan terhadap manipulasi sumber bilangan tersebut hingga level
tertentu yang tidak mungkin lagi dapat ditahan.
3. Untuk algoritma yang berdasarkan perangkat lunak/aritmatika, maka harus
memiliki fungsi penggabungan dan pengacakan. Yang berguna untuk
mencegah penyerangan terhadap algoritma secara keseluruhan.

Universitas Sumatera Utara


23

2.6.2. Blum Blum Shub (BBS)

Blum Blum Shub cukup terkenal sebagai sebuah algoritma pembangkit bilangan acak
yang baik dikarenakan kemangkusannya dan kesederhanaannya. BBS dibuat
padatahun 1986 oleh tiga orang: Lenore Blum, Manuel Blum, dan Michael Shub
(Lietara, 2016).
Pada penelitian ini, kunci enkripsi-dekripsi algoritma one time pad yang
digunakan serta kunci perotasian cipher text dibangkitkan dengan pembangkit
bilangan acak cryptographically secure pseudorandom generator (CSPRNG)
menggunakan teori bilangan Blum-Blum Shub. Algoritma pembangkitan bilangan
acak BBS adalah sebagai berikut: (Munir, 2006).
1. Pilih dua buah bilangan prima rahasia p dan q, yang masing-masing kongruen 3
modulo 4 atau 3 = x mod 4 (dalam praktek bilangan prima yang digunakan
cukup besar).
2. Kalikan keduanya menjadi n = pq. Bilangan n ini disebut bilangan bulat Blum.
3. Pilih bilangan acak lain s, sebagai umpan sedemikian sehingga:
(i) 2 ≤ s ≤ n
(ii) s dan n relatif prima
kemudian hitung x0 = s2 mod n
4. Barisan bit acak dihasilkan dengan melakukan iterasi berikut sepanjang yang
diinginkan.
(iii) hitung xi = xi-12 mod n
(iv) zi = bit LSB dari xi
Barisan bit acak yang dihasilkan adalah z1, z2, z3, ...
Yang menarik dari algoritma pembangkit bilangan acak ini adalah bahwa tidak
perlu melakukan iterasi untuk mendapatkan bilangan acak jika p dan q diketahui,
sebab xi dapat dihitung secara langsung. Keamanan BBS terletak pada sulitnya
memfaktorkan. Nilai n tidak perlu rahasia dan dapat diumumkan kepada publik. BBS
tidak dapat diprediksi dari arah kiri dan tidak dapat diprediksi dari arah kanan, yaitu
berarti jika diberikan barisan bit yang dihasilkan oleh BBS, kriptanalis tidak dapat

Universitas Sumatera Utara


24

menganalisa barisan bit sebelumnya dan barisan bit sesudahnya dalam urutan bilangan
acak yang dihasilkan.

2.7. Landasan Matematika Kriptografi

2.7.1. Bilangan prima


Bilangan prima adalah bilangan bulat positif yang lebih besar dari 1 yang hanya habis
dibagi oleh 1 dan dirinya sendiri. Sebagai contoh 23 adalah bilangan prima karena
bilangan tersebut hanya habis dibagi oleh 1 dan 23. Karena bilangan prima harus lebih
besar dari 1, maka barisan bilangan dimulai dari 2, yaitu 2, 3, 5, 7, 11, 13, dan
seterusnya. Seluruh bilangan prima adalah bilangan ganjil, kecuali 2 yang merupakan
bilangan genap (Munir, 2006).

2.7.2. Pembagi bilangan terbesar (pbb)

Dua buah bilangan bulat dapat memiliki faktor pembagi yang sama. Misalkan a dan b
adalah dua buah bilangan bulat tidak nol. Pembagi bersama terbesar (PBB) dari a dan
b adalah bilangan bulat terbesar d sedemikian sehingga d|a dan d|b. Dalam hal ini kita
nyatakan bahwa PBB (a,b) = d.
Misalnya 45 memiliki faktor pembagi 1, 3, 5, 9, 15, dan 45 sendiri; sedangkan
36 memiliki faktor pembagi 1, 2, 3, 4, 9, 12, 18, dan 36 sendiri.
Faktor pembagi bersama dari 45 dan 36 adalah 1, 3, 9, yang terbesar adalah 9
sehingga disimpulkan PBB(45, 36) = 9 (Munir, 2006).
Dalam menentukan PBB perlu digunakan suatu algoritma yang lebih baik yaitu
dengan algoritma Euclidean.
Menurut Munir (2006), langkah-langkah dalam algoritma Euclidean adalah
sebagai berikut :
1. Jika n = 0 maka
2. m adalah PBB(m, n);
3. stop.
4. Bagilah m dengan n dan misalkan r adalah sisanya .
5. Ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang kembali ke
langkah 1.

Universitas Sumatera Utara


25

6. Jika m ≤ n, maka pertukaran terlebih dahulu nilai m dan n.


Contoh:
PBB dari 80 dan 12 dicari dengan algoritma Euclidean sebagai berikut:
m = 80, n = 12 dan dipenuhi syarat m ≥ n.
Karena m = 12 ≠ 0, maka langkah instruksi 2 dikerjakan : 80 dibagi 12
memberikan hasil 6 dan sisa r = 8,
80 = 6 . 12 + 8
Kerjakan langkah instruksi 3:
m = 12, n = 8
Kembali ke langkah instruksi 1, karena n = 8 ≠ 0, maka langkah instruksi 2
dikerjakan: 12 dibagi 8 memberikan hasil 1 dan sisa r = 4,
12 = 1 . 8 + 4
Kerjakan langkah instruksi 3:
m = 8, n = 4
Kembali ke langkah instruksi 1, karena b = 4 ≠ 0, maka langkah instruksi 2
dikerjakan : 8 dibagi 4 memberikan hasil 2 dan sisa r = 0,
8=2.4+0
Kerjakan langkah instruksi 3:
m = 4, n = 0
Kembali ke langkah instruksi 1, karena b = 0, maka PBB dari 80 dan 12 adalah
nilai m terakhir, yaitu 4. Jadi PBB(80, 12) = 4.
Secara ringkas proses perhitungan dengan algoritma Euclidean di atas
dinyatakn dalam runtunan pembagian berikut ini:
80 = 6 . 12 + 8
12 = 1 . 8 + 4
8 =2.4+0
Sisa pembagian terakhir sebelum 0 adalah 4, maka PBB(80, 12) = 4 (Munir,
2006).

Universitas Sumatera Utara


26

2.7.3. Relatif prima


Dua buah bilangan bulat a dan b dikatakan relatif prima (relatively prime) jika GCD
atau PBB(a, b) = 1. Sebagai contoh : 20 dan 3 relatif prima sebab PBB (20, 3) = 1.
Tetapi 20 dan 5 tidak relatif prima sebab PBB(20, 5) = 5 ≠ 1.
Jika a dan b relatif prima, maka kita dapat menemukan bilangan bulat m dan n
sedemikian sehingga
m.a + n.b = 1
Contoh :
Bilangan 20 dan 3 adalah relatif prima karena PBB(20, 3) = 1, atau dapat
ditulis
2 . 20 + (-13) . 3 = 1
Dengan m = 2 dan n = -13. Tetapi 20 dan 5 tidak relatif prima karena PBB(20,
5) = 5 ≠ 1 sehingga 20 dan 5 tidak dapat dinyatakan sebagai:
m . 20 + n . 5 = 1

2.7.4. Aritmatika modulo

Aritmatika modulo (modular arithmetic) memainkan peranan yang penting dalam


komputasi integer, khususnya pada aplikasi kriptografi. Operator yang digunakan
pada aritmatika modulo adalah mod. Operator mod memberikan sisa pembagian.
Misalnya 23 dibagi 5 memberikan hasil = 4 dan sisa = 3, sehingga kita tulis 23 mod 5
= 3.
Notasi : a mod m = r sedemikian sehingga a = mq + r , dengan 0 ≤ r ≤ m.
Bilangan m disebut modulus atau modulo, dan hasil aritmatika modulo m
terletak di dalam himpunan {0, 1, 2, ..., m - 1 }.
Contoh:
Beberapa hasil operasi dengan operator modulo:

 23 mod 5 = 3 (karena 23 dibagi 5 memberikan hasil (q) = 4 dan sisa (r) = 3,


atau ditulis sebagai 23 = 5 . 4 + 3)

 27 mod 3 = 0 ( 27 = 3 . 9 + 0)

 6 mod 8 = 6 (6 = 8 . 0 + 6)

Universitas Sumatera Utara


27

 0 mod 12 = 12 (0 = 12 . 0 + 12)

 - 41 mod 9 = 4 ( - 41 = 9 (- 5) + 4)

 - 39 mod 13 = 0 (- 39 = 13 (- 3) + 0)
Penjelasan untuk (v): karena a negatif, bagi |a| dengan m mendapatkan sisa r’.
Maka a mod m = m – r’ bila r’ ≠ 0. Jadi |- 41| mod 9 = 5, sehingga – 41 mod 9
= 9 – 5 = 4.
Jika a mod m = 0, maka dikatakan bahwa a adalah kelipatan dari m, yaitu a
habis dibagi dengan m. Misalnya pada 27 mod 3 = 0, berarti 27 adalah
kelipatan 3.

2.7.5. Lehmann primality test

Menurut Schneier (1996), berikut merupakan pengujian apakah p adalah


prima:
1. Pilih sebuah bilangan acak a kurang dari p.
2. Hitung a(p-1)/2 mod p.
3. Jika a(p-1)/2≠ 1 atau -1 (mod p), maka p bukan bilangan prima.
4. Jika a(p-1)/2 = 1 atau -1 (mod p), maka kemungkinan p bukan prima lebih
dari 50%.
Demikian sehingga, kemungkinan acak a sebagai witness pada bilangan p
sebagai bilangan tidak prima. Ulangi pengujian t kali. Jika perhitungan menghasilkan
1 atau -1, tetapi tidak selalu menghasilkan 1, maka tingkat kesalahan kemungkinan p
sebagai prima dengan (1/2)t.
Contoh :
Misal sebuah bilangan bulat positif p yang akan di uji adalah 37. Kemudian
dipilih a adalah 7. Hitung a (p-1)/2 mod p, dimana hasilnya adalah 1. Maka, p = 37
dianggap sebagai bilangan prima dengan kemungkinan kesalahan 50%.

2.7.6. Invers modulo

Apabila suatu bilangan dikalikan dengan inversnya hasilnya adalah 1. Dari aritmatika
dasar diketahui bahwa:

Universitas Sumatera Utara


28

 Invers dari bilangan A adalah I / A dimana A * I / A = 1


Contoh: invers dari 5 adalah 1/5

 Semua bilangan riil lebih besar dari 0 memiliki invers

 Pengalian sebuah bilangan dengan invers dari A sama dengan pembagian


dengan A
Contoh: 10/5 sama dengan 10 * 1/5
Dalam aritmatika modulo tidak terdapat operasi pembagian. Tetapi terdapat
invers modulo.

 Invers modulo dari A (mod C) adalah A-1

 (A * A-1)≡ 1 (mod C) atau ekivalen dengan (A * A-1) mod C = 1

 Hanya bilangan yang relatif prima terhadap C (bilangan yang tidak


memiliki faktor prima yang sama dengan C) memiliki invers modulo (mod
C)
Metode biasa yang digunakan untuk menemukan invers modulo A (mod C)
adalah:
Langkah 1. Hitung A * B (mod C) untuk B nilainya 0 sampai (C – 1)
Langkah 2. Invers modulo dari A mod C adalah B dimana nilainya didapat dari
A * B mod C = 1.
Perlu diketahui bahwa B mod C hanya akan mendapatkan nilai integer 0
sampai C – 1,sehingga pengujian dengan nilai B yang lebih besar hanya akan
membuat perulangan.
Contoh :
A = 3, C = 7
Langkah 1. Hitung A * B mod C untuk B nilainya 0 sampai C - 1
3 * 0 ≡0 (mod 7)
3 * 1 ≡3 (mod 7)
3 * 2 ≡6 (mod 7)
3 * 3 ≡ 9 ≡2 (mod 7)
3 * 4 ≡12 ≡ 5 (mod 7)

Universitas Sumatera Utara


29

3 * 5 ≡ 15 (mod 7) ≡ 1 (mod 7)
invers ditemukan.
3 * 6 ≡ 18 (mod 7) ≡ 4 (mod 7)
Langkah 2. Invers modulo dari A mod C adalah B dengan nilai yang membuat
A * B mod C = 1.
5 adalah invers modulo dari 3 mod 7 karena 5 * 3 (mod 7) = 1

2.7.7. Euler totient

Jika n ≥ 1 adalah integer. Maka dapat didefinisikan Fungis Euler Phi ɸ dengan ɸ (n) =
jumlah bilangan bulat (integer) positif yang kurang dari n dan relatif prima dengan n.
Contoh :
ɸ (1) = 1, ɸ (2) = 1, ɸ (3) = 2, ɸ (4) = 2, ɸ (5) = 4, ɸ (6) = 2, ɸ (15) = 8
ɸ (15) = 8, artinya terdapat 8 bilangan bulat positif yang kurang dari 15 dan
relatif prima dengan 15 yaitu 1, 2, 4, 7, 8, 11, 13, 14 (Sizemore, 2012).
Relatif prima atau koprima adalah himpunan bilangan dimana Faktor Pembagi
Terbesar (GCD) adalah 1 (Turner:2008:127).

2.8. Penelitian Terkait

Berikut adalah beberapa penelitian yang terkait dengan penelitian ini:


Tabel 2.5. Penelitian Terkait

Hubungan dengan Penelitian Saai


No Nama Judul
Ini
1 Boni Oktaviana Three-Pass Penelitian ini membahas penggunaan
dan Andysah Protocol skema three pass protocol dengan
Putera Utama Implementation algoritma Caesar Cipher klasik. Hasil
Siahaan in Caesar penelitian meunjukkan cipher text
(2016) Cipher Classic yang dihasilkan lebih kuat karena
Cryptography tidak dibutuhkan pertukaran kunci.
Pada penelilitian ini dipelajari
penggunaan three pass protocol untuk
kebutuhan pada penelitian yang
dilakukan saat ini.
2 S.G.Srikantaswamy Enhanced Penelitian ini bertujuan untuk
dan OneTime Pad meningkatkan kekuatan algoritma One
Dr.H.D.Phaneendra Cipher with Time Pad dalam pembangkitan kunci
(2011) More Arithmetic yang benar-benar acak. Pembentukan

Universitas Sumatera Utara


30

Hubungan dengan Penelitian Saai


No Nama Judul
Ini
and Logical kunci dilakukan dengan memberikan
Operations with nilai benih kunci yang sesuai, nilai
Flexible Key kunci yang berbeda dapat dihasilkan
Generation sehingga menghemat memori dan
Algorithm pemrosesan.
Pada penelitian ini dipelajari
penggunaan algoritma One Time Pad
dan proses pembangkitan kunci acak
dengan aman, sehingga dapat
ditetapkan pada penelitian yang
sedang dilakukan saat ini.
3 Jun Lang A no-key- Penelitian ini membahas proses
(2012) exchange secure pengiriman gambar dengan aman
image sharing tanpa perlu diakukan pertukaran kunci
scheme based on dnegan algoritma three pass protocol
Shamir’s three- dengan multiple-parameter fractional
pass fourier transform.
cryptography Pada penelitian ini dipelajari
protocol and the penggunaan skema three pass protocol
multiple- untuk pengiriman pesan sehingga
parameter dapat diterapkan pada penelitian yang
fractional sedang dilakukan.
Fourier
transform
4 Amin Subandi, Three-Pass Penelitian ini membahas implementasi
Rini Meiyanti, Cut Protocol algoritma vigenere cipher klasik
Lika Mestika Implementation dengan memodifikasi proses
Sandy, dan Rahmat in Vigenere pembangkitan kunci yang akan
Widia Sembiring. Cipher Classic diterapkan pada skema three pass
(2017) Cryptography protocol.
Algorithm with Pada penelitian ini dipelajari berbagai
Keystream kelemahan algoritma kriptografi jika
Generator digunakan pada skema three pass
Modification protocol, sehingga informasi ini
berguna untuk proses penelitian yang
sedang dilakukan saat ini.
5 A.E .Okeyinka Computational Penelitian ini dilakukan untuk
(2015) Speeds Analysis menganalisis dan membandingkan
of RSA and kecepatan enkripsi dan dekripsi dari
Elgamal algoritma RSA dan Elgamal dalam
Algorithms on proses enkripsi data teks.
Text Data Pada penelitian ini dapat dipelajari
perbandingan kecepatan proses
enkripsi dan dekripsi dari algoritma
RSA dan Elgamal, sehingga informasi
ini berguna bagi penelitian yang

Universitas Sumatera Utara


31

Hubungan dengan Penelitian Saai


No Nama Judul
Ini
sedang dilakukan untuk mendesain
proses untuk proses enkripsi dan
dekripsi dari penelitian yang sedang
dilakukan
6 Andysah Putera Three-Pass Penelitian ini membahas penerapan
Utama Siahaan Protocol algoritma Hill Cipher pada skema
(2016) Concept in a three pass protocol dengan berbagai
Hill Cipher kelebihan dan kelemahan yang terjadi.
Encryption Penelitian ini berguna untuk lebih
Technique memahami konsep dari three pass
protocol untuk keperluan penelitian
yang sedang dilakukan.
7 Muhammad Iqbal, SMS Encryption Penelitian ini membahas tentang
Muhammad Akbar Using One-Time implementasi algoritma one time pad
Syahbana Pane, Pad Cipher untuk keamanan pengiriman pesan
dan Andysah singkat (SMS).
Putera Utama Penelitian ini berguna untuk
Siahaan memahami penggunaan dari algoritma
(2016) one time, termasuk proses enkripsi,
deksripsi, dan pembangkitan kunci
yang akan digunakan pada penelitian
yang sedang dilakukan
8 Robbi Rahim, Ali Study of Three Penelitian ini dilakukan untuk
Ikhwan pass protocol on menguji skema three pass protocol
(2013) Data Security untuk mengetahui berbagai kelebihan
dan kekurangan dari skema ini untuk
pengiriman data.
Penelitian ini memberikan banyak
informasi bagi penulis tentang skema
three pass protocol sehingga dengan
informasi ini dapat dirancang
modifikasi skema three pass protocol
untuk proses pengiriman data dalam
penelitian yang sedang dilakukan saat
ini.
9 Rashmi Singh, Elgamal’s Penelitian ini membahas tentang
Shiv Kumar Algorithm in implementasi algoritma Algamal
(2012) Cryptography dalam proses pengamanan data.
Dengan adanya penelitian ini, penulis
mendapatkan banyak informasi yang
cukup untuk mengetahui berbagai
proses enkripsi dan dekripsi dari
algoritma Elgamal. Kelebihan dan
kekurangan dari algoritma ini. Hal ini
berguna untuk penelitian saat ini,
sebagai studi literatur dan referensi.

Universitas Sumatera Utara


32

Hubungan dengan Penelitian Saai


No Nama Judul
Ini
10 M. Preetha dan M. A Study And Penelitian ini mempelajari,
Nithya Performance menganalisis performa dari algoritma
(2013) Analysis Of RSA RSA untuk proses pengamanan data.
Algorithm Peneltian ini memberikan banyak
informasi tentang algoritma RSA yang
digunakan pada penelitan yang sedang
dilakukan saat ini.
11 Andreas Parry Analisis & Penelitian ini membandingkan dua
Lietara Perbandingan buah algoritma bilangan acak, yaitu
(2009) Blum Blum Shub Blum Blum Shub dan Inversive
dan Inversive Congruential Generator. Dari segi
Congruential keamanan dan keceptan prosesnya.
Generator Adanya penelitian ini, sangat
Beserta membantu penulis untuk menentukan
Implementasinya algoritma pembangkit bilangan acak
yang mana yang lebih efektik dan
efisien untuk digunakan dalam
penelitian yang yang dilakukan saat
ini.
12 Tasliyah Haramaini Algoritma One Penelitian ini membahas implementasi
(2014) time pad Pada algoritma one time pad pada skema
Skema Three three pass protocol. Pada penelitian ini
Pass Protocol diketahui berbagai kelemahan fatal
algoritma one time pad jika diterapkan
pada skema three pass protocol.
Penelitian ini sangat berguna bagi
penelitian yang sedang dilakukan.
Penelitian ini memberikan informasi
tentang berbagai kekurangan
algoritma one time pad yang harus
diperbaiki jika algoritma ini
diterapkan pada skema three pass
protocol.

Universitas Sumatera Utara


BAB 3

METODE PENELITIAN

3.1. Alur Penelitian

Bab ini membahas alur dari metode penelitian yang digunakan dalam menjalankan
penelitian agar penelitian berjalan lebih terstruktur dan terencana. Adapun metode
penelitian yang digunakan dapat dilihat pada diagram dibawah ini, dan penjelasan tiap
butir metode dijelaskan pada masing-masing sub-bab.

Gambar 3.1. Diagram Metode Penelitian yang Digunakan

3.2. Analisa Masalah

Algoritma One time pad pada saat ini masih merupakan algoritma kriptografi yang
unbreakable yang berarti cipher text dari algoritma ini tidak dapat dipecahkan, tetapi

Universitas Sumatera Utara


34

jika algoritma ini diterapkan pada skema three-pass protocol, maka algoritma ini akan
sangat mudah untuk dipecahkan. Sebagai contoh, dapat dilihat pada kasus di bawah
ini :
“Anton ingin mengirim sebuah pesan kepada Beby. Untuk merahasiakan pesan
yang dikirim, maka pesan akan dienkripsi terlebih dahulu. Dan untuk lebih
mengamankan pesan, maka tidak boleh terjadi pertukaran kunci deskripsi antara
Anton dan Beby, sehingga mereka sepakat untuk menggunakan skema three-pass
protocol dalam proses pengiriman data yang memungkinkan tidak terjadinya
pertukaran kunci. Sedangkan algoritma kriptografi yang dipilih adalah algoritma one
time pad. Dan pesan yang akan dikirim adalah : Komputer.
Skema dari three-pass protocol dapat dilihat pada diagram skema berikut:

Gambar 3.2. Skema Three Pass Protocol yang digunakan Anton dan Beby

Universitas Sumatera Utara


35

Proses enkripsi dan dekripsi dari algoritma one time pad dalam dilihat pada
persamaan dibawah ini :

Enkripsi Ci = (Pi  Ki) ....................................................................................... [3.1]

Dekripsi Pi = (Ci  Ki) ....................................................................................... [3.2]

Dimana :
P = Plain text
C = Cipher text
i = Urutan bit dari plain text, cipher text, atau kunci.

 Proses XOR

Skema three pass protocol terdiri dari tiga buah tahap sebagai berikut:

3.2.1. Tahap pertama

Anton akan membangkitkan kunci enkripsi-deskripsi secara acak sepanjang plain text
yaitu KA.
Plain text : Komputer.
Plain text dalam bentuk biner :
0100101101101111011011010111000001110101011101000110010101110010
Panjang biner dari plain text adalah 64 bit, sehingga Anton harus
membangkitkan kunci KA sepanjang 64 bit juga.
Andai kunci yang dibangkitkan adalah KA :
0110000100110011001101000100010001000110001101100011000001110001
Setelah itu, akan akan melakukan enkripsi terhadap plain text dengan kunci KA
dengan menggunakan algoritma One time pad, sebagai berikut :
Tabel 3.1. Proses Enkripsi Plain text dengan Kunci KA

Plain text 01001011011011110110110101110000011101010111010001100


10101110010
Kunci KA 01100001001100110011010001000100010001100011011000110
00001110001
HASIL XOR
Cipher text A 00101010010111000101100100110100001100110100001001010
10100000011

Universitas Sumatera Utara


36

Setelah itu, cipher text A dikirim ke Beby, sedangkan kunci Ka tetap disimpan
oleh Anton.

3.2.2. Tahap kedua

Setelah cipher text A diterima oleh Beby, maka Beby akan membangkitkan kunci KB
secara acak sepanjang cipher text A yang diterima.
Andai kunci KB yang dibangkitkan adalah
KB :
0011000000101001001010100101111001100111010010000100001001100000
Tabel 3.2. Proses Enkripsi Cipher text A dengan Kunci KB

Cipher text A 00101010010111000101100100110100001100110100001001010


10100000011
Kunci KB 00110000001010010010101001011110011001110100100001000
01001100000
HASIL XOR
Cipher text AB 00011010011101010111001101101010010101000000101000010
11101100011

Cipher text AB akan dikirim kembali ke Anton, sedangkan kunci KB tetap


disimpan oleh Beby.

3.2.3. Tahap ketiga

Setelah Anton menerima cipher text AB dari Beby, cipher text AB tersebut dideskripsi
menggunakan kunci KA yang masih disimpan oleh Anton. Seperti ditunjukkan pada
tabel berikut :
Tabel 3.3. Proses Deskripsi Cipher text AB dengan Kunci KA

Cipher text AB 00011010011101010111001101101010010101000000101000010


11101100011
Kunci KA 01100001001100110011010001000100010001100011011000110
00001110001
HASIL XOR
Cipher text B 01111011010001100100011100101110000100100011110000100
11100010010

Cipher text B hasil deskripsi cipher text AB menggunakan kunci KA akan


dikirim kembali ke Beby. Sampai tahap ini, tugas si Anton dalam mengirim pesan

Universitas Sumatera Utara


37

telah selesai. Cipher text B tersebut jika dideskripsi menggunakan kunci KB miliki
Beby akan menghasilkan pesan asli. Seperti yang ditunjukkan pada tabel 3.4 berikut:
Tabel 3.4. Proses Deskripsi Cipher text B dengan Kunci KB

Cipher text B 01111011010001100100011100101110000100100011110000100


11100010010
Kunci KB 00110000001010010010101001011110011001110100100001000
01001100000
HASIL XOR
Plain text 01001011011011110110110101110000011101010111010001100
10101110010

Jika plain text yang masih dalam bentuk biner dikonversikan ke dalam karakter
pada tabel ASCII akan menghasilkan :
Plain text = Komputer.
Algoritma one time pad dengan skema three-pass protocol akan menimbulkan
masalah jika terdapat seorang intruder atau penyadap yang berhasil menyadap tiga
buah cipher text yang dikirim, yaitu cipher text A, cipher text AB, dan cipher text B.
Dengan meng-XOR-kan ketiga cipher text tersebut, maka akan dihasilkan plain text
atau pesan asli dengan sangat mudah. Seperti ditunjukkan pada tabel berikut :
Tabel 3.5. Proses Pembentukan Plain Text dengan Meng-XOR-kan Cipher Text A,
Cipher Text AB, dan Cipher Text B.

Cipher text A 00101010010111000101100100110100001100110100001001010


10100000011
Cipher text AB 00011010011101010111001101101010010101000000101000010
11101100011
Cipher text B 01111011010001100100011100101110000100100011110000100
11100010010
HASIL XOR

Plain text 01001011011011110110110101110000011101010111010001100


10101110010

Jika plain text dikonversikan ke dalam karakter berdasarkan tabel ASCII, maka
hasilnya adalah Komputer.
Pada contoh di atas, dapat dilihat kelemahan dari algoritma one time pad jika
diterapkan pada skema three pass protocol. Analisis ini dapat dilakukan karena dalam
pengujian keamanan kriptografi, akan selalu diasumsikan bahwa:

Universitas Sumatera Utara


38

1. Intruder atau penyusup mengetahui algoritma yang digunakan. Termasuk


skema pengiriman pesan yang digunakan.
2. Mengetahui seluruh cipher text yang dikirim.
Oleh karena itu, dapat diasumsikan bahwa intruder memiliki seluruh cipher text
yang dikirim, yaitu cipher text A, cipher text AB, dan cipher text AB. Karena
memiliki ketiga cipher text tersebut, maka interuder dapat melakukan operasi XOR
terhadap ketiga cipher text ini, dan plain text akan kembali dapat dibentuk. Dalam
penelitian ini, masalah tersebut yang menjadi hal pokok yang harus diselesaikan.

3.3. Studi Literatur

Setelah tahap analisa masalah, maka tahap selanjutnya adalah tahap studi literatur.
Dimana, berbagai referensi yang berhubungan dengan penelitian ini dicari, dipelajari,
dan lalu digunakan sebagai acuan dalam menyelesaikan penelitian ini. Pengumpulan
data-data pendukung baik berupa teori atau hasil penelitian yang berhubungan dengan
penelitian ini diambil terutama dari jurnal, baik jurnal internasional maupun jurnal
nasional. Selain itu, data-data juga dikumpulkan melalui buku, baik buku cetak
maupun buku elektronik. Segala referensi yang digunakan akan dimuat pada daftar
pustaka dalam laporan penelitian tesis ini.

3.4. Analisa dan Desain Penyelesaian Masalah

Setelah menganalisa dan memahami masalah yang ada, maka perlu dirancangnya
penyelesaian masalah untuk menyelesaikan masalah yang ada. Penyelesaian masalah
diajukan dalam bentuk proses yang baru yang akan memperbaiki masalah pada proses
yang lama.

3.4.1. Analisa proses

Pada penelitian ini, diusulkan suatu penyelesaian, adapun usulan yang diajukan
sebagai penyelesaian masalah adalah dengan memodifikasi cipher text – cipher text
yang dihasilkan dari algoritma one time pad, baik pada cipher text A, cipher text AB,
maupun cipher text B. Sehingga, jika intruder berhasil mendapatkan ketiga cipher text
tersebut, maka intruder tidak dapat langsung meng-XOR-kan ketiga cipher text
tersebut untuk mendapatkan plain text. Selain itu, untuk memperkuat cipher text dari

Universitas Sumatera Utara


39

algoritma one time pad, maka dibutuhkan algoritma pembangkit bilangan acak yang
benar-benar acak dan kuat untuk membangkitkan kunci KA dan Kunci KB yang
digunakan untuk proses enkripsi dan dekripsi. Pada penelitian ini diusulkan sebuah
algoritma pembangkit bilangan acak untuk membangkitkan kunci yaitu algoritma
Blum Blum Shub. Kunci rahasia hanya boleh digunakan untuk satu kali proses enkripsi
dan dekripsi, setelah itu, kunci rahasia harus segera dihancurkan.
Setelah dilakukan modifikasi terhadap cipher text, maka penerima pesan harus
mengetahui aturan modifikasi yang dilakukan, sehingga penerima masih dapat
melakukan deskripsi terhadap cipher text yang diterima. Selain itu, aturan modifikasi
harus lah kuat dan sulit untuk dipecahkan, sehingga intruder tidak dapat memecahkan
aturan modifikasi yang dilakukan dengan mudah dan cepat.
Untuk melakukan modifikasi terhadap cipher text, pada penelitian ini diusulkan
untuk menggunakan dua buah algoritma kriptografi asimetris, yaitu algoritma RSA
dan algoritma Elgamal. Sampai saat ini, algoritma RSA dan algoritma Elgamal masih
sangat kuat, dan sulit untuk dipecahkan. Beberapa penelitian juga membuktikan
bahwa algoritma RSA dan Elgamal masih merupakan algoritma asimeteris yang layak
dan aman untuk digunakan. Selain itu juga algoritma-algoritma ini memiliki dua buah
kunci, yaitu kunci publik (public key) yang hanya digunakan untuk proses enkripsi
dan bersifat tidak rahasia (bebas), dan kunci privat (private key) yang hanya
digunakan untuk proses deskripsi dan bersifat rahasia. Sama halnya dengan kunci
rahasia, private key dan public key juga hanya boleh untuk sekali proses enkripsi dan
dekripsi, setelah itu private key dan public key tersebut harus dimusnakan. Pada
penelitian ini cipher text A dan cipher text B akan dimodifikasi dengan menggunakan
algoritma Elgamal menjadi super cipher text A, dan super cipher text B. sedangkan
cipher text AB akan dimodifikasi menggunakan algoritma RSA menjadi super cipher
text AB.
Private key sangat bersifat rahasia, oleh karena itu hanya pembangkit kunci
yang boleh menyimpan private key. Hal ini dikarenakan kegunaan dari kunci ini yang
digunakan untuk proses dekripsi sehingga mengharuskan kunci ini benar-benar
rahasia dan tidak boleh tersebar atau ikut dikirimkan sebagai pesan. Berbeda dengan
Public key bersifat tidak rahasia dan boleh disebarkan sehingga bersifat bebas, karena
kunci ini hanya digunakan untuk proses enkripsi. Logikanya, siapa saja boleh

Universitas Sumatera Utara


40

melakukan proses enkripsi, dan itu tidak akan mengurangi kerahasia data yang
dikirim, tetapi hanya orang-orang yang berhak saja yang boleh melakukan proses
dekripsi. Selain itu, private key akan sangat sulit dibentuk melalui public key,
setidaknya membutuhkan proses yang sangat lama dan sumber daya yang besar untuk
membentuk private key dari public key. Sehingga public key aman untuk disebarkan
dan aman untuk diketahui siapa saja tanpa khawatir mengganggu keamanan cipher
text.
Merujuk dari sifat public key yang aman untuk disebarkan, tanpa mengganggu
keamanan cipher text, maka public key masih layak jika ikut serta dikirimkan secara
tersendiri maupun bersamaan dengan cipher text pada skema three-pass protocol. Hal
ini dikarenakan, public key yang tidak bersifat rahasia walau syarat utama penggunaan
skema three-pass protocol yaitu tidak adanya pertukaran kunci yang dilakukan oleh
penerima dan pengirim. Tetapi, mengingat algoritma three pass protocol dirancang
untuk menjawab masalah key distribution pada algoritma simetris yang hanya
memiliki kunci rahasia, maka pertukaran kunci yang tidak boleh terjadi hanya
pertukaran kunci rahasia, tidak untuk kunci tidak rahasia (public key)
Jika menggunakan algoritma asimetris, maka public key perlu untuk dikirimakan
oleh penerima pesan kepada pengirim pesan agar pengirim pesan dapat melakukan
enkripsi terlebih dahulu terhadap pesan yang akan dikirim. Hal ini merujuk kepada
perbedaan dasar dari algoritma asimetris dengan algoritma simetris. Dimana, Dimana
algoritma kriptografi simetris hanya memiliki sebuah kunci yang digunakan untuk
proses enkripsi dan juga proses deskripsi, sehingga kunci ini benar-benar sangat rahasi
dan tidak dapat dikirim sebagai pesan karena akan dengan mudah dapat disadap.
Berdasarkan hal ini, algoritma kriptografi simteris tidak memenuhi syarat untuk
digunakan untuk memodifikasi cipher text A, cipher text AB, dan cipher text B pada
skema three-pass protocol.
Secara singkat analisa proses penyelesaian masalah yang diajukan Pada
penelitian ini terdiri dari lima poin:
1. Membangkitkan kunci enkripsi-deskripsi menggunakan algoritma Blum-
Blum Shub (BBS).
2. Semua kunci hanya boleh digunakan satu kali, baik untuk kunci rahasia,
public key, dan private key.

Universitas Sumatera Utara


41

3. Melakukan modifikasi terhadap cipher text A dan cipher text B dengan


algoritma ElGamal, sedangkan cipher text AB dengan algoritma RSA.
Algoritma ElGamal dan RSA memiliki kunci rahasia (private key) dan kunci
publik (public key)
4. Tidak mengijinkan terjadinya pertukaran kunci rahasia (private key), tetapi
mengijinkan pertukaran kunci publik (public key)
5. Memodifikasi skema three pass protocol agar dapat mengijinkan terjadinya
pertukaran public key.

3.4.2. Modifikasi skema three pass protocol

Untuk memungkinkan terjadinya pertukaran kunci publik (public key) pada skema
three pass protocol, maka terlebih dahulu harus dilakukan modifikasi terhadap skema
ini agar memungkinkan untuk terjadinya pertukaran kunci publik.
Berikut merupaka skema three pass protocol yang diusulkan setelah dilakukan
proses modifikasi:

Gambar 3.3. Skema Modifikasi Three Pass Protocol

Universitas Sumatera Utara


42

Pada skema di atas, telah diijinkan terjadinya pertukaran public key dari Beby ke
Anton juga sebaliknya. Beby akan mengirim public key B sebanyak dua kali, dimana
kedua public key ini berbeda. Sedangkan anton akan mengirimkan satu kali public key
A.
Enkripsi menggunakan public key dilakukan setelah proses enkripsi atau
dekripsi dengan kunci rahasia (KA atau KB), sedangkan proses dekripsi dengan private
key dilakukan sebelum proses enkripsi atau dekripsi dengan kunci rahasia (KA atau
KB).
Sebelum melakukan pengiriman public key, maka secara otomatis public key
dan private key akan dibangkitkan secara bersamaan. Public key dikirim, sedangkan
private key tetap disimpan.

3.4.3. Kombinasi algoritma

Pada penelitian ini digunakan lima buah algoritma dengan kegunaan masing-masing
dan sebuah skema pengiriman data yaitu modifikasi dari three pass protocol. Adapun
kelima algoritma yang digunakan adalah:
1. Algoritma one time pad
Algoritma one time pad digunakan untuk proses enkripsi awal dari plain text
menjadi cipher text A, dan enkripsi cipher text A menjadi cipher text AB. Lalu
algoritma ini digunakan untuk proses dekripsi cipher text AB menjadi cipher
text B, dan dekripsi cipher text B menjadi plain text.
Flowchart dari algoritma one time pad sebagai berikut:

Universitas Sumatera Utara


43

Gambar 3.4. Flowchart Enkripsi dengan Algoritma One Time Pad

Gambar 3.5. Flowchart Dekripsi dengan Algoritma One Time Pad

Universitas Sumatera Utara


44

2. Algoritma Elgamal
Algoritma Elgamal digunakan untuk melakukan enkripsi terhadap cipher text A
menjadi super cipher text A, dan enkripsi cipher text B menjadi super cipher
text B. Lalu algoritma ini digunakan untuk proses dekripsi dari cipher text A
menjadi super cipher text A, dan dekripsi super cipher text B menjadi cipher
text B.
Berikut flowchart dari algoritma Elgamal:

Gambar 3.6. Flowchart Generate Key dari Algoritma Elgamal

Universitas Sumatera Utara


45

Gambar 3.7. Flowchart Enkripsi dengan Algoritma Elgamal

Universitas Sumatera Utara


46

Gambar 3.8. Flowchart Dekripsi dengan Algoritma Elgamal

3. Algoritma RSA

Algoritma ini digunakan untuk mengenkripsi cipher text AB menjadi super


cipher text AB. Lalu algoritma ini digunakan untuk mendekripsi super cipher
text AB menjadi cipher text AB.
Berikut aflowchart dari algoritma RSA:

Universitas Sumatera Utara


47

Gambar 3.9. Flowchart Generate Key dari Algoritma RSA

Gambar 3.10. Flowchart Enkripsi dengan Algoritma RSA

Universitas Sumatera Utara


48

Gambar 3.11. Flowchart Dekripsi dengan Algoritma RSA

4. Algoritma Blum Blum Shub

Algoritma Blum Blum Shub digunakan untuk membangkitkan segala bilangan


acak selama proses. Bilangan-bilangan acak yang dimaksud meliputi:
a. Pembangkitan bilangan acak untuk kunci KA dan KB.
b. Pembangkitan bilangan acak untuk bilangan k yang digunakan saat
pengenkripsian menggunakan algoritma Elgamal.
c. Pembangkitan bilangan g dan x saat proses pembentukan kunci pada
algoritma Elgamal.
Berikut adalah flowchart dari algoritma Blum Blum Shub:

Universitas Sumatera Utara


49

Gambar 3.12. Flowchart dari Algoritma Blum Blum Shub

5. Algoritma Lehmann Primality Test

Algoritma Lehmann Primality Test digunakan untuk membangkitkan seluruh


bilangan prima yang digunakan pada algoritma Blum Blum Shub, algoritma
RSA, dan algoritma Elgamal.

Universitas Sumatera Utara


50

Flowchart dari algoritma Lehmann Primality Test adalah sebagai berikut:

Gambar 3.13. Flowchart dari Algoritma Lehmann Primality Test

3.4.4. Proses penyelesaian masalah

Proses penyelesaian masalah yang diusulkan dibagi menjadi tiga buah tahapan,
termasuk skema modifikasi three pass protocol juga dibagi menjadi tiga buah tahapan.
Secara lengkap seluruh proses yang terjadi pada modifikasi skema three pass protocol
dapat dilihat pada gambar berikut:

Universitas Sumatera Utara


51

Gambar 3.14. Proses Secara Lengkap

Universitas Sumatera Utara


52

Diagram proses tersebut terbagi menjadi tiga buah tahapan, adapun tahapan-
tahapan dari setiap proses tersebut adalah:

1. Tahap pertama

Tahap pertama dimulai dengan Beby membangkitkan public key B 1st dan
private key B 1st dengan algoritma Elgamal. Lalu Beby menyimpan private key
B 1st dan mengirimkan public key B 1st ke Anton.
Anton menyiapkan plain text yang akan dikirimkan, lalu membangkitkan kunci
acak KA sepanjang plain text menggunakan algoritma Blum Blum Shub. Setelah
itu, Anton mengenkripsi plain text menggunakan algoritma one time pad dengan
kunci KA menjadi cipher text A, lalu cipher text A kembali dienkripsi
menggunakan algoritma Elgamal dengan public key B 1st untuk menghasilkan
super cipher text A.
Diagram proses tahap pertama dapat dilihat pada diagram berikut:

Gambar 3.15. Proses Tahap Pertama

Universitas Sumatera Utara


53

Setelah proses enkripsi berhasil, Anton segera membangkitkan public key A,


dan private key A dengan algoritma RSA. Anton menyimpan private key A, dan
mengirimkan public key A bersama dengan super cipher text A kepada B. Ini
adalah akhir dari tahap pertama.
Semua bilangan prima dibangkitkan dengan algoritma Lehmann Primality Test.
2. Tahap kedua

Tahap kedua dimulai dengan diterimanya super cipher text A dan public key A
dari Anton oleh Beby. Beby lalu melakukan proses dekripsi terhadap cipher text
A yang diperoleh menggunakan algoritma Elgamal dengan private key B 1st
untuk menghasilkan cipher text A. Lalu dengan segera, Beby membangkitkan
kunci acak KB sepanjang cipher text A menggunakan algoritma Blum Blum
Shub. Lalu cipher text A yang diperoleh dienkripsi menggunakan algoritma one
time pad dengan kunci KB untuk menghasilkan cipher text AB. Cipher text AB
lalu kembali dienkripsi dengan menggunakan algoritma RSA dengan public key
A untuk menghasilkan super cipher text AB. Setelah itu, Beby dengan segera
kembali melakukan generate key, yaitu membangkitkan public key B 2nd dan
private key B 2nd. Private key B 2nd disimpan oleh Beby, sedangkan public key B
2nd bersama dengan super cipher text AB dikirim ke Anton. Ini adalah akhir dari
proses tahap kedua.
Sama seperti tahap pertama, seluruh bilangan prima yang dibutuhkan pada
proses ini dibangkitkan dengan menggunakan algoritma Lehmann Primality
Test. Diagram proses tahap kedua dapat dilihat pada gambar berikut:

Universitas Sumatera Utara


54

Gambar 3.16. Proses Tahap Kedua

3. Tahap ketiga

Tahap ketiga dimulai dengan diterimanya super cipher text AB dan public key B
2nd dari Beby oleh Anton. Dimana super cipher text AB tersebut didekripsi
menggunakan algoritma RSA dengan private key A untuk menghasilkan cipher
text AB. Lalu cipher text AB tersebut didekripsi menggunakan algoritma one
time pad dengan kunci KA, untuk menghasilkan cipher text B. Setelah itu, cipher
text B kembali dienkripsi menggunakan algoritma Elgamal dengan public key
B2nd untuk menghasilkan super cipher text B. Super cipher text B kemudian
dikirimkan ke Beby.

Universitas Sumatera Utara


55

Setelah Beby menerima super cipher text B, lalu super cipher text B ini
didekripsi menggunakan algoritma Elgamal dengan private key B 2nd untuk
menghasilkan cipher text B, kemudian cipher text B ini didekripsi menggunakan
algoritma one time pad dengan kunci KB untuk menghasilkan plain text.
Sama seperti tahap pertama dan tahap kedua, seluruh bilangan prima yang
dibutuhkan pada proses tahap ketiga dibangkitkan menggunakan algoritma
Lehmann Primality Test. Diagram proses tahap ketiga dapat dilihat pada gambar
berikut:

Gambar 3.17. Proses Tahap Ketiga

Universitas Sumatera Utara


56

3.5. Penyiapan Instrumen Penelitian dan Implementasi

Beberapa instrumen dibutuhkan untuk mengimpelemntasikan proses yang dirancang.


Instrumen-instrumen yang digunakan adalah:
3.5.1. Perangkat keras
Penelitian ini menggunakan perangkat keras dengan spesifikasi:
Processor : Intel Pentium (R) CPU G2030 @ 3.00 GHz
RAM : 2 GB
HD : 500 GB
Monitor : LG 21”
VGA : Intel (R) HD Graphics
Keyboard : Powerloqic
Mouse : Logitech
3.5.2. Perangkat lunak
Penelitian ini mengunakan perangkat lunak berikut:
a. XAMPP 1.7.3
Perangkat lunak ini telah memuat Apache (web server), PHP (server side
scripting). Perangkat lunak ini dibutuhkan karena rancangan proses akan
diimpelemtasikan menggunakan bahasa pemrograman PHP.
b. Sistem Operasi Windows 10
c. Notepad++ 6.1.6
3.5.3. Data
Data digunakan sebagai pesan yang diuji. Pesan yang diuji merupakan pesan teks,
dimana maksud dari pesan teks adalah pesan yang terdiri dari kombinasi kode-kode
karakter yang ada pada kode ASCII 8 bit. Pesan yang diuji tersedia di lampiran.
3.5.4. Algoritma
Algoritma yang digunakan pada penelitian ini:
a. Algoritma One time pad
b. Algoritma RSA
c. Algoritma Elgamal

Universitas Sumatera Utara


57

d. Algoritma Blum Blum Shub


e. Algoritma Lehmann Primality Test

3.6. Pengujian dan Analisa Hasil Pengujian

Pengujian terhadap rancangan proses yang telah diimplementasikan dibagi menjadi


tiga buah pengujian, yaitu pengujian algoritma, perbandingan algoritma, dan
pengujian keamanan.

3.6.1. Pengujian algoritma

Pengujian algoritma hasil rancangan proses dilakukan dengan menggunakan


pesan teks. Skenario yang terjadi adalah dimana Anton akan mengirimkan suatu pesan
teks dengan panjang tertentu kepada Beby dengan menggunakan algoritma dari
rancangan proses yang diusulkan. Hasil pengujian algoritma akan dihasilkan berbagai
data pemrosesan dan output pemrosesan.
Data pemrosesan berupa data pembangkitan bilangan prima, bilangan prima
yang dibangkitkan, bilangan acak yang dibangkitkan, cipher text A, cipher text AB,
dan cipher text B.
Output pemrosesan yang dihasilkan meliputi super cipher text A, super cipher
text AB, dan super cipher text B. Lalu kunci KA, kunci KB, private key B 1st, public
key B 1st, private key B 2nd, public key B 2nd, private key A, dan publick key A.
Pesan teks yang akan diuji terdiri dari 10 pesan teks dengan panjang karakter
yang berbeda-beda. Panjang karakter dari pesan teks yang diuji yaitu:
1. Pesan A, terdiri dari 10 karakter
2. Pesan B, terdiri dari 20 karakter
3. Pesan C, terdiri dari 50 karakter
4. Pesan D, terdiri dari 100 karakter
5. Pesan E, terdiri dari 200 karakter
6. Pesan F, terdiri dari 500 karakter
7. Pesan G, terdiri dari 1000 karakter
8. Pesan H, terdiri dari 2000 karakter

Universitas Sumatera Utara


58

9. Pesan I, terdiri dari 5000 karakter


10. Pesan J, terdiri dari 10000 karakter
Isi pesan A sampai pesan J akan dilampirkan pada lampiran laporan penelitian
tesis ini.

3.6.2. Perbandingan algoritma

Setelah melakukan pengujian terhadap algoritma hasil rancangan proses yang


diusulkan, maka estimasi waktu proses yang dibutuhkan dicatat dan selanjutnya akan
dibandingkan dengan algoritma proses yang terdahulu (algoritma one time pad pada
skema three pass protocol). Tetapi pada proses perbandingan ini, pembangkitan kunci
acak algoritma one time pad pada proses yang terdahulu juga dibangkitkan dengan
algoritma Blum Blum Shub, hal ini dilakukan agar selisih waktu yang dihasilkan saat
perbandingan memang benar-benar selisih waktu dari perubahan proses terdahulu ke
proses yang diusulkan. Perbandingan waktu proses terdahulu dengan proses yang
diusulkan disajikan dalam bentuk tabel dan grafik.

3.6.3. Analisa Kekuatan Algoritma

Algoritma yang dirancang terlebih dahulu akan dianalisa tingkat kekuatannya sebelum

dilakukan pengujian keamanan. Analisa dilakukan berdasarkan kekuatan kunci yang

digunakan, dan kekuatan cipher text yang dihasilkan.

3.6.4. Pengujian Keamanan

Pengujian keamanan dilakukan terhadap ketiga cipher text yang dikirimkan pada
proses yang diusulkan, yaitu super cipher text A, super cipher text B, dan super cipher
text B. Pengujian keamanan menggunakan empat tipe pengujian, yaitu:
1. XOR
Pengujian XOR dilakukan dengan melakukan operasi XOR pada super
cipher text A, super cipher text AB, dan super cipher text B secara
bersamaan. Hasil operasi XOR akan dianalisis apakah akan menghasilkan
kembali plain text, atau tetap tidak akan menghasilkan pesan bermakna
(cipher text). Pengujian ini mutlak diperlukan dikarenakan pada proses

Universitas Sumatera Utara


59

terdahulu, jika cipher text A, cipher text AB, dan cipher text B dilakukan
operasi XOR secara bersamaan akan kembali menghasilkan plain text.
2. Bruto Force
Pengujian bruto force dilakukan untuk menganalisis berapa banyak intruder
harus mencoba melakukan enkripsi terhadap super cipher text maupun
cipher text hingga mendapatkan plain text dengan semua kemungkinan
kunci yang ada. Semakin banyak kunci yang harus dicoba, maka semakin
kuat super cipher text atau cipher text tersebut.
3. Ciphertext-Only Analysis
Pengujian keamanan dengan ciphertext-only analysis dilakukan dengan
memberikan asumsi bahwa intruder memiliki seluruh super cipher text A,
super cipher text AB, dan super cipher text B yang dikirim, tetapi interuder
sama sekali tidak memiliki sedikitpun potongan dari plain text. Dengan
asumsi tersebut, dilakukan analisis kemungkinan interuder dapat
memecahkan super cipher text menjadi plain text.
4. Known-Plaintext Analysis
Pengujian keamanan dengan teknik known-plaintext analysis dilakukan
dengan memberikan asumsi bahwa intruder mengetahui sebagian isi plain
text dari super cipher text yang berhasil didapatkan. Intruder berusaha
mencari kunci yang digunakan untuk membuat super cipher text. Dengan
asumsi tersebut, dilakukan analisis kemungkinan interuder akan
memecahkan super cipher text menjadi plain text.

3.7. Penarikan Kesimpulan

Tahap ini merupakan tahap akhir dari penelitian, dimana pada tahap ini dilakukan
penarikan kesimpulan dari analisa hasil pengujian yang telah dilakukan. Penarikan
kesimpulan akan disajikan dalam bab V pada laporan penelitian tesis ini.

Universitas Sumatera Utara


BAB 4

HASIL DAN PEMBAHASAN

4.1. Pengujian Algoritma

Pengujian algoritma dilakukan dengan skenario terdapat dua orang yang akan
melakukan komunikasi, dimana pengirim pesan bernama Anton akan mengirimkan
sebuah pesan kepada Beby. Pesan ini adalah pesan rahasia yang hanya boleh untuk
diketahui oleh Anton dan Beby. Pesan ini akan dikirimkan dengan algoritma yang
dirancang dalam penelitian ini. Adapun pesan yang akan dikirim disebut plain text. Isi
plain text tersebut adalah:
Plain text : Informatika
Algoritma yang dirancang terdiri dari tiga buah tahapan, adapun proses yang
terjadi pada setiap tahapan sebagai berikut:

4.1.1. Tahap pertama

1. Pembangkitan kunci Elgamal pertama


a. Bangkitkan Bilangan Prima p
Dalam pembangkitan kunci Elgamal, dipilih sebuah bilangan acak prima (p).
Untuk menguji keprimaan dari bilangan yang dipilih digunakan algoritma
Lehmann Primality Test.
Bilangan prima (p) yang dipilih = 1759
Bilangan p akan diuji dengan algoritma Lehmann Primality Test. Algoritma
Lehmann Primality Test adalah sebagai berikut:
1) Pilih sebuah bilangan acak a kurang dari p.
2) Hitung a(p-1)/2 mod p.
3) Jika a(p-1)/2≠ 1 atau -1 (mod p), maka p bukan bilangan prima.

Universitas Sumatera Utara


61

Pengujian akan dilakukan dengan tiga kali pengujian sukses untuk


meningkatkan kepercayaan bahwa bilangan p adalah prima. Berikut adalah
pengujian yang dilakukan:
1) Pengujian Pertama
1. Andai a = 24
2. 24(1759-1)/2 mod 1759 = -1
3. Karena hasil = -1, maka bilangan 1759 adalah prima
2) Pengujian Kedua
1. Andai a = 682
2. 682(1759-1)/2 mod 1759 = 1
3. Karena hasil = 1, maka bilangan 1759 adalah prima
3) Pengujian Ketiga
1. Andai a = 128
2. 128(1759-1)/2 mod 1759 = 1
3. Karena hasil = 1, maka bilangan 1759 adalah prima
Dengan tiga kali pengujian dan hasilnya menunjukkan bahwa 1759 adalah
bilangan prima, maka ditentukan bahwa:
P = 1759
Setelah itu, pilih bilangan acak g dan x, dimana g < p, dan 1≤x≤p-2. Untuk
membangkitkan bilangan acak g dan x, maka digunakan algoritma Blum
Blum Shub untuk membangkitkannya.
b. Membangkitkan bilangan acak g
1) Pilih duah buah bilangan prima p dan q. (bilangan prima dibangkitkan
dengan algoritma Lehmann Primality Test). Bilangan yang dipilih:
p = 1523 dan q = 1087
2) Hitung n = p.q. Sehingga n = (1523)(1087) = 1655501
3) Pilih bilangan s, dimana 2 ≤ s ≤ n dan GCD(s,n) = 1 atau relatif prima.
Dipilih s = 1302859, karena GCD(1302859, 1655501) = 1
4) Hitung x0 = s2 mod n = 13028592 mod 1655501 = 111547

Universitas Sumatera Utara


62

5) Nilai g<p. disini g<p-2, maka g = x0 mod (p-2) = 111547 mod 1756 =
856.
6) Sehingga g = 856
c. Membangkitkan bilangan acak x
1) Pilih duah buah bilangan prima p dan q. (bilangan prima dibangkitkan
dengan algoritma Lehmann Primality Test). Bilangan yang dipilih:
p = 1567 dan q : 1399
Hitung n = p.q. Sehingga n = (1567)(1399) = 2192233
2) Pilih bilangan s, dimana 2 ≤ s ≤ n dan GCD(s,n) = 1 atau relatif prima.
Dipilih s = 849117, karena GCD(849117, 2192233) = 1
3) Hitung x0 = s2 mod n = 8491172 mod 2192233 = 552785
4) Nilai g<p. disini g<p-2, maka g = x0 mod (p-2) = 552785 mod 1756 =
1087
5) Sehingga x = 1087
d. Membangkitkan bilangan y
Hitung y dengan persamaan:
y = gx mod p = 8561087 mod 1759 = 1148
Setelah didapatkan nilai p, g, x, dan y, maka dapat dibentuk private key B 1st dan
public key B1st. Dimana
Public key B 1st = (y,g,p), oleh karena itu maka:
Public key B 1st = (1148, 856, 1759)
Private key B1st = (x.p), oleh karena itu maka:
Private key B1st = (1087, 1759)
Beby selanjutnya mengirimkan public key B1st ke Anton dan menyimpan
private key B 1st.
2. Pembangkitan kunci acak KA
Plain text yang dikirim adalah Informatika, memiliki panjang karakter 11
karakter. Plain text terlebih dahulu diubah kedalam bentuk biner 8 bit
berdasarkan kode ASCII sehingga menjadi:
Plain text : Informatika

Universitas Sumatera Utara


63

I : 01001001
n : 01101110
f : 01100110
o : 01101111
r : 01110010
m : 01101101
a : 01100001
t : 01110100
i : 01101001
k : 01101011
a : 01100001
Plain text :
0100100101101110011001100110111101110010011011010110000101110100
011010010110101101100001
Panjang bit plain text = 88 bit
Setelah panjang bit plain text diketahui, maka bangkitkan bit acak sepanjang bit
plain text untuk menjadi kunci acak KA dengan algoritma Blum Blum Shub
berikut:
1) Pilih bilangan prima p dan q. p = 1423 dan q = 1423.
2) n = p.q = (1423) (1423) = 2024929
3) s = 784624, karena GCD(784624, 2024929) = 1
Setelah itu, bangkitkan bit acak sebanyak 88 bit acak dengan persamaan x i = xi-1
mod p, dimana x0 = s mod p
1) x0 = 7846242 mod 2024929 = 1732293 mod 2 =1
2) x1 = 17322932 mod 2024929 = 1581086 mod 2 =0
2
3) x2 = 1581086 mod 2024929 = 1390884 mod 2 =0
4) x3 = 13908842 mod 2024929 = 1882726 mod 2 =0
5) x4 = 18827262 mod 2024929 = 752215 mod 2 =1
6) x5 = 7522152 mod 2024929 = 1495755 mod 2 =1
7) x6 = 14957552 mod 2024929 = 1740724 mod 2 =0

Universitas Sumatera Utara


64

8) x7 = 17407242 mod 2024929 = 89144 mod 2 =0


9) x8 = 891442 mod 2024929 = 831340 mod 2 =0
10) x9 = 8313402 mod 2024929 = 1728468 mod 2 =0
11) x10 = 17284682 mod 2024929 = 1131134 mod 2 =0
12) x11 = 11311342 mod 2024929 = 587732 mod 2 =0
2
13) x12 = 587732 mod 2024929 = 315572 mod 2 =0
14) x13 = 3155722 mod 2024929 = 1703893 mod 2 =1
15) x14 = 17038932 mod 2024929 = 1301983 mod 2 =1
16) x15 = 13019832 mod 2024929 = 544584 mod 2 =0
17) x16 = 5445842 mod 2024929 = 631716 mod 2 =0
18) x17 = 6317162 mod 2024929 = 197052 mod 2 =0
19) x18 = 1970522 mod 2024929 = 1477129 mod 2 =1
20) x19 = 14771292 mod 2024929 = 486845 mod 2 =1
21) x20 = 4868452 mod 2024929 = 114575 mod 2 =1
22) x21 = 1145752 mod 2024929 = 1840847 mod 2 =1
2
23) x22 = 1840847 mod 2024929 = 1020838 mod 2 =0
24) x23 = 10208382 mod 2024929 = 761684 mod 2 =0
25) x24 = 7616842 mod 2024929 = 108066 mod 2 =0
26) x25 = 1080662 mod 2024929 = 494813 mod 2 =1
27) x26 = 4948132 mod 2024929 = 1689721 mod 2 =1
28) x27 = 16897212 mod 2024929 = 1093054 mod 2 =0
29) x28 = 10930542 mod 2024929 = 213975 mod 2 =1
30) x29 = 2139752 mod 2024929 = 1655935 mod 2 =1
31) x30 = 16559352 mod 2024929 = 346076 mod 2 =0
32) x31 = 3460762 mod 2024929 = 122213 mod 2 =1
2
33) x32 = 122213 mod 2024929 = 141065 mod 2 =1
34) x33 = 1410652 mod 2024929 = 356942 mod 2 =0
35) x34 = 3569422 mod 2024929 = 1083613 mod 2 =1
36) x35 = 10836132 mod 2024929 = 1305249 mod 2 =1

Universitas Sumatera Utara


65

37) x36 = 13052492 mod 2024929 = 937851 mod 2 =1


38) x37 = 9378512 mod 2024929 = 138329 mod 2 =1
39) x38 = 1383292 mod 2024929 = 1358120 mod 2 =0
40) x39 = 13581202 mod 2024929 = 332661 mod 2 =1
41) x40 = 3326612 mod 2024929 = 971071 mod 2 =1
42) x41 = 9710712 mod 2024929 = 1850605 mod 2 =1
2
43) x42 = 1850605 mod 2024929 = 747473 mod 2 =1
44) x43 = 7474732 mod 2024929 = 1525907 mod 2 =1
45) x44 = 15259072 mod 2024929 = 1237922 mod 2 =0
46) x45 = 12379222 mod 2024929 = 810316 mod 2 =0
47) x46 = 8103162 mod 2024929 = 442600 mod 2 =0
48) x47 = 4426002 mod 2024929 = 1103611 mod 2 =1
49) x48 = 11036112 mod 2024929 = 919472 mod 2 =0
50) x49 = 9194722 mod 2024929 = 651994 mod 2 =0
51) x50 = 6519942 mod 2024929 = 806137 mod 2 =1
52) x51 = 8061372 mod 2024929 = 448657 mod 2 =1
2
53) x52 = 448657 mod 2024929 = 986546 mod 2 =0
54) x53 = 9865462 mod 2024929 = 1010911 mod 2 =1
55) x54 = 10109112 mod 2024929 = 1907130 mod 2 =0
56) x55 = 19071302 mod 2024929 = 1790893 mod 2 =1
57) x56 = 17908932 mod 2024929 = 544775 mod 2 =1
58) x57 = 5447752 mod 2024929 = 131598 mod 2 =0
59) x58 = 1315982 mod 2024929 = 840796 mod 2 =0
60) x59 = 8407962 mod 2024929 = 775923 mod 2 =1
61) x60 = 7759232 mod 2024929 = 561791 mod 2 =1
62) x61 = 5617912 mod 2024929 = 1668812 mod 2 =0
2
63) x62 = 1668812 mod 2024929 = 39348 mod 2 =0
64) x63 = 393482 mod 2024929 = 1219348 mod 2 =0
65) x64 = 12193482 mod 2024929 = 1376996 mod 2 =0

Universitas Sumatera Utara


66

66) x65 = 13769962 mod 2024929 = 792493 mod 2 =1


67) x66 = 7924932 mod 2024929 = 1276125 mod 2 =1
68) x67 = 12761252 mod 2024929 = 540458 mod 2 =0
69) x68 = 5404582 mod 2024929 = 866443 mod 2 =1
70) x69 = 8664432 mod 2024929 = 1294789 mod 2 =1
71) x70 = 12947892 mod 2024929 = 1361770 mod 2 =0
72) x71 = 13617702 mod 2024929 = 1729203 mod 2 =1
2
73) x72 = 1729203 mod 2024929 = 1233424 mod 2 =0
74) x73 = 12334242 mod 2024929 = 1556218 mod 2 =0
75) x74 = 15562182 mod 2024929 = 1404453 mod 2 =1
76) x75 = 14044532 mod 2024929 = 840451 mod 2 =1
77) x76 = 8404512 mod 2024929 = 1900331 mod 2 =1
78) x77 = 19003312 mod 2024929 = 1555890 mod 2 =0
79) x78 = 15558902 mod 2024929 = 1197245 mod 2 =1
80) x79 = 11972452 mod 2024929 = 999079 mod 2 =1
81) x80 = 9990792 mod 2024929 = 471626 mod 2 =0
82) x81 = 4716262 mod 2024929 = 732942 mod 2 =0
2
83) x82 = 732942 mod 2024929 = 436309 mod 2 =1
84) x83 = 4363092 mod 2024929 = 1968191 mod 2 =1
85) x84 = 19681912 mod 2024929 = 1588463 mod 2 =1
86) x85 = 15884632 mod 2024929 = 1298694 mod 2 =0
87) x86 = 12986942 mod 2024929 = 218027 mod 2 =1
88) x87 = 2180272 mod 2024929 = 564454 mod 2 =0
Berdasarkan proses di atas, maka didapatkan:
Kunci KA =
1000110000000110001111000110110110111101111100010011010110011000
011011010011101100111010

Universitas Sumatera Utara


67

3. Enkripsi plain text dengan algoritma one time pad


Lakukan enkripsi terhadap plain text dengan kunci KA dengan menggunakan
algoritma One time pad menggunakan operasi XOR.
Tabel 4.1. Proses Enkripsi Plain text dengan Kunci KA

Plain text 01001001011011100110011001101111011100100110110101100


00101110100011010010110101101100001
Kunci KA 10001100000001100011110001101101101111011111000100110
10110011000011011010011101100111010
HASIL XOR
Cipher text A 11000101011010000101101000000010110011111001110001010
10011101100000001000101000001011011

Berdasarkan hasil operasi XOR pada tabel 4.1. diketahui bahwa cipher text A
adalah:
1100010101101000010110100000001011001111100111000101010011101100
000001000101000001011011
4. Enkripsi cipher text A dengan algoritma Elgamal
Cipher text A yang dihasilkan lalu dienkripsi menggunakan algoritma Elgamal
dengan public key B 1st yang diterima oleh Anton dari Beby. Adapun public key
B 1st yang diterima:
Public key B 1st = 1148,856,1759
Dimana y = 1148, g = 856, p = 1759.
Langkah-langkah enkripsi cipher text A dengan algoritma Elgamal sebagai
berikut:
1) Konversi cipher text A ke dalam bentuk desimal menjadi:
Cipher text A =
11000101011010000101101000000010110011111001110001010100111011
00000001000101000001011011
11000101 = 197
01101000 = 104
01011010 = 90
00000010 =2
11001111 = 207

Universitas Sumatera Utara


68

10011100 = 156
01010100 = 84
11101100 = 236
00000100 =4
01010000 = 80
01011011 = 91
Sehingga Cipher text A = 197 104 90 2 207 156 84 236 4 80 91
2) Enkripsi cipher text A
Cipher text A memiliki 11 blok, enkripsi dilakukan perblok, dan dimulai dari
blok ke 0 sampai blok ke 10 dengan persamaan: a = gk mod p. dimana k
adalah bilangan acak dengan syarat 1≤k≤p-2 yang dibangkitkan dengan
algoritma Blum Blum Shub dengan parameter nilai:
p = 1039
q = 1319
n = 1370441
s = 70096.
Maka, proses enkripsi yang terjadi adalah:
Blok ke - 0
k = 700962 mod 1370441 = 418231 mod 1757 = 65
m0 = 197
a = 85665 mod 1759 = 823
65
b = (1148 )(197) mod 1759 = 1447

Blok ke - 1
k = 4182312 mod 1370441 = 932326 mod 1757 = 1116
m1 = 104
a = 8561116 mod 1759 = 513
1116
b = (1148 )(104) mod 1759 = 179

Blok ke - 2
k = 9323262 mod 1370441 = 786765 mod 1757 = 1386

Universitas Sumatera Utara


69

m2 = 90
a = 8561386 mod 1759 = 1492
1386
b = (1148 )(90) mod 1759 = 10

Blok ke - 3
k = 7867652 mod 1370441 = 1115227 mod 1757 = 1289
m3 =2
a = 8561289 mod 1759 = 1046
b = (11481289)(2) mod 1759 = 1345

Blok ke - 4
k = 11152272 mod 1370441 = 1236389 mod 1757 = 1218
m4 = 207
a = 8561218 mod 1759 = 999
b = (11481218)(207) mod 1759 = 1166

Blok ke - 5
k = 12363892 mod 1370441 = 716312 mod 1757 = 1213
m5 = 156
a = 8561213 mod 1759 = 1697
b = (11481213)(156) mod 1759 = 1545

Blok ke - 6
k = 7163122 mod 1370441 = 177857 mod 1757 = 400
m6 = 84
a = 856400 mod 1759 = 527
b = (1148400)(84) mod 1759 = 180

Blok ke - 7
k = 1778572 mod 1370441 = 593287 mod 1757 = 1178
m7 = 236
a = 8561178 mod 1759 = 1249
b = (11481178)(236) mod 1759 = 1148

Universitas Sumatera Utara


70

Blok ke - 8
k = 5932872 mod 1370441 = 1286606 mod 1757 = 482
m8 =4
a = 856482 mod 1759 = 872
b = (1148482)(4) mod 1759 = 1270

Blok ke - 9
k = 12866062 mod 1370441 = 685777 mod 1757 = 547
m9 = 80
a = 856547 mod 1759 = 1743
b = (1148547)(80) mod 1759 = 1560

Blok ke - 10
k = 6857772 mod 1370441 = 1337523 mod 1757 = 446
m10 = 91
a = 856446 mod 1759 = 98
b = (1148446)(91) mod 1759 = 95

Dengan aturan bahwa a dan b adalah sebuah blok cipher text, maka didapat:
Super cipher text A =
823,1447.513,179.1492,10.1046,1345.999,1166.1697,1545.527,180.1249,11
48.872,1270.1743,1560.98,95.
5. Pembangkitan kunci RSA
Setelah Super cipher text A berhasil dibangkitkan, maka dengan segera Anton
harus membangkitkan kunci RSA yang terdiri dari private key A dan public key
A. Langkah-langkah membangkitkan kunci RSA sebagai berikut:
1) Pilih bilangan prima p dan q
Bilangan prima dibangkitkan dengan algoritma Lehmann Primality Test
sehingga mendapatkan bilangan prima p = 1823 dan q = 1087.
2) Hitung nilai n
Dengan persamaan n = p.q, maka n = (1823)(1087) = 1981601

Universitas Sumatera Utara


71

3) Hitung nilai ɸ (n)


Dengan persamaan ɸ (n) = (p-1)(q-1), maka ɸ (n) = (1823-1)(1087-1) =
1978692
4) Cari nilai e
Cari secara acak dimana GCD(e, ɸ (n)) = 1 atau e relatif prima dengan ɸ (n).
Maka didapatkan e = 55, karena GCD(55, 1981601) = 1
5) Cari nilai d
Cari secara acak dimana e.d = 1 (mod ɸ(n)), maka didapatkan nilai d =
1151239.
Dengan aturan bahwa public key A = (e, d), maka:
Public key A = 55, 1981601
Dengan aturan bahwa Private key A = (d,p)
Private key A = 1151239, 1981601
Selanjutnya super cipher text A dan public key A dikirimkan oleh Anton ke
Beby untuk dilakukan proses tahap kedua.

4.1.2. Tahap kedua

Pada proses tahap kedua dimulai dengan diterimanya super cipher text A dan public
key A oleh Beby dari Anton. Dimana akan dilakukan lima proses lebih lanjut pada
tahap kedua, yaitu:
1. Dekripsi Super cipher text A dengan Algoritma Elgamal
Setelah Beby menerima super cipher text A, maka Beby segera melakukan
proses dekripsi dengan algoritma Elgamal menggunakan private key B 1st yang
disimpan oleh Beby untuk menghasilkan cipher text A.
Diketahui:
Private key B 1st = 1087,1759, dimana x = 1087 dan p = 1759.
Super cipher text A =
823,1447.513,179.1492,10.1046,1345.999,1166.1697,1545.527,180.1249,1148.
872,1270.1743,1560.98,95.
Super cipher text A didekripsi dengan persamaan:

Universitas Sumatera Utara


72

m = b.c mod p. Dimana c = ap-1-x mod p


Super cipher text A memiliki 11 blok yang dipisahkan dengan titik, bilangan
sebelah kiri adalah a, sedangkan kanan adalah b. Proses dekripsi dapat sebagai
berikut:

Blok ke - 0
c = 823(1759-1-1087) mod 1759 = 332
m0 = (1447)(332) mod 1759 = 197
Biner m = 11000101

Blok ke - 1
c = 513(1759-1-1087) mod 1759 = 374
m1 = (179)(374) mod 1759 = 104
Biner m = 01101000

Blok ke - 2
c = 1492(1759-1-1087) mod 1759 =9
m2 = (10)(9) mod 1759 = 90
Biner m = 01011010

Blok ke - 3
c = 1046(1759-1-1087) mod 1759 = 1742
m3 = (1345)(1742) mod 1759 =2
Biner m = 00000010

Blok ke - 4
c = 999(1759-1-1087) mod 1759 = 1640
m4 = (1166)(1640) mod 1759 = 207
Biner m = 11001111
Blok ke - 5
c = 1697(1759-1-1087) mod 1759 = 1561
m5 = (1545)(1561) mod 1759 = 156
Biner m = 10011100

Universitas Sumatera Utara


73

Blok ke - 6
c = 527(1759-1-1087) mod 1759 = 235
m6 = (180)(235) mod 1759 = 84
Biner m = 01010100

Blok ke - 7
c = 1249(1759-1-1087) mod 1759 = 656
m7 = (1148)(656) mod 1759 = 236
Biner m = 11101100

Blok ke - 8
c = 872(1759-1-1087) mod 1759 = 241
m8 = (1270)(241) mod 1759 =4
Biner m = 00000100

Blok ke - 9
c = 1743(1759-1-1087) mod 1759 = 857
m9 = (1560)(857) mod 1759 = 80
Biner m = 01010000

Blok ke - 10
c = 98(1759-1-1087) mod 1759 = 1223
m10 = (95)(1223) mod 1759 = 91
Biner m = 01011011

Berdasarkan proses dekripsi di atas, maka didapatkan cipher text A dalam


bentuk biner:
Cipher text A =
1100010101101000010110100000001011001111100111000101010011101100
000001000101000001011011.

Universitas Sumatera Utara


74

2. Pembangkitan kunci acak KB


Setelah cipher text A didapatkan, maka Beby dengan segera membangkitkan
kunci KB sepanjang bit cipher text A ddngan menggunakan algoritma Blum
Blum Shub.
Diketahui bahwa panjang bit cipher text A = 88 bit
Setelah panjang bit cipher text A diketahui, maka bangkitkan bit acak sepanjang
bit cipher text A untuk menjadi kunci acak KB dengan algoritma Blum Blum
Shub berikut:
a. Pilih bilangan prima p dan q. p = 1291 dan q = 1427
b. n = p.q = (1291) (1427) = 1842257
c. s = 1519211, karena GCD(1519211, 1842257) = 1
Setelah itu, bangkitkan bit acak sebanyak 88 bit acak dengan persamaan x i = xi-1
mod p, dimana x0 = s mod p
1) x0 = 15192112 mod 1842257 = 385837 mod 2 =1
2) x1 = 3858372 mod 1842257 = 1086913 mod 2 =1
3) x2 = 10869132 mod 1842257 = 1249950 mod 2 =0
4) x3 = 12499502 mod 1842257 = 1054968 mod 2 =0
5) x4 = 10549682 mod 1842257 = 286385 mod 2 =1
6) x5 = 2863852 mod 1842257 = 928842 mod 2 =0
7) x6 = 9288422 mod 1842257 = 85294 mod 2 =0
8) x7 = 852942 mod 1842257 = 1835800 mod 2 =0
9) x8 = 18358002 mod 1842257 = 1163195 mod 2 =1
10) x9 = 11631952 mod 1842257 = 903716 mod 2 =0
11) x10 = 9037162 mod 1842257 = 604444 mod 2 =0
12) x11 = 6044442 mod 1842257 = 1667667 mod 2 =1
13) x12 = 16676672 mod 1842257 = 1526035 mod 2 =1
14) x13 = 15260352 mod 1842257 = 485581 mod 2 =1
15) x14 = 4855812 mod 1842257 = 276388 mod 2 =0
16) x15 = 2763882 mod 1842257 = 1140039 mod 2 =1
17) x16 = 11400392 mod 1842257 = 557362 mod 2 =0

Universitas Sumatera Utara


75

18) x17 = 5573622 mod 1842257 = 1812419 mod 2 =1


19) x18 = 18124192 mod 1842257 = 496113 mod 2 =1
20) x19 = 4961132 mod 1842257 = 731312 mod 2 =0
21) x20 = 7313122 mod 1842257 = 822959 mod 2 =1
22) x21 = 8229592 mod 1842257 = 1786056 mod 2 =0
23) x22 = 17860562 mod 1842257 = 923903 mod 2 =1
24) x23 = 9239032 mod 1842257 = 1710515 mod 2 =1
25) x24 = 17105152 mod 1842257 = 51367 mod 2 =1
26) x25 = 513672 mod 1842257 = 456665 mod 2 =1
27) x26 = 4566652 mod 1842257 = 1272082 mod 2 =0
28) x27 = 12720822 mod 1842257 = 122349 mod 2 =1
29) x28 = 1223492 mod 1842257 = 939676 mod 2 =0
30) x29 = 9396762 mod 1842257 = 889390 mod 2 =0
31) x30 = 8893902 mod 1842257 = 999496 mod 2 =0
32) x31 = 9994962 mod 1842257 = 761911 mod 2 =1
33) x32 = 7619112 mod 1842257 = 295422 mod 2 =0
34) x33 = 2954222 mod 1842257 = 917223 mod 2 =1
35) x34 = 9172232 mod 1842257 = 54310 mod 2 =0
36) x35 = 543102 mod 1842257 = 122643 mod 2 =1
37) x36 = 1226432 mod 1842257 = 1119301 mod 2 =1
38) x37 = 11193012 mod 1842257 = 486723 mod 2 =1
39) x38 = 4867232 mod 1842257 = 1608842 mod 2 =0
40) x39 = 16088422 mod 1842257 = 1495964 mod 2 =0
41) x40 = 14959642 mod 1842257 = 806948 mod 2 =0
42) x41 = 8069482 mod 1842257 = 915484 mod 2 =0
43) x42 = 9154842 mod 1842257 = 81447 mod 2 =1
44) x43 = 814472 mod 1842257 = 1488609 mod 2 =1
45) x44 = 14886092 mod 1842257 = 1606945 mod 2 =1
46) x45 = 16069452 mod 1842257 = 860952 mod 2 =0

Universitas Sumatera Utara


76

47) x46 = 8609522 mod 1842257 = 715583 mod 2 =1


48) x47 = 7155832 mod 1842257 = 12225 mod 2 =1
49) x48 = 122252 mod 1842257 = 227808 mod 2 =0
50) x49 = 2278082 mod 1842257 = 105174 mod 2 =0
51) x50 = 1051742 mod 1842257 = 659248 mod 2 =0
52) x51 = 6592482 mod 1842257 = 1076634 mod 2 =0
53) x52 = 10766342 mod 1842257 = 34584 mod 2 =0
54) x53 = 345842 mod 1842257 = 428263 mod 2 =1
55) x54 = 4282632 mod 1842257 = 1459277 mod 2 =1
56) x55 = 14592772 mod 1842257 = 547088 mod 2 =0
57) x56 = 5470882 mod 1842257 = 1153982 mod 2 =0
58) x57 = 11539822 mod 1842257 = 826131 mod 2 =1
59) x58 = 8261312 mod 1842257 = 689656 mod 2 =0
60) x59 = 6896562 mod 1842257 = 697361 mod 2 =1
61) x60 = 6973612 mod 1842257 = 730489 mod 2 =1
62) x61 = 7304892 mod 1842257 = 754557 mod 2 =1
63) x62 = 7545572 mod 1842257 = 1213628 mod 2 =0
64) x63 = 12136282 mod 1842257 = 1081856 mod 2 =0
65) x64 = 10818562 mod 1842257 = 741038 mod 2 =0
66) x65 = 7410382 mod 1842257 = 1035398 mod 2 =0
67) x66 = 10353982 mod 1842257 = 982707 mod 2 =1
68) x67 = 9827072 mod 1842257 = 86192 mod 2 =0
69) x68 = 861922 mod 1842257 = 1080640 mod 2 =0
70) x69 = 10806402 mod 1842257 = 46641 mod 2 =1
71) x70 = 466412 mod 1842257 = 1519621 mod 2 =1
72) x71 = 15196212 mod 1842257 = 941225 mod 2 =1
73) x72 = 9412252 mod 1842257 = 1796722 mod 2 =0
74) x73 = 17967222 mod 1842257 = 897100 mod 2 =0
75) x74 = 8971002 mod 1842257 = 281807 mod 2 =1

Universitas Sumatera Utara


77

76) x75 = 2818072 mod 1842257 = 1012750 mod 2 =0


77) x76 = 10127502 mod 1842257 = 715806 mod 2 =0
78) x77 = 7158062 mod 1842257 = 501511 mod 2 =1
79) x78 = 5015112 mod 1842257 = 988453 mod 2 =1
80) x79 = 9884532 mod 1842257 = 175516 mod 2 =0
81) x80 = 1755162 mod 1842257 = 1486959 mod 2 =1
82) x81 = 14869592 mod 1842257 = 1534650 mod 2 =0
83) x82 = 15346502 mod 1842257 = 62415 mod 2 =1
84) x83 = 624152 mod 1842257 = 1100927 mod 2 =1
85) x84 = 11009272 mod 1842257 = 956459 mod 2 =1
86) x85 = 9564592 mod 1842257 = 575677 mod 2 =1
87) x86 = 5756772 mod 1842257 = 396599 mod 2 =1
88) x87 = 3965992 mod 1842257 = 706398 mod 2 =0
Berdasarkan proses di atas,maka didapatkan:
KB =
1100100010011101011010111101000101011100001110110000011001011100
001001110010011010111110
3. Enkripsi cipher text A dengan algoritma one time pad
Setelah kunci KB berhasi dibangkitkan, maka lakukan proses enkripsi terhadap
cipher text A dengan algoritma one time pad menggunakan kunci KB dengan
operasi XOR. Proses enkripsi sebagai berikut:
Tabel 4.2. Proses Enkripsi Cipher text A dengan Kunci KB
Cipher text A 11000101011010000101101000000010110011111001110001010
10011101100000001000101000001011011
Kunci KB 11001000100111010110101111010001010111000011101100000
11001011100001001110010011010111110
HASIL XOR
Cipher text AB 00001101111101010011000111010011100100111010011101010
01010110000001000110111011011100101

Berdasarkan hasil operasi XOR pada tabel 4.2, didapatkan cipher text AB
adalah:

Universitas Sumatera Utara


78

Cipher text AB =
0000110111110101001100011101001110010011101001110101001010110000
001000110111011011100101
4. Enkripsi cipher text AB dengan algoritma RSA
Setelah cipher text AB berhasil didapatkan, maka Beby segera melakukan
enkripsi terhadap cipher text AB untuk mendapatkan super cipher text AB
dengan algoritma RSA menggunakan public key A yang didapatkan dari Anton.
Tetapi, cipher text AB terlebih dahulu harus dikonversikan ke dalam bentuk
desimal, sehingga menjadi:
00001101 = 13
11110101 = 245
00110001 = 49
11010011 = 211
10010011 = 147
10100111 = 167
01010010 = 82
10110000 = 176
00100011 = 35
01110110 = 118
11100101 = 229
Sehingga, cipher text AB = 13 245 49 211 147 167 82 176 35 118 229
Setelah cipher text AB dikonversi ke desimal, maka lakukan enkripsi untuk
setiap blok cipher text AB dengan persamaan Ci = Pie mod n dengan public key
A = 55, 1981601, dimana e = 55 dan n = 1981601. Proses enkripsi yang terjadi
dapat dilihat sebagai berikut:
C0 = 13055 mod 1981601 = 188995
C1 = 245155 mod 1981601 = 1810559
C2 = 49255 mod 1981601 = 1525828
C3 = 211355 mod 1981601 = 1316477

Universitas Sumatera Utara


79

C4 = 147455 mod 1981601 = 1517234


C5 = 167555 mod 1981601 = 285760
C6 = 82655 mod 1981601 = 1092624
C7 = 176755 mod 1981601 = 1719632
C8 = 35855 mod 1981601 = 1442907
C9 = 118955 mod 1981601 = 226010
C10 = 2291055 mod 1981601 = 1830987
Berdasarkan proses enkripsi di atas, maka didapatkan:
Super cipher text AB =
188995.1810559.1525828.1316477.1517234.285760.1092624.1719632.144290
7.226010.1830987.
5. Pembangkitan kunci Elgamal kedua
a. Bangkitkan bilangan prima p
Dalam pembangkitan kunci Elgamal, dipilih sebuah bilangan acak prima (p)
dengan algoritma Lehmann Primality Test.
Bilangan prima (p) yang dipilih = 1877
Bilangan p akan diuji dengan algoritma Lehmann Primality Test. Algoritma
Lehmann Primality Test adalah sebagai berikut:
1) Pengujian Pertama
1. Andai a = 772
2. 772 (1877-1)/2 mod 1877 = -1
3. Karena hasil = -1, maka bilangan 1877 adalah prima
2) Pengujian Kedua
1. Andai a = 212
2. 212 (1877-1)/2 mod 1877 = -1
3. Karena hasil = -1, maka bilangan 1877 adalah prima
3) Pengujian Ketiga
1. Andai a = 1794
2. 1794(1877-1)/2 mod 1877 = 1

Universitas Sumatera Utara


80

3. Karena hasil = 1, maka bilangan 1877 adalah prima


Dengan tiga kali pengujian dan hasilnya menunjukkan bahwa 1877 adalah
bilangan prima, maka ditentukan bahwa:
P = 1877
Setelah itu, pilih bilangan acak g dan x, dimana g < p, dan 1≤x≤p-2. Untuk
membangkitkan bilangan acak g dan x, maka digunakan algoritma Blum
Blum Shub untuk membangkitkannya.
b. Membangkitkan bilangan acak g
1) Pilih duah buah bilangan prima p dan q. (bilangan prima dibangkitkan
dengan algoritma Lehmann Primality Test). Bilangan yang dipilih:
p = 1427 dan q = 1499
2) Hitung n = p.q. Sehingga n = (1427)(1499) = 2139073
3) Pilih bilangan s, dimana 2 ≤ s ≤ n dan GCD(s,n) = 1 atau relatif prima.
Dipilih s = 223061, karena GCD(223061, 2139073) = 1
4) Hitung x0 = s2 mod n = 2230612 mod 2139073 = 1371741
5) Nilai g<p, diasumsikan g<p-2, maka g = x0 mod (p-2) = 1371741 mod
1875 = 1116.
6) Sehingga g = 1116
c. Membangkitkan bilangan acak x
1) Pilih duah buah bilangan prima p dan q. (bilangan prima dibangkitkan
dengan algoritma Lehmann Primality Test). Bilangan yang dipilih:
p = 1979 dan q = 1399
2) Hitung n = p.q. Sehingga n = (1979)(1399) = 2768621
3) Pilih bilangan s, dimana 2 ≤ s ≤ n dan GCD(s,n) = 1 atau relatif prima.
Dipilih s = 1114445, karena GCD(1114445, 2768621) = 1
4) Hitung x0 = s2 mod n = 11144452 mod 2768621 = 889151
5) Nilai g<p. disini g<p-2, maka g = x0 mod (p-2) = 889151 mod 1875 = 401
6) Sehingga x = 401
d. Membangkitkan bilangan y
Hitung y dengan persamaan:

Universitas Sumatera Utara


81

y = gx mod p = 1116401 mod 1877 = 605


Setelah didapatkan nilai p, g, x, dan y, maka dapat dibentuk private key B 2nd
dan public key B 2nd. Dimana
Public key B 2nd = (y,g,p), oleh karena itu maka:
Public key B 2nd = (605, 1116, 1877)
Private key B 2nd = (x.p), oleh karena itu maka:
Private key B 2nd = (401, 1877)
Beby selanjutnya mengirimkan public key B 2nd bersamaan dengan Super cipher
text AB ke Anton dan menyimpan private key B 2nd.

4.1.3. Tahap ketiga

Tahap ketiga dimulai saat diterimanya super cipher text AB dan public key B 2nd dari
Beby oleh Anton. Dimana setelah itu akan dilakukan lima buah proses lebih lanjut,
yaitu:
1. Dekripsi Super cipher text AB dengan Algoritma RSA
Setelah super cipher text AB diterima oleh Anton, maka dengan segera Anton
melakukan proses dekripsi terhadap super cipher text Ab menjadi cipher text
AB dengan algoritma RSA menggunakan private key A yang dimiliki oleh
Anton.
Diketahui bahwa:
Super cipher text AB =
188995.1810559.1525828.1316477.1517234.285760.1092624.1719632.144290
7.226010.1830987.
Private key A = 1151239, 1981601, dimana d = 1151239 dan n = 1981601
Proses dekripsi super cipher text AB dengan algoritma RSA menggunakan
persamaan Pi = Cid mod n. Adapun prosesnya sebagai berikut:
P0 = 18899501151239 mod 1981601 = 13 = 00001101
P1 = 181055911151239 mod 1981601 = 245 = 11110101
P2 = 152582821151239 mod 1981601 = 49 = 00110001
P3 = 131647731151239 mod 1981601 = 211 = 11010011

Universitas Sumatera Utara


82

P4 = 151723441151239 mod 1981601 = 147 = 10010011


P5 = 28576051151239 mod 1981601 = 167 = 10100111
P6 = 109262461151239 mod 1981601 = 82 = 01010010
P7 = 171963271151239 mod 1981601 = 176 = 10110000
P8 = 144290781151239 mod 1981601 = 35 = 00100011
P9 = 22601091151239 mod 1981601 = 118 = 01110110
P10 = 1830987101151239 mod 1981601 = 229 = 11100101
Berdasarkan proses dekripsi di atas, maka didapatkan:
Cipher text AB = 13 245 49 211 147 167 82 176 35 118 229
Jika dalam bentuk biner maka:
Cipher text AB =
0000110111110101001100011101001110010011101001110101001010110000
001000110111011011100101
2. Dekripsi Cipher text AB dengan Algoritma One time pad
Setelah cipher text AB didapatkan, maka Anton segera melakukan proses
dekripsi terhadap cipher text AB untuk menghasilkan cipher text B dengan
menggunakan algoritma one time pad menggunakan kunci KA dengan operasi
XOR. Proses Dekripsi dapat dilihat pada tabel 4.3 berikut:
Tabel 4.3. Proses Dekripsi Cipher text AB dengan Kunci KA
Cipher text AB 00001101111101010011000111010011100100111010011101010
01010110000001000110111011011100101
Kunci KA 00101011001111001011011010011111101111001010110111000
11100100101110010010000001110111110
HASIL XOR
Cipher text B 10000001111100110000110110111110001011100101011001100
11100101000010011100100110111011111

Berdasarkan hasil operasi XOR pada tabel 4.3, didapatkan cipher text B adalah:
1000000111110011000011011011111000101110010101100110011100101000
010011100100110111011111

Universitas Sumatera Utara


83

3. Enkripsi Cipher text B dengan Algoritma Elgamal


Setelah cipher text B didapatkan, maka Anton segera melakukan enkripsi
terhadap cipher text B untuk menghasilkan super cipher text B dengan algoritma
Elgamal menggunakan public key B 2nd yang diperoleh dari Beby.
Langkah-langkah enkripsi cipher text B dengan algoritma Elgamal sebagai
berikut:
1) Konversi cipher text B ke dalam bentuk desimal
Sebelum dilakukan proses enkripsi, maka cipher text B harus dikonversikan
terlebih dahulu kedalam bentuk desimal, sehingga menjadi:
Cipher text B =
10000001111100110000110110111110001011100101011001100111001010
00010011100100110111011111
10000001 = 129
11110011 = 243
00001101 = 13
10111110 = 190
00101110 = 46
01010110 = 86
01100111 = 103
00101000 = 40
01001110 = 78
01001101 = 77
11011111 = 223
Cipher text B = 129 243 13 190 46 86 103 40 78 77 223
2) Enkripsi Cipher text B
Cipher text B memiliki 11 blok, enkripsi dilakukan perblok, dan dimulai dari
blok ke 0 sampai blok ke 10 dengan persamaan: a = gk mod p. dimana k
adalah bilangan acak dengan syarat 1≤k≤p-2 yang dibangkitkan dengan
algoritma Blum Blum Shub dengan parameter nilai:

Universitas Sumatera Utara


84

p = 1607
q = 1531
n = 2460317
s = 677099
Diketahui:
Public key B 2nd = 605,1116,1877, dimana y = 605, g = 1116, p = 1877.
Maka, proses enkripsi yang terjadi adalah:

Blok ke - 0
k = 6770992 mod 2460317 = 205070 mod 1875 = 695
m0 = 129
a = 1116695 mod 1877 = 1073
695
b = (605 )(129) mod 1877 = 674

Blok ke - 1
k = 2050702 mod 2460317 = 1966736 mod 1875 = 1736
m1 = 243
a = 11161736 mod 1877 = 132
b = (6051736)(243) mod 1877 = 983

Blok ke - 2
k = 19667362 mod 2460317 = 1614221 mod 1875 = 1721
m2 = 13
a = 11161721 mod 1877 = 871
b = (6051721)(13) mod 1877 = 1307

Blok ke - 3
k = 16142212 mod 2460317 = 3726 mod 1875 = 1851
m3 = 190
a = 11161851 mod 1877 = 1743
b = (6051851)(190) mod 1877 = 1177

Universitas Sumatera Utara


85

Blok ke - 4
k = 37262 mod 2460317 = 1581491 mod 1875 = 866
m4 = 46
a = 1116866 mod 1877 = 1668
b = (605866)(46) mod 1877 = 1596

Blok ke - 5
k = 15814912 mod 2460317 = 2266904 mod 1875 = 29
m5 = 86
a = 111629 mod 1877 = 909
b = (60529)(86) mod 1877 = 79

Blok ke - 6
k = 22669042 mod 2460317 = 1928901 mod 1875 = 1401
m6 = 103
a = 11161401 mod 1877 = 1799
b = (6051401)(103) mod 1877 = 1435

Blok ke - 7
k = 19289012 mod 2460317 = 398845 mod 1875 = 1345
m7 = 40
a = 11161345 mod 1877 = 76
b = (6051345)(40) mod 1877 = 1494

Blok ke - 8
k = 3988452 mod 2460317 = 617756 mod 1875 = 881
m8 = 78
a = 1116881 mod 1877 = 367
b = (605881)(78) mod 1877 = 941

Blok ke - 9
k = 6177562 mod 2460317 = 245349 mod 1875 = 1599
m9 = 77

Universitas Sumatera Utara


86

a = 11161599 mod 1877 = 19


1599
b = (605 )(77) mod 1877 = 1252

Blok ke - 10
k = 2453492 mod 2460317 = 2016079 mod 1875 = 454
m10 = 223
a = 1116454 mod 1877 = 390
454
b = (605 )(223) mod 1877 = 1623

Dengan aturan bahwa a dan b adalah sebuah blok cipher text, maka didapat:
Super cipher text B =
1073,674.132,983.871,1307.1743,1177.1668,1596.909,79.1799,1435.76,1494.3
67,941.19,1252.390,1623.

4. Dekripsi super cipher text B dengan algoritma Elgamal


Setelah super cipher text B didapatkan, maka Anton segera mengirimkan super
cipher text B kepada Beby. Setelah Beby menerima super cipher text B, maka
Beby dengan segera melakukan proses dekripsi terhadap super cipher text B
dengan algoritma Elgamal menggunakan private key B 2nd yang disimpan oleh
Beby untukmenghasilkan cipher text B.
Diketahui:
Private key B 2nd = 401,1877, dimana x = 401 dan p = 1877.
Super cipher text B =
1073,674.132,983.871,1307.1743,1177.1668,1596.909,79.1799,1435.76,1494.3
67,941.19,1252.390,1623.
Super cipher text B didekripsi dengan persamaan:
m = b.c mod p. Dimana c = ap-1-x mod p
Super cipher text B memiliki 11 blok yang dipisahkan dengan titik, bilangan
sebelah kiri adalah a, sedangkan kanan adalah b. Proses dekripsi dapat sebagai
berikut:

Universitas Sumatera Utara


87

Blok ke - 0
c = 1073(1877-1-401) mod 1877 = 1802
m0 = (674)(1802) mod 1877 = 129
Biner m = 10000001

Blok ke - 1
c = 132(1877-1-401) mod 1877 = 132
m1 = (983)(132) mod 1877 = 243
Biner m = 11110011

Blok ke - 2
c = 871(1877-1-401) mod 1877 = 787
m2 = (1307)(787) mod 1877 = 13
Biner m = 00001101

Blok ke - 3
c = 1743(1877-1-401) mod 1877 = 1260
m3 = (1177)(1260) mod 1877 = 190
Biner m = 10111110

Blok ke - 4
c = 1668(1877-1-401) mod 1877 = 1790
m4 = (1596)(1790) mod 1877 = 46
Biner m = 00101110

Blok ke - 5
c = 909(1877-1-401) mod 1877 = 405
m5 = (79)(405) mod 1877 = 86
Biner m = 01010110

Universitas Sumatera Utara


88

Blok ke - 6
c = 1799(1877-1-401) mod 1877 = 21
m6 = (1435)(21) mod 1877 = 103
Biner m = 01100111

Blok ke - 7
c = 76(1877-1-401) mod 1877 = 1279
m7 = (1494)(1279) mod 1877 = 40
Biner m = 00101000

Blok ke - 8
c = 367(1877-1-401) mod 1877 = 782
m8 = (941)(782) mod 1877 = 78
Biner m = 01001110

Blok ke - 9
c = 19(1877-1-401) mod 1877 = 1054
m9 = (1252)(1054) mod 1877 = 77
Biner m = 01001101

Blok ke - 10
c = 390(1877-1-401) mod 1877 = 376
m10 = (1623)(376) mod 1877 = 223
Biner m = 11011111

Berdasarkan proses dekripsi di atas, maka didapatkan cipher text B dalam


bentuk biner:

Universitas Sumatera Utara


89

Cipher text B =
1000000111110011000011011011111000101110010101100110011100101000
010011100100110111011111
5. Dekripsi Cipher text B dengan Algoritma One time pad
Setelah Beby berhasil mendapatkan cipher text B dari proses dekripsi Super
cipher text B dengan menggunakan algoritma Elgamal, maka Beby dengan
segera melakukan proses dekripsi terhadap ciphert text B dengan algoritma one
time pad pada proses XOR menggunakan kunci KB untuk mendapatkan plain
text.
Diketahui:
Cipher text B =
1000000111110011000011011011111000101110010101100110011100101000
010011100100110111011111
Kunci KB =
1100100010011101011010111101000101011100001110110000011001011100
001001110010011010111110
Proses dekripsi dapat dilihat pada tabel 4.4 berikut:
Tabel 4.4. Proses Dekripsi Cipher text B dengan Kunci KB

Cipher text B 10000001111100110000110110111110001011100101011001100


11100101000010011100100110111011111
Kunci KB 11001000100111010110101111010001010111000011101100000
11001011100001001110010011010111110
HASIL XOR
Plain text 01001001011011100110011001101111011100100110110101100
00101110100011010010110101101100001

Berdasarkan hasil operasi XOR pada tabel 4.4, maka didapatkan:


Plain text =
0100100101101110011001100110111101110010011011010110000101110100
01101001011010110110000.
Anton melakukan konversi plain text dari bentuk biner ke dalam bentuk karakter
ASCII 8 bit, sehingga menjadi:

Universitas Sumatera Utara


90

01001001 = I
01101110 = n
01100110 = f
01101111 = o
01110010 = r
01101101 = m
01100001 = a
01110100 = t
01101001 = i
01101011 = k
01100001 = a
Gabungkan seluruh karakter yang didapatkan sehingga menghasilkan:
Plain text = Informatika

4.2. Perbandingan Algoritma

Perbandingan algoritma dilakukan dengan membandingkan waktu yang dibutuhkan


algoritma yang dirancang untuk melakukan seluruh proses dengan waktu yang
dibutuhkan algoritma terdahulu untuk melakukan seluruh proses.
Maksud dari algoritma yang dirancang adalah proses pengiriman pesan yang
menggunakan skema modifikasi three pass protocol dengan menggunakan kombinasi
algoritma one time pad, RSA dan Elgamal dan pembangkit bilangan prima
menggunakan algoritma Lehmann Primality Test serta pembangkit bilangan/bit acak
menggunakan algoritma Blum Blum Shub.
Sedangkan maksud dari algoritma terdahulu adalah proses pengiriman pesan
menggunakan skema three pass protocol dengan menggunakan algoritma one time
pad dan diasumsikan pembangkitan kunci pada algoritma terdahulu menggunakan
algoritma Blum Blum Shub, sehingga selisih waktu dari algoritma yang dirancang
dengan algoritma terdahulu benar-benar merupakan selisih waktu yang terjadi.
Pengujian dilakukan dengan menggunakan sepuluh buah pesan teks dengan
panjang yang berbeda-beda. Berikut hasil pengujian yang dilakukan:

Universitas Sumatera Utara


91

Tabel 4.5. Perbandingan Waktu Proses dari Algoritma yang Dirancang dengan
Algoritma Terdahulu

Waktu Proses
Panjang Waktu Proses
Nama Algoritma yang
No Pesan Algoritma Terdahulu
Pesan Dirancang
(Karakter) (ms)
(ms)
1 A 10 0.0072388648986816 0.0027339458465576
2 B 20 0.0093448162078857 0.0039491653442383
3 C 50 0.015640020370483 0.0069119930267334
4 D 100 0.042346954345703 0.022449970245361
5 E 200 0.087727069854736 0.036191940307617
6 F 500 0.15630197525024 0.10586500167847
7 G 1000 0.32381987571716 0.20496797561646
8 H 2000 0.58216500282288 0.3674521446228
9 I 5000 1.6609079837799 1.2502000331879
10 J 10000 4.309779882431 3.801255941391

Jika data untuk panjang pesan 10 sampai 1000 pada tabel 4.5 disajikan dalam
bentuk bar graph, maka data tersebut dapat dilihat pada gambar berikut:

Gambar 4.1. Perbandingan Waktu Proses dari Algoritma yang Dirancang


dengan Algoritma Terdahulu dalam Bentuk Bar Graph Pertama

Jika data untuk panjang pesan 2000 sampai 10000 pada tabel 4.5 disajikan
dalam bentuk bar graph, maka data tersebut dapat dilihat pada gambar berikut:

Universitas Sumatera Utara


92

Gambar 4.2. Perbandingan Waktu Proses dari Algoritma yang Dirancang


dengan Algoritma Terdahulu dalam Bentuk Bar Graph Kedua

Pada gambar 4.1 dan gambar 4.2 dapat dilihat bahwa, selisih waktu proses dari
algoritma yang dirancang dengan algoritma terdahulu tidak terlalu signifikan, dimana
grafik bar menunjukkan tidak adanya perbedaan yang sangat signifikan. Oleh karena
itu, pertambahan waktu proses pada algoritma yang dirancang dengan peningkatan
keamanan yang didapat masih sangat layak untuk digunakan. Hal ini dikarenakan
karena waktu proses yang dibutuhkan algoritma yang dirancang dengan algoritma
terdahulu tidak jauh berbeda.
Rasio perbandingan dari waktu proses algoritma yang dirancang dengan waktu
proses algoritma terdahulu dapat dilihat pada tabel 4.6 berikut:
Tabel 4.6. Rasio Perbandingan dari Waktu Proses Algoritma yang Dirancang
dengan Waktu Proses Algoritma Terdahulu

Nama Panjang Pesan


No Rasio Rasio (%)
Pesan (Karakter)
1 A 10 0,377676042 37,77
2 B 20 0,422604924 42,26
3 C 50 0,441942713 44,19
4 D 100 0,530143681 53,01
5 E 200 0,412551569 41,26
6 F 500 0,677310709 67,73
7 G 1000 0,632969101 63,30
8 H 2000 0,631182127 63,12
9 I 5000 0,752720828 75,27
10 J 10000 0,882006981 88,20

Universitas Sumatera Utara


93

Data pada tabel 4.6 dapat disajikan dalam bentuk line graph berikut:

Gambar 4.3. Rasio Perbandingan dari waktu proses algoritma yang dirancang
dengan waktu proses algoritma terdahulu

Dalam rasio, semakin rasio perbandingan mendekati angka satu


mengindikasikan selisih keduanya semakin sedikit. Pada gambar 4.3.
menginformasikan bahwa semakin besar atau semakin panjang karakter pesan yang
diproses maka rasio akan mendekati angka satu. Hal ini berarti, semakin panjang
karakter pesan yang diproses selisih waktu proses algoritma yang dirancang dengan
algoritma terdahulu cenderung semaking kecil. Sehingga, algoritma yang dirancang
terbukti sangat layak untuk menggantikan algoritma terdahulu dari segi waktu proses,
karena selisih waktu yang diperlukan cenderung kecil, terutama jika memperoses
pesan yang semakin panjang.
Secara keseluruhan, data pada tabel 4.5 dapat disajikan dalam bentuk line graph
berikut:

Universitas Sumatera Utara


94

Gambar 4.4. Grafik dari Seluruh Data Pengujian Algoritma yang Dirancang
dengan Algoritma Terdahulu

Gambar 4.4 menunjukkan bahwa, semakin panjang pesan yang diproses maka
waktu proses yang dibutuhkan meningkat dengan sangat signifikan, baik waktu proses
yang dibutuhkan oleh algoritma yang dirancang maupun waktu proses algoritma
terdahulu.

4.3. Analisis Kekuatan Algoritma

Kekuatan dari algoritma dapat dianalisis dari beberapa hal berikut:


4.3.1. Kunci
Dari segi kunci, algoritma yang dirancang terbagi menjadi dua, yaitu:
a. Kunci one time pad
Kunci KA dan KB dalam algoritma ini merupakan kunci yang sempurna, hal
ini dikarenakan bahwa, kunci KA dan kunci KB memiliki panjang kunci
yang sama dengan panjang plain text. Hal ini mengakibatkan, sebuah cipher
text akan memiliki banyak makna jika digunakan kunci yang berbeda,
sedangkan dari sekian banyak dekripsi yang memiliki makna tersebut,
hanya satu yang benar dimaksud oleh pengirim pesan. Sebagai contoh:
Cipher text = y6A1

Universitas Sumatera Utara


95

Jika didekripsikan dengan kunci sepanjang 6 karakter, maka dapat


menghasilkan:
Plain text = Saya
Plain text = Kamu
Plain text = Dagu
Plain text = Lugu
Plain text = Mama
Dan plain text bermakna yang lain-lain, hal ini akan membingungkan
intruder untuk memilih mana plain text yang benar. Selain itu, kunci KA
dan KB dibangkitkan benar-benar secara acak dengan algoritma pembangkit
bit acak yang sangat baik, yaitu algoritma Blum Blum Shub. Selain itu,
kunci KA, dan kunci KB hanya digunakan untuk satu kali enkripsi-dekripsi.
Seandainya kunci ini jatuh ke tangan intruder, maka kunci ini tidak akan
berarti untuk mendekripsikan cipher text yang lain, karena satu kunci hanya
untuk satu cipher text.
Walau kunci KA dan kunci KB merupakan jenis kunci simetris, dimana
proses enkripsi dan dekripsi menggunakan kunci yang sama, tetapi pada
algoritma yang dirancang, kunci KA dan kunci KB benar-benar tidak perlu
dikirimkan ke penerima pesan. Kunci KA dan KB benar-benar tetap
disimpan oleh pemilik kunci setelah dibangkitkan, sehingga masalah key
distribution benar-benar teratasi pda algoritma ini dan kerahasiaan kunci
benar-benar terjamin.
b. Kunci algoritma asimetris
Algoritma ini juga memiliki kunci asimetris yang terdiri dari public key dan
private key. Dimana public key bersifat tidak rahasia dan hanya dapat
digunakan untuk proses enkripsi. Sedangkan private key hanya digunakan
untuk proses dekripsi, oleh karena itu, pengirim pesan tidak perlu
mengetahui private key yang digunakan, sehingga kemungkinan untuk
kerahasiaan private key bocor sangat kecil. Walau private key masih
memungkinkan dibentuk dari public key, tetapi hal tersebut tidaklah mudah.
Dibutuhkan waktu yang sangat lama dan sumber daya yang besar untuk bisa
membentuk private key dari public key.

Universitas Sumatera Utara


96

4.3.2. Cipher text

Hasil pemrosesan dari algoritma yang dirancang memiliki tiga buah cipher text yang
dikirim pada jalur modifikasi three pass protocol, yaitu super cipher text A, super
cipher text AB, dan super cipher text B. Super cipher text A merupakan hasil enkripsi
dari cipher text A, super cipher text AB merupakan hasil enkripsi dari cipher text AB,
dan super cipher text B merupakan hasil enkripsi dari cipher text B.
Langkah termudah untuk membentuk plain text adalah dengan melakukan
proses XOR terhadap cipher text A, cipher text AB, dan cipher text B secara bersama-
sama. Tetapi, untuk melakukan hal ini, maka intruder harus terlebih dahulu mampu
untuk melakukan dekripsi terhadap ketiga super cipher text untuk menghasilkan
cipher text, tentu saja ini bukan hal yang mudah.
Untuk mendekripsi super cipher text A dan super cipher text B, maka intruder
harus mampu menembus pertahanan algoritma Elgamal. Dimana untuk proses
dekripsi dibutuhkan private key yang benar, sedangkan private key tidak pernah
dikirimkan sehingga intruder mustahil untuk melakukan penyadapan. Selain dari pada
itu, super cipher text A dan super cipher text B membutuhkan private key yang
berbeda-beda, sehingga andai intruder berhasil menembus keamanan algoritma
Elgamal pada super cipher text A, maka belum tentu intruder juga dengan mudah
dapat menembus keamanan algoritma Elgamal pada super cipher text A.
Syarat agar plain dapat dibentuk dengan proses XOR, maka intruder harus
memiliki ketiga cipher text, baik cipher text A, cipher text AB, dan cipher text B.
Andai intruder berhasil menembus semua keamanan algoritma Elgamal, sehingga dari
super cipher text A dihasilkan cipher text A, dan super cipher text B dihasilkan cipher
text B. Maka kedua cipher text tersebut masih belum cukup untuk membentuk plain
text, intruder membutuhkan cipher text AB, sehingga intruder harus terlebih dahulu
menembus keamanan algoritma RSA pada super cipher text AB.
Jika intruder mencoba mendekripsi sebuah cipher text, baik cipher text A,
cipher text AB, atau cipher text B tanpa kunci, maka hal tersebut hampir mustahil
untuk dilakukan. Hal ini dikarenakan, intruder harus menembus keamanan algoritma
one time pad yang unbreakable pada cipher text, satu-satunya cara memecahkan sifat
unbreakable dari algoritma one time pad adalah dengan melakukan operasi XOR
terhadap ketiga cipher text sekaligus.

Universitas Sumatera Utara


97

4.4. Pengujian Keamanan

Pengujian keamanan pada cipher text dilakukan dangan empat buah parameter, yaitu:

4.4.1. XOR

Pada algoritma terdahulu, jika ketiga cipher text dilakukan operasi XOR secara
bersama-sama, maka plain text dapat dibentuk. Pada contoh dibawah, plain text adalah
Komputer, jika ketiga cipher text dilakukan operasi XOR, maka pllain text akan
terbentuk
Tabel 4.7. Proses Pembentukan Plain text dengan Meng-XOR-kan Cipher text A,
Cipher text AB, dan Cipher text B.

Cipher text A 00101010010111000101100100110100001100110100001001010


10100000011
Cipher text AB 00011010011101010111001101101010010101000000101000010
11101100011
Cipher text B 01111011010001100100011100101110000100100011110000100
11100010010
HASIL XOR
Plain text 01001011011011110110110101110000011101010111010001100
10101110010
Plain text Komputer
Oleh karena itu, pada algoritma yang dirancang, masalah XOR ini harus benar-
benar teratasi dengan baik, sehingga jika super cipher text A, super cipher text AB,
dan super cipher text B dilakukan proses XOR, maka plain text tidak dapat dibentuk.
Operasi XOR akan dilakukan perblok dari super cipher text. Oleh karena itu,
setiap blok dari super cipher text akan diubah dalam bentuk biner. Untuk super cipher
text A, dan super cipher text B, setiap blok terdiri dari dua buah nilai, yaitu nilai a dan
b. Oleh karena itu, konversi setiap blok dilakukan dengan dua teknik, pertama dengan
penggabungan biner a dan b, dan yang kedua dengan mengalikan terlebih dahulu
bilangan a dengan b lalu dilakukan konversi ke biner.
Setiap blok dari super cipher text panjang binernya akan disamakan antara
biner blok super cipher text satu dengan biner blok super cipher text terpanjang
dengan menambahkan bit „0‟ didepan, dengan asumsi bit „0‟ didepan bilangan tidak
akan mempengaruhi nilai. Setelah seluruh blok dari super cipher text telah diubah
dalam bentuk biner, maka lakukan operasi XOR terhadap setiap blok dari super cipher

Universitas Sumatera Utara


98

text, lalu hasilnya bandingkan dengan blok dari plain text yang berkorelasi. Jika
terdapat kemiripan atau pola biner yang sama atau hampir sama, maka dapat
dikatakan super cipher text tidak aman terhadap operasi XOR.
Biner dari setiap blok plain text dapat dilihat pada tabel 4.8 berikut:
Tabel 4.8. Konversi plain text ke bentuk biner

Blok Ke - Karakter Desimal Biner


0 I 73 01001001
1 n 110 01101110
2 f 102 01100110
3 o 111 01101111
4 r 114 01110010
5 m 109 01101101
6 a 97 01100001
7 t 116 01110100
8 i 105 01101001
9 k 107 01101011
10 a 97 01100001

1. Teknik pertama
Biner dari nilai a dan bi dari setiap blok super cipher text A maupun blok
super cipher text B akan digabungkan.
Tabel 4.9. Konversi super cipher text A ke bentuk biner dengan teknik pertama

Blok Ke - Desimal Biner


0 823,1447 110011011110110100111
1 513,179 000100000000110110011
2 1492,10 000000101110101001010
3 1046,1345 1000001011010101000001
4 999,1166 0111110011110010001110
5 1697,1545 1101010000111000001001
6 527,180 0000100000111110110100
7 1249,1148 1001110000110001111100
8 872,1270 110110100010011110110
9 1743,1560 1101100111111000011000
10 98,95 000000011000101011111

Universitas Sumatera Utara


99

Tabel 4.10. Konversi super cipher text AB ke bentuk biner

Blok Ke - Desimal Biner


0 188995 000101110001001000011
1 1810559 110111010000001111111
2 1525828 101110100100001000100
3 1316477 0101000001011001111101
4 1517234 0101110010011010110010
5 285760 0001000101110001000000
6 1092624 0100001010110000010000
7 1719632 0110100011110101010000
8 1442907 101100000010001011011
9 226010 0000110111001011011010
10 1830987 110111111000001001011

Tabel 4.11. Konversi super cipher text B ke bentuk biner dengan teknik pertama

Blok Ke - Desimal Biner


0 1073,674 100001100011010100010
1 132,983 000100001001111010111
2 871,1307 110110011110100011011
3 1743,1177 1101100111110010011001
4 1668,1596 1101000010011000111100
5 909,79 0000011100011011001111
6 1799,1435 1110000011110110011011
7 76,1494 0000100110010111010110
8 367,941 001011011111110101101
9 19,1252 0000001001110011100100
10 390,1623 011000011011001010111

Setelah mengetahui bentuk biner dari setiap blok super cipher text, maka dapat
dilakukan operasi XOR pada masing-masing blok super cipher text, lalu
dibandingkan dengan bentuk biner dari setiap blok plain text.

Seperti yang ditunjukkan pada tabel 4.12 berikut:


Tabel 4.12. Pengujian Proses XOR pada Super Cipher text A, Super Cipher text AB,
dan Super Cipher text B dengan Teknik Pertama.

Blok ke- Hasil Operasi XOR Plain text


0 010111001100101000110 01001001
1 110111011001000011011 01101110
2 011000010100000010101 01100110
3 0000101101111110100101 01101111
4 1111000011110000000000 01110010
5 1100001001010010000110 01101101
6 1010101001111000111111 01100001

Universitas Sumatera Utara


100

Blok ke- Hasil Operasi XOR Plain text


7 1111110101010011111010 01110100
8 010001111111100000000 01101001
9 1101011001000000100110 01101011
10 101111111011101000011 01100001

Merujuk pada hasil pengujian pada sub bab 4.12 dapat dilihat bahwa, setiap
pola bit dari dari plain text tidak memiliki kemiripan sama sekali terhadap pola
bit hasil operasi XOR, sehingga operasi XOR terhadap ketiga super cipher text
tidak akan dapat membentuk plain text, atau pola-pola yang mendekati
kemiripan dengan plain text.
Merujuk kepada panjang setiap blok plain text yang hanya 8 bit, jika hasil
operasi XOR dilakukan modulo dengan biner 28 atau 256. Maka perbandingan
hasil operasi XOR dengan plain sebagai berikut:
Tabel 4.13. Pengujian Modulo Hasil Operasi XOR terhadap plain text dengan Teknik
pertama.

Hasil Operasi XOR


Blok ke- Plain text
Modulo
0 01000110 01001001
1 00011011 01101110
2 00010101 01100110
3 10100101 01101111
4 00000000 01110010
5 10000110 01101101
6 00111111 01100001
7 11111010 01110100
8 00000000 01101001
9 00100110 01101011
10 01000011 01100001

Merujuk kepada tabel 4.13 dapat dilihat, hasil modulo dengan 256 terhadap
hasil operasi XOR memberikan hasil bahwa biner dari setiap blok dari modulo
hasil operasi XOR memiliki biner yang sangat berbeda terhadap biner dari
setiap blok plain text. Sehingga algoritma yang dirancang sangat aman dari
teknik penyerangan XOR dengan pengujian teknik pertama dengan modulo.
2. Teknik kedua
Pada teknik kedua, nilai a dan b pada setiap blok dari super cipher text A dan
super cipher text B akan dikalikan terlebih dahulu sebelum dilakukan konversi
ke dalam bentuk biner.

Universitas Sumatera Utara


101

Tabel 4.14. Konversi super cipher text A ke bentuk biner dengan teknik kedua

Blok Ke - Desimal a*b Biner


0 823,1447 1190881 100100010101111100001
1 513,179 91827 000010110011010110011
2 1492,10 14920 000000011101001001000
3 1046,1345 1406870 101010111011110010110
4 999,1166 1164834 0100011100011000100010
5 1697,1545 2621865 1010000000000110101001
6 527,180 94860 0000010111001010001100
7 1249,1148 1433852 101011110000011111100
8 872,1270 1107440 100001110010111110000
9 1743,1560 2719080 1010010111110101101000
10 98,95 9310 000000010010001011110

Tabel 4.15. Konversi super cipher text AB ke bentuk biner

Blok Ke - Desimal Biner


0 188995 000101110001001000011
1 1810559 110111010000001111111
2 1525828 101110100100001000100
3 1316477 0101000001011001111101
4 1517234 0101110010011010110010
5 285760 0001000101110001000000
6 1092624 0100001010110000010000
7 1719632 0110100011110101010000
8 1442907 101100000010001011011
9 226010 0000110111001011011010
10 1830987 110111111000001001011

Tabel 4.16. Konversi super cipher text B ke bentuk biner dengan teknik kedua
Blok Ke - Desimal a*b Biner
0 1073,674 723202 010110000100100000010
1 132,983 129756 000011111101011011100
2 871,1307 1138397 100010101111011011101
3 1743,1177 2051511 111110100110110110111
4 1668,1596 2662128 1010001001111011110000
5 909,79 71811 0000010001100010000011
6 1799,1435 2581565 1001110110010000111101
7 76,1494 113544 000011011101110001000
8 367,941 345347 001010100010100000011
9 19,1252 23788 0000000101110011101100
10 390,1623 632970 010011010100010001010

Universitas Sumatera Utara


102

Setelah mengetahui bentuk biner dari setiap blok super cipher text, maka dapat
dilakukan operasi XOR pada masing-masing blok super cipher text, lalu
dibandingkan dengan bentuk biner dari setiap blok plain text.
Seperti yang ditunjukkan pada tabel 4.17 berikut:
Tabel 4.17. Pengujian proses XOR pada super cipher text A, super cipher text AB,
dan super cipher text B dengan teknik kedua.

Blok ke- Hasil Operasi XOR Plain text


1 110111100000010100000 01001001
2 110110011110000010000 01101110
3 001100010110011010001 01100110
4 111100010110001011100 01101111
5 1011100111111001100000 01110010
6 1011010100010101101010 01101101
7 1101101011101010100001 01100001
8 011100110011000100100 01110100
9 000111010010010101000 01101001
10 1010100101001101011110 01101011
10 100100111110010011111 01100001

Merujuk pada hasil pengujian pada sub bab 4.17 dapat dilihat bahwa, setiap
pola bit dari dari plain text tidak memiliki kemiripan sama sekali terhadap pola
bit hasil operasi XOR, sehingga operasi XOR terhadap ketiga super cipher text
tidak akan dapat membentuk plain text, atau pola-pola yang mendekati
kemiripan dengan plain text.
Merujuk kepada panjang setiap blok plain text yang hanya 8 bit, jika hasil
operasi XOR dilakukan modulo dengan biner 28 atau 256. Maka perbandingan
hasil operasi XOR dengan plain sebagai berikut:
Tabel 4.18. Pengujian Modulo Hasil Operasi XOR terhadap plain text dengan Teknik
Kedua.

Hasil Operasi XOR


Blok ke- Plain text
Modulo
0 10100000 01001001
1 00010000 01101110
2 11010001 01100110
3 01011100 01101111
4 01100000 01110010
5 01101010 01101101
6 10100001 01100001
7 00100100 01110100

Universitas Sumatera Utara


103

8 10101000 01101001
9 01011110 01101011
10 10011111 01100001
Merujuk kepada tabel 4.18 dapat dilihat, hasil modulo dengan 256 terhadap
hasil operasi XOR memberikan hasil bahwa biner dari setiap blok dari modulo
hasil operasi XOR memiliki biner yang sangat berbeda terhadap biner dari
setiap blok plain text. Sehingga algoritma yang dirancang sangat aman dari
teknik penyerangan XOR dengan pengujian teknik kedua dengan modulo

4.4.2. Bruto force

Pengujian keamanan dengan teknik bruto force dilakukan dengan menghitung


probabilti dari kemungkinan kunci yang yang dapat dibentuk untuk melakukan
dekripsi hingga menghasilkan plain text asal. Teknik bruto force merupakan teknik
yang sangat efektif untuk melakukan serangan dan dapat dipastikan berhasil, tetapi
teknik ini sangat tidak efisien. Oleh karena itu, agar cipher text aman dari teknik ini,
ada dua hal yang dapat dilakukan. Pertama, meningkatkan probabiliti kunci yang ada,
sehingga dibutuhkan waktu yang sangat lama untuk menemukan kunci yang tepat
karena kemunginan kunci yang ada sangat banyak. Kedua, memberikan banyak plain
text yang bermakna, sehingga intruder akan bingung dan tidak dapat memutuskan
mana plain text yang benar.
Analisa pengujian keamanan algoritma dengan teknik bruto force terlebih
dahulu akan menganalisa keamanan dari algoritma-algoritma kriptografi yang
digunakan pada algoritma yang dirancang.
1. Algoritma one time pad
Algoritma one time pad hingga saat ini masih merupakan algoritma
unbreakable, algoritma dimana cipher text-nya belum dapat dipecahkan tanpa
kunci yang tepat. Satu-satunya cara yang masih ditemukan saat ini untuk
memecahkan cipher text dari algoritma one time pad pada skema three pass
protocol adalah dengan melakukan operasi XOR terhadap ketiga cipher text
yang dihasilkan dengan pengiriman data menggunakan skema three pass
protocol. Oleh karena itu, syarat utama intruder dapat membuka keamanan
algoritma one time pad pada skema three pass protocol adalah dengan

Universitas Sumatera Utara


104

mendapatkan ketiga cipher text tersebut, baik cipher text A, cipher text AB, dan
cipher text B.
Kekuatan utama dari kemanan algoritma one time pad terletak pada:
1) Kunci
Kunci algoritma one time pad memiliki panjang kunci yang sama dengan
panjang plain text. Oleh karena itu, kemunginan panjang kunci yang dapat
dibentuk adalah sebanyak bit plain text. Sebagai contoh:
Plain text = Informatika
Plain text tersebut terdiri dari 11 karakter, dimana 1 karakter terdiri dari 8 bit,
maka plain text “Informatika” memiliki panjang 88 bit. Oleh karena itu,
kemungkinan kunci yang dapat dibentuk adalah:
288 = 309.485.009.821.345.068.724.781.056
Dengan asumsi intruder dapat melakukan percobaan sebanyak 1 triliun
operasi per detik, maka untuk estimasi waktu terburuk dibutuhkan waktu:
288
= 9.813.705 Tahun.
10 12 3600 24 (365)

Hanya untuk plain text sepanjang 11 karakter dibutuhkan waktu hingga


9.813.705 tahun. Dapat dibayangkan jika panjang plain text yang dikirim
sepanjang 100 karakter, maka teknik bruto force dapat dikatakan mustahil
untuk digunakan untuk menembus keamanan algoritma one time pad.
2) Cipher text
Keamanan algoritma one time pad dari segi cipher text sangat unik, dimana
sebuah cipher text dapat didekripsikan menjadi banyak plain text yang
memiliki makna. Hal ini mengakibatkan kerancuan dan kebingungan bagi
intruder untuk dapat. Sebagai contoh:
Plain text = Saya
Kunci = 9Q%7
Cipher text = j0\V
Jika cipher text tersebut dienkripsi menggunakan semua kombinasi kunci
yang mungkin, yang berarti menggunakan 232 kombinasi kunci, maka cipher
text tersebut dapat menghasilkan banyak plain text yang bermakna, seperti:

Universitas Sumatera Utara


105

“Kamu”, ”Laku”, ”Dagu”, ”Lucu”, ”Baru”, ”Lama”, ”Rasa”, ”Saya”, ”Biru”,


”Ragu”, ”Bara”, ”Lara”, ”Kini”, ”Sana”, ”Buru”, “Kaca”, “Pipi”, “Rapi”,
“Gaji”, “Mati”, “Tapi”, “Tipu”, “Papa”, “Papi”, “Sapi”, “Babi”, “Bibi”,
“Mumi”, “Mama”, “Ayah”, “Paku”, “Pilu”, dan lain sebagainya. Hal ini akan
membingungkan intruder untuk menentukan plain text yang mana yang
benar.
2. Algoritma Elgamal
Kesulitan terbesar untuk menembus keamanan dari algoritma Elgamal berada
pada kesulitan untuk melakukan perhitungan logaritma diskit. Dimana untuk
dapat membentuk private key untuk proses dekripsi, maka intruder harus
memecahkan persamaan: y = gx mod p. Dimana intruder harus mencari nilai x
dari persamaan tersebut. Walau nilai y, g, dan p diketahui, mencari nilai x dari
persamaan tersebut sangat sulit dilakukan, terutama jika nilai p merupakan
bilangan prima yang besar. Oleh karena itu, semakin besar bilangan prima,
maka semakin sulit nilai x untuk ditemukan.
Analisa pengujian keamanan dari algoritma Elgamal dengan teknik bruto force
dapat dilakukan dengan melihat probabiliti kombinasi kunci yang ada. Diketahui
bahwa:
Public key = y, g, p (y, g, dan p tdak rahasia)
Private key = x,p ( p tidak rahasia, hanya x yang rahasia)
Dimana syarat yang harus terpenuhi adalah g<p, dan 1≤x≤p-2.
Berdasarkan syarat di atas, maka kemungkinan nilai x yang dapat terjadi adalah
sebanyak p-2. Andai nilai p = 1987, maka kemungkinan nilai x adalah 1985. Hal
ini mengindikasikan terdapat 1985 private key yang mungkin digunakan untuk
proses dekripsi.
Melihat dari analisa ini, keamanan dari algoritma Elgamal sangat rendah jika
menggunakan bilangan prima yang kecil. Oleh karena itu, dalam
implementasinya, algoritma Elgamal harus menggunakan bilangan prima yang
besar, sehingga kemungkinan private key yang ada semakin besar. Karena
asumsi waktu terburuk yang dimiliki intruder hanya sebanyak p-2 percobaan.
Jika nilai p terdiri dari 7 digit, dengan asumsi intruder dapat melakukan
percobaan 1 juta operasi perdetik, maka dalam waktu maksimal 10 detik, cipher

Universitas Sumatera Utara


106

text dapat terpecahkan, tetapi intruder akan mendapatkan 10 juta jenis plain text
yang berbeda pula, sehingga intruder harus menentukan plain text mana yang
benar.
3. Algoritma RSA
Kesulitan dalam menembus keamanan algoritma RSA adalah sulitnya
melakukan pemaktoran terhadap suatu bilangan bulat menjadi dua buah
bilangan prima. Mengalikan dua buah bilangan prima adalah perkara yang
sangat mudah, tetapi memfaktorkan suatu bilangan bulat menjadi dua buah
bilangan prima tanpa mengetahui salah satu faktor primanya bukanlah perkara
yang mudah.
Hal ini sesuai dengan rumus pembangkitan kunci algoritma RSA. Private key
dapat dibentuk dari dua buah bilangan prima yaitu p dan q yang sangat rahasia.
Lalu bilangan n yang tidak rahasia dapat dicari dengan n = p.q. Langkah yang
paling masuk akal untuk mendapatkan private key dengan pasti adalah dengan
mengetahui nilai p dan q dengan memfaktorkan n, tetapi itu bukan perkara yang
mudah, apalagi jika nilai p adalah prima yang besar hingga mencapai 10 digit
lebih misalnya.
Cara lain yang dapat dilakukan adalah dengan teknik bruto force terhadap
probabiliti private key yang ada, dalam algoritma RSA diketahui bahwa:
Public key = (e, n), dimana e dan n tidak rahasia.
Private key = (d, n). Dimana 0 ≤ d ≤ n. n tidak rahasia tapi d sangat rahasia.
Dengan melihat syarat diatas, diketahui bahwa nilai n tidak rahasia, tetapi nilai d
sangat rahasia, sedangkan nilai d ada diantara 0 dan n. Oleh karena itu
banyaknya probabiliti private key yang dapat terjadi adalah sebanyak n. sebagai
contoh, jika p = 1987 dan q = 2779, dengan n = p.q, maka n = 5.521.873,
Sehingga dengan asumsi intruder dapat melakukan 1 juta operasi perdetik, maka
asumsi waktu terburuk yang dimiliki intruder untuk dapat mendekripsikan
cipher text hanya 6 detik, tetapi intruder akan mendapatkan 5.521.873 plain text
yang berbeda-beda sehingga akan membingungkan intruder untuk menentukan
plain text mana yang benar.
Dengan analisa tersebut, maka semakin panjang bilangan prima yang digunakan,
maka akan semakin aman cipher text. Hal ini dikarenakan semain banyak

Universitas Sumatera Utara


107

probabiliti private key yang dapat terbentuk. Sebagai contoh jika p terdiri dari 7
digit, dan q terdiri dari 7 digit, maka nilai n yang terbentuk bisa mencapai 14
digit, dengan asumsi bahwa intruder dapat melakukan 1 juta operasi perdetik,
maka dibutuhkan setidaknya tiga tahun untuk mencoba seluruh kombinasi dari
private key yang mungkin. Ini waktu yang cukup lama untuk menjamin
keamanan dari plain text. Hal ini ditambah bahwa, intruder akan memiliki plain
text sebanyak 14 digit angka atau sebanyak puluhan triliun plain text yang
mungkin.
4. Algoritma yang dirancang
Pada algoritma yang dirancang, akan dihasilkan tiga buah cipher text yang
dikirim, yaitu super cipher text A, super cipher text AB, dan super cipher text B.
Super cipher text A merupakan hasil enkripsi cipher text A, super cipher text
AB merupakan hasil enkripsi cipher text AB, dan super cipher text B merupakan
hasil enkripsi cipher text B. cara termudah untuk mendapatkan plain text adalah
dengan melaukan operasi XOR terhadap ketiga cipher text. Oleh karena itu,
intruder harus mampu mendapatkan setiap cipher text dari super cipher text
yang ada. Setiap super cipher text memiliki dua lapis keamanan, yaitu:
1) Super cipher text A
Pada super cipher text A, lapisan keamanan pertama adalah Algoritma
Elgamal, sedangkan lapisan keamanan kedua adalah algoritma one time pad.
Untuk mendapatkan cipher text A, maka intruder harus menembus
keamanan algoritma Elgamal. Seperti yang dijelaskan tentang keamanan dari
algoritma Elgamal, intruder dapat mencoba seluruh private key yang
mungkin untuk mencoba mendekripsikan super cipher text A menjadi cipher
text A.
Andai bilangan prima yang digunakan adalah 1877 (tentu saja ini adalah
bilangan prima yang kecil, saat implementasi diharuskan menggunakan
bilangan prima yang besar), maka terdapat 1875 buah private key yang
mungkin terjadi, sehingga jika seluruh private key ini dicoba, maka intruder
akan mendapatkan 1875 versi dari cipher text A. Tentu saja seluruh cipher
text A ini yang berjumlah 1875 versi belum bermakna karena masih
dilindungi oleh algoritma one time pad, sehingga intruder tidak akan dapat

Universitas Sumatera Utara


108

menentukan mana cipher text A yang sebenarnya. Sehingga cipher text ini
tidak akan dapat didekripsikan menjadi plain text. Mengingat kunci KA yang
digunakan untuk mengenkripsi plain text menjadi cipher text A tidak pernah
didistribusikan, sehingga intruder secara teori mustahil untuk menyadapnya.
Dengan banyaknya versi cipher text A yang ada dan tidak bermakna, maka
hal tersebut akan sangat menyulitkan usaha dari intruder untuk menentukan
cipher text A yang benar. Kemungkinan intruder mampu menebak cipher
text A dengan tepat adalah 1/1875.
2) Super cipher text AB
Pada super cipher text AB, lapisan keamanan pertaman adalah algoritma
RSA, sedangkan lapisan keamanan kedua adalah algoritma one time pad.
Untuk mendapatkan cipher text AB, maka intruder harus menembus
keamanan algoritma RSA. Seperti yang dijelaskan tentang keamanan dari
algoritma RSA, intruder dapat mencoba seluruh private key yang mungkin
untuk mencoba mendekripsikan super cipher text AB menjadi cipher text
AB.
Andai bilangan prima yang digunakan adalah p = 1931 dan q = 1471 (tentu
saja ini adalah bilangan prima yang kecil, saat implementasi diharuskan
menggunakan bilangan prima yang besar), maka didapat n = 2.840.501,
sehingga private key yang mungkin terjadi sebanyak 2.840.501. Jika
intruder melakukan dekripsi terhadap super cipher text AB, maka intruder
akan mendapatkan 2.840.501 cipher text AB yang berbeda, dan tentu saja
seluruh cipher text ini belum bermakna karena masih dilindungi oleh lapisan
keamanan kedua, yaitu algoritma one time pad. Mengingat banyaknya versi
cipher text AB yang terbentuk dan keseluruhannya tidak bermakna, maka
intruder tidak akan dapat mengetahui versi cipher text AB mana yang
merupakan cipher text AB yang sebenarnya, karena terdapat 2.840.501 versi
cipher text AB yang mungkin. Kemungkinan intruder mampu menebak
cipher text AB dengan tepat adalah 1/2840501.
3) Super cipher text B
Pada super cipher text B, lapisan keamanan pertama adalah Algoritma
Elgamal, sedangkan lapisan keamanan kedua adalah algoritma one time pad.

Universitas Sumatera Utara


109

Untuk mendapatkan cipher text B, maka intruder harus menembus


keamanan algoritma Elgamal. Sama seperti super cipher text A, karena
super cipher text A, dan super cipher text B merupakan hasil enkripsi dari
algoritma Elagamal. Tetapi, walaupun sama-sama merupakan hasil enkripsi
Elgamal, baik super cipher text A maupun super cipher text B menggunakan
public key yang berbeda-beda, sehingga private key yang digunakan untuk
proses dekripsi juga berbeda. Seperti yang dijelaskan tentang keamanan dari
algoritma Elgamal, intruder dapat mencoba seluruh private key yang
mungkin untuk mencoba mendekripsikan super cipher text B menjadi cipher
text B.
Andai bilangan prima yang digunakan adalah 1987 (tentu saja ini adalah
bilangan prima yang kecil, saat implementasi diharuskan menggunakan
bilangan prima yang besar), maka terdapat 1985 buah private key yang
mungkin terjadi, sehingga jika seluruh private key ini dicoba, maka intruder
akan mendapatkan 1985 versi dari cipher text B yang berbeda-beda. Tentu
saja seluruh cipher text B ini masih belum bermakna, karena masih
dilindungi oleh algoritma one time pad. Oleh karena itu, intruder tidak dapat
menentukan mana versi cipher text B yang benar. Kemungkinan intruder
mampu menebak cipher text B dengan tepat adalah 1/1985.
Seperti yang telah dijelaskan sebelumnya, cara termudah untuk mendapatkan
plain text adalah dengan melakukan operasi XOR terhadap cipher text A, cipher text
AB, dan cipher text B. oleh karena itu, dengan teknik bruto force, diasumsikan p =
1877 maka super cipher text A akan menghasilkan 1875 versi dari cipher text A.
Dengan p = 1931 dan q = 1471, maka super cipher text AB akan menghasilkan
2.840.501 versi dari cipher text AB. Dengan p = 1987, maka super cipher text B akan
menghasilkan 1985 versi dari cipher text B.
Intruder tidak akan dapat mengetahui versi yang sebenarnya dari cipher text A,
cipher text AB, dan cipher text B yang ada agar dapat dilakukan operasi XOR untuk
mendapatkan plain text. Jika intruder melakukan operasi XOR dari seluruh versi
cipher text yang ada, maka akan dihasilkan:
1875*2.840.501*1985 = 10.571.989.659.375 versi dari plain text. Mustahil
bagi intruder untuk mengecek satu persatu dari plain text yang ada untuk mencari

Universitas Sumatera Utara


110

plain text yang memiliki makna. Andai jika intruder memiliki algoritma pengecekan
plain text bermakna, dan mampu melakukan operasi pengecekan 1 juta operasi
10.571.989.659.375
perdetik, maka dibutuhkan waktu: 10 6 3600 (24)
= 122 hari untuk mendapatkan

plain text yang sebenarnya. Asumsi ini didapatkan jika bilangan prima yang
digunakan lebih kecil dari 2000. Tetapi, jika bilangan prima yang digunakan
sepanjang 7 digit. Andai:
p = 6889547 untuk pembentukan super cipher text A
p = 3978571 dan = 9678717 untuk pembentukan super cipher text AB
p = 8321671 untuk pembentukan super cipher text B
maka akan dihasilkan:
(6889547-2)*(3978571*9678717)*( 8321671-2) =
2.207.729.612.002.043.035.439.261.235 versi dari cipher text. Jika intruder
ternyata mampu melakukan operasi pengecekan kata bermakna sebanyak 1 triliun
operasi perdetik maka waktu yang dibutuhkan untuk menemukan plain text yang
benar dan tepat adalah:
2.207.729.612.002.043.035.439.261.235
= 70.006.646 tahun.
(10 12 ) 3600 24 (365)

Tentu saja dengan waktu selama ini, maka teknik bruto force sangat amat tidak
layak digunakan untuk menembus keamanan dari algoritma yang dirancang. Sehingga
dapat disimpulkan bahwa algoritma yang dirancang terbebas dari ancaman keamanan
teknik bruto force.

4.4.3. Cipher text-only analysis

Pada teknik ini, intruder diasumsikan hanya mengetahui cipher text yang dikirim,
tanpa mengetahui sedikitpun potongan dari plain text. Teknik yang dapat digunakan
pada cipher text-only analysis adalah dengan teknik frekuensi. Teknik frekuensi akan
berguna jika plain text dienkripsi perblok dan setiap blok plain text yang sama akan
menghasil cipher text yang sama pula.
Algoritma RSA dapat dianalisa menggunakan teknik frekuensi, karena setiap
blok plain text akan menghasilkan cipher text yang sama. Sebagai contoh, andai:
Karakter A dienkripsi menghasilkan cipher text 6954, dan karakter B
dienkripsi menghasilkan cipher text 3124, maka jika terdapat plain text BABA lalu

Universitas Sumatera Utara


111

dienkripsi dengan kunci yang sama akan menghasilkan cipher text 3124. 6954. 3124.
6954. Dapat dilihat bahwa karakter A akan tetap menghasilkan cipher text 6954 dan
karakter B akan tetap menghasilkan cipher text 3124.
Jika diasumsikan intruder dengan teknik frekuensi mampu memcahkan super
cipher text AB menjadi cipher text AB, maka intruder masih harus memecahkan
super cipher text A dan super cipher text B. karena cipher text AB masih dilindungi
oleh algoritma one time pad. Oleh karena itu, intruder harus memecahkan super
cipher text A, dan super cipher text B untuk bisa mendapatkan plain text. Tetapi.
Super cipher text A dan super cipher text B dienkripsi menggunakan algoritma
Elgamal dengan persamaan a = gk mod p dan b = yk m mod p. Dimana k adalah
bilangan acak dengan syarat 1 ≤ k ≤ p-2. Hal ini mengakibatkan proses enkripsi akan
menghasilkan cipher text yang berbeda-beda bahkan untuk plain text yang sama
dikarenakan nilai k yang acak dan selalu berbeda untuk setiap blok data pada proses
enkripsi. Sehingga dengan teknik frekuensi, keamanan pada algoritma Elgamal tidak
dapat ditembus.
Oleh karena itu, dapat disimpulkan bahwa algoritma yang dirancang terbebas
dari ancaman keamanan dengan teknik cipher text-only analysis.

4.4.4. Known-plain text analysis

Pada teknik ini, intruder diasumsikan memiliki seluruh cipher text yang ada, dan
memiliki potongan dari plain text. Sehingga, dari potonga plain text tersebut, intruder
akan mencoba membangkitkan kunci dekripsi yang digunakan untuk dapat melakukan
proses dekripsi terhadap cipher text yang lain untuk menghasilkan plain text lainnya
yang belum diketahui.
Andai, dari sebuah plain text “Informatika” yang telah diuji pada sub bab 4.1.
intruder mengetahui sebagian dari plain text tersebut, yaitu “Info” dan intruder
mengetahui seluruh isi dari super cipher text A, cipher text AB, dan super cipher text
B yang ada. Seperti contoh sebagai berikut:
Potongan plain text yang di ketahui = Info
Super cipher text A =
823,1447.513,179.1492,10.1046,1345.999,1166.1697,1545.527,180.1249,1148
.872,1270.1743,1560.98,95.

Universitas Sumatera Utara


112

Super cipher text AB =


188995.1810559.1525828.1316477.1517234.285760.1092624.1719632.14429
07.226010.1830987.
Super cipher text B =
1073,674.132,983.871,1307.1743,1177.1668,1596.909,79.1799,1435.76,1494.
367,941.19,1252.390,1623.
Berdasarkan super cipher text yang diketahui, intruder dapat menebak bahwa
plain text terdiri dari 11 karakter, sedangkan intruder hanya mengetahui 4 karakter
awal, sehingga intruder harus mencari 7 karakter selanjutnya.
Dengan menganalisa hubungan plain text dengan ketiga super cipher text,
maka didapatkan hubungan seperti tabel berikut:
Tabel 4.19. Hubungan Plain text dengan Cipher text A, Cipher text AB, dan
Cipher text B.

Plain text Super cipher text A Super cipher text AB Super cipher text B
I 823,1447 188995 1073,674
n 513,179 1810559 132,983
f 1492,10 1525828 871,1307
o 1046,1345 1316477 1743,1177
r 999,1166 1517234 1668,1596
m 1697,1545 285760 909,79
a 527,180 1092624 1799,1435
t 1249,1148 1719632 76,1494
i 872,1270 1442907 367,941
k 1743,1560 226010 19,1252
a 98,95 1830987 390,1623

Berdasarkan tabel 4.19, setiap karakter yang dienkripsi akan selalu


menghasilkan cipher text yang berbeda-beda, sebagai contoh karakter a pada super
cipher text A menghasilkan cipher text 527,180. Tetapi untuk karakter a yang lain
akan menghasilkan cipher text yang berbeda, yaitu: 98,95. Begitu pula pada super
cipher text AB, dimana karakter a menghasilkan cipher text 1092624. Sedangkan
karakter a yang lain menghasilkan cipher text 1830987. Hal yang sama juga terjadi
pada super cipher text B, dimana karakter a menghasilkan cipher text 76,1494.
Sedangkan karakter a yang lain menghasilkan cipher text 390,1623. Oleh karena itu,
intruder tidak dapat berasumsi bahwa suatu karakter plain text yang sama akan
menghasilkan cipher text yang sama pula jika kuncinya sama.

Universitas Sumatera Utara


113

Mencoba membangkitkan private key dari plain text dan cipher text yang
berpasangan juga mustahil dilakukan. Karena cipher text dibangkitkan dengan public
key, bukan dengan private key. Lagi pula, plain text yang diketahui intruder bukan
merupakan plain text asal dari cipher text yang diketahui, misal:
Plain text “I” memiliki cipher text 823,1447. Plain text “I” bukan plain text
asal dari cipher text 823,1447 pada algoritma Elgamal, begitu juga cipher text
823,1447 bukan merupakan cipher text dari plain text “I” pada algoritma one time
pad.
Mencoba membangkitkan sebagian kunci KA dan KB dari plain text yang
diketahui juga mustahil untuk dilakukan, karena intruder tidak memiliki potongan
cipher text A, cipher text AB, atau cipher text B.
Berdasarkan analisis yang telah diterangkan, maka dapat disimpulkan bahwa
algoritma yang dirancang bebas dari ancaman dengan teknik known-plain text
analysis.

Universitas Sumatera Utara


BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Setelah analisa dan pengujian yang dilakukan, maka dapat diambil beberapa
kesimpulan sebagai berikut:
1. Algoritma yang dirancang mampu menutupi kelemahan dari algoritma
terdahulu. Dimana plain text tidak akan dapat dibentuk dengan melakukan
operasi XOR dari super cipher text A, super cipher text AB, dan super cipher
text B.
2. Waktu proses yang dihasilkan dari algoritma yang dirancang dengan algoritma
terdahulu memiliki selisih yang tidak signifikan, bahkan perbandingan waktu
prosesnya akan cenderung semakin mengecil dan mendekati satu dengan
semakin panjangnya pesan yang diproses.
3. Algoritma yang dirancang terbebas dari ancaman keamanan yang menggunakan
teknik bruto force dengan catatan bahwa bilangan prima yang digunakan harus
minimal sepanjang 7 digit. Selain itu, algoritma yang dirancang juga terbebas
dari ancaman keamanan dengan teknik cipher text-only analysis dan teknik
known-plain text analysis.
4. Secara keseluruhan, baik dari segi waktu pemrosesan dan segi keamanan,
algoritma yang dirancang cukup layak untuk diimplementasikan dan digunakan
dalam proses pengiriman data.
5. Algoritma yang dirancang memiliki tingkat keamanan yang lebih tinggi
daripada algoritma terdahulu.

Universitas Sumatera Utara


115

5.2. Saran

Untuk melengkapi berbagai hal yang tidak dibahas pada penelitian ini, dan untuk
menambah kontribusi bagi perkembangan ilmu pengetahuan, maka penulis
memberikan berbagai saran untuk mengembangkan penelitian ini. Berikut adalah
saran-saran yang penulis ebrikan:
1. Menggabungkan dengan algoritma kompresi, sehingga besar data yang dikirim
akan berkurang. Mengingat proses pengiriman cipher text akan dilakukan
sebanyak tiga kali pengiriman.
2. Menggunakan tiga buah algoritma asimetris, sehingga untuk setiap cipher text
akan dienkripsi menggunakan algoritma asimetris yang berbeda-beda untuk
meningkatkan keamanan pesan.

Universitas Sumatera Utara


DAFTAR PUSTAKA

Jurnal
Abdullah, Alharith,. et al. 2015. A Realizable Quantum Three-Pass Protocol
Authentication Based on Hill-Cipher Algorithm. Hindawi Publishing
CorporationMathematical Problems in Engineering
Alkhzaimi, Hoda A,. 2016. Cryptanalysis of Selected Block Ciphers. Technical
University of Denmark
B. Bazith Mohammed,. 2013. Automatic Key Generation of Caesar Cipher.
International Journal of Engineering Trends and Technology.
Fujun, Zhan. 2013. The Application of ElGamal Encryption Technology to the
Information Security of Digital Library. TELKOMNIKA
Iqbal, Muhammad., et al. 2016. SMS EncryptionUsing One-Time Pad Cipher. IOSR
Journal of Computer Engineering (IOSR-JCE).
Kallam, Ravindra Babu., et al. 2011. An Enhanced RSA Public key Cryptographic
Algorithm. International Journal of Advanced Research in Computer Science.
Kanamori, Yoshito. Yoo, Seong-Moo . 2009. Quantum Three-Pass Protocol: Key
Distribution Using Quantum Superposition States. International Journal of
Network Security & Its Applications (IJNSA)
Lang, Jun. 2012. A no-key-exchange secure image sharing scheme based on Shamir’s
three-pass cryptography protocol and the multiple-parameter fractional Fourier
transform. OPTICS EXPRESS.
Lietara, Andreas Parry. 2009. Lietara, Andreas P. 2009. Analisis & Perbandingan
Blum Blum Shub dan Inversive Congruential Generator Beserta
Implementasinya. Jurnal ITB.
Murthy, R., et al. 2012. A Study on Asymmetric Key Exchange Authentication
Protocols. International Journal of Engineering and Innovative Technology
(IJEIT)
Okeyinka, A. 2015. Computational Speeds Analysis of RSA and ElGamal Algorithms
on Text Data. Proceedings of the World Congress on Engineering and Computer
Science

Universitas Sumatera Utara


Oktaviana, Boni. Siahaan, Andysah. 2016. Three-Pass Protocol Implementation in
Caesar Cipher Classic Cryptography. IOSR Journal of Computer Engineering
(IOSR-JCE)
Preetha, M., M. Nithya. 2013. A Study And Performance Analysis of RSA Algorithm.
International Journal of Computer Science and Mobile Computing.
Rahim , Robbi., Ali Ikhwan. 2013. Study of Three Pass Protocol on Data Security.
International Journal of Science and Research (IJSR)
Ranjithkumar, M. 2016. A Secure ElGamal Cryptosystem Using Zero Knowledge
Protocol. International Research Journal of Engineering and Technology
(IRJET)
Ravindra Babu Kallam,. 2011An Enhanced RSA Public key Cryptographic Algorithm.
International Journal of Advanced Research in Computer Science
Siahaan, Andysah Putra. 2016. Three-Pass Protocol Concept in Hill Cipher
Encryption Technique. Seminar Nasional Aplikasi Teknologi Informasi
(SNATi)
Singh, Rashmi. Kumar, Shiv. 2012. Elgamal’s Algorithm in Cryptography.
International Journal of Scientific & Engineering Research
Srikantaswamy, S. Phaneendra, H. 2011. Enhanced OneTime Pad Cipher with
MoreArithmetic and Logical Operations with Flexible Key Generation
Algorithm. International Journal of Network Security & Its Applications
(IJNSA)
Subandi, Amin., et al. 2017. Three-Pass Protocol Implementation in Vigenere Cipher
Classic Cryptography Algorithm with Keystream Generator Modification.
Advances in Science, Technology and Engineering Systems Journal (ASTES)
SurekhaThorat,. 2017. Analysis Of Symmetric Key Cryptographic Algorithms.
International Research Journal of Engineering and Technology.

Buku :
A. Menezes,. 1996. Handbook of Applied Cryptography. CRC Press.
Caroline, Maureen Linda. 2011. Perbandingan Algoritma Kriptografi
RSA, Rabin, dan ElGamal. Makalah IF3058 Kriptografi
Kromodimoeljo, S. 2010. Teori dan Aplikasi Kriptografi. SPK IT Consulting.

Universitas Sumatera Utara


Lauridsen, Martin Mehl. 2016. Design and Analysis of Symmetric
Primitives.Technical University of Denmark
Munir, R. 2006. Kriptografi. Informatika: Bandung.
Widarwa, Adi. 2016. Kombinasi Algoritma Aes, Rc4 dan Elgamal dalam Skema
Kriptografi Hybrid untuk Keamanan Data. Universitas Sumatera Utara. Medan

Universitas Sumatera Utara


LAMPIRAN
1. Source Code
Nama File : index,php <strong>Pembangkitan Kunci
<?php ElGamal</strong> <br>
$awal = microtime(true); Data pembangkit kunci
include "fungsi.php"; ElGamal<br>
echo"<h2 P : $p_elgamal_1 <br> g :
align='center'>Algoritma RSA dan $g_elgamal_1 <br>
ElGamal Sebagai Algoritma x : $x_elgamal_1 <br> y :
Tambahan untuk Memperbaiki $y_elgamal_1 <br> <br>
Algoritma One Time Pad pada Public Key B 1 : $public_key_b1
Skema Three-Pass <br>
Protocol</h2><hr>"; Private Key B 1 :
$plain = $private_key_b1 <br>";
"Informatika"; //Akhir dari pembangkitan g
$panjang_plain = dan x
strlen($plain); //AKHIR BEBY
echo"<font
color=red><strong>Plain Text : //ANTON
$plain <br> //Bangkitkan Kunci Acak OTP KA
Panjang Plain Text : dengan Blum Blum Shub
$panjang_plain Karakter $p = primablum();
</strong> </font> <br>"; $q = primablum();
//--TAHAP PERTAMA---- $n = nblum($p,$q);
$s = sblum($n);
//BEBY// $bitplain =
//GENERATE KUNCI ELGAMAL chartobiner($plain);
$p_elgamal_1 = prima(); $KA =
//Bangkitkan g dan x secara bitacak($bitplain,$s,$n);
acak dengan blum blum shub echo"<br> <strong>PROSES
$p = primablum(); ANTON</strong> <br>";
$q = primablum(); echo"<strong>Proses Pembangkitan
$n = nblum($p,$q); Kunci KA secara Acak dan
$s = sblum($n); Enkripsi OTP</strong> <br>";
echo"Bilangan acak g, p : $p, q echo"<br>Data pembangkit kunci
: $q, n : $n, s : $s <br>"; acak KA dengan blum blum shub
$g_elgamal_1 = <br>
acak_elgamal($s,$n,$p_elgamal_1) P : $p <br> Q : $q <br>
; N : $n <br> S : $s <br> <br>
$p = primablum(); <font color=red><strong>Plain
$q = primablum(); Text Biner : $bitplain
$n = nblum($p,$q); </strong></font><br><br>
$s = sblum($n); Kunci KA : $KA <br> <br>";
echo"Bilangan acak x, p : $p, q
: $q, n : $n, s : $s <br>"; //Enkripsi OTP
$x_elgamal_1 = $operasi_otp =
acak_elgamal($s,$n,$p_elgamal_1) otp($bitplain,$KA);
; echo"<font
$y_elgamal_1 = color=red><strong>Cipher Text A
y($g_elgamal_1,$x_elgamal_1,$p_e : $operasi_otp
lgamal_1); </strong></font><br>";
$public_key_b1 = $otp_desimal =
"$y_elgamal_1,$g_elgamal_1,$p_el binertodesimal($operasi_otp);
gamal_1"; echo"Cipher Text A Desimal :
$private_key_b1 = $otp_desimal <br>";
"$x_elgamal_1,$p_elgamal_1";
echo"<hr><strong>TAHAP //Enkripsi Elgamal
PERTAMA</strong> <hr> echo"<br> <strong>Proses
<strong>PROSES BEBY</strong> Enkripsi Elgamal </strong>
<br> <br>";

Universitas Sumatera Utara


2

$p = primablum(); echo"<hr> <strong>TAHAP


$q = primablum(); KEDUA</strong> <hr>";
$n = nblum($p,$q); echo"<strong>PROSES
$s = sblum($n); BEBY</strong><br>
echo"Data pembangkit bilangan <strong>Deskripsi Super Cipher
acak k dengan blum blum shub Text A dengan ElGamal</strong>
untuk enkripsi ElGamal 1. <br> <br>";
P : $p <br> Q : $q <br> //AKHIR DARI ANTON
N = $n <br> S : $s <br> <br>";
$output = //AWAL dari BEBY
enkripsi_elgamal($otp_desimal,$y //Proses Deskripsi Cipher
_elgamal_1,$g_elgamal_1,$p_elgam Text A
al_1,$s,$n); $output =
$hasil = $output[0]; deskripsi_elgamal($super_cipher_
$super_cipher_text_A = text_A,$x_elgamal_1,$p_elgamal_1
$output[1]; );
echo"$hasil <br> $hasil = $output[0];
<font color=red><strong>Super $cipher_text_A = $output[1];
Cipher Text A : echo"$hasil <br>
$super_cipher_text_A</strong> <font color=red><strong>Cipher
</font> <br>"; Text A : $cipher_text_A
echo"<br> <strong>Bangkitkan </strong></font><br>";
Kunci RSA</strong> <br>"; //Generate Kunci OTP KB
//Proses Pembangkitan Kunci dengan blum blum shub
RSA $p = primablum();
$p_rsa = primablum(); $q = primablum();
$q_rsa = primablum(); $n = nblum($p,$q);
$n_rsa = $s = sblum($n);
nblum($p_rsa,$q_rsa); echo"<br>Data pembangkit kunci
$tot_rsa= nblum($p_rsa-1,$q_rsa- acak KB dengan blum blum shub
1); <br>
$e = gcd($tot_rsa); //Mencari p : $p <br> q : $q <br>
e n : $n <br> s : $s <br>";
echo"Data pembangkit kunci $KB =
RSA<br> bitacak($cipher_text_A,$s,$n);
P : $p_rsa <br> Q : $q_rsa <br> echo"<br><strong>Enkripsi
N = $n_rsa <br> Totient N : OTP</strong> <br>
$tot_rsa <br> <br>"; Kunci KB : $KB <br>";
//Proses Pencarian nilai d--- //Enkripsi OTP Cipher Text A
- $operasi_otp =
$i=1; otp($cipher_text_A,$KB);
do{ echo"<font
$res = color=red><strong>Cipher Text AB
gmp_div_qr(gmp_add(gmp_mul($tot_ : $operasi_otp
rsa,$i),1), $e); </strong></font><br>";
$i++; $otp_desimal =
if($i==10000) //maksimal binertodesimal($operasi_otp);
percobaan 10000 echo"Cipher Text AB Desimal :
break; $otp_desimal <br>
}while(gmp_strval($res[1])!='0') <br> <strong>Enkripsi
; RSA</strong> <br>";
$d = gmp_strval($res[0]); //Enkripsi RSA
$public_key_A = "$e, $super_cipher_text_AB =
$n_rsa"; enkripsi_rsa($otp_desimal,$e,$n_
$private_key_A = "$d, rsa);
$n_rsa"; echo"<font
echo"Public Key A : color=red><strong>Super Cipher
$public_key_A <br> Text AB :
Private Key A : $private_key_A $super_cipher_text_AB</strong></
<br>"; font><br>";

Universitas Sumatera Utara


3

//GENERATE KUNCI ELGAMAL $operasi_otp =


KEDUA otp($cipher_text_AB,$KA);
$p_elgamal_2 = prima(); echo"<font
//Bangkitkan g dan x secara color=red><strong>Cipher Text B
acak dengan blum blum shub : $operasi_otp
$p = primablum(); </strong></font><br>
$q = primablum(); Kunci KA : $KA <br>";
$n = nblum($p,$q); $otp_desimal =
$s = sblum($n); binertodesimal($operasi_otp);
echo"Bilangan acak g, p : $p, q echo"Cipher Text B Desimal :
: $q, n : $n, s : $s <br>"; $otp_desimal <br>
$g_elgamal_2 = <br> <strong>Enkripsi Cipher
acak_elgamal($s,$n,$p_elgamal_2) Text B dengan ElGamal</strong>
; <br>";
$p = primablum();
$q = primablum(); //Enkripsi Cipher text B
$n = nblum($p,$q); dengan ElGamal
$s = sblum($n); $p = primablum();
echo"Bilangan acak x, p : $p, q $q = primablum();
: $q, n : $n, s : $s <br>"; $n = nblum($p,$q);
$x_elgamal_2 = $s = sblum($n);
acak_elgamal($s,$n,$p_elgamal_2) echo"Data pembangkit bilangan
; acak k dengan blum blum shub
$y_elgamal_2 = untuk enkripsi ElGamal 2. <br>
y($g_elgamal_2,$x_elgamal_2,$p_e p : $p <br> q : $q <br>
lgamal_2); n : $n <br> s : $s <br> <br>";
$public_key_b2 = $output =
"$y_elgamal_2,$g_elgamal_2,$p_el enkripsi_elgamal($otp_desimal,$y
gamal_2"; _elgamal_2,$g_elgamal_2,$p_elgam
$private_key_b2 = al_2,$s,$n);
"$x_elgamal_2,$p_elgamal_2"; $hasil = $output[0];
echo"<br><strong>Pembangkitan $super_cipher_text_B =
Kunci ElGamal</strong> <br> $output[1];
Data pembangkit kunci ElGamal echo"$hasil <br>
Kedua<br> <font color=red><strong>Super
P : $p_elgamal_2 <br> g : Cipher Text B :
$g_elgamal_2 <br> $super_cipher_text_B</strong></f
x : $x_elgamal_2 <br> y : ont> <br>";
$y_elgamal_2 <br> <br> //AKHIR TAHAP KEDUA
Public Key B 2 : $public_key_b2 //AKHIR ANTON
<br>
Private Key B 2 : //TAHAP KETIGA
$private_key_b2 <br> <br>"; echo"<strong> <br><hr>TAHAP
//Akhir dari pembangkitan g KETIGA<hr> <br>
dan x PROSES BEBY <br>
//AKHIR DARI BEBY Proses Dekripsi ElGamal
//AWAL dari ANTON </strong> <br>";
//Dekripsi RSA //AWAL BEBY
$cipher_text_AB = //Dekripsi Super Cipher Text
dekripsi_rsa($super_cipher_text_ B dengan ElGamal
AB,$d,$n_rsa); $output =
echo"<font deskripsi_elgamal($super_cipher_
color=red><strong>Cipher Text AB text_B,$x_elgamal_2,$p_elgamal_2
: $cipher_text_AB );
</strong></font><br> $hasil = $output[0];
<br> <strong>Dekripsi Cipher $cipher_text_B = $output[1];
Text AB dengan Kunci KA pada OTP echo"$hasil <br>
</strong> <br>"; <font color=red><strong>Cipher
//Mendekripsi cipher text AB Text B : $cipher_text_B
dengan kunci KA </strong></font><br>

Universitas Sumatera Utara


4

<br> <strong>Dekripsi Cipher


Text A dengan Kunci KB pada OTP //Enkripsi OTP
</strong> <br><br>"; $cipher_text_A =
//Mendekripsi cipher text B otp($bitplain,$KA);
dengan kunci KB menjadi plain echo"<font
text color=red><strong>Cipher Text A
$operasi_otp = : $cipher_text_A
otp($cipher_text_B,$KB); </strong></font><br>";
echo"<font echo"<br> <strong>PROSES
color=red><hr><strong> Plain BEBY</strong> <br>";
Text Biner : $operasi_otp //Bangkitkan Kunci Acak OTP KB
</strong> <br>"; dengan Blum Blum Shub
$otp_desimal = $p = primablum();
binertodesimal($operasi_otp); $q = primablum();
$plain_text = $n = nblum($p,$q);
desimaltochar($otp_desimal); $s = sblum($n);
echo"<strong> Plain Text : $KB =
$plain_text </strong><hr> bitacak($cipher_text_A,$s,$n);
</font>"; echo"<strong>Enkripsi Cipher
Text A dengan Kunci KB</strong>
$akhir = microtime(true); <br>";
$lama = $akhir - $awal; echo"<br>Data pembangkit kunci
echo"<br><hr><font acak KB dengan blum blum shub
color=green><strong> Time : <br>
$lama </strong></font><hr>"; P : $p <br> Q : $q <br>
//------------------------------ N : $n <br> S : $s <br> <br>
<font color=red><strong>Ciphe
$start = microtime(true); Text A : $cipher_text_A
echo"<h2 align='center'>Hanya </strong></font><br><br>
Dengan Algoritma One Time Kunci KB : $KB <br> <br>";
Pad</h2>";
echo"<font //Enkripsi OTP
color=red><strong>Plain Text : $cipher_text_AB =
$plain <br> otp($cipher_text_A,$KB);
Panjang Plain Text : echo"<font
$panjang_plain Karakter color=red><strong>Cipher Text AB
</strong> </font> <br>"; : $cipher_text_AB
echo"<br> <strong>PROSES </strong></font><br>";
ANTON</strong> <br>"; echo"<br> <strong>PROSES
//Bangkitkan Kunci Acak OTP KA ANTON</strong> <br>
dengan Blum Blum Shub Dekripsi Cipher Text AB dengan
$p = primablum(); Kunci KA <br>";
$q = primablum(); //Dekripsi OTP
$n = nblum($p,$q); $cipher_text_B =
$s = sblum($n); otp($cipher_text_AB,$KA);
$bitplain = echo"<font
chartobiner($plain); color=red><strong>Cipher Text B
$KA = : $cipher_text_B
bitacak($bitplain,$s,$n); </strong></font><br>";
echo"<strong>Enkripsi Plain Text
dengan Kunci KA</strong> <br>"; echo"<br> <strong>PROSES
echo"<br>Data pembangkit kunci BEBY</strong> <br>
acak KA dengan blum blum shub Dekripsi Cipher Text B dengan
<br> Kunci KB <br>";
P : $p <br> Q : $q <br> //Dekripsi OTP
N : $n <br> S : $s <br> <br> $plain_text_biner =
<font color=red><strong>Plain otp($cipher_text_B,$KB);
Text Biner : $bitplain $otp_desimal =
</strong></font><br><br> binertodesimal($plain_text_biner
Kunci KA : $KA <br> <br>"; );

Universitas Sumatera Utara


5

$plain_text = $plain_text =
desimaltochar($otp_desimal); $plain_text.$biner;
echo"<font }
color=red><strong>Plain Text return $plain_text;
Biner : $plain_text_biner }
</strong></font><br> //--------Akhir fungsi konversi
<font color=red><strong>Plain karakter ke biner 8 bit----
Text : $plain_text //--Fungsi konversi karakter ke
</strong></font><br>"; biner 8 bit-------
$end = microtime(true); function desimaltochar($data)
$time = $end - $start; {
echo"<br><hr><font $data = trim($data);
color=green><strong> Time : $desimal = explode(" ",$data);
$time </strong></font><hr>"; $panjang = count($desimal);
for($i=0;$i<$panjang;$i++)
?> {
Nama File : fungsi.php $karakter =
<?php chr($desimal[$i]);
//---Fungsi konversi desimal ke
biner 8 bit $hasil .= $karakter;
function desimaltobiner($data) }
{ return $hasil;
$tampung = }
base_convert($data,10,2); //--------Akhir fungsi konversi
$length = strlen($tampung); karakter ke biner 8 bit----
if($length == 8) //--------Kumpulan fungsi
$biner = $tampung; pendukung Blum-Blum Shub
else if($length == 7) Generator------------
$biner = "0".$tampung; function primablum()
else if($length == 6) {
$biner = "00".$tampung; $dapat = true;
else if($length == 5) $prime = true;
$biner = "000".$tampung; while($dapat)
else if($length == 4) {
$biner = "0000".$tampung; if($prime)
else if($length == 3) {
$biner = "00000".$tampung; $rand = rand(1000,2000);
else if($length == 2) $p =
$biner = test_prime($rand,3);
"000000".$tampung; $mod_p = $p % 4;
else if($length == 1) if($mod_p == 3)
$biner = $prime = false;
"0000000".$tampung; }
return $biner;
} if(!$prime)
//-------------------- $dapat = false;
//--Fungsi konversi karakter ke }
biner 8 bit------- return $p;
function chartobiner($karakter) }
{ //------------------
$plain_text = ""; function nblum($p,$q)
$panjang = strlen($karakter); {
for($i=0;$i<$panjang;$i++) $n=gmp_strval(gmp_mul($p,$q));
{ return $n;
$desimal = }
ord($karakter[$i]); //------------------
//----Mencari Nilai S---
$biner = function sblum($n)
desimaltobiner($desimal); {
$b = 0;

Universitas Sumatera Utara


6

for($i=1;$i<100;$i++) $hasil = "";


{ //mencoba perulangan max 1000 for($a=0; $a<$panjang;
kali $a=$a+8)
$acak = rand(2,$n); {
$gcd = $bin = "";
gmp_strval(gmp_gcd($acak, $n)); $p = $a + 8;
if($gcd == 1) for($b=$a; $b<$p; $b++)
{ {
$nilai_s[$b] = $acak; $bin = $bin.$data[$b];
$b++; }
}
} $desimal =
$s = base_convert($bin,2,10);
$nilai_s[array_rand($nilai_s)]; $hasil = $hasil.$desimal." ";
return $s; }
} $hasil = trim($hasil);
//------------Akhir dari return $hasil;
kumpulan fungsi algoritma blum }
blum shub----- //-------Akhir fungsi Konversi
//------Pembangkit bit-bit Acak biner ke desimal----------
sepanjang bit karakter //----Membangkitkan Bilangan
function Prima Acak dengan Lehmann
bitacak($karakter,$s,$n) PRimality test-----
{ function test_prime($p,$q)
$panjang = strlen($karakter); {
$acak = ""; if($p<3)
$x = $s; {
for($i=0;$i<$panjang;$i++) return "false";
{ }
$x = if($p%2 == 0)
gmp_strval(gmp_powm($x,2,$n)); {
$hasil = $x % 2; $p++;
$acak = $acak.$hasil; }
} $i = 0;
return $acak; $x = 0;
} while($x<$q)
//----Akhir fungsi pembangkit {
bit-bit acak-------- $a = rand(2,$p-1);
//----Opersai OTP dengan Teknik $prime = true;
XOR----------- while($prime)
function otp($data,$kunci) {
{ $i++;
$panjang = strlen($data); $n = ($p-1)/2;
$hasil = ""; $hasil =
for($a=0; $a<$panjang; $a++) gmp_strval(gmp_mod(gmp_pow($a,$n
{ ),$p));
$cipher[$a] = if($hasil == 1 || $hasil
gmp_xor($data[$a],$kunci[$a]); == $p-1)
$temp = {
gmp_strval($cipher[$a],2); $prime = false;
$hasil = $hasil.$temp; }
} else
return $hasil; {
} $p=$p+2;
//------Akhir Opersasi OTP $x = 0;
//------Fungsi Konversi Biner ke }
Desimal---------- }
function binertodesimal($data) $x++;
{ }
$panjang = strlen($data); return $p;

Universitas Sumatera Utara


7

} $string .= $string1.$string2;
function prima()
{ $cipher .= $a.",".$b.".";
$rand = rand(1000,2000); }
$prima = $hasil = array($string,$cipher);
test_prime($rand,3); return $hasil;
return $prima; }
} //------Akhir Enkripsi Elgamal
//----Akhir Fungsi membangkitkan //-----Fungsi mencari GCD = 1---
Bilangan Prima ------
//----Mencari nilai y untuk function gcd($totient)
Elgamal------ {
function y($g,$x,$p) $b = 0;
{ for($i=2;$i<300;$i++)
$y = { //mencoba perulangan max
gmp_strval(gmp_powm($g,$x,$p)); 300 kali
return $y; $gcd =
} gmp_strval(gmp_gcd($i,$totient))
//---Akir fungsi---------------- ;
--------- if($gcd == 1)
//--Pembangkit Bilangan Acak {
Elgamal----- $nilai[$b] = $i;
function acak_elgamal($s,$n,$p) $b++;
{ }
$mod = $p-2; }
$x = $e =
gmp_strval(gmp_powm($s,2,$n)); $nilai[array_rand($nilai)];
$hasil = $x % $mod; return $e;
}
return $hasil; //------------------------------
} ------
//--Pembangkit Bilangan Acak //-----Deskripsi Elgamal----
Elgamal-------- function
//---Fungsi Enkripsi Elgamal---- deskripsi_elgamal($cipher,$x,$p)
-- {
function $total_blok =
enkripsi_elgamal($plain,$y,$g,$p substr_count($cipher, ",");
,$s,$n) $pecah = explode(".",$cipher);
{ for($i=0; $i<$total_blok; $i++)
$data = explode(" ",$plain); {
$panjang = count($data); $string1 = "<br> Blok ke - $i
$k = $s; <br>";
for($i=0; $i<$panjang; $i++) $blok = explode(",",$pecah[$i]);
{ $a = $blok[0];
$string1 = "<br> Blok ke - $i $b = $blok[1];
<br>"; $c = gmp_strval(gmp_powm($a,$p-
$m = $data[$i]; 1-$x,$p));
$k = $string2 = "c = $c <br>";
acak_elgamal($k,$n,$p); $m =
gmp_strval(gmp_mod(gmp_mul($b,$c
$a = ),$p));
gmp_strval(gmp_powm($g,$k,$p)); $tampung =
$b = base_convert($m,10,2);
gmp_strval(gmp_mod(gmp_mul(gmp_p $length = strlen($tampung);
ow($y,$k),$m),$p)); if($length == 8)
$string2 = "k : $k <br> $biner = $tampung;
m : $m <br> else if($length == 7)
a : $a <br> $biner = "0".$tampung;
b : $b <br>"; else if($length == 6)
$biner = "00".$tampung;

Universitas Sumatera Utara


8

else if($length == 5) $hasil =


$biner = "000".$tampung; gmp_strval(gmp_powm($data[$i],$e
else if($length == 4) ,$n));
$biner = "0000".$tampung; //antar tiap karakter
else if($length == 3) dipisahkan dengan "."
$biner = "00000".$tampung; $cipher_text .=
else if($length == 2) $hasil.".";
$biner = "000000".$tampung; }
else if($length == 1) return $cipher_text;
$biner = "0000000".$tampung; }
//-----------------------------
$string3 = "m = $m <br> function
tampung = $tampung<br> dekripsi_rsa($cipher,$d,$n)
biner m = $biner <br>"; {
$string .= $cipher = trim($cipher);
$string1.$string2.$string3; $data = explode(".",$cipher);
$plain .= $biner; $panjang= count($data);
} for($i=0; $i<$panjang-1;
$hasil = array($string, $plain); $i++)
return $hasil; {
} //rumus dekripsi
//------------------------------ <pesan>=<enkripsi>^<d>mod<n>
------- $hasil =
//---Enkripsi RSA-------------- gmp_strval(gmp_powm($data[$i],$d
function ,$n));
enkripsi_rsa($plain,$e,$n)
{ $biner=
$plain = trim($plain); desimaltobiner($hasil);
$data = explode(" ",$plain);
$panjang= count($data); $plain .= $biner;
for($i=0;$i<$panjang;$i++) }
{ return $plain;
//rumus enkripsi }
<enkripsi>=<pesan>^<e>mod<n> ?>

2. Pesan Teks yang Diuji

PESAN A
KotaBinjai
PESAN B
Dia adalah Mahasiswa
PESAN C
Skema three pass protocol dikembangkan Adi Shamir.
PESAN D
Algoritma one time pad merupakan algoritma unbreakable (algoritma yang tidak akan
dapat terpecahkan)
PESAN E
Algoritma-algoritma dengan teknik XOR (eksklusif-OR) dapat diimplementasikan
pada skema protokol ini, seperti algoritma one time pad, vigenere cipher, dan caesar
cipher (Boni Oktaviana, 2016:20-21).
PESAN F
Algoritma-algoritma dengan teknik XOR (eksklusif-OR) dapat diimplementasikan
pada skema protokol ini, seperti algoritma one time pad (Oktaviana, 2016), vigenere
cipher (Subandi, 2017), dan caesar cipher (A. Siahaan, 2016). Selain itu, algoritma

Universitas Sumatera Utara


9

berbasis matriks seperti hill cipher juga dapat diimplementasikan pada skema protokol
ini (A. Abdullah,2015).
Algoritma dengan teknik XOR yang diimplementasikan untuk skema three pass
protocol memiliki kelemahan yang sangat fatal, bahkan untuk satusatu
PESAN G
Algoritma one time paad yang merupakan algoritma unbreakable atau algoritma yang
tidak terpecahkan akan menjadi algoritma yang tidak layak pakai dari segi keamanan
jika digunakan pada skema three pass protocol karena kelemahan yang telah
dijelaskan sebelumnya. Untuk mengatasi kelemahan tersebut, perlu dilakukan sesuatu
pada cipher text A, cipher text AB, dan cipher text B agar jika ketiganya di-XOR-kan
tidak akan menghasilkan M (plain text).
Algoritma RSA(Rivest Shamir Adleman) dan Elgamal merupakan algoritma
kriptografi kunci publik atau asimetris, dimana algoritma ini memiliki kunci yang
berbeda dalam melakukan enkripsi dan deskripsi. Dalam proses pembangkitan kunci
dengan algoritma ini akan menghasilkan dua buah kunci, yaitu : public key yang
bersifat tidak rahasia dan dapat dipublikasikan dan diketahui secara bebas. Public key
hanya digunakan untuk melakukan enkripsi. Satu kunci yang lain adalah private key
yang bersifat sangat rahasia, tidak boleh didistribusikan hanya penerima .
PESAN H
Algoritma one time paad yang merupakan algoritma unbreakable atau algoritma yang
tidak terpecahkan akan menjadi algoritma yang tidak layak pakai dari segi keamanan
jika digunakan pada skema three pass protocol karena kelemahan yang telah
dijelaskan sebelumnya. Untuk mengatasi kelemahan tersebut, perlu dilakukan sesuatu
pada cipher text A, cipher text AB, dan cipher text B agar jika ketiganya di-XOR-kan
tidak akan menghasilkan M (plain text).
Algoritma RSA(Rivest Shamir Adleman) dan Elgamal merupakan algoritma
kriptografi kunci publik atau asimetris, dimana algoritma ini memiliki kunci yang
berbeda dalam melakukan enkripsi dan deskripsi. Dalam proses pembangkitan kunci
dengan algoritma ini akan menghasilkan dua buah kunci, yaitu : public key yang
bersifat tidak rahasia dan dapat dipublikasikan dan diketahui secara bebas. Public key
hanya digunakan untuk melakukan enkripsi. Satu kunci yang lain adalah private key
yang bersifat sangat rahasia, tidak boleh didistribusikan, dan hanya penerima pesan
yang boleh mengetahui kunci ini. Private key digunakan untuk melakukan deskripsi
cipher text. Jika private key diketahui oleh pihak lain, maka pihak tersebut akan
dengan sangat mudah mendeskripsikan cipher text.
Algoritma RSA dan Elgamal merupakan algoritma yang memiliki tingkat keamanan
yang sangat baik. Algoritma RSA secara de facto bahkan menjadi algoritma asimetris
resmi yang digunakan pada banyak bidang. Tingkat keamanan algoritma RSA terletak
pada sulitnya memfaktorkan bilangan bulat menjadi dua buah bilangan prima,
sedangkan tingkat keamanan algoritma Elgamal terletak pada sulitnya menghitung
logaritma diskrit (Okeyinka, 2015).
Pada penelitian ini, algoritma RSA dan Elgamal akan digunakan untuk melakukan
modifikasi terhadap cipher text A, cipher text AB, dan cipher text B sebelum
dilakukan pengiriman dan melewati jalur komunikasi, agar pesan M tidak dapat
direkontruksi dengan meng-XOR-kan ketiga cipher text yang telah
terjadi/dimodifikasi. Sekian dan terima kasih.
PESAN I
Skema three pass protocol di kembangkan oleh Adi Shamir, seorang profesor
berkebangsaan Israel sekitar tahun 1980. Protokol ini memiliki kerangka tiga jalur

Universitas Sumatera Utara


10

untuk melakukan pengiriman pesan atau data. Protokol ini juga memungkinkan dua
pihak saling bertukar informasi dengan aman tanpa harus melakukan pertukaran
kunci, sehingga masalah distribusi kunci yang ada pada algoritma simetris dapat
teratasi dengan baik (Oktaviana, 2016).
Algoritma-algoritma dengan teknik XOR (eksklusif-OR) dapat diimplementasikan
pada skema protokol ini, seperti algoritma one time pad (Oktaviana, 2016), vigenere
cipher (Subandi, 2017), dan caesar cipher (A. Siahaan, 2016). Selain itu, algoritma
berbasis matriks seperti hill cipher juga dapat diimplementasikan pada skema protokol
ini (A. Abdullah,2015).
Algoritma dengan teknik XOR yang diimplementasikan untuk skema three pass
protocol memiliki kelemahan yang sangat fatal, bahkan untuk satu-satunya algoritma
unbreakable (tidak terpecahkan) yang ada saat ini, yaitu algoritma one time pad pun
akan menjadi breakable (terpecahkan) dengan sangat mudah jika diterapkan pada
skema protokol ini. Ada pun kelemahan fatal tersebut dapat ditunjukkan pada formula
di bawah ini (Kanamori, 2009):
(M XOR KA) XOR (M XOR KA XOR KB) XOR (M XOR KB)
Pada formula di atas, dapat dijelaskan bahwa andai Anton ingin mengirimkan pesan
kepada Beby,Anton akan mengenkripsi pesan dengan kunci yang dia miliki yaitu
(KA) dengan formula cipher text (M ?????, setalah itu cipher text A hasil enkripsi
akan dikirim ke Beby, lalu Beby akan mengenkripsi cipher text A dengan kunci yang
dia miliki (KB) dengan formula cipher text (M ???????????, lalu cipher text AB hasil
enkripsi akan dikirim kembali ke Anton dan Anton akan mendeskripsi cipher text AB
menjadi cipher text B dengan kunci yang dia miliki (KA) yang menghasilkan formula
cipher text(M ???????Ciphert text B ini akan dikirimkan kembali kepada Beby, lalu
Beby akan mendeskripsi cipher text B dengan kunci yang dia miliki (Kb) yang akan
menghasilkan M (plain text) (Jun Lang, 2012).
Pada penjelasan di atas, jika Ucok berhasil melakukan penyadapan terhadap
komunikasi percakapan Anton dan Beby dan mendapatkan ketiga cipher text yang
dikirim, yaitu cipher text A, cipher text AB, dan cipher text B, maka Ucok akan
dengan sangat mudah mendapatkan M atau plain text dari pesan yang dikirim hanya
dengan melakukan operasi XOR terhadap cipher text A dengan cipher text AB, dan
hasilnya kembali di XOR kan dengan cipher text B. Dengan kelemahan fatal ini, maka
skema three pass protocol yang dirancang untuk komunikasi yang lebih aman menjadi
sangat tidak aman.
Algoritma one time paad yang merupakan algoritma unbreakable atau algoritma yang
tidak terpecahkan akan menjadi algoritma yang tidak layak pakai dari segi keamanan
jika digunakan pada skema three pass protocol karena kelemahan yang telah
dijelaskan sebelumnya. Untuk mengatasi kelemahan tersebut, perlu dilakukan sesuatu
pada cipher text A, cipher text AB, dan cipher text B agar jika ketiganya di-XOR-kan
tidak akan menghasilkan M (plain text).
Algoritma RSA(Rivest Shamir Adleman) dan Elgamal merupakan algoritma
kriptografi kunci publik atau asimetris, dimana algoritma ini memiliki kunci yang
berbeda dalam melakukan enkripsi dan deskripsi. Dalam proses pembangkitan kunci
dengan algoritma ini akan menghasilkan dua buah kunci, yaitu : public key yang
bersifat tidak rahasia dan dapat dipublikasikan dan diketahui secara bebas. Public key
hanya digunakan untuk melakukan enkripsi. Satu kunci yang lain adalah private key
yang bersifat sangat rahasia, tidak boleh didistribusikan, dan hanya penerima pesan
yang boleh mengetahui kunci ini. Private key digunakan untuk melakukan deskripsi

Universitas Sumatera Utara


11

cipher text. Jika private key diketahui oleh pihak lain, maka pihak tersebut akan
dengan sangat mudah mendeskripsikan cipher text.
Algoritma RSA dan Elgamal merupakan algoritma yang memiliki tingkat keamanan
yang sangat baik. Algoritma RSA secara de facto bahkan menjadi algoritma asimetris
resmi yang digunakan pada banyak bidang. Tingkat keamanan algoritma RSA terletak
pada sulitnya memfaktorkan bilangan bulat menjadi dua buah bilangan prima,
sedangkan tingkat keamanan algoritma Elgamal terletak pada sulitnya menghitung
logaritma diskrit (Okeyinka, 2015).
Pada penelitian ini, algoritma RSA dan Elgamal akan digunakan untuk melakukan
modifikasi terhadap cipher text A, cipher text AB, dan cipher text B sebelum
dilakukan pengiriman dan melewati jalur komunikasi, agar pesan M tidak dapat
direkontruksi dengan meng-XOR-kan ketiga cipher text yang telah terjadi modifikasi.
Berdasarkan latar belakang yang telah diuraikan, maka dapat diambil beberapa
rumusan masalah yang ada sebagai berikut:
1. Perlunya mengatasi kelemahan algoritma one time pad pada skema three pass
protocol dengan memodifikasi cipher text yang dikirim dengan menggunakan
algoritma RSA dan Elgamal.
2. Perlunya meningkatan keamanan dari cipher text yang akan dikirim pada
skema three pass protocol
PESAN J
Skema three pass protocol di kembangkan oleh Adi Shamir, seorang profesor
berkebangsaan Israel sekitar tahun 1980. Protokol ini memiliki kerangka tiga jalur
untuk melakukan pengiriman pesan atau data. Protokol ini juga memungkinkan dua
pihak saling bertukar informasi dengan aman tanpa harus melakukan pertukaran
kunci, sehingga masalah distribusi kunci yang ada pada algoritma simetris dapat
teratasi dengan baik (Oktaviana, 2016).
Algoritma-algoritma dengan teknik XOR (eksklusif-OR) dapat diimplementasikan
pada skema protokol ini, seperti algoritma one time pad (Oktaviana, 2016), vigenere
cipher (Subandi, 2017), dan caesar cipher (A. Siahaan, 2016). Selain itu, algoritma
berbasis matriks seperti hill cipher juga dapat diimplementasikan pada skema protokol
ini (A. Abdullah,2015).
Algoritma dengan teknik XOR yang diimplementasikan untuk skema three pass
protocol memiliki kelemahan yang sangat fatal, bahkan untuk satu-satunya algoritma
unbreakable (tidak terpecahkan) yang ada saat ini, yaitu algoritma one time pad pun
akan menjadi breakable (terpecahkan) dengan sangat mudah jika diterapkan pada
skema protokol ini. Ada pun kelemahan fatal tersebut dapat ditunjukkan pada formula
di bawah ini (Kanamori, 2009):
(M XOR KA) XOR (M XOR KA XOR KB) XOR (M XOR KB)
Pada formula di atas, dapat dijelaskan bahwa andai Anton ingin mengirimkan pesan
kepada Beby, Anton akan mengenkripsi pesan dengan kunci yang dia miliki yaitu
(KA) dengan formula cipher text (M ?????, setalah itu cipher text A hasil enkripsi
akan dikirim ke Beby, lalu Beby akan mengenkripsi cipher text A dengan kunci yang
dia miliki (KB) dengan formula cipher text (M ???????????, lalu cipher text AB hasil
enkripsi akan dikirim kembali ke Anton dan Anton akan mendeskripsi cipher text AB
menjadi cipher text B dengan kunci yang dia miliki (KA) yang menghasilkan formula
cipher text(M ???????Ciphert text B ini akan dikirimkan kembali kepada Beby, lalu
Beby akan mendeskripsi cipher text B dengan kunci yang dia miliki (Kb) yang akan
menghasilkan M (plain text) (Jun Lang, 2012).

Universitas Sumatera Utara


12

Pada penjelasan di atas, jika Ucok berhasil melakukan penyadapan terhadap


komunikasi percakapan Anton dan Beby dan mendapatkan ketiga cipher text yang
dikirim, yaitu cipher text A, cipher text AB, dan cipher text B, maka Ucok akan
dengan sangat mudah mendapatkan M atau plain text dari pesan yang dikirim hanya
dengan melakukan operasi XOR terhadap cipher text A dengan cipher text AB, dan
hasilnya kembali di XOR kan dengan cipher text B. Dengan kelemahan fatal ini, maka
skema three pass protocol yang dirancang untuk komunikasi yang lebih aman menjadi
sangat tidak aman.
Algoritma one time paad yang merupakan algoritma unbreakable atau algoritma yang
tidak terpecahkan akan menjadi algoritma yang tidak layak pakai dari segi keamanan
jika digunakan pada skema three pass protocol karena kelemahan yang telah
dijelaskan sebelumnya. Untuk mengatasi kelemahan tersebut, perlu dilakukan sesuatu
pada cipher text A, cipher text AB, dan cipher text B agar jika ketiganya di-XOR-kan
tidak akan menghasilkan M (plain text).
Algoritma RSA(Rivest Shamir Adleman) dan Elgamal merupakan algoritma
kriptografi kunci publik atau asimetris, dimana algoritma ini memiliki kunci yang
berbeda dalam melakukan enkripsi dan deskripsi. Dalam proses pembangkitan kunci
dengan algoritma ini akan menghasilkan dua buah kunci, yaitu : public key yang
bersifat tidak rahasia dan dapat dipublikasikan dan diketahui secara bebas. Public key
hanya digunakan untuk melakukan enkripsi. Satu kunci yang lain adalah private key
yang bersifat sangat rahasia, tidak boleh didistribusikan, dan hanya penerima pesan
yang boleh mengetahui kunci ini. Private key digunakan untuk melakukan deskripsi
cipher text. Jika private key diketahui oleh pihak lain, maka pihak tersebut akan
dengan sangat mudah mendeskripsikan cipher text.
Algoritma RSA dan Elgamal merupakan algoritma yang memiliki tingkat keamanan
yang sangat baik. Algoritma RSA secara de facto bahkan menjadi algoritma asimetris
resmi yang digunakan pada banyak bidang. Tingkat keamanan algoritma RSA terletak
pada sulitnya memfaktorkan bilangan bulat menjadi dua buah bilangan prima,
sedangkan tingkat keamanan algoritma Elgamal terletak pada sulitnya menghitung
logaritma diskrit (Okeyinka, 2015).
Pada penelitian ini, algoritma RSA dan Elgamal akan digunakan untuk melakukan
modifikasi terhadap cipher text A, cipher text AB, dan cipher text B sebelum
dilakukan pengiriman dan melewati jalur komunikasi, agar pesan M tidak dapat
direkontruksi dengan meng-XOR-kan ketiga cipher text yang telah terjadi modifikasi.
Berdasarkan latar belakang yang telah diuraikan, maka dapat diambil beberapa
rumusan masalah yang ada sebagai berikut:
1. Perlunya mengatasi kelemahan algoritma one time pad pada skema three pass
protocol dengan memodifikasi cipher text yang dikirim dengan menggunakan
algoritma RSA dan Elgamal.
2. Perlunya meningkatan keamanan dari cipher text yang akan dikirim pada
skema three pass protocol.
1.3. Batasan Masalah
Beberapa batasan masalah dalam penelitian ini adalah sebagai berikut:
1. Algoritma yang digunakan untuk enkripsi dan deskripsi adalah algoritma one
time pad, RSA dan Elgamal.
2. Blum Blum Shub Generator sebagai pembangkit bilangan acak semu
digunakan untuk membangkitkan kunci acak one time pad dan bilangan k pada proses
pengenkripsian mengguanakan algoritma Elgamal.

Universitas Sumatera Utara


13

3. Pembangkitan bilangan prima yang diperlukan oleh algoritma RSA, Elgamal,


dan Blum Blum Shub Generator akan dibangkitkan dengan Algoritma Lehmann
Primality Test.
4. Skema three pass protocol akan dimodifikasi agar mengijinkan terjadinya
pertukaran kunci public.
5. Proses pengiriman pesan akan menggunakan skema three pass protocol yang
dimodifikasi.
6. Penelitian ini tidak mencari efisiensi waktu proses, tetapi pada tingkat
keamanan.
7. Perbandingan waktu proses akan tetap dilakukan antara kombinasi algoritma
pada penelitian ini (one time pad, RSA, dan Elgamal) dengan hanya algoritma one
time pada jalur three pass protocol.
8. Pengujian tingkat keamanan akan dilakukan dengan menganalisis teknik
kriptoanalis XOR, bruto force, ciphertext-only analysis, dan known-plaintext analysis.
9. Pesan yang diuji adalah pesan text.
1.4. Tujuan Penelitian
Adapun tujuan dari penelitian ini adalah:
1. Untuk memperbaiki cipher text hasil enkripsi dengan algoritma one time pad
pada skema three pass protocol dengan menggunakan algoritma RSA dan Elgamal.
2. Meningkatkan keamanan dari cipher text yang akan dikirim pada skema three
pass protocol.
1.5. Manfaat Penelitian
Adapun manfaat dari penelitian ini adalah:
1. Menambah wawasan dan kemampuan penulis dalam mengaplikasikan ilmu-
ilmu Teknik Informatika, khususnya dalam bidang kriptografi untuk proseskeamanan.
2. Menambah referensi bagi para peneliti dan akademisi dalam bidang
kriptografi.
2.1. Kriptografi
2.1.1. Pengertian Kriptografi
Kriptografi adalah ilmu mengenai teknik enkripsi dimana data diacak menggunakan
suatu kunci enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang yang tidak
memiliki kunci dekripsi. Dekripsi menggunakan kunci dekripsi untuk mendapatkan
data asli kembali. Proses enkripsi dilakukan menggunakan suatu algoritma dengan
beberapa parameter. Biasanya algoritma tidak dirahasiakan, bahkan enkripsi yang
mengandalkan kerahasiaan algoritma dianggap sesuatu yang tidak baik. Rahasia
terletak di beberapa parameter yang digunakan, jadi kunci ditentukan oleh parameter.
Parameter yang menentukan kunci dekripsi itulah yang harus dirahasiakan (parameter
menjadi ekuivalen dengan kunci) (Kromodimoeljo, 2010).
Dalam arti lain, kriptografi adalah seni dan ilmu dalam mengamankan pesan. Dalam
dunia kriptografi, pesan disebut plain text atau clear text. Proses untuk menyamarkan
pesan dengan cara sedemikian rupa untuk menyembunyikan isi aslinya disebut
enkripsi. Pesan yang telah dienkripsi disebut cipher text. Proses pengembalian sebuah
cipher text ke plain text disebut dekripsi.

Gambar 2.1. Proses Enkripsi dan Dekripsi Data


(Subandi, 2017)
Dalam kriptografi klasik, teknik enkripsi yang digunakan adalah enkripsi simetris
dimana kunci dekripsi sama dengan kunci enkripsi. Untuk kriptografi kunci publik,
diperlukan teknik enkripsi asimetris dimana kunci dekripsi tidak sama dengan kunci

Universitas Sumatera Utara


14

enkripsi. Enkripsi, dekripsi dan pembuatan kunci untuk teknik enkripsi asimetris
memerlukan komputasi yang lebih intensif dibandingkan enkripsi simetris, karena
enkripsi asimetris menggunakan bilangan-bilangan yang sangat besar. Namun,
walaupun enkripsi asimetris lebih besar dalam komplektifitas dibandingkan enkripsi
simetris, kriptografi kunci publik sangat berguna untuk key management dan digital
signature (Kromodimoeljo, 2010).
2.1.2. Tujuan Kriptografi
Ada empat tujuan mendasar dari kriptografi yang juga merupakan aspek keamanan
informasi (Munir, 2006), yaitu:
1. Privacy/Confidentiality
Aspek yang berhubungan dengan penjagaan isi informasi dari siapapun kecuali yang
memiliki otoritas atau kunci rahasia untuk membuka informasi yang telah dienkripsi.
2. Integrity
Aspek yang berhubungan dengan penjagaan dari perubahan data secara tidak sah dan
menjamin bahwa isi pesan tidak dapat diubah tanpa ijin.
3. Authentication
Aspek yang berhubungan dengan identifikasi atau pengenalan, baik secara kesatuan
sistem maupun informasi itu sendiri.
4. Non-repudiation
Usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman suatu informasi
oleh yang mengirimkan, atau harus dapat membuktikan bahwa suatu pesan berasal
dari seseorang, apabila dia menyangkal mengirim informasi tersebut.
2.1.3. Istilah-istilah pada Kriptografi
Berikut merupakan istilah-istilah yang dikenal pada kriptografi :

1. Algoritma Kriptografi
Sebuah algoritma yang digunakan untuk melakukan proses enkripsi terhadap plain
text menjadi cipher text dan proses dekripsi terhadap cipher text kembali menjadi
plain text dengan suatu aturan dan kunci tertentu. Sehingga pada suatu algoritma
kriptografi terdapat t

Universitas Sumatera Utara

Anda mungkin juga menyukai