Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

260
PENGGUNAAN KRIPTOSISTEM KURVA ELLIPTIK UNTUK ENKRIPSI DAN DEKRIPSI DATA SKRIPSI IMAM KHOLISSODIN JURUSAN MATEMATIKA

description

Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana SainsBidang Matematika Pada Fakultas Matematika Dan Ilmu Pengetahuan AlamUniversitas Airlangga

Transcript of Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Page 1: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

PENGGUNAAN KRIPTOSISTEM KURVA ELLIPTIK UNTUK

ENKRIPSI DAN DEKRIPSI DATA

SKRIPSI

IMAM KHOLISSODIN

JURUSAN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS AIRLANGGA

SURABAYA

Page 2: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

2007

PENGGUNAAN KRIPTOSISTEM KURVA ELLIPTIK UNTUK

ENKRIPSI DAN DEKRIPSI DATA

SKRIPSI

Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana Sains

Bidang Matematika Pada Fakultas Matematika Dan Ilmu Pengetahuan Alam

Universitas Airlangga

Oleh :

IMAM KHOLISSODINNIM : 080312630

Tanggal Lulus : 28 Desember 2007

Disetujui Oleh :

Pembimbing I

HERRY SUPRAJITNO, S.Si, M.SiNIP. 132 087 869

Pembimbing II

Drs. ETO WURYANTO, DEA NIP. 131 933 015

ii

Page 3: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

LEMBAR PENGESAHAN SKRIPSI

Judul : Penggunaan Kriptosistem Kurva Elliptik Untuk Enkripsi

Dan Dekripsi Data.

Penulis : Imam Kholissodin

NIM : 080312630

Tanggal Ujian : 28 Desember 2007

Disetujui Oleh :

Pembimbing I

HERRY SUP RAJITNO, S.Si, M.Si NIP. 132 087 869

Pembimbing II

Drs. ETO WURYANTO, DEA NIP. 131 933 015

Mengetahui,

Ketua Departemen MatematikaFMIPA - Unair

Dr. ERIDANINIP. 132 049 016

Ketua Program Studi MatematikaFMIPA - Unair

Dra. INNA KUSWANDARI, M. SiNIP. 131 933 022

iii

Page 4: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

PEDOMAN PENGGUNAAN SKRIPSI

Skripsi ini tidak dipublikasikan, namun tersedia di perpustakaan dalam lingkungan

Universitas Airlangga. Diperkenankan untuk dipakai sebagai referensi

kepustakaan, tetapi pengutipan seijin penulis dan harus menyebutkan sumbernya

sesuai kebiasaan ilmiah.

Dokumen skripsi merupakan hak milik Universitas Airlangga.

Page 5: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

”Dan seandainya pohon-pohon di bumi menjadi pena dan laut (menjadi tinta),

ditambahkan kepadanya tujuh laut (lagi) sesudah (kering)nya, niscaya tidak akan habis-habisnya (dituliskan) kalimat Allah

(ilmu-Nya dan Hikmah-Nya). Sesungguhnya Allah Maha Perkasa lagi Maha Bijaksana.”

(QS. Luqman:27)

”Sesungguhnya jika kamu bersyukur, pasti kami akan menambah (nikmat)

kepadamu.”(QS. Ibrahim:7)

”Jadikanlah sabar dan shalat sebagai penolongmu. dan Sesungguhnya yang

demikian itu sungguh berat, kecuali bagi orang-orang yang khusyu', (yaitu) orang-

orang yang meyakini, bahwa mereka akan menemui Tuhannya, dan bahwa mereka

akan kembali kepada-Nya.”(QS. Al-Baqarah:45-46)

”Bertaqwalah kepada Allah di manapun kalian berada. Dan ikutilah kejelekan

dengan kebaikan, niscaya kebaikan itu akan menghapusnya. Dan pergaulilah

manusia dengan akhlak terpuji.”(HR. Tirmidzi)

Page 6: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

”Sabar itu tidak membedakan bahagia atau menderita. Keduanya

dihadapi dengan ketenangan pikiran dan jiwa. Bersikap sabar itu

ialah tetap merasa tentram ketika menghadapi penderitaan,

kesulitan dan hambatan, sekalipun kesadaran tentang terjadinya

itu semua tetap ada. Sabar memenuhi hajat hidup adalah

KEMENANGAN, Sabar dalam kesulitan adalah KESELAMATAN.”

Page 7: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

UCAPAN TERIMA KASIH

Alhamdulillahi robbil ’alamin, Segala puji hanyalah milik Allah SWT yang

telah mengkaruniai iman, islam, kesehatan, hidayah dan taufiq sehingga aku

bisa lebih yakin dan mantap untuk beribadah kepadaMu. Sholawat dan Salam

kepada Nabi Muhammmad SAW, yang telah berdakwah untuk agama Allah

yaitu dinul islam sebagai rahmatanlilalamin. Penulis juga mengucapkan terima

kasih yang sedalam-dalamnya kepada :

1. Ibu dan Ayahku tercinta (Ibu Muriyati dan Bapak Suantomo) yang telah

mendidikku tanpa mengenal lelah, mulai aku dikandungan 9 bulan sampai

sekarang. Entah dengan apa membalas semua jasa-jasamu, kecuali

menjadi anak yang berbakti, menjadi anak yang sholeh. Adikku (Wiwin Dwi

Alfiyanti dan Mohammad Tomi Esa Suganda), kakek dan nenekku

(almarhum), do’aku selalu menyertaimu.

2. Keluarga Bik Um dan Kak Sol di Pucang ada dik Novi, dik Inul, Dina dan

si kembar (fadli dan fandi).

3. Bapak Herry Suprajitno S.Si, M.Si selaku dosen pembimbing I dan Bapak

Drs.Eto Wuryanto, DEA. Selaku dosen pembimbing II. Terima kasih banyak

atas bimbingan dan arahannya.

4. Bapak Drs. Suliyanto, M.Si selaku dasen wali dan semua dosen

matematika [Pak Imam, Pak Sed, Pak Ardi, Pak Toha, Pak Eko, Bu Nur, Bu

Elly, Bu Yayuk, Bu Lilik, Bu Inna, Bu Neni, Bu Susi, Bu Dyah, Pak Eri, Pak

Edi, Pak Badrus,

Page 8: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Pak Indra, Pak Kartono, Mas Lukman, Mas Faried] dan staf karyawan [ Mas

Edi, mas Milan, mas Udin dan pak Asmari].

5. Dan TENTANG SESEORANG yang selalu ada dalam RUANG RINDU, yang

menjadi SANDARAN HATI saat indah SEBELUM CAHAYA. Ku ucapkan Salam

Maniz Untukmu.

6. Untuk semua angkatan 2003 Himatika (Aq sendiri/ al-imam/ imamkomc,

Haris, Heru, Seto, Yudi, Supri, Ardian, Fuad, Fajar, Arie, Winda, Faifa, Upix,

Bisri, Fitri, Eki', Evin, Shofi, Evie, Tigor, Luluk, Andriana, Egi', Novi, Rahmah,

Putut, Alicia, Hendy, Hayu', Adel, Denok, Ndari, Nuris, Pita, Erna). I loving U

all. Now and Forever, Don’t Forget Me. Gimana Temen2 jadi nonton Ayat-

ayat Cinta Kan??.

7. Anak-anak HMI Badko Jatim, HMI Cabang Surabaya(Mas Maulana

sebagai Ketua Cabang, mas Imam IAIN, mas Bobby, Pak Tohirin, Maman,

Fifi, Indan) Ayo kita Buat LK2!!, HMI Korkom Sepuluh November (Mas

Bagus, Mas Yusni, Mas Adi, Rahmat, Ratna, Ifah, Mas Hamka), HMI Korkom

Sunan Ampel (Inung, Suraji, Pak Samson, Mas Abdillah), HMI Korkom

Airlangga (Mas Ervan ( thanks to wacana2 hangatnya), Edi/ Gundul yang

mirip barack Obama), HMI Komisariat Hukum(Ade, Mas Nizar, Iqbal, Erik,

dll), HMI komisariat Ekonomi(Pak Rahman, Rendra, Maman ndut, Wahyu,

Binsar, Sumik, dll), HMI komisariat Fistra(Pak Viki, To Ing, Tiko, Mbak Juwi,

Pak Riskon, Mas Arya, Pak Agam, Pak Deni, Pak Antoq, Aci, dll), HMI

komisariat Kedokteran + LKMI (Pak Indra, La Huda, Pak Yanto, Mas Dayu,

dll), HMI komisariat Farmasi(Erta’, Fauzi, dll), HMI komisariat Kedokteran

Gigi (Pak Iqbal, Galuh, Fani dan kawan-kawan) HMI Komisariat Kampus C

dan

Page 9: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

simpatisan (Feddy, Ganyong, Yossy, Koko, Rio,Biantoro, ibnu, Aan, Ito',

Faqih, Herlina, Ambar, dik Ella, Nindya dan Anggi). Pesenku "Jangan

Lupakan Pengkaderan, jadilah kader yang militan dan selalu menjadi

organiser yang independent". Khusus untuk [Mas Henry, Mas iqbal, Mas

indra ]. Thank telah membuatku seperti sekarang, U have burn me, be

change, be Real me.

8. My Big family Asrama Nias 68 Surabaya. Mas Yoni(terima kasih telah

menerimaku disana), Mas Prijo/Bon Sebagai Ketua LKMI sekaligus Ketua

Asrama (So cool, so friend, so good , so bek-sobek mulutmu, he3x),

Firman/fam (Makasih ya fam, telah mengobatiku disaat Aq Sakit DB),

Riza/Ije ( Maaf y, kamarmu Aq pake’), Pak anik (Tambah dekat aja sama si

dia), Mas Udin (Yang udah jadi dokter, tinggal cari Pendamping Hidup

Nich), Mas Ujung (Kapan Mas pulang ke Nganjuk), Mas Haris (tak tunggu

undangan nikahnya ya), Nadhir (Dulu Koordinator Musholla, sekarang siap-

siap jadi KH y), Angga ( Selamat ya Nga, telah menjadi KH yang baru ),

Johan/joe - Soni (Ayo segera renovasi Asrama Kita) dan Boeat Yuk sebagai

PU setia (Wah Masakan Yuknya memang bener2 WueEnaaak.. Banget,

Maafin Imam jika Nakal).

9. Temen-temen MP14B ada Mas Beni[Yang lagi PdKt], Mas Gaguk[Kpan

Mas lu2s??he3], Mas Agus, Aan[Jangan Chatting Teruz, Ntar pulsaX Abiz],

Arip, Saiku dan makrus. Udah bayar belum uang kostnya ke Pak Haji??He2.

10. Angkatan 2002 Ada Mas Aslam, Mas Yanto, Mas Fauzi, DOwi Selaku

Crue SiNoBi-Net... & angkatan 2004 ada Andi, Jamal, Wahyu, Winda, Siska,

Rudiana, Galeh dll..

11. Temen-temen MP (Mujahid Production) dKK ada Akhi..[Pitra, Ukhaq,

Dian Heri, Dian Satria, Aris, Jamal, David, Tomas], suka-duka telah kita lalui

Page 10: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

bersama. Boeat Mas Sahroni & Mas Iib, Thanks banget telah menuntun dan

mengenalkan aQ jalan dakwah.

12. Buat "Godzilla MB18A Apartement"[Gendon dan Frisbee Band, Bastian,

pak Hanif, Kimpeng, Kirun, Gendut, Jipek, dll].

13. Buat "Dodol Community"[Arie' (Moga Distribusi Obatnya laress maniss),

Gendut/ Ndut (Mg segera dapet kerja)].

14. Boeat terman-terman, karawang-karawang, saudara-saudaraQ yang

disini dan yang disana yang belum disebut, aQ ucapin terima kasih juga.

KATA PENGANTAR

Page 11: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Puji syukur saya panjatkan kehadirat Allah SWT atas limpahan rahmat dan

karuniaNya sehingga saya dapat menyelesaikan skripsi yang berjudul

”Penggunaan Kriptosistem Kurva Elliptik Untuk Enkripsi Dan Dekripsi Data”

sebagai syarat untuk mendapatkan gelar kesarjanaan.

Dalam penyusunan skripsi ini, banyak sekali ilmu-ilmu baru yang saya

dapatkan, kemudian saya memadukan dengan materi perkuliahan sebagai

kesempurnaan dalam menelaah lebih dalam dan mendetail untuk pengembangan

yang inovatif. Dan tidak sedikit pula tantangan yang saya alami, namun dengan

petunjuk dan saran yang diberikan semua pihak maka penulisan skripsi ini dapat

diselesaikan. Pada kesempatan ini saya ingin mengucapkan terima kasih kepada

Bapak Herry Suprajitno, S.Si, M.Si dan Bapak Drs. Eto Wuryanto, DEA selaku

dosen pembimbing skripsi yang telah banyak meluangkan waktunya untuk

memberi arahan, saran dan bimbingan kepada saya.

Saya menyadari bahwa penulisan skripsi ini masih jauh dari sempurna,

oleh karena itu saran dan kritik yang bersifat membangun sangat diharapkan.

Mudah-mudahan skripsi ini bermanfaat.

Surabaya, November 2007

Penulis

Imam Kholissodin, 2007, Penggunaan Kriptosistem Kurva Elliptik Untuk Enkripsi Dan Dekripsi Data, Skripsi ini di bawah bimbingan Herry Suprajitno, S.Si., M.Si dan Drs. Eto Wuryanto, DEA. Jurusan Matematika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Airlangga.

Page 12: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

ABSTRAK

Skripsi ini bertujuan untuk mengamankan data teks menggunakan kriptosistem kurva elliptik dan membuat program komputer dari algoritma pertukaran kunci serta enkripsi-dekripsi data yang telah dibuat.

Kriptosistem kurva elliptik adalah metode yang menggunakan titik-titik pada kurva elliptik. Proses untuk mengamankan data, diawali dengan melakukan pertukaran kunci kemudian melakukan enkripsi dan diakhiri dengan melakukan dekripsi. Langkah-langkah untuk melakukan pertukaran kunci pada kriptosistem kurva elliptik, pertama dengan mengenerate bilangan prima, kedua menentukan persamaan kurva elliptik, ketiga memilih titik random, keempat membuat kunci private, kelima menghitung kunci publik, keenam menghitung kunci rahasia bersama. Langkah-langkah untuk melakukan proses enkripsi pada kriptosistem kurva elliptik, diawali dengan mengambil kunci publik dan titik random, kemudian menentukan kunci private bangkitan, selanjutnya menghitung kunci rahasia bersama bangkitan, dan yang terakhir menghitung nilai chipertext. Sedangkan langkah-langkah untuk melakukan proses dekripsi, diawali dengan mengambil kunci private, kemudian menghitung kunci rahasia bersama bangkitan, dan yang terakhir menghitung nilai plaintext.

Data yang diproses dalam enkripsi maupun dekripsi adalah data yang

mempunyai ekstensi *.txt. Data teks yang telah diuji adalah data dengan ukuran 38 bytes dan 608 bytes, setelah dienkripsi menjadi 141 bytes dan 4,56 KB. Proses enkripsi yang dilakukan dengan program C++ akan menghasilkan data sandi(chipertext), dengan ukuran lebih besar dari data asli(plaintext). Dalam proses dekripsi akan menghasilkan data yang ukurannya sama dengan data asli.

Kata kunci : kriptografi, enkripsi dan dekripsi data, kriptosistem kurva elliptik, logika xor.

Imam Kholissodin, 2007, Using Elliptic Curve Cryptosystem to encryption and decryption of Data, This final paper was under guidance of Herry Suprajitno, S.Si, M.Si and Drs. Eto Wuryanto, DEA. Faculty of Mathematics and Natural Science Airlangga University.

Page 13: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

ABSTRACT

The aims of this skripsi are to secure the text data using elliptic curve cryptosystem and to make a computer program from algorithm of key exchange and also encryption-decryption data which have been made.

Elliptic curve cryptosystem is method using points of elliptic curve. Process to secure the data, early by doing key exchange, then do the encryption and terminated by doing decryption. Steps to do the key exchange of elliptic curve cryptosystem, first by generated prime number, second determine the equation of elliptic curve, third chosen the random point, fourth make the private key, fifth count public key, sixth count private key together. Steps to do the encryption process of elliptic curve cryptosystem, early by taking public key and random point, then determine the private key awaken, hereinafter count the private key together with awakening, and last count the chipertext value. While steps to do the decryption process, early by taking private key, then count the private key together with awakening, and last count the plaintext value.

Data processed in encryption and deccryption is the data having extention *.txt. Text data which have been tested is data of the size 38 bytes and 608 bytes, after encryption become 141 bytes and 4,56 KB. The encryption process done with the progam C++ will yield the chipertext data, with the size bigger than plaintext data. In decryption process will yield the data which it’s size is equal to original data.

Key word : cryptography, encryption and decryption of data, elliptic curve cryptosystem, xor logic.

DAFTAR ISI

Page 14: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

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

LEMBAR PENGESAHAN SKRIPSI ................................................................ ii

PEDOMAN PENGGUNAAN SKRIPSI ............................................................ iii

KATA PENGANTAR......................................................................................... v

ABSTRAK .......................................................................................................... vi

ABSTRACT ........................................................................................................ vii

DAFTAR ISI ....................................................................................................... viii

DAFTAR TABEL ............................................................................................... x

DAFTAR GAMBAR ......................................................................................... xi

DAFTAR LAMPIRAN ....................................................................................... xiii

BAB I PENDAHULUAN................................................................................. 1

1.1 Latar Belakang Masalah.............................................................. 1

1.2 Rumusan Masalah........................................................................ 2

1.3 Tujuan.......................................................................................... 2

1.4 Manfaat........................................................................................ 2

1.5 Batasan Masalah ......................................................................... 2

BAB II TINJAUAN PUSTAKA....................................................................... 4

2.1 Konsep Dasar Matematika Kriptografi........................................... 4

2.1.1 Aritmatika Modular ........................................................ 4

2.1.2 Bilangan prima ................................................................ 4

2.1.3 Diskriminan ..................................................................... 4

2.1.4 Grup Elliptic atas Zp ...................................................... 4

2.2 Kriptosistem Kurva Elliptik (Elliptic Curves Cryptosystem) ........ 5

Page 15: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

2.2.1 Kurva Elliptik .................................................................. 5

2.2.2 Aturan Penjumlahan Dua Titik pada Kurva Elliptik........ 6

2.3 Algoritma Pertukaran Kunci Dieffie-Hellman ............................... 6

2.4 Algoritma Enkripsi-Dekripsi ElGamal .......................................... 7

BAB III METODE PENULISAN....................................................................... 8

