Vous êtes sur la page 1sur 255

PENGGUNAAN KRIPTOSISTEM KURVA ELLIPTIK UNTUK

ENKRIPSI DAN DEKRIPSI DATA

SKRIPSI

IMAM KHOLISSODIN

JURUSAN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS AIRLANGGA

SURABAYA

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 KHOLISSODIN
NIM : 080312630

Tanggal Lulus : 28 Desember 2007

Disetujui Oleh :

Pembimbing I Pembimbing II

HERRY SUPRAJITNO, S.Si, M.Si Drs. ETO WURYANTO, DEA


NIP. 132 087 869 NIP. 131 933 015

ii
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 Pembimbing II

HERRY SUPRAJITNO, S.Si, M.Si Drs. ETO WURYANTO, DEA


NIP. 132 087 869 NIP. 131 933 015

Mengetahui,

Ketua Departemen Matematika Ketua Program Studi Matematika


FMIPA - Unair FMIPA - Unair

Dr. ERIDANI Dra. INNA KUSWANDARI, M. Si


NIP. 132 049 016 NIP. 131 933 022

iii
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.


”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)
”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.”
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,
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


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
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
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.
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.
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
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


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
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


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


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


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.


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
2

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 ?

4.3 Tujuan

1. Mengamankan data teks dengan kriptosistem kurva elliptik.

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

kriptosistem kurva elliptik.


3

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.
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.1Aritmatika 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
5

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).

1.2.1Kurva 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).


6

1.2.2Aturan 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 :

 y 2 − y1 untuk P ≠ Q
x − x
 2 1
λ= 2
 3 x1 + a 4
 2 y1 untuk P = Q

maka diperoleh (x3,y3) sebagai berikut :

x 3 = λ 2 − x1 − x 2 dan y 3 = λ ( x1 − x 3 ) − y1

(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
7

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 :

( y1 , y 2 ) = (α k mod p, xβ k mod p)

5. Untuk melakukan dekripsi, User_2 menghitung :

y 2 ( y1 J ) −1 mod p
a

dimana aJ merupakan kunci rahasia User_2.

(Saeki, 1997)
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
9

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.


10

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.


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
12

4.2 Prosedur Algoritma Enkripsi dan Dekripsi

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

proses enkripsi sampai dekripsi.

Kunci Publik Kunci Rahasia

Plaintext Chipertext Plaintext


Enkripsi 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
13

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) :

Prosedur to generate prime number

prim(int bit)
begin
min ← powl(10,bit-1);
max ← powl(10,bit);
do
begin
do
begin
acak_bil ← random(max);
while(acak_bil ≤ min || acak_bil ≤ 3)
end
for 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;
end
else if(cek<acak_bil || acak_bil = 2) then
begin
continue;
end
end
cal_prim ← acak_bil;
while(cek = acak_bil)
end
prima ← cal_prim;
return prima;
end
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


14

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) :


Prosedur to compute modulo value

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


begin
if(fmodl(a,b)<0) then
begin
return (fmodl(a,b)+b);
end
else then
begin
return fmodl(a,b);
end
end

Gambar 4.3 Prosedur Menentukan Nilai Modulo

Sedangkan prosedur untuk mengenerate koefisien kurva ellipik tersebut

terdapat pada (Gambar 4.4) :


Prosedur to generate coefficient elliptic curve

begin
do
begin
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

Gambar 4.4 Prosedur Menentukan Koefisien Kurva Elliptik


15

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.


16

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

Prosedur to generate random point of elliptic curve

rand_point(long int p, long int a4, long int a6, long int keylength)
begin
if(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);
end
else 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);
end
end

Gambar 4.5 Prosedur Menentukan Titik Random pada Kurva Elliptik

Prosedur to generate private key

begin
do
begin
private1← random(p-1)+1;
private2← random(p-1)+1;
while(private1 < 1 || private2 < 1)
end
end

Gambar 4.6 Prosedur Menentukan private key

5. Setiap user mengkalikan kunci rahasianya dengan titik P untuk

menghasilkan kunci publik yang dinyatakan sebagai berikut :


17

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) :


18

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

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


19

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

3 x12 + a 4
lamda yang digunakan adalah λ = , dengan
2 y1

x3 = λ − x1 − x 2 = 
2 (
 3 x12 + a 4 ) 2

 − x − x dan
 (2y )2  1 2
 1 

 3x 2 + a 4 
