8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
1/81
DAFTAR ISI
Halaman
Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak vi
Abstract vii
Daftar Isi viii
Daftar Tabel x
Daftar Gambar xi
Daftar Lampiran xii
Bab 1 Pendahuluan 1
1.1 Latar Belakang 1
1.2 Perumusan Masalah 2
1.3 Tujuan dan Manfaat 2
1.4 Manfaat Penelitian 3
1.5 Batasan Masalah 3
1.6 Metodologi Penelitian 3
1.7 Sistematika Penulisan 4
Bab 2 Tinjauan Pustaka 6
2.1 Pengenalan Kriptografi 6
2.1.1 Definisi 6
2.1.2 Terminologi 7
2.2 Sistem Kriptografi 13
2.2.1 Kriptografi Kunci Simetri 13
2.2.2 Kriptografi Kunci Asimetri 14
2.3 Kriptografi Kurva Eliptik 17
2.3.1 Pengenalan 17
2.3.2 Sistem Kriptografi Kurva Eliptik 19
2.3.3 Field 22
2.3.4 Group 242.4 Bilangan Prima 24
2.4.1 Metode Pengujian Bilangan Prima Rabin-Miller 25
2.4.2 Implementasi Pembangkit Bilangan Prima 26
2.5 Algoritma ElGamal 27
Bab 3 Analisis dan Perancangan 28
3.1 Analisis Sistem 28
3.1.1 Analisis Kriptografi Kurva Eliptik 29
3.1.2 Analisis Algoritma ElGamal 33
3.1.3 Analisis Metode Pembangkit Bilangan Prima Rabin-Miller 37
3.2 Perancangan Sistem 383.3 Perancangan DFD (Data Flow Diagram) 41
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
2/81
3.3.1 DFD Level 0 42
3.3.2 DFD Level 1 42
3.4 Perancangan User Interface 43
3.4.1 Tampilan Menu Utama 43
3.4.2 Tampilan Menu Proses Pembentukan Kunci 443.4.3 Tampilan Menu Proses Enkripsi 45
3.4.4 Tampilan Menu Proses Dekripsi 46
3.4.5 Tampilan Menu About 47
Bab 4 Implementasi dan Pengujian 48
4.1 Implementasi Sistem 48
4.1.1 Spesifikasi Kebutuhan Perangkat Keras 48
4.1.2 Spesifikasi Kebutuhan Perangkat Lunak 49
4.2 Hasil Implementasi dan Pengujian 49
4.2.1 Hasil Enkripsi 49
4.2.2 Hasil Dekripsi 514.3 Tampilan Sistem 52
4.3.1 Tampilan Awal Aplikasi ElGamal Elliptic Curve Cryptosystem 53
4.3.2 Tampilan Form Pembentukan Kunci pada Aplikasi ElGamal 53
Elliptic Curve Cryptosystem
4.3.3 Tampilan Form Enkripsi pada Aplikasi Elgamal Elliptic Curve 55
Cryptosystem
4.3.4 Tampilan Form Dekripsi pada Aplikasi ElGamal Elliptic Curve 61
Cryptosystem
4.3.5 Tampilan Form About pada Aplikasi ElGamal Elliptic Curve 65
Cryptosystem
Bab 5 Kesimpulan dan Saran 66
5.1 Kesimpulan 66
5.2 Saran 66
Daftar Pustaka 68
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
3/81
DAFTAR TABEL
Nomor
Tabel
Nama Tabel Halaman
3.1
3.2
3.3
4.1
4.2
4.3
Nilai Quadratic Residue Modulo 17 (QR17)
Nilai Elemen E17(1,1)
Konversi Karakter ke Kode ASCII
Spesifikasi Kebutuhan Perangkat Keras untuk Implementasi
Hasil Enkripsi
Hasil Dekripsi
30
31
35
48
50
51
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
4/81
DAFTAR GAMBAR
Nomor
Gambar
Nama Gambar Halaman
2.12.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
3.1
3.23.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
3.12
4.1
4.2
4.3
4.4
4.54.6
4.7
4.8
4.9
4.10
4.11
4.12
4.13
4.14
4.154.16
Plainteks berupa Teks dan CipherteksnyaPlainteks berupa Gambar dan Cipherteksnya
Enkripsi Data Tertentu di dalam Arsip Basis Data
(a) Skema Enkripsi dan Dekripsi
(b) Contoh Ilustrasi Enkripsi dan Dekripsi
Skema Kriptografi Simetri
Skema Kriptografi Asimetri
Sebuah Surat yang Dibubuhi Tanda Tangan Digital
Contoh Kurva Eliptik untuk Persamaan y2= x3 x
Contoh Kurva Eliptik untuk Persamaan y2= x
3+ x + 1
Tahapan Proses Enkripsi ElGamal Kriptografi Kurva Eliptik
Tahapan Proses Dekripsi ElGamal Kriptografi Kurva EliptikFlowchart Pembentukan Kunci Kriptografi Kurva Eliptik
Flowchart Enkripsi Kriptografi Kurva Eliptik ElGamal
Flowchart Dekripsi Kriptografi Kurva Eliptik ElGamal
DFD Level 0
DFD Level 1 Proses Enkripsi dan Dekripsi
Tampilan Awal Aplikasi ElGamal Elliptic Curve Cryptosystem
Tampilan Menu Proses Pembentukan Kunci Aplikasi ElGamal
Elliptic Curve Cryptosystem
Tampilan Menu Proses Enkripsi Aplikasi ElGamal Elliptic
Curve Cryptosystem
Tampilan Menu Proses Dekripsi Aplikasi ElGamal Elliptic
Curve Cryptosystem
Tampilan Form Mengenai Aplikasi
Tampilan Awal Aplikasi ElGamal Elliptic Curve Cryptosystem
Tampilan Form Pembentukan Kunci Aplikasi ElGamal Elliptic
Curve Cryptosystem
Tampilan Form Pembentukan Kunci Setelah Semua Data
Dimasukkan
Tampilan Form Enkripsi pada Aplikasi ElGamal Elliptic Curve
Cryptosystem
Langkah 1 pada Proses EnkripsiLangkah 2 pada Proses Enkripsi
Langkah 3 pada Proses Enkripsi
Langkah 4 pada Proses Enkripsi
Langkah 5 pada Proses Enkripsi
Langkah 6 pada Proses Enkripsi
Tampilan Awal Form Dekripsi pada Aplikasi ElGamal Elliptic
Curve Cryptosystem
Langkah 1 dari Proses Dekripsi
Langkah 2 dari Proses Dekripsi
Langkah 3 dari Proses Dekripsi
Langkah 4 dari Proses DekripsiTampilan Form About pada Aplikasi ElGamal Elliptic Curve Cryptosystem
89
10
12
14
15
16
18
18
34
3639
40
41
42
42
43
44
45
46
47
53
54
55
56
5758
58
59
60
60
61
62
63
64
6465
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
5/81
DAFTAR LAMPIRAN
Halaman
A.ListingProgram A-1
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
6/81
BAB I
PENDAHULUAN
1.1 Latar Belakang
Keamanan merupakan aspek yang sangat penting dalam berkomunikasi, kerahasiaan
data atau informasi harus dapat dijaga dari pihak pihak yang tidak berwenang
sehingga data atau informasi tersebut dapat terkirim kepada penerima yang
semestinya. Sejak zaman dahulu, manusia telah banyak menciptakan cara untuk
menjaga keamanan dan keutuhan pesan yang dikirim pada pihak yang berhak
menerimanya, salah satunya adalah dengan menggunakan penyandian. Penyandian
sendiri adalah proses enkripsi dan deskripsi terhadap pesan yang akan dikirimkan.
Ada berbagai cara untuk melakukan penyandian dan sudah ada sejak dulu, ada
yang menggunakan besar diameter kayu sebagai kunci, sebuah pita lantas ditulis dandigulung pada kayu tersebut dan terciptalah sebuah metode untuk menyandikan pesan
dengan menggunakan kayu sebagai kuncinya. Semakin berkembangnya peradaban
membuat cara (algoritma) yang digunakan semakin berkembang. Salah satunya adalah
kriptografi kurva eliptik yang dicetuskan oleh Neal Koblitz dan Victor S. Miller pada
tahun 1985.
Kriptografi kurva eliptik mendasarkan keamanannya pada permasalahan
matematis kurva eliptik yang berbeda dengan persamalahan matematis logaritma
diskrit dan pemfaktoran bilangan bulat biasa karena tidak ada algoritma waktu
subeksponensial yang diketahui untuk memecahkan permasalahan matematis
logaritma diskrit kurva eliptik (Elliptic Curve Discrete Logarithm Problem). Karena
alasan tersebutlah maka algoritma kriptografi kurva eliptik mempunyai keuntungan
jika dibandingkan dengan algoritma kunci publik lainnya yaitu dalam hal ukuran
panjang kunci yang lebih pendek tetapi memiliki tingkat keamanan yang sama.
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
7/81
Elliptic Curve Discrete Logarithm Problem (ECDLP) pada implementasinya
mempunyai tiga buah protokol yaitu Elliptic Curve Digital Signature Algorithm
(ECDSA), Elliptic Curve Diffie-Hellman (ECDH) dan Elliptic Curve ElGamal
(ECElGamal)[8]. Untuk skripsi ini akan digunakan salah satu dari tiga protokol
tersebut yaitu kriptografi kurva eliptik elgamal (ElGamal ECC), yang menggunakan
algoritma ElGamal sebagai algoritma untuk proses enkripsi dan kriptografi kurva
eliptik sebagai proses menghasilkan kunci publik, selain itu untuk pembangkit
bilangan primanya akan digunakan metode Rabin-Miller.
1.2 Perumusan Masalah
Salah satu hal yang menyebabkan kriptografi kurva eliptik kurang populer
adalah karena kerumitannya dan banyaknya operasi matematis yang
berhubungan dengan titik-titik pada kurva eliptik oleh karena itu perlu
dikaji bagaimana menyederhanakan kriptografi kurva eliptik ini sehingga
dapat mudah digunakan dan dipelajari. Selain itu hal lain yang
menyebabkan kriptografi kurva eliptik kurang populer adalah lamanya
proses enkripsi dekripsi sehinggga perlu dilakukan analisis performansi
waktu proses.
1.3 Tujuan dan Manfaat
Tujuan dari penelitian ini adalah membuat sebuah aplikasi keamanan yang
mengimpelementasikan kriptografi kurva eliptik.
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
8/81
1.4 Manfaat Penelitian
Manfaat dari penelitian ini adalah:
1. Dapat menambah pengetahuan tentang kriptografi kurva eliptik2. Dapat mengetahui tingkat keamanan dan efektifitas kriptografi kurva eliptik
1.5 Batasan Masalah
Berikut adalah masalah masalah yang akan dibatasi dalam pengerjaan skripsi ini:
1. Kriptografi kurva eliptik yang digunakan hanya menggunakan medan berhingga(finite field) Fp, algoritma yang digunakan untuk proses enkripsi adalah ElGamal
dan pembangkit bilangan prima akan menggunakan metode Rabin Miller.
2. Bahasa pemrograman yang digunakan adalahMicrosoft Visual Basic.3. Informasi yang dienkripsi hanya berupafileteks.4. Kurva eliptik 2 = 3 + + () yang digunakan dibatasi hanya
menggunakan nilai a = 1 dan b = 1 sehingga kurva nya menjadi 2 = 3 + +
1 ()5. Bilangan prima yang dibangkitkan dengan metode pembangkitan bilangan prima
Rabin-Miller dibatasi hanya sebesar dua digit.
1.6 Metodologi Penelitian
Dalam penelitian ini, tahapan-tahapan yang akan dilalui adalah sebagai berikut:
a. Studi LiteraturMetode ini dilaksanakan dengan melakukan studi kepustakaan yang relevan serta
buku-buku maupun artikel-artikel atau e-book dan juga jurnal internasional yang
didapatkan melalui internet.
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
9/81
b. AnalisisPada tahap ini digunakan untuk mengolah data yang ada dan kemudian melakukan
analisis terhadap hasil studi literatur yang diperoleh sehingga menjadi suatu
informasi.
c. Perancangan Perangkat LunakPada tahap ini, digunakan seluruh hasil analisa terhadap studi literatur yang
dilakukan untuk merancang perangkat lunak yang akan dihasilkan. Dalam tahapan
ini juga dilakukan perancangan model antarmuka serta proses kerja sistem untuk
memudahkan dalam proses implementasi.
d. Implementasi dan Pengujian SistemPada tahap ini dilakukan implementasi perangkat lunak yang sudah dibangun dan
dilakukan pengujian pada perangkat lunak untuk mengetahui seberapa besar
tingkat keamanan, lama enkripsi dan integritas data.
1.7 Sistematika Penulisan
Sistematika penulisan skripsi ini terdiri dari beberapa bagian utama, sebagai berikut:
BAB 1: PENDAHULUAN
Bab ini merupakan penjelasan mengenai latar belakang pemilihan topik penelitian
Implementasi Kriptografi Kurva Eliptik dengan Algoritma ElGamal dan Metode
Pembangkitan Bilangan Prima Rabin-Miller, rumusan masalah, batasan masalah,
tujuan penelitian, manfaat penelitian, metode penelitian serta sistematika penulisan.
BAB 2: TINJAUAN PUSTAKA
Bab ini akan menjelaskan teori-teori yang berkaitan dengan kriptografi kurva eliptik,
operasi perhitungan pada titik, algoritma kriptografi ElGamal, serta metode
pembentukan bilangan prima Rabin Miller.
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
10/81
BAB 3: ANALISIS DAN PERANCANGAN SISTEM
Bab ini akan menjabarkan tentang analisis kebutuhan untuk menghasilkan suatu
rancang bangun yang pada tahap selanjutnya diimplementasikan dengan bahasa
pemrograman.
BAB 4: IMPLEMENTASI DAN PENGUJIAN SISTEM
Bab ini berisikan sejumlah informasi yang berkaitan dengan implementasi sistem hasil
perancangan serta analisis kinerja sistem berdasarkan data yang diperoleh.
BAB 5: KESIMPULAN DAN SARAN
Bab ini akan memuat kesimpulan secara umum dari uraian pada bab - bab
sebelumnya, serta saran yang berguna untuk pengembangan lebih lanjut pada masa
yang akan datang.
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
11/81
BAB II
TINJAUAN PUSTAKA
2.1 Pengenalan Kriptografi
2.1.1 Definisi
Jika seseorang bertukar pesan (misalnya surat) dengan orang lain, maka orang tersebut
tentu ingin pesan yang dikirim sampai ke pihak yang dituju dengan aman. Pengertian
aman di sini sangat luas. Aman bisa berarti bahwa selama pengiriman pesan, pesan
tersebut tidak dibaca oleh orang yang tidak berhak. Sebab, mungkin saja pesan yang
dikirim berisi sesuatu yang rahasia sehingga jika pesan rahasia dibaca oleh pihak
lawan atau pihak yang tidak berkepentingan, maka bocorlah kerahasiaan pesan yang
dikirim. Ini adalah masalah keamanan pesan yang dinamakan kerahasiaan
(confidentialityatauprivacy). [4]
Aman bisa juga berarti bahwa pesan yang dikirim sampai dengan utuh ke
tangan penerima, artinya isi pesan tidak diubah atau dimanipulasi selama pengiriman
oleh pihak ketiga. Di sisi penerima pesan, tentu ingin memastikan bahwa pesan yang
diterima adalah pesan yang masih asli, bukan pesan yang sudah ditambah-tambah atau
dikurangi. Ini adalah masalah keamanan pesan yang disebut integritas data (data
integrity). Selain itu, penerima yakin bahwa pesan tersebut memang benar berasal dari
pengirim yang sebenarnya, bukan dari orang lain yang menyamar seperti si pengirim,
dan pengirim pun yakin bahwa orang yang dikirimi pesan adalah orang yang
sesungguhnya. Ini adalah masalah keamanan pesan yang dinamakan otentikasi
(authentication).[4]
Sebagai seorang penerima pesan, tentu ingin memastikan kelak pengirim pesan
tidak membantah pernah mengirim pesan. Ini adalah masalah keamanan yang disebut
penyangkalan (repudiation). Zaman sekarang, banyak orang yang membantah telah
mengirim atau menerima pesan. Padahal penerima yakin bahwa memang menerima
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
12/81
pesan dari orang tersebut. Jika pengirim membantah telah mengirim pesan, maka
perlu dibuktikan ketidakbenaran penyangkalan tersebut (non-repudiation).[4]
Keempat masalah keamanan yang disebutkan di atas, yaitu kerahasiaan,
integritas data, otentikasi dan penyangkalan dapat diselesaikan dengan menggunakan
kriptografi. Kriptografi tidak hanya menyediakan alat untuk keamanan pesan, tetapi
juga sekumpulan teknik yang berguna.[9]
Kriptografi (cryptography) berasal dari Bahasa Yunani: cryptos artinya
secret (rahasia), sedangkan graphein artinya writing (tulisan). Jadi, kriptografi
berarti secret writing (tulisan rahasia)[5]. Ada beberapa definisi kriptografi yang
telah dikemukakan di dalam berbagai literatur, seperti:
1. Bruce Schneier di dalam bukunya Applied Cryptography menyatakan bahwa:Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan (Cryptography is
the art and science of keeping messages secure).[2]
2. Menezes, Alfred J., Paul C. van Oorschot dan Scott A. Vanstone dalam bukumereka Handbook of Applied Cryptography menyatakan bahwa: Kriptografi
adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan
dengan aspek keamanan informasi seperti kerahasiaan, integritas data serta
otentikasi.
2.1.2 Terminologi
Di dalam kriptografi, akan sering ditemukan berbagai istilah atau terminologi.Beberapa istilah yang penting untuk diketahui diberikan di bawah ini.
1. Plainteks dan Cipherteks.Pesan (message) adalah data atau informasi yang dapat dibaca dan dimengerti
maknanya. Nama lain untuk pesan adalah plainteks (plaintext) atau teks-jelas
(cleartext). Pesan dapat berupa data atau informasi yang dikirim (melalui kurir,
saluran telekomunikasi) atau yang disimpan di dalam media perekaman (kertas,
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
13/81
storage). Pesan yang tersimpan tidak hanya berupa teks, tetapi juga dapat
berbentuk citra (image), suara/bunyi (audio) dan video atau berkas biner lainnya.
Agar pesan tidak dapat dimengerti maknanya oleh pihak lain, maka pesan perlu
disandikan ke bentuk lain yang tidak dapat dipahami. Bentuk pesan yang tersandi
disebut cipherteks (ciphertext) atau kriptogram (cryptogram). Cipherteks harus
dapat ditransformasikan kembali menjadi plainteks semula agar pesan yang
dierima bisa dibaca. Gambar 2.1 dan 2.2 memperlihatkan contoh dari dua buah
plainteks, masing-masing berupa teks dan gambar, serta cipherteks yang
berkoresponden. [9]
(a) Plainteks (b) Cipherteks
(sumber: Munir, Rinaldi. 2006)
Gambar 2.1 Plainteks berupa Teks dan Cipherteksnya
(a) Plainteks (b) Cipherteks
(sumber: Munir, Rinaldi. 2006)
Gambar 2.2 Plainteks berupa Gambar dan Cipherteksnya
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
14/81
2. Pengirim dan penerimaKomunikasi data melibatkan pertukaran pesan antara dua entitas. Pengirim
(sender) adalah entitas yang mengirim pesan kepada entitas lainnya. Penerima
(receiver) adalah entitas yang menerima pesan. Entitas di sini dapat berupa orang,
mesin (komputer), kartu kredit, dan sebagainya. Jadi, orang bisa bertukar pesan
dengan orang lainnya (contoh: Alice berkomunikasi dengan Bob), sedangkan di
dalam jaringan komputer, mesin (komputer) berkomunikasi dengan mesin
(contoh: mesin ATM berkomunikasi dengan komputerserverdi bank).
Pengirim tentu menginginkan pesan dapat dikirim secara aman, yaitu ia yakin
bahwa pihak lain tidak dapat membaca isi pesan yang dikirim. Solusinya adalah
dengan cara menyandikan pesan menjadi cipherteks. [9]
3. Enkripsi dan dekripsiProses menyandikan plainteks menjadi cipherteks disebut enkripsi (encryption)
atau enciphering. Sedangkan, proses mengembalikan cipherteks menjadi plainteks
semula dinamakan dekripsi (decryption) atau deciphering. Enkripsi dan dekripsi
dapat diterapkan baik pada pesan yang dikirim maupun pada pesan tersimpan.
Istilah encryption of data in motion mengacu pada enkripsi pesan yang
ditransmisikan melalui saluran komunikasi, sedangkan istilah encryption of data
at-restmengacu pada enkripsi dokumen yang disimpan di dalam storage. Contoh
encryption of data in motionadalah pengiriman nomor PIN dari mesin ATM ke
komputer server di kantor bank pusat. Contoh encryption of data at-rest adalah
enkripsi filebasis data di dalam hard disk. Gambar 2.3 memperlihatkan enkripsifilebasis data, di mana enkripsi hanya dilakukan terhadap field-field tertentu saja
(Nama, Tinggi dan Berat). [9]
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
15/81
(sumber: Munir, Rinaldi. 2006)
Gambar 2.3 Enkripsi Data tertentu di dalam Arsip Basisdata
4. Cipherdan kunciAlgoritma kriptografi disebut juga cipher yaitu aturan untuk enciphering dan
deciphering, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi.
Beberapa cipher memerlukan algoritma yang berbeda untuk enciphering dan
deciphering.
Konsep matematis yang mendasari algoritma kriptografi adalah relasi antara
dua buah himpunan yaitu himpunan yang berisi elemen-elemen plainteks dan
himpunan yang berisi cipherteks. Enkripsi dan dekripsi merupakan fungsi yang
memetakan elemen-elemen antara kedua himpunan tersebut. Misalkan P menyatakan
plainteks dan C menyatakan cipherteks, maka fungsi enkripsi E memetakan P ke C,
E(P) = C
Dan fungsi dekripsi D memetakan C ke P,
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
16/81
D(C) = P
Karena proses enkripsi kemudian dekripsi mengembalikan pesan ke pesan asal, maka
kesamaan berikut harus benar,
D(E(P))= P [9]
Keamanan algoritma kriptografi sering diukur dari banyaknya kerja (work)
yang dibutuhkan untuk memecahkan cipherteks menjadi plainteksnya tanpa
mengetahui kunci yang digunakan. Kerja ini dapat diekivalenkan dengan waktu,
memori, uang, dan lain-lain. Semakin banyak kerja yang diperlukan, yang berarti juga
semakin lama waktu yang dibutuhkan, maka semakin kuat algoritma kriptografi
tersebut, yang berarti semakin aman digunakan untuk menyandikan pesan.
Jika keamanan kriptografi ditentukan dengan menjaga kerahasiaan
algoritmanya, maka algoritma kriptografinya dinamakan algoritma restricted.
Algoritma restricted mempunyai sejarah tersendiri di dalam kriptografi. Algoritma
restricted biasanya digunakan oleh sekelompok orang untuk bertukar pesan satu sama
lain. Mereka membuat suatu algoritma enkripsi yang hanya diketahui oleh anggota
kelompok itu saja. Tetapi, algoritma restricted tidak cocok lagi saat ini, sebab setiap
kali ada anggota kelompok keluar, maka algoritma kriptografi harus diganti lagi.
Kriptografi modern mengatasi masalah di atas dengan penggunaan kunci, yang
dalam hal ini algoritma tidak lagi dirahasiakan, tetapi kunci harus dijaga
kerahasiaannya. Kunci (key) adalah parameter yang digunakan untuk transformasi
enciphering dan deciphering. Kunci biasanya berupa string atau deretan bilangan.
Dengan menggunakan kunci K, maka fungsi enkripsi dan dekripsi dapat ditulissebagai
EK(P) = C dan DK(C) = P
dan kedua fungsi ini memenuhi
DK(EK(P)) = P
Gambar 2.4(a) berikut memperlihatkan skema enkripsi dan dekripsi dengan
menggunakan kunci, sedangkan Gambar 2.4(b) mengilustrasikan enkripsi dan dekripsi
terhadap sebuah pesan. [9]
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
17/81
(sumber: Munir, Rinaldi. 2006)
Gambar 2.4(a) Skema Enkripsi dan Dekripsi,
(b) Contoh Ilustrasi Enkripsi dan Dekripsi Pesan
2.2 Sistem Kriptografi
Kriptogafi membentuk sebuah sistem yang dinamakan sistem kriptografi. Sistemkriptografi (cryptosystem) adalah kumpulan yang terdiri dari algoritma kriptografi,
semua plainteks dan cipherteks yang mungkin dan kunci. Di dalam sistem kriptografi,
cipherhanyalah salah satu komponen saja. [9]
Berdasarkan kunci yang digunakan untuk enkripsi dan dekripsi, kriptografi
dapat dibedakan menjadi kriptografi kunci-simetri (symmetric-key cryptography) dan
kriptografi kunci-asimetri (asymmetric-key cryptography). [7]
2.2.1 Kriptografi Kunci Simetri
Pada sistem kriptografi kunci-simetri, kunci untuk enkripsi sama dengan kunci untuk
dekripsi, oleh karena itulah dinamakan kriptografi simetri. Istilah lain untuk
kriptografi kunci-simetri adalah kriptografi kunci privat (private-key cryptography),
kriptografi kunci rahasia (secret-key cryptography). Sistem kriptografi kunci-simetri
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
18/81
(atau disingkat menjadi kriptografi simetri saja), mengasumsikan pengirim dan
penerima pesan sudah berbagi kunci yang sama sebelum bertukar pesan. Keamanan
sistem kriptografi simetri terletak pada kerahasiaan kuncinya. Kriptografi simetri
merupakan satu-satunya jenis kriptografi yang dikenal dalam catatan sejarah hingga
pada tahun 1976. Beberapa algoritma kriptografi modern yang termasuk ke dalam
sistem kriptografi simetri, diantaranya adalah Data Encryption Standard (DES),
Blowfish, Twofish, Triple-DES, International Data Encryption Standard (IDEA),
Serpent, dan yang terbaru adalahAdvanced Encryption Standard(AES). [9]
Secara umum, cipher yang termasuk ke dalam kriptografi simetri beroperasi
dalam mode blok (block cipher), yaitu setiap kali enkripsi/dekripsi dilakukan terhadap
satu blok data (yang berukuran tertentu), atau beroperasi dalam mode aliran (stream
cipher), yaitu setiap kali enkripsi/dekrisi dilakukan terhadap satu bit atau satu byte
data. Aplikasi kriptografi sismetri yang utama adalah melindungi kerahasiaan data
yang dikirim melalui saluran tidak aman dan melindungi kerahasiaan data yang
disimpan pada media yang tidak aman. Kelemahan dari sistem ini adalah baik
pengirim maupun penerima pesan harus memiliki kunci yang sama, sehingga pengirim
pesan harus mencari cara yang aman untuk memberitahukan kunci kepada penerima
pesan. Gambaran skema kriptografi simetri dapat dilihat pada gambar 2.5:
(sumber: Munir, Rinaldi. 2006)
Gambar 2.5 Skema Kriptografi Simetri
2.2.2 Kriptografi Kunci Asimetri
Jika kunci enkripsi tidak sama dengan kunci untuk dekripsi, maka kriptografinya
dinamakan sistem kriptografi asimetri. Nama lainnya adalah kriptografi kunci-publik
(public-key cryptography), sebab kunci untuk enkripsi tidak rahasia dan dapat
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
19/81
diketahui oleh siapapun (diumumkan ke publik), sementara kunci untuk dekripsi
hanya diketahui oleh penerima pesan (karena itu rahasia). Pada kriptografi jenis ini,
setiap orang yang berkomunikasi mempunyai sepasang kunci, yaitu kunci privat dan
kunci publik. Pengirim mengenkripsi pesan dengan menggunakan kunci publik. Hanya
penerima pesan yang dapat mendekripsi pesan karena hanya ia yang mengetahui kunci
privatnya sendiri. Gambaran dari skema kriptografi asimetri ini dapat dilihat pada
gambar 2.6:
(sumber: Munir, Rinaldi. 2006)
Gambar 2.6 Skema Kriptografi Asimetri
Contoh algoritma kriptografi kunci-publik diantaranya RSA, Elgamal, DSA,
NTRU dan sebagainya. [9]
Kriptografi kunci-publik dapat dianalogikan seperti kotak surat yang terkunci
dan memiliki lubang untuk memasukkan surat. Setiap orang dapat memasukkan surat
ke dalam kotak surat tersebut, tetapi hanya pemilik kotak yang dapat membuka kotak
dan membaca surat di dalamnya karena ia yang memiliki kunci. Keuntungan sistem
ini ada dua. Pertama, tidak ada kebutuhan untuk mendistribusikan kunci privat
sebagaimana pada sistem kriptografi simetri. Kunci publik dapat dikirim ke penerima
melalui saluran yang sama dengan saluran yang digunakan untuk mengirim pesan.
Saluran untuk mengirim pesan umumnya tidak aman.
Kedua, jumlah kunci dapat ditekan. Untuk berkomunikasi secara rahasia
dengan banyak orang tidak perlu kunci rahasia sebanyak jumlah orang tersebut, cukup
membuat dua buah kunci, yaitu kunci publik bagi para koresponden untuk
mengenkripsi pesan, dan kunci privat untuk mendekripsi pesan. Berbeda dengan
kriptografi kunci-simetris dimana jumlah kunci yang dibuat adalah sebanyak jumlah
pihak yang diajak berkorespondensi. Contoh penggunaan, misalkan jaringan komputer
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
20/81
menghubungkan kompuer karyawan di kantor cabang dengna komputer manajer di
kantor pusat. Seluruh kepala cabang diberitahukan bahwa kalalu mereka mengirim
laporan ke manajer di kantor pusat, mereka harus mengenkripsi laporan tersebut
dengan kunci publik manajer (kunci publik manajer diumumkan kepada seluruh
kepala cabang). Untuk mengembalikan laporan tersandi ke laporan semula, hanya
manajer yang dapat melakukan dekripsi, karena hanya dialah yang memegang kunci
privat. Selama proses transmisi cipherteks dari kantor cabang ke kantor pusat melalui
saluran komunikasi, mungkin saja data yang dikirim disadap oleh pihak ketiga, namun
pihak ketiga ini tidak dapat mengembalikan cipherteks ke plainteksnya karena tidak
mengetahui kunci untuk dekripsi.
Meski berusia relatif muda (sejak 1976), kriptografi kunci-publik mempunyai
kontribusi yang luar biasa dibandingkan dengan sistem kriptografi simetri. Kontribusi
yang paling penting adalah tanda-tangan digital pada pesan untuk memberikan aspek
keamanan otentikasi, integritas data dan nirpenyangkalan. Tanda-tangan digital adalah
nilai kriptografis yang bergantung pada isi pesan dan kunci yang digunakan. Pengirim
pesan mengenkripsi pesan (yang sudah diringkas) dengan kunci privatnya, hasil
enkripsi inilah yang dinamakan tanda-tangan digital. Tanda tangan digital dilekatkan
(embed) pada pesan asli. Penerima pesan memverifikasi tanda-tangan digital dengan
menggunakan kunci publik. Gambar 2.7 memperlihatkan sebuah surat elektronik yang
di bagian bawah sudah dibubuhi tanda-tangan digital (di antara BEGIN dan END
SIGNATURE). [9]
(sumber: Munir, Rinaldi. 2006)
Gambar 2.7 Sebuah Surat yang Dibubuhi Tanda-Tangan Digital
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
21/81
2.3 Kriptografi Kurva Eliptik
2.3.1 Pengenalan
The Elliptic Curce Cryptosystem (ECC) diperkenalkan pada tahun 1985 oleh Neal Koblitz
dan Victor Millerdari Universitas Washington. Kurva eliptik mempunyai masalah logaritma
yang terpisah sehingga sulit untuk dipecahkan. Kriptografi kurva eliptik termasuk sistem
kriptografi kunci publik yang mendasarkan keamanannya pada permasalahan matematis kurva
eliptik. Tidak seperti permasalahan matematis logaritma diskrit/ Discrete Logarithm Problem
(DLP) dan pemfaktoran bilangan bulat/ Integer Factorization Problem (IFP), tidak ada
algoritma waktu sub-eksponensial yang diketahui untuk memecahkan permasalahan
matematis algoritma diskrit kurva eliptik/ Elliptic Curve Discrete Logarithm Problem
(ECDLP). Oleh karena alasan tersebut algoritma kriptografi kurva eliptik mempunyai
keuntungan bila dibandingkan algoritma kriptografi kunci publik lainnya, yaitu dalam hal
ukuran kunci yang lebih pendek tetapi tingkat keamanan yang sama.[8]
Kurva eliptik juga digunakan pada beberapa algoritma pemfaktoran integer yang juga
memiliki aplikasi dalam kriptografi, seperti Lenstra Elliptic Curve Factorization. Algoritma
kunci publik didasarkan pada variasi perhitungan matematis yang terbilang sangat sulit
dipecahkan tanpa pengetahuan tertentu mengenai bagaimana perhitungan tersebut dibuat.
Pembuat algoritma menyimpan kunci rahasia dan menyebarkan kunci publiknya. Algoritma
kunci publik digunakan untuk mengenkripsi pesan dimana hanya pembuat algoritma yang
dapat memecahkannya. Sistem kunci publik awal, seperti algoritma RSA, menggunakan dua
bilangan prima yang sangat besar. Pengguna memilih dua bilangan prima acak yang besar
sebagai kunci rahasianya dan mempublikasikan hasil perhitungannya sebagai kunci publik.
Pemfaktoran bilangan bilangan besar yang sangat sulit dapat menjaga kerahasiaan kunci
rahasia itu dari orang lain.[1]
Persoalan lain menyangkut perhitungan aljabar ab = c, dimana a dan c diketahui.
Perhitungan semacam itu menyangkut bilangan kompleks atau real yang dapat dengan mudah
dipecahkan menggunakan algoritma. Tetapi dalam kumpulan bilangan terbatas yang besar,
menemukan solusi untuk perhitungan semacam itu sangat sulit dan dikenal sebagai discrete
logarithm problem. Kurva eliptik dapat ditulis dengan perhitungan matematis sebagai berikut
[10]:
y2= x3+ ax + b
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
22/81
Contoh kurva eliptik dapat dilihat pada gambar 2.8 dan gambar 2.9.
Gambar 2.8 Contoh Kurva Eliptik Untuk Persamaan y
2
= x
3
x
Gambar 2.9 Contoh Kurva Eliptik Untuk Persamaan y2= x
3+ x + 1
Kumpulan titik pada kurva dapat membentuk kumpulan abelian (dengan titik pada tak
terhingga sebagai elemen identitas). Jika nilai x dan y dipilih dari daerah terbatas yang besar,
solusi akan membentuk suatu kumpulan abelian terbatas. Permasalahan logaritma diskrit pada
kumpulan kurva eliptik tersebut dipercaya lebih sulit dibandingkan permasalahan yang sama
(perkalian bilangan tidak nol) dalam daerah terbatas. Selain itu, kunci dalam algoritma
kriptografi kurva eliptik dapat dipilih yang lebih pendek untuk keamanan yang cukup tinggi.
Sebagai salah satu sistem kripto kunci publik, belum ada pembuktian matematis untuk tingkat
kesulitanElliptic Curve Cryptosystemyang telah dipublikasikan sampai tahun 2006.[1]
Elliptic Curve Cryptosystem mempunyai panjang kunci 160 bit yang dipercaya
mempunyai tingkat keamanan yang setara dengan RSA 1024 bit. Elliptic Curve Cryptosystem
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
23/81
menggunakan parameter yang lebih kecil dibandingkan sistem algoritma konvensional.
Elliptic Curve Cryptosystemsendiri sudah dipelajari selama bertahun tahun. Kurva eliptik
menghasilkan bilangan prima Zpatau menghasilkan batasan GF(2n), merupakan sesuatu yang
menarik sebab digunakan untuk menyediakan suatu cara membangun algoritma kriptografi.
Elliptic Curve Cryptosystem mempunyai potensi untuk menyediakan kunci umum sistem
kripto yang lebih cepat dengan ukuran kunci yang lebih kecil.[1]
2.3.2 Sistem Kriptografi Kurva Eliptik
Kurva eliptik yang digunakan dalam kriptografi didefinisikan dengan menggunakandua tipe daerah terbatas : daerah karakteristik ganjil (Fp, dimana p > 3 adalah bilangan prima
yang besar) dan daerah karakteristik dua (F2m). Karena perbedaan itu menjadi tidak begitu
penting, kedua daerah terbatas tersebut dapat ditunjukkan sebagai Fq, dimana q = p atau q =
2m. Elemen dari Fpadalah integer (0
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
24/81
1. Penjumlahan (addition), jika a, b Fp, dimana a + b = r, dimana r adalah sisa pembagian a+ b dengan bilangan prima p, 0 1. Penjumlahan seperti ini disebutpenjumlahan modulo p (mod p).
2. Perkalian (multiplication), jika a,b Fp, maka a * b = s, dimana s adalah sisa pembagian a* b dengan bilangan prima p, 0 1. Perkalian seperti ini disebut perkalianmodulo p (mod p).
Bidang terbatas F2m biasa disebut dengan bidang terbatas biner (biner finite
field), dapat dipandang sebagai ruang vector dimensi m pada F2. Karena itu ada
himpunan yang beranggotakan m elemen {0,1,, 1} di dalam F2msedemikian rupa sehingga setiap a F2mdapat ditulis secara unik ke dalam bentuk:[2]
a = a00+ a11+ + am-11+ am, untuk ai{0,1}
Salah satu cara untuk merepresentasikan elemen elemen pada F2m adalah
dengan representasi basis polinomial. Pada representasi basis polynomial elemen pada
F2m merupakan polinomial dengan derajat lebih kecil dari m, dengan koefisien
bilangan 0 atau 1.[2]
{am-1xm-1+ + a2x
2+ a1x1+ a0x
0| ai: 0,1}
3 = 12 + 123 = 12 + 1 + 11 3 + 3
Persamaan kurva eliptik menggunakan rumus
2 =
3 +
+
yang
digambarkan diatas dimana a, b . disebut bilangan prima jika dan hanyajika p > 3 yang merupakan kelompok ganjil. Kurva eliptik (EC) dapat diubah menjadi
kelompok abelian dengan semua titik dari EC, yang meliputi ketidak-terbatasan O
dibawah kondisi 4a3+27b2 0 (mod p), jika (x1,y1) dan Q(x2,y2) ada pada kurvaeliptik. Titik yang ketiga R adalah P + Q = (x3,y3). Titik yang ketiga dari R bisa
digambarkan sebagai berikut : Pertama digambarkan sebuah garis yang melewati P
dan Q. cari persimpangan titik R pada kurva eliptik dan kemudian temukan titik
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
25/81
pemantulan dari R berkenaan dengan X-axis, yang merupakan penjumlahan dari P dan
Q.[2]
Salah satu ECC yang terkenal adalah Elliptic Curve Direcrete Logarithm
Problem(ECDLP) yang dinyatakan sebagai berikut : Diambil suatu bilangan prima p
dan tentukan persamaan kurva eliptik, kemudian xp menyatakan titik P yang
ditambahkan dengan dirinya sendiri sebanyak x kali, dan bila Q merupakan kelipatan
P maka Q = xP untuk suatu x. Keamanan dari ECDLP diperoleh dari sulitnya
mendapatkan x bila P dan Q diketahui, apalagi nilai P dan Q cukup besar.
Kompleksitas algoritma untuk mencarinya dengan eksponensial dan diperlukan
logaritma diskrit.[2]
Contoh : Diketahui p = 17, dipilih a = 1 dan b = 5 dan menggunakan
persamaan sebelumnya dengan Z17 menjadi 2 = 3 + + 5 (mod 17). Karenanyapenyamaan yang diberikan kurva eliptik:[1]
1. P = (3,1) dan Q(8,10) dua titik pada kurva eliptik. Kemudian P + Q = R(x3,y3) merupakanhasil perhitungan di bawah ini :
+ = (3,1) + (8,10)3 =2 12 1 2 1 2 =9
52 3 8
Karena 9 x 51(mod 17) = 9 x 7 (mod 17) = 12. Ini menghasilkanx3= (12
2-3-8)(mod 17) =14
3 = 1 + 95 (3 14) = 1 + 1 2 (11) =133 (17) = 3
Maka P + Q = R(14,3)
2. P = (3,1) kemudian 2P = P + P = (x3,y3). Perhitungannya seperti di bawah ini :2 = (3,1) + (3,1)
3 =312 +
21 2 21 =2 7 + 1
2 2 6 = 1 42 6 = 190(17) = 3
dan
3 = 1 + 312 +
21 (1 3) = 1 + 1 4(3 3) =1(17) = 16Maka 2P = (3,16)
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
26/81
2.3.3 Field
Field adalah kumpulan dari elemen, X dan Y, yang terdapat dalam fungsi.
Beberapa contoh darifieldadalah bilangan real, bilangan kompleks, bilangan rasional
dan bilangan integer modulo bilangan prima. Contoh yang terakhir ini merupakan
salah satu contoh finite field. Persyaratan dari sebuah field adalah penjumlahan dan
perkalian biasa, ditambah eksistensi dari inversi penjumlahan dan perkalian, kecuali 0
yang tidak mempunyai inversi perkalian. Dengan perkataan lain, sebuah field
mempunyai penjumlahan, pengurangan, perkalian dan pembagian. Operasi-operasi ini
selalu menghasilkan sebuah hasil yang terdapat di dalam field tersebut dengan
pengecualian pembagian dengan bilangan nol yang tidak terdefinisi.[1]
Bilangan kompleks dapat didefinisikan sebagai b.i + a dengan aturan reduksi t2
+ 1 = 0. Untuk melakukan perkalian bilangan kompleks, kita dapat menganggap t
sebagai unknown (tak dikenal), mengumpulkan bilangan pangkat dari t dan
menerapkan aturan reduksi untuk menyederhanakan hasilnya. Konstruksi ini berlaku
untuk aturan reduksi lainnya yang mengandung bilangan pangkat lebih besar dari t.
Koefisien dari bilangan pangkat dari t boleh berasal dari semua field, tetapi bila kita
mengambil integer modulop sebagai field-nya, kita mendapatkan sebuah finite field
dengan pmelemen, dimana m adalah derajat dari aturan reduksi. Tidak semua aturan
reduksi berlaku, kita harus menggunakan polinomial yang tidak dapat direduksi lagi
(irreducible polynomial). [1]
Sebagai catatan, ketika mengalikan elemen dari field sebenarnya dua aturanreduksi bekerja secara simultan, yaitu aturan untuk mereduksi koefisien modulo p dan
aturan untuk mereduksi pangkat besar dari t. Konstruksi ini bekerja untuk semua p dan
m, selama p adalah bilangan prima. Faktanya, setiap finite fielddapat dikonstruksikan
dengan cara ini. Fakta ini sebenarnya direferensikan kepada Galois fielddengan pm
elemen, dengan menggunakan notasi GF(pm). Bilangan prima p merupakan
karakteristik darifield.[1]
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
27/81
Representasi field menentukan bit-pattern mana yang akan digunakan untuk
merepresentasikan bermacam-macam elemen field. Representasi dipilih untuk
membuat operasi aritmatikafieldmenjadi efisien.[1]
2.3.4 Group
Groupmerupakan kumpulan dari field. Terdapat tiga buah grouputama yang sangat
disukai oleh para ahli kriptografi yaitu :[1]
1. Groupperkalian darifieldbilangan prima : GF(p).2. Groupperkalian darifinite fielddari karakteristik 2 : GF(2n).3. Elliptic Curve Grouppadafinite fieldF : EC(F).
Jika p adalah modulus dan bilangan prima, maka kompleksitas untuk mencari
logaritma diskrit pada GF(p) pada dasarnya sama dengan memfaktorisasi sebuah
integern, dimana n adalah pemangkatan dari dua buah bilangan prima yang hampir
sama panjang.[1]
2.4 Bilangan Prima
Bilangan prima adalah bilangan integer yang lebih besar dari satu yang memiliki
faktor bilangan satu dan bilangan itu sendiri. Dalam proses pembangkitan bilangan
prima, sering dihadapkan dengan beberapa masalah berikut ini :[8][9]
1. Berapa banyak bilangan prima yang tersedia ? Cukupkah untuk memberikankeamanan bagi kriptografi ? Ahli matematika telah menemukan bahwa jumlah
bilangan prima yang tersedia pada bilangan 512 bit adalah sekitar 10151.
2.
Mungkinkah dua orang atau lebih mendapatkan dua bilangan prima yang sama?Bila terdapat satu milyar (109) orang yang masing-masing berusaha mendapatkan
1000 bilangan prima, maka diperlukan hanya 1012bilangan prima yang berbeda
untuk memenuhinya. Bandingkan 1012 bilangan prima yang diperlukan dengan
10151bilangan prima yang tersedia. Bayangkan pula bila disediakan bilangan 1024
bit, maka akan tersedia bilangan prima sekitar 10305. Angka ini diperoleh dari
jumlah bilangan prima yang kurang dari n adalah sekitar n / (ln n).
3. Dapatkah seseorang membuat databaseyang dapat menyimpan seluruh bilanganprima dari 2 hingga kurang dari 21024? Dapat, tapi juga mustahil. Bila mempunyai
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
28/81
harddisk yang berkapasitas 1035 word (untuk mempermudah perhitungan,
dianggap setiap word sanggup menyimpan satu bilangan prima), maka akan
diperlukan sekitar 10270harddiskuntuk menyimpan seluruh bilangan prima yang
kurang dari 21024.
Selain itu, pemfaktoran bilangan prima juga tidak mudah. Bila mencari faktor
prima sedemikian sulit, bagaimana dapat membangkitkan bilangan prima dengan
mudah ? Triknya adalah pertanyaan ya / tidak. Apakah ini bilangan prima ? Menjawab
pertanyaan ini lebih mudah daripada menjawab pertanyaan yang lebih kompleks
seperti berapa faktor prima dari n ?[8][9]
Cara yang salah untuk mendapatkan bilangan prima adalah dengan
membangkitkan bilangan acak dan kemudian mencoba memfaktorkannya. Cara yang
benar adalah membangkitkan bilangan acak dan kemudian mencoba apakah
merupakan bilangan prima. Terdapat beberapa metode tes peluang prima, tes
menentukan apakah suatu bilangan termasuk bilangan prima atau bukan dengan
tingkat keyakinan tertentu. Jadi kita tidak yakin seratus persen bahwa bilangan yang
kita tes adalah betul-betul bilangan prima. [8][9]
2.4.1 Metode Pengujian Bilangan Prima Rabin-Miller
Metode untuk tes peluang prima yang paling sering digunakan adalah metode Rabin-
Miller. Algoritma ini dirancang oleh Michael Rabin dengan berdasarkan beberapa ide
dari Gary Miller. Algoritma pengetesan ini adalah seperti berikut :[8][9]1. Pilih bilangan acak p untuk dites.2. Hitung b, dimana b adalah banyaknya (p 1) dibagi 2 (yaitu, b adalah pangkat
terbesar dari 2, sedemikian sehingga 2b merupakan faktor dari p 1).
3. Kemudian hitung m, sedemikian sehingga p = 1 + 2b.m4. Pilih bilangan acak a sedemikian sehingga a lebih kecil daripada p.5. Set j = 0 dan set z = ammod p.6. Jika z = 1 atau jika z = p 1, maka p lolos tes dan mungkin bilangan prima.7. Jika j > 0 dan z = 1, maka p bukan bilangan prima.
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
29/81
8. Set j = j + 1. Bila j < b dan z p 1, set z = z2mod p dan kembali ke tahap 4. Jikaz = p 1, maka p lolos tes dan mungkin prima.
9. Jika j = b dan z p 1, maka p bukan bilangan prima.
2.4.2 Implementasi Pembangkit Bilangan Prima
Dalam dunia nyata, implementasi pembangkitan bilangan prima dapat berlangsung
dengan sangat cepat. Salah satu implementasinya adalah sebagai berikut:[8][9]
1. Bangkitkan bilangan acak p sepanjang n bit.2. Set bit Most Significant Bit (MSB) dan Least Significant Bit (LSB) nya ke 1.
Atau set bit paling kiri dan kanannya ke bit satu. Pengesetan bit MSB menjamin
panjang bit bilangan prima yang dihasilkan sesuai dengan yang diinginkan.
Pengesetan bit LSB menjamin agar bilangan acak adalah bilangan ganjil, karena
bilangan prima pasti harus bilangan ganjil.
3. Periksa apakah p tidak dapat dibagi bilangan prima kecil : 2,3,5,7,11, danseterusnya hingga bilangan prima tertinggi yang lebih kecil dari 256. Pemeriksaan
ini akan mengurangi 80 % peluang bahwa bilangan yang dipilih bukan bilangan
prima. Artinya bila bilangan yang dipilih tidak dapat dibagi bilangan prima kecil
di atas, peluang bilangan yang dipilih merupakan bilangan prima adalah 80 %.
Lakukan tesRabin Milleruntuk beberapa nilai a. Bila p lolos tes untuk satu
nilai a, bangkitkan nilai a lainnya. Pilih nilai a yang kecil agar perhitungan lebih cepat.
Lakukan tes dengan minimal 5 macam nilai a. Bila p gagal tes, bangkitkan p lainnya
dan ulangi langkah (2)
2.5 Algoritma ElGamal
Algoritma ElGamal diusulkan oleh Taher ElGamal pada tahun 1984. Keamanan dari
algoritma ini didasarkan pada kesulitan memecahkan masalah logaritma diskrit yang
terdapat dalam grup. Logaritma ini sendiri disebut logaritma diskrit karena nilainya
berhingga dan bergantung pada bilangan prima yang digunakan. Karena bilangan
prima yang digunakan adalah bilangan prima yang besar, maka sangat sulit atau
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
30/81
bahkan tidak mungkin menurunkan kunci privat dari kunci public walaupun diserang
dengan menggunakan sumber daya komputer yang besar.[3]
Berikut ini algoritma ElGamal yang diilustrasikan dua orang pengguna yaitu
Adi dan Budi:[3]
1. Diberikan p sebuah bilangan prima untuk Fp dan yang merupakan anggota Fp.2. Setiap pengguna memilih sebuah kunci rahasia a yang merupakan bilangan integer untuk
0a (p 2).
3. Setiap pengguna menghitung kunci publik =a(mod p) yang nilainya akan dikirim.4. Misalkan Adi akan mengirim pesan x Fp, maka dia harus memilih sebuah bilangan k
secara acak, yaitu k
F*p-1 dan mengirimkan pesan terenkripsi ke Budi dengan
persamaan:
( y1,y2) ( kmod p, x
kmod p)
5. Untuk melakukan dekripsi, Budi menghitung:y2( y1
aJ)
-1mod p
aJ merupakan kunci rahasia Budi.
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
31/81
BAB III
ANALISIS DAN PERANCANGAN
3.1 Analisis Sistem
Analisis dan perancangan merupakan salah satu tahap dari pembuatan sebuah sistem.
Tahapan tahapan tersebut saling berhubungan satu dengan yang lain dan membentuk
sebuah siklus.
Dari semua tahap tersebut, tahap analisis merupakan tahapan yang paling
penting, karena pada tahapan ini lah awal dari semua tahapan yang lain, kesalahan
pada tahap ini akan menyebabkan kesalahan yang berkelanjutan dan berdampak
sistemik pada tahapan selanjutnya. Proses analisis dalam pembuatan sebuah sistem
merupakan sebuah prosedur yang harus dilakukan untuk pemeriksaan masalah dan
pemecahan masalah yang timbul dalam sistem yang baru.
Tahapan perancangan merupakan tahapan setelah analisis. Perancangan
merupakan perumusan kebutuhan kebutuhan fungsional dan persiapan untuk
mengimpelementasikan dan menggambarkan sistem yang akan dibuat. Perancangan
sendiri dapat berupa penggambaran, perencanaan dan pembuatan sketsa atau
pengaturan dari beberapa elemen yang berbeda dan saling terpisah sehingga dapat
bergabung ke dalam satu kesatuan yang utuh dan berfungsi.
Tahapan perancangan sistem mempunyai dua buah tujuan, yaitu untuk
memenuhi kebutuhan seorang pengguna serta memberikan gambaran jelas dan
lengkap kepada si pembuat program (programmer) dan pengguna.
Enkripsi dalam kriptografi adalah proses dimana informasi/ data yang hendak
dikirim diubah menjadi bentuk yang hampir tidak dikenali sebagai informasi awal
karena telah diubah terlebih dahulu dengan menggunakan algoritma tertentu. Dekripsi
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
32/81
sendiri merupakan kebalikan dari proses enkripsi, yaitu proses mengubah kembali
bentuk yang tersamar tadi kembali menjadi informasi awal.
Pembangkit bilangan prima bertujuan untuk mendapatkan bilangan secara acak
sehingga dapat digunakan sebagai kunci dalam proses enkripsi dengan algoritma
tertentu. Ada banyak metode pembangkit bilangan prima, namun yang akan dibahas
adalah metode Rabin-Miller.
3.1.1 Analisis Kriptografi Kurva Eliptik
Kriptografi kurva eliptik merupakan metode kriptografi yang menggunakan titik
titik pada kurva eliptik sebagai kunci untuk melakukan proses enkripsi dan dekripsi.
Kekuatan dari kriptografi ini adalah banyaknya titik yang terdapat pada sebuah kurva
dan sulitnya mengetahui kurva yang digunakan.
Kriptografi kurva eliptik menggunakan dua kunci yaitu kunci publik dan kunci
privat. Kunci publik pada kriptografi kurva eliptik adalah sebuah titik pada kurva yangkita pilih sendiri, sedangkan kunci privatnya adalah angka yang bersifat acak. Kunci
publik diperoleh dengan melakukan operasi perkalian antara kunci privat dengan titik
P yang kita pilih dari kurva.
Adapun proses pembentukan kurva dan pembentukan kunci pada kriptografi
kuva eliptik adalah sebagai berikut:
1. Menentukan bilangan prima (p) dengan syarat p > 3 untuk FpBilangan prima yang akan digunakan pada tahap ini adalah bilangan prima
yang akan dihasilkan dari pembangkit bilangan acak Rabin-Miller. Adapun
apabila kita ingin menguji apakah suatu bilangan merupakan bilangan prima
atau tidak, maka dapat diuji dengan cara berikut ini:
Misalnya diambil bilangan prima 17, kemudian diambil nilai n = 2 kemudian
dihitung Greatest Common Divisor(GCD) atau pembagi bersama terbesar dari
17 adalah (13,2) = 1
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
33/81
1 1() = 2171 = 65536 1 (17)
maka 17 adalah bilangan prima karena tidak habis dibagi, sehingga didapat p =
17.
2. Menentukan bentuk persamaan kurva eliptikPersamaan umum untuk kurva eliptik adalah 2 = 3 + + ()
dimana nilai a, b dibuat secara acak untuk koefisiennya. Pada sistem ini,
sebagai salah satu batasan masalah, maka ditetapkan bahwa nilai a = 1 dan b =
1 sedangkan p kita gunakan 17, sehingga persaman kurva eliptik menjadi:
2 = 3 + + 1 (17)
Sehingga: 43 + 272 0 ()
4. 13 + 27. 12(17)
= 31 (mod 17)
= 14 0
Maka persamaan 2 = 3 + + 1 (17) merupakan persamaan kurva
eliptik.
3. Menentukan titik titik pada kurvaSetelah kurva eliptik didapatkan, maka kita perlu menentukan titik titik pada
kurva. Dari titik titik yang telah ditentukan tersebut, kemudian pilih salah
satu secara acak . Misalnya pada contoh di atas, bilangan prima p = 17,
selanjutnya kita cari elemen elemen grup eliptik 17 atas , dengan
= {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}. Namun sebelum
menentukan elemen elemen 17(1, 1), terlebih dahulu kita perlu mencari
quadratic residue modulo17 (17).
Tabel 3.1 Nilai Quadratic Residue Modulo 17 ()
2(17) 17
0 02(17) 0
1 12(17) 1
2 22(17) 4
3 32(17) 9
4 42(17) 16
5 52(17) 8
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
34/81
6 62(17) 2
7 72(17) 15
8 82(17) 13
9 92(17) 13
10 102(17) 1511 112(17) 2
12 122(17) 8
13 132(17) 16
14 142(17) 9
15 152(17) 4
16 162(17) 1
Berdasarkan Tabel 3.1 di atas, maka himpunan quadratic residue modulo 17
adalah 17 = {0, 1, 2, 4, 8, 9, 13, 15, 16}. Kemudian menentukan elemen grup
eliptik 17(1, 1)yang merupakan penyelesaian dari persamaan 2 = 3 +
+ 1 (17), untuk 17dan 2 17
Tabel 3.2 Nilai Elemen (, )
17 2 = 3 + + 1 (17) 2 17 (, ) 17(1,1)
0 1 Ya (0, 1) dan (0, 16)
1 3 Bukan -
2 11 Bukan -3 14 Bukan -
4 1 Ya (4, 1) dan (4, 16)
5 12 Bukan -
6 2 Ya (6, 6) dan (6, 11)
7 11 Bukan -
8 11 Bukan -
9 8 Ya (9, 5) dan (9, 12)
10 8 Ya (10, 5) dan (10, 12)
11 0 Ya (11, 0)
12 7 Bukan -
13 1 Ya (13, 1) dan (13, 16)
14 5 Bukan -
15 8 Ya (15, 5) dan (15, 12)
16 16 Ya (16, 4)
Berdasarkan tabel 3.2, maka misalnya untuk nilai x = 0, diperoleh 2 =
0.0.0 + 1.0 + 1 (17) = 1. Sehingga bila kita cek nilai 1 yang didapat di
tabel 3.1 maka ada dua nilai 17yang memenuhi yaitu 1 dan 16 maka titik
(x, y) nya adalah (0, 1) dan (0, 16). Cara yang sama diulang terus sehingga
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
35/81
didapatkan elemen elemen grup eliptik modulo 17 atas 17yaitu 17(1,1)=
{ (0, 1), (0, 16), (4, 1), (4, 16), (6, 6), (6, 11), (9, 5), (9, 12), (10, 5), (10, 12),
(11, 0), (13, 1), (13, 16), (15, 5), (15, 12), (16, 4), 0 }.
Jumlah titik pada kurva adalah 17 titik selain dari titik infinity(0). Setelah itu
kita pilih sebuah titik yang akan dijadikan kunci publik, misalnya kita pilih
titik P = (15, 12).
4. Membuat kunci privat 1 dan kunci privat 2Kunci privat 1 dan 2 ditentukan dengan nilai acak dimana nilai kunci tersebut
harus merupakan elemen dari {2, 3, p -1} dalam . Misalnya kita pilih
kunci privat 1 = 6 dan kunci privat 2 = 9.
5. Menghitung kunci publik 1 dan kunci publik 2Kunci publik dihitung oleh masing masing pengguna dengan melakukan
operasi perkalian titik antara titik P dengan kunci rahasia masing masing.
Misalnya pada pengguna 1, kunci privat 1 = 6 dan titik P = (15, 12) maka:
1 =1
= 6 (15, 12)
= (15, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12)
= (13, 16) + (15, 12) + (15, 12) + (15, 12) + (15, 12)
= (9, 5) + (15, 12) + (15, 12) + (15, 12)
= (9, 12) + (15, 12) + (15, 12)
= (4, 16) + (15, 12)
= (10, 5)Jadi kunci publik 1 adalah (10, 5)
Sedangkan pada pengguna 2, kunci privat 2 = 9 dan titik P = (15, 12) maka:
2 =2
= 9 * (15, 12)
= (15, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12)
+ (15, 12) + (15, 12)
= (13, 16) + (15, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12)+ (15, 12)
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
36/81
= (10, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12)
= (9, 5) + (15, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12)
= (9, 12) + (15, 12) + (15, 12) + (15, 12) + (15, 12)
= (10, 5) + (15, 12) + (15, 12) + (15, 12)
= (13, 1) + (15, 12) + (15, 12)
= (15, 5) + (15, 12)
= (4, 12)
Jadi kunci publik 2 adalah (4, 12).
3.1.2 Analisis Algoritma ElGamal
Pada umumnya algoritma ElGamal biasanya digunakan untuk tanda tangan digital,
namun seiring dengan perkembangan jaman, algoritma ElGamal juga dikembangkan
sehingga bisa digunakan untuk proses enkripsi dan dekripsi file. ElGamal kemudian
digunakan dalam berbagai perangkat lunak keamanan, kekuatan dari algoritma
ElGamal ini terletak pada kesulitan untuk menghitung logaritma diskrit.
Algoritma ElGamal terdiri dari tiga proses, proses pembangkitan kunci, proses
enkripsi dan proses dekripsi. Proses pembangkitan kunci dilakukan untuk memperoleh
kunci public yang kemudian akan digunakan pada proses enkripsi, hasil dari proses
enkripsi kemudian akan di dekripsi.
Selain dari kekuatannya, algoritma ini mempunyai kelemahan, yaitu cipherteks
yang dihasilkan bisa mempunyai panjang sampai dua kali lipat dari plainteksnya.Akan tetapi kelebihan lain dari algoritma ini adalah apabila kita mengenkripsi
plainteks yang sama berulang ulang, ternyata akan didapatkan cipherteks yang
berbeda beda untuk setiap kali enkripsi.
Adapun proses enkripsi dan dekripsi kriptografi kurva eliptik dengan algoritma
ElGamal adalah sebagai berikut:
1. Proses Enkripsi ElGamal pada Kriptografi Kurva EliptikTahapan tahapan dalam melakukan proses enkripsi ElGamal adalah:
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
37/81
Gambar 3.1 Tahapan Proses Enkripsi ElGamal Kriptografi Kurva Eliptik
Keterangan diagram:
1. Sebagai langkah awal, pengguna memilih sebuah angka acak yang akandijadikan kunci rahasia bangkitan (private1_gen) yang akan disimbolkan
dengan k. Nilai k dapat dipilih dalam interval k = {2, 3, p -1} dalam 17.
Kita misalkan kunci rahasia bangkitan yang kita pilih adalah 1.
2. Pengguna kemudian menghitung kunci rahasia bersama bangkitan (key1_gen)dengan cara:
Key1_gen = private1_gen * kunci publik 2
= 1 * (4, 12)
= (4, 12)
3.
Selanjutnya pengguna mengambil nilai absis dari key1_gen di atas. Karenanilai key1_gen adalah (4, 12) maka absisnya adalah 4, jadi xkey1_gen = 4.
4. Setelah semua langkah di atas selesai, pengguna sudah bisa mengenkripsipesan dengan menggunakan ketentuan:
C1 = k * P
C2 = m xkey1_gen (pesan yang akan dienkripsi di XOR kan dengan
xkey1_gen)
Pilih private1_gen
Hitung key1_gen dengan Kunci Publik 2
Ambil absis key1_gen (xkey1_gen)
Hitung cipherteks (C1, C2, C3, .)
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
38/81
Maka hasil yang didapat adalah C1 berupat titik, sedangkan C2, C3 dan
seterusnya berupa bilangan integer yang akan dikirim kepada pengguna 2.
Sebagai contoh misalnya pengguna 1 ingin mengirim pesan
KRIPTOGRAFI kepada pengguna 2, maka pesan tersebut harus
dikonversi terlebih dahulu dalam kode ASCII.
Tabel 3.3 Konversi Karakter ke Kode ASCII
CHAR ASCII (dec)
K 75
R 82
I 73P 80
T 84
O 79
G 71
R 82
A 65
F 70
I 73
Maka proses enkripsi dan cipherteks yang akan dihasilkan adalah:
C1 = k * P = 1 * (15, 12) = (15, 12)
C2 = m1 2 = 75 4 = 79
C3 = m2 2 = 82 4 = 86
C4 = m3 2 = 73 4 = 77
C5 = m4 2 = 80 4 = 84
C6 = m5 2 = 84 4 = 80
C7 = m6 2 = 79 4 = 75
C8 = m7 2 = 71 4 = 67
C9 = m8 2 = 82 4 = 86
C10= m9 2 = 65 4 = 69
C11= m10 2 = 70 4 = 66
C12= m11 2 = 73 4 = 77
Hasil enkripsinya adalah:
15 12 79 86 77 84 80 75 67 86 69 66 77
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
39/81
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
40/81
M1 = C2 xkey2_gen = 79 4 = 75 = K
M2 = C3 xkey2_gen = 86 4 = 82 = R
M3 = C4 xkey2_gen = 77 4 = 73 = I
M4 = C5 xkey2_gen = 84 4 = 80 = P
M5 = C6 xkey2_gen = 80 4 = 84 = T
M6 = C7 xkey2_gen = 75 4 = 79 = O
M7 = C8 xkey2_gen = 67 4 = 71 = G
M8 = C9 xkey2_gen = 86 4 = 82 = R
M9 = C10 xkey2_gen = 69 4 = 65 = A
M10= C11 xkey2_gen = 66 4 = 70 = F
M11= C12 xkey2_gen = 77 4 = 73 = I
dari hasil dekripsi tersebut, maka didapatlah plaintek yang semula yaitu
KRIPTOGRAFI
3.1.3 Analisis Metode Pembangkit Bilangan Prima Rabin-Miller
Metode pembangkitan bilangan prima Rabin-Miller merupakan salah satu
metode pembangkitan dan pengujian bilangan prima yang paling sering digunakan.
Metode ini dirancang oleh Michael Rabin dengan berdasarkan dari beberapa ide oleh
Gary Miller. Metode pengujiannya adalah sebagai berikut:
1. Pilih sebuah bilangan acak p untuk diuji2. Hitunglah b, dimana b adalah banyaknya (p 1) dibagi 2 (dimana b adalah
pangkat terbesar dari 2, sedemikian sehingga 2b merupakan faktor dari p 1)
3. Kemudian hitunglah m, sedemikian sehingga p = 1 + 2b. m4. Pilihlah sebuah bilangan acak a sedemikian sehingga a lebih kecil daripada p5. Tentukanlah j = 0 dan z = ammod p6. Jika z = 1 atau jika z = p 1, maka p lulus dari pengujian dan mungkin
merupakan bilangan prima
7. Jika j > 0 dan z = 1, maka p bukanlah bilangan prima8. Tentukan j = j + 1. Bila j < b dan z p 1, tentukan z = z2mod p dan kembali ke
poin 4. Jika z = p 1, maka p lulus dari pengujian dan mungkin prima
9.
Jika j = b dan z p 1, maka p bukan bilangan prima
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
41/81
Sebagai contoh misalnya kita pilih sebuah bilangan p = 37, maka p 1 = 37 1 =
36. Setelah itu kita pilih b = 2, karena 22 = 4 merupakan bilangan 2n terbesar yang
dapat membagi 36. 37 = 1 + 22.m atau 36 = 4.m sehingga m = 9. Pilih sebuah bilangan
a, misalkan a = 3. j = 0, z = 39mod 37 = 36. Jika z = 1 atau z = 36 maka p lulus dari
pengujian dan merupakan bilangan prima.
3.2 Perancangan Flowchart
Perancangan sistem dibuat untuk dapat mengetahui gambaran umum dari sistem yang
akan dibuat secara umum. Flowchart adalah metode untuk menggambarkan tahap
tahap penyelesaian suatu masalah beserta proses mengalirnya data dengan simbol
simbol tertentu yang mudah dipahami. Tujuan utama dari flowchart adalah untuk
menyederhanakan rangkaian proses proses yang terjadi pada sistem agar mudah
dipahami oleh pengguna. Oleh karena itu juga maka desain dari sebuah flowchart
harus ringkas, jelas dan padat. Diagram di bawah ini akan menerangkan proses yang
terjadi pada aplikasi ElGamal Elliptic Curve Crytosystem.
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
42/81
Mulai
Selesai
Input
bilangan prima
Bilangan
prima valid
Tidak
Ya
Hitung nilai Quadratic
Residue
Cari elemen Ep
Pilih nilai titik P
Tentukan kunci rahasia1
dan kunci rahasia2
Hitung nilai kunci publik
Output kunci publik
dan kunci privat
Flowchart Proses Pembentukan Kunci Kriptografi Kurva Eliptik
Gambar 3.3 Flowchart Pembentukan Kunci Kriptografi Kurva Eliptik
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
43/81
Mulai
Input
kunci publik
Input
pesan
Pilih nilai k
Hitung key1_gen
Ambil nilai x dari
key1_gen
Hitung nilai C1 dan C2
Output cipher
C1 dan C2
Selesai
Flowchart Proses Enkripsi Kriptografi Kurva Eliptik dengan Algoritma
ElGamal
Gambar 3.4 Flowchart Enkripsi Kriptografi Kurva Eliptik ElGamal
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
44/81
Mulai
Input
kunci privat
Input
cipher
Hitung key2_gen
Ambil nilai x dari
key2_gen
Hitung pesan asli
Output
pesan asli
Selesai
Flowchart Proses Dekripsi Kriptografi Kurva Eliptik dengan Algoritma
ElGamal
Gambar 3.5 Flowchart Dekripsi Kriptografi Kurva Eliptik ElGamal
3.3 Perancangan Data Flow Diagram (DFD)
Data Flow Diagram (DFD) adalah suatu diagram yang menggunakan notasi notasi
tertentu untuk menggambarkan arus data dari suatu sistem untuk memahami proses
yang terjadi secara logis, terstruktur, dan jelas. DFD juga merupakan alat bantu untuk
menggambarkan atau menjelaskan sistem yang sedang berjalan.
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
45/81
UserPesan
Nilai Input
Cipher
Pesan Asli
Kunci Privat
Kunci Publik
Hasil Perhitungan
0
Kriptografi Kurva Eliptik
dengan Algoritma
El Gamal
1.0
Proses Pembentukan
Kunci
2.0
Proses Enkripsi
3.0
Proses Dekripsi
User Kunci Privat
Kunci PublikNilai Input
PesanCipher
Cipher
Pesan Asli
Hasil Perhitungan
Hasil Perhitungan
Hasil Perhitungan
3.3.1 DFD Level 0
Gambar 3.6 DFD Level 0
3.3.2 DFD Level 1
Gambar 3.7 DFD Level 1 Proses Enkripsi dan Dekripsi
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
46/81
3.4 Perancangan User Interface
User interface dirancang sebagai bentuk komunikasi antara pengguna dengan
komputer, dan juga sebagai bentuk interaksi antara pengguna dengan komputer
menggunakan tampilan yang ada di layar komputer. Hal ini sangat penting karena
sangat mempengaruhi komunikasi dengan komputer, oleh karena itu desain user
interface haruslah seefektif dan seminimal mungkin. Efektif artinya tampilan tersebut
siap digunakan dan hasilnya sesuai dengan kebutuhan sedangkan minimal artinya
penggunaan tombol tombol, gambar dan tulisan tulisan yang tidak perlu dan bisa
membingungkan pengguna harus dihindarkan.
3.4.1 Tampilan Menu Utama
Berikut ini adalah rancangan tampilan awal dari Aplikasi ElGamal Elliptic Curve
Cryptosystem
Gambar 3.8 Tampilan Awal Aplikasi ElGamal Elliptic Curve Cryptosystem
LOGO
FASILKOMTI
APLIKASI ELGAMAL ELLIPTIC CURVECRYPTOSYSTEM DENGAN METODE PEMBANGKIT
BILANGAN PRIMA RABIN-MILLER
Pembentukan Kunci Proses Enkripsi Proses Dekripsi
12
3 4 5 6
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
47/81
Keterangan gambar 3.8 adalah sebagai berikut:
1. Nomor 1 adalah logo dari Fasilkomti USU2. Nomor 2 adalah label dari nama aplikasi3. Nomor 3 adalah labelshortcutuntuk menuju ke form pembuatan kunci4. Nomor 4 adalah labelshortcutuntuk menuju ke form proses enkripsi5. Nomor 5 adalah labelshortcutuntuk menuju ke form proses dekripsi6. Nomor 6 adalah labelshortcutuntuk menuju ke form mengenai aplikasi
3.4.2 Tampilan Menu Proses Pembentukan Kunci
Gambar 3.9 Tampilan Menu Proses Pembentukan Kunci Aplikasi ElGamal
Elliptic Curve Cryptosystem
Keterangan gambar 3.9 adalah sebagai berikut:
1. Nomor 1 adalah field dan tombol untuk mengeluarkan bilangan prima secaraacak ataupun memvalidasi bilangan prima yang kita masukkan dengan
menggunakan metode pembangkitan bilangan prima Rabin-Miller
LOGO
FASILKOMTI
APLIKASI ELGAMAL ELLIPTIC CURVECRYPTOSYSTEM DENGAN METODE PEMBANGKIT
BILANGAN PRIMA RABIN-MILLER
Bilangan prima p acak prima validasi prima
Hitung nilai elemen
hitung
Pilih titik P
Tentukan Kunci Privat
Kunci Rahasia 1
Kunci Rahasia 2
acak
Perhitungan Kunci Publikhitung
simpan semua data input dan tutup form
1
2
3
4
5
6
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
48/81
2. Nomor 2 adalah fielddan tombol untuk menghitung elemen elemen titik yangterdapat pada kurva eliptik dengan bilangan prima yang telah kita pilih
sebelumnya
3. Nomor 3 adalah dropdown field untuk memilih titik mana dari elemen elemenyang telah kita hitung untuk digunakan sebagai titik P pada proses pembentukan
kunci
4. Nomor 4 adalahfielddan tombol untuk memasukkan ataupun menghitung secaraacak sebuah angka untuk dijadikan sebagai kunci rahasia antara pengguna 1 dan
pengguna 2
5. Nomor 5 adalahfield dan tombol untuk menghitung kunci publik yang didapatkandari kunci rahasia dan titik P, detil perhitungan akan ditunjukkan dalam field di
bawahnya
6. Nomor 6 adalah tombol untuk menyimpan parameter yang diperlukan seperti nilaip, kunci rahasia, kunci publik dan titik P pada memori sementara untuk kemudian
digunakan pada proses enkripsi dan dekripsi
3.4.3 Tampilan Menu Proses Enkripsi
Gambar 3.10 Tampilan Menu Proses Enkripsi Aplikasi ElGamal Elliptic Curve
Cryptosystem
LOGO
FASILKOMTI
APLIKASI ELGAMAL ELLIPTIC CURVECRYPTOSYSTEM DENGAN METODE PEMBANGKIT
BILANGAN PRIMA RABIN-MILLER
Proses Buka File Teks
1
2
3
45 4
6
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
49/81
Keterangan gambar 3.10 adalah sebagai berikut:
1. Nomor 1 merupakan field yang akan menuliskan langkah langkah yangdiperlukan untuk melakukan proses enkripsi secara jelas agar pengguna dapat
memahami proses enkripsi pada kriptografi kurva eliptik ElGamal
2. Nomor 2 merupakan field yang akan menuliskan detil proses perhitungan untukenkripsi plainteks menjadi cipherteks
3. Nomor 3 merupakan field yang akan menunjukkan plainteks apa yang terdapatpada file teks yang kita masukkan
4. Nomor 4 merupakan tombol yang akan menjalankan proses enkripsi plainteksmenjadi cipherteks
5. Nomor 5 merupakan shortcutuntuk membuka window pemilihan file teks untukdimasukkan ke dalam aplikasi
6. Nomor 6 merupakan tombol navigasi 2 arah untuk melanjutkan langkah langkah proses enkripsi
3.4.4 Tampilan Menu Proses Dekripsi
Gambar 3.11 Tampilan Menu Proses Dekripsi Aplikasi ElGamal Elliptic Curve
Cryptosystem
LOGO
FASILKOMTI
APLIKASI ELGAMAL ELLIPTIC CURVECRYPTOSYSTEM DENGAN METODE PEMBANGKIT
BILANGAN PRIMA RABIN MILLER
Proses
1
2
3
4
5
Daftar Nilai Variabel yang digunakan:KP1 = KP2 =
P = p =
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
50/81
Keterangan gambar 3.11 adalah sebagai berikut:
1. Nomor 1 merupakan field yang akan menuliskan langkah langkah yangdiperlukan untuk melakukan proses dekripsi secara jelas agar pengguna dapat
memahami proses dekripsi pada kriptografi kurva eliptik ElGamal
2. Nomor 2 merupakan field yang akan menuliskan detil proses perhitunganuntuk dekripsi cipherteks menjadi plainteks
3. Nomor 3 merupakanfield yang akan menunjukkan cipherteks yang tersimpansecara otomatis dari proses enkripsi sebelumnya
4. Nomor 4 merupakan tombol yang akan menjalankan proses dekripsi cipherteksmenjadi plainteks
5. Nomor 5 merupakan tombol navigasi 2 arah untuk melanjutkan langkah langkah proses dekripsi
3.4.5 Tampilan Menu About
Gambar 3.12 Tampilan Form Mengenai Aplikasi
Mengenai Aplikasi
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
51/81
BAB IV
IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi Sistem
Setelah tahap analisis dan perancangan selesai dilakukan, maka tahap selanjutnya dan
merupakan tahap yang terakhir dimana setelah implementasi maka akan dilakukan
pengujian terhadap sistem. Apabila analisis dan perancangan sebelumnya telah
dilakukan dengan baik, maka hasilnya akan sangat membantu kita dalam proses
implementasi untuk mendapatkan sistem yang sesuai dengan yang kita inginkan. Dari
proses implementasi ini juga kita bisa mengetahui apakah sistem yang kita buat
memuaskan atau tidak.
4.1.1 Spesifikasi Kebutuhan Perangkat Keras
Untuk membangun aplikasi ElGamal Elliptic Curve Cryptosystem dengan Metode
Pembangkitan Bilangan Prima Rabin Miller ini digunakan perangkat keras dengan
spesifikasi sebagai berikut
Tabel 4.1 Spesifikasi Kebutuhan Perangkat Keras untuk Implementasi
Spesifikasi Komputer ImplementasiCPU : AMD X2 Dual Core 1.20 GHz
RAM : 4 Giga Byte
Hard Disk : 500 Giga Byte
Monitor : 10
Sistem Operasi Windows 7 Ultimate
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
52/81
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
53/81
5. KrIpToGrAfI KuRvA ElIpTiK TeRmAsUk Ke DaLaM SiStEm KrIpToGrAfIKuNcI PuBlIk YaNg MeNdAsArKaN KeAmAnAnNyA PaDa PeRmAsAlAhAn
MaTeMaTiS KuRvA ElIpTiK DaN KeSuLiTaN UnTuK MeNgHiTuNg
PeRsOaLan LoGaRiTmA DiSkRiY 1234567890!@#$%^&*()_+
Tabel 4.2 Hasil Enkripsi
No. Plainteks Nilai p Titik P KR 1 KR 2 Cipherteks
1 TES 1.txt 41 34, 15 23 19 3 21 80 73 82 75 79 84 92 73 9093 82
2 TES 2.txt 97 24, 47 15 45 95 66 93 68 95 70 66 89 81 6887 80 95 54 87 82 87 90 87 9454 69 83 88 95 54 91 83 88 79
87 88 82 95 93 87 88 54 48 5491 83 88 79 83 91 84 67 88 7995 93 87 88 54 70 83 69 87 88
3 TES 3.txt 22, 76 23,74 71 14 22 13 93 100 127 102 98 121113 100 119 112 127 54 102115 100 98 119 123 119 54 125119 122 127 54 114 127 102115 100 113 99 120 119 125119 120 54 102 119 114 119 5498 119 126 99 120 54 34 38 3854 69 91 54 114 127 54 79 99120 119 120 127
4 TES 4. txt 37 19, 21 19 15 19 21 82 112 109 113 103 113
34 105 112 107 114 118 109101 112 99 100 107 34 102 10799 117 99 110 107 34 102 103108 101 99 108 34 111 103 108101 119 96 99 106 34 102 99118 99 34 102 99 110 99 111 3496 103 108 118 119 105 34 114110 99 107 108 118 103 105113 34 42 118 119 110 107 11399 108 34 99 118 99 119 34 114103 113 99 108 34 99 117 99110 34 123 99 108 101 34 10299 114 99 118 34 102 107 96 99
97 99 43 34 111 103 108 104 99102 107 34 97 107 114 106 103112 118 103 105 113 34 42 118119 110 107 113 99 108 34 99118 99 119 34 114 103 113 99108 34 99 105 106 107 112 34123 99 108 101 34 113 119 110107 118 34 102 107 111 103108 101 103 112 118 107 43
5 TES 5.txt 23 13, 7 17 8 13 16 70 127 68 125 89 98 74127 76 107 68 45 70 120 95 12376 45 72 97 68 125 89 100 7045 89 104 95 96 76 126 88 102
45 70 104 45 73 108 65 108 6445 94 100 94 121 72 96 45 70
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
54/81
127 68 125 89 98 74 127 76 10768 45 70 120 67 110 68 45 93120 79 97 68 102 45 84 108 67106 45 64 104 67 105 76 126 76127 70 108 67 45 70 104 76 96
76 99 76 99 67 116 76 45 93108 73 108 45 93 104 95 96 76126 76 97 76 101 76 99 45 64108 89 104 64 108 89 100 94 4570 120 95 123 76 45 72 97 68125 89 100 70 45 73 108 67 4570 104 94 120 65 100 89 108 6745 88 99 89 120 70 45 64 10467 106 69 100 89 120 67 106 4593 104 95 126 66 108 65 108 9945 65 98 74 108 95 100 89 9676 45 73 100 94 102 95 100 8445 60 63 62 57 56 59 58 53 52
61 44 77 46 41 40 83 43 39 3736 82 38
Berdasarkan hasil enkripsi yang telah dilakukan seperti pada tabel 4.1, didapatkan
bahwa aplikasi ElGamal elliptic curve cryptosystem tidak menemui kendala yang
berarti saat mengenkripsi suatufileteks baik dengan huruf besar maupun huruf kecil,
aplikasi juga tidak terkendala dengan panjang teks dan tetap dapat dieksekusi dengan
cepat.
4.2.2 Hasil Dekripsi
Pada proses dekripsi, data hasil enkripsi langsung dimasukkan secara otomatis untuk
menghindari kesalahan saat proses memasukkan data. Berikut adalah hasil dari
dekripsi cipherteks dari proses enkripsi sebelumnya
Tabel 4.3 Hasil Dekripsi
No. Cipherteks Plainteks
1 3 21 80 73 82 75 79 84 92 73 90 93 82 KRIPTOGRAFI
2 95 66 93 68 95 70 66 89 81 68 87 80 95 54 8782 87 90 87 94 54 69 83 88 95 54 91 83 88 7987 88 82 95 93 87 88 54 48 54 91 83 88 79 8391 84 67 88 79 95 93 87 88 54 70 83 69 87 88
KRIPTOGRAFI ADALAH SENIMENYANDIKAN & MENYEMBUNYIKANPESAN
3 22 13 93 100 127 102 98 121 113 100 119 112127 54 102 115 100 98 119 123 119 54 125119 122 127 54 114 127 102 115 100 113 99
120 119 125 119 120 54 102 119 114 119 5498 119 126 99 120 54 34 38 38 54 69 91 54
Kriptografi pertama kali
dipergunakan pada tahun 400 SM
di Yunani
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
55/81
114 127 54 79 99 120 119 120 1274 19 21 82 112 109 113 103 113 34 105 112 107
114 118 109 101 112 99 100 107 34 102 10799 117 99 110 107 34 102 103 108 101 99 10834 111 103 108 101 119 96 99 106 34 102 99
118 99 34 102 99 110 99 111 34 96 103 108118 119 105 34 114 110 99 107 108 118 103105 113 34 42 118 119 110 107 113 99 108 3499 118 99 119 34 114 103 113 99 108 34 99117 99 110 34 123 99 108 101 34 102 99 11499 118 34 102 107 96 99 97 99 43 34 111 103108 104 99 102 107 34 97 107 114 106 103112 118 103 105 113 34 42 118 119 110 107113 99 108 34 99 118 99 119 34 114 103 11399 108 34 99 105 106 107 112 34 123 99 108101 34 113 119 110 107 118 34 102 107 111103 108 101 103 112 118 107 43
Proses kriptografi diawali dengan mengubahdata dalam bentuk plainteks (tulisan atau
pesan awal yang dapat dibaca) menjadicipherteks (tulisan atau pesan akhir yang sulit
dimengerti)
5 13 16 70 127 68 125 89 98 74 127 76 107 6845 70 120 95 123 76 45 72 97 68 125 89 10070 45 89 104 95 96 76 126 88 102 45 70 10445 73 108 65 108 64 45 94 100 94 121 72 9645 70 127 68 125 89 98 74 127 76 107 68 4570 120 67 110 68 45 93 120 79 97 68 102 4584 108 67 106 45 64 104 67 105 76 126 76127 70 108 67 45 70 104 76 96 76 99 76 99 67116 76 45 93 108 73 108 45 93 104 95 96 76126 76 97 76 101 76 99 45 64 108 89 104 64108 89 100 94 45 70 120 95 123 76 45 72 9768 125 89 100 70 45 73 108 67 45 70 104 94120 65 100 89 108 67 45 88 99 89 120 70 4564 104 67 106 69 100 89 120 67 106 45 93
104 95 126 66 108 65 108 99 45 65 98 74 10895 100 89 96 76 45 73 100 94 102 95 100 8445 60 63 62 57 56 59 58 53 52 61 44 77 46 4140 83 43 39 37 36 82 38
KrIpToGrAfI KuRvA ElIpTiK TeRmAsUk
Ke DaLaM SiStEm KrIpToGrAfI KuNcIPuBlIk YaNg MeNdAsArKaNKeAmAnAnNyA PaDa PeRmAsAlAhAnMaTeMaTiS KuRvA ElIpTiK DaNKeSuLiTaN UnTuK MeNgHiTuNgPeRsOaLan LoGaRiTmA DiSkRiY1234567890!@#$%^&*()_+
Dari hasil dekripsi di atas, didapatkan bahwa proses enkripsi dan dekripsi berjalan
dengan sempurna untuk semua jenis file teks pengujian, proses perhitungan juga
berhasil disederhanakan dan waktu proses berhasil dipersingkat.
4.3 Tampilan Sistem
Berikut ini adalah tampilan dan penjelasan dari form form yang terdapat pada
aplikasi ElGamal Elliptic Curve Cryptosystem.
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
56/81
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
57/81
pembentukan kunci rahasia dan juga kunci publik serta detil proses perhitungannya
seperti terlihat pada gambar 4.2 berikut:
Gambar 4.2 Tampilan Form Pembentukan Kunci Aplikasi ElGamal Elliptic
Curve Cryptosystem
Pada halaman ini, pengguna bisa memasukkan sendiri sebuah bilangan prima
untuk kemudian divalidasi dengan metode rabin miller ataupun menghasilkan
bilangan prima acak secara otomatis dengan menekan tombol acak prima. Setelah
bilangan prima p dihasilkan, pengguna kemudian menghitung elemen elemen titik
yang terdapat pada kurva dengan menekan tombol hitung, detil proses perhitungan
akan ditampilkan pada textarea di sebelahnya.
Di halaman ini juga pengguna bisa memilih titik mana dari elemen elemen
titik yang telah dihitung untuk dipakai sebagai titik P dengan menekan tombol
dropdown yang terdapat di samping label Pilih Titik P. Setelah proses itu selesai,
pengguna kemudian menentukan kunci rahasia 1 dan 2, bisa dimasukkan sendiri
ataupun menekan tombol acak untuk menghasilkan bilangan acak secara otomatis.
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
58/81
Terakhir, pengguna tinggal menentukan kunci publik yang akan digunakan
dengan menekan tombol hitung, detil proses perhitungan dan kunci publik yang
dihasilkan akan langsung tampak secara otomatis pada textarea di sebelahnya,
pengguna selanjutnya bisa langsung menyimpan semua data input dengan menekan
tombol Simpan Semua Data Input dan Tutup Form di bawah.
Gambar 4.3 Tampilan Form Pembentukan Kunci Setelah Semua Data
Dimasukkan
4.3.3 Tampilan Form Enkripsi pada Aplikasi ElGamal Elliptic Curve
Cryptosystem
Pada tampilan ini, menampilkan proses enkripsi dan detil langkah langkah
perhitungan untuk proses enkripsi, seperti ditampilkan pada gambar berikut:
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
59/81
Gambar 4.4 Tampilan Form Enkripsi pada Aplikasi ElGamal Elliptic Curve
Cryptosystem
Karena data input sebelumnya sudah tersimpan secara otomatis, maka nilai tersebut
akan langsung tampak secara otomatis di bawah label Daftar Nilai Kunci yang
Digunakan. Pengguna selanjutnya tinggal memasukkan file teks yang ingin
dienkripsi dengan menekan tombol Buka File Teks dimana isi dari teks yang akan
dienkripsi akan langsung tampak pada textarea di atasnya. Kemudian pengguna
tinggal menekan tombol Proses dan bisa melihat detil proses perhitungannya pada
tombol panah navigasi 2 arah di bawahnya.
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
60/81
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
61/81
Gambar 4.6 Langkah 2 pada Proses Enkripsi
Pada langkah berikutnya, sistem akan memilih sebuah nilai acak k dimana nilai
tersebut akan digunakan dalam enkripsi dengan algoritma ElGamal. Nilai k ini sendiri
dihasilkan secara acak tanpa batasan tertentu, namun disini penulis membatasinya
hanya sampai angka puluhan untuk mempersingkat proses komputasi. Proses
kemudian dilanjutkan dengan menekan tombol panah kanan.
Gambar 4.7 Langkah 3 pada Proses Enkripsi
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
62/81
Pada langkah ini dilakukan perhitungan nilai key1_gen yang dihasilkan melalui
persamaan Euclidean. Untuk memudahkan pemahaman maka seluruh detil proses
perhitungan bisa dilihat di teks area sebelah kanan. Hasil akhir dari proses ini adalah
sebuah koordinat bangkitan tertentu (x, y) yang disebut sebagai key1_gen. Proses
kemudian dilanjutkan dengan menekan tombol panah.
Gambar 4.8 Langkah 4 pada Proses Enkripsi
Pada langkah ini, sistem hanya akan mengambl nilai absis x dari key1_gen yang
dihasilkan pada langkah sebelumnya. Nilai absis tersebut kemudian disebut
xkey1_gen. Proses kemudian dilanjutkan dengan menekan tombol panah.
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
63/81
Gambar 4.9 Langkah 5 pada Proses Enkripsi
Pada langkah ini, sistem menghitung cipher1 atau disebut C1, yaitu bagian awal dari
cipherteks yang mengandung kunci rahasia yang berguna untuk proses dekripsi. detil
proses perhitungan C1 ini juga ditampilkan pada teksarea sebelah kiri. Proses
kemudian dilanjutkan dengan menekan tombol panah.
Gambar 4.10 Langkah 6 pada Proses Enkripsi
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
64/81
Langkah keenam ini sekaligus merupakan langkah terakhir, sistem kemudian
menghitung nilai cipher2 atau C2 yaitu merupakan keseluruhan cipherteks yang sudah
disandikan. Seluruh detil perhitungan C2 ini juga ditampilkan pada teksarea di sebelah
kiri. Hasil dari proses ini adalah kumpulan angka angka acak yang berbeda satu
sama lainnya. Pada langkah ini proses enkripsi sudah selesai dijalankan. Pengguna
kemudian bisa menekan tombol x di sebelah kanan atas untuk menutup halaman
proses enkripsi. Seluruh data hasil enkripsi akan langsung tersimpan secara otomatis.
4.3.4 Tampilan Form Dekripsi pada Aplikasi ElGamal Elliptic Curve
Cryptosystem
Pada form dekripsi ini, akan ditampilkan proses mendekripsikan cipherteks yang
didapat dari proses sebelumnya kembali menjadi plainteks semula seperti terlihat pada
gambar berikut:
Gambar 4.11 Tampilan Awal Form Dekripsi pada Aplikasi ElGamal Elliptic
Curve Cryptosystem
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
65/81
Seperti yang terlihat pada gambar, cipherteks yang akan didekripsi langsung
tampak secara otomatis pada textarea di sudut kanan atas, selanjutnya pengguna
tinggal menekan tombol dekripsi untuk mengembalikan cipherteks tersebut ke
plainteks semula
Gambar 4.12 Langkah 1 dari Proses Dekripsi
Pada langkah pertama dari proses dekripsi ini, sistem akan langsung memisahkan C1
dan C2 dari keseluruhan cipherteks yang dihasilkan, C1 sendiri adalah dua angka
pertama pada cipherteks yang dihasilkan. C1 mengandung nilai rahasia yang berguna
untuk melakukan proses dekripsi. Hasil dari proses ini adalah kumpulan angka
angka dari cipherteks yang sudah dipisahkan. Proses kemudian dilanjutkan dengan
menekan tombol panah di sebelah kanan bawah.
8/12/2019 IMPLEMENTASI KRIPTOGRAFI KURVA ELIPTIK DENGAN ALGORITMA ELGAMAL DAN METODE PEMBANGKITAN BILANGAN
66/81
Gambar 4.13 Langkah 2 dari Proses Dekripsi
Sama seperti pada proses e