BAB IV PEMBAHASAN ................................................................................... 11

4.1 Bilangan Prima dan Perkalian Skalar ............................................ 11

4.2 Prosedur Algoritma Enkripsi-Dekripsi .......................................... 12

4.3 Data ................................................................................................ 29

4.4 Program 30

4.5 Contoh Kasus Enkripsi-Dekripsi Data Yang Diselesaikan

Secara Manual ............................................................................. 32

4.6 Implementasi Program ................................................................... 42

4.6.1 Dengan Menggunakan Data Berukuran 38 bytes, Panjang

Kunci 8 bit sampai 72 bit dan File Extensinya *.txt ...... 42

4.6.2 Dengan Menggunakan Data Berukuran 608 bytes, Panjang

Kunci 8 bit sampai 72 bit dan File Extensinya *.txt ...... 44

BAB V KESIMPULAN DAN SARAN ............................................................. 47

5.1 Kesimpulan .................................................................................... 47

5.2 Saran .............................................................................................. 48

DAFTAR PUSTAKA ......................................................................................... 49

LAMPIRAN

DAFTAR TABEL

Page 16: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Nomor Judul Tabel Halaman

4.1 Mencari Bilangan Prima ........................................................................................33

4.2 Mencari Bilangan Prima ........................................................................................33

4.3 Mencari Bilangan Prima ........................................................................................34

4.4 Mencari Koefisien .................................................................................................34

4.5 QR23

........................................................................................................................35

4.6 Untuk Mencari Elemen E23 (1,1) .........................................................................36

4.7 Untuk Mencari Invers ..........................................................................................38

Page 17: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

DAFTAR GAMBAR

Nomor Judul Gambar Halaman

4.1 Skema enkripsi dan dekripsi ............................................................................12

4.2 Prosedur Menentukan Bilangan Prima .............................................................13

4.3 Prosedur Menentukan Nilai Modulo ...............................................................14

4.4 Prosedur Menentukan Koefisien Kurva Elliptik ..............................................14

4.5 Prosedur Menentukan Titik Random pada Kurva Elliptik ...............................16

4.6 Prosedur Menentukan private key ....................................................................16

4.7 Prosedur Menentukan Invers Pembagi .............................................................18

4.8 Prosedur Mencari Hasil Penambahan Dua Titik ..............................................22

4.9 Prosedur Mencari Hasil Perkalian Skalar Dengan Titik ..................................23

4.10 Prosedur Menentukan Kunci Publik .............................................................24

4.11 Prosedur Menentukan Kunci Rahasia Bersama ............................................25

4.12 Menentukan private1_gen .............................................................................25

4.13 Prosedur Menentukan absis key1_gen ……………………………………..26

4.14 Prosedur Menentukan publik1_gen ………………………………………...27

4.15 Prosedur Menentukan C2 …………………………………………………..27

4.16 Prosedur Menentukan absis key2_gen ……………………………………..28

4.17 Prosedur Menentukan plaintext …………………………………………….29

4.18 Sebaran titik-titik pada kurva elips E23 (1, 1) ................................................37

4.19 Konversi dari karakter ke desimal .................................................................41

4.20 Hasil proses dekripsi manual …....................................................................42

4.21 Komponen kunci publik ................................................................................42

Page 18: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

4.22 Chipertext ......................................................................................................43

4.23 Hasil proses dekripsi .....................................................................................43

4.24 Komponen kunci publik ................................................................................44

4.25 Chipertext ......................................................................................................44

4.26 Hasil proses dekripsi .....................................................................................46

Page 19: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

DAFTAR LAMPIRAN

Nomor Judul Lampiran

1 Input Data Program.

2 Source Code Program.

3 Display Loading to Main Program.

4 Display Main Program.

5 Display Program Penentuan Kunci.

6 Display Program Enkripsi Data.

7 Display Program Dekripsi Data.

8 Display Program ECC Dos.

9 Display About Program.

10 Output Data Program.

Page 20: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

BAB I

PENDAHULUAN

1.1 Latar Belakang Masalah

Dalam dunia modern sekarang ini, kebutuhan akan keamanan suatu data

merupakan hal yang sangat penting dalam dunia informasi dan komunikasi.

Website, e-mail dan aplikasi perkantoran banyak menyediakan enkripsi dan

dekripsi data. Enkripsi adalah metode merubah data pesan (plaintext) menjadi data

sandi (chipertext), sedangkan dekripsi adalah metode merubah chipertext menjadi

plaintext. Algoritma yang digunakan ada 2 (dua) macam yaitu algoritma simetris

dan algoritma asimetris. Algoritma simetris adalah algoritma yang menggunakan

kunci yang sama pada proses enkripsi dan dekripsinya. Sedangkan algoritma

asimetris adalah algoritma yang menggunakan kunci publik pada proses enkripsi

dan kunci private pada proses dekripsinya.

Elliptic curve cryptosystem (ECC) merupakan kriptosistem yang

menggunakan algoritma asimetris. Kelebihan algoritma asimetris ini adalah proses

pendistribusian kunci pada media yang tidak aman seperti internet, tidak

memerlukan kerahasian. Karena kunci yang didistribusikan adalah kunci publik.

Sehingga jika kunci ini sampai hilang atau diketahui oleh orang lain yang tidak

berhak, maka pesan sandi yang dikirim akan tetap aman. Sedangkan kunci private

tetap disimpan (tidak didistribusikan). Kelebihan lain adalah pada efisiensi jumlah

kunci publik. Jika terdapat n user, maka hanya membutuhkan 1 (satu) kunci

publik, sehingga untuk jumlah user yang sangat banyak, sistem ini sangat efisien.

1

Page 21: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Menurut (Walton, 2006) dalam www.codeproject.com menyatakan bahwa

pada tingkat keamanan yang sama, ECC dapat menggunakan ukuran kunci yang

lebih kecil dibandingkan dengan kriptosistem seperti RSA. Kemampuan ini

membuat ECC mempunyai keamanan yang kuat dengan panjang kunci yang

pendek. Implementasi ECC/ kriptosistem kurva elliptik yang digunakan dalam

skripsi ini menggunakan logika xor. Panjang kunci yang digunakan antara 8

sampai 72 bit. Karena dalam bahasa pemrograman Borland C++ tipe data yang

paling tinggi adalah long double yang bisa menampung 18 digit. Misalnya saja

dalam perhitungan perkalian antara 2 (dua) bilangan dengan panjang 9 digit akan

menghasilkan bilangan dengan panjang 18 digit yang akan ditampung dalam tipe

long double, kemudian dengan fungsi modulo akan dihasilkan kembali bilangan

dengan panjang 9 digit.

1.2 Rumusan Masalah

1. Bagaimanakah mengamankan data teks dengan kriptosistem kurva

elliptik ?

2. Bagaimana membuat program pertukaran kunci dan enkripsi-

dekripsi data dengan kriptosistem kurva elliptik ?

1.3 Tujuan

1. Mengamankan data teks dengan kriptosistem kurva elliptik.

2. Membuat program pertukaran kunci dan enkripsi-dekripsi data dengan

kriptosistem kurva elliptik.

2

Page 22: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

1.4 Manfaat

1. Menambah wawasan mengenai kriptografi dengan menggunakan

Elliptic Curves Cryptosystem/ kriptosistem kurva elliptik.

2. Menghasilkan software yang dapat digunakan oleh masyarakat untuk

mengamankan dan merahasiakan data teks yang akan dikirim.

1.5 Batasan Masalah

1. Persamaan kurva elliptik yang digunakan dalam implementasi adalah

y2 = x3 + a4x + a6 (mod p) pada lapangan berhingga prima Zp.

2. Pertukaran kunci Dieffie-Helman dan Skema enkripsi-dekripsi ElGamal

hanya berlaku untuk data bertipe (integer, float, string, char), bukan

berupa tabel, gambar, suara, video, equation editor dan karakter khusus

lainnya.

3. Panjang kunci yang digunakan antara 1 (satu) sampai 9 (sembilan digit).

4. Selama proses pengiriman sandi, tidak ada gangguan pada saluran

informasi.

3

Page 23: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

BAB II

TINJAUAN PUSTAKA

2.1 Konsep Dasar Matematika Kriptografi

Sebelum membahas lebih jauh mengenai Elliptic Curves Cryptosystem,

terlebih dahulu akan dipaparkan konsep dasar matematika yang berhubungan

dengan persoalan kriptografi.

2.1.1 Aritmatika Modular

Aritmatika Modular adalah operasi modulus yang merupakan sisa

dari hasil pembagian bilangan bulat.

(Iwut, 2004)

2.1.2 Bilangan prima

Bilangan prima adalah bilangan bulat positif p (p > 1) yang

pembaginya hanya 1 dan p.

(Saeki, 1997)

2.1.3 Diskriminan

Dalam http://mathworld.wolfram.com, diskriminan adalah hasil

kuadrat dari selisih akar-akar polinomial (suku banyak).

2.1.4 Grup Elliptic atas Zp

Lapangan berhingga prima Zp adalah suatu lapangan berhingga

yang berisi p elemen. Grup kurva elliptik adalah suatu himpunan yang

terdiri dari titik-titik kurva elliptik atas Zp.

(Khudri, 2005)

4

Page 24: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

2.2 Kriptosistem Kurva Elliptik (Elliptic Curves Cryptosystem)

Kriptosistem kurva elliptik menggunakan masalah logaritma diskrit pada

titik-titik kurva elliptik yang disebut dengan ECDLP (Elliptic Curves Discrete

Logarithm Problem).

2.2.1 Kurva Elliptik

Menurut (Muller, 2001). Grup titik Ep (a1, a2 , a3 , a4 , a6 ) pada kurva

elliptik diberikan sebagai berikut.

{ (x,y) Zp2 : y2 + a1 xy + a3 y = x3 + a2x2 + a4 x + a6 } { O }

dimana O = (∞,∞) dan a1, a2, a3 a4, a6 Zp. Pasangan elemen Zp2

merupakan titik pada E.

Menurut Stallings (Khudri, 2005). Kurva elliptik sebagai suatu

kurva yang dibentuk oleh persamaan kubik dan memiliki persamaan

umum

y2 + a1 xy + a3 y = x3 + a2x2 + a4 x + a6

Menurut (Khudri, 2005) Bentuk kurva yang lebih sederhana dari

persamaan di atas adalah

y2 = x3 + a4 x + a6

a4, a6 dibuat secara random, dimana a4, a6 Zp, a4, a6 ≠ 0 dan harus

memenuhi syarat 4a4 3 + 27a6

2 ≠ 0 (mod p).

5

Page 25: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

2.2.2 Aturan Penjumlahan Dua Titik pada Kurva Elliptik

1. P + O = O + P = P untuk setiap P E(Zp).

2. Jika P = (x1, y1) E(Zp) maka (x1, y1) + (x1, – y1) = O.

3. Diberikan P = (x1,y1) E(Zp) dan Q = (x2,y2) E(Zp), dengan Q

≠ -P. Maka P + Q = (x3,y3) di mana :

untuk P ≠ Q

untuk P = Q

maka diperoleh (x3,y3) sebagai berikut :

dan

(Saeki, 1997)

2.3 Algoritma Pertukaran Kunci Dieffie-Hellman

Algoritma merupakan suatu himpunan langkah-langkah atau instruksi

yang telah dirumuskan dengan baik (well defined) untuk memperoleh suatu

keluaran khusus (specific output) dari suatu masukan khusus (specific input)

dalam langkah yang jumlahnya berhingga.

(Chartrand dan Oellermann, 1993)

Berikut ini algoritma pertukaran kunci Dieffie – Hellman yang

diilustrasikan dua orang user (User_1 dan User_2) :

1. User_1 memilih secara acak sebuah bilangan integer x yang besar dan

mengirimkannnya ke User_2.

X = gx mod n

6

Page 26: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

2. User_2 memilih secara acak sebuah bilangan integer y yang besar dan

mengirimkannya ke User_1.

Y = gy mod n

3. User_1 menghitung nilai k1 = Yx mod n

4. User_2 menghitung nilai k2 = Xy mod n

(Saeki, 1997)

2.4 Algoritma Enkripsi-Dekripsi ElGamal

Berikut ini algoritma enkripsi-dekripsi ElGamal yang diilustrasikan dua

orang user (User_1 dan User_2) :

1. Diberikan p sebuah bilangan prima untuk Zp dan yang merupakan

anggota Zp.

2. Setiap user memilih sebuah kunci rahasia a yang merupakan bilangan

integer untuk 0≤a≤p-2.

3. Setiap user menghitung kunci publik a (mod p) yang nilainya akan

dikirim.

4. Misalkan User_1 akan mengirim pesan x Zp, maka dia harus memilih

sebuah bilangan k secara random, yaitu k Z*p-1 dan mengirimkan pesan

terenkripsi ke User_2 dengan persamaan :

5. Untuk melakukan dekripsi, User_2 menghitung :

dimana aJ merupakan kunci rahasia User_2.

(Saeki, 1997)

7

Page 27: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

BAB III

METODE PENULISAN

3.1 Melakukan pengkajian algoritma pertukaran kunci Dieffie-Hellman dan

algoritma enkripsi ElGamal melalui referensi dari internet.

3.2 Melakukan proses pertukaran kunci Dieffie-Hellman pada kriptosistem kurva

elliptik dengan langkah sebagai berikut :

a. Menentukan bilangan prima (p) dengan syarat p > 3 untuk Zp.

b. Menentukan bentuk persamaan kurva elliptik :

y2 = x3 + a4 x + a6

c. Menentukan sebuah titik random (P) secara acak pada kurva E(Zp).

d. Setiap user memilih secara acak sebuah bilangan integer yang akan

menjadi kunci rahasianya masing-masing. Misal ;

Kunci rahasia1(private1),

Kunci rahasia2(private2),

Dengan private1, private2 Z*p-1

e. Setiap user mengkalikan kunci rahasianya dengan titik P untuk

menghasilkan kunci publik yang dinyatakan sebagai berikut :

Kunci publik_User1, publik1 = private1 * P

Kunci publik_User2, publik2 = private2 * P,

Dimana hasilnya akan dipublikasikan.

8

Page 28: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

f. Setiap user secara terpisah mengkalikan kunci rahasia masing-masing

dengan kunci publik yang diterima dari user lain untuk menghasilkan

kunci rahasia bersama. Ilustrasinya sebagai berikut ;

Kunci rahasia bersama user1(key1),

key1 = private1 * publik2 .

Kunci rahasia bersama user2(key2),

key2 = private2 * publik1.

Sehingga nilai key1 = key2.

3.3 Melakukan Proses Enkripsi ElGamal pada Kriptosistem Kurva Elliptik dengan

langkah sebagai berikut (misal user1 sebagai pengirim pesan (m) ) :

a. Pada proses enkripsi, user1 memilih secara acak sebuah bilangan integer

k yang akan menjadi kunci rahasia bangkitan (private1_gen).

k = {2,3,..,p-1}

b. User1 akan menghitung kunci rahasia bersama bangkitan (key1_gen)

key1_gen = k * publik2

c. Kemudian user1 mengambil nilai absis dari key1_gen (xkey1_gen).

d. Selanjutnya user1 mengenkripsi pesan m dengan menentukan nilai dari

(C1,C2) dengan ketentuan :

C1 = publik1_gen = k * P dan

C2 = m xkey1_gen (Nilai Eksklusif OR dari m dan

xkey1_gen), hasilnya C1 berupa titik, sedangkan m dan C2 berupa

nilai dalam interger, kemudian (C1,C2) dikirim ke user2.

9

Page 29: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

e. Proses dekripsi pada user2 dilakukan dengan mengambil nilai C1 dari

(C1,C2) dengan C1 = publik1_gen, C2 = sandi.

publik1_gen = (xpublik1_gen, ypublik1_gen).

f. Selanjutnya user2 menghitung :

Kunci rahasia bersama bangkitan (key2_gen)

key2_gen = private2 * publik1_gen

g. Kemudian user2 mengambil nilai absis dari key2_gen (xkey2_gen).

h. Selanjutnya user2 mendekripsi sandi dengan ketentuan :

m2 = pesan yang akan diperoleh oleh user2 dari hasil dekripsi.

m2 = xkey2_gen C2

= m

kemudian user2 mengkonversi m2 (dalam desimal) menjadi karakter.

Sehingga user2 mendapatkan pesan m dari user1 yang dikirim

melalui pesan yang sudah dienkripsi.

i. Membuat program untuk pertukaran kunci Dieffie-Hellman dan

enkripsi-dekripsi ElGamal pada elliptic curves cryptosystem.

j. Mengimplementasikan program pada data teks.

10

Page 30: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

BAB IV

PEMBAHASAN

Pada bab ini akan diberikan beberapa penjelasan mengenai penggunaan

kriptosistem kurva elliptik untuk enkripsi dan dekripsi data. Persoalannya adalah

bagaimana mengamankan suatu data.

4.1 Bilangan Prima dan Perkalian Skalar

Menentukan bilangan prima dan perkalian skalar dengan titik merupakan

bagian dari proses enkripsi dan dekripsi data. Bilangan prima merupakan bilangan

yang paling besar diantara semua bilangan yang ada dalam proses perhitungan.

Karena setiap hasil perhitungan apapun, selalu menggunakan modulo bilangan

prima(p). Sehingga nilainya selalu pada interval {0, 1, 2, 3, .., p-1}. Dengan

menggunakan bilangan prima, maka semua unsur tak-nol pada field mempunyai

invers perkalian.

Untuk mencari suatu bilangan prima, diperlukan minimal iterasi sebanyak

dari akar bilangan yang akan diuji keprimaannya. Oleh karena itu, jika kita

menginginkan bilangan prima yang lebih besar maka akan semakin banyak iterasi

yang diperlukan. Hal ini akan mengakibatkan waktu pengujiannya relatif lama.

Operasi perkalian didefinisikan sebagai operasi penjumlahan titik-titik

yang berulang. Misalnya diberikan bilangan bulat k dan sebuah titik P pada kurva

elliptik, maka perkalian skalar k.P adalah penjumlahan terhadap dirinya sendiri

sebanyak k kali.

11

Page 31: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

4.2 Prosedur Algoritma Enkripsi dan Dekripsi

Ilustrasi enkripsi dan dekripsi dapat dilihat pada (Gambar 4.1) mulai dari

proses enkripsi sampai dekripsi.

Gambar 4.1 Skema enkripsi dan dekripsi

Pertukaran kunci adalah proses saling menukar kunci publik antara dua

orang user untuk menghasilkan kunci rahasia bersama.

Langkah –langkah dalam prosedur enkripsi dan dekripsi adalah sebagai berikut :