y 3 = λ ( x1 − x3 ) − y1 =  1 ( x1 − x3 ) − y1 , sehingga untuk
 2 y1 

memudahkan perhitungan, maka persamaan tersebut harus dipecah menjadi

beberapa bagian yaitu :

( )
pembilangx = 3x12 + a 4 , pembagix = ( 2 y1 ) dan
2 2

pembilangy = 3x12 + a 4 , pembagiy = 2 y1


20

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

y 2 − y1
persamaan lamda yang digunakan adalah λ = , dengan
x 2 − x1
21

2
 y −y 
x3 = λ − x1 − x 2 =  2 1  − x1 − x 2 dan
2

 x 2 − x1 

 y −y 
y 3 = λ ( x1 − x3 ) − y1 =  2 1 ( x1 − x3 ) − y1 , sehingga untuk
 x 2 − x1 

memudahkan perhitungan, maka persamaan tersebut harus dipecah menjadi

beberapa bagian yaitu :

pembilangx = ( y 2 − y1 ) , pembagix = ( x 2 − x1 ) dan


2 2

pembilangy = y 2 − y1 , pembagiy = x 2 − x1

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.


22

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

ketika proses iterasinya tidak bertambah.


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)
begin
parameter setting;
if(x1 = x2 && y1 = y2) then
begin
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) 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
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

Gambar 4.8 Prosedur Mencari Hasil Penambahan Dua Titik


23

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)
begin
parameter 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
end
end

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


24

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).

Prosedur to compute of public key

begin
xy_kp(p,a4,private1,x_random,y_random);
x_publik1 ← x3;
y_publik1 ← y3;
end

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).
25

Prosedur to compute other key

begin
xy_kp(p,a4,private1,x_publik2,y_publik2);
x_key1 ← x3;
y_key1 ← y3;
end

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) :


Prosedur to generate private1_gen

do
begin
k ← random(m_kunci[1]); //k adalah private1_gen bersifat dinamis
end
while(k<2)

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),


26

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).

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

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


27

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).

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 ← x3
y_publik1_gen ← y3
end

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).

Prosedur to compute C2

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

Gambar 4.15 Prosedur menentukan C2


28

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).

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

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 :


29

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).

Prosedur to compute plaintext

begin
m2 ← char(x_key2_gen^m_sandi); //logika XOR untuk dekripsi
end

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
30

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.

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


31

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);
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)
};
32

4.5 Contoh Kasus Enkripsi-Dekripsi Data yang Diselesaikan Secara Manual

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

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.
33

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
biangan acak akar
Iterasi 33 5
pembagi hasil_bagi sisa
1 2 16.500 1
2 3 11.000 0
3 4 8.250 1
4 5 6.600 3

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
biangan acak akar
Iterasi 49 7
pembagi hasil_bagi sisa
1 2 24.500 1
2 3 16.333 1
3 4 12.250 1
4 5 9.800 4
5 6 8.167 1
6 7 7.000 0
34

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
biangan acak akar
Iterasi 23 4
pembagi hasil_bagi sisa
1 2 11.500 1
2 3 7.667 2
3 4 5.750 3

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
y 2 = x 3 + a4x + a6
Iterasi
a4 a6 mod (4a43 + 27a62, 23)
1 5 6 0
2 11 7 0
3 1 1 8
3
Karena pada iterasi ke-3 nilai acak a4 = 1 dan a6 = 1, sehingga 4 a4 +
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}.
35

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

quadratic residue modulo 23 (QR23).

Tabel 4.5. QR23


Z23 y 2 (mod 23) QR 23
2
0 0 (mod 23) 0
2
1 1 (mod 23) 1
2
2 2 (mod 23) 4
2
3 3 (mod 23) 9
2
4 4 (mod 23) 16
2
5 5 (mod 23) 2
2
6 6 (mod 23) 13
2
7 7 (mod 23) 3
2
8 8 (mod 23) 18
2
9 9 (mod 23) 12
2
10 10 (mod 23) 8
2
11 11 (mod 23) 6
2
12 12 (mod 23) 6
2
13 13 (mod 23) 8
2
14 14 (mod 23) 12
2
15 15 (mod 23) 18
2
16 16 (mod 23) 3
2
17 17 (mod 23) 13
2
18 18 (mod 23) 2
2
19 19 (mod 23) 16
2
20 20 (mod 23) 9
2
21 21 (mod 23) 4
2
22 22 (mod 23) 1

Berdasarkan Tabel 4.1, himpunanquadratic 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 .


36

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


