Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data
description
Transcript of Penggunaan Kriptosistem Kurva Elliptic Untuk Enkripsi dan Dekripsi Data
PENGGUNAAN KRIPTOSISTEM KURVA ELLIPTIK UNTUK
ENKRIPSI DAN DEKRIPSI DATA
SKRIPSI
IMAM KHOLISSODIN
JURUSAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS AIRLANGGA
SURABAYA
2007
PENGGUNAAN KRIPTOSISTEM KURVA ELLIPTIK UNTUK
ENKRIPSI DAN DEKRIPSI DATA
SKRIPSI
Sebagai Salah Satu Syarat Untuk Memperoleh Gelar Sarjana Sains
Bidang Matematika Pada Fakultas Matematika Dan Ilmu Pengetahuan Alam
Universitas Airlangga
Oleh :
IMAM KHOLISSODINNIM : 080312630
Tanggal Lulus : 28 Desember 2007
Disetujui Oleh :
Pembimbing I
HERRY SUPRAJITNO, S.Si, M.SiNIP. 132 087 869
Pembimbing II
Drs. ETO WURYANTO, DEA NIP. 131 933 015
ii
LEMBAR PENGESAHAN SKRIPSI
Judul : Penggunaan Kriptosistem Kurva Elliptik Untuk Enkripsi
Dan Dekripsi Data.
Penulis : Imam Kholissodin
NIM : 080312630
Tanggal Ujian : 28 Desember 2007
Disetujui Oleh :
Pembimbing I
HERRY SUP RAJITNO, S.Si, M.Si NIP. 132 087 869
Pembimbing II
Drs. ETO WURYANTO, DEA NIP. 131 933 015
Mengetahui,
Ketua Departemen MatematikaFMIPA - Unair
Dr. ERIDANINIP. 132 049 016
Ketua Program Studi MatematikaFMIPA - Unair
Dra. INNA KUSWANDARI, M. SiNIP. 131 933 022
iii
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
Menurut (Walton, 2006) dalam www.codeproject.com menyatakan bahwa
pada tingkat keamanan yang sama, ECC dapat menggunakan ukuran kunci yang
lebih kecil dibandingkan dengan kriptosistem seperti RSA. Kemampuan ini
membuat ECC mempunyai keamanan yang kuat dengan panjang kunci yang
pendek. Implementasi ECC/ kriptosistem kurva elliptik yang digunakan dalam
skripsi ini menggunakan logika xor. Panjang kunci yang digunakan antara 8
sampai 72 bit. Karena dalam bahasa pemrograman Borland C++ tipe data yang
paling tinggi adalah long double yang bisa menampung 18 digit. Misalnya saja
dalam perhitungan perkalian antara 2 (dua) bilangan dengan panjang 9 digit akan
menghasilkan bilangan dengan panjang 18 digit yang akan ditampung dalam tipe
long double, kemudian dengan fungsi modulo akan dihasilkan kembali bilangan
dengan panjang 9 digit.
1.2 Rumusan Masalah
1. Bagaimanakah mengamankan data teks dengan kriptosistem kurva
elliptik ?
2. Bagaimana membuat program pertukaran kunci dan enkripsi-
dekripsi data dengan kriptosistem kurva elliptik ?
1.3 Tujuan
1. Mengamankan data teks dengan kriptosistem kurva elliptik.
2. Membuat program pertukaran kunci dan enkripsi-dekripsi data dengan
kriptosistem kurva elliptik.
2
1.4 Manfaat
1. Menambah wawasan mengenai kriptografi dengan menggunakan
Elliptic Curves Cryptosystem/ kriptosistem kurva elliptik.
2. Menghasilkan software yang dapat digunakan oleh masyarakat untuk
mengamankan dan merahasiakan data teks yang akan dikirim.
1.5 Batasan Masalah
1. Persamaan kurva elliptik yang digunakan dalam implementasi adalah
y2 = x3 + a4x + a6 (mod p) pada lapangan berhingga prima Zp.
2. Pertukaran kunci Dieffie-Helman dan Skema enkripsi-dekripsi ElGamal
hanya berlaku untuk data bertipe (integer, float, string, char), bukan
berupa tabel, gambar, suara, video, equation editor dan karakter khusus
lainnya.
3. Panjang kunci yang digunakan antara 1 (satu) sampai 9 (sembilan digit).
4. Selama proses pengiriman sandi, tidak ada gangguan pada saluran
informasi.
3
BAB II
TINJAUAN PUSTAKA
2.1 Konsep Dasar Matematika Kriptografi
Sebelum membahas lebih jauh mengenai Elliptic Curves Cryptosystem,
terlebih dahulu akan dipaparkan konsep dasar matematika yang berhubungan
dengan persoalan kriptografi.
2.1.1 Aritmatika Modular
Aritmatika Modular adalah operasi modulus yang merupakan sisa
dari hasil pembagian bilangan bulat.
(Iwut, 2004)
2.1.2 Bilangan prima
Bilangan prima adalah bilangan bulat positif p (p > 1) yang
pembaginya hanya 1 dan p.
(Saeki, 1997)
2.1.3 Diskriminan
Dalam http://mathworld.wolfram.com, diskriminan adalah hasil
kuadrat dari selisih akar-akar polinomial (suku banyak).
2.1.4 Grup Elliptic atas Zp
Lapangan berhingga prima Zp adalah suatu lapangan berhingga
yang berisi p elemen. Grup kurva elliptik adalah suatu himpunan yang
terdiri dari titik-titik kurva elliptik atas Zp.
(Khudri, 2005)
4
2.2 Kriptosistem Kurva Elliptik (Elliptic Curves Cryptosystem)
Kriptosistem kurva elliptik menggunakan masalah logaritma diskrit pada
titik-titik kurva elliptik yang disebut dengan ECDLP (Elliptic Curves Discrete
Logarithm Problem).
2.2.1 Kurva Elliptik
Menurut (Muller, 2001). Grup titik Ep (a1, a2 , a3 , a4 , a6 ) pada kurva
elliptik diberikan sebagai berikut.
{ (x,y) Zp2 : y2 + a1 xy + a3 y = x3 + a2x2 + a4 x + a6 } { O }
dimana O = (∞,∞) dan a1, a2, a3 a4, a6 Zp. Pasangan elemen Zp2
merupakan titik pada E.
Menurut Stallings (Khudri, 2005). Kurva elliptik sebagai suatu
kurva yang dibentuk oleh persamaan kubik dan memiliki persamaan
umum
y2 + a1 xy + a3 y = x3 + a2x2 + a4 x + a6
Menurut (Khudri, 2005) Bentuk kurva yang lebih sederhana dari
persamaan di atas adalah
y2 = x3 + a4 x + a6
a4, a6 dibuat secara random, dimana a4, a6 Zp, a4, a6 ≠ 0 dan harus
memenuhi syarat 4a4 3 + 27a6
2 ≠ 0 (mod p).
5
2.2.2 Aturan Penjumlahan Dua Titik pada Kurva Elliptik
1. P + O = O + P = P untuk setiap P E(Zp).
2. Jika P = (x1, y1) E(Zp) maka (x1, y1) + (x1, – y1) = O.
3. Diberikan P = (x1,y1) E(Zp) dan Q = (x2,y2) E(Zp), dengan Q
≠ -P. Maka P + Q = (x3,y3) di mana :
untuk P ≠ Q
untuk P = Q
maka diperoleh (x3,y3) sebagai berikut :
dan
(Saeki, 1997)
2.3 Algoritma Pertukaran Kunci Dieffie-Hellman
Algoritma merupakan suatu himpunan langkah-langkah atau instruksi
yang telah dirumuskan dengan baik (well defined) untuk memperoleh suatu
keluaran khusus (specific output) dari suatu masukan khusus (specific input)
dalam langkah yang jumlahnya berhingga.
(Chartrand dan Oellermann, 1993)
Berikut ini algoritma pertukaran kunci Dieffie – Hellman yang
diilustrasikan dua orang user (User_1 dan User_2) :
1. User_1 memilih secara acak sebuah bilangan integer x yang besar dan
mengirimkannnya ke User_2.
X = gx mod n
6
2. User_2 memilih secara acak sebuah bilangan integer y yang besar dan
mengirimkannya ke User_1.
Y = gy mod n
3. User_1 menghitung nilai k1 = Yx mod n
4. User_2 menghitung nilai k2 = Xy mod n
(Saeki, 1997)
2.4 Algoritma Enkripsi-Dekripsi ElGamal
Berikut ini algoritma enkripsi-dekripsi ElGamal yang diilustrasikan dua
orang user (User_1 dan User_2) :
1. Diberikan p sebuah bilangan prima untuk Zp dan yang merupakan
anggota Zp.
2. Setiap user memilih sebuah kunci rahasia a yang merupakan bilangan
integer untuk 0≤a≤p-2.
3. Setiap user menghitung kunci publik a (mod p) yang nilainya akan
dikirim.
4. Misalkan User_1 akan mengirim pesan x Zp, maka dia harus memilih
sebuah bilangan k secara random, yaitu k Z*p-1 dan mengirimkan pesan
terenkripsi ke User_2 dengan persamaan :
5. Untuk melakukan dekripsi, User_2 menghitung :
dimana aJ merupakan kunci rahasia User_2.
(Saeki, 1997)
7
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
f. Setiap user secara terpisah mengkalikan kunci rahasia masing-masing
dengan kunci publik yang diterima dari user lain untuk menghasilkan
kunci rahasia bersama. Ilustrasinya sebagai berikut ;
Kunci rahasia bersama user1(key1),
key1 = private1 * publik2 .
Kunci rahasia bersama user2(key2),
key2 = private2 * publik1.
Sehingga nilai key1 = key2.
3.3 Melakukan Proses Enkripsi ElGamal pada Kriptosistem Kurva Elliptik dengan
langkah sebagai berikut (misal user1 sebagai pengirim pesan (m) ) :
a. Pada proses enkripsi, user1 memilih secara acak sebuah bilangan integer
k yang akan menjadi kunci rahasia bangkitan (private1_gen).
k = {2,3,..,p-1}
b. User1 akan menghitung kunci rahasia bersama bangkitan (key1_gen)
key1_gen = k * publik2
c. Kemudian user1 mengambil nilai absis dari key1_gen (xkey1_gen).
d. Selanjutnya user1 mengenkripsi pesan m dengan menentukan nilai dari
(C1,C2) dengan ketentuan :
C1 = publik1_gen = k * P dan
C2 = m xkey1_gen (Nilai Eksklusif OR dari m dan
xkey1_gen), hasilnya C1 berupa titik, sedangkan m dan C2 berupa
nilai dalam interger, kemudian (C1,C2) dikirim ke user2.
9
e. Proses dekripsi pada user2 dilakukan dengan mengambil nilai C1 dari
(C1,C2) dengan C1 = publik1_gen, C2 = sandi.
publik1_gen = (xpublik1_gen, ypublik1_gen).
f. Selanjutnya user2 menghitung :
Kunci rahasia bersama bangkitan (key2_gen)
key2_gen = private2 * publik1_gen
g. Kemudian user2 mengambil nilai absis dari key2_gen (xkey2_gen).
h. Selanjutnya user2 mendekripsi sandi dengan ketentuan :
m2 = pesan yang akan diperoleh oleh user2 dari hasil dekripsi.
m2 = xkey2_gen C2
= m
kemudian user2 mengkonversi m2 (dalam desimal) menjadi karakter.
Sehingga user2 mendapatkan pesan m dari user1 yang dikirim
melalui pesan yang sudah dienkripsi.
i. Membuat program untuk pertukaran kunci Dieffie-Hellman dan
enkripsi-dekripsi ElGamal pada elliptic curves cryptosystem.
j. Mengimplementasikan program pada data teks.
10
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
4.2 Prosedur Algoritma Enkripsi dan Dekripsi
Ilustrasi enkripsi dan dekripsi dapat dilihat pada (Gambar 4.1) mulai dari
proses enkripsi sampai dekripsi.
Gambar 4.1 Skema enkripsi dan dekripsi
Pertukaran kunci adalah proses saling menukar kunci publik antara dua
orang user untuk menghasilkan kunci rahasia bersama.
Langkah –langkah dalam prosedur enkripsi dan dekripsi adalah sebagai berikut :
1. Menentukan bilangan prima (p) dengan syarat p > 3 untuk Zp.
Prosedur untuk menentukan suatu bilangkan prima yang lebih dari 3,
pertama yang dilakukan adalah dengan menentukan bit (panjang bit),
kemudian dimasukan ke dalam input fungsi, maka secara langsung progam
akan menentukan batas maksimal dan minimal dengan memberikan pangkat
sebesar (bit) dan (bit-1), yang kedua menentukan acak_bil dengan
random(max) dan selama acak_bil ≤ min atau acak_bil ≤ 3, maka akan
dilakukan proses perulangan lagi. Kemudian melakukan iterasi(i) mulai dari 2
sampai sqrt(acak_bil) akan dilakukan pengecekan dengan cek =
floor(acak_bil/i)*i. Pada iterasi ke-i jika cek = acak_bil maka dengan perintah
break otomatis program akan keluar dari proses iterasi tersebut, jika sampai
Enkripsi DekripsiPlaintext
Chipertext
Plaintext
Kunci Publik Kunci Rahasia
12
pada iterasi ke-sqrt(acak_bil) cek < acak_bil maka sudah dapat dipastikan
acak_bil tersebut adalah bilangan prima. Akan tetapi jika kondisi cek =
acak_bil, maka akan dilakukan proses perulangan lagi mulai dari menentukan
acak_bil. Prosedur untuk menentukan bilangan prima dapat dilihat pada
(Gambar 4.2) :
Gambar 4.2 Prosedur Menentukan Bilangan Prima
2. Menentukan bentuk persamaan kurva elliptik :
Proses untuk menentukan bentuk persamaan kurva elliptik pertama yang
dilakukan adalah dengan mengenerate koefisien a4, a6 secara random dengan
Prosedur to generate prime number
prim(int bit)begin
min ← powl(10,bit-1);max ← powl(10,bit);dobegin
dobegin
acak_bil ← random(max);while(acak_bil ≤ min || acak_bil ≤ 3)
endfor i ←2 to sqrt(acak_bil) do begin
hitung ← acak_bil/i;hasil_bagi ←floor(hitung);cek ← hasil_bagi*i;if(cek = acak_bil) then begin
break;endelse if(cek<acak_bil || acak_bil = 2) then
begincontinue;
endend
cal_prim ← acak_bil;while(cek = acak_bil)endprima ← cal_prim;return prima;
end
13
a4 = random(p) dan a6 = random(p), bilangan prima(p) di sini telah
dihitung sebelumnya pada (Gambar 4.2) dimana a4, a6 Zp dan a4, a6 ≠ 0.
Kemudian melakukan pengecekan dengan memasukkan kedua koefisien
tersebut ke dalam persamaan diskriminan. Jika hasil 4a4 3 + 27a6
2 = 0 (mod p),
maka akan dilakukan proses perulangan kembali mulai dari mengenerate nilai
a4 dan a6 sampai didapatkan hasil dari nilai diskriminannya tidak sama dengan
nol. Untuk itu perlu diketahui dahulu bagaimana proses untuk mencari nilai
modulo dari suatu bilangan. Parameternya ada dua yaitu a dan b, a sebagai
bilangan dan b sebagai pembaginya. Prosedur untuk mencari nilai modulo
terdapat pada (Gambar 4.3) :
Gambar 4.3 Prosedur Menentukan Nilai Modulo
Sedangkan prosedur untuk mengenerate koefisien kurva ellipik tersebut
terdapat pada (Gambar 4.4) :
Gambar 4.4 Prosedur Menentukan Koefisien Kurva Elliptik
Prosedur to generate coefficient elliptic curve
begindobegin
a4←random(p); a6←random(p);
while(mod((4*mod(mod(powl(a4,2),p)*a4,p))+ (27*mod(powl(a6,2),p)),p)=0);end
end
Prosedur to compute modulo value
long double mod(long double a,long double b)begin
if(fmodl(a,b)<0) thenbegin
return (fmodl(a,b)+b); end else then
begin return fmodl(a,b); endend
14
3. Menentukan sebuah titik P secara acak pada kurva E(Zp).
Prosedur untuk menentukan sebuah titik P(x,y) pada kurva elliptik dengan
persamaan y2 = x3 + a4 x + a6 secara random, yang pertama dilakukan adalah
dengan memasukkan bilangan prima(p), a4, a6, dan keylength. Parameter
settingnya adalah int cek_titik, int nol_satu dan float cek_x. Jika keylength ≤
5, maka program akan mengenerate secara bersama-sama mulai dari x =
random (p) + 1 dan y = random (p) +1, kemudian melakukan proses
pengecekan apakah titik (x,y) tersebut ada dalam kurva elliptik, dengan
cek_titik = y2 - x3 - a4 x - a6. Selama cek_titik ≠ 0, maka akan dilakukan proses
perulangan mulai dari awal, sampai didapatkan cek_titik = 0. Jika keylength >
5, maka program akan mengenerate x = random (p) + 1, kemudian melakukan
proses pengecekan apakah cek_x merupakan bentuk akar. Selama cek_x ≠
cek_akar, maka akan dilakukan proses perulangan mulai dari awal, sampai
didapatkan cek_x = cek_akar, dimana jika nol_satu = 1, maka y =
mod(cek_x,p), akan tetapi jika nol_satu = 0, maka y = mod(-cek_x,p).
Prosedurnya dapat dilihat pada (Gambar 4.5).
4. Setiap user memilih secara acak sebuah bilangan integer yang akan
menjadi kunci rahasianya masing-masing, dengan private1 dan private2
adalah elemen Z*p-1.
Prosedur untuk mengenerate private key kedua user dengan menentukan
nilai dari private1 = random (p-1) + 1 dan private2 = random (p-1) + 1 secara
random. Selama private1, private2 < 1 maka akan terus terjadi perulangan
mulai dari awal program sampai didapatkan private1, private2 ≥ 1.
15
Prosedur untuk menentukan private key dapat dilihat pada (Gambar 4.6).
Gambar 4.5 Prosedur Menentukan Titik Random pada Kurva Elliptik
Gambar 4.6 Prosedur Menentukan private key
5. Setiap user mengkalikan kunci rahasianya dengan titik P untuk
menghasilkan kunci publik yang dinyatakan sebagai berikut :
Prosedur to generate private key
begindobegin
private1← random(p-1)+1; private2← random(p-1)+1;
while(private1 < 1 || private2 < 1)end
end
16
Prosedur to generate random point of elliptic curve
rand_point(long int p, long int a4, long int a6, long int keylength)beginif(keylength ≤ 5) begin
do begin
x_random←random(p)+1; y_random←random(p)+1; cek_titik=mod(mod(powl(y_random,2),p)-mod(mod(powl(x_random,2),p)*x_random,p)- mod(a4*x_random,p)-a6,p); end while(cek_titik ≠0); endelse if(keylength >5) begin do begin x_random←random(p)+1; cek_x=sqrtl(mod(mod(mod(powl(x_random,2),p)*x_random,p)+ mod((a4*x_random),p)+a6,p)); cek_akar=floor(cek_x); end while(cek_x≠cek_akar); nol_satu←random(2); y_random← nol_satu←1 ? mod(cek_x,p) : mod(-cek_x,p); endend
Kunci publik_User1(publik1) = private1 * P
Kunci publik_User2(publik2) = private2 * P.
Sebelum melakukan prosedur penghitungan public key, yang perlu
diperhatikan lebih awal adalah prosedur menghitung invers dari pembagi.
Input variabelnya adalah bilangan prima(p) dan pembagi. Parameter
settingnya adalah a1 = 1, a2 = 0, a3 = p, b1 = 0, b2 = 1 dan b3 = mod
(pembagi,p). Kemudian iterasi untuk mencari nilai q = int[a3/b3], t1= a1 -
mod(q*b1,p), t2=a2 - mod(q*b2,p) dan t3= a3 - mod(q*b3,p). Setelah itu
update nilai a1,a2,a3 dan b1,b2,b3 dengan a1= b1, a2= b2, a3= b3, b1= t1, b2=
t2, b3= t3. Jika nilai b3 ≠ 1, maka akan dilakukan proses iterasi mulai awal.
Jika b3 ≠ 1 maka akan didapatkan nilai inv_pembagi(p,pembagi) = mod(b2,p).
Algoritma ini sangat efektif bila dibandingkan dengan menggunakan cara
konvensional yaitu dengan memberi parameter setting loop = 1, kemudian
dilakukan iterasi dengan menghitung variabel hasil = pembagi *loop (mod p)
dan setiap iterasi, loop akan selalu bertambah 1 tingkat dan dapat di tulis
menjadi loop = loop +1. Proses diatas akan terus dijalankan selama hasil ≠ 1.
Jika hasil = 1 maka akan didapatkan invers dari pembagi sama dengan (loop -
1). Tetapi metode ini akan berjalan lambat bila pada bilangan integer besar.
Karena banyaknya iterasi yang digunakan sebanding dengan besar bilangan
pembagi yang akan dicari nilai inversnya. Prosedur untuk menghitung invers
pembagi dapat dilihat pada (Gambar 4.7) :
17
Gambar 4.7 Prosedur Menentukan Invers Pembagi
Untuk menghitung public key akan dibagi menjadi dua bagian, pertama
adalah melakukan prosedur menggunakan binary algorithm (Gambar 4.9)
dan selanjutnya menghitung hasil penambahan dua titik menggunakan
prosedur penambahan dua titik (Gambar 4.8) dari persamaan umum publik =
private * P. Kedua prosedur diatas akan digunakan untuk menghitung
perkalian antara skalar dengan suatu titik pada kurva elliptik. Maka yang
pertama dilakukan adalah prosedur binary algorithm. Di dalamnya terdapat
metode untuk merubah skalar menjadi bilangan biner nol dan satu, kemudian
setelah skalar diubah menjadi biner dan telah disimpan pada variabel array u[i]
dengan i mulai 1 sampai pada batas iterasi yang didapatkan, misal panjang
digit binernya adalah n, maka langkah selanjutnya adalah memberikan nilai
awal pada x1 = 0 dan y1 = 0, selanjutnnya dilakukan
Prosedur to compute invers of division
inv_pembagi(long int p,long double pembagi)begin //inisialisasi a1←1; b1←0; a2←0; b2←1; a3←p; b3← mod(pembagi,p); do begin q← int [a3/b3]; t1←a1-mod(q*b1,p); t2←a2-mod(q*b2,p); t3←a3-mod(q*b3,p); //update nilai a dan b a1←b1; a2←b2; a3←b3; b1←t1; b2←t2; b3←t3; end while(b3 ≠ 1); return mod(b2,p);end
18
proses iterasi mulai dari n sampai 1 dengan step -1 untuk mendeteksi nilai
u[i]. Jika u[i] = 1 maka akan dilakukan proses penggandaan titik dan
dilakukan penambahan dengan titik awal. Akan tetapi jika nilai u[i] = 0, maka
hanya akan dilakukan proses penggandaan titik saja. Kemudian yang kedua
dilakukan dengan prosedur penambahan dua titik yang terdapat didalam
prosedur binary algorithm. Misal P1(x1,y1) + P2(x2,y2) = P3(x3,y3). Untuk
menentukan hasil penambahan yaitu titik (x3,y3) digunakan fungsi dengan
nama xy_add2p yang mempunyai input variabel seperti bilangan prima(p), a4,
private key(k), P1(x1, y1), dan P2(x2,y2) serta beberapa parameter setting
yang semuanya digunakan di dalam prosedur.
Untuk kondisi pertama jika x1 = x2 dan y1 = y2, artinya adalah kedua titik
tersebut sama maka dalam aturan penjumlahan pada kurva elliptik persamaan
lamda yang digunakan adalah , dengan
dan
, sehingga untuk
memudahkan perhitungan, maka persamaan tersebut harus dipecah menjadi
beberapa bagian yaitu :
, dan
,
19
Untuk menghitung pembilangx maupun pembilangy dapat dilakukan
secara langsung, akan tetapi untuk pembagix dan pembagiy harus terlebih
dahulu dihitung menggunakan prosedur sesuai dengan (Gambar 4.7). Jika hal
ini tidak dilakukan, maka hasil perhitungan pasti akan salah. Karena
kebanyakan pembagi itu mempunyai nilai lebih besar dari pada pembilangnya
yang akhirnya menghasilkan nilai desimal (ada angka dibelakang koma selain
nol) yang tidak akan pernah ada dalam Zp. Disini ada pengecualian yaitu jika
pembagix ≠ 0 maka untuk mencari nilai invers dari pembagix dan pembagiy
dapat dilakukan dan akan menghasilkan suatu titik (x3,y3) yang memenuhi
persamaan kurva elliptik. Akan tetapi jika pembagix = 0 maka penghitungan
invers tidak dapat dilakukan dan sesuai dengan aturan penjumlahannya,
perhitungan akhir akan menghasilkan titik infinity (O), untuk memudahkan
penghitungan dalam prosedur ini diberikan penanda saja berupa nilai nol
sehingga x3 = 0 dan y3 = 0. Setelah mendapatkan nilai x3 dan y3, kedua nilai
tersebut akan dimasukkan pada x1 dan y1 pada prosedur binary algorithm.
Sehingga x1 = x3 dan y1 = y3 dan nilai x1 dan y1 tetap tidak berubah ketika
proses iterasinya tidak bertambah.
Untuk kondisi kedua jika x1 ≠ x2 atau y1 ≠ y2, artinya adalah kedua titik
tersebut berbeda dan jika x2 = 0 dan y2 = 0 maka sesuai dengan aturan
penjumlahan pada kurva elliptic x3 = x1 dan y3 = y1. Akan tetapi jika tidak
memenuhi itu, maka sesuai dengan aturan penjumlahan pada kurva elliptik
persamaan lamda yang digunakan adalah , dengan
20
dan
, sehingga untuk
memudahkan perhitungan, maka persamaan tersebut harus dipecah menjadi
beberapa bagian yaitu :
, dan
,
Untuk menghitung pembilangx maupun pembilangy dapat dilakukan
secara langsung, akan tetapi untuk pembagix dan pembagiy harus terlebih
dahulu dihitung menggunakan prosedur sesuai dengan (Gambar 4.7). Jika hal
ini tidak dilakukan, maka hasil perhitungan pasti akan salah. Karena
kebanyakan pembagi itu mempunyai nilai lebih besar dari pada pembilangnya
yang akhirnya menghasilkan nilai desimal (ada angka dibelakang koma selain
nol) yang tidak akan pernah ada dalam Zp. Disini ada pengecualian yaitu jika
pembagix ≠ 0 maka untuk mencari nilai invers dari pembagix dan pembagiy
dapat dilakukan dan akan menghasilkan suatu titik (x3,y3) yang memenuhi
persamaan kurva elliptik. Akan tetapi jika pembagix = 0 maka penghitungan
invers tidak dapat dilakukan dan sesuai dengan aturan penjumlahannya,
perhitungan akhir akan menghasilkan titik infinity (O), untuk memudahkan
penghitungan dalam program ini diberikan penanda saja berupa nilai nol
sehingga x3 = 0 dan y3 = 0. Setelah mendapatkan nilai x3 dan y3, kedua nilai
tersebut akan dimasukkan pada x1 dan y1 pada prosedur binary algorithm.
21
Sehingga x1 = x3 dan y1 = y3 dan nilai x1 dan y1 tetap tidak berubah
ketika proses iterasinya tidak bertambah.
Gambar 4.8 Prosedur Mencari Hasil Penambahan Dua Titik
Prosedur function to compute (x3,y3) from addition two points
void xy_add2p(long int p,long int a4, long int x1, long int x2, long int y1, long int y2)beginparameter setting;
if(x1 = x2 && y1 = y2) thenbegin
pembilangx ← mod(powl(mod(3*mod(powl(x1,2),p)+a4,p),2),p);pembagix ← mod(powl(mod(2*y1,p),2),p);pembilangy ← mod(mod(3*mod(pow(x1,2),p)+a4,p),p);pembagiy ← mod(mod(2*y1,p),p);if(pembagix≠0) thenbegin
inv_pembagix ← inv_pembagi(p,pembagix); inv_pembagiy ← inv_pembagi(p,pembagiy);
x3 ← mod((mod(pembilangx*inv_pembagix,p))-x1-x2,p); y3 ← mod(mod(pembilangy*inv_pembagiy,p)*mod((x1-x3),p)-y1,p); end else if(pembagix = 0) then begin x3 ← 0; // sebagai penanda saja y3 ← 0; // sebagai penanda saja end end else if(x1≠x2 || y1≠y2) then begin if(x2 = 0 && y2 = 0) then begin x3 ← x1; y3 ← y1; end else begin pembilangx ← mod(powl(y2-y1,2),p);
pembagix ← mod(powl(x2-x1,2),p); pembilangy ← mod(y2-y1,p);
pembagiy ← mod(x2-x1,p); if(pembagix≠0) then begin inv_pembagix ← inv_pembagi(p,pembagix);
inv_pembagiy ← inv_pembagi(p,pembagiy); x3 ← mod((mod(pembilangx*inv_pembagix,p))-x1-x2,p); y3 ← mod(mod(pembilangy*inv_pembagiy,p)*mod((x1-x3),p)-y1,p); end
else if(pembagix = 0) then begin x3 ← 0; // sebagai penanda saja y3 ← 0; // sebagai penanda saja end end end
end
22
Gambar 4.9 Prosedur Mencari Hasil Perkalian Skalar Dengan Titik
Prosedur untuk menentukan kunci publik adalah dengan memasukkan
beberapa variabel masukan seperti bilangan prima(p), koefisien kurva
elliptik(a4), private key, x_random dan y_random. Jika ingin menghitung
Prosedur function binary algorithm to compute k*P
void xy_kp(long int p,long int a4, long int k, long int x_random, long int y_random)beginparameter setting;
// merubah k menjadi biner l=1; while(k>0)
begin if(k%2 ← 1) then
begin if(k ← 1)
begin u[l] ← 1; break; end u[l] ← 1; end else then
begin u[l] ← 0; end k ← k/2; l ← l+1; end // penggandaan dan penambahan P x3 ← 0; // inisialisasi titik (x3,y3) ← (0,0) y3 ← 0; for j ← l to j > 0 step -1
begin if(u[j] ← 1) then
begin x1 ← x3; y1 ← y3; xy_add2p(p,a4,x1,x1,y1,y1); x1 ← x3; y1 ← y3; // fungsi penambahan 2 titik xy_add2p(p,a4,x1,x_random,y1,y_random); end else if(u[j] ← 0) then
begin x1 ← x3; y1 ← y3; // fungsi penambahan 2 titik yang sama xy_add2p(p,a4,x1,x1,y1,y1); end endend
23
x_publik dan y_publik maka variabel-variabel di atas harus dimasukkan
ke dalam prosedur sesuai dengan (Gambar 4.9). Prosedur untuk menentukan
kunci publik dapat dilihat pada (Gambar 4.10).
Gambar 4.10 Prosedur Menentukan Kunci Publik
6. Setiap user secara terpisah mengkalikan kunci rahasia masing-masing
dengan kunci publik yang diterima dari user lain untuk menghasilkan
kunci rahasia bersama. Ilustrasinya sebagai berikut ;
Kunci rahasia bersama user1(key1),
key1 = private1 * publik2.
Kunci rahasia bersama user2(key2),
key2 = private2 * publik1.
Sehingga nilai key1 = key2.
Prosedur untuk menentukan kunci rahasia bersama adalah dengan
memasukkan beberapa variabel masukan seperti bilangan prima(p), koefisien
kurva elliptik(a4), private key, x_publik dan y_publik yang telah ditentukan
nilainya. Jika ingin menghitung x_key dan y_key, maka variabel-variabel di
atas harus dimasukkan ke dalam prosedur sesuai dengan (Gambar 4.9).
Prosedur untuk menentukan kunci rahasia bersama dapat dilihat pada
(Gambar 4.11).
Prosedur to compute of public key
beginxy_kp(p,a4,private1,x_random,y_random);x_publik1 ← x3;y_publik1 ← y3;
end
24
Gambar 4.11 Prosedur Menentukan Kunci Rahasia Bersama
7. Pada proses enkripsi, user1 memilih secara acak sebuah bilangan integer k
yang akan menjadi kunci rahasia bangkitan (private1_gen) dengan interval
k = {2,3,..,p-1}.
Prosedur untuk mengenerate kunci rahasia bangkitan(k) kedua user dengan
menentukan nilai dari k = random (m_kunci[1]). Selama k < 2 maka akan
terus terjadi perulangan mulai dari awal prosedur sampai didapatkan k ≥ 2,
m_kunci[1] adalah bilangan prima yang telah ditentukan dengan mengunakan
prosedur (Gambar 4.2). Prosedur untuk menentukan kunci rahasia bangkitan
dapat dilihat pada (Gambar 4.12) :
Gambar 4.12 Prosedur Menentukan private1_gen
8. User1 akan menghitung kunci rahasia bersama bangkitan (key1_gen)
key1_gen = k * publik2
Prosedur untuk menentukan kunci rahasia bersama bangkitan ke-1 adalah
dengan memasukkan beberapa variabel masukan seperti bilangan
prima(m_kunci[1]) atau (p), koefisien kurva elliptik(m_kunci[2]) atau (a4),
Prosedur to compute other key
beginxy_kp(p,a4,private1,x_publik2,y_publik2); x_key1 ← x3; y_key1 ← y3;
end
Prosedur to generate private1_gen
dobegin
k ← random(m_kunci[1]); //k adalah private1_gen bersifat dinamisend while(k<2)
25
private1_gen(k), x_publik2(m_kunci[8]) dan y_publik2(m_kunci[9])
yang telah ditentukan nilainya. Jika ingin menghitung x_key1_gen), maka
variabel-variabel di atas harus dimasukkan ke dalam prosedur sesuai dengan
(Gambar 4.9). Prosedur untuk menentukan kunci rahasia bersama bangkitan
dapat dilihat pada (Gambar 4.13).
Gambar 4.13 Prosedur menentukan absis key1_gen
Dalam perhitungan key1_gen, hanya dihitung nilai absisnya saja. Karena
nilai dari ordinatnya(y_key1_gen) tidak diperlukan pada saat proses enkripsi
data.
9. Kemudian user1 mengambil nilai absis dari key1_gen (x_key1_gen).
10. Selanjutnya user1 mengenkripsi pesan m dengan menentukan nilai dari
(C1,C2) dengan ketentuan :
C1 = publik1_gen = k * P , dan
C2 = m x_key1_gen (Nilai XOR dari m dan
x_key1_gen), hasilnya C1 berupa titik, sedangkan m dan C2 berupa
bilangan integer, kemudian (C1,C2) dikirim ke user2.
Prosedur untuk menentukan kunci publik bangkitan (C1) adalah dengan
memasukkan beberapa variabel masukan seperti bilangan prima(m_kunci[1])
atau (p), koefisien kurva elliptik(m_kunci[2]) atau (a4), private_gen(k),
x_random(m_kunci[4]) dan y_random(m_kunci[5]) yang telah ditentukan
Prosedur to compute key1_gen
begin//xy_kp(prima,a4,private1_gen,x_publik2,y_publik2) xy_kp(m_kunci[1],m_kunci[2],k,m_kunci[10],m_kunci[11]); x_key1_gen ← x3;
end
26
nilainya. Jika ingin menghitung x_publik1_gen dan y_publik1_gen,
maka variabel-variabel di atas harus dimasukkan ke dalam prosedur sesuai
dengan (Gambar 4.9). Prosedur untuk menentukan kunci publik bangkitan
dapat dilihat pada (Gambar 4.14).
Gambar 4.14 Prosedur menentukan publik1_gen
Prosedur menentukan C2 adalah dengan mengambil pesan asli
(m_pesan) yang akan dienkripsi, kemudian mengxorkan m_pesan dengan
x_key1_gen. Proses ini diulang terus-menerus sampai jumlah karakter pesan
asli yang akan kita sandikan habis. Dan untuk menghemat memori komputer,
maka dalam persamaan enkripsi tersebut digunakan kembali variabel m_pesan
untuk menampung pesan sandi dengan sifat auto replace. Pada saat pesan
sandi selesai dihitung hasil enkripsinya, maka pesan sandi tersebut akan segera
disimpan dalam file dengan nama dan ekstensi tertentu sesuai dengan apa
yang diinginkan oleh pengirim pesan asli. Prosedur untuk menentukan C2
dapat dilihat pada (Gambar 4.15).
Gambar 4.15 Prosedur menentukan C2
Prosedur to compute public1_gen (C1)
begin//xy_kp(prima,a4,private1_gen,x_random,y_random)xy_kp(m_kunci[1],m_kunci[2],k,m_kunci[4],m_kunci[5]);x_publik1_gen ← x3y_publik1_gen ← y3
end
Prosedur to compute C2
beginm_pesan ← (m_pesan^x_key1_gen); //logika XOR untuk enkripsi
end
27
11. Proses dekripsi pada user2 dilakukan dengan mengambil nilai C1 dan C2
dari (C1,C2) dengan C1 = publik1_gen, C2 = sandi. Dengan ketentuan
publik1_gen = (xpublik1_gen, ypublik1_gen).
12. Selanjutnya user2 menghitung kunci rahasia bersama bangkitan
(key2_gen)
key2_gen = private2 * publik1_gen
Prosedur untuk menentukan key2_gen adalah dengan memasukkan
beberapa variabel masukan seperti bilangan prima(m_kunci[1]) atau (p),
koefisien kurva elliptik(m_kunci[2]) atau (a4), private2(m_kunci[11]),
x_publik1_gen dan y_publik1_gen yang telah ditentukan nilainya. Jika ingin
menghitung x_key2 dan y_key2, maka variabel-variabel di atas harus
dimasukkan ke dalam prosedur sesuai dengan (Gambar 4.9). Prosedur untuk
menentukan key2_gen dapat dilihat pada (Gambar 4.16).
Gambar 4.16 Prosedur menentukan absis key2_gen
Dalam perhitungan key2_gen, hanya dihitung nilai absisnya saja. Karena
nilai dari ordinatnya(y_key2_gen) tidak diperlukan pada saat proses dekripsi
data.
13. Kemudian user2 mengambil nilai absis dari key2_gen (xkey2_gen).
14. Selanjutnya user2 mendekripsi sandi dengan ketentuan :
Prosedur to compute key2_gen
begin//xy_kp(prima,a4,private2,x_publik1_gen,y_publik1_gen)xy_kp(m_kunci[1],m_kunci[2],m_kunci[7],x_publik1_gen,y_publik1_gen); x_key2_gen ← x3
end
28
m2 = pesan yang akan diperoleh oleh user2 dari hasil dekripsi.
m2 = x_key2_gen C2
= m
Prosedur menentukan plaintext(m2) adalah dengan mengambil pesan
sandi (m_sandi) yang telah dienkripsi, kemudian mengxorkan m_sandi dengan
nilai absis dari kunci rahasia bersama bangkitan user2(x_key2_gen). Proses ini
diulang terus-menerus sampai jumlah karakter pesan sandi (chipertext) habis
terbaca. Dan variabel yang digunakan dalam persamaan dekripsi tersebut
plaintext(m2) yang berguna untuk menampung pesan asli yang telah
didapatkan. Setelah itu, maka pesan asli hasil dekripsi tersebut akan segera
disimpan dalam file dengan nama dan ekstensi tertentu sesuai dengan apa
yang diinginkan oleh penerima pesan sandi. Prosedur untuk menentukan C2
dapat dilihat pada (Gambar 4.17).
Gambar 4.17 Prosedur menentukan plaintext
4.3 Data
Data yang digunakan adalah data-data yang memungkinkan dapat oleh
program dalam C++ dengan extensi tertentu. Maksudnya, jika kita ingin
menenkripsi suatu data, maka kita harus mengetahui dahulu apa nama tipe filenya.
Karena tidak semua file dengan tipe yang lebih komplek mempunyai perlakuan
Prosedur to compute plaintext
beginm2 ← char(x_key2_gen^m_sandi); //logika XOR untuk dekripsi
end
29
yang sama dengan file yang sudah biasa dipakai oleh pengguna yang ada di
seluruh dunia.
Terdapat dua data yang digunakan, antara lain :
1. Data berukuran 38 bytes, panjang kunci 8 bit sampai 72 bit dan file
extensinya adalah .txt dengan nama pesan1.txt (Lampiran 1).
http://downtown.vc/index.php?page=main&id=7448f1156&name=pesan1.zip
2. Data berukuran 608 bytes, panjang kunci 8 bit sampai 72 bit dan file
extensinya adalah .txt dengan nama pesan2.txt (Lampiran 1).
http://downtown.vc/index.php?page=main&id=d9f781304&name=pesan2.txt
4.4 Program
Berdasarkan algoritma yang telah ada diatas, maka akan dibuat program
menggunakan bahasa C++ untuk melakukan pertukaran kunci, proses enkripsi
serta dekripsi data. Dengan adanya program ini, diharapkan dapat memberikan
kemudahan pada saat akan mengirim data teks yang membutuhkan suatu
keamanan.
Dalam penulisan program kriptografi dengan kriptosistem kurva elliptik
ini, dibuat beberapa fungsi yang berguna untuk menyederhanakan penulisan
program yang banyak sekali digunakan. Dan juga untuk memberikan suatu nilai
seni dalam pembuatan program, mulai dari input sampai output, agar orang lain
mudah untuk mengerti proses berjalannya program. Berikut ini akan disajikan
semua fungsi dalam class C++ yang akan digunakan dalam program :
1. prim() digunakan untuk mengenerate bilangan
prima.
30
2. mod() digunakan untuk memperoleh sisa hasil bagi.
3. rand_point() digunakan untuk memperoleh titik
random pada kurva elliptik.
4. inv_pembagi() digunakan untuk menghitung invers
pembagi dari suatu bilangan bulat.
5. xy_add2p() digunakan untuk menghitung hasil
penambahan antara dua titik
6. xy_kp() digunakan untuk menghitung hasil
perkalian antara skalar dengan titik pada kurva elliptik.
7. DH() digunakan untuk melakukan pertukaran kunci
antara dua user.
8. Enkripsi_ElGamal() digunakan untuk melakukan
proses enkripsi data.
9. Dekripsi_ElGamal() digunakan untuk melakukan
proses dekripsi data.
10. final_eccvb.cpp digunakan untuk mendefinisikan
proses pertukaran kunci, enkripsi dan dekripsi data. Pada class program
terdapat fungsi utama seperti DH(), Enkripsi_ElGamal(),
Deskripsi_ElGamal(), dan fungsi tambahan seperti prim(), mod(), rand_point
(), inv_pembagi(), xy_add2p(), xy_kp().
class ecc {public :// fungsi utama
void DH(); void Enkripsi_ElGamal(); void Dekripsi_ElGamal(); // fungsi tambahan long int prim(long int);
31
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)};
4.5 Contoh Kasus Enkripsi-Dekripsi Data yang Diselesaikan Secara Manual
user name dan password sesuai dengan apa yang anda inputkan secara rahasia ke
email anda dengan cara dienkripsi.
Bagaimana sandi yang di kirim oleh Admin tersebut bisa aman sampai ke
e-mail member dengan menggunakan kriptosistem kurva elliptik ?.
Penyelesaian :
Misalkan administrator sebagai user1 dan calon member sebagai user2,
maka yang harus dilakukan oleh keduanya pertama kali adalah melakukan
pertukaran kunci, setelah itu user1 melakukan proses enkripsi terhadap pesan1.txt
yang berisi user name dan password. Setelah proses enkripsi selesai, data
disimpan dengan nama sandi_pesan1.txt kemudian dikirimkan kepada user2.
Selanjutnya user2 melakukan proses dekripsi data dari file sandi_pesan1.txt
sehingga mendapatkan kembali pesan asli yang dikirim oleh user1 dengan nama
pesan_sandi_pesan1.txt.
Dalam suatu forum diskusi “Dream In Code/DIC”
dengan alamat website http://www.dreamincode.net ada
penawaran untuk menanyakan source code secara free.
Syaratnya adalah seorang guest harus menjadi member
terlebih dahulu. Maka dia wajib masuk menu Log In.
Setelah registrasi, maka administrator akan mengirim
32
Langkah-langkahnya adalah mengunakan prosedur pertukaran kunci untuk
memperoleh kunci rahasia bersama, kemudian baru dilakukan prosedur enkripsi
dan dekripsi data. Berikut ini adalah proses penyelesaiannya :
1. Bilangan prima (p)
Di bawah ini adalah proses untuk mendapatkan bilangan prima (p = 23)
yang kita pilih dengan memasukkan berapa digit panjang bilangan prima yang
akan kita gunakan. Misalkan kita menginginkan 2 digit bilangan, maka batasan
minimal bilangan prima tersebut antara 10 sampai 100.
Ambil acak_bil = 33, kemudian dicek apakah acak_bil kurang dari sama
dengan nilai minimum. Karena 33 > 10 maka proses selanjutnya adalah
menghitung hasil bagi acak_bil dengan bilangan bulat mulai dari 2 sampai nilai
integer dari akar acak_bil. Berikut perhitungannya :
Tabel 4.1. Mencari Bilangan Prima
Karena pada iterasi ke-2 sisa pembagiannya sama dengan nol, maka 33
bukan bilangan prima.
Kemudian ambil lagi acak_bil = 49. Karena 49 > 10 maka proses
selanjutnya adalah menghitung hasil bagi acak_bil dengan bilangan bulat mulai
dari 2 sampai nilai integer dari akar acak_bil. Berikut perhitungannya :
Tabel 4.2. Mencari Bilangan Prima
33
Karena pada iterasi ke-6 sisa pembagiannya sama dengan nol, maka 49
bukan bilangan prima.
Kemudian ambil lagi acak_bil = 23. Karena 23 > 10 maka proses
selanjutnya adalah menghitung hasil bagi acak_bil dengan bilangan bulat mulai
dari 2 sampai nilai integer dari akar acak_bil. Berikut perhitungannya :
Tabel 4.3. Mencari Bilangan Prima
Karena pada iterasi ke-1 sampai iterasi terakhir sisa pembagiannya tidak
ada yang sama dengan nol dan pembaginya kurang dari sama dengan nilai integer
akar dari 23, maka 23 adalah bilangan prima. Sehingga kita mendapatkan p = 23.
2. Persamaan kurva Elliptik
Menentukan persamaan kurva y2 = x3 + a4x + a6 dan nilai a4,a6 acak untuk
koefisiennya. Di bawah ini adalah proses perhitungannya :
Tabel 4.4. Mencari Koefisien
Karena pada iterasi ke-3 nilai acak a4 = 1 dan a6 = 1, sehingga 4 a4 3 +
27 a62 = 4 + 27 = 31 (mod 23) = 8 ≠ 0 (mod 23). Maka nilai diskriminannya tidak
sama dengan nol, maka persamaan tersebut dapat dibentuk menjadi y2 = x3 + 1x +
1.
3. Pilih titik random
Menentukan titik-titik utama pada kurva, kemudian pilih satu titik P
Titik-titik utama pada kurva (y2 = x3 + x + 1 ):
Bilangan prima p = 23
Zp={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22}.
34
Sebelum menentukan elemen-elemen E23(1,1) , terlebih dahulu mencari
quadratic residue modulo 23 (QR23).
Tabel 4.5. QR23
Berdasarkan Tabel 4.1, himpunan quadratic residue modulo
23 adalah QR23 ={0,1,2,3,4,6,8,9,12,13,16,18}. Kemudian menentukan
elemen grup elliptic E23 (1,1) yang merupakan penyelesaian dari persamaan
y2 = x3 + x + 1 (mod 23), untuk x Z23 dan y2 QR23 .
35
Tabel 4.6. Untuk Mencari Elemen E23 (1,1)
Berdasarkan Tabel 4.2, untuk x=0, diperoleh y2=0+0+1 (mod 23) = 1.
Sehingga diperoleh nilai y = 1 dan y = 22. Karena berdasarkan Tabel 4.1, 12 (mod
23)=1 dan 222 (mod 23)=1. Perhitungan untuk nilai x dan y yang lain, dilakukan
dengan cara yang sama. Sehingga didapatkan elemen-elemen grup elliptic modulo
23 atas Z23, yaitu E23(1,1) ={ ( 0,1), (0,22), (1,7), (1,16), (3,10), (3,13), (4,0), (5,4),
(5,19), (6,4), (6,19), (7,11), (7,12), (9,7), (9,16), (11,3), (11,20), (12,4), (12,19),
(13,7), (13,16), (17,3), (17,20), (18,3), (18,20), (19,5), (19,18),O }.
36
Gambar 4.18. Sebaran titik-titik pada kurva elips E23 (1, 1)
Jumlah titik utama pada kurva = 27 titik selain dari titik infinity(O). Misal
titik yang dipilih adalah P = (0,22).
4. Buat private1 dan private2
Menentukan nilai acak kunci rahasia user1(private1) dan user2(private2),
denganprivate1, private2 elemen {2,3,...,p-1} dalam Zp. Misal private1 = 2 dan
private2 = 3.
5. Hitung publik1 dan publik2
kedua user menghitung kunci publik masing-masing dan user1
menghasilkan kunci publik (publik1) = private1*P
publik1 = private1*P = 2 * (0,22)………?
= 2 * (0,22) = (0,22) + (0,22) = …
Aturan penjumlahan (P + Q):
, untuk P≠Q
, untuk P=Q
Maka diperoleh (x3,y3) sebagai berikut :
dan
Karena titiknya sama maka,
0123456789
101112131415161718192021222324
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
37
Invers 44 dari 44*11 = 484 (mod 23) = 1, proses perhitungannya adalah
sesbagai berikut :
Tabel 4.6. Untuk Mencari Invers
Dengan algoritma konvensional yang memanfaatkan banyaknya iterasi
sebagai hasil dari invers pembagi :
Karena pada iterasi ke-11 nilai mod(44*11,23) = 1, maka invers dari 44
adalah 11.
Dengan menggunakan Euclidian algorithm, pemberian nilai awal pada
parameter setting :
a1 = 1 a2 = 0 a3 = p
b1 = 0 b2 = 1 b3 = pembagi = mod(pembagi,p) = mod(44,23) = 21
iterasi 1:
q = int[a3/b3] = int[p/pembagi] = int[23/21] = 1
t1= a1 - mod(q*b1,p) = 1 - mod(0,23) = 1
t2= a2 - mod(q*b2,p) = 0 - mod(1,23) = -1
t3= a3 - mod(q*b3,p) = 23 - mod(21,23) = 2
update nilai a1,a2,a3 dan b1,b2,b3 sehingga,
a1= b1= 0
a2= b2= 1
a3= b3= 21
b1= t1= 1
38
b2= t2= -1
b3= t3= 2
karena b3 !=1 maka masuk ke iterasi berikutnya
iterasi 2 :
q = int[a3/b3] = int[21/2] = 10
t1= a1 - mod(q*b1,p) = 0 - mod(10,23) = -10
t2= a2 - mod(q*b2,p) = 1 - mod(-10,23) = -12
t3= a3 - mod(q*b3,p) = 21 - mod(20,23) = 1
update nilai a1,a2,a3 dan b1,b2,b3 sehingga,
a1= b1= 1
a2= b2= -1
a3= b3= 2
b1= t1= -10
b2= t2= -12
b3= t3= 1
karena b3 =1 maka iterasi berhenti, sehingga didapatkan hasil invers
pembagi(p,pembagi) = mod(b2,p) = mod(-12,23) = 11. Dengan dua metode yang
yang berbeda akan dipatkan hasil yang sama. Dan perbedaannya hanya pada
iterasi yang dibutuhkan.
Maka invers dari 44 adalah 11.
=121 (mod 23) = 6
= -88 (mod 23) = 4
Jadi publik1 = (x3,y3) = (6,4)
User2 menghasilkan kunci publik (publik2) = private2*P
publik2 = private2*P = 3 * (0,22) =…….?
= 3 * (0,22) = (0,22) + (0,22) + (0,22) = (6,4) + (0,22)
Karena titinya berbeda, maka
(mod 23)
Invers -6 dari -6*11 = -144 (mod 23) = 1, proses mencari invers -6 pada
modulo 23 analog dengan Tabel 4.6.
39
= 394 (mod 23) = 3
= 56 (mod 23) = 10
Jadi publik2 = (x3,y3) = (3,10)
6. Hitung key1 dan key2
kedua user saling menukar kunci publik mereka masing-masing dan user1
menghasilkan,
key1 = private1*publik2
= 2 * (3,10) = (7,12)
user2 menghasilkan,
key2 = private2*publik1
= 3 * (6,4) = (7,12)
Perhitungan kunci rahasia bersama ini analog dengan perhitungan kunci
publik, sehingga langsung diberikan hasilnya.
7. Pilih private_gen
Menentukan nilai acak kunci rahasia bangkitan user1(private1_gen) atau
disimbolkan (k) yang merupakan elemen {2,3,...,p-1} dalam Z23. Misal kunci
private bangkitan yang pertama adalah private1_gen(k) = 4.
8. Hitung key1_gen dengan publik2
key1_gen = private1_gen*publik2
= 4 * (3,10) = (17,3)
9. Ambil absis key1_gen (xkey1_gen)
Karena key1_gen = (17,3) maka nilai absis dari key1_gen dapat langsung
diambil yaitu (xkey1_gen) = 17
10. Hitung chipertext (C1,C2)
Misalkan user1 ingin mengirim pesan1.txt (Lampiran 1) ke user2 maka
harus dikonversi dulu :
40
Gambar 4.19. Konversi dari karakter ke desimal
Enkripsi Oleh user1 (C1,C2 ) = (kP, A absis(k*publik2)) dengan jumlah blok
sebanyak 1000, artinya setiap 1000 karakter akan dibuat satu publik1_gen. Dan
ini tergantung dari kesepakatan.
generate k1, misal k1 = 4 lalu k1P = 4(0,22) = (13,7) lalu
key1_gen = k1*publik2 = 4(3,10) = (17,3) maka
x_key1_gen = absis(17,3) = 17
(C1,(C2 )1) = ((13,7), u 17) = ((13,7), 117 17) = ((13,7) , 100)
(C2 )2 = (s 17) = (115 17) = 98
... dan selanjutnya analog dengan cara diatas.
Sehingga hasil enkripsi adalah 13 7 100 98 116 ... dan seterusnya.
11. Ambil (C1,C2)
(C1,(C2 )1) = ((13,7) , 100)
(C2 )2 = 98
... dan seterusnya.
12. Hitung key2_gen dengan private2
key2_gen = private2*publik1_gen
Char ASCII(dec)
u 117
s 115
. .
dan seterusnya.
41
= 3 * (13,7) = (17,3)
13. Ambil absis dari key2_gen
Karena key2_gen = (17,3) maka nilai absis dari key2_gen dapat langsung
diambil yaitu (x_key2_gen) = 17
14. Hitung plaintext (m)
Dekripsi Oleh user2 m = (absis(private2*C1 ) C2) :
m1 = (x_key2_gen (C2) 1) 17 100 = 117 u
m2 = (x_key2_gen (C2)2) 17 98 = 115 s
... dan seterusnya.
Sehingga hasil dekripsinya adalah :
Gambar 4.20. Hasil proses dekripsi manual
4.6 Implementasi Program pada Contoh Kasus Enkripsi dan Dekripsi Data
Program algoritma enkripsi dan dekripsi data dapat diterapkan pada contoh
kasus berikut :
4.6.1 Dengan Menggunakan Data Berukuran 38 bytes, Panjang
Kunci 8 bit sampai 72 bit dan File Extensinya *.txt
Contoh kasus enkripsi dan dekripsi pada sub bab 4.3. dapat diselesaikan
dengan menggunakan program. Parameter-parameternya ada pada file kunci.txt.
seperti pada (Gambar 4.21).
Gambar 4.21. komponen kunci
23 1 1 0 22 2 3 6 4 3 10 7 12 7 12
user name : imamkomcpassword : math
42
Kriptosistem yang disimpan dalam file key.txt adalah susunan dari
komponen kunci mulai dari bilangan prima (p) = 23, koefisien kurva Elliptik a4 =
1 a6 = 1 , titik random terpilih (P) = (0,22), kunci publik user1 (publik1) = (6,4),
kunci publik user2 (publik2) = (3,10), kunci rahasia user1 (private1) = 2 dan kunci
rahasia user2 (private2) = 3. Semua komponen kunci publik tersebut boleh
diketahui oleh pihak lain, kecuali kunci rahasia (private key) dari kedua user. Dari
hasil kesepakatan diatas maka baik user1 maupun user2 bisa memakai komponen
kunci tersebut untuk proses enkripsi dan dekripsi data.
Data plaintext dengan nama pesan1.txt (lampiran 1) akan dienkripsi oleh
user1 dengan menggunakan program sehingga menghasilkan file yang bernama
sandi_pesan1.txt seperti pada (Gambar 4.22).
Gambar 4.22. Chipertext
Hasil data chipertext dengan nama sandi_pesan1.txt ini akan dikirim oleh
user1 kepada user2. Kemudian user2 melakukan proses dekripsi, yaitu mengubah
pesan yang berupa file sandi menjadi pesan yang dapat dibaca sesuai dengan
pesan asli yang dikirim oleh user1. Dan hasilnya adalah sebagai berikut :
Gambar 4.23. Hasil proses dekripsi
13 7 100 98 116 99 49 127 112 124 116 49 43 49 120 124 112 124 122 126 124 114 27 97 112 98 98 102 126 99 117 49 49 43 49 124 112 101 121
user name : imamkomcpassword : math
43
4.6.2 Dengan Menggunakan Data Berukuran 608 bytes, Panjang Kunci
8 bit sampai 72 bit dan File Extensinya *.txt
Data plaintext dengan nama pesan2.txt (Lampiran 1) akan dienkripsi oleh
user1 dengan menggunakan program sehingga menghasilkan file yang bernama
sandi_pesan2.txt seperti pada (Gambar 4.25). Parameter-parameternya ada pada
file kunci.txt seperti pada (Gambar 4.24)..
Gambar 4.24. komponen kunci
45782949 296156657 855829519 855829519 855829504 855829574 855829589 855829582 855829575 855829587 855829577 855829504 855829589 855829582 855829588 855829589 855829579 855829504 855829581 855829573 855829582 855829575 855829573 855829582 855829573 855829586 855829569 855829588 855829573 855829504 855829570 855829577 855829580 855829569 855829582 855829575 855829569 855829582 855829504 855829584 855829586 855829577 855829581 855829569 855829546 855829580 855829583 855829582 855829575 855829504 855829577 855829582 855829588 855829504 855829573 855829571 855829571 855829530 855829530 855829584 855829586 855829577 855829581 855829512 855829580 855829583 855829582 855829575 855829504 855829577 855829582 855829588 855829504 855829570 855829577 855829588 855829513 855829595 855829546 855829545 855829586 855829569 855829582 855829572 855829583 855829581 855829577 855829594 855829573 855829512 855829513 855829531 855829546 855829545 855829580 855829583 855829582 855829575 855829504 855829577 855829582 855829588 855829504 855829577 855829531 855829546 855829545 855829580 855829583 855829582 855829575 855829504 855829572 855829583 855829589 855829570 855829580 855829573 855829504 855829569 855829571 855829569 855829579 855829631 855829570 855829577 855829580 855829516 855829576 855829577 855829588 855829589 855829582 855829575 855829516 855829576 855829569 855829587 855829577 855829580 855829631 855829570 855829569 855829575 855829577 855829516 855829571 855829573 855829579 855829516 855829581 855829577 855829582 855829516 855829581 855829569 855829592 855829516 855829584 855829586 855829577 855829581 855829569 855829516 855829571 855829569 855829580 855829631 855829584 855829586 855829577 855829581 855829531 855829546 855829545 855829581 855829577 855829582 855829533 855829584 855829583 855829591 855829512 855829521 855829520 855829516 855829570 855829577 855829588 855829517 855829521 855829513 855829531 855829546 855829545 855829581 855829569 855829592 855829533 855829584 855829583 855829591 855829512 855829521 855829520 855829516 855829570 855829577 855829588 855829513 855829531 855829546 855829545 855829572 855829583 855829595 855829546 855829545 855829545 855829572 855829583 855829595 855829546 855829504 855829504 855829504 855829504 855829504 855829504 855829545 855829545 855829545 855829569 855829571 855829569 855829579 855829631 855829570 855829577 855829580 855829533 855829586 855829569 855829582 855829572 855829583 855829581 855829512 855829581 855829569 855829592 855829513 855829531 855829546 855829545 855829545 855829597 855829591 855829576 855829577 855829580 855829573 855829512 855829569 855829571 855829569 855829579 855829631 855829570 855829577 855829580 855829532 855829533 855829581 855829577 855829582 855829504 855829596 855829596 855829504 855829569 855829571 855829569 855829579 855829631 855829570 855829577 855829580 855829532
856818337 527743981 584657872 95859945 14719 444138450 583396766 238161441 644555402 524567951 410172902 62651137 551147701 62651137 551147701
44
Gambar 4.25. Chipertext
Hasil data chipertext dengan nama sandi_pesan2.txt ini akan dikirim oleh
user1 kepada user2. Kemudian user2 melakukan proses dekripsi, yaitu mengubah
pesan yang berupa file sandi menjadi pesan yang dapat dibaca sesuai dengan
pesan asli yang dikirim oleh user1. Dan hasilnya adalah sebagai berikut :
855829533 855829523 855829513 855829531 855829546 855829545 855829545 855829574 855829583 855829586 855829512 855829577 855829533 855829522 855829531 855829577 855829532 855829533 855829587 855829585 855829586 855829588 855829512 855829569 855829571 855829569 855829579 855829631 855829570 855829577 855829580 855829513 855829531 855829577 855829515 855829515 855829513 855829595 855829546 855829545 855829545 855829545 855829576 855829577 855829588 855829589 855829582 855829575 855829533 855829569 855829571 855829569 855829579 855829631 855829570 855829577 855829580 855829519 855829577 855829531 855829546 855829545 855829545 855829545 855829576 855829569 855829587 855829577 855829580 855829631 855829570 855829569 855829575 855829577 855829533 855829574 855829580 855829583 855829583 855829586 855829512 855829576 855829577 855829588 855829589 855829582 855829575 855829513 855829531 855829546 855829545 855829545 855829545 855829571 855829573 855829579 855829533 855829576 855829569 855829587 855829577 855829580 855829631 855829570 855829569 855829575 855829577 855829514 855829577 855829531 855829546 855829545 855829545 855829545 855829577 855829574 855829512 855829571 855829573 855829579 855829533 855829533 855829569 855829571 855829569 855829579 855829631 855829570 855829577 855829580 855829513 855829595 855829546 855829545 855829545 855829545 855829545 855829570 855829586 855829573 855829569 855829579 855829531 855829546 855829545 855829545 855829545 855829597 855829546 855829545 855829545 855829545 855829573 855829580 855829587 855829573 855829504 855829577 855829574 855829512 855829571 855829573 855829579 855829532 855829569 855829571 855829569 855829579 855829631 855829570 855829577 855829580 855829504 855829596 855829596 855829504 855829569 855829571 855829569 855829579 855829631 855829570 855829577 855829580 855829533 855829533 855829522 855829513 855829595 855829546 855829545 855829545 855829545 855829545 855829571 855829583 855829582 855829588 855829577 855829582 855829589 855829573 855829531 855829546 855829545 855829545 855829545 855829597 855829546 855829545 855829545 855829597 855829504 855829504 855829504 855829504 855829546 855829545 855829545 855829571 855829569 855829580 855829631 855829584 855829586 855829577 855829581 855829533 855829569 855829571 855829569 855829579 855829631 855829570 855829577 855829580 855829531 855829546 855829545 855829597 855829591 855829576 855829577 855829580 855829573 855829512 855829571 855829573 855829579 855829533 855829533 855829569 855829571 855829569 855829579 855829631 855829570 855829577 855829580 855829513 855829531 855829546 855829545 855829584 855829586 855829577 855829581 855829569 855829533 855829571 855829569 855829580 855829631 855829584 855829586 855829577 855829581 855829531 855829546 855829545 855829586 855829573 855829588 855829589 855829586 855829582 855829504 855829584 855829586 855829577 855829581 855829569 855829531 855829546 855829597
45
Gambar 4.26. Hasil proses dekripsi
Dari (Gambar 4.26) diperoleh kembali pesan asli yang dikirim oleh user1
dengan menggunakan implementasi program.
// fungsi untuk mengenerate bilangan primalong int ecc::prim(long int bit){
randomize();long int i;long double acak_bil,hitung,hasil_bagi,cek,min,max,prima,cal_prim;min=pow(10,bit-1);max=pow(10,bit);do{
do{ acak_bil=random(max);
}while(acak_bil<=min || acak_bil<=3);for(i=2;i<=sqrt(acak_bil);i++){
hitung=acak_bil/i;hasil_bagi=floor(hitung);cek=hasil_bagi*i;if(cek==acak_bil){
break;}else if(cek<acak_bil || acak_bil==2){
continue;}
} cal_prim=acak_bil;
}while(cek==acak_bil);prima=cal_prim;return prima;
}
46
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
1. Algoritma enkripsi dan dekripsi pada kriptosistem
kurva elliptik dapat digunakan untuk mengamankan data. Adapun proses
algoritma enkripsi dan dekripsi untuk mengamankan data adalah sebagai
berikut, pertama mengenerate bilangan prima, kedua menentukan
persamaan kurva elliptik dengan mengenerate koefisien-koefisiennya
secara acak dan memenuhi syarat diskriminan, ketiga menentukan titik
random pada kurva elliptik secara acak, keempat menentukan private1
dan private2 secara acak, kelima menentukan publik1 dan publik2, dan
keenam kedua user saling tukar-menukar kunci publik serta menghitung
key1 dan key2, ketujuh memilih private_gen, kedelapan menghitung
key1_gen dengan publik2, kesembilan ambil absis key1_gen, kesepuluh
menghitung chipertext, kesebelas ambil (C1,C2), keduabelas
menghitung key2_gen dengan private2, ketigabelas mengambil absis
dari key2_gen, dan keempatbelas menghitung plaintext (m).
2. Tujuan membuat program pertukaran kunci dan
enkripsi-dekripsi data dengan kriptosistem kurva elliptik adalah
mengamanan data teks untuk menghindari adanya penyadapan yang
dilakukan oleh pihak-pihak yang tidak berkepentingan. Data yang
diproses dalam enkripsi maupun dekripsi adalah data yang mempunyai
47
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.
5.2 Saran
Kriptosistem kurva elliptik dapat menjadi pilihan yang baik untuk
membangun sistem kriptografi masa depan yang memiliki tingkat kemanan
yang tinggi. Untuk penelitian selanjutnya, dapat dilakukan beberapa hal
antara lain :
1. Panjang kunci yang digunakan lebih dari 9 (sembilan) digit.
2. Tipe data yang dienkripsi lebih luas dan bervariatif,
bukan hanya data dengan tipe teks.
48
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
B. pesan2.txt
// fungsi untuk mengenerate bilangan primalong int ecc::prim(long int bit){
randomize();long int i;long double acak_bil,hitung,hasil_bagi,cek,min,max,prima,cal_prim;min=pow(10,bit-1);max=pow(10,bit);do{
do{ acak_bil=random(max);
}while(acak_bil<=min || acak_bil<=3);for(i=2;i<=sqrt(acak_bil);i++){
hitung=acak_bil/i;hasil_bagi=floor(hitung);cek=hasil_bagi*i;if(cek==acak_bil){
break;}else if(cek<acak_bil || acak_bil==2){
continue;}
} cal_prim=acak_bil;
}while(cek==acak_bil);prima=cal_prim;return prima;
}
user name : imamkomcpassword : math
Lampiran 2. Source Code Program.
(final_eccvb.cpp)
#include <conio.h>#include <stdio.h>#include <math.h>#include <stdlib.h>#include <fstream.h>#include <sys\timeb.h>
class ecc {public :
ecc(); // fungsi utama void DH(); // untuk pertukaran kunci antara dua user
void Enkripsi_ElGamal(); // untuk melakukan proses enkripsivoid Dekripsi_ElGamal(); // untuk melakukan proses dekripsi
// fungsi tambahan long int prim(long int); // untuk mengenerate bilangan prima
long double mod(long double, long double); // untuk mencari modulo dari suatu bilangan// untuk mengenerate titik random pada kurva elliptikvoid rand_point(long int, long double, long double, long int); // untuk mencari invers pembagi long int inv_pembagi(long int, long double); // untuk mencari hasil penambahan dua titikvoid xy_add2p(long int, long double, long double, long double, long double, long double); // untuk mencari hasil perkalian skalar dengan titik void xy_kp(long int, long int, long int, long double, long double);
private : long double x3,y3; // variabel global (x3,y3) long double x_random,y_random; // variable global titik random };
ecc::ecc() {}struct timeb t;// fungsi untuk mengenerate bilangan primalong int ecc::prim(long int bit){
randomize();long int i;long double acak_bil,hitung,hasil_bagi,cek,min,max,prima,cal_prim;min=pow(10,bit-1);max=pow(10,bit);do{
do{ acak_bil=random(max);
}while(acak_bil<=min || acak_bil<=3);for(i=2;i<=sqrt(acak_bil);i++){
hitung=acak_bil/i;hasil_bagi=floor(hitung);cek=hasil_bagi*i;if(cek==acak_bil){
break;}else if(cek<acak_bil || acak_bil==2){
continue;}
} cal_prim=acak_bil;
}while(cek==acak_bil);prima=cal_prim;
Lampiran 2-1
return prima;}
// fungsi untuk mencari modulo suatu bilanganlong double ecc::mod(long double a,long double b){
if(fmodl(a,b)<0){return (fmodl(a,b)+b);
}else{
return fmodl(a,b);}
}// fungsi untuk mengenerate titik random pada kurva elliptikvoid ecc::rand_point(long int p, long double a4, long double a6, long int keylength){
long int cek_titik,nol_satu,cek_akar;long double cek_x;if(keylength<=5){
do{x_random=random(p)+1;y_random=random(p)+1;cek_titik=mod(mod(powl(y_random,2),p)-mod(mod(powl(x_random,2),p)*x_random,p)- mod(a4*x_random,p)-a6,p);
}while(cek_titik!=0);}else if(keylength>5){
do{x_random=random(p)+1;
cek_x=sqrtl(mod(mod(mod(powl(x_random,2),p)*x_random,p)+mod((a4*x_random),p)+a6,p)); cek_akar=floor(cek_x);
}while(cek_x!=cek_akar);nol_satu=random(2);
nol_satu; y_random = nol_satu=1 ? mod(cek_x,p) : mod(-cek_x,p);
}}
// fungsi untuk mencari invers dari suatu pembagilong int ecc::inv_pembagi(long int p,long double pembagi){
long double a1,a2,a3,b1,b2,b3,t1,t2,t3;long int q;//inisialisasia1=1; b1=0;a2=0; b2=1;a3=p; b3=mod(pembagi,p);//if(b3==0){//tidak memiliki invers atau menghasilkan titik infinity//}do{
q=floor(a3/b3); t1=a1-mod(q*b1,p); t2=a2-mod(q*b2,p); t3=a3-mod(q*b3,p); //update nilai A dan B a1=b1; a2=b2; a3=b3; b1=t1; b2=t2; b3=t3; }while(b3!=1); return mod(b2,p);}
Lampiran 2-2
// fungsi untuk mencari hasil (x3,y3) penambahan 2 titikvoid ecc::xy_add2p(long int p, long double a4, long double x1, long double x2, long double y1, long double y2){
long double pembilangx,pembagix,pembilangy,pembagiy,inv_pembagix,inv_pembagiy;if(x1==x2 && y1==y2){
pembilangx=mod(powl(mod(3*mod(powl(x1,2),p)+a4,p),2),p);pembagix=mod(powl(mod(2*y1,p),2),p);pembilangy=mod(mod(3*mod(powl(x1,2),p)+a4,p),p);pembagiy=mod(mod(2*y1,p),p);if(pembagix!=0){
inv_pembagix=inv_pembagi(p,pembagix);inv_pembagiy=inv_pembagi(p,pembagiy);x3=mod((mod(pembilangx*inv_pembagix,p))-x1-x2,p);y3=mod(mod(pembilangy*inv_pembagiy,p)*mod((x1-x3),p)-y1,p);
}else if(pembagix==0){
x3=0; // sebagai penanda sajay3=0; // sebagai penanda saja
}}else if(x1!=x2 || y1!=y2){
if(x2==0 && y2==0){y3=y1;x3=x1;
}else if(x1==0 && y1==0){
y3=y2;x3=x2;
}else{
pembilangx=mod(powl(y2-y1,2),p);pembagix=mod(powl(x2-x1,2),p);pembilangy=mod(y2-y1,p);pembagiy=mod(x2-x1,p);if(pembagix!=0){
inv_pembagix=inv_pembagi(p,pembagix);inv_pembagiy=inv_pembagi(p,pembagiy);x3=mod((mod(pembilangx*inv_pembagix,p))-x1-x2,p);y3=mod(mod(pembilangy*inv_pembagiy,p)*mod((x1-x3),p)-y1,p);
}else if(pembagix==0){
x3=0; // sebagai penanda sajay3=0; // sebagai penanda saja
}}
}}// fungsi untuk mencari hasil (x3,y3) perkalian antara skalar dengan titikvoid ecc::xy_kp(long int p,long int a4, long int k, long double x, long double y){
long int u[100],l,j,x1,y1; // merubah k menjadi binerl=1;while(k>0){
if(k%2==1){if(k==1){
u[l]=1;break;
}u[l]=1;
}else{
u[l]=0;
Lampiran 2-3
}k=k/2;l=l+1;}
// penggandaan dan penambahan Px3=0; // ini sialisasi titik (x3,y3)=(0,0)y3=0;for(j=l;j>0;j--){
if(u[j]==1){x1=x3;y1=y3;xy_add2p(p,a4,x1,x1,y1,y1);x1=x3;y1=y3;// fungsi penambahan 2 titikxy_add2p(p,a4,x1,x,y1,y);
}else if(u[j]==0){
x1=x3;y1=y3;// fungsi penambahan 2 titik yang samaxy_add2p(p,a4,x1,x1,y1,y1);
}}
}
void ecc::DH(){ofstream file_output;file_output.open("kunci.txt");ftime(&t);long int waktu_awal, waktu_akhir;float waktu,second;long double a4,a6,det; long int p;long int private1,private2;long int x_key1,y_key1,x_key2,y_key2;long double x_publik1,y_publik1,x_publik2,y_publik2;char strbit[1000],buffer[1000]; long int bit,count_input;
randomize();cout<<"\n-------------------Pertukaran Kunci DH----------------\n";cout<<"\nGenerate bil. prima p :\n";count_input=0;
start: cout<<"Masukkan panjang kunci :"; strcpy(strbit,cgets(buffer)); if (atoi(strbit)<=0 || atoi(strbit)>9 ||strlen(strbit)!=1){
cout<<"\n<WARNING> : 'Panjang kunci harus bilangan bulat antara 1 sampai 9'\n\n";count_input++;if(count_input%4==0){
clrscr();}goto start;
}bit=atoi(strbit); // bit adalah keylength
waktu_awal=time(NULL);//awal waktu generate mulai dihitung p=prim(bit); cout<<"\np = "<<p<<"\n";
cout<<"\nGenerate koefisien kurva : \n";do{
Lampiran 2-4
a4=random(p); a6=random(p); }while(mod((4*mod(mod(powl(a4,2),p)*a4,p))+(27*mod(powl(a6,2),p)),p)==0);
det=mod((4*mod(mod(powl(a4,2),p)*a4,p))+(27*mod(powl(a6,2),p)),p); cout<<"a4 = "<<long(a4)<<", "<<"a6 = "<<long(a6)<<"\n"; cout<<"nilai 4*a4^3 + 27*a6^2 (mod "<<p<<") = " <<long(det)<<"\n\n"; cout<<"Persamaan kurva :"<<" "<<"y^2 = x^3 + "<<long(a4)<<"x + "<<long(a6);
cout<<"\n\nMenentukan titik random (x,y) : \n"; rand_point(p, a4, a6, bit); // generate titik random cout<<"Titik random terpilih = ("<<long(x_random)<<","<< long(y_random)<<")"; cout<<"\n\nGenerate kunci rahasia : \n"; do{ // batasan nilai private ={1,..,p-1} private1=random(p-1)+1; private2=random(p-1)+1; }while(private1<1 || private2<1);
cout<<"private1 = "<<private1<<"\n"; cout<<"private2 = "<<private2<<"\n\n";
cout<<"Menghitung kunci publik : \n"; xy_kp(p,a4,private1,x_random,y_random); x_publik1=x3; y_publik1=y3; xy_kp(p,a4,private2,x_random,y_random); x_publik2=x3; y_publik2=y3; cout<<"\npublik1="<<private1<<"*("<< long(x_random)<<","<< long(y_random)<<")";
cout<<"=("<< long(x_publik1)<<","<< long(y_publik1)<<")\n";cout<<"publik2="<<private2<<"*("<< long(x_random)<<","<< long(y_random)<<")";cout<<"=("<< long(x_publik2)<<","<< long(y_publik2)<<")\n\n";
cout<<"Menghitung kunci rahasia bersama : \n"; xy_kp(p,a4,private1,x_publik2,y_publik2); x_key1=x3; y_key1=y3; xy_kp(p,a4,private2,x_publik1,y_publik1); x_key2=x3; y_key2=y3; cout<<"key1="<<private1<<"*("<< long(x_publik2)<<","<< long(y_publik2)<<")";
cout<<”=("<<x_key1<<","<<y_key1<<")\n";cout<<"key2 ="<<private2<<"*("<< long(x_publik1)<<","<< long(y_publik1)<<")";cout<<"=("<<x_key2<<","<<y_key2<<")\n\n";
//menampilkan kunci kesepakatan dari protokol DH file_output<<p<<" "<< long(a4)<<" "<< long(a6)<<" "; file_output<< long(x_random)<<" "<< long(y_random)<<" "; file_output<<private1<<" "<<private2<<" "; file_output<< long(x_publik1)<<" "<< long(y_publik1)<<" "; file_output<< long(x_publik2)<<" "<< long(y_publik2)<<" "; file_output<<x_key1<<" "<<y_key1<<" "; file_output<<x_key2<<" "<<y_key2<<" ";
waktu_akhir=time(NULL);//akhir waktu generate mulai dihitungsecond=(t.millitm/1000.0);waktu=(waktu_akhir-waktu_awal)+second;cout<<endl;cout<<"waktu generate kunci = "<<waktu<<" "<<"detik"<<endl;
}
void ecc::Enkripsi_ElGamal(){
Lampiran 2-5
ftime(&t);long int waktu_awal, waktu_akhir;float waktu,second;long int x_publik1_gen,y_publik1_gen;long int x_key1_gen;//,y_key1;long int loop,i,loop_p;long int iter;long int k,byk_blok;char fpesan_in[500],fpesan_out[500],buffer[500],fpesan_inTemp[500],fpesan_outTemp[500];long int count_input;
randomize(); again1: cout<<"\n\n-------------------Skema Enkripsi ElGamal----------------\n\n"; cout<<"Ambil hasil pertukaran kunci :\n";
char *datakunci="kunci.txt";long double *m_kunci;ifstream file_dtkunci;file_dtkunci.open(datakunci);m_kunci=new long double[50];loop=0;while(!file_dtkunci.eof()){
file_dtkunci>>m_kunci[loop+1];loop++;
}iter=loop-1; //karena membacanya per bilanganfile_dtkunci.close();//cek existensi file kunci.txtif(iter==0){
cout<<"\n<WARNING> : 'File "<<datakunci;cout<<" is NULL, please enter keylength to key exchange!'\n\n";DH();clrscr();goto again1;
}for(i=1;i<=iter;i++){
cout<<long(m_kunci[i])<<" ";}cout<<"\n\n";
cout<<"Ring kunci yang dimiliki user1 :"<<"\n"; cout<<"prima = "<< long(m_kunci[1])<<"\n"; cout<<"a4 = "<<long(m_kunci[2])<<"\n"; cout<<"a6 = "<<long(m_kunci[3])<<"\n"; cout<<"Titik random(P) = ("<<long(m_kunci[4])<<","<< long(m_kunci[5])<<")\n"; cout<<"publik2 = ("<<long(m_kunci[10])<<","<< long(m_kunci[11])<<")\n"; cout<<"private1 = "<< long(m_kunci[6])<<"\n\n";
count_input=0; // menghitung berapa kali seorang user tesebut mencoba memasukkan file again: //jika file tidak ditemukan strcpy(fpesan_out,"sandi_"); //untuk mereset supaya hasil strcat tidak menumpuk
cout<<"Masukkan path/nama file yang akan dienkripsi = "; buffer[0]=char(500); // ini adalah space untuk penampungan karakter input mulai dari null strcpy(fpesan_in,cgets(buffer));
//Input pesan FILE *input;
long int m_pesan; input = fopen(fpesan_in, "r");
//cek existensi file pesan
Lampiran 2-6
if (input== NULL){cout<<"\n<WARNING> : 'File "<< fpesan_in<<" not found,”;cout<<” enter name file plaintext with correct!'\n\n";count_input++;if(count_input%4==0){
clrscr();}goto again;
}
strcpy(fpesan_inTemp,strrev(fpesan_in)); int pos_slash=0; for(i=1;i<=int(strlen(fpesan_inTemp));i++){ pos_slash++; if(fpesan_inTemp[i]==92){ //char slash '\' break; }
}pos_slash= int(strlen(fpesan_inTemp)) - pos_slash; // dari misal kunci.txt menjadi sandi_kunci.txt
//pengkodisian jika pos_slash = 0 atau != 0 if(pos_slash==0){ // jika dalam current folder //kond. 1"<<"\n";
//fpesan_out = menambah fpesan_in dengan sandi_.txt strcpy(fpesan_out,strcat(fpesan_out,strrev(fpesan_in)));
}else{ // jika dengan path dinamis
//kond. 2"<<"\n";strcpy(fpesan_in,strrev(fpesan_in));// split name path menjadi 2 bagian
//bagian1int loop_take=0;for(i=0;i<pos_slash;i++){
fpesan_outTemp[loop_take]=fpesan_in[i];loop_take++;
}fpesan_outTemp[loop_take]= '\0'; // to destroy noisestrcpy(fpesan_out,strcat(fpesan_outTemp,fpesan_out));
//bagian2loop_take=0;for(i=pos_slash;i< int(strlen(fpesan_inTemp));i++){
fpesan_outTemp[loop_take]=fpesan_in[i];loop_take++;
}fpesan_outTemp[loop_take]= '\0'; // to destroy noisestrcpy(fpesan_out,strcat(fpesan_out,fpesan_outTemp));
} cout<<"\nNama file hasil enkripsi = "; cprintf(fpesan_out); // animasi warna hijau pada nama file sandi cout<<"\n";
waktu_awal=time(NULL);//awal waktu enkripsi mulai dihitung ofstream file_output; // code untuk menulis hasil enkripsi pada file fpesan_out
file_output.open(fpesan_out); cout<<"\nProses enkripsi/ user1 menghitung( pesan[] ^ x_key1) :"<<"\n"; cout<<"Please wait."; loop_p=0; byk_blok=1000; // jumlah blok tergantung kesepakatan while((m_pesan=fgetc(input))!= EOF){
if(loop_p%byk_blok==0){
Lampiran 2-7
do{k=random(m_kunci[1]); //k adalah private1_gen bersifat dinamis
}while(k<2);//untuk menghitung k*P (P adalah titik pada kurva yang dipilih bersama)xy_kp(m_kunci[1],m_kunci[2],k,m_kunci[4],m_kunci[5]);//x_kp(prima,a4,private1_gen,xrandom,yrandom)x_publik1_gen=x3;y_publik1_gen=y3; // m_kunci[4] adalah x_random, m_kunci[5] adalah y_randomfile_output<<x_publik1_gen<<" "<<y_publik1_gen<<" "; // akan dikirim ke user2
//untuk menghitung k*Publik key user2xy_kp(m_kunci[1],m_kunci[2],k,m_kunci[10],m_kunci[11]);//x_kp(prima,a4,private1_gen,xpublik2,ypublik2)x_key1_gen=x3;
}m_pesan=(m_pesan^x_key1_gen); //logika XOR file_output<<m_pesan<<" ";loop_p++;//animasi saat proses enkripsiif(loop_p%100000==0){
cout<<".";}
}cout<<"!";iter=loop_p; //karena membacanya per karakterfclose(input);cout<<"\n\njumlah karakter pesan = "<<iter;cout<<"\n\n"; cout<<"Done......!";waktu_akhir=time(NULL);//akhir waktu enkripsi mulai dihitung
second=(t.millitm/1000.0); waktu=(waktu_akhir-waktu_awal)+second; cout<<endl; cout<<"waktu enkripsi = "<<waktu<<" "<<"detik"<<endl;}
void ecc::Dekripsi_ElGamal(){ftime(&t);long int waktu_awal, waktu_akhir;float waktu,second;long int x_key2_gen;long int i,loop_s,loop_p;long int loop,iter;char pesan2;char fsandi_in[500],fsandi_out[500],buffer[500],fsandi_inTemp[500],fsandi_outTemp[500];long int byk_blok,cek_stop,stop,x_publik1_gen,y_publik1_gen,count_input;
randomize(); again1:
cout<<"\n\n-------------------Skema Dekripsi ElGamal----------------\n\n";cout<<"Ambil hasil pertukaran kunci :\n";char *datakunci="kunci.txt";long double *m_kunci;//ofstream file_datakunci;ifstream file_dtkunci;file_dtkunci.open(datakunci);m_kunci=new long double[50];loop=0;while(!file_dtkunci.eof()){file_dtkunci>>m_kunci[loop+1];loop++;}
Lampiran 2-8
iter=loop-1; //karena membacanya per bilanganfile_dtkunci.close();if(iter==0){
cout<<"\n<WARNING> : 'File "<<datakunci<<" is NULL,”;cout<<” please enter keylength to key exchange!'\n\n";DH();
clrscr(); Enkripsi_ElGamal(); clrscr(); goto again1;
}for(i=1;i<=iter;i++){
cout<<long(m_kunci[i])<<" ";}cout<<"\n\n";
cout<<"Ring kunci yang dimiliki user2 :"<<"\n"; cout<<"prima = "<< long(m_kunci[1])<<"\n";cout<<"a4 = "<< long(m_kunci[2])<<"\n";cout<<"a6 = "<< long(m_kunci[3])<<"\n";cout<<"Titik random(P) = ("<<long(m_kunci[4])<<","<< long(m_kunci[5])<<")\n";cout<<"publik2 = ("<<long(m_kunci[10])<<","<< long(m_kunci[11])<<")\n";cout<<"private2 = "<< long(m_kunci[7])<<"\n\n";
count_input=0; // menghitung berapa kali seorang user tesebut mencoba memasukkan fileagain: //jika file tidak ditemukanstrcpy(fsandi_out,"pesan_"); //untuk mereset supaya hasil strcat tidak menumpuk
cout<<"Masukkan path/nama file yang akan dideskripsi = "; buffer[0]=char(500); // ini adalah space untuk penampungan karakter input mulai dari nullstrcpy(fsandi_in,cgets(buffer));
//Input pesanFILE *input;long int m_sandi;input = fopen(fsandi_in, "r");
//cek existensi file sandi if (input== NULL){
cout<<"\n<WARNING> : 'File "<< fsandi_in<<" not found,”;cout<<” enter name file chipertext with correct!'\n\n";
count_input++; if(count_input%4==0){
clrscr();}
goto again; }
strcpy(fsandi_inTemp,strrev(fsandi_in));int pos_slash=0;for(i=1;i<=int(strlen(fsandi_inTemp));i++){
pos_slash++;if(fsandi_inTemp[i]==92){ //char slash '\'
//cout<<"\npos_slash = "<<pos_slash<<"\n"; break; }
}pos_slash= int(strlen(fsandi_inTemp)) - pos_slash; // dari misal kunci.txt menjadi kunci_sandi.txt
//pengkodisian jika pos_slash = 0 atau != 0 if(pos_slash==0){ // jika dalam current folder
//kond. 1"<<"\n";
Lampiran 2-9
//fpesan_out = menambah fpesan_in dengan sandi_strcpy(fsandi_out,strcat(fsandi_out,strrev(fsandi_in)));
}else{ // jika dengan path dinamis
//kond. 2"<<"\n";strcpy(fsandi_in,strrev(fsandi_in));
// split name path menjadi 2 bagian ://bagian1int loop_take=0;for(i=0;i<pos_slash;i++){
fsandi_outTemp[loop_take]=fsandi_in[i];loop_take++;
}fsandi_outTemp[loop_take]= '\0'; // to destroy noise strcpy(fsandi_out,strcat(fsandi_outTemp,fsandi_out));//bagian2loop_take=0;for(i=pos_slash;i< int(strlen(fsandi_inTemp));i++){
fsandi_outTemp[loop_take]=fsandi_in[i];loop_take++;
}fsandi_outTemp[loop_take]= '\0'; // to destroy noisestrcpy(fsandi_out,strcat(fsandi_out,fsandi_outTemp));
} cout<<"\nNama file hasil dekripsi = ";cprintf(fsandi_out); // animasi warna hijau pada nama file hasil decryptcout<<"\n";
waktu_awal=time(NULL);//awal waktu deskripsi mulai dihitungofstream file_output; // code untuk menulis hasil dekripsi pada file fsandi_outfile_output.open(fsandi_out);ifstream file_hitung; // code untuk membaca file fsandi_infile_hitung.open(fsandi_in);loop=0;while(!file_hitung.eof()){file_hitung>>m_sandi;loop++;} iter=loop-1;
cout<<"\njumlah semua karakter pesan sandi = "<<iter;cout<<"\n\n";cout<<"Proses Deskripsi/ user2 menghitung( x_key2 ^ sandi[]) :"<<"\n";byk_blok=1000; // jumlah blok tergantung kesepakatancek_stop=iter/(byk_blok+2);if(iter%(byk_blok+2)!=0){
stop=iter-2*(cek_stop+1); }
else{ stop=iter-2*cek_stop;
} cout<<"jumlah karakter pesan = "<<stop;cout<<"\n\n";cout<<"Please wait."; ifstream file_dt;file_dt.open(fsandi_in);loop_p=0;loop_s=1;do{
file_dt>>m_sandi;if(loop_p%(byk_blok+2)==0 || (loop_p-1)%(byk_blok+2)==0){
Lampiran 2-10
if(loop_p%(byk_blok+2)==0){x_publik1_gen=m_sandi;
}else if((loop_p-1)%(byk_blok+2)==0){
y_publik1_gen=m_sandi;
// untuk menghitung private2*publik1_gen //x_kp(prima,a4,private2,x_publik1_gen,y_publik1_gen)
xy_kp(m_kunci[1],m_kunci[2],m_kunci[7],x_publik1_gen,y_publik1_gen);x_key2_gen=x3;
}}
else if(loop_p%(byk_blok+2)!=0 && (loop_p-1)%(byk_blok+2)!=0){ pesan2=char(x_key2_gen^m_sandi); //logika XOR file_output<<pesan2; loop_s++;
}
loop_p++;//animasi saat proses enkripsiif(loop_p%100000==0){
cout<<".";}
}while(loop_s<=stop);cout<<"!";cout<<"\n\nDone....!";waktu_akhir=time(NULL);//akhir waktu deskripsi mulai dihitungsecond=(t.millitm/1000.0);waktu=(waktu_akhir-waktu_awal)+second;cout<<endl;cout<<"waktu deskripsi = "<<waktu<<" "<<"detik"<<endl;
}
void main (){//deklarasi nama objek dari classecc run;char strpilih[1000],buffer[1000]; //untuk animasi warna pilihanint pilih; cout.setf(ios::fixed,ios::floatfield); // floatfield set to fixed
do {clrscr ();textcolor(10); //warna hijaucprintf("\nNama : Imam Kholissodin");printf("\n"); //new linecprintf("Nim : 080312630");printf("\n\n");cout<<"1. Penentuan Kunci Dieffie-Hellman ECC\n";cout<<"2. Enkripsi ElGamal ECC\n";cout<<"3. Dekripsi ElGamal ECC\n";cout<<"4. Keluar \n";cout<<"masukkan pilihan anda :";strcpy(strpilih,cgets(buffer)); pilih=atoi(strpilih);switch(pilih){
case 1:{run.DH();cout<<endl;cout<<"\npress any key to be continue...... \n";getch ();break;
}case 2:{
Lampiran 2-11
run.Enkripsi_ElGamal();cout<<endl;cout<<"\npress any key to be continue...... \n";getch ();break;
}case 3:{
run.Dekripsi_ElGamal();cout<<endl;cout<<"\npress any key to be continue...... \n";getch ();break;
}}
}while (pilih!=4);}
Lampiran 2-12
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. Output Data Program.
A. pesan1.txt
1. Enkripsi pesan1.txt
-------------------Skema Enkripsi ElGamal----------------
Ambil hasil pertukaran kunci :
Ring kunci yang dimiliki user1 :prima = 23a4 = 1a6 = 1Titik random(P) = (0,22)publik2 = (3,10)private1 = 2
Masukkan nama file yang akan dienkripsi = pesan1.txtNama file hasil enkripsi = sandi_pesan1.txt
Proses enkripsi/ user1 menghitung( pesan[] ^ x_key1) :
Diket :byk_blok =1000
======================================.C1 =4*(0,22) =(13,7)Hitung key1_gen =4*(3,10) =(17,3)Absis key1_gen =17>Asc(u) =117 C2 =117 Xor 17 =100>Asc(s) =115 C2 =115 Xor 17 =98>Asc(e) =101 C2 =101 Xor 17 =116>Asc(r) =114 C2 =114 Xor 17 =99>Asc( ) =32 C2 =32 Xor 17 =49>Asc(n) =110 C2 =110 Xor 17 =127>Asc(a) =97 C2 =97 Xor 17 =112>Asc(m) =109 C2 =109 Xor 17 =124>Asc(e) =101 C2 =101 Xor 17 =116>Asc( ) =32 C2 =32 Xor 17 =49>Asc(:) =58 C2 =58 Xor 17 =43>Asc( ) =32 C2 =32 Xor 17 =49
Lampiran 10-1
>Asc(i) =105 C2 =105 Xor 17 =120>Asc(m) =109 C2 =109 Xor 17 =124>Asc(a) =97 C2 =97 Xor 17 =112>Asc(m) =109 C2 =109 Xor 17 =124>Asc(k) =107 C2 =107 Xor 17 =122>Asc(o) =111 C2 =111 Xor 17 =126>Asc(m) =109 C2 =109 Xor 17 =124>Asc(c) =99 C2 =99 Xor 17 =114>Asc() =10 C2 =10 Xor 17 =27>Asc(p) =112 C2 =112 Xor 17 =97>Asc(a) =97 C2 =97 Xor 17 =112>Asc(s) =115 C2 =115 Xor 17 =98>Asc(s) =115 C2 =115 Xor 17 =98>Asc(w) =119 C2 =119 Xor 17 =102>Asc(o) =111 C2 =111 Xor 17 =126>Asc(r) =114 C2 =114 Xor 17 =99>Asc(d) =100 C2 =100 Xor 17 =117>Asc( ) =32 C2 =32 Xor 17 =49>Asc( ) =32 C2 =32 Xor 17 =49>Asc(:) =58 C2 =58 Xor 17 =43>Asc( ) =32 C2 =32 Xor 17 =49>Asc(m) =109 C2 =109 Xor 17 =124>Asc(a) =97 C2 =97 Xor 17 =112>Asc(t) =116 C2 =116 Xor 17 =101>Asc(h) =104 C2 =104 Xor 17 =121
jumlah karakter pesan = 37
Done......!
Lampiran 10-2
2. Dekripsi sandi_pesan1.txt
-------------------Skema Dekripsi ElGamal----------------
Ambil hasil pertukaran kunci :23 1 1 0 22 2 3 6 4 3 10 7 12 7 12
Ring kunci yang dimiliki user2 :prima = 23a4 = 1a6 = 1Titik random(P) = (0,22)publik2 = (3,10)private2 = 3
Masukkan nama file yang akan dideskripsi = sandi_pesan1.txtNama file hasil dekripsi = pesan_sandi_pesan1.txtProses Deskripsi/ user2 menghitung( x_key2 ^ sandi[]) :
Diket :byk_blok =1000
jumlah karakter pesan = 37
Please wait.======================================.Hitung key2_gen =3*(13,7) =(17,3)Absis key1_gen =17>m_sandi =100 pesan2 =17 Xor 100 =Char(117) =u>m_sandi =98 pesan2 =17 Xor 98 =Char(115) =s>m_sandi =116 pesan2 =17 Xor 116 =Char(101) =e>m_sandi =99 pesan2 =17 Xor 99 =Char(114) =r>m_sandi =49 pesan2 =17 Xor 49 =Char(32) = >m_sandi =127 pesan2 =17 Xor 127 =Char(110) =n>m_sandi =112 pesan2 =17 Xor 112 =Char(97) =a>m_sandi =124 pesan2 =17 Xor 124 =Char(109) =m>m_sandi =116 pesan2 =17 Xor 116 =Char(101) =e>m_sandi =49 pesan2 =17 Xor 49 =Char(32) = >m_sandi =43 pesan2 =17 Xor 43 =Char(58) =:>m_sandi =49 pesan2 =17 Xor 49 =Char(32) = >m_sandi =120 pesan2 =17 Xor 120 =Char(105) =i>m_sandi =124
Lampiran 10-3
pesan2 =17 Xor 124 =Char(109) =m>m_sandi =112 pesan2 =17 Xor 112 =Char(97) =a>m_sandi =124 pesan2 =17 Xor 124 =Char(109) =m>m_sandi =122 pesan2 =17 Xor 122 =Char(107) =k>m_sandi =126 pesan2 =17 Xor 126 =Char(111) =o>m_sandi =124 pesan2 =17 Xor 124 =Char(109) =m>m_sandi =114 pesan2 =17 Xor 114 =Char(99) =c>m_sandi =27 pesan2 =17 Xor 27 =Char(10) =
>m_sandi =97 pesan2 =17 Xor 97 =Char(112) =p>m_sandi =112 pesan2 =17 Xor 112 =Char(97) =a>m_sandi =98 pesan2 =17 Xor 98 =Char(115) =s>m_sandi =98 pesan2 =17 Xor 98 =Char(115) =s>m_sandi =102 pesan2 =17 Xor 102 =Char(119) =w>m_sandi =126 pesan2 =17 Xor 126 =Char(111) =o>m_sandi =99 pesan2 =17 Xor 99 =Char(114) =r>m_sandi =117 pesan2 =17 Xor 117 =Char(100) =d>m_sandi =49 pesan2 =17 Xor 49 =Char(32) = >m_sandi =49 pesan2 =17 Xor 49 =Char(32) = >m_sandi =43 pesan2 =17 Xor 43 =Char(58) =:>m_sandi =49 pesan2 =17 Xor 49 =Char(32) = >m_sandi =124 pesan2 =17 Xor 124 =Char(109) =m>m_sandi =112 pesan2 =17 Xor 112 =Char(97) =a>m_sandi =101 pesan2 =17 Xor 101 =Char(116) =t>m_sandi =121 pesan2 =17 Xor 121 =Char(104) =h
Done....!
Lampiran 10-4
B. pesan2.txt
1. Enkripsi pesan2.txt
-------------------Skema Enkripsi ElGamal----------------
Ambil hasil pertukaran kunci :
Ring kunci yang dimiliki user1 :prima = 856818337a4 = 527743981a6 = 584657872Titik random(P) = (95859945,14719)publik2 = (524567951,410172902)private1 = 444138450
Masukkan nama file yang akan dienkripsi = pesan2.txtNama file hasil enkripsi = sandi_pesan2.txt
Proses enkripsi/ user1 menghitung( pesan[] ^ x_key1) :
Diket :byk_blok =1000
======================================.C1 =702181708*(95859945,14719) =(45782949,296156657)Hitung key1_gen =702181708*(524567951,410172902) =(855829536,548847496)Absis key1_gen =855829536>Asc(/) =47 C2 =47 Xor 855829536 =855829519>Asc(/) =47 C2 =47 Xor 855829536 =855829519>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(f) =102 C2 =102 Xor 855829536 =855829574>Asc(u) =117 C2 =117 Xor 855829536 =855829589>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc(s) =115 C2 =115 Xor 855829536 =855829587>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(u) =117 C2 =117 Xor 855829536 =855829589>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(t) =116
Lampiran 10-5
C2 =116 Xor 855829536 =855829588
>Asc(u) =117 C2 =117 Xor 855829536 =855829589>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(p) =112 C2 =112 Xor 855829536 =855829584>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(m) =109
Lampiran 10-6
C2 =109 Xor 855829536 =855829581>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(:) =58 C2 =58 Xor 855829536 =855829530>Asc(:) =58 C2 =58 Xor 855829536 =855829530>Asc(p) =112 C2 =112 Xor 855829536 =855829584>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(() =40 C2 =40 Xor 855829536 =855829512>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(i) =105
Lampiran 10-7
C2 =105 Xor 855829536 =855829577>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc()) =41 C2 =41 Xor 855829536 =855829513>Asc({) =123 C2 =123 Xor 855829536 =855829595>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(d) =100 C2 =100 Xor 855829536 =855829572>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(z) =122 C2 =122 Xor 855829536 =855829594>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(() =40 C2 =40 Xor 855829536 =855829512>Asc()) =41 C2 =41 Xor 855829536 =855829513>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(o) =111 C2 =111 Xor 855829536 =855829583
Lampiran 10-8
>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(d) =100 C2 =100 Xor 855829536 =855829572>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(u) =117 C2 =117 Xor 855829536 =855829589>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579
Lampiran 10-9
>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(,) =44 C2 =44 Xor 855829536 =855829516>Asc(h) =104 C2 =104 Xor 855829536 =855829576>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc(u) =117 C2 =117 Xor 855829536 =855829589>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc(,) =44 C2 =44 Xor 855829536 =855829516>Asc(h) =104 C2 =104 Xor 855829536 =855829576>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(s) =115 C2 =115 Xor 855829536 =855829587>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(,) =44 C2 =44 Xor 855829536 =855829516>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(,) =44 C2 =44 Xor 855829536 =855829516>Asc(m) =109
Lampiran 10-10
C2 =109 Xor 855829536 =855829581>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(,) =44 C2 =44 Xor 855829536 =855829516>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(x) =120 C2 =120 Xor 855829536 =855829592>Asc(,) =44 C2 =44 Xor 855829536 =855829516>Asc(p) =112 C2 =112 Xor 855829536 =855829584>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(,) =44 C2 =44 Xor 855829536 =855829516>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(p) =112 C2 =112 Xor 855829536 =855829584>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(n) =110
Lampiran 10-11
C2 =110 Xor 855829536 =855829582>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(p) =112 C2 =112 Xor 855829536 =855829584>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(w) =119 C2 =119 Xor 855829536 =855829591>Asc(() =40 C2 =40 Xor 855829536 =855829512>Asc(1) =49 C2 =49 Xor 855829536 =855829521>Asc(0) =48 C2 =48 Xor 855829536 =855829520>Asc(,) =44 C2 =44 Xor 855829536 =855829516>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc(-) =45 C2 =45 Xor 855829536 =855829517>Asc(1) =49 C2 =49 Xor 855829536 =855829521>Asc()) =41 C2 =41 Xor 855829536 =855829513>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(x) =120 C2 =120 Xor 855829536 =855829592>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(p) =112 C2 =112 Xor 855829536 =855829584>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(w) =119 C2 =119 Xor 855829536 =855829591>Asc(() =40 C2 =40 Xor 855829536 =855829512>Asc(1) =49 C2 =49 Xor 855829536 =855829521>Asc(0) =48
Lampiran 10-12
C2 =48 Xor 855829536 =855829520>Asc(,) =44 C2 =44 Xor 855829536 =855829516>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc()) =41 C2 =41 Xor 855829536 =855829513>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(d) =100 C2 =100 Xor 855829536 =855829572>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc({) =123 C2 =123 Xor 855829536 =855829595>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(d) =100 C2 =100 Xor 855829536 =855829572>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc({) =123 C2 =123 Xor 855829536 =855829595>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9
Lampiran 10-13
C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(d) =100 C2 =100 Xor 855829536 =855829572>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(() =40 C2 =40 Xor 855829536 =855829512>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(x) =120 C2 =120 Xor 855829536 =855829592>Asc()) =41 C2 =41 Xor 855829536 =855829513>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(}) =125 C2 =125 Xor 855829536 =855829597>Asc(w) =119
Lampiran 10-14
C2 =119 Xor 855829536 =855829591>Asc(h) =104 C2 =104 Xor 855829536 =855829576>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(() =40 C2 =40 Xor 855829536 =855829512>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(<) =60 C2 =60 Xor 855829536 =855829532>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(|) =124 C2 =124 Xor 855829536 =855829596>Asc(|) =124 C2 =124 Xor 855829536 =855829596>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(_) =95 C2 =95 Xor 855829536 =855829631
Lampiran 10-15
>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(<) =60 C2 =60 Xor 855829536 =855829532>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(3) =51 C2 =51 Xor 855829536 =855829523>Asc()) =41 C2 =41 Xor 855829536 =855829513>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(f) =102 C2 =102 Xor 855829536 =855829574>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(() =40 C2 =40 Xor 855829536 =855829512>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(2) =50 C2 =50 Xor 855829536 =855829522>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(<) =60 C2 =60 Xor 855829536 =855829532>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(s) =115 C2 =115 Xor 855829536 =855829587>Asc(q) =113 C2 =113 Xor 855829536 =855829585>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc(() =40 C2 =40 Xor 855829536 =855829512
Lampiran 10-16
>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc()) =41 C2 =41 Xor 855829536 =855829513>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(+) =43 C2 =43 Xor 855829536 =855829515>Asc(+) =43 C2 =43 Xor 855829536 =855829515>Asc()) =41 C2 =41 Xor 855829536 =855829513>Asc({) =123 C2 =123 Xor 855829536 =855829595>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(h) =104 C2 =104 Xor 855829536 =855829576>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc(u) =117 C2 =117 Xor 855829536 =855829589>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(a) =97 C2 =97 Xor 855829536 =855829569
Lampiran 10-17
>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(/) =47 C2 =47 Xor 855829536 =855829519>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(h) =104 C2 =104 Xor 855829536 =855829576>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(s) =115 C2 =115 Xor 855829536 =855829587>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(f) =102 C2 =102 Xor 855829536 =855829574>Asc(l) =108 C2 =108 Xor 855829536 =855829580
Lampiran 10-18
>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(() =40 C2 =40 Xor 855829536 =855829512>Asc(h) =104 C2 =104 Xor 855829536 =855829576>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc(u) =117 C2 =117 Xor 855829536 =855829589>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc()) =41 C2 =41 Xor 855829536 =855829513>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(h) =104 C2 =104 Xor 855829536 =855829576>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(s) =115 C2 =115 Xor 855829536 =855829587>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570
Lampiran 10-19
>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(g) =103 C2 =103 Xor 855829536 =855829575>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(*) =42 C2 =42 Xor 855829536 =855829514>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(f) =102 C2 =102 Xor 855829536 =855829574>Asc(() =40 C2 =40 Xor 855829536 =855829512>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc()) =41 C2 =41 Xor 855829536 =855829513
Lampiran 10-20
>Asc({) =123 C2 =123 Xor 855829536 =855829595>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(}) =125 C2 =125 Xor 855829536 =855829597>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(s) =115 C2 =115 Xor 855829536 =855829587>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc( ) =32 C2 =32 Xor 855829536 =855829504
Lampiran 10-21
>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(f) =102 C2 =102 Xor 855829536 =855829574>Asc(() =40 C2 =40 Xor 855829536 =855829512>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(<) =60 C2 =60 Xor 855829536 =855829532>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(|) =124 C2 =124 Xor 855829536 =855829596>Asc(|) =124 C2 =124 Xor 855829536 =855829596>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(=) =61
Lampiran 10-22
C2 =61 Xor 855829536 =855829533>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(2) =50 C2 =50 Xor 855829536 =855829522>Asc()) =41 C2 =41 Xor 855829536 =855829513>Asc({) =123 C2 =123 Xor 855829536 =855829595>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(o) =111 C2 =111 Xor 855829536 =855829583>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc(u) =117 C2 =117 Xor 855829536 =855829589>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(}) =125 C2 =125 Xor 855829536 =855829597>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9
Lampiran 10-23
C2 =9 Xor 855829536 =855829545>Asc(}) =125 C2 =125 Xor 855829536 =855829597>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(p) =112 C2 =112 Xor 855829536 =855829584>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc(
Lampiran 10-24
) =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(}) =125 C2 =125 Xor 855829536 =855829597>Asc(w) =119 C2 =119 Xor 855829536 =855829591>Asc(h) =104 C2 =104 Xor 855829536 =855829576>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(() =40 C2 =40 Xor 855829536 =855829512>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(k) =107 C2 =107 Xor 855829536 =855829579>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(b) =98 C2 =98 Xor 855829536 =855829570>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc()) =41 C2 =41 Xor 855829536 =855829513>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(p) =112 C2 =112 Xor 855829536 =855829584
Lampiran 10-25
>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(=) =61 C2 =61 Xor 855829536 =855829533>Asc(c) =99 C2 =99 Xor 855829536 =855829571>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(l) =108 C2 =108 Xor 855829536 =855829580>Asc(_) =95 C2 =95 Xor 855829536 =855829631>Asc(p) =112 C2 =112 Xor 855829536 =855829584>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(m) =109 C2 =109 Xor 855829536 =855829581>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc( ) =9 C2 =9 Xor 855829536 =855829545>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(e) =101 C2 =101 Xor 855829536 =855829573>Asc(t) =116 C2 =116 Xor 855829536 =855829588>Asc(u) =117 C2 =117 Xor 855829536 =855829589>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(n) =110 C2 =110 Xor 855829536 =855829582>Asc( ) =32 C2 =32 Xor 855829536 =855829504>Asc(p) =112 C2 =112 Xor 855829536 =855829584>Asc(r) =114 C2 =114 Xor 855829536 =855829586>Asc(i) =105 C2 =105 Xor 855829536 =855829577>Asc(m) =109 C2 =109 Xor 855829536 =855829581
Lampiran 10-26
>Asc(a) =97 C2 =97 Xor 855829536 =855829569>Asc(;) =59 C2 =59 Xor 855829536 =855829531>Asc() =10 C2 =10 Xor 855829536 =855829546>Asc(}) =125 C2 =125 Xor 855829536 =855829597
jumlah karakter pesan = 582
Done......!
Lampiran 10-27
2. Dekripsi sandi_pesan2.txt
-------------------Skema Dekripsi ElGamal----------------
Ambil hasil pertukaran kunci :856818337 527743981 584657872 95859945 14719 444138450 583396766 238161441 644555402 524567951 410172902 62651137 551147701 62651137 551147701
Ring kunci yang dimiliki user2 :prima = 856818337a4 = 527743981a6 = 584657872Titik random(P) = (95859945,14719)publik2 = (524567951,410172902)private2 = 583396766
Masukkan nama file yang akan dideskripsi = sandi_pesan2.txtNama file hasil dekripsi = pesan_sandi_pesan2.txtProses Deskripsi/ user2 menghitung( x_key2 ^ sandi[]) :
Diket :byk_blok =1000
jumlah karakter pesan = 582
Please wait.======================================.Hitung key2_gen =583396766*(45782949,296156657) =(855829536,548847496)Absis key1_gen =855829536>m_sandi =855829519 pesan2 =855829536 Xor 855829519 =Char(47) =/>m_sandi =855829519 pesan2 =855829536 Xor 855829519 =Char(47) =/>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829574 pesan2 =855829536 Xor 855829574 =Char(102) =f>m_sandi =855829589 pesan2 =855829536 Xor 855829589 =Char(117) =u>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829587 pesan2 =855829536 Xor 855829587 =Char(115) =s>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829589 pesan2 =855829536 Xor 855829589 =Char(117) =u>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t
Lampiran 10-28
>m_sandi =855829589 pesan2 =855829536 Xor 855829589 =Char(117) =u>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829584 pesan2 =855829536 Xor 855829584 =Char(112) =p>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829581
Lampiran 10-29
pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829530 pesan2 =855829536 Xor 855829530 =Char(58) =:>m_sandi =855829530 pesan2 =855829536 Xor 855829530 =Char(58) =:>m_sandi =855829584 pesan2 =855829536 Xor 855829584 =Char(112) =p>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829577
Lampiran 10-30
pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)>m_sandi =855829595 pesan2 =855829536 Xor 855829595 =Char(123) ={>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829572 pesan2 =855829536 Xor 855829572 =Char(100) =d>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829594 pesan2 =855829536 Xor 855829594 =Char(122) =z>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o
Lampiran 10-31
>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829572 pesan2 =855829536 Xor 855829572 =Char(100) =d>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829589 pesan2 =855829536 Xor 855829589 =Char(117) =u>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k
Lampiran 10-32
>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829516 pesan2 =855829536 Xor 855829516 =Char(44) =,>m_sandi =855829576 pesan2 =855829536 Xor 855829576 =Char(104) =h>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829589 pesan2 =855829536 Xor 855829589 =Char(117) =u>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829516 pesan2 =855829536 Xor 855829516 =Char(44) =,>m_sandi =855829576 pesan2 =855829536 Xor 855829576 =Char(104) =h>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829587 pesan2 =855829536 Xor 855829587 =Char(115) =s>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829516 pesan2 =855829536 Xor 855829516 =Char(44) =,>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829516 pesan2 =855829536 Xor 855829516 =Char(44) =,>m_sandi =855829581
Lampiran 10-33
pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829516 pesan2 =855829536 Xor 855829516 =Char(44) =,>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829592 pesan2 =855829536 Xor 855829592 =Char(120) =x>m_sandi =855829516 pesan2 =855829536 Xor 855829516 =Char(44) =,>m_sandi =855829584 pesan2 =855829536 Xor 855829584 =Char(112) =p>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829516 pesan2 =855829536 Xor 855829516 =Char(44) =,>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829584 pesan2 =855829536 Xor 855829584 =Char(112) =p>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829582
Lampiran 10-34
pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829584 pesan2 =855829536 Xor 855829584 =Char(112) =p>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829591 pesan2 =855829536 Xor 855829591 =Char(119) =w>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(>m_sandi =855829521 pesan2 =855829536 Xor 855829521 =Char(49) =1>m_sandi =855829520 pesan2 =855829536 Xor 855829520 =Char(48) =0>m_sandi =855829516 pesan2 =855829536 Xor 855829516 =Char(44) =,>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829517 pesan2 =855829536 Xor 855829517 =Char(45) =->m_sandi =855829521 pesan2 =855829536 Xor 855829521 =Char(49) =1>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829592 pesan2 =855829536 Xor 855829592 =Char(120) =x>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829584 pesan2 =855829536 Xor 855829584 =Char(112) =p>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829591 pesan2 =855829536 Xor 855829591 =Char(119) =w>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(>m_sandi =855829521 pesan2 =855829536 Xor 855829521 =Char(49) =1>m_sandi =855829520
Lampiran 10-35
pesan2 =855829536 Xor 855829520 =Char(48) =0>m_sandi =855829516 pesan2 =855829536 Xor 855829516 =Char(44) =,>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829572 pesan2 =855829536 Xor 855829572 =Char(100) =d>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829595 pesan2 =855829536 Xor 855829595 =Char(123) ={>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829572 pesan2 =855829536 Xor 855829572 =Char(100) =d>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829595 pesan2 =855829536 Xor 855829595 =Char(123) ={>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545
Lampiran 10-36
pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829572 pesan2 =855829536 Xor 855829572 =Char(100) =d>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829592 pesan2 =855829536 Xor 855829592 =Char(120) =x>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829597 pesan2 =855829536 Xor 855829597 =Char(125) =}>m_sandi =855829591
Lampiran 10-37
pesan2 =855829536 Xor 855829591 =Char(119) =w>m_sandi =855829576 pesan2 =855829536 Xor 855829576 =Char(104) =h>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829532 pesan2 =855829536 Xor 855829532 =Char(60) =<>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829596 pesan2 =855829536 Xor 855829596 =Char(124) =|>m_sandi =855829596 pesan2 =855829536 Xor 855829596 =Char(124) =|>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_
Lampiran 10-38
>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829532 pesan2 =855829536 Xor 855829532 =Char(60) =<>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829523 pesan2 =855829536 Xor 855829523 =Char(51) =3>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829574 pesan2 =855829536 Xor 855829574 =Char(102) =f>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829522 pesan2 =855829536 Xor 855829522 =Char(50) =2>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829532 pesan2 =855829536 Xor 855829532 =Char(60) =<>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829587 pesan2 =855829536 Xor 855829587 =Char(115) =s>m_sandi =855829585 pesan2 =855829536 Xor 855829585 =Char(113) =q>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(
Lampiran 10-39
>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829515 pesan2 =855829536 Xor 855829515 =Char(43) =+>m_sandi =855829515 pesan2 =855829536 Xor 855829515 =Char(43) =+>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)>m_sandi =855829595 pesan2 =855829536 Xor 855829595 =Char(123) ={>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829576 pesan2 =855829536 Xor 855829576 =Char(104) =h>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829589 pesan2 =855829536 Xor 855829589 =Char(117) =u>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a
Lampiran 10-40
>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829519 pesan2 =855829536 Xor 855829519 =Char(47) =/>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829576 pesan2 =855829536 Xor 855829576 =Char(104) =h>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829587 pesan2 =855829536 Xor 855829587 =Char(115) =s>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829574 pesan2 =855829536 Xor 855829574 =Char(102) =f>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l
Lampiran 10-41
>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(>m_sandi =855829576 pesan2 =855829536 Xor 855829576 =Char(104) =h>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829589 pesan2 =855829536 Xor 855829589 =Char(117) =u>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829576 pesan2 =855829536 Xor 855829576 =Char(104) =h>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829587 pesan2 =855829536 Xor 855829587 =Char(115) =s>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b
Lampiran 10-42
>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829575 pesan2 =855829536 Xor 855829575 =Char(103) =g>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829514 pesan2 =855829536 Xor 855829514 =Char(42) =*>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829574 pesan2 =855829536 Xor 855829574 =Char(102) =f>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)
Lampiran 10-43
>m_sandi =855829595 pesan2 =855829536 Xor 855829595 =Char(123) ={>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829597 pesan2 =855829536 Xor 855829597 =Char(125) =}>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829587 pesan2 =855829536 Xor 855829587 =Char(115) =s>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) =
Lampiran 10-44
>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829574 pesan2 =855829536 Xor 855829574 =Char(102) =f>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829532 pesan2 =855829536 Xor 855829532 =Char(60) =<>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829596 pesan2 =855829536 Xor 855829596 =Char(124) =|>m_sandi =855829596 pesan2 =855829536 Xor 855829596 =Char(124) =|>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829533
Lampiran 10-45
pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829522 pesan2 =855829536 Xor 855829522 =Char(50) =2>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)>m_sandi =855829595 pesan2 =855829536 Xor 855829595 =Char(123) ={>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829583 pesan2 =855829536 Xor 855829583 =Char(111) =o>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829589 pesan2 =855829536 Xor 855829589 =Char(117) =u>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829597 pesan2 =855829536 Xor 855829597 =Char(125) =}>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545
Lampiran 10-46
pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829597 pesan2 =855829536 Xor 855829597 =Char(125) =}>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829584 pesan2 =855829536 Xor 855829584 =Char(112) =p>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546
Lampiran 10-47
pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829597 pesan2 =855829536 Xor 855829597 =Char(125) =}>m_sandi =855829591 pesan2 =855829536 Xor 855829591 =Char(119) =w>m_sandi =855829576 pesan2 =855829536 Xor 855829576 =Char(104) =h>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829512 pesan2 =855829536 Xor 855829512 =Char(40) =(>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829579 pesan2 =855829536 Xor 855829579 =Char(107) =k>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829570 pesan2 =855829536 Xor 855829570 =Char(98) =b>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829513 pesan2 =855829536 Xor 855829513 =Char(41) =)>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829584 pesan2 =855829536 Xor 855829584 =Char(112) =p
Lampiran 10-48
>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829533 pesan2 =855829536 Xor 855829533 =Char(61) ==>m_sandi =855829571 pesan2 =855829536 Xor 855829571 =Char(99) =c>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829580 pesan2 =855829536 Xor 855829580 =Char(108) =l>m_sandi =855829631 pesan2 =855829536 Xor 855829631 =Char(95) =_>m_sandi =855829584 pesan2 =855829536 Xor 855829584 =Char(112) =p>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829545 pesan2 =855829536 Xor 855829545 =Char(9) =>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829573 pesan2 =855829536 Xor 855829573 =Char(101) =e>m_sandi =855829588 pesan2 =855829536 Xor 855829588 =Char(116) =t>m_sandi =855829589 pesan2 =855829536 Xor 855829589 =Char(117) =u>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829582 pesan2 =855829536 Xor 855829582 =Char(110) =n>m_sandi =855829504 pesan2 =855829536 Xor 855829504 =Char(32) = >m_sandi =855829584 pesan2 =855829536 Xor 855829584 =Char(112) =p>m_sandi =855829586 pesan2 =855829536 Xor 855829586 =Char(114) =r>m_sandi =855829577 pesan2 =855829536 Xor 855829577 =Char(105) =i>m_sandi =855829581 pesan2 =855829536 Xor 855829581 =Char(109) =m
Lampiran 10-49
>m_sandi =855829569 pesan2 =855829536 Xor 855829569 =Char(97) =a>m_sandi =855829531 pesan2 =855829536 Xor 855829531 =Char(59) =;>m_sandi =855829546 pesan2 =855829536 Xor 855829546 =Char(10) =
>m_sandi =855829597 pesan2 =855829536 Xor 855829597 =Char(125) =}
Done....!
Lampiran 10-50