1. Menentukan bilangan prima (p) dengan syarat p > 3 untuk Zp.

Prosedur untuk menentukan suatu bilangkan prima yang lebih dari 3,

pertama yang dilakukan adalah dengan menentukan bit (panjang bit),

kemudian dimasukan ke dalam input fungsi, maka secara langsung progam

akan menentukan batas maksimal dan minimal dengan memberikan pangkat

sebesar (bit) dan (bit-1), yang kedua menentukan acak_bil dengan

random(max) dan selama acak_bil ≤ min atau acak_bil ≤ 3, maka akan

dilakukan proses perulangan lagi. Kemudian melakukan iterasi(i) mulai dari 2

sampai sqrt(acak_bil) akan dilakukan pengecekan dengan cek =

floor(acak_bil/i)*i. Pada iterasi ke-i jika cek = acak_bil maka dengan perintah

break otomatis program akan keluar dari proses iterasi tersebut, jika sampai

Enkripsi DekripsiPlaintext

Chipertext

Plaintext

Kunci Publik Kunci Rahasia

12

Page 32: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

pada iterasi ke-sqrt(acak_bil) cek < acak_bil maka sudah dapat dipastikan

acak_bil tersebut adalah bilangan prima. Akan tetapi jika kondisi cek =

acak_bil, maka akan dilakukan proses perulangan lagi mulai dari menentukan

acak_bil. Prosedur untuk menentukan bilangan prima dapat dilihat pada

(Gambar 4.2) :

Gambar 4.2 Prosedur Menentukan Bilangan Prima

2. Menentukan bentuk persamaan kurva elliptik :

Proses untuk menentukan bentuk persamaan kurva elliptik pertama yang

dilakukan adalah dengan mengenerate koefisien a4, a6 secara random dengan

Prosedur to generate prime number

prim(int bit)begin

min ← powl(10,bit-1);max ← powl(10,bit);dobegin

dobegin

acak_bil ← random(max);while(acak_bil ≤ min || acak_bil ≤ 3)

endfor i ←2 to sqrt(acak_bil) do begin

hitung ← acak_bil/i;hasil_bagi ←floor(hitung);cek ← hasil_bagi*i;if(cek = acak_bil) then begin

break;endelse if(cek<acak_bil || acak_bil = 2) then

begincontinue;

endend

cal_prim ← acak_bil;while(cek = acak_bil)endprima ← cal_prim;return prima;

end

13

Page 33: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

a4 = random(p) dan a6 = random(p), bilangan prima(p) di sini telah

dihitung sebelumnya pada (Gambar 4.2) dimana a4, a6 Zp dan a4, a6 ≠ 0.

Kemudian melakukan pengecekan dengan memasukkan kedua koefisien

tersebut ke dalam persamaan diskriminan. Jika hasil 4a4 3 + 27a6

2 = 0 (mod p),

maka akan dilakukan proses perulangan kembali mulai dari mengenerate nilai

a4 dan a6 sampai didapatkan hasil dari nilai diskriminannya tidak sama dengan

nol. Untuk itu perlu diketahui dahulu bagaimana proses untuk mencari nilai

modulo dari suatu bilangan. Parameternya ada dua yaitu a dan b, a sebagai

bilangan dan b sebagai pembaginya. Prosedur untuk mencari nilai modulo

terdapat pada (Gambar 4.3) :

Gambar 4.3 Prosedur Menentukan Nilai Modulo

Sedangkan prosedur untuk mengenerate koefisien kurva ellipik tersebut

terdapat pada (Gambar 4.4) :

Gambar 4.4 Prosedur Menentukan Koefisien Kurva Elliptik

Prosedur to generate coefficient elliptic curve

begindobegin

a4←random(p); a6←random(p);

while(mod((4*mod(mod(powl(a4,2),p)*a4,p))+ (27*mod(powl(a6,2),p)),p)=0);end

end

Prosedur to compute modulo value

long double mod(long double a,long double b)begin

if(fmodl(a,b)<0) thenbegin

return (fmodl(a,b)+b); end else then

begin return fmodl(a,b); endend

14

Page 34: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

3. Menentukan sebuah titik P secara acak pada kurva E(Zp).

Prosedur untuk menentukan sebuah titik P(x,y) pada kurva elliptik dengan

persamaan y2 = x3 + a4 x + a6 secara random, yang pertama dilakukan adalah

dengan memasukkan bilangan prima(p), a4, a6, dan keylength. Parameter

settingnya adalah int cek_titik, int nol_satu dan float cek_x. Jika keylength ≤

5, maka program akan mengenerate secara bersama-sama mulai dari x =

random (p) + 1 dan y = random (p) +1, kemudian melakukan proses

pengecekan apakah titik (x,y) tersebut ada dalam kurva elliptik, dengan

cek_titik = y2 - x3 - a4 x - a6. Selama cek_titik ≠ 0, maka akan dilakukan proses

perulangan mulai dari awal, sampai didapatkan cek_titik = 0. Jika keylength >

5, maka program akan mengenerate x = random (p) + 1, kemudian melakukan

proses pengecekan apakah cek_x merupakan bentuk akar. Selama cek_x ≠

cek_akar, maka akan dilakukan proses perulangan mulai dari awal, sampai

didapatkan cek_x = cek_akar, dimana jika nol_satu = 1, maka y =

mod(cek_x,p), akan tetapi jika nol_satu = 0, maka y = mod(-cek_x,p).

Prosedurnya dapat dilihat pada (Gambar 4.5).

4. Setiap user memilih secara acak sebuah bilangan integer yang akan

menjadi kunci rahasianya masing-masing, dengan private1 dan private2

adalah elemen Z*p-1.

Prosedur untuk mengenerate private key kedua user dengan menentukan

nilai dari private1 = random (p-1) + 1 dan private2 = random (p-1) + 1 secara

random. Selama private1, private2 < 1 maka akan terus terjadi perulangan

mulai dari awal program sampai didapatkan private1, private2 ≥ 1.

15

Page 35: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Prosedur untuk menentukan private key dapat dilihat pada (Gambar 4.6).

Gambar 4.5 Prosedur Menentukan Titik Random pada Kurva Elliptik

Gambar 4.6 Prosedur Menentukan private key

5. Setiap user mengkalikan kunci rahasianya dengan titik P untuk

menghasilkan kunci publik yang dinyatakan sebagai berikut :

Prosedur to generate private key

begindobegin

private1← random(p-1)+1; private2← random(p-1)+1;

while(private1 < 1 || private2 < 1)end

end

16

Prosedur to generate random point of elliptic curve

rand_point(long int p, long int a4, long int a6, long int keylength)beginif(keylength ≤ 5) begin

do begin

x_random←random(p)+1; y_random←random(p)+1; cek_titik=mod(mod(powl(y_random,2),p)-mod(mod(powl(x_random,2),p)*x_random,p)- mod(a4*x_random,p)-a6,p); end while(cek_titik ≠0); endelse if(keylength >5) begin do begin x_random←random(p)+1; cek_x=sqrtl(mod(mod(mod(powl(x_random,2),p)*x_random,p)+ mod((a4*x_random),p)+a6,p)); cek_akar=floor(cek_x); end while(cek_x≠cek_akar); nol_satu←random(2); y_random← nol_satu←1 ? mod(cek_x,p) : mod(-cek_x,p); endend

Page 36: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Kunci publik_User1(publik1) = private1 * P

Kunci publik_User2(publik2) = private2 * P.

Sebelum melakukan prosedur penghitungan public key, yang perlu

diperhatikan lebih awal adalah prosedur menghitung invers dari pembagi.

Input variabelnya adalah bilangan prima(p) dan pembagi. Parameter

settingnya adalah a1 = 1, a2 = 0, a3 = p, b1 = 0, b2 = 1 dan b3 = mod

(pembagi,p). Kemudian iterasi untuk mencari nilai q = int[a3/b3], t1= a1 -

mod(q*b1,p), t2=a2 - mod(q*b2,p) dan t3= a3 - mod(q*b3,p). Setelah itu

update nilai a1,a2,a3 dan b1,b2,b3 dengan a1= b1, a2= b2, a3= b3, b1= t1, b2=

t2, b3= t3. Jika nilai b3 ≠ 1, maka akan dilakukan proses iterasi mulai awal.

Jika b3 ≠ 1 maka akan didapatkan nilai inv_pembagi(p,pembagi) = mod(b2,p).

Algoritma ini sangat efektif bila dibandingkan dengan menggunakan cara

konvensional yaitu dengan memberi parameter setting loop = 1, kemudian

dilakukan iterasi dengan menghitung variabel hasil = pembagi *loop (mod p)

dan setiap iterasi, loop akan selalu bertambah 1 tingkat dan dapat di tulis

menjadi loop = loop +1. Proses diatas akan terus dijalankan selama hasil ≠ 1.

Jika hasil = 1 maka akan didapatkan invers dari pembagi sama dengan (loop -

1). Tetapi metode ini akan berjalan lambat bila pada bilangan integer besar.

Karena banyaknya iterasi yang digunakan sebanding dengan besar bilangan

pembagi yang akan dicari nilai inversnya. Prosedur untuk menghitung invers

pembagi dapat dilihat pada (Gambar 4.7) :

17

Page 37: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Gambar 4.7 Prosedur Menentukan Invers Pembagi

Untuk menghitung public key akan dibagi menjadi dua bagian, pertama

adalah melakukan prosedur menggunakan binary algorithm (Gambar 4.9)

dan selanjutnya menghitung hasil penambahan dua titik menggunakan

prosedur penambahan dua titik (Gambar 4.8) dari persamaan umum publik =

private * P. Kedua prosedur diatas akan digunakan untuk menghitung

perkalian antara skalar dengan suatu titik pada kurva elliptik. Maka yang

pertama dilakukan adalah prosedur binary algorithm. Di dalamnya terdapat

metode untuk merubah skalar menjadi bilangan biner nol dan satu, kemudian

setelah skalar diubah menjadi biner dan telah disimpan pada variabel array u[i]

dengan i mulai 1 sampai pada batas iterasi yang didapatkan, misal panjang

digit binernya adalah n, maka langkah selanjutnya adalah memberikan nilai

awal pada x1 = 0 dan y1 = 0, selanjutnnya dilakukan

Prosedur to compute invers of division

inv_pembagi(long int p,long double pembagi)begin //inisialisasi a1←1; b1←0; a2←0; b2←1; a3←p; b3← mod(pembagi,p); do begin q← int [a3/b3]; t1←a1-mod(q*b1,p); t2←a2-mod(q*b2,p); t3←a3-mod(q*b3,p); //update nilai a dan b a1←b1; a2←b2; a3←b3; b1←t1; b2←t2; b3←t3; end while(b3 ≠ 1); return mod(b2,p);end

18

Page 38: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

proses iterasi mulai dari n sampai 1 dengan step -1 untuk mendeteksi nilai

u[i]. Jika u[i] = 1 maka akan dilakukan proses penggandaan titik dan

dilakukan penambahan dengan titik awal. Akan tetapi jika nilai u[i] = 0, maka

hanya akan dilakukan proses penggandaan titik saja. Kemudian yang kedua

dilakukan dengan prosedur penambahan dua titik yang terdapat didalam

prosedur binary algorithm. Misal P1(x1,y1) + P2(x2,y2) = P3(x3,y3). Untuk

menentukan hasil penambahan yaitu titik (x3,y3) digunakan fungsi dengan

nama xy_add2p yang mempunyai input variabel seperti bilangan prima(p), a4,

private key(k), P1(x1, y1), dan P2(x2,y2) serta beberapa parameter setting

yang semuanya digunakan di dalam prosedur.

Untuk kondisi pertama jika x1 = x2 dan y1 = y2, artinya adalah kedua titik

tersebut sama maka dalam aturan penjumlahan pada kurva elliptik persamaan

lamda yang digunakan adalah , dengan

dan

, sehingga untuk

memudahkan perhitungan, maka persamaan tersebut harus dipecah menjadi

beberapa bagian yaitu :

, dan

,

19

Page 39: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Untuk menghitung pembilangx maupun pembilangy dapat dilakukan

secara langsung, akan tetapi untuk pembagix dan pembagiy harus terlebih

dahulu dihitung menggunakan prosedur sesuai dengan (Gambar 4.7). Jika hal

ini tidak dilakukan, maka hasil perhitungan pasti akan salah. Karena

kebanyakan pembagi itu mempunyai nilai lebih besar dari pada pembilangnya

yang akhirnya menghasilkan nilai desimal (ada angka dibelakang koma selain

nol) yang tidak akan pernah ada dalam Zp. Disini ada pengecualian yaitu jika

pembagix ≠ 0 maka untuk mencari nilai invers dari pembagix dan pembagiy

dapat dilakukan dan akan menghasilkan suatu titik (x3,y3) yang memenuhi

persamaan kurva elliptik. Akan tetapi jika pembagix = 0 maka penghitungan

invers tidak dapat dilakukan dan sesuai dengan aturan penjumlahannya,

perhitungan akhir akan menghasilkan titik infinity (O), untuk memudahkan

penghitungan dalam prosedur ini diberikan penanda saja berupa nilai nol

sehingga x3 = 0 dan y3 = 0. Setelah mendapatkan nilai x3 dan y3, kedua nilai

tersebut akan dimasukkan pada x1 dan y1 pada prosedur binary algorithm.

Sehingga x1 = x3 dan y1 = y3 dan nilai x1 dan y1 tetap tidak berubah ketika

proses iterasinya tidak bertambah.

Untuk kondisi kedua jika x1 ≠ x2 atau y1 ≠ y2, artinya adalah kedua titik

tersebut berbeda dan jika x2 = 0 dan y2 = 0 maka sesuai dengan aturan

penjumlahan pada kurva elliptic x3 = x1 dan y3 = y1. Akan tetapi jika tidak

memenuhi itu, maka sesuai dengan aturan penjumlahan pada kurva elliptik

persamaan lamda yang digunakan adalah , dengan

20

Page 40: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

dan

, sehingga untuk

memudahkan perhitungan, maka persamaan tersebut harus dipecah menjadi

beberapa bagian yaitu :

, dan

,

Untuk menghitung pembilangx maupun pembilangy dapat dilakukan

secara langsung, akan tetapi untuk pembagix dan pembagiy harus terlebih

dahulu dihitung menggunakan prosedur sesuai dengan (Gambar 4.7). Jika hal

ini tidak dilakukan, maka hasil perhitungan pasti akan salah. Karena

kebanyakan pembagi itu mempunyai nilai lebih besar dari pada pembilangnya

yang akhirnya menghasilkan nilai desimal (ada angka dibelakang koma selain

nol) yang tidak akan pernah ada dalam Zp. Disini ada pengecualian yaitu jika

pembagix ≠ 0 maka untuk mencari nilai invers dari pembagix dan pembagiy

dapat dilakukan dan akan menghasilkan suatu titik (x3,y3) yang memenuhi

persamaan kurva elliptik. Akan tetapi jika pembagix = 0 maka penghitungan

invers tidak dapat dilakukan dan sesuai dengan aturan penjumlahannya,

perhitungan akhir akan menghasilkan titik infinity (O), untuk memudahkan

penghitungan dalam program ini diberikan penanda saja berupa nilai nol

sehingga x3 = 0 dan y3 = 0. Setelah mendapatkan nilai x3 dan y3, kedua nilai

tersebut akan dimasukkan pada x1 dan y1 pada prosedur binary algorithm.

21

Page 41: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Sehingga x1 = x3 dan y1 = y3 dan nilai x1 dan y1 tetap tidak berubah

ketika proses iterasinya tidak bertambah.

Gambar 4.8 Prosedur Mencari Hasil Penambahan Dua Titik

Prosedur function to compute (x3,y3) from addition two points

void xy_add2p(long int p,long int a4, long int x1, long int x2, long int y1, long int y2)beginparameter setting;

if(x1 = x2 && y1 = y2) thenbegin

pembilangx ← mod(powl(mod(3*mod(powl(x1,2),p)+a4,p),2),p);pembagix ← mod(powl(mod(2*y1,p),2),p);pembilangy ← mod(mod(3*mod(pow(x1,2),p)+a4,p),p);pembagiy ← mod(mod(2*y1,p),p);if(pembagix≠0) thenbegin

inv_pembagix ← inv_pembagi(p,pembagix); inv_pembagiy ← inv_pembagi(p,pembagiy);

x3 ← mod((mod(pembilangx*inv_pembagix,p))-x1-x2,p); y3 ← mod(mod(pembilangy*inv_pembagiy,p)*mod((x1-x3),p)-y1,p); end else if(pembagix = 0) then begin x3 ← 0; // sebagai penanda saja y3 ← 0; // sebagai penanda saja end end else if(x1≠x2 || y1≠y2) then begin if(x2 = 0 && y2 = 0) then begin x3 ← x1; y3 ← y1; end else begin pembilangx ← mod(powl(y2-y1,2),p);

pembagix ← mod(powl(x2-x1,2),p); pembilangy ← mod(y2-y1,p);

pembagiy ← mod(x2-x1,p); if(pembagix≠0) then begin inv_pembagix ← inv_pembagi(p,pembagix);

inv_pembagiy ← inv_pembagi(p,pembagiy); x3 ← mod((mod(pembilangx*inv_pembagix,p))-x1-x2,p); y3 ← mod(mod(pembilangy*inv_pembagiy,p)*mod((x1-x3),p)-y1,p); end

else if(pembagix = 0) then begin x3 ← 0; // sebagai penanda saja y3 ← 0; // sebagai penanda saja end end end

end

22

Page 42: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Gambar 4.9 Prosedur Mencari Hasil Perkalian Skalar Dengan Titik

Prosedur untuk menentukan kunci publik adalah dengan memasukkan

beberapa variabel masukan seperti bilangan prima(p), koefisien kurva

elliptik(a4), private key, x_random dan y_random. Jika ingin menghitung

Prosedur function binary algorithm to compute k*P

void xy_kp(long int p,long int a4, long int k, long int x_random, long int y_random)beginparameter setting;

// merubah k menjadi biner l=1; while(k>0)

begin if(k%2 ← 1) then

begin if(k ← 1)

begin u[l] ← 1; break; end u[l] ← 1; end else then

begin u[l] ← 0; end k ← k/2; l ← l+1; end // penggandaan dan penambahan P x3 ← 0; // inisialisasi titik (x3,y3) ← (0,0) y3 ← 0; for j ← l to j > 0 step -1

begin if(u[j] ← 1) then

begin x1 ← x3; y1 ← y3; xy_add2p(p,a4,x1,x1,y1,y1); x1 ← x3; y1 ← y3; // fungsi penambahan 2 titik xy_add2p(p,a4,x1,x_random,y1,y_random); end else if(u[j] ← 0) then