2 3
x Є Z23 y = x + x + 1 (mod 23) y 2 Є QR 23 = ? (x,y) Є E23(1,1)
0 1 ya (0,1) dan (0,22)
1 3 ya (1,7) dan (1,16)
2 11 bukan -
3 8 ya (3,10) dan (3,13)
4 0 ya (4,0)
5 16 ya (5,4) dan (5,19)
6 16 ya (6,4) dan (6,19)
7 6 ya (7,11) dan (7,12)
8 15 bukan -
9 3 ya (9,7) dan (9,16)
10 22 bukan -
11 9 ya (11,3) dan (11,20)
12 16 ya (12,4) dan (12,19)
13 3 ya (13,7) dan (13,16)
14 22 bukan -
15 10 bukan -
16 19 bukan -
17 9 ya (17,3) dan (17,20)
18 9 ya (18,3) dan (18,20)
19 2 ya (19,5) dan (19,18)
20 17 bukan -
21 14 bukan -
22 22 bukan -

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 }.


37

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

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),


dengan private1, 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):
 y 2 − y1 , untuk P≠Q
x − x
 2 1
λ= 2
 3x1 + a , untuk P=Q
 2 y1

Maka diperoleh (x3,y3) sebagai berikut :


x3 = λ2 − x1 − x 2 dan y 3 = λ ( x1 − x3 ) − y1

Karena titiknya sama maka,


38

3(0 2 ) + 1
λ= = 1 * (44 −1 ) = 1 *11 = 11 ∈ Z 23
44
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 :
pembagi 44
iterasi mod(pembangi*iterasi,p)
1 21
2 19
3 17
4 15
5 13
6 11
7 9
8 7
9 5
10 3
11 1
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
39

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.
x3 = 112 − 0 − 0 =121 (mod 23) = 6

y 3 = 11 * (0 − 6) − 22 = -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
22 − 4
λ= = 18 * (6 −1 ) = 18 * 19 = 20 (mod 23)
0−6
Invers -6 dari -6*11 = -144 (mod 23) = 1, proses mencari invers -6 pada
modulo 23 analog dengan Tabel 4.6.
40

x3 = 20 2 − 6 − 0 = 394 (mod 23) = 3

y 3 = 20 * (6 − 3) − 4 = 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 :


41

Char ASCII(dec)

u 117

s 115

. .

dan seterusnya.

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
42

= 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 :

user name : imamkomc


password : math

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).


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

Gambar 4.21. komponen kunci


43

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).


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

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 :

user name : imamkomc


password : math

Gambar 4.23. Hasil proses dekripsi


44

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)..


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

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
45

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

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 :
46

// fungsi untuk mengenerate bilangan prima


long 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;
}

Gambar 4.26. Hasil proses dekripsi

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

dengan menggunakan implementasi program.


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 ekstensi *.txt. Data teks yang

telah diuji adalah data dengan ukuran 38 bytes dan 608 bytes, setelah

47
48

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.
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
Lampiran 1. Input Data Program
A. pesan1.txt

user name : imamkomc


password : math

B. pesan2.txt
// fungsi untuk mengenerate bilangan prima
long 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;
}
Lampiran 2-1

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 enkripsi
void 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 elliptik
void 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 titik
void 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 prima
long 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-2

return prima;
}

// fungsi untuk mencari modulo suatu bilangan


long 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 elliptik
void 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 pembagi