begin x1 ← x3; y1 ← y3; // fungsi penambahan 2 titik yang sama xy_add2p(p,a4,x1,x1,y1,y1); end endend

23

Page 43: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

x_publik dan y_publik maka variabel-variabel di atas harus dimasukkan

ke dalam prosedur sesuai dengan (Gambar 4.9). Prosedur untuk menentukan

kunci publik dapat dilihat pada (Gambar 4.10).

Gambar 4.10 Prosedur Menentukan Kunci Publik

6. Setiap user secara terpisah mengkalikan kunci rahasia masing-masing

dengan kunci publik yang diterima dari user lain untuk menghasilkan

kunci rahasia bersama. Ilustrasinya sebagai berikut ;

Kunci rahasia bersama user1(key1),

key1 = private1 * publik2.

Kunci rahasia bersama user2(key2),

key2 = private2 * publik1.

Sehingga nilai key1 = key2.

Prosedur untuk menentukan kunci rahasia bersama adalah dengan

memasukkan beberapa variabel masukan seperti bilangan prima(p), koefisien

kurva elliptik(a4), private key, x_publik dan y_publik yang telah ditentukan

nilainya. Jika ingin menghitung x_key dan y_key, maka variabel-variabel di

atas harus dimasukkan ke dalam prosedur sesuai dengan (Gambar 4.9).

Prosedur untuk menentukan kunci rahasia bersama dapat dilihat pada

(Gambar 4.11).

Prosedur to compute of public key

beginxy_kp(p,a4,private1,x_random,y_random);x_publik1 ← x3;y_publik1 ← y3;

end

24

Page 44: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Gambar 4.11 Prosedur Menentukan Kunci Rahasia Bersama

7. Pada proses enkripsi, user1 memilih secara acak sebuah bilangan integer k

yang akan menjadi kunci rahasia bangkitan (private1_gen) dengan interval

k = {2,3,..,p-1}.

Prosedur untuk mengenerate kunci rahasia bangkitan(k) kedua user dengan

menentukan nilai dari k = random (m_kunci[1]). Selama k < 2 maka akan

terus terjadi perulangan mulai dari awal prosedur sampai didapatkan k ≥ 2,

m_kunci[1] adalah bilangan prima yang telah ditentukan dengan mengunakan

prosedur (Gambar 4.2). Prosedur untuk menentukan kunci rahasia bangkitan

dapat dilihat pada (Gambar 4.12) :

Gambar 4.12 Prosedur Menentukan private1_gen

8. User1 akan menghitung kunci rahasia bersama bangkitan (key1_gen)

key1_gen = k * publik2

Prosedur untuk menentukan kunci rahasia bersama bangkitan ke-1 adalah

dengan memasukkan beberapa variabel masukan seperti bilangan

prima(m_kunci[1]) atau (p), koefisien kurva elliptik(m_kunci[2]) atau (a4),

Prosedur to compute other key

beginxy_kp(p,a4,private1,x_publik2,y_publik2); x_key1 ← x3; y_key1 ← y3;

end

Prosedur to generate private1_gen

dobegin

k ← random(m_kunci[1]); //k adalah private1_gen bersifat dinamisend while(k<2)

25

Page 45: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

private1_gen(k), x_publik2(m_kunci[8]) dan y_publik2(m_kunci[9])

yang telah ditentukan nilainya. Jika ingin menghitung x_key1_gen), maka

variabel-variabel di atas harus dimasukkan ke dalam prosedur sesuai dengan

(Gambar 4.9). Prosedur untuk menentukan kunci rahasia bersama bangkitan

dapat dilihat pada (Gambar 4.13).

Gambar 4.13 Prosedur menentukan absis key1_gen

Dalam perhitungan key1_gen, hanya dihitung nilai absisnya saja. Karena

nilai dari ordinatnya(y_key1_gen) tidak diperlukan pada saat proses enkripsi

data.

9. Kemudian user1 mengambil nilai absis dari key1_gen (x_key1_gen).

10. Selanjutnya user1 mengenkripsi pesan m dengan menentukan nilai dari

(C1,C2) dengan ketentuan :

C1 = publik1_gen = k * P , dan

C2 = m x_key1_gen (Nilai XOR dari m dan

x_key1_gen), hasilnya C1 berupa titik, sedangkan m dan C2 berupa

bilangan integer, kemudian (C1,C2) dikirim ke user2.

Prosedur untuk menentukan kunci publik bangkitan (C1) adalah dengan

memasukkan beberapa variabel masukan seperti bilangan prima(m_kunci[1])

atau (p), koefisien kurva elliptik(m_kunci[2]) atau (a4), private_gen(k),

x_random(m_kunci[4]) dan y_random(m_kunci[5]) yang telah ditentukan

Prosedur to compute key1_gen

begin//xy_kp(prima,a4,private1_gen,x_publik2,y_publik2) xy_kp(m_kunci[1],m_kunci[2],k,m_kunci[10],m_kunci[11]); x_key1_gen ← x3;

end

26

Page 46: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

nilainya. Jika ingin menghitung x_publik1_gen dan y_publik1_gen,

maka variabel-variabel di atas harus dimasukkan ke dalam prosedur sesuai

dengan (Gambar 4.9). Prosedur untuk menentukan kunci publik bangkitan

dapat dilihat pada (Gambar 4.14).

Gambar 4.14 Prosedur menentukan publik1_gen

Prosedur menentukan C2 adalah dengan mengambil pesan asli

(m_pesan) yang akan dienkripsi, kemudian mengxorkan m_pesan dengan

x_key1_gen. Proses ini diulang terus-menerus sampai jumlah karakter pesan

asli yang akan kita sandikan habis. Dan untuk menghemat memori komputer,

maka dalam persamaan enkripsi tersebut digunakan kembali variabel m_pesan

untuk menampung pesan sandi dengan sifat auto replace. Pada saat pesan

sandi selesai dihitung hasil enkripsinya, maka pesan sandi tersebut akan segera

disimpan dalam file dengan nama dan ekstensi tertentu sesuai dengan apa

yang diinginkan oleh pengirim pesan asli. Prosedur untuk menentukan C2

dapat dilihat pada (Gambar 4.15).

Gambar 4.15 Prosedur menentukan C2

Prosedur to compute public1_gen (C1)

begin//xy_kp(prima,a4,private1_gen,x_random,y_random)xy_kp(m_kunci[1],m_kunci[2],k,m_kunci[4],m_kunci[5]);x_publik1_gen ← x3y_publik1_gen ← y3

end

Prosedur to compute C2

beginm_pesan ← (m_pesan^x_key1_gen); //logika XOR untuk enkripsi

end

27

Page 47: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

11. Proses dekripsi pada user2 dilakukan dengan mengambil nilai C1 dan C2

dari (C1,C2) dengan C1 = publik1_gen, C2 = sandi. Dengan ketentuan

publik1_gen = (xpublik1_gen, ypublik1_gen).

12. Selanjutnya user2 menghitung kunci rahasia bersama bangkitan

(key2_gen)

key2_gen = private2 * publik1_gen

Prosedur untuk menentukan key2_gen adalah dengan memasukkan

beberapa variabel masukan seperti bilangan prima(m_kunci[1]) atau (p),

koefisien kurva elliptik(m_kunci[2]) atau (a4), private2(m_kunci[11]),

x_publik1_gen dan y_publik1_gen yang telah ditentukan nilainya. Jika ingin

menghitung x_key2 dan y_key2, maka variabel-variabel di atas harus

dimasukkan ke dalam prosedur sesuai dengan (Gambar 4.9). Prosedur untuk

menentukan key2_gen dapat dilihat pada (Gambar 4.16).

Gambar 4.16 Prosedur menentukan absis key2_gen

Dalam perhitungan key2_gen, hanya dihitung nilai absisnya saja. Karena

nilai dari ordinatnya(y_key2_gen) tidak diperlukan pada saat proses dekripsi

data.

13. Kemudian user2 mengambil nilai absis dari key2_gen (xkey2_gen).

14. Selanjutnya user2 mendekripsi sandi dengan ketentuan :

Prosedur to compute key2_gen

begin//xy_kp(prima,a4,private2,x_publik1_gen,y_publik1_gen)xy_kp(m_kunci[1],m_kunci[2],m_kunci[7],x_publik1_gen,y_publik1_gen); x_key2_gen ← x3

end

28

Page 48: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

m2 = pesan yang akan diperoleh oleh user2 dari hasil dekripsi.

m2 = x_key2_gen C2

= m

Prosedur menentukan plaintext(m2) adalah dengan mengambil pesan

sandi (m_sandi) yang telah dienkripsi, kemudian mengxorkan m_sandi dengan

nilai absis dari kunci rahasia bersama bangkitan user2(x_key2_gen). Proses ini

diulang terus-menerus sampai jumlah karakter pesan sandi (chipertext) habis

terbaca. Dan variabel yang digunakan dalam persamaan dekripsi tersebut

plaintext(m2) yang berguna untuk menampung pesan asli yang telah

didapatkan. Setelah itu, maka pesan asli hasil dekripsi tersebut akan segera

disimpan dalam file dengan nama dan ekstensi tertentu sesuai dengan apa

yang diinginkan oleh penerima pesan sandi. Prosedur untuk menentukan C2

dapat dilihat pada (Gambar 4.17).

Gambar 4.17 Prosedur menentukan plaintext

4.3 Data

Data yang digunakan adalah data-data yang memungkinkan dapat oleh

program dalam C++ dengan extensi tertentu. Maksudnya, jika kita ingin

menenkripsi suatu data, maka kita harus mengetahui dahulu apa nama tipe filenya.

Karena tidak semua file dengan tipe yang lebih komplek mempunyai perlakuan

Prosedur to compute plaintext

beginm2 ← char(x_key2_gen^m_sandi); //logika XOR untuk dekripsi

end

29

Page 49: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

yang sama dengan file yang sudah biasa dipakai oleh pengguna yang ada di

seluruh dunia.

Terdapat dua data yang digunakan, antara lain :

1. Data berukuran 38 bytes, panjang kunci 8 bit sampai 72 bit dan file

extensinya adalah .txt dengan nama pesan1.txt (Lampiran 1).

http://downtown.vc/index.php?page=main&id=7448f1156&name=pesan1.zip

2. Data berukuran 608 bytes, panjang kunci 8 bit sampai 72 bit dan file

extensinya adalah .txt dengan nama pesan2.txt (Lampiran 1).

http://downtown.vc/index.php?page=main&id=d9f781304&name=pesan2.txt

4.4 Program

Berdasarkan algoritma yang telah ada diatas, maka akan dibuat program

menggunakan bahasa C++ untuk melakukan pertukaran kunci, proses enkripsi

serta dekripsi data. Dengan adanya program ini, diharapkan dapat memberikan

kemudahan pada saat akan mengirim data teks yang membutuhkan suatu

keamanan.

Dalam penulisan program kriptografi dengan kriptosistem kurva elliptik

ini, dibuat beberapa fungsi yang berguna untuk menyederhanakan penulisan

program yang banyak sekali digunakan. Dan juga untuk memberikan suatu nilai

seni dalam pembuatan program, mulai dari input sampai output, agar orang lain

mudah untuk mengerti proses berjalannya program. Berikut ini akan disajikan

semua fungsi dalam class C++ yang akan digunakan dalam program :

1. prim() digunakan untuk mengenerate bilangan

prima.

30

Page 50: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

2. mod() digunakan untuk memperoleh sisa hasil bagi.

Page 51: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

3. rand_point() digunakan untuk memperoleh titik

random pada kurva elliptik.

4. inv_pembagi() digunakan untuk menghitung invers

pembagi dari suatu bilangan bulat.

5. xy_add2p() digunakan untuk menghitung hasil

penambahan antara dua titik

6. xy_kp() digunakan untuk menghitung hasil

perkalian antara skalar dengan titik pada kurva elliptik.

7. DH() digunakan untuk melakukan pertukaran kunci

antara dua user.

8. Enkripsi_ElGamal() digunakan untuk melakukan

proses enkripsi data.

9. Dekripsi_ElGamal() digunakan untuk melakukan

proses dekripsi data.

10. final_eccvb.cpp digunakan untuk mendefinisikan

proses pertukaran kunci, enkripsi dan dekripsi data. Pada class program

terdapat fungsi utama seperti DH(), Enkripsi_ElGamal(),

Deskripsi_ElGamal(), dan fungsi tambahan seperti prim(), mod(), rand_point

(), inv_pembagi(), xy_add2p(), xy_kp().

class ecc {public :// fungsi utama

void DH(); void Enkripsi_ElGamal(); void Dekripsi_ElGamal(); // fungsi tambahan long int prim(long int);

31

Page 52: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

long double mod(long double, long double);void rand_point(long int, long int, long int, long int);

long int inv_pembagi(long int, long double); void xy_add2p(long int, long int, long int, long int, long int, long int); void xy_kp(long int, long int, long int, long int, long int); private : long int x3,y3; // variabel global (x3,y3)};

Page 53: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

4.5 Contoh Kasus Enkripsi-Dekripsi Data yang Diselesaikan Secara Manual

user name dan password sesuai dengan apa yang anda inputkan secara rahasia ke

email anda dengan cara dienkripsi.

Bagaimana sandi yang di kirim oleh Admin tersebut bisa aman sampai ke

e-mail member dengan menggunakan kriptosistem kurva elliptik ?.

Penyelesaian :

Misalkan administrator sebagai user1 dan calon member sebagai user2,

maka yang harus dilakukan oleh keduanya pertama kali adalah melakukan

pertukaran kunci, setelah itu user1 melakukan proses enkripsi terhadap pesan1.txt

yang berisi user name dan password. Setelah proses enkripsi selesai, data

disimpan dengan nama sandi_pesan1.txt kemudian dikirimkan kepada user2.

Selanjutnya user2 melakukan proses dekripsi data dari file sandi_pesan1.txt

sehingga mendapatkan kembali pesan asli yang dikirim oleh user1 dengan nama

pesan_sandi_pesan1.txt.

Dalam suatu forum diskusi “Dream In Code/DIC”

dengan alamat website http://www.dreamincode.net ada

penawaran untuk menanyakan source code secara free.

Syaratnya adalah seorang guest harus menjadi member

terlebih dahulu. Maka dia wajib masuk menu Log In.

Setelah registrasi, maka administrator akan mengirim

32

Page 54: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Langkah-langkahnya adalah mengunakan prosedur pertukaran kunci untuk

memperoleh kunci rahasia bersama, kemudian baru dilakukan prosedur enkripsi

dan dekripsi data. Berikut ini adalah proses penyelesaiannya :

1. Bilangan prima (p)

Di bawah ini adalah proses untuk mendapatkan bilangan prima (p = 23)

yang kita pilih dengan memasukkan berapa digit panjang bilangan prima yang

akan kita gunakan. Misalkan kita menginginkan 2 digit bilangan, maka batasan

minimal bilangan prima tersebut antara 10 sampai 100.

Ambil acak_bil = 33, kemudian dicek apakah acak_bil kurang dari sama

dengan nilai minimum. Karena 33 > 10 maka proses selanjutnya adalah

menghitung hasil bagi acak_bil dengan bilangan bulat mulai dari 2 sampai nilai

integer dari akar acak_bil. Berikut perhitungannya :

Tabel 4.1. Mencari Bilangan Prima

Karena pada iterasi ke-2 sisa pembagiannya sama dengan nol, maka 33

bukan bilangan prima.

Kemudian ambil lagi acak_bil = 49. Karena 49 > 10 maka proses

selanjutnya adalah menghitung hasil bagi acak_bil dengan bilangan bulat mulai

dari 2 sampai nilai integer dari akar acak_bil. Berikut perhitungannya :

Tabel 4.2. Mencari Bilangan Prima

33

Page 55: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Karena pada iterasi ke-6 sisa pembagiannya sama dengan nol, maka 49

bukan bilangan prima.

Kemudian ambil lagi acak_bil = 23. Karena 23 > 10 maka proses

selanjutnya adalah menghitung hasil bagi acak_bil dengan bilangan bulat mulai

dari 2 sampai nilai integer dari akar acak_bil. Berikut perhitungannya :

Tabel 4.3. Mencari Bilangan Prima

Karena pada iterasi ke-1 sampai iterasi terakhir sisa pembagiannya tidak

ada yang sama dengan nol dan pembaginya kurang dari sama dengan nilai integer

akar dari 23, maka 23 adalah bilangan prima. Sehingga kita mendapatkan p = 23.

2. Persamaan kurva Elliptik

Menentukan persamaan kurva y2 = x3 + a4x + a6 dan nilai a4,a6 acak untuk

koefisiennya. Di bawah ini adalah proses perhitungannya :

Tabel 4.4. Mencari Koefisien

Karena pada iterasi ke-3 nilai acak a4 = 1 dan a6 = 1, sehingga 4 a4 3 +

27 a62 = 4 + 27 = 31 (mod 23) = 8 ≠ 0 (mod 23). Maka nilai diskriminannya tidak

sama dengan nol, maka persamaan tersebut dapat dibentuk menjadi y2 = x3 + 1x +

1.

3. Pilih titik random

Menentukan titik-titik utama pada kurva, kemudian pilih satu titik P

Titik-titik utama pada kurva (y2 = x3 + x + 1 ):

Bilangan prima p = 23

Zp={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22}.

34

Page 56: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Sebelum menentukan elemen-elemen E23(1,1) , terlebih dahulu mencari

quadratic residue modulo 23 (QR23).

Tabel 4.5. QR23

Berdasarkan Tabel 4.1, himpunan quadratic residue modulo

23 adalah QR23 ={0,1,2,3,4,6,8,9,12,13,16,18}. Kemudian menentukan

elemen grup elliptic E23 (1,1) yang merupakan penyelesaian dari persamaan

y2 = x3 + x + 1 (mod 23), untuk x Z23 dan y2 QR23 .

35

Page 57: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Tabel 4.6. Untuk Mencari Elemen E23 (1,1)

Berdasarkan Tabel 4.2, untuk x=0, diperoleh y2=0+0+1 (mod 23) = 1.

Sehingga diperoleh nilai y = 1 dan y = 22. Karena berdasarkan Tabel 4.1, 12 (mod

23)=1 dan 222 (mod 23)=1. Perhitungan untuk nilai x dan y yang lain, dilakukan

dengan cara yang sama. Sehingga didapatkan elemen-elemen grup elliptic modulo

23 atas Z23, yaitu E23(1,1) ={ ( 0,1), (0,22), (1,7), (1,16), (3,10), (3,13), (4,0), (5,4),

(5,19), (6,4), (6,19), (7,11), (7,12), (9,7), (9,16), (11,3), (11,20), (12,4), (12,19),

(13,7), (13,16), (17,3), (17,20), (18,3), (18,20), (19,5), (19,18),O }.

36

Page 58: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Gambar 4.18. Sebaran titik-titik pada kurva elips E23 (1, 1)

Jumlah titik utama pada kurva = 27 titik selain dari titik infinity(O). Misal

titik yang dipilih adalah P = (0,22).

4. Buat private1 dan private2

Menentukan nilai acak kunci rahasia user1(private1) dan user2(private2),

denganprivate1, private2 elemen {2,3,...,p-1} dalam Zp. Misal private1 = 2 dan

private2 = 3.

5. Hitung publik1 dan publik2

kedua user menghitung kunci publik masing-masing dan user1

menghasilkan kunci publik (publik1) = private1*P

publik1 = private1*P = 2 * (0,22)………?

= 2 * (0,22) = (0,22) + (0,22) = …

Aturan penjumlahan (P + Q):

, untuk P≠Q

, untuk P=Q

Maka diperoleh (x3,y3) sebagai berikut :

dan

Karena titiknya sama maka,

0123456789

101112131415161718192021222324

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

37

Page 59: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Invers 44 dari 44*11 = 484 (mod 23) = 1, proses perhitungannya adalah

sesbagai berikut :

Tabel 4.6. Untuk Mencari Invers

Dengan algoritma konvensional yang memanfaatkan banyaknya iterasi

sebagai hasil dari invers pembagi :

Karena pada iterasi ke-11 nilai mod(44*11,23) = 1, maka invers dari 44

adalah 11.

Dengan menggunakan Euclidian algorithm, pemberian nilai awal pada

parameter setting :

a1 = 1 a2 = 0 a3 = p

b1 = 0 b2 = 1 b3 = pembagi = mod(pembagi,p) = mod(44,23) = 21

iterasi 1:

q = int[a3/b3] = int[p/pembagi] = int[23/21] = 1

t1= a1 - mod(q*b1,p) = 1 - mod(0,23) = 1

t2= a2 - mod(q*b2,p) = 0 - mod(1,23) = -1

t3= a3 - mod(q*b3,p) = 23 - mod(21,23) = 2

update nilai a1,a2,a3 dan b1,b2,b3 sehingga,

a1= b1= 0

a2= b2= 1

a3= b3= 21

b1= t1= 1

38

Page 60: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

b2= t2= -1

b3= t3= 2

karena b3 !=1 maka masuk ke iterasi berikutnya

iterasi 2 :

q = int[a3/b3] = int[21/2] = 10

t1= a1 - mod(q*b1,p) = 0 - mod(10,23) = -10

t2= a2 - mod(q*b2,p) = 1 - mod(-10,23) = -12

t3= a3 - mod(q*b3,p) = 21 - mod(20,23) = 1

update nilai a1,a2,a3 dan b1,b2,b3 sehingga,

a1= b1= 1

a2= b2= -1

a3= b3= 2

b1= t1= -10

b2= t2= -12

b3= t3= 1

karena b3 =1 maka iterasi berhenti, sehingga didapatkan hasil invers

pembagi(p,pembagi) = mod(b2,p) = mod(-12,23) = 11. Dengan dua metode yang

yang berbeda akan dipatkan hasil yang sama. Dan perbedaannya hanya pada

iterasi yang dibutuhkan.

Maka invers dari 44 adalah 11.

=121 (mod 23) = 6

= -88 (mod 23) = 4

Jadi publik1 = (x3,y3) = (6,4)

User2 menghasilkan kunci publik (publik2) = private2*P

publik2 = private2*P = 3 * (0,22) =…….?

= 3 * (0,22) = (0,22) + (0,22) + (0,22) = (6,4) + (0,22)

Karena titinya berbeda, maka

(mod 23)

Invers -6 dari -6*11 = -144 (mod 23) = 1, proses mencari invers -6 pada

modulo 23 analog dengan Tabel 4.6.

39

Page 61: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

= 394 (mod 23) = 3

= 56 (mod 23) = 10

Jadi publik2 = (x3,y3) = (3,10)

6. Hitung key1 dan key2

kedua user saling menukar kunci publik mereka masing-masing dan user1

menghasilkan,

key1 = private1*publik2

= 2 * (3,10) = (7,12)

user2 menghasilkan,

key2 = private2*publik1

= 3 * (6,4) = (7,12)

Perhitungan kunci rahasia bersama ini analog dengan perhitungan kunci

publik, sehingga langsung diberikan hasilnya.

7. Pilih private_gen

Menentukan nilai acak kunci rahasia bangkitan user1(private1_gen) atau

disimbolkan (k) yang merupakan elemen {2,3,...,p-1} dalam Z23. Misal kunci

private bangkitan yang pertama adalah private1_gen(k) = 4.

8. Hitung key1_gen dengan publik2

key1_gen = private1_gen*publik2

= 4 * (3,10) = (17,3)

9. Ambil absis key1_gen (xkey1_gen)

Karena key1_gen = (17,3) maka nilai absis dari key1_gen dapat langsung

diambil yaitu (xkey1_gen) = 17

10. Hitung chipertext (C1,C2)

Misalkan user1 ingin mengirim pesan1.txt (Lampiran 1) ke user2 maka

harus dikonversi dulu :

40

Page 62: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Gambar 4.19. Konversi dari karakter ke desimal

Enkripsi Oleh user1 (C1,C2 ) = (kP, A absis(k*publik2)) dengan jumlah blok

sebanyak 1000, artinya setiap 1000 karakter akan dibuat satu publik1_gen. Dan

ini tergantung dari kesepakatan.

generate k1, misal k1 = 4 lalu k1P = 4(0,22) = (13,7) lalu

key1_gen = k1*publik2 = 4(3,10) = (17,3) maka

x_key1_gen = absis(17,3) = 17

(C1,(C2 )1) = ((13,7), u 17) = ((13,7), 117 17) = ((13,7) , 100)

(C2 )2 = (s 17) = (115 17) = 98

... dan selanjutnya analog dengan cara diatas.

Sehingga hasil enkripsi adalah 13 7 100 98 116 ... dan seterusnya.

11. Ambil (C1,C2)

(C1,(C2 )1) = ((13,7) , 100)

(C2 )2 = 98

... dan seterusnya.

12. Hitung key2_gen dengan private2

key2_gen = private2*publik1_gen

Char ASCII(dec)

u 117

s 115

. .

dan seterusnya.

41

Page 63: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

= 3 * (13,7) = (17,3)

13. Ambil absis dari key2_gen

Karena key2_gen = (17,3) maka nilai absis dari key2_gen dapat langsung

diambil yaitu (x_key2_gen) = 17

14. Hitung plaintext (m)

Dekripsi Oleh user2 m = (absis(private2*C1 ) C2) :

m1 = (x_key2_gen (C2) 1) 17 100 = 117 u

m2 = (x_key2_gen (C2)2) 17 98 = 115 s

... dan seterusnya.

Sehingga hasil dekripsinya adalah :

Gambar 4.20. Hasil proses dekripsi manual

4.6 Implementasi Program pada Contoh Kasus Enkripsi dan Dekripsi Data

Program algoritma enkripsi dan dekripsi data dapat diterapkan pada contoh

kasus berikut :

4.6.1 Dengan Menggunakan Data Berukuran 38 bytes, Panjang

Kunci 8 bit sampai 72 bit dan File Extensinya *.txt

Contoh kasus enkripsi dan dekripsi pada sub bab 4.3. dapat diselesaikan

dengan menggunakan program. Parameter-parameternya ada pada file kunci.txt.

seperti pada (Gambar 4.21).

Gambar 4.21. komponen kunci

23 1 1 0 22 2 3 6 4 3 10 7 12 7 12

user name : imamkomcpassword : math

42

Page 64: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Kriptosistem yang disimpan dalam file key.txt adalah susunan dari

komponen kunci mulai dari bilangan prima (p) = 23, koefisien kurva Elliptik a4 =

1 a6 = 1 , titik random terpilih (P) = (0,22), kunci publik user1 (publik1) = (6,4),

kunci publik user2 (publik2) = (3,10), kunci rahasia user1 (private1) = 2 dan kunci

rahasia user2 (private2) = 3. Semua komponen kunci publik tersebut boleh

diketahui oleh pihak lain, kecuali kunci rahasia (private key) dari kedua user. Dari

hasil kesepakatan diatas maka baik user1 maupun user2 bisa memakai komponen

kunci tersebut untuk proses enkripsi dan dekripsi data.

Data plaintext dengan nama pesan1.txt (lampiran 1) akan dienkripsi oleh

user1 dengan menggunakan program sehingga menghasilkan file yang bernama

sandi_pesan1.txt seperti pada (Gambar 4.22).

Gambar 4.22. Chipertext

Hasil data chipertext dengan nama sandi_pesan1.txt ini akan dikirim oleh

user1 kepada user2. Kemudian user2 melakukan proses dekripsi, yaitu mengubah

pesan yang berupa file sandi menjadi pesan yang dapat dibaca sesuai dengan

pesan asli yang dikirim oleh user1. Dan hasilnya adalah sebagai berikut :

Gambar 4.23. Hasil proses dekripsi

13 7 100 98 116 99 49 127 112 124 116 49 43 49 120 124 112 124 122 126 124 114 27 97 112 98 98 102 126 99 117 49 49 43 49 124 112 101 121

user name : imamkomcpassword : math

43

Page 65: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

4.6.2 Dengan Menggunakan Data Berukuran 608 bytes, Panjang Kunci

8 bit sampai 72 bit dan File Extensinya *.txt

Data plaintext dengan nama pesan2.txt (Lampiran 1) akan dienkripsi oleh

user1 dengan menggunakan program sehingga menghasilkan file yang bernama

sandi_pesan2.txt seperti pada (Gambar 4.25). Parameter-parameternya ada pada

file kunci.txt seperti pada (Gambar 4.24)..

Gambar 4.24. komponen kunci

45782949 296156657 855829519 855829519 855829504 855829574 855829589 855829582 855829575 855829587 855829577 855829504 855829589 855829582 855829588 855829589 855829579 855829504 855829581 855829573 855829582 855829575 855829573 855829582 855829573 855829586 855829569 855829588 855829573 855829504 855829570 855829577 855829580 855829569 855829582 855829575 855829569 855829582 855829504 855829584 855829586 855829577 855829581 855829569 855829546 855829580 855829583 855829582 855829575 855829504 855829577 855829582 855829588 855829504 855829573 855829571 855829571 855829530 855829530 855829584 855829586 855829577 855829581 855829512 855829580 855829583 855829582 855829575 855829504 855829577 855829582 855829588 855829504 855829570 855829577 855829588 855829513 855829595 855829546 855829545 855829586 855829569 855829582 855829572 855829583 855829581 855829577 855829594 855829573 855829512 855829513 855829531 855829546 855829545 855829580 855829583 855829582 855829575 855829504 855829577 855829582 855829588 855829504 855829577 855829531 855829546 855829545 855829580 855829583 855829582 855829575 855829504 855829572 855829583 855829589 855829570 855829580 855829573 855829504 855829569 855829571 855829569 855829579 855829631 855829570 855829577 855829580 855829516 855829576 855829577 855829588 855829589 855829582 855829575 855829516 855829576 855829569 855829587 855829577 855829580 855829631 855829570 855829569 855829575 855829577 855829516 855829571 855829573 855829579 855829516 855829581 855829577 855829582 855829516 855829581 855829569 855829592 855829516 855829584 855829586 855829577 855829581 855829569 855829516 855829571 855829569 855829580 855829631 855829584 855829586 855829577 855829581 855829531 855829546 855829545 855829581 855829577 855829582 855829533 855829584 855829583 855829591 855829512 855829521 855829520 855829516 855829570 855829577 855829588 855829517 855829521 855829513 855829531 855829546 855829545 855829581 855829569 855829592 855829533 855829584 855829583 855829591 855829512 855829521 855829520 855829516 855829570 855829577 855829588 855829513 855829531 855829546 855829545 855829572 855829583 855829595 855829546 855829545 855829545 855829572 855829583 855829595 855829546 855829504 855829504 855829504 855829504 855829504 855829504 855829545 855829545 855829545 855829569 855829571 855829569 855829579 855829631 855829570 855829577 855829580 855829533 855829586 855829569 855829582 855829572 855829583 855829581 855829512 855829581 855829569 855829592 855829513 855829531 855829546 855829545 855829545 855829597 855829591 855829576 855829577 855829580 855829573 855829512 855829569 855829571 855829569 855829579 855829631 855829570 855829577 855829580 855829532 855829533 855829581 855829577 855829582 855829504 855829596 855829596 855829504 855829569 855829571 855829569 855829579 855829631 855829570 855829577 855829580 855829532

856818337 527743981 584657872 95859945 14719 444138450 583396766 238161441 644555402 524567951 410172902 62651137 551147701 62651137 551147701

44

Page 66: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Gambar 4.25. Chipertext

Hasil data chipertext dengan nama sandi_pesan2.txt ini akan dikirim oleh

user1 kepada user2. Kemudian user2 melakukan proses dekripsi, yaitu mengubah

pesan yang berupa file sandi menjadi pesan yang dapat dibaca sesuai dengan

pesan asli yang dikirim oleh user1. Dan hasilnya adalah sebagai berikut :

855829533 855829523 855829513 855829531 855829546 855829545 855829545 855829574 855829583 855829586 855829512 855829577 855829533 855829522 855829531 855829577 855829532 855829533 855829587 855829585 855829586 855829588 855829512 855829569 855829571 855829569 855829579 855829631 855829570 855829577 855829580 855829513 855829531 855829577 855829515 855829515 855829513 855829595 855829546 855829545 855829545 855829545 855829576 855829577 855829588 855829589 855829582 855829575 855829533 855829569 855829571 855829569 855829579 855829631 855829570 855829577 855829580 855829519 855829577 855829531 855829546 855829545 855829545 855829545 855829576 855829569 855829587 855829577 855829580 855829631 855829570 855829569 855829575 855829577 855829533 855829574 855829580 855829583 855829583 855829586 855829512 855829576 855829577 855829588 855829589 855829582 855829575 855829513 855829531 855829546 855829545 855829545 855829545 855829571 855829573 855829579 855829533 855829576 855829569 855829587 855829577 855829580 855829631 855829570 855829569 855829575 855829577 855829514 855829577 855829531 855829546 855829545 855829545 855829545 855829577 855829574 855829512 855829571 855829573 855829579 855829533 855829533 855829569 855829571 855829569 855829579 855829631 855829570 855829577 855829580 855829513 855829595 855829546 855829545 855829545 855829545 855829545 855829570 855829586 855829573 855829569 855829579 855829531 855829546 855829545 855829545 855829545 855829597 855829546 855829545 855829545 855829545 855829573 855829580 855829587 855829573 855829504 855829577 855829574 855829512 855829571 855829573 855829579 855829532 855829569 855829571 855829569 855829579 855829631 855829570 855829577 855829580 855829504 855829596 855829596 855829504 855829569 855829571 855829569 855829579 855829631 855829570 855829577 855829580 855829533 855829533 855829522 855829513 855829595 855829546 855829545 855829545 855829545 855829545 855829571 855829583 855829582 855829588 855829577 855829582 855829589 855829573 855829531 855829546 855829545 855829545 855829545 855829597 855829546 855829545 855829545 855829597 855829504 855829504 855829504 855829504 855829546 855829545 855829545 855829571 855829569 855829580 855829631 855829584 855829586 855829577 855829581 855829533 855829569 855829571 855829569 855829579 855829631 855829570 855829577 855829580 855829531 855829546 855829545 855829597 855829591 855829576 855829577 855829580 855829573 855829512 855829571 855829573 855829579 855829533 855829533 855829569 855829571 855829569 855829579 855829631 855829570 855829577 855829580 855829513 855829531 855829546 855829545 855829584 855829586 855829577 855829581 855829569 855829533 855829571 855829569 855829580 855829631 855829584 855829586 855829577 855829581 855829531 855829546 855829545 855829586 855829573 855829588 855829589 855829586 855829582 855829504 855829584 855829586 855829577 855829581 855829569 855829531 855829546 855829597

45

Page 67: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Gambar 4.26. Hasil proses dekripsi

Dari (Gambar 4.26) diperoleh kembali pesan asli yang dikirim oleh user1

dengan menggunakan implementasi program.

// fungsi untuk mengenerate bilangan primalong int ecc::prim(long int bit){

randomize();long int i;long double acak_bil,hitung,hasil_bagi,cek,min,max,prima,cal_prim;min=pow(10,bit-1);max=pow(10,bit);do{

do{ acak_bil=random(max);

}while(acak_bil<=min || acak_bil<=3);for(i=2;i<=sqrt(acak_bil);i++){

hitung=acak_bil/i;hasil_bagi=floor(hitung);cek=hasil_bagi*i;if(cek==acak_bil){

break;}else if(cek<acak_bil || acak_bil==2){

continue;}

} cal_prim=acak_bil;

}while(cek==acak_bil);prima=cal_prim;return prima;

}

46

Page 68: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

1. Algoritma enkripsi dan dekripsi pada kriptosistem

kurva elliptik dapat digunakan untuk mengamankan data. Adapun proses

algoritma enkripsi dan dekripsi untuk mengamankan data adalah sebagai

berikut, pertama mengenerate bilangan prima, kedua menentukan

persamaan kurva elliptik dengan mengenerate koefisien-koefisiennya

secara acak dan memenuhi syarat diskriminan, ketiga menentukan titik

random pada kurva elliptik secara acak, keempat menentukan private1

dan private2 secara acak, kelima menentukan publik1 dan publik2, dan

keenam kedua user saling tukar-menukar kunci publik serta menghitung

key1 dan key2, ketujuh memilih private_gen, kedelapan menghitung

key1_gen dengan publik2, kesembilan ambil absis key1_gen, kesepuluh

menghitung chipertext, kesebelas ambil (C1,C2), keduabelas

menghitung key2_gen dengan private2, ketigabelas mengambil absis

dari key2_gen, dan keempatbelas menghitung plaintext (m).

2. Tujuan membuat program pertukaran kunci dan

enkripsi-dekripsi data dengan kriptosistem kurva elliptik adalah

mengamanan data teks untuk menghindari adanya penyadapan yang

dilakukan oleh pihak-pihak yang tidak berkepentingan. Data yang

diproses dalam enkripsi maupun dekripsi adalah data yang mempunyai

47

Page 69: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

ekstensi *.txt. Data teks yang telah diuji adalah data dengan ukuran 38

bytes dan 608 bytes, setelah