long int ecc::inv_pembagi(long int p,long double pembagi){
long double a1,a2,a3,b1,b2,b3,t1,t2,t3;
long int q;
//inisialisasi
a1=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-3

// fungsi untuk mencari hasil (x3,y3) penambahan 2 titik


void 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 saja
y3=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 saja
y3=0; // sebagai penanda saja
}
}
}
}
// fungsi untuk mencari hasil (x3,y3) perkalian antara skalar dengan titik
void 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 biner
l=1;
while(k>0){
if(k%2==1){
if(k==1){
u[l]=1;
break;
}
u[l]=1;
}
else{
u[l]=0;
Lampiran 2-4

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

// penggandaan dan penambahan P


x3=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 titik
xy_add2p(p,a4,x1,x,y1,y);
}
else if(u[j]==0){
x1=x3;
y1=y3;
// fungsi penambahan 2 titik yang sama
xy_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-5

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 dihitung
second=(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-6

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 bilangan
file_dtkunci.close();
//cek existensi file kunci.txt
if(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-7

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

//bagian1
int 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 noise
strcpy(fpesan_out,strcat(fpesan_outTemp,fpesan_out));

//bagian2
loop_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 noise
strcpy(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-8

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_random
file_output<<x_publik1_gen<<" "<<y_publik1_gen<<" "; // akan dikirim ke user2

//untuk menghitung k*Publik key user2


xy_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 enkripsi
if(loop_p%100000==0){
cout<<".";
}
}
cout<<"!";
iter=loop_p; //karena membacanya per karakter
fclose(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-9

iter=loop-1; //karena membacanya per bilangan


file_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 file
again: //jika file tidak ditemukan
strcpy(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 null
strcpy(fsandi_in,cgets(buffer));

//Input pesan
FILE *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-10

//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 :


//bagian1
int 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));
//bagian2
loop_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 noise
strcpy(fsandi_out,strcat(fsandi_out,fsandi_outTemp));
}
cout<<"\nNama file hasil dekripsi = ";
cprintf(fsandi_out); // animasi warna hijau pada nama file hasil decrypt
cout<<"\n";

waktu_awal=time(NULL);//awal waktu deskripsi mulai dihitung


ofstream file_output; // code untuk menulis hasil dekripsi pada file fsandi_out
file_output.open(fsandi_out);
ifstream file_hitung; // code untuk membaca file fsandi_in
file_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 kesepakatan
cek_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-11

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 enkripsi
if(loop_p%100000==0){
cout<<".";
}
}while(loop_s<=stop);
cout<<"!";
cout<<"\n\nDone....!";
waktu_akhir=time(NULL);//akhir waktu deskripsi mulai dihitung
second=(t.millitm/1000.0);
waktu=(waktu_akhir-waktu_awal)+second;
cout<<endl;
cout<<"waktu deskripsi = "<<waktu<<" "<<"detik"<<endl;
}

void main (){


//deklarasi nama objek dari class
ecc run;
char strpilih[1000],buffer[1000]; //untuk animasi warna pilihan
int pilih;
cout.setf(ios::fixed,ios::floatfield); // floatfield set to fixed
do {
clrscr ();
textcolor(10); //warna hijau
cprintf("\nNama : Imam Kholissodin");
printf("\n"); //new line
cprintf("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-12

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 3. Display Loading to Main Program.

Lampiran 4. Display Main Program.


Lampiran 5. Display Program Penentuan Kunci.

Lampiran 6. Display Program Enkripsi Data.

Lampiran 7. Display Program Dekripsi Data.


Lampiran 8. Display Program ECC Dos.

Lampiran 9. Display About Program.


Lampiran 10-1

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 = 23
a4 = 1
a6 = 1
Titik random(P) = (0,22)
publik2 = (3,10)
private1 = 2

Masukkan nama file yang akan dienkripsi = pesan1.txt


Nama 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-2

>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-3

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 = 23
a4 = 1
a6 = 1
Titik random(P) = (0,22)
publik2 = (3,10)
private2 = 3

Masukkan nama file yang akan dideskripsi = sandi_pesan1.txt


Nama file hasil dekripsi = pesan_sandi_pesan1.txt
Proses 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-4
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-5

B. pesan2.txt

1. Enkripsi pesan2.txt

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

Ambil hasil pertukaran kunci :

Ring kunci yang dimiliki user1 :


prima = 856818337
a4 = 527743981
a6 = 584657872
Titik random(P) = (95859945,14719)
publik2 = (524567951,410172902)
private1 = 444138450

Masukkan nama file yang akan dienkripsi = pesan2.txt


Nama 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
C2 =116 Xor 855829536 =855829588
Lampiran 10-6
>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-7

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-8

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-9

>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-10

>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-11

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-12

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-13

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-14

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-15

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-16

>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-17

>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-18

>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-19

>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-20

>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-21

>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-22

>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-23

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-24

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-25

) =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-26

>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-27

>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-28

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 = 856818337
a4 = 527743981
a6 = 584657872
Titik random(P) = (95859945,14719)
publik2 = (524567951,410172902)
private2 = 583396766

Masukkan nama file yang akan dideskripsi = sandi_pesan2.txt


Nama file hasil dekripsi = pesan_sandi_pesan2.txt
Proses 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-29

>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-30

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-31

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-32

>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-33

>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-34

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-35

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-36

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-37

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-38

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-39

>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-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 =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-41

>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-42

>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-43

>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-44

>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-45

>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-46

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-47

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-48

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-49

>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-50

>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....!

Vous aimerez peut-être aussi