Page 70: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

dienkripsi menjadi 141 bytes dan 4,56 KB. Proses enkripsi yang

dilakukan dengan program C++ akan menghasilkan data

sandi(chipertext), dengan ukuran lebih besar dari data asli(plaintext).

Dalam proses dekripsi akan menghasilkan data yang ukurannya sama

dengan data asli.

5.2 Saran

Kriptosistem kurva elliptik dapat menjadi pilihan yang baik untuk

membangun sistem kriptografi masa depan yang memiliki tingkat kemanan

yang tinggi. Untuk penelitian selanjutnya, dapat dilakukan beberapa hal

antara lain :

1. Panjang kunci yang digunakan lebih dari 9 (sembilan) digit.

2. Tipe data yang dienkripsi lebih luas dan bervariatif,

bukan hanya data dengan tipe teks.

48

Page 71: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

DAFTAR PUSTAKA

Kadir, Abdul, Pemrograman Visual C++, ANDI, Yogyakarta, 2004

Iwut, Iwan, 2004, Elliptic Curve Cryptography Jurusan Teknik Elektro, STT

TELKOM, Bandung.

Juhana, Nana, 2005, Implementasi Elliptic Curves Cryptosystem (ECC) Pada

Proses Pertukaran Kunci Diffie-Hellman dan Skema Enkripsi ElGamal,

Institut Teknologi Bandung, Bandung.

Khudri, Wan, 2005, Enkripsi Dan Dekripsi Data Menggunakan Algoritma

ElGamal ECC (ElGamal Elliptic Curve Cryptography). Fakultas

Matematika dan Ilmu Pengetahuan Alam, Universitas Sebelas Maret.

Muller, Volker, 2001, Differential Fault Attacks on Elliptic Curve

Cryptosystems (Extended Abstract). UKDW, Jogyakarta.

Saeki, Mugino, 1997, Elliptic Curve Cryptosystems, School of Computer

Science McGill University, Montreal.

49

Page 72: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Lampiran 1. Input Data Program A. pesan1.txt

B. pesan2.txt

// fungsi untuk mengenerate bilangan primalong int ecc::prim(long int bit){

randomize();long int i;long double acak_bil,hitung,hasil_bagi,cek,min,max,prima,cal_prim;min=pow(10,bit-1);max=pow(10,bit);do{

do{ acak_bil=random(max);

}while(acak_bil<=min || acak_bil<=3);for(i=2;i<=sqrt(acak_bil);i++){

hitung=acak_bil/i;hasil_bagi=floor(hitung);cek=hasil_bagi*i;if(cek==acak_bil){

break;}else if(cek<acak_bil || acak_bil==2){

continue;}

} cal_prim=acak_bil;

}while(cek==acak_bil);prima=cal_prim;return prima;

}

user name : imamkomcpassword : math

Page 73: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Lampiran 2. Source Code Program.

(final_eccvb.cpp)

#include <conio.h>#include <stdio.h>#include <math.h>#include <stdlib.h>#include <fstream.h>#include <sys\timeb.h>

class ecc {public :

ecc(); // fungsi utama void DH(); // untuk pertukaran kunci antara dua user

void Enkripsi_ElGamal(); // untuk melakukan proses enkripsivoid Dekripsi_ElGamal(); // untuk melakukan proses dekripsi

// fungsi tambahan long int prim(long int); // untuk mengenerate bilangan prima

long double mod(long double, long double); // untuk mencari modulo dari suatu bilangan// untuk mengenerate titik random pada kurva elliptikvoid rand_point(long int, long double, long double, long int); // untuk mencari invers pembagi long int inv_pembagi(long int, long double); // untuk mencari hasil penambahan dua titikvoid xy_add2p(long int, long double, long double, long double, long double, long double); // untuk mencari hasil perkalian skalar dengan titik void xy_kp(long int, long int, long int, long double, long double);

private : long double x3,y3; // variabel global (x3,y3) long double x_random,y_random; // variable global titik random };

ecc::ecc() {}struct timeb t;// fungsi untuk mengenerate bilangan primalong int ecc::prim(long int bit){

randomize();long int i;long double acak_bil,hitung,hasil_bagi,cek,min,max,prima,cal_prim;min=pow(10,bit-1);max=pow(10,bit);do{

do{ acak_bil=random(max);

}while(acak_bil<=min || acak_bil<=3);for(i=2;i<=sqrt(acak_bil);i++){

hitung=acak_bil/i;hasil_bagi=floor(hitung);cek=hasil_bagi*i;if(cek==acak_bil){

break;}else if(cek<acak_bil || acak_bil==2){

continue;}

} cal_prim=acak_bil;

}while(cek==acak_bil);prima=cal_prim;

Lampiran 2-1

Page 74: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

return prima;}

// fungsi untuk mencari modulo suatu bilanganlong double ecc::mod(long double a,long double b){

if(fmodl(a,b)<0){return (fmodl(a,b)+b);

}else{

return fmodl(a,b);}

}// fungsi untuk mengenerate titik random pada kurva elliptikvoid ecc::rand_point(long int p, long double a4, long double a6, long int keylength){

long int cek_titik,nol_satu,cek_akar;long double cek_x;if(keylength<=5){

do{x_random=random(p)+1;y_random=random(p)+1;cek_titik=mod(mod(powl(y_random,2),p)-mod(mod(powl(x_random,2),p)*x_random,p)- mod(a4*x_random,p)-a6,p);

}while(cek_titik!=0);}else if(keylength>5){

do{x_random=random(p)+1;

cek_x=sqrtl(mod(mod(mod(powl(x_random,2),p)*x_random,p)+mod((a4*x_random),p)+a6,p)); cek_akar=floor(cek_x);

}while(cek_x!=cek_akar);nol_satu=random(2);

nol_satu; y_random = nol_satu=1 ? mod(cek_x,p) : mod(-cek_x,p);

}}

// fungsi untuk mencari invers dari suatu pembagilong int ecc::inv_pembagi(long int p,long double pembagi){

long double a1,a2,a3,b1,b2,b3,t1,t2,t3;long int q;//inisialisasia1=1; b1=0;a2=0; b2=1;a3=p; b3=mod(pembagi,p);//if(b3==0){//tidak memiliki invers atau menghasilkan titik infinity//}do{

q=floor(a3/b3); t1=a1-mod(q*b1,p); t2=a2-mod(q*b2,p); t3=a3-mod(q*b3,p); //update nilai A dan B a1=b1; a2=b2; a3=b3; b1=t1; b2=t2; b3=t3; }while(b3!=1); return mod(b2,p);}

Lampiran 2-2

Page 75: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

// fungsi untuk mencari hasil (x3,y3) penambahan 2 titikvoid ecc::xy_add2p(long int p, long double a4, long double x1, long double x2, long double y1, long double y2){

long double pembilangx,pembagix,pembilangy,pembagiy,inv_pembagix,inv_pembagiy;if(x1==x2 && y1==y2){

pembilangx=mod(powl(mod(3*mod(powl(x1,2),p)+a4,p),2),p);pembagix=mod(powl(mod(2*y1,p),2),p);pembilangy=mod(mod(3*mod(powl(x1,2),p)+a4,p),p);pembagiy=mod(mod(2*y1,p),p);if(pembagix!=0){

inv_pembagix=inv_pembagi(p,pembagix);inv_pembagiy=inv_pembagi(p,pembagiy);x3=mod((mod(pembilangx*inv_pembagix,p))-x1-x2,p);y3=mod(mod(pembilangy*inv_pembagiy,p)*mod((x1-x3),p)-y1,p);

}else if(pembagix==0){

x3=0; // sebagai penanda sajay3=0; // sebagai penanda saja

}}else if(x1!=x2 || y1!=y2){

if(x2==0 && y2==0){y3=y1;x3=x1;

}else if(x1==0 && y1==0){

y3=y2;x3=x2;

}else{

pembilangx=mod(powl(y2-y1,2),p);pembagix=mod(powl(x2-x1,2),p);pembilangy=mod(y2-y1,p);pembagiy=mod(x2-x1,p);if(pembagix!=0){

inv_pembagix=inv_pembagi(p,pembagix);inv_pembagiy=inv_pembagi(p,pembagiy);x3=mod((mod(pembilangx*inv_pembagix,p))-x1-x2,p);y3=mod(mod(pembilangy*inv_pembagiy,p)*mod((x1-x3),p)-y1,p);

}else if(pembagix==0){

x3=0; // sebagai penanda sajay3=0; // sebagai penanda saja

}}

}}// fungsi untuk mencari hasil (x3,y3) perkalian antara skalar dengan titikvoid ecc::xy_kp(long int p,long int a4, long int k, long double x, long double y){

long int u[100],l,j,x1,y1; // merubah k menjadi binerl=1;while(k>0){

if(k%2==1){if(k==1){

u[l]=1;break;

}u[l]=1;

}else{

u[l]=0;

Lampiran 2-3

Page 76: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

}k=k/2;l=l+1;}

// penggandaan dan penambahan Px3=0; // ini sialisasi titik (x3,y3)=(0,0)y3=0;for(j=l;j>0;j--){

if(u[j]==1){x1=x3;y1=y3;xy_add2p(p,a4,x1,x1,y1,y1);x1=x3;y1=y3;// fungsi penambahan 2 titikxy_add2p(p,a4,x1,x,y1,y);

}else if(u[j]==0){

x1=x3;y1=y3;// fungsi penambahan 2 titik yang samaxy_add2p(p,a4,x1,x1,y1,y1);

}}

}

void ecc::DH(){ofstream file_output;file_output.open("kunci.txt");ftime(&t);long int waktu_awal, waktu_akhir;float waktu,second;long double a4,a6,det; long int p;long int private1,private2;long int x_key1,y_key1,x_key2,y_key2;long double x_publik1,y_publik1,x_publik2,y_publik2;char strbit[1000],buffer[1000]; long int bit,count_input;

randomize();cout<<"\n-------------------Pertukaran Kunci DH----------------\n";cout<<"\nGenerate bil. prima p :\n";count_input=0;

start: cout<<"Masukkan panjang kunci :"; strcpy(strbit,cgets(buffer)); if (atoi(strbit)<=0 || atoi(strbit)>9 ||strlen(strbit)!=1){

cout<<"\n<WARNING> : 'Panjang kunci harus bilangan bulat antara 1 sampai 9'\n\n";count_input++;if(count_input%4==0){

clrscr();}goto start;

}bit=atoi(strbit); // bit adalah keylength

waktu_awal=time(NULL);//awal waktu generate mulai dihitung p=prim(bit); cout<<"\np = "<<p<<"\n";

cout<<"\nGenerate koefisien kurva : \n";do{

Lampiran 2-4

Page 77: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

a4=random(p); a6=random(p); }while(mod((4*mod(mod(powl(a4,2),p)*a4,p))+(27*mod(powl(a6,2),p)),p)==0);

det=mod((4*mod(mod(powl(a4,2),p)*a4,p))+(27*mod(powl(a6,2),p)),p); cout<<"a4 = "<<long(a4)<<", "<<"a6 = "<<long(a6)<<"\n"; cout<<"nilai 4*a4^3 + 27*a6^2 (mod "<<p<<") = " <<long(det)<<"\n\n"; cout<<"Persamaan kurva :"<<" "<<"y^2 = x^3 + "<<long(a4)<<"x + "<<long(a6);

cout<<"\n\nMenentukan titik random (x,y) : \n"; rand_point(p, a4, a6, bit); // generate titik random cout<<"Titik random terpilih = ("<<long(x_random)<<","<< long(y_random)<<")"; cout<<"\n\nGenerate kunci rahasia : \n"; do{ // batasan nilai private ={1,..,p-1} private1=random(p-1)+1; private2=random(p-1)+1; }while(private1<1 || private2<1);

cout<<"private1 = "<<private1<<"\n"; cout<<"private2 = "<<private2<<"\n\n";

cout<<"Menghitung kunci publik : \n"; xy_kp(p,a4,private1,x_random,y_random); x_publik1=x3; y_publik1=y3; xy_kp(p,a4,private2,x_random,y_random); x_publik2=x3; y_publik2=y3; cout<<"\npublik1="<<private1<<"*("<< long(x_random)<<","<< long(y_random)<<")";

cout<<"=("<< long(x_publik1)<<","<< long(y_publik1)<<")\n";cout<<"publik2="<<private2<<"*("<< long(x_random)<<","<< long(y_random)<<")";cout<<"=("<< long(x_publik2)<<","<< long(y_publik2)<<")\n\n";

cout<<"Menghitung kunci rahasia bersama : \n"; xy_kp(p,a4,private1,x_publik2,y_publik2); x_key1=x3; y_key1=y3; xy_kp(p,a4,private2,x_publik1,y_publik1); x_key2=x3; y_key2=y3; cout<<"key1="<<private1<<"*("<< long(x_publik2)<<","<< long(y_publik2)<<")";

cout<<”=("<<x_key1<<","<<y_key1<<")\n";cout<<"key2 ="<<private2<<"*("<< long(x_publik1)<<","<< long(y_publik1)<<")";cout<<"=("<<x_key2<<","<<y_key2<<")\n\n";

//menampilkan kunci kesepakatan dari protokol DH file_output<<p<<" "<< long(a4)<<" "<< long(a6)<<" "; file_output<< long(x_random)<<" "<< long(y_random)<<" "; file_output<<private1<<" "<<private2<<" "; file_output<< long(x_publik1)<<" "<< long(y_publik1)<<" "; file_output<< long(x_publik2)<<" "<< long(y_publik2)<<" "; file_output<<x_key1<<" "<<y_key1<<" "; file_output<<x_key2<<" "<<y_key2<<" ";

waktu_akhir=time(NULL);//akhir waktu generate mulai dihitungsecond=(t.millitm/1000.0);waktu=(waktu_akhir-waktu_awal)+second;cout<<endl;cout<<"waktu generate kunci = "<<waktu<<" "<<"detik"<<endl;

}

void ecc::Enkripsi_ElGamal(){

Lampiran 2-5

Page 78: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

ftime(&t);long int waktu_awal, waktu_akhir;float waktu,second;long int x_publik1_gen,y_publik1_gen;long int x_key1_gen;//,y_key1;long int loop,i,loop_p;long int iter;long int k,byk_blok;char fpesan_in[500],fpesan_out[500],buffer[500],fpesan_inTemp[500],fpesan_outTemp[500];long int count_input;

randomize(); again1: cout<<"\n\n-------------------Skema Enkripsi ElGamal----------------\n\n"; cout<<"Ambil hasil pertukaran kunci :\n";

char *datakunci="kunci.txt";long double *m_kunci;ifstream file_dtkunci;file_dtkunci.open(datakunci);m_kunci=new long double[50];loop=0;while(!file_dtkunci.eof()){

file_dtkunci>>m_kunci[loop+1];loop++;

}iter=loop-1; //karena membacanya per bilanganfile_dtkunci.close();//cek existensi file kunci.txtif(iter==0){

cout<<"\n<WARNING> : 'File "<<datakunci;cout<<" is NULL, please enter keylength to key exchange!'\n\n";DH();clrscr();goto again1;

}for(i=1;i<=iter;i++){

cout<<long(m_kunci[i])<<" ";}cout<<"\n\n";

cout<<"Ring kunci yang dimiliki user1 :"<<"\n"; cout<<"prima = "<< long(m_kunci[1])<<"\n"; cout<<"a4 = "<<long(m_kunci[2])<<"\n"; cout<<"a6 = "<<long(m_kunci[3])<<"\n"; cout<<"Titik random(P) = ("<<long(m_kunci[4])<<","<< long(m_kunci[5])<<")\n"; cout<<"publik2 = ("<<long(m_kunci[10])<<","<< long(m_kunci[11])<<")\n"; cout<<"private1 = "<< long(m_kunci[6])<<"\n\n";

count_input=0; // menghitung berapa kali seorang user tesebut mencoba memasukkan file again: //jika file tidak ditemukan strcpy(fpesan_out,"sandi_"); //untuk mereset supaya hasil strcat tidak menumpuk

cout<<"Masukkan path/nama file yang akan dienkripsi = "; buffer[0]=char(500); // ini adalah space untuk penampungan karakter input mulai dari null strcpy(fpesan_in,cgets(buffer));

//Input pesan FILE *input;

long int m_pesan; input = fopen(fpesan_in, "r");

//cek existensi file pesan

Lampiran 2-6

Page 79: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

if (input== NULL){cout<<"\n<WARNING> : 'File "<< fpesan_in<<" not found,”;cout<<” enter name file plaintext with correct!'\n\n";count_input++;if(count_input%4==0){

clrscr();}goto again;

}

strcpy(fpesan_inTemp,strrev(fpesan_in)); int pos_slash=0; for(i=1;i<=int(strlen(fpesan_inTemp));i++){ pos_slash++; if(fpesan_inTemp[i]==92){ //char slash '\' break; }

}pos_slash= int(strlen(fpesan_inTemp)) - pos_slash; // dari misal kunci.txt menjadi sandi_kunci.txt

//pengkodisian jika pos_slash = 0 atau != 0 if(pos_slash==0){ // jika dalam current folder //kond. 1"<<"\n";

//fpesan_out = menambah fpesan_in dengan sandi_.txt strcpy(fpesan_out,strcat(fpesan_out,strrev(fpesan_in)));

}else{ // jika dengan path dinamis

//kond. 2"<<"\n";strcpy(fpesan_in,strrev(fpesan_in));// split name path menjadi 2 bagian

//bagian1int loop_take=0;for(i=0;i<pos_slash;i++){

fpesan_outTemp[loop_take]=fpesan_in[i];loop_take++;

}fpesan_outTemp[loop_take]= '\0'; // to destroy noisestrcpy(fpesan_out,strcat(fpesan_outTemp,fpesan_out));

//bagian2loop_take=0;for(i=pos_slash;i< int(strlen(fpesan_inTemp));i++){

fpesan_outTemp[loop_take]=fpesan_in[i];loop_take++;

}fpesan_outTemp[loop_take]= '\0'; // to destroy noisestrcpy(fpesan_out,strcat(fpesan_out,fpesan_outTemp));

} cout<<"\nNama file hasil enkripsi = "; cprintf(fpesan_out); // animasi warna hijau pada nama file sandi cout<<"\n";

waktu_awal=time(NULL);//awal waktu enkripsi mulai dihitung ofstream file_output; // code untuk menulis hasil enkripsi pada file fpesan_out

file_output.open(fpesan_out); cout<<"\nProses enkripsi/ user1 menghitung( pesan[] ^ x_key1) :"<<"\n"; cout<<"Please wait."; loop_p=0; byk_blok=1000; // jumlah blok tergantung kesepakatan while((m_pesan=fgetc(input))!= EOF){

if(loop_p%byk_blok==0){

Lampiran 2-7

Page 80: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

do{k=random(m_kunci[1]); //k adalah private1_gen bersifat dinamis

}while(k<2);//untuk menghitung k*P (P adalah titik pada kurva yang dipilih bersama)xy_kp(m_kunci[1],m_kunci[2],k,m_kunci[4],m_kunci[5]);//x_kp(prima,a4,private1_gen,xrandom,yrandom)x_publik1_gen=x3;y_publik1_gen=y3; // m_kunci[4] adalah x_random, m_kunci[5] adalah y_randomfile_output<<x_publik1_gen<<" "<<y_publik1_gen<<" "; // akan dikirim ke user2

//untuk menghitung k*Publik key user2xy_kp(m_kunci[1],m_kunci[2],k,m_kunci[10],m_kunci[11]);//x_kp(prima,a4,private1_gen,xpublik2,ypublik2)x_key1_gen=x3;

}m_pesan=(m_pesan^x_key1_gen); //logika XOR file_output<<m_pesan<<" ";loop_p++;//animasi saat proses enkripsiif(loop_p%100000==0){

cout<<".";}

}cout<<"!";iter=loop_p; //karena membacanya per karakterfclose(input);cout<<"\n\njumlah karakter pesan = "<<iter;cout<<"\n\n"; cout<<"Done......!";waktu_akhir=time(NULL);//akhir waktu enkripsi mulai dihitung

second=(t.millitm/1000.0); waktu=(waktu_akhir-waktu_awal)+second; cout<<endl; cout<<"waktu enkripsi = "<<waktu<<" "<<"detik"<<endl;}

void ecc::Dekripsi_ElGamal(){ftime(&t);long int waktu_awal, waktu_akhir;float waktu,second;long int x_key2_gen;long int i,loop_s,loop_p;long int loop,iter;char pesan2;char fsandi_in[500],fsandi_out[500],buffer[500],fsandi_inTemp[500],fsandi_outTemp[500];long int byk_blok,cek_stop,stop,x_publik1_gen,y_publik1_gen,count_input;

randomize(); again1:

cout<<"\n\n-------------------Skema Dekripsi ElGamal----------------\n\n";cout<<"Ambil hasil pertukaran kunci :\n";char *datakunci="kunci.txt";long double *m_kunci;//ofstream file_datakunci;ifstream file_dtkunci;file_dtkunci.open(datakunci);m_kunci=new long double[50];loop=0;while(!file_dtkunci.eof()){file_dtkunci>>m_kunci[loop+1];loop++;}

Lampiran 2-8

Page 81: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

iter=loop-1; //karena membacanya per bilanganfile_dtkunci.close();if(iter==0){

cout<<"\n<WARNING> : 'File "<<datakunci<<" is NULL,”;cout<<” please enter keylength to key exchange!'\n\n";DH();

clrscr(); Enkripsi_ElGamal(); clrscr(); goto again1;

}for(i=1;i<=iter;i++){

cout<<long(m_kunci[i])<<" ";}cout<<"\n\n";

cout<<"Ring kunci yang dimiliki user2 :"<<"\n"; cout<<"prima = "<< long(m_kunci[1])<<"\n";cout<<"a4 = "<< long(m_kunci[2])<<"\n";cout<<"a6 = "<< long(m_kunci[3])<<"\n";cout<<"Titik random(P) = ("<<long(m_kunci[4])<<","<< long(m_kunci[5])<<")\n";cout<<"publik2 = ("<<long(m_kunci[10])<<","<< long(m_kunci[11])<<")\n";cout<<"private2 = "<< long(m_kunci[7])<<"\n\n";

count_input=0; // menghitung berapa kali seorang user tesebut mencoba memasukkan fileagain: //jika file tidak ditemukanstrcpy(fsandi_out,"pesan_"); //untuk mereset supaya hasil strcat tidak menumpuk

cout<<"Masukkan path/nama file yang akan dideskripsi = "; buffer[0]=char(500); // ini adalah space untuk penampungan karakter input mulai dari nullstrcpy(fsandi_in,cgets(buffer));

//Input pesanFILE *input;long int m_sandi;input = fopen(fsandi_in, "r");

//cek existensi file sandi if (input== NULL){

cout<<"\n<WARNING> : 'File "<< fsandi_in<<" not found,”;cout<<” enter name file chipertext with correct!'\n\n";

count_input++; if(count_input%4==0){

clrscr();}

goto again; }

strcpy(fsandi_inTemp,strrev(fsandi_in));int pos_slash=0;for(i=1;i<=int(strlen(fsandi_inTemp));i++){

pos_slash++;if(fsandi_inTemp[i]==92){ //char slash '\'

//cout<<"\npos_slash = "<<pos_slash<<"\n"; break; }

}pos_slash= int(strlen(fsandi_inTemp)) - pos_slash; // dari misal kunci.txt menjadi kunci_sandi.txt

//pengkodisian jika pos_slash = 0 atau != 0 if(pos_slash==0){ // jika dalam current folder

//kond. 1"<<"\n";

Lampiran 2-9

Page 82: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

//fpesan_out = menambah fpesan_in dengan sandi_strcpy(fsandi_out,strcat(fsandi_out,strrev(fsandi_in)));

}else{ // jika dengan path dinamis

//kond. 2"<<"\n";strcpy(fsandi_in,strrev(fsandi_in));

// split name path menjadi 2 bagian ://bagian1int loop_take=0;for(i=0;i<pos_slash;i++){

fsandi_outTemp[loop_take]=fsandi_in[i];loop_take++;

}fsandi_outTemp[loop_take]= '\0'; // to destroy noise strcpy(fsandi_out,strcat(fsandi_outTemp,fsandi_out));//bagian2loop_take=0;for(i=pos_slash;i< int(strlen(fsandi_inTemp));i++){

fsandi_outTemp[loop_take]=fsandi_in[i];loop_take++;

}fsandi_outTemp[loop_take]= '\0'; // to destroy noisestrcpy(fsandi_out,strcat(fsandi_out,fsandi_outTemp));

} cout<<"\nNama file hasil dekripsi = ";cprintf(fsandi_out); // animasi warna hijau pada nama file hasil decryptcout<<"\n";

waktu_awal=time(NULL);//awal waktu deskripsi mulai dihitungofstream file_output; // code untuk menulis hasil dekripsi pada file fsandi_outfile_output.open(fsandi_out);ifstream file_hitung; // code untuk membaca file fsandi_infile_hitung.open(fsandi_in);loop=0;while(!file_hitung.eof()){file_hitung>>m_sandi;loop++;} iter=loop-1;

cout<<"\njumlah semua karakter pesan sandi = "<<iter;cout<<"\n\n";cout<<"Proses Deskripsi/ user2 menghitung( x_key2 ^ sandi[]) :"<<"\n";byk_blok=1000; // jumlah blok tergantung kesepakatancek_stop=iter/(byk_blok+2);if(iter%(byk_blok+2)!=0){

stop=iter-2*(cek_stop+1); }

else{ stop=iter-2*cek_stop;

} cout<<"jumlah karakter pesan = "<<stop;cout<<"\n\n";cout<<"Please wait."; ifstream file_dt;file_dt.open(fsandi_in);loop_p=0;loop_s=1;do{

file_dt>>m_sandi;if(loop_p%(byk_blok+2)==0 || (loop_p-1)%(byk_blok+2)==0){

Lampiran 2-10

Page 83: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

if(loop_p%(byk_blok+2)==0){x_publik1_gen=m_sandi;

}else if((loop_p-1)%(byk_blok+2)==0){

y_publik1_gen=m_sandi;

// untuk menghitung private2*publik1_gen //x_kp(prima,a4,private2,x_publik1_gen,y_publik1_gen)

xy_kp(m_kunci[1],m_kunci[2],m_kunci[7],x_publik1_gen,y_publik1_gen);x_key2_gen=x3;

}}

else if(loop_p%(byk_blok+2)!=0 && (loop_p-1)%(byk_blok+2)!=0){ pesan2=char(x_key2_gen^m_sandi); //logika XOR file_output<<pesan2; loop_s++;

}

loop_p++;//animasi saat proses enkripsiif(loop_p%100000==0){

cout<<".";}

}while(loop_s<=stop);cout<<"!";cout<<"\n\nDone....!";waktu_akhir=time(NULL);//akhir waktu deskripsi mulai dihitungsecond=(t.millitm/1000.0);waktu=(waktu_akhir-waktu_awal)+second;cout<<endl;cout<<"waktu deskripsi = "<<waktu<<" "<<"detik"<<endl;

}

void main (){//deklarasi nama objek dari classecc run;char strpilih[1000],buffer[1000]; //untuk animasi warna pilihanint pilih; cout.setf(ios::fixed,ios::floatfield); // floatfield set to fixed

do {clrscr ();textcolor(10); //warna hijaucprintf("\nNama : Imam Kholissodin");printf("\n"); //new linecprintf("Nim : 080312630");printf("\n\n");cout<<"1. Penentuan Kunci Dieffie-Hellman ECC\n";cout<<"2. Enkripsi ElGamal ECC\n";cout<<"3. Dekripsi ElGamal ECC\n";cout<<"4. Keluar \n";cout<<"masukkan pilihan anda :";strcpy(strpilih,cgets(buffer)); pilih=atoi(strpilih);switch(pilih){

case 1:{run.DH();cout<<endl;cout<<"\npress any key to be continue...... \n";getch ();break;

}case 2:{

Lampiran 2-11

Page 84: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

run.Enkripsi_ElGamal();cout<<endl;cout<<"\npress any key to be continue...... \n";getch ();break;

}case 3:{

run.Dekripsi_ElGamal();cout<<endl;cout<<"\npress any key to be continue...... \n";getch ();break;

}}

}while (pilih!=4);}

Lampiran 2-12

Page 85: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Lampiran 3. Display Loading to Main Program.

Lampiran 4. Display Main Program.

Page 86: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Lampiran 5. Display Program Penentuan Kunci.

Lampiran 6. Display Program Enkripsi Data.

Lampiran 7. Display Program Dekripsi Data.

Page 87: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Lampiran 8. Display Program ECC Dos.

Lampiran 9. Display About Program.

Page 88: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

Lampiran 10. Output Data Program.

A. pesan1.txt

1. Enkripsi pesan1.txt

-------------------Skema Enkripsi ElGamal----------------

Ambil hasil pertukaran kunci :

Ring kunci yang dimiliki user1 :prima = 23a4 = 1a6 = 1Titik random(P) = (0,22)publik2 = (3,10)private1 = 2

Masukkan nama file yang akan dienkripsi = pesan1.txtNama file hasil enkripsi = sandi_pesan1.txt

Proses enkripsi/ user1 menghitung( pesan[] ^ x_key1) :

Diket :byk_blok =1000

======================================.C1 =4*(0,22) =(13,7)Hitung key1_gen =4*(3,10) =(17,3)Absis key1_gen =17>Asc(u) =117 C2 =117 Xor 17 =100>Asc(s) =115 C2 =115 Xor 17 =98>Asc(e) =101 C2 =101 Xor 17 =116>Asc(r) =114 C2 =114 Xor 17 =99>Asc( ) =32 C2 =32 Xor 17 =49>Asc(n) =110 C2 =110 Xor 17 =127>Asc(a) =97 C2 =97 Xor 17 =112>Asc(m) =109 C2 =109 Xor 17 =124>Asc(e) =101 C2 =101 Xor 17 =116>Asc( ) =32 C2 =32 Xor 17 =49>Asc(:) =58 C2 =58 Xor 17 =43>Asc( ) =32 C2 =32 Xor 17 =49

Lampiran 10-1

Page 89: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>Asc(i) =105 C2 =105 Xor 17 =120>Asc(m) =109 C2 =109 Xor 17 =124>Asc(a) =97 C2 =97 Xor 17 =112>Asc(m) =109 C2 =109 Xor 17 =124>Asc(k) =107 C2 =107 Xor 17 =122>Asc(o) =111 C2 =111 Xor 17 =126>Asc(m) =109 C2 =109 Xor 17 =124>Asc(c) =99 C2 =99 Xor 17 =114>Asc() =10 C2 =10 Xor 17 =27>Asc(p) =112 C2 =112 Xor 17 =97>Asc(a) =97 C2 =97 Xor 17 =112>Asc(s) =115 C2 =115 Xor 17 =98>Asc(s) =115 C2 =115 Xor 17 =98>Asc(w) =119 C2 =119 Xor 17 =102>Asc(o) =111 C2 =111 Xor 17 =126>Asc(r) =114 C2 =114 Xor 17 =99>Asc(d) =100 C2 =100 Xor 17 =117>Asc( ) =32 C2 =32 Xor 17 =49>Asc( ) =32 C2 =32 Xor 17 =49>Asc(:) =58 C2 =58 Xor 17 =43>Asc( ) =32 C2 =32 Xor 17 =49>Asc(m) =109 C2 =109 Xor 17 =124>Asc(a) =97 C2 =97 Xor 17 =112>Asc(t) =116 C2 =116 Xor 17 =101>Asc(h) =104 C2 =104 Xor 17 =121

jumlah karakter pesan = 37

Done......!

Lampiran 10-2

Page 90: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

2. Dekripsi sandi_pesan1.txt

-------------------Skema Dekripsi ElGamal----------------

Ambil hasil pertukaran kunci :23 1 1 0 22 2 3 6 4 3 10 7 12 7 12

Ring kunci yang dimiliki user2 :prima = 23a4 = 1a6 = 1Titik random(P) = (0,22)publik2 = (3,10)private2 = 3

Masukkan nama file yang akan dideskripsi = sandi_pesan1.txtNama file hasil dekripsi = pesan_sandi_pesan1.txtProses Deskripsi/ user2 menghitung( x_key2 ^ sandi[]) :

Diket :byk_blok =1000

jumlah karakter pesan = 37

Please wait.======================================.Hitung key2_gen =3*(13,7) =(17,3)Absis key1_gen =17>m_sandi =100 pesan2 =17 Xor 100 =Char(117) =u>m_sandi =98 pesan2 =17 Xor 98 =Char(115) =s>m_sandi =116 pesan2 =17 Xor 116 =Char(101) =e>m_sandi =99 pesan2 =17 Xor 99 =Char(114) =r>m_sandi =49 pesan2 =17 Xor 49 =Char(32) = >m_sandi =127 pesan2 =17 Xor 127 =Char(110) =n>m_sandi =112 pesan2 =17 Xor 112 =Char(97) =a>m_sandi =124 pesan2 =17 Xor 124 =Char(109) =m>m_sandi =116 pesan2 =17 Xor 116 =Char(101) =e>m_sandi =49 pesan2 =17 Xor 49 =Char(32) = >m_sandi =43 pesan2 =17 Xor 43 =Char(58) =:>m_sandi =49 pesan2 =17 Xor 49 =Char(32) = >m_sandi =120 pesan2 =17 Xor 120 =Char(105) =i>m_sandi =124

Lampiran 10-3

Page 91: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

pesan2 =17 Xor 124 =Char(109) =m>m_sandi =112 pesan2 =17 Xor 112 =Char(97) =a>m_sandi =124 pesan2 =17 Xor 124 =Char(109) =m>m_sandi =122 pesan2 =17 Xor 122 =Char(107) =k>m_sandi =126 pesan2 =17 Xor 126 =Char(111) =o>m_sandi =124 pesan2 =17 Xor 124 =Char(109) =m>m_sandi =114 pesan2 =17 Xor 114 =Char(99) =c>m_sandi =27 pesan2 =17 Xor 27 =Char(10) =

>m_sandi =97 pesan2 =17 Xor 97 =Char(112) =p>m_sandi =112 pesan2 =17 Xor 112 =Char(97) =a>m_sandi =98 pesan2 =17 Xor 98 =Char(115) =s>m_sandi =98 pesan2 =17 Xor 98 =Char(115) =s>m_sandi =102 pesan2 =17 Xor 102 =Char(119) =w>m_sandi =126 pesan2 =17 Xor 126 =Char(111) =o>m_sandi =99 pesan2 =17 Xor 99 =Char(114) =r>m_sandi =117 pesan2 =17 Xor 117 =Char(100) =d>m_sandi =49 pesan2 =17 Xor 49 =Char(32) = >m_sandi =49 pesan2 =17 Xor 49 =Char(32) = >m_sandi =43 pesan2 =17 Xor 43 =Char(58) =:>m_sandi =49 pesan2 =17 Xor 49 =Char(32) = >m_sandi =124 pesan2 =17 Xor 124 =Char(109) =m>m_sandi =112 pesan2 =17 Xor 112 =Char(97) =a>m_sandi =101 pesan2 =17 Xor 101 =Char(116) =t>m_sandi =121 pesan2 =17 Xor 121 =Char(104) =h

Done....!

Lampiran 10-4

Page 92: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

B. pesan2.txt

1. Enkripsi pesan2.txt

-------------------Skema Enkripsi ElGamal----------------

Ambil hasil pertukaran kunci :

Ring kunci yang dimiliki user1 :prima = 856818337a4 = 527743981a6 = 584657872Titik random(P) = (95859945,14719)publik2 = (524567951,410172902)private1 = 444138450

Masukkan nama file yang akan dienkripsi = pesan2.txtNama file hasil enkripsi = sandi_pesan2.txt

Proses enkripsi/ user1 menghitung( pesan[] ^ x_key1) :

Diket :byk_blok =1000

======================================.C1 =702181708*(95859945,14719) =(45782949,296156657)Hitung key1_gen =702181708*(524567951,410172902) =(855829536,548847496)Absis key1_gen =855829536>Asc(/) =47 C2 =47 Xor 855829536 =855829519>Asc(/) =47 C2 =47 Xor 855829536 =855829519>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(f) =102 C2 =102 Xor 855829536 =855829574>Asc(u) =117 C2 =117 Xor 855829536 =855829589>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc(s) =115 C2 =115 Xor 855829536 =855829587>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(u) =117 C2 =117 Xor 855829536 =855829589>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(t) =116

Lampiran 10-5

Page 93: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

C2 =116 Xor 855829536 =855829588

Page 94: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>Asc(u) =117 C2 =117 Xor 855829536 =855829589>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(p) =112 C2 =112 Xor 855829536 =855829584>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(m) =109

Lampiran 10-6

Page 95: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

C2 =109 Xor 855829536 =855829581>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(:) =58 C2 =58 Xor 855829536 =855829530>Asc(:) =58 C2 =58 Xor 855829536 =855829530>Asc(p) =112 C2 =112 Xor 855829536 =855829584>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(() =40 C2 =40 Xor 855829536 =855829512>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(i) =105

Lampiran 10-7

Page 96: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

C2 =105 Xor 855829536 =855829577>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc()) =41 C2 =41 Xor 855829536 =855829513>Asc({) =123 C2 =123 Xor 855829536 =855829595>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(d) =100 C2 =100 Xor 855829536 =855829572>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(z) =122 C2 =122 Xor 855829536 =855829594>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(() =40 C2 =40 Xor 855829536 =855829512>Asc()) =41 C2 =41 Xor 855829536 =855829513>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(o) =111 C2 =111 Xor 855829536 =855829583

Lampiran 10-8

Page 97: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(d) =100 C2 =100 Xor 855829536 =855829572>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(u) =117 C2 =117 Xor 855829536 =855829589>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579

Lampiran 10-9

Page 98: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(,) =44 C2 =44 Xor 855829536 =855829516>Asc(h) =104 C2 =104 Xor 855829536 =855829576>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc(u) =117 C2 =117 Xor 855829536 =855829589>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc(,) =44 C2 =44 Xor 855829536 =855829516>Asc(h) =104 C2 =104 Xor 855829536 =855829576>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(s) =115 C2 =115 Xor 855829536 =855829587>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(,) =44 C2 =44 Xor 855829536 =855829516>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(,) =44 C2 =44 Xor 855829536 =855829516>Asc(m) =109

Lampiran 10-10

Page 99: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

C2 =109 Xor 855829536 =855829581>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(,) =44 C2 =44 Xor 855829536 =855829516>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(x) =120 C2 =120 Xor 855829536 =855829592>Asc(,) =44 C2 =44 Xor 855829536 =855829516>Asc(p) =112 C2 =112 Xor 855829536 =855829584>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(,) =44 C2 =44 Xor 855829536 =855829516>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(p) =112 C2 =112 Xor 855829536 =855829584>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(n) =110

Lampiran 10-11

Page 100: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

C2 =110 Xor 855829536 =855829582>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(p) =112 C2 =112 Xor 855829536 =855829584>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(w) =119 C2 =119 Xor 855829536 =855829591>Asc(() =40 C2 =40 Xor 855829536 =855829512>Asc(1) =49 C2 =49 Xor 855829536 =855829521>Asc(0) =48 C2 =48 Xor 855829536 =855829520>Asc(,) =44 C2 =44 Xor 855829536 =855829516>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc(-) =45 C2 =45 Xor 855829536 =855829517>Asc(1) =49 C2 =49 Xor 855829536 =855829521>Asc()) =41 C2 =41 Xor 855829536 =855829513>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(x) =120 C2 =120 Xor 855829536 =855829592>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(p) =112 C2 =112 Xor 855829536 =855829584>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(w) =119 C2 =119 Xor 855829536 =855829591>Asc(() =40 C2 =40 Xor 855829536 =855829512>Asc(1) =49 C2 =49 Xor 855829536 =855829521>Asc(0) =48

Lampiran 10-12

Page 101: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

C2 =48 Xor 855829536 =855829520>Asc(,) =44 C2 =44 Xor 855829536 =855829516>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc()) =41 C2 =41 Xor 855829536 =855829513>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(d) =100 C2 =100 Xor 855829536 =855829572>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc({) =123 C2 =123 Xor 855829536 =855829595>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(d) =100 C2 =100 Xor 855829536 =855829572>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc({) =123 C2 =123 Xor 855829536 =855829595>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9

Lampiran 10-13

Page 102: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(d) =100 C2 =100 Xor 855829536 =855829572>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(() =40 C2 =40 Xor 855829536 =855829512>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(x) =120 C2 =120 Xor 855829536 =855829592>Asc()) =41 C2 =41 Xor 855829536 =855829513>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(}) =125 C2 =125 Xor 855829536 =855829597>Asc(w) =119

Lampiran 10-14

Page 103: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

C2 =119 Xor 855829536 =855829591>Asc(h) =104 C2 =104 Xor 855829536 =855829576>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(() =40 C2 =40 Xor 855829536 =855829512>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(<) =60 C2 =60 Xor 855829536 =855829532>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(|) =124 C2 =124 Xor 855829536 =855829596>Asc(|) =124 C2 =124 Xor 855829536 =855829596>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(_) =95 C2 =95 Xor 855829536 =855829631

Lampiran 10-15

Page 104: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(<) =60 C2 =60 Xor 855829536 =855829532>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(3) =51 C2 =51 Xor 855829536 =855829523>Asc()) =41 C2 =41 Xor 855829536 =855829513>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(f) =102 C2 =102 Xor 855829536 =855829574>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(() =40 C2 =40 Xor 855829536 =855829512>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(2) =50 C2 =50 Xor 855829536 =855829522>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(<) =60 C2 =60 Xor 855829536 =855829532>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(s) =115 C2 =115 Xor 855829536 =855829587>Asc(q) =113 C2 =113 Xor 855829536 =855829585>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc(() =40 C2 =40 Xor 855829536 =855829512

Lampiran 10-16

Page 105: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc()) =41 C2 =41 Xor 855829536 =855829513>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(+) =43 C2 =43 Xor 855829536 =855829515>Asc(+) =43 C2 =43 Xor 855829536 =855829515>Asc()) =41 C2 =41 Xor 855829536 =855829513>Asc({) =123 C2 =123 Xor 855829536 =855829595>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(h) =104 C2 =104 Xor 855829536 =855829576>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc(u) =117 C2 =117 Xor 855829536 =855829589>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(a) =97 C2 =97 Xor 855829536 =855829569

Lampiran 10-17

Page 106: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(/) =47 C2 =47 Xor 855829536 =855829519>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(h) =104 C2 =104 Xor 855829536 =855829576>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(s) =115 C2 =115 Xor 855829536 =855829587>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(f) =102 C2 =102 Xor 855829536 =855829574>Asc(l) =108 C2 =108 Xor 855829536 =855829580

Lampiran 10-18

Page 107: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(() =40 C2 =40 Xor 855829536 =855829512>Asc(h) =104 C2 =104 Xor 855829536 =855829576>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc(u) =117 C2 =117 Xor 855829536 =855829589>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc()) =41 C2 =41 Xor 855829536 =855829513>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(h) =104 C2 =104 Xor 855829536 =855829576>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(s) =115 C2 =115 Xor 855829536 =855829587>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570

Lampiran 10-19

Page 108: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(*) =42 C2 =42 Xor 855829536 =855829514>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(f) =102 C2 =102 Xor 855829536 =855829574>Asc(() =40 C2 =40 Xor 855829536 =855829512>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc()) =41 C2 =41 Xor 855829536 =855829513

Lampiran 10-20

Page 109: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>Asc({) =123 C2 =123 Xor 855829536 =855829595>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(}) =125 C2 =125 Xor 855829536 =855829597>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(s) =115 C2 =115 Xor 855829536 =855829587>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc( ) =32 C2 =32 Xor 855829536 =855829504

Lampiran 10-21

Page 110: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(f) =102 C2 =102 Xor 855829536 =855829574>Asc(() =40 C2 =40 Xor 855829536 =855829512>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(<) =60 C2 =60 Xor 855829536 =855829532>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(|) =124 C2 =124 Xor 855829536 =855829596>Asc(|) =124 C2 =124 Xor 855829536 =855829596>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(=) =61

Lampiran 10-22

Page 111: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

C2 =61 Xor 855829536 =855829533>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(2) =50 C2 =50 Xor 855829536 =855829522>Asc()) =41 C2 =41 Xor 855829536 =855829513>Asc({) =123 C2 =123 Xor 855829536 =855829595>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(u) =117 C2 =117 Xor 855829536 =855829589>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(}) =125 C2 =125 Xor 855829536 =855829597>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9

Lampiran 10-23

Page 112: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

C2 =9 Xor 855829536 =855829545>Asc(}) =125 C2 =125 Xor 855829536 =855829597>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(p) =112 C2 =112 Xor 855829536 =855829584>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc(

Lampiran 10-24

Page 113: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

) =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(}) =125 C2 =125 Xor 855829536 =855829597>Asc(w) =119 C2 =119 Xor 855829536 =855829591>Asc(h) =104 C2 =104 Xor 855829536 =855829576>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(() =40 C2 =40 Xor 855829536 =855829512>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc()) =41 C2 =41 Xor 855829536 =855829513>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(p) =112 C2 =112 Xor 855829536 =855829584

Lampiran 10-25

Page 114: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(p) =112 C2 =112 Xor 855829536 =855829584>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc(u) =117 C2 =117 Xor 855829536 =855829589>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(p) =112 C2 =112 Xor 855829536 =855829584>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(m) =109 C2 =109 Xor 855829536 =855829581

Lampiran 10-26

Page 115: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc(}) =125 C2 =125 Xor 855829536 =855829597

jumlah karakter pesan = 582

Done......!

Lampiran 10-27

Page 116: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

2. Dekripsi sandi_pesan2.txt

-------------------Skema Dekripsi ElGamal----------------

Ambil hasil pertukaran kunci :856818337 527743981 584657872 95859945 14719 444138450 583396766 238161441 644555402 524567951 410172902 62651137 551147701 62651137 551147701

Ring kunci yang dimiliki user2 :prima = 856818337a4 = 527743981a6 = 584657872Titik random(P) = (95859945,14719)publik2 = (524567951,410172902)private2 = 583396766

Masukkan nama file yang akan dideskripsi = sandi_pesan2.txtNama file hasil dekripsi = pesan_sandi_pesan2.txtProses Deskripsi/ user2 menghitung( x_key2 ^ sandi[]) :

Diket :byk_blok =1000

jumlah karakter pesan = 582

Please wait.======================================.Hitung key2_gen =583396766*(45782949,296156657) =(855829536,548847496)Absis key1_gen =855829536>m_sandi =855829519 pesan2 =855829536 Xor 855829519 =Char(47) =/>m_sandi =855829519 pesan2 =855829536 Xor 855829519 =Char(47) =/>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829574 pesan2 =855829536 Xor 855829574 =Char(102) =f>m_sandi =855829589 pesan2 =855829536 Xor 855829589 =Char(117) =u>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829587 pesan2 =855829536 Xor 855829587 =Char(115) =s>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829589 pesan2 =855829536 Xor 855829589 =Char(117) =u>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t

Lampiran 10-28

Page 117: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>m_sandi =855829589 pesan2 =855829536 Xor 855829589 =Char(117) =u>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829584 pesan2 =855829536 Xor 855829584 =Char(112) =p>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829581

Lampiran 10-29

Page 118: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829530 pesan2 =855829536 Xor 855829530 =Char(58) =:>m_sandi =855829530 pesan2 =855829536 Xor 855829530 =Char(58) =:>m_sandi =855829584 pesan2 =855829536 Xor 855829584 =Char(112) =p>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829577

Lampiran 10-30

Page 119: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)>m_sandi =855829595 pesan2 =855829536 Xor 855829595 =Char(123) ={>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829572 pesan2 =855829536 Xor 855829572 =Char(100) =d>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829594 pesan2 =855829536 Xor 855829594 =Char(122) =z>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o

Lampiran 10-31

Page 120: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829572 pesan2 =855829536 Xor 855829572 =Char(100) =d>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829589 pesan2 =855829536 Xor 855829589 =Char(117) =u>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k

Lampiran 10-32

Page 121: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829516 pesan2 =855829536 Xor 855829516 =Char(44) =,>m_sandi =855829576 pesan2 =855829536 Xor 855829576 =Char(104) =h>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829589 pesan2 =855829536 Xor 855829589 =Char(117) =u>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829516 pesan2 =855829536 Xor 855829516 =Char(44) =,>m_sandi =855829576 pesan2 =855829536 Xor 855829576 =Char(104) =h>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829587 pesan2 =855829536 Xor 855829587 =Char(115) =s>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829516 pesan2 =855829536 Xor 855829516 =Char(44) =,>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829516 pesan2 =855829536 Xor 855829516 =Char(44) =,>m_sandi =855829581

Lampiran 10-33

Page 122: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829516 pesan2 =855829536 Xor 855829516 =Char(44) =,>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829592 pesan2 =855829536 Xor 855829592 =Char(120) =x>m_sandi =855829516 pesan2 =855829536 Xor 855829516 =Char(44) =,>m_sandi =855829584 pesan2 =855829536 Xor 855829584 =Char(112) =p>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829516 pesan2 =855829536 Xor 855829516 =Char(44) =,>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829584 pesan2 =855829536 Xor 855829584 =Char(112) =p>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829582

Lampiran 10-34

Page 123: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829584 pesan2 =855829536 Xor 855829584 =Char(112) =p>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829591 pesan2 =855829536 Xor 855829591 =Char(119) =w>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(>m_sandi =855829521 pesan2 =855829536 Xor 855829521 =Char(49) =1>m_sandi =855829520 pesan2 =855829536 Xor 855829520 =Char(48) =0>m_sandi =855829516 pesan2 =855829536 Xor 855829516 =Char(44) =,>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829517 pesan2 =855829536 Xor 855829517 =Char(45) =->m_sandi =855829521 pesan2 =855829536 Xor 855829521 =Char(49) =1>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829592 pesan2 =855829536 Xor 855829592 =Char(120) =x>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829584 pesan2 =855829536 Xor 855829584 =Char(112) =p>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829591 pesan2 =855829536 Xor 855829591 =Char(119) =w>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(>m_sandi =855829521 pesan2 =855829536 Xor 855829521 =Char(49) =1>m_sandi =855829520

Lampiran 10-35

Page 124: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

pesan2 =855829536 Xor 855829520 =Char(48) =0>m_sandi =855829516 pesan2 =855829536 Xor 855829516 =Char(44) =,>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829572 pesan2 =855829536 Xor 855829572 =Char(100) =d>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829595 pesan2 =855829536 Xor 855829595 =Char(123) ={>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829572 pesan2 =855829536 Xor 855829572 =Char(100) =d>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829595 pesan2 =855829536 Xor 855829595 =Char(123) ={>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545

Lampiran 10-36

Page 125: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829572 pesan2 =855829536 Xor 855829572 =Char(100) =d>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829592 pesan2 =855829536 Xor 855829592 =Char(120) =x>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829597 pesan2 =855829536 Xor 855829597 =Char(125) =}>m_sandi =855829591

Lampiran 10-37

Page 126: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

pesan2 =855829536 Xor 855829591 =Char(119) =w>m_sandi =855829576 pesan2 =855829536 Xor 855829576 =Char(104) =h>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829532 pesan2 =855829536 Xor 855829532 =Char(60) =<>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829596 pesan2 =855829536 Xor 855829596 =Char(124) =|>m_sandi =855829596 pesan2 =855829536 Xor 855829596 =Char(124) =|>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_

Lampiran 10-38

Page 127: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829532 pesan2 =855829536 Xor 855829532 =Char(60) =<>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829523 pesan2 =855829536 Xor 855829523 =Char(51) =3>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829574 pesan2 =855829536 Xor 855829574 =Char(102) =f>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829522 pesan2 =855829536 Xor 855829522 =Char(50) =2>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829532 pesan2 =855829536 Xor 855829532 =Char(60) =<>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829587 pesan2 =855829536 Xor 855829587 =Char(115) =s>m_sandi =855829585 pesan2 =855829536 Xor 855829585 =Char(113) =q>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(

Lampiran 10-39

Page 128: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829515 pesan2 =855829536 Xor 855829515 =Char(43) =+>m_sandi =855829515 pesan2 =855829536 Xor 855829515 =Char(43) =+>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)>m_sandi =855829595 pesan2 =855829536 Xor 855829595 =Char(123) ={>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829576 pesan2 =855829536 Xor 855829576 =Char(104) =h>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829589 pesan2 =855829536 Xor 855829589 =Char(117) =u>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a

Lampiran 10-40

Page 129: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829519 pesan2 =855829536 Xor 855829519 =Char(47) =/>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829576 pesan2 =855829536 Xor 855829576 =Char(104) =h>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829587 pesan2 =855829536 Xor 855829587 =Char(115) =s>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829574 pesan2 =855829536 Xor 855829574 =Char(102) =f>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l

Lampiran 10-41

Page 130: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(>m_sandi =855829576 pesan2 =855829536 Xor 855829576 =Char(104) =h>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829589 pesan2 =855829536 Xor 855829589 =Char(117) =u>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829576 pesan2 =855829536 Xor 855829576 =Char(104) =h>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829587 pesan2 =855829536 Xor 855829587 =Char(115) =s>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b

Lampiran 10-42

Page 131: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829514 pesan2 =855829536 Xor 855829514 =Char(42) =*>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829574 pesan2 =855829536 Xor 855829574 =Char(102) =f>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)

Lampiran 10-43

Page 132: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>m_sandi =855829595 pesan2 =855829536 Xor 855829595 =Char(123) ={>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829597 pesan2 =855829536 Xor 855829597 =Char(125) =}>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829587 pesan2 =855829536 Xor 855829587 =Char(115) =s>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) =

Lampiran 10-44

Page 133: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829574 pesan2 =855829536 Xor 855829574 =Char(102) =f>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829532 pesan2 =855829536 Xor 855829532 =Char(60) =<>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829596 pesan2 =855829536 Xor 855829596 =Char(124) =|>m_sandi =855829596 pesan2 =855829536 Xor 855829596 =Char(124) =|>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829533

Lampiran 10-45

Page 134: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829522 pesan2 =855829536 Xor 855829522 =Char(50) =2>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)>m_sandi =855829595 pesan2 =855829536 Xor 855829595 =Char(123) ={>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829589 pesan2 =855829536 Xor 855829589 =Char(117) =u>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829597 pesan2 =855829536 Xor 855829597 =Char(125) =}>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545

Lampiran 10-46

Page 135: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829597 pesan2 =855829536 Xor 855829597 =Char(125) =}>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829584 pesan2 =855829536 Xor 855829584 =Char(112) =p>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546

Lampiran 10-47

Page 136: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829597 pesan2 =855829536 Xor 855829597 =Char(125) =}>m_sandi =855829591 pesan2 =855829536 Xor 855829591 =Char(119) =w>m_sandi =855829576 pesan2 =855829536 Xor 855829576 =Char(104) =h>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829584 pesan2 =855829536 Xor 855829584 =Char(112) =p

Lampiran 10-48

Page 137: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829584 pesan2 =855829536 Xor 855829584 =Char(112) =p>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829589 pesan2 =855829536 Xor 855829589 =Char(117) =u>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829584 pesan2 =855829536 Xor 855829584 =Char(112) =p>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m

Lampiran 10-49

Page 138: Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data

>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =

>m_sandi =855829597 pesan2 =855829536 Xor 855829597 =Char(125) =}

Done....!

Lampiran 10-50