APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature...

87
APLIKASI FUNGSI HASH MD5 DAN ALGORITMA RSA UNTUK PEMBUATAN SIDIK DIJITAL oleh HIMAWAN YUSUF M0102027 SKRIPSI ditulis dan diajukan untuk memenuhi sebagian persyaratan memperoleh gelar Sarjana Sains Matematika FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SEBELAS MARET SURAKARTA 2006

Transcript of APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature...

Page 1: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

APLIKASI FUNGSI HASH MD5 DAN ALGORITMA RSA

UNTUK PEMBUATAN SIDIK DIJITAL

oleh

HIMAWAN YUSUF

M0102027

SKRIPSI

ditulis dan diajukan untuk memenuhi sebagian persyaratan

memperoleh gelar Sarjana Sains Matematika

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS SEBELAS MARET

SURAKARTA

2006

Page 2: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

PENGESAHAN

SKRIPSIAPLIKASI FUNGSI HASH MD5 DAN ALGORITMA RSA

UNTUK PEMBUATAN SIDIK DIJITAL

yang disiapkan dan disusun oleh

HIMAWAN YUSUF

NIM. M0102027

Dibimbing oleh

Pembimbing I

Drs. Wiranto, M. Kom

NIP. 132 044 769

Pembimbing II

Drs. Sugiyanto, M.Si

NIP. 132 000 804Telah dipertahankan di depan Dewan Penguji

Pada hari Kamis, tanggal 19 Oktober 2006

dan dinyatakan telah memenuhi syarat.

Anggota Tim Penguji Tanda Tangan

1. Dr. Sutanto, S.Si, DEA 1.

NIP. 132 149 079

2. Umi Salamah, M.Kom 2.

NIP. 132 162 555

3. Sri Kuntari, M.Si 3.

NIP. 132 240 173

Surakarta, 1 November 2006

Disahkan oleh

Fakultas Matematika dan Ilmu pengetahuan Alam

Dekan, Ketua Jurusan Matematika,

Drs. Marsusi, M.S. Drs. Kartiko, M.Si.

NIP. 130 906 776 NIP. 131 569 203

Page 3: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

ABSTRAK

Himawan Yusuf, 2006. APLIKASI FUNGSI HASH MD5 DAN ALGORITMA RSA UNTUK PEMBUATAN SIDIK DIJITAL, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Sebelas Maret.

Pengamanan data tidak hanya sebatas data tersebut tidak dapat dibaca orang lain, tetapi juga bagaimana agar data tersebut tidak dapat diubah dan dapat dipastikan dikirim oleh orang yang benar. Selama berabad-abad lamanya tanda tangan telah digunakan untuk membuktikan keabsahan dokumen. Oleh karena itu, data yang dikirim perlu diberi suatu tanda bahwa data tersebut sah. Dari pemikiran tersebut, munculah ide untuk membuat sidik dijital (digital signature). Salah satu cara untuk membuat sidik dijital adalah dengan menggunakan fungsi hash MD5 dan algoritma RSA.

Tujuan dari penelitian ini adalah mengetahui kinerja dari fungsi hash MD5 dan algoritma RSA dalam membuat sidik dijital dan membuktikan keabsahan data dengan menggunakan sidik dijital. Selanjutnya dilakukan analisis untuk mengetahui apakah sidik dijital tersebut mampu menjaga keabsahan data.

Dari penelitian yang telah dilakukan, diketahui bahwa fungsi hash MD5 dan algoritma RSA membuat sidik dijital dengan cara algoritma RSA mengenkripsikan message digest (pesan ringkas) yang dibuat oleh fungsi hash MD5. Kemudian untuk membuktikan keabsahan data, hasil dekripsi sidik dijitalnya disamakan dengan message digest dari data yang diterima. Setelah diadakan pengujian dan analisa dapat diambil kesimpulan bahwa fungsi hash MD5 dan algoritma RSA mampu membuat sidik dijital yang dapat digunakan untuk menjaga keabsahan data.

Kata Kunci : sidik dijital, fungsi hash MD5, algoritma RSA, message digest, keabsahan data

Page 4: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

ABSTRACT

Himawan Yusuf, 2006. THE APPLICATION OF MD5 HASH FUNCTION AND RSA ALGORITHM FOR MAKING DIGITAL SIGNATURE. Faculty of Mathematics and Natural Sciences Sebelas Maret University.

Data security is not merely limited to only prohibit acces from other people, but it also keeps the data unchanged by making sure it is completely delivered to right person. For centuries, the hand signature have been used to prove that the document is valid. So, the data which is sent to the second party needs a proof of validity or legality. The tought concerning to that system grows an idea for making digital signature. One of the ways for making digital signature is by employing MD5 hash function and RS algorithm.

The aim of the research is to know the working system of MD5 hash function and RSA algorithm for making digital signature and to prove data validity by using digital signature system. Then the analysis is conducted to know the ability of digital signature in keeping data validity.

From this research, it is known that MD5 hash function and RSA algorithm make digital signature in the way that RSA algorithm encrypts the message digest made by MD5 hash function. To prove data validity, the result of digital signature decryption must be equal to message digest from data received. After the test and analysis are conducted, it is concluded that MD5 hash function and RSA algorithm is able to make digital signature to keep data validity.

Keys : digital signature, MD5 hash function, RSA algorithm, message digest, data validity

Page 5: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

MOTO

Tiga kunci sesoeorang untuk mencapai keberhasilan adalah

1. ilmu,

2. usaha,

3. rahmat Allah.

(Penulis)

Allah tidak akan memberi beban kepada hambanya melainkan sesuai dengan kemampuannya.

(QS Al Baqarah : 286)

Page 6: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

PERSEMBAHAN

Karya ini kupersembahkan untuk :

- Ibunda tersayang, metode kesabaran dan kurikulum berbasis kasih sayang yang kau berikan

adalah pendidikan terbaik yang pernah kuterima sepanjang hidupku, terimakasih bunda.

- Ayahanda, semoga anakmu ini bisa membuatmu bangga.

- Mas dan Mbakku yang selalu mendukung dan mendo’akanku

Mas Sholikin, Mbak Mung, Mas Nang, Mbak Endah, Mbak Ren, Mas Santoso,dan Ubub.

- 7 keponakanku yang lucu-lucu: Fahri, Ali, Sisil, Sasa, Rahil, Aviv, dan Friday.

- Calon istriku, semoga engkau bisa menjadi istri yang sholehah.

- Pengurus HIMATIKA 2004/2005, the best team in my life.

Page 7: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

KATA PENGANTAR

Assalaamu’alaikum Wr. Wb.

Alhamdulillah, puji syukur penulis panjatkan kepada Allah SWT yang

telah melimpahkan rahmat dan kasih sayangnya sehingga skripsi ini dapat

terselesaikan. Sholawat dan salam semoga selalu tercurah kepada suri tauladan

Rasulullah Muhammad SAW, serta keluarga, sahabat, dan orang-orang yang

istiqomah di jalan-Nya.

Terselesaikannya skripsi ini tidak terlepas dari bantuan beberapa

pihak. Untuk itu penulis mengucapkan terimakasih kepada :

1. Drs. Wiranto, M.Kom, selaku pembimbing I yang telah meluangkan

waktunya untuk memberikan bimbingan dan motivasi kepada penulis.

2. Drs. Sugiyanto, M.Si, selaku pembimbing II yang juga telah banyak

membantu penulis dalam menyelesaikan skripsi ini.

3. Dra. Sri Subanti, M.Si, selaku pembimbing akademis yang telah

memberikan perhatian dan bimbingan kepada penulis.

4. Lisda, Ardina, dan Misbachul yang telah memberikan banyak bantuan

kepada penulis.

5. Eko Pramudyo Hadi, S.Si dan Winarno, S.Si yang telah memberi

inspirasi, motivasi dan bimbingan kepada penulis.

6. Najib dan Karin yang telah memberikan bantuan, saran, dan kritik

kepada penulis.

7. Teman-teman angkatan 2002 dan 2003 yang memberikan bantuan dan

motivasi.

8. SAT UNS dan TEAM SAT UNS 2006 yang telah memberikan

bantuan dan fasilitas kepada penulis.

9. UPT PUSKOM UNS yang telah meminjamkan fasilitas kepada

penulis.

10. Semua pihak yang telah membantu penulis dalam menyusun skripsi

ini.

Page 8: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

Semoga Allah SWT membalas segala bantuan yang telah diberikan

kepada penulis. Semoga skripsi ini dapat bermanfaat bagi semua pihak yang

membutuhkan.

Surakarta, 12 Oktober 2006

Penulis

Page 9: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

DAFTAR ISI

JUDUL i

PENGESAHAN ii

ABSTRAK iii

ABSTRACT iv

MOTO v

PERSEMBAHAN vi

KATA PENGANTAR vii

DAFTAR ISI ix

DAFTAR TABEL xi

DAFTAR GAMBAR xii

DAFTAR LAMPIRAN xiii

DAFTAR NOTASI xiv

I PENDAHULUAN 1

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

1.2. Perumusan Masalah .................................................................... 2

1.3. Batasan Masalah ......................................................................... 3

1.4. Tujuan ......................................................................................... 3

1.5. Manfaat ....................................................................................... 3

II LANDASAN TEORI 4

2.1. Kajian Pustaka ............................................................................ 4

2.1.1. Keamanan Data .............................................................. 5

2.1.2. Kriptografi ...................................................................... 6

2.1.3. Fungsi Hash .................................................................... 7

2.1.4. Algoritma MD5 .............................................................. 10

2.1.4. RSA Cryptosystem ......................................................... 17

2.1.5. Sidik Dijital .................................................................... 19

Page 10: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

2.2. Kerangka Pemikiran ................................................................... 20

III METODOLOGI PENELITIAN 22

IV PEMBAHASAN 23

4.1. Pembuatan Sidik Dijital.............................................................. 23

4.1.1. Prosedur Pembuatan Message Digest.............................. 24

4.1.2. Prosedur Menghasilkan Kunci Untuk Setiap Pemakai ... 24

4.1.3. Prosedur Enkripsi Untuk Pengirim ................................. 25

4.2. Analisis Keabsahan Data .............................................................. 25

4.2.1. Prosedur Dekripsi Untuk Penerima .................................. 26

4.2.2. Prosedur Verifikasi Sidik Dijital ...................................... 26

4.3. Penerapan Kasus ........................................................................... 27

4.3.1. Tahap Pembuatan Sidik Dijital ......................................... 28

4.3.1.1. Tahap Pembuatan Message Digest .................... 28

4.3.1.2. Tahap Menghasilkan Kunci Pribadi dan Kunci

Publik ................................................................. 28

4.3.1.3. Tahap Enkripsi Untuk Operator ........................... 29

4.3.2. Tahap Analisis Keabsahan Data ....................................... 31

4.4. Pembuatan dan Pengujian Aplikasi .............................................. 32

4.4.1. Pembuatan Aplikasi Untuk Pengirim ................................. 33

4.4.2. Pengujian Aplikasi Untuk Pengirim ................................... 37

4.4.3. Pembuatan Aplikasi Untuk Penerima ................................. 42

4.4.4. Pengujian Aplikasi Untuk Penerima ................................... 44

4.5. Analisis Kelebihan dan Kelemahan Pembuatan Sidik Dijital

dengan Menggunakan Fungsi Hash MD5 dan Algoritma RSA .. 46

V PENUTUP 48

5.1. Kesimpulan ................................................................................... 48

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

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

LAMPIRAN ................................................................................................ 50

Page 11: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

DAFTAR TABEL

Tabel 2.1. Fungsi-fungsi dasar MD5 ................................................ 14

Tabel 2.2. Nilai T[i] .......................................................................... 14

Tabel 2.3. Rincian operasi pada fungsi F (b, c, d) (kiri) dan

fungsi G (b, c, d) (kanan) ................................................. 15

Tabel 2.4. Rincian operasi pada fungsi H (b, c, d) (kiri) dan

fungsi I (b, c, d) (kanan) .................................................. 16

Page 12: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

DAFTAR GAMBAR

Gambar 2.1. Hubungan kebijakan dan mekanisme keamanan ............. 5

Gambar 2.2. Proses enkripsi dan deskripsi sederhana .......................... 6

Gambar 2.3. Proses enkripsi dan deskripsi kunci simetris .................... 7

Gambar 2.4. Proses enkripsi dan dekripsi kunci asimetris ................... 8

Gambar 2.5. Pembuatan message digest dengan algoritma MD5 ....... 10

Gambar 2.6. Pengolahan blok 512 bit (Proses HMD5) ........................... 12

Gambar 2.7. Operasi dasar MD5 ........................................................... 13

Gambar 4.1. Skema pembuatan sidik dijital dengan menggunakan

fungsi hash ........................................................................ 23

Gambar 4.2. Otentikasi dengan sidik dijital menggunakan fungsi

hash satu-arah ................................................................... 26

Gambar 4.3. Form regristrasi pelanggan prabayar ................................ 27

Gambar 4.4. Skema regristrasi pengguna kartu prabayar ...................... 28

Gambar 4.5. Alur sistem pembuatan sidik dijital .................................. 33

Gambar 4.6. Form petunjuk pemakaian aplikasi ................................... 37

Gambar 4.7. Form regristrasi ................................................................. 38

Gambar 4.8. Form pembuatan message digest ...................................... 38

Gambar 4.9. Peringatan apabila kunci yang dimasukkan tidak prima .. 39

Gambar 4.10. Form pembuatan kunci ................................................... 39

Gambar 4.11. Kunci publik yang dikirimkan kepada penerima ............ 40

Gambar 4.12. Form enkripsi message digest ......................................... 40

Gambar 4.13. Sidik dijital hasil dari enkripsi message digest ............... 41

Gambar 4.14. Alur sistem verifikasi sidik dijital ................................... 42

Gambar 4.15. Form petunjuk pemakaian aplikasi ................................. 44

Gambar 4.16. Tampilan form verifikasi sidik dijital ketika data sah .... 45

Gambar 4.17. Tampilan form verifikasi sidik dijital ketika

data tidak sah .................................................................. 45

Page 13: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

DAFTAR LAMPIRAN

Fungsi dan prosedur yang digunakan dalam aplikasi ............................ 51

Source code fungsi hash MD5 ............................................................... 56

(dari www.ficthner.net/delphi/md5.delphi.phtml)

Source code aplikasi pembuatan sidik dijital ......................................... 64

Source code aplikasi verifikasi sidik dijital ......................................... 70

Page 14: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

DAFTAR NOTASI

h : Nilai hash.

g : Salah satu fungsi F, G, H, I.

CLSs : Circular left shift sebanyak s bit.

X[k] : Kelompok 32-bit ke-k dari blok 512 bit message ke-q.

Nilai k=0 sampai 15.

T[i] : Elemen Tabel T ke-i (32 bit).

+ : Operasi penjumlahan modulo 232.

IV : Initial vector dari penyangga ABCD, yang dilakukan pada proses

inisialisasi penyangga.

Yq : Blok pesan berukuran 512-bit ke-q.

L : Jumlah blok pesan.

MD : Nilai akhir message digest.

p : Kunci bilangan prima ke-1.

q : Kunci bilangan prima ke-2.

r : Perkalian p dan q.

φ(r) : Perkalian (p – 1) dan (q – 1).

PK : Kunci publik.

SK : Kunci Rahasia.

X : Plaintext.

Y : Chipertext

S : Sidik dijital.

Page 15: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

BAB I

PENDAHULUAN

1.1. Latar Belakang

Kemajuan di bidang teknologi informasi telah memungkinkan

seseorang untuk melakukan komunikasi dan transaksi bisnis secara on-line.

Kegiatan-kegiatan tersebut tentu saja akan menimbulkan resiko apabila

informasi yang sensitif dan berharga itu diakses oleh orang-orang yang tidak

berhak. Dengan berpindahnya data dari titik A ke titik B di internet, data itu

akan melalui beberapa titik lain selama perjalanan dan membuka kesempatan

bagi pihak lain untuk memotong, membaca, merusak, atau merubah tujuan

data (Nursanto, 2003). Misalnya, informasi mengenai data pengguna kartu

prabayar yang melakukan regristrasi, apabila informasi ini jatuh kepada orang-

orang jahat dimungkinkan beberapa data seperti nomor kartu atau nomor id

diubah, sehingga ketika nomor kartu yang digantikan itu melakukan tindakan

kriminal, yang tertangkap adalah orang yang sebenarnya tidak mengetahui

apa-apa.

Beberapa cara telah dikembangkan untuk menangani masalah

keamanan ini, salah satu teknik mengamankan data dari suatu sistem

informasi adalah dengan algoritma penyandian data atau yang biasa disebut

dengan kriptografi. Kriptografi merupakan bagian dari suatu cabang ilmu

matematika (cryptology) yang dapat dimanfaatkan untuk kepentingan

keamanan pesan (Nursanto, 2003).

Pengamanan data tidak hanya sebatas data tersebut tidak dapat dibaca

orang lain, tetapi juga bagaimana agar data tersebut tidak dapat diubah dan

dapat dipastikan dikirim oleh orang yang benar. Selama berabad-abad

lamanya tanda tangan telah digunakan untuk membuktikan keabsahan

dokumen. Oleh karena itu, data yang dikirim perlu diberi suatu tanda bahwa

data tersebut sah. Dari pemikiran tersebut, munculah ide untuk membuat sidik

dijital (digital signature). Menurut Munir (2004), sidik dijital bukanlah tanda

tangan yang didijitasi dengan alat scanner, tetapi suatu nilai kriptografis yang

Page 16: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

bergantung pada pesan dan pengirim pesan (hal ini kontras dengan tanda

tangan pada dokumen kertas yang bergantung hanya pada pengirim dan selalu

sama untuk semua dokumen).

Sidik dijital dapat dibuat dengan mengubah data menjadi message

digest oleh fungsi hash tertentu. Kemudian dari message digest tersebut dibuat

sidik dijital dengan algoritma kriptografi. Pada tahun 1991, Ronald Rivest

memperkenalkan fungsi hash MD5 (Message Digest Algorithm 5). MD5

adalah fungsi hash kriptografik yang digunakan secara luas dengan hash value

128-bit. Pada standar internet (RFC 1321), MD5 telah dimanfaatkan secara

bermacam-macam pada aplikasi keamanan, dan MD5 juga umum digunakan

untuk melakukan pengujian integritas sebuah file.

Sebelumnya, pada tahun 1977 Rivest bersama Shamir dan Adleman

membuat sebuah algoritma untuk teori penomoran pada sebuah public-key

cryptosystem, algoritma ini dikenal dengan RSA cryptosystem. Algoritma

RSA (Rivest Shamir Adleman) menggunakan kunci asimetris yang

menggunakan dua kunci dalam proses enkripsi dekripsi, sehingga mempunyai

tingkat keamanan lebih tinggi dibandingkan algortima yang menggunakan

kunci simetris. Menurut Munir (2004) untuk membuat sidik dijital, algoritma

yang cocok digunakan hanyalah algoritma kunci publik. Dengan fungsi hash

MD5 dan algoritma RSA, diharapkan dapat menghasilkan sidik dijital yang

mampu menjamin keabsahan data.

1.2. Perumusan Masalah

Dari latar belakang masalah tersebut, dapat dirumuskan permasalahan

yang sedang dihadapi, yaitu :

1. Bagaimana kinerja dari fungsi hash MD5 dan algoritma RSA dalam

membuat sidik dijital.

2. Bagaimana membuktikan keabsahan data dengan menggunakan sidik

dijital.

3. Bagaimana kemampuan sidik dijital yang dibuat oleh fungsi hash

MD5 dan algoritma RSA dalam menjaga keabsahan data.

Page 17: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

1.3. Batasan Masalah

Dalam penelitian ini, permasalahan yang dibahas dibatasi pada

pembahasan mengenai sidik dijital saja. Penyandian (enkripsi atau dekripsi)

data tidak dibahas disini.

1.4. Tujuan

Tujuan dari penelitian ini adalah sebagai berikut.

1. Mengetahui kinerja dari fungsi hash MD5 dan algoritma RSA

dalam membuat sidik dijital.

2. Dapat membuktikan keabsahan suatu data dengan menggunakan

sidik dijital.

3. Mengetahui sidik dijital yang dibuat oleh fungsi hash MD5 dan

algoritma RSA mampu menjaga keabsahan data.

1.5. Manfaat

Dari penelitian ini diharapkan pembuatan sidik dijital dengan

menggunakan fungsi hash MD5 dan algoritma RSA dapat diaplikasikan untuk

mengatasi masalah pemalsuan dokumen, sabotase informasi, dan masalah

kejahatan lain yang melibatkan pengubahan isi data maupun pengirimnya.

Page 18: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

BAB II

LANDASAN TEORI

2.1. Tinjauan Pustaka

Untuk mencapai tujuan penelitian, diperlukan pengertian dan teori-

teori yang melandasinya. Pada bab ini diberikan penjelasan tentang keamanan

data, kriptografi, fungsi hash, algoritma MD5, RSA cryptosystem, dan sidik

dijital yang diperoleh dari beberapa referensi.

2.1.1. Keamanan Data

Data atau pesan yang diperhatikan dan perlu diamankan adalah yang

bersifat rahasia. Menurut Susanto (2004), tujuan utama adanya keamanan

adalah untuk membatasi akses terhadap informasi dan hanya untuk pemakai

yang memiliki hak akses. Beberapa ancaman yang harus diperhatikan dalam

sistem keamanan data adalah

1. leakage (kebocoran), yaitu pengambilan informasi oleh penerima yang

tidak berhak,

2. tampering, yaitu pengubahan informasi yang tidak legal,

3. validasm (perusakan), yaitu gangguan operasi sistem tertentu.

Beberapa metode penyerangan terhadap keamanan, yaitu

1. eavesdropping, yaitu mendapatkan duplikasi pesan tanpa ijin,

2. masquerading, yaitu mengirim atau menerima pesan menggunakan

identitas lain tanpa seizin pemilik,

3. message tampering, yaitu menghadang atau menangkap pesan dan

mengubah isinya sebelum dilanjutkan ke penerima sebenarnya.

Dalam keamanan data perlu diadakan pemisahan antara kebijakan dan

mekanisme keamanan, yang akan membantu memisahkan kebutuhan

implementasinya, karena kebijakan dapat menspesifikasikan kebutuhan dan

mekanisme dapat menerapkan spesifikasi kebijakan tersebut.

Page 19: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

Berdasarkan spesifikasi dari OSI (Open Systems Interconnection),

sebuah layanan (kebijakan) keamanan meliputi

1. access control, yaitu perlindungan data terhadap pemakaian tak legal,

2. authentication, yaitu menyediakan jaminan identitas seseorang,

3. confidentiality (kerahasiaan), yaitu pengungkapan terhadap identitas

tak legal,

4. integrity, yaitu melindungi dari pengubahan data,

5. non-repudiation (penyangkalan), yaitu melindungi terhadap penolakan

komunikasi yang sudah pernah dilakukan.

Untuk mencapai keamanan tersebut, menurut Susanto (2004)

mekanisme-mekanisme yang dapat diterapkan, yaitu

1. enkripsi, dapat digunakan untuk menyediakan kerahasiaan pesan,

dapat menyediakan authentication dan perlindungan identitas,

2. sidik dijital (digital signature), dapat digunakan untuk menyediakan

authentication, perlindungan indentitas, dan non-repudiation,

3. algoritma checksum atau hash, dapat digunakan untuk menyediakan

perlindungan integritas, dan dapat menyediakan authentication.

Dalam keamanan data, hubungan antara kebijakan (layanan) dengan

mekanisme keamanan dapat digambarkan sebagai berikut.

Gambar 2.1. Hubungan kebijakan dan mekanisme keamanan.

SSL

Enkripsi Signature Hashing

RSA DES DSA RSA SHA1 MD5

Kebijakan

Mekanisme

Algoritma

Page 20: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

2.1.2. Kriptografi

1. Terminologi

Kriptografi (Cryptography) merupakan seni dan ilmu

menyembunyikan informasi dari penerima yang tidak berhak. Kriptografi

(Cryptography) berasal dari bahasa Yunani yaitu dari kata “cryptos” berarti

tersembunyi dan “graphien” yang berarti menulis. Jadi kriptografi

(cryptography) artinya penulisan tersembunyi atau penulisan rahasia (Rahayu,

2005).

Dalam menjaga kerahasiaan data, kriptografi mentransformasikan data

asli (plaintext) ke dalam bentuk data sandi (ciphertext) yang tidak dapat

dikenali. Ciphertext inilah yang kemudian dikirimkan oleh pengirim (sender)

kepada penerima (receiver). Setelah sampai di penerima, ciphertext tersebut

ditranformasikan kembali ke dalam bentuk plaintext agar dapat dikenali

(Sukaridhoto, 2005).

Proses tranformasi dari plaintext menjadi ciphertext disebut proses

encipherment atau enkripsi (encryption), sedangkan proses

mentransformasikan kembali ciphertext menjadi plaintext disebut proses

dekripsi (decryption). Dalam melakukan enkripsi dan dekripsi data, kriptografi

menggunakan suatu algoritma (cipher) dan kunci (key). Cipher adalah fungsi

matematika yang digunakan untuk mengenkripsi dan mendekripsi. Sedangkan

kunci merupakan sederetan bit yang diperlukan untuk mengenkripsi dan

mendekripsi data.

Gambar 2.2. Proses enkripsi dan deskripsi sederhana

Enkripsi Dekripsi

Kunci

Plaintext

Chipertext

Plaintext

Kunci

Page 21: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

Algoritma kriptografi modern tidak lagi mengandalkan kerahasiaan

algoritma tetapi kerahasiaan kunci. Jadi algoritma kriptografi dapat bersifat

umum dan boleh diketahui siapa saja, karena tanpa pengetahuan tentang kunci

maka data yang tersandi tetap saja tidak dapat dipecahkan. Akan tetapi berlaku

sebaliknya untuk kunci, karena plaintext yang sama bila disandikan dengan

kunci yang berbeda akan menghasilkan ciphertext yang berbeda, walaupun

dengan algoritma yang sama.

Istilah-istilah dalam kriptografi, antara lain cryptosystem,

Cryptographers, cryptanalysis, Cryptanalyst, dan cryptology. Cryptosystem

adalah sebuah algoritma kriptografi ditambah semua kemungkinan plaintext,

ciphertext dan kunci. Para pelaku atau praktisi kriptografi disebut

Cryptographers. Cryptanalysis adalah aksi untuk memecahkan mekanisme

kriptografi dengan cara mendapatkan plaintext atau kunci dari ciphertext yang

digunakan untuk mendapatkan informasi berharga kemudian mengubah atau

memalsukan pesan dengan tujuan untuk menipu penerima yang

sesungguhnya, atau memecahkan ciphertext. Cryptanalyst adalah pelaku atau

praktisi yang menjalankan cryptanalysis. Cryptology merupakan gabungan

dari cryptography dan cryptanalysis (Rahayu, 2005).

2. Algoritma Kriptografi

Berdasarkan kunci yang dipakai, algoritma kriptografi modern dibagi

menjadi dua macam, yaitu :

a. Kunci Simetris

Pada kunci simetris jenis kunci yang digunakan untuk membuat pesan

yang disandikan (enkripsi) sama dengan kunci untuk membuka pesan yang

disandikan (dekripsi). Jadi pengirim dan penerima pesan harus memiliki kunci

yang sama (Budiyono, 2004). Proses enkripsi-dekripsi dengan algoritma kunci

simetris dapat dilihat pada gambar 2.3.

Page 22: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

Gambar 2.3. Proses enkripsi dan deskripsi kunci simetris

Contoh algoritma kunci simetris adalah DES (Data Encryption Standard),

AES (Advanced Encryption Standard), Blowfish, IDEA (International Data

Encryption Algorithm), OTP (One-Time-Pad), dan lain-lain.

b. Kunci Asimetris

Pada kunci asimetris jenis kunci yang digunakan untuk enkripsi tidak

sama dengan kunci untuk dekripsi. Kunci publik digunakan untuk

mengenkripsi suatu pesan dimiliki oleh semua orang, dan kunci pribadi

digunakan untuk mendekripsikan pesan yang dikirim untuknya dimiliki satu

orang (Budiyono, 2004). Proses enkripsi-dekripsi dengan algoritma kunci

asimetris dapat dilihat pada gambar 2.4.

Gambar 2.4. Proses enkripsi dan dekripsi kunci asimetris

Dengan menggunakan kunci asimetris ini, semua orang dapat

mengenkripsi pesan dengan memakai public key penerima yang telah

diketahui secara umum. Akan tetapi pesan yang telah terenkripsi, hanya dapat

didekripsi dengan menggunakan private key yang hanya diketahui oleh

penerima pesan. Contoh dari algoritma kunci asimetris adalah RSA, DSA

(Digital Signature Algorithm) dan Merkle-Hellman Scheme

Enkripsi Dekripsi

Kunci Rahasia Kunci Rahasia

Plaintext

Chipertext

Plaintext

Enkripsi Dekripsi

Kunci Publik Kunci Rahasia

Plaintext

Chipertext

Plaintext

Page 23: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

2.1.3. Fungsi Hash

Menurut Munir (2004), fungsi hash dinamakan juga fungsi hash satu-

arah karena pesan yang sudah diubah menjadi message digest (pesan ringkas)

oleh fungsi hash tidak dapat dikembalikan lagi menjadi bentuk semula

walaupun digunakan algoritma dan kunci yang sama. Sembarang pesan M

berukuran bebas dikompresi oleh fungsi hash H melalui persamaan

h = H(M). (2.1)

Sifat-sifat fungsi hash adalah sebagai berikut.

a. Fungsi H dapat diterapkan pada blok data berukuran berapa saja.

b. H menghasilkan nilai h dengan panjang tetap (fixed-length output).

c. H(x) mudah dihitung untuk setiap nilai x yang diberikan.

d. Untuk setiap h yang dihasilkan, tidak mungkin dikembalikan nilai x

sedemikian sehingga H(x) = h. Itulah sebabnya fungsi H dikatakan

fungsi hash satu-arah (one-way hash function).

e. Untuk setiap x yang diberikan, tidak mungkin mencari y ≠ x

sedemikian sehingga H(y) = H(x).

f. Tidak mungkin mencari pasangan x dan y sedemikian sehingga H(x) =

H(y).

Nilai fungsi hash satu arah biasanya berukuran kecil, sedangkan pesan

berukuran sembarang. Ada beberapa fungsi hash satu-arah yang sudah dibuat,

antara lain: MD2, MD4, MD5, SHA (Secure Hash Function), Snefru, N-hash,

dan RIPE-MD (Race Integrity Primitivies Evaluation Message Digest).

Page 24: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

2.1.4. Algoritma MD5

Algoritma MD5 menerima masukan berupa pesan dengan ukuran

sembarang dan menghasilkan message digest yang panjangnya 128 bit.

Gambaran pembuatan message digest dengan algoritma MD5 diperlihatkan

pada Gambar 2.5.

Pesan 1000...000 Panjang Pesan

K bit Padding bits K mod 264

L x 512 bit

Y0 ... ...Y1 Yq YL - 1

512 512 512 512

HMD5 HMD5ABCD

512 512

128128 128HMD5

512

128 128HMD5

512

128

128

Message Digest

(1 - 512 bit)

Gambar 2.5. Pembuatan message digest dengan algoritma MD5

Menurut Munir (2004), langkah-langkah pembuatan message digest

secara garis besar adalah sebagai berikut.

a. Penambahan bit-bit pengganjal

(i) Pesan ditambah dengan sejumlah bit pengganjal sedemikian

sehingga panjang pesan (dalam satuan bit) kongruen dengan

448 modulo 512. Ini berarti panjang pesan setelah ditambahi

bit-bit pengganjal adalah 64 bit kurang dari kelipatan 512.

Angka 512 ini muncul karena MD5 memproses pesan dalam

blok-blok yang berukuran 512.

(ii) Pesan dengan panjang 448 bit pun tetap ditambah dengan bit-

bit pengganjal. Jika panjang pesan 448 bit, maka pesan tersebut

Page 25: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

ditambah dengan 512 bit menjadi 960 bit. Jadi, panjang bit-bit

pengganjal adalah antara 1 sampai 512.

(iii) Bit-bit pengganjal terdiri dari sebuah bit 1 diikuti dengan

sisanya bit 0.

b. Penambahan nilai panjang pesan semula

(i) Pesan yang telah diberi bit-bit pengganjal selanjutnya ditambah

lagi dengan 64 bit yang menyatakan panjang pesan semula.

(ii) Jika panjang pesan > 264 maka yang diambil adalah panjangnya

dalam modulo 264. Dengan kata lain, jika panjang pesan semula

adalah K bit, maka 64 bit yang ditambahkan menyatakan K

modulo 264.

(iii) Setelah ditambah dengan 64 bit, panjang pesan sekarang

menjadi 512 bit.

c. Inisialisasi penyangga message digest

(i) MD5 membutuhkan 4 buah penyangga (buffer) yang masing-

masing panjangnya 32 bit. Total panjang penyangga adalah 4 ×

32 = 128 bit. Keempat penyangga ini menampung hasil antara

dan hasil akhir.

(ii) Keempat penyangga ini diberi nama A, B, C, dan D. Setiap

penyangga diinisialisasi dengan nilai-nilai (dalam notasi HEX)

sebagai berikut.

A = 01234567

B = 89ABCDEF

C = FEDCBA98

D = 76543210

d. Pengolahan pesan dalam blok berukuran 512 bit

(i) Pesan dibagi menjadi L buah blok yang masing-masing

panjangnya 512 bit (Y0 sampai YL – 1).

(ii) Setiap blok 512-bit diproses bersama dengan penyangga MD

menjadi keluaran 128-bit, dan ini disebut proses HMD5.

Page 26: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

])16..1[,,( TYABCDfABCD qF←

])32..17[,,( TYABCDfABCD qG←

])48..33[,,( TYABCDfABCD qH←

])64..49[,,( TYABCDfABCD qI←

A B C D

A B C D

A B C D

+ + + +

MDq

MDq + 1

128

Yq

512

Gambar 2.6. Pengolahan blok 512 bit (Proses HMD5)

Proses HMD5 terdiri dari 4 buah putaran, dan masing-masing melakukan

operasi dasar MD5 sebanyak 16 kali dan setiap operasi dasar memakai sebuah

elemen T. Jadi setiap putaran memakai 16 elemen Tabel T. Pada Gambar 2.6,

Yq menyatakan blok 512-bit ke-q dari pesan yang telah ditambah bit-bit

pengganjal dan tambahan 64 bit nilai panjang pesan semula. MDq adalah nilai

message digest 128-bit dari proses HMD5 ke-q. Pada awal proses, MDq berisi

nilai inisialisasi penyangga MD. Fungsi-fungsi fF, fG, fH, dan fI masing-masing

berisi 16 kali operasi dasar terhadap masukan, setiap operasi dasar

menggunakan elemen Tabel T. Operasi dasar MD5 diperlihatkan pada Gambar

2.7.

Page 27: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

a b c d

g

+

+

+

CLSs

+

X[k]

T[i]

Gambar 2.7. Operasi dasar MD5

Operasi dasar MD5 yang diperlihatkan pada Gambar 2.7 dapat ditulis

dengan sebuah persamaan sebagai berikut.

a ← b + CLSs(a + g(b, c, d) + X[k] + T[i]) (2.2)

yang dalam hal ini,

a, b, c, d : empat buah peubah penyangga 32-bit,

g : salah satu fungsi F, G, H, I,

CLSs : circular left shift sebanyak s bit,

X[k] : kelompok 32-bit ke-k dari blok 512 bit message ke-q. Nilai

k=0 sampai 15,

T[i] : elemen Tabel T ke-i (32 bit),

+ : operasi penjumlahan modulo 232.

Page 28: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

Fungsi fF, fG, fH, dan fI adalah fungsi untuk memanipulasi masukan a,

b, c, dan d dengan ukuran 32-bit. Masing-masing fungsi dapat dilihat

pada Tabel 2.1.

Tabel 2.1. Fungsi-fungsi dasar MD5

Na

ma

Notasi G(a, b, c,

d)fF F(b, c,

d)(b ∧ c) ∨

(~b ∧ d)fG G(b, c,

d)(b ∧ d) ∨ (c

∧ ~d)fH H(b, c,

d)B ⊕ c ⊕ d

fI I(b, c,

d)c ⊕ (b ∧ ~

d)

Nilai T[i] dapat dilihat pada Tabel 2.2. Tabel ini disusun oleh fungsi 232 ×

abs(sin(i)), i dalam radian.

Tabel 2.2. Nilai T[i]T[1] = D76AA478

T[2] = E8C7B756

T[3] = 242070DB

T[4] = C1BDCEEE

T[5] = F57C0FAF

T[6] = 4787C62A

T[7] = A8304613

T[8] = FD469501

T[9] = 698098D8

T[10] = 8B44F7AF

T[11] = FFFF5BB1

T[12] = 895CD7BE

T[13] = 6B901122

T[14] = FD987193

T[15] = A679438E

T[16] = 49B40821

T[17] = F61E2562

T[18] = C040B340

T[19] = 265E5A51

T[20]= E9B6C7AA

T[21] = D62F105D

T[22] = 02441453

T[23] = D8A1E681

T[24]= E7D3FBCB

T[25] = 21E1CDE6

T[26] = C33707D6

T[27] = F4D50D87

T[28] = 455A14ED

T[29] = A9E3E905

T[30] = FCEFA3F8

T[31] = 676F02D9

T[32]= 8D2A4C8A

T[33] = FFFA3942

T[34] = 8771F681

T[35] = 69D96122

T[36] = FDE5380C

T[37] = A4BEEA44

T[38] = 4BDECFA9

T[39] = F6BB4B60

T[40] = BEBFBC70

T[41] = 289B7EC6

T[42] = EAA127FA

T[43] = D4EF3085

T[44] = 04881D05

T[45] = D9D4D039

T[46] = E6DB99E5

T[47] = 1FA27CF8

T[48] = C4AC5665

T[49] = F4292244

T[50] = 432AFF97

T[51] = AB9423A7

T[52] = FC93A039

T[53] = 655B59C3

T[54] = 8F0CCC92

T[55] = FFEFF47D

T[56] = 85845DD1

T[57] = 6FA87E4F

T[58] = FE2CE6E0

T[59] = A3014314

T[60] = 4E0811A1

T[61] = F7537E82

T[62] = BD3AF235

T[63]= 2AD7D2BB

T[64] = EB86D391

Page 29: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

Dari persamaan (2.2) dapat dilihat bahwa masing-masing fungsi fF, fG,

fH, dan fI melakukan 16 kali operasi dasar. Misalkan notasi

[abcd k s i]

menyatakan operasi

a ← b + ((a + g(b, c, d) + X[k] + T[i])<<<s)

yang dalam hal ini <<<s melambangkan operasi circular left shift 32-bit,

operasi dasar pada masing-masing putaran dapat ditabulasikan sebagai

berikut.

Tabel 2.3. Rincian operasi pada fungsi F(b, c, d) (kiri) dan fungsi G(b, c, d) (kanan)

No. [abcd k s i] No. [abcd k s i]

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

[ABCD 0 7 1]

[DABC 1 12 2]

[CDAB 2 17 3]

[BCDA 3 22 4]

[ABCD 4 7 5]

[DABC 5 12 6]

[CDAB 6 17 7]

[BCDA 7 22 8]

[ABCD 8 7 9]

[DABC 9 12 10]

[CDAB 10 17 11]

[BCDA 11 22 12]

[ABCD 12 7 13]

[DABC 13 12 14]

[CDAB 14 17 15]

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

[ABCD 1 5 17]

[DABC 6 9 18]

[CDAB 11 14 19]

[BCDA 0 20 20]

[ABCD 5 5 21]

[DABC 10 9 22]

[CDAB 15 14 23]

[BCDA 4 20 24]

[ABCD 9 5 25]

[DABC 14 9 26]

[CDAB 3 14 27]

[BCDA 8 20 28]

[ABCD 13 5 29]

[DABC 2 9 30]

[CDAB 7 14 31]

Page 30: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

16 [BCDA 15 22 16] 16 [BCDA 12 20 32]

Tabel 2.4. Rincian operasi pada fungsi H(b, c, d) (kiri) dan fungsi I(b, c, d) (kanan)

No. [abcd k s i] No. [abcd k s i]

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

[ABCD 5 4 33]

[DABC 8 11 34]

[CDAB 11 16 35]

[BCDA 14 23 36]

[ABCD 1 4 37]

[DABC 4 11 38]

[CDAB 7 16 39]

[BCDA 10 23 40]

[ABCD 13 4 41]

[DABC 0 11 42]

[CDAB 3 16 43]

[BCDA 6 23 44]

[ABCD 9 4 45]

[DABC 12 11 46]

[CDAB 15 16 47]

[BCDA 2 23 48]

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

[ABCD 0 6 49]

[DABC 7 10 50]

[CDAB 14 15 51]

[BCDA 5 21 52]

[ABCD 12 6 53]

[DABC 3 10 54]

[CDAB 10 15 55]

[BCDA 1 21 56]

[ABCD 8 6 57]

[DABC 15 10 58]

[CDAB 6 15 59]

[BCDA 13 21 60]

[ABCD 4 6 61]

[DABC 11 10 62]

[CDAB 2 15 63]

[BCDA 9 21 64]

Setelah putaran keempat, a, b, c, dan d ditambahkan ke A, B, C, dan D,

dan selanjutnya algoritma memproses untuk blok data berikutnya (Yq+1).

Page 31: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

Keluaran akhir dari algoritma MD5 adalah hasil penyambungan bit-bit di A, B,

C, dan D (Munir, 2004).

Dari uraian tersebut, secara umum fungsi hash MD5 dapat ditulis

dalam persamaan matematis berikut.

MD0 = IV (2.3)

MDq + 1 = MDq + fI(Yq + fH(Yq + fG(YQ + fF(Yq + MDq))))

MD = MDL – 1 (2.4)

yang dalam hal ini,

IV : initial vector dari penyangga ABCD, yang dilakukan pada

proses inisialisasi penyangga,

Yq : blok pesan berukuran 512-bit ke-q,

L : jumlah blok pesan,

MD : nilai akhir message digest.

2.1.5. RSA Cryptosystem

RSA cryptosystem adalah public-key cryptosystem yang menawarkan

baik enkripsi maupun tanda tangan digital. Keamanan algoritma RSA terletak

pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima

(Munir, 2004).

Besaran-besaran yang digunakan pada algoritma RSA adalah :

• p dan q bilangan prima (rahasia)

• r = p ⋅ q (tidak rahasia)

• φ(r) = (p – 1) (q – 1) (rahasia)

• PK (kunci enkripsi) (tidak rahasia)

• SK (kunci dekripsi) (rahasia)

• X (plainteks) (rahasia)

Page 32: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

• Y (cipherteks) (tidak rahasia).

Algoritma RSA didasarkan pada teorema Euler yang menyatakan bahwa

aφ(r) ≡ 1 (mod r) (2.5)

yang dalam hal ini,

• a harus relatif prima terhadap r,

• φ(r) = r(1 – 1/p1)(1 – 1/p2) … (1 – 1/pn),

dimana p1, p2, …, pn adalah faktor prima dari r dan φ(r) adalah fungsi

yang menentukan berapa banyak dari bilangan-bilangan 1, 2, 3, …, r

yang relatif prima terhadap r.

Berdasarkan sifat am ≡ bm (mod r) untuk m bilangan bulat ≥ 1, maka

persamaan (2.5) dapat ditulis menjadi

a mφ(r) ≡ 1m (mod r),

atau

amφ(r) ≡ 1 (mod r). (2.6)

Bila a diganti dengan X, maka persamaan (2.6) menjadi

Xmφ(r) ≡ 1 (mod r). (2.7)

Berdasarkan sifat ac ≡ bc (mod r), maka bila persamaan (2.7) dikali dengan X

menjadi

Xmφ(r) + 1 ≡ X (mod r) (2.8)

yang dalam hal ini X relatif prima terhadap r.

Misalkan SK dan PK dipilih sedemikian sehingga

SK ⋅ PK ≡ 1 (mod φ(r)) (2.9)

atau

SK ⋅ PK = mφ(r) + 1. (2.10)

Persamaan (2.10) disubtitusikan ke dalam persamaan (2.8) menjadi

X SK ⋅ PK ≡ X (mod r). (2.11)

Persamaan (2.11) dapat ditulis kembali menjadi

(X PK)SK ≡ X (mod r) (2.12)

Page 33: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

yang artinya, perpangkatan X dengan PK diikuti dengan perpangkatan dengan

SK menghasilkan kembali X semula.

Berdasarkan persamaan (2.12), maka enkripsi dan dekripsi dirumuskan

sebagai berikut.

EPK(X) = Y ≡ XPK mod r, (2.13)

DSK(Y) = X ≡ YSK mod r. (2.14)

Karena SK ⋅ PK = PK ⋅ SK, maka enkripsi diikuti dengan dekripsi ekivalen

dengan dekripsi diikuti enkripsi

ESK(DSK(X)) = DSK(EPK(X)) ≡ XPK mod r. (2.15)

Oleh karena XPK mod r ≡ (X + mr)PK mod r untuk sembarang bilangan

bulat m, maka tiap plainteks X, X + r, X + 2r, …, menghasilkan cipherteks

yang sama. Dengan kata lain, transformasinya dari banyak ke satu. Agar

transformasinya satu-ke-satu, maka X harus dibatasi dalam himpunan {0, 1, 2,

…, r – 1} sehingga enkripsi dan dekripsi tetap benar seperti pada persamaan

(2.13) dan (2.14).

2.1.6. Sidik Dijital

Tanda tangan sering digunakan untuk menentukan keotentikan suatu

data, sehingga bentuk tanda tangan seseorang dibuat selalu sama agar orang

lain dapat menentukan apakah data dan orang yang memberi tandatangan

tersebut sah. Sidik dijital mempunyai tujuan yang hampir sama dengan tanda

tangan biasa, tetapi bentuk tanda tangan dijital (sidik dijital) dibuat tergantung

pada data atau pesan yang ditandatangani, bukan siapa yang membuat tanda

tangan. Dengan sidik dijital, integritas data dapat dijamin, disamping itu ia

juga digunakan untuk membuktikan asal pesan. Hanya sistem kriptografi

kunci-publik yang cocok untuk pemberian sidik dijital. Hal ini disebabkan

karena skema sidik dijital berbasis sistem kunci-publik dapat menyelesaikan

masalah non repudiation (penyangkalan), karena baik penerima maupun

pengirim pesan mempunyai pasangan kunci masing-masing.

Page 34: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

Menurut Munir (2004) ada dua metode dalam membuat sidik dijital.

1. Sidik dijital dengan algoritma kunci-publik.

2. Sidik dijital dengan menggunakan fungsi hash satu-arah.

Menurut Wibowo (2004), tanda tangan dijital (sidik dijital)

mempunyai sifat-sifat sebagai berikut.

1. Tanda tangan itu asli (tidak mudah ditiru oleh orang lain). Pesan dan

tanda tangan pesan juga dapat menjadi barang bukti, sehingga dapat

mencegah penyangkalan apabila seseorang yang pernah

menandatangani suatu pesan tetapi tidak mengakuinya.

2. Tanda tangan itu hanya sah untuk dokumen itu saja. Tanda tangan

tidak dapat dipindahkan dari suatu dokumen ke dokumen lainnya. Ini

juga berarti bahwa jika dokumen itu diubah, maka tanda tangan digital

dari pesan tersebut tidak lagi sah.

3. Tanda tangan itu dapat diperiksa dengan mudah.

4. Tanda tangan itu dapat diperiksa oleh pihak-pihak yang belum pernah

bertemu dengan penandatangan.

5. Tanda tangan itu juga sah untuk duplikat dari dokumen yang sama.

Dua algoritma signature yang digunakan secara luas adalah RSA dan

Elgamal. Pada RSA, algoritma enkripsi dan dekripsi identik, sehingga proses

signature dan verifikasi juga identik. Selain RSA, terdapat algoritma yang

dikhususkan untuk sidik dijital, yaitu Digital Signature Algorithm (DSA),

yang merupakan bakuan (standard) untuk Digital Dignature Standard (DSS).

Pada DSA, algoritma signature dan verifikasi berbeda.

2.2. Kerangka Pemikiran

Berdasarkan landasan teori dapat disusun kerangka pemikiran untuk

menyelesaikan permasalahan yang ada. Fungsi hash MD5 adalah fungsi hash

satu arah yang digunakan untuk membuat message digest, sedangkan

algoritma RSA merupakan sebuah algoritma kriptografi dengan menggunakan

Page 35: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

kunci asimetris. Sehingga sidik dijital dapat dibuat dengan menggunakan

fungsi hash MD5 dan algoritma RSA. Sidik dijital tersebut digunakan oleh

penerima pesan untuk membuktikan data tersebut asli dan dikirim oleh orang

yang benar (sah). Selanjutnya dilakukan analisis untuk mengetahui

kemampuan sidik dijital tersebut dalam menjaga keabsahan data.

Page 36: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

BAB IIIMETODOLOGI PENELITIAN

Metode yang digunakan dalam penelitian ini adalah studi literatur dan

pengembangan program komputer. Untuk mencapai tujuan dari penelitian ini

diambil langkah-langkah sebagai berikut.

1. Studi literatur tentang keamanan data, kriptografi, fungsi hash,

algoritma MD5, RSA Cryptosystem dan sidik dijital.

2. Dilakukan proses-proses yang diperlukan untuk menjaga

keabsahan data dengan langkah-langkah sebagai berikut.

a. Ditentukan data yang ingin dijaga keabsahannya.

b. Dibuat sidik dijital dari data tersebut dengan menggunakan fungsi

hash MD5 dan algoritma RSA (pada skripsi ini pembuatan

message digest oleh fungsi hash MD5 dilakukan dengan

menggunakan software yang kode sumbernya diperoleh dari

internet).

c. Sidik dijital dan data dikirimkan bersama-sama.

d. Ditempat penerima, data tersebut dibuktikan keabsahannya.

3. Pembuatan dan pengujian aplikasi, yaitu pembuatan aplikasi

program komputer untuk pembuatan sidik dijital dan verifikasinya

dengan menggunakan software tools Borland Delphi 7, kemudian

mengujinya dengan membandingkan hasil dari aplikasi dengan

hasil secara teori.

4. Analisis, yaitu menganalisis kelebihan serta kelemahan pembuatan

sidik dijital dengan menggunakan fungsi hash MD5 dan algoritma

RSA baik dari teori maupun aplikasi yang telah dibuat.

Page 37: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

BAB IVPEMBAHASAN

4.1. Pembuatan Sidik Dijital

Dalam penelitian ini, sidik dijital dibuat dengan metode fungsi hash

satu-arah. Fungsi hash yang digunakan adalah MD5 dan algoritma kriptografi

yang digunakan adalah RSA. Menurut Munir (2004), skema pembuatan sidik

dijital dengan menggunakan fungsi hash satu-arah adalah sebagai berikut.

1. Pesan yang hendak dikirim diubah terlebih dahulu menjadi bentuk

yang ringkas yang disebut message digest. Message digest (MD)

diperoleh dengan mentransformasikan pesan M dengan menggunakan

fungsi hash satu-arah (one-way) H,

MD = H(M) (4.1)

2. Selanjutnya, message digest MD dienkripsikan dengan algoritma

kunci-publik menggunakan kunci rahasia (SK) pengirim menjadi sidik

dijital S,

S = ESK(MD) (4.2)

3. Pesan M disambung (append) dengan sidik dijital S, lalu keduanya

dikirim melalui saluran komunikasi. Dalam hal ini, kita katakan bahwa

pesan M sudah ditandatangani oleh pengirim dengan sidik dijital S.

Pesan yang dikirim tidak hanya pesan dalam bentuk teks, tetapi dapat juga

berformat .dat, .mp3, .pdf, .wmf, dan sebagainya. Langkah-langkah dalam

pembuatan sidik dijital dari pesan M dapat dilihat sebagai berikut.

Gambar 4.1. Skema pembuatan sidik dijital dengan menggunakan fungsi hash

Message Message Digest

SignatureFungsi Hash Signin

g

Secret Key

Page 38: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

4.1.1. Prosedur Pembuatan Message Digest

Untuk membuat message digest, terdapat empat langkah utama yang

dilakukan, seperti yang telah dijelaskan pada landasan teori. Adapun langkah–

langkah tersebut adalah

1. penambahan bit,

2. penambahan panjang pesan,

3. inisialisasi penyangga MD5,

4. proses pengolahan pesan dalam blok berukuran 512 bit,

4.1.2. Prosedur Menghasilkan Kunci Untuk Setiap Pemakai

Algoritma RSA menggunakan dua buah kunci, yaitu kunci pribadi

yang digunakan oleh pembuat sidik dijital dan kunci publik yang digunakan

oleh penerima pesan.

Prosedur Pembuatan Pasangan Kunci.

1. Dipilih dua buah bilangan prima sembarang, p dan q.

2. Dihitung r = p ⋅ q. Sebaiknya p ≠ q, sebab jika p = q maka r = p2

sehingga p dapat diperoleh dengan menarik akar pangkat dua dari r.

3. Dihitung φ(r) = (p – 1)(q – 1).

4. Dipilih kunci publik PK yang prima relatif terhadap φ(r).

5. Dibangkitkan kunci rahasia dengan menggunakan persamaan (2.9),

yaitu SK ⋅ PK ≡ 1 (mod φ(r)).

SK ⋅ PK ≡ 1 (mod φ(r)) ekivalen dengan SK ⋅ PK = 1 + mφ(r), sehingga SK

dapat dihitung dengan

PKrmSK )(1 φ+= , (4.3)

terdapat bilangan bulat m yang menghasilkan bilangan bulat SK.

Page 39: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

4.1.3. Prosedur Enkripsi Untuk Pengirim

Untuk membuat sidik dijital, message digest yang telah dihasilkan oleh

fungsi hash MD5 dienkripsi menggunakan kunci pribadi. Langkah-langkah

yang diperlukan dalam proses enkripsi adalah sebagai berikut.

1. Plaintext disusun menjadi blok-blok x1, x2, …, xn sedemikian

sehingga setiap blok merepresentasikan nilai di dalam rentang 0

sampai r – 1.

2. Setiap blok xi dienkripsi menjadi blok si dengan rumus

si = xi SK mod r. (4.4)

4.2. Analisis Keabsahan Data

Data atau pesan yang diterima harus diteliti bahwa selama perjalanan,

data tersebut tidak diubah, dihapus atau dikirimkan oleh orang yang tidak

dikehendaki. Menurut Munir (2004), skema verifikasi keabsahan data atau

pesan sebagai berikut.

1. Sidik dijital S didekripsi menggunakan kunci publik (PK) pengirim

pesan, menghasilkan message digest semula, MD, sebagai berikut

MD = DPK(S). (4.5)

2. Pesan M kemudian diubah menjadi message digest MD’ menggunakan

fungsi hash satu-arah yang sama dengan fungsi hash yang digunakan

oleh pengirim.

3. Jika MD’ = MD, berarti pesan yang diterima masih asli dan berasal

dari pengirim yang benar.

Untuk membuktikan data yang dikirim masih asli dan dikirim oleh

orang yang benar, dilakukan langkah-langkah analisis keabsahan data dengan

menggunakan sidik dijital seperti ditunjukkan pada Gambar 4.2.

Page 40: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

Gambar 4.2. Otentikasi dengan sidik dijital menggunakan fungsi hash satu-arah

4.2.1. Prosedur Dekripsi Untuk Penerima

Untuk mendapatkan plaintext yang merupakan message digest dari

data yang dikirim, dilakukan dengan cara setiap blok cipherteks yi didekripsi

kembali menjadi blok xi dengan rumus

xi = yi PK mod r (4.6)

4.2.2. Prosedur Verifikasi Sidik Dijtal

Untuk menguji keaslian data dan kebenaran pengirim, dilakukan

proses verifikasi sidik dijital dengan langkah-langkah sebagai berikut.

1. Pesan M (yang diterima bersama sidik dijitalnya) diubah menjadi

message digest dengan menggunakan fungsi hash yang sama (MD5).

2. Message digest tersebut kemudian dicocokkan dengan hasil dekripsi

sidik dijital dari data atau pesan yang dikirim. Apabila sama berarti

data atau pesan tersebut masih asli dan dikirim oleh orang yang benar,

jika tidak berarti data sudah tidak sah (data diubah atau dikirim oleh

orang yang tidak diharapkan).

PublicKey

MessageSignature

Signature

MessageDigest

Verify

Message

FungsiHash

MessageDigest

?=

Page 41: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

4.3. Penerapan Kasus

Untuk menjelaskan mengenai mekanisme proses pembuatan sidik

dijital dan verifikasinya, berikut diberikan contoh kasus pada proses regristrasi

pengguna kartu prabayar secara manual, yang mempunyai urutan langkah

sebagai berikut.

1. Pelanggan datang ke dealer operator kartu tertentu.

2. Data diri diisi dan diserahkan kepada operator.

3. Operator mengirimkan data tersebut kepada pemerintah.

Untuk memudahkan pemahaman terhadap proses yang berlangsung,

dimisalkan data yang diserahkan pelanggan prabayar kepada operator adalah

PT EXELCOMINDO PRATAMA

FORM REGRISTRASI PELANGGAN PRABAYARNomor HP : 081802510001

Nama : Joko Wijoyo

Jenis ID(KTP/SIM/PASPOR): KTP

No ID (KTP/SIM/PASPOR) : 08011234081084

Tempat/Tanggal Lahir : Karanganyar, 8 Oktober 1984

Jenis Kelamin : Laki-laki

Alamat : Jl. Slamet No 32

Kota : SurakartaGambar 4.3. Form regristrasi pelanggan prabayar

Data tersebut kemudian disimpan melalui notepad dengan format teks (*.txt)

atau menggunakan format yang lain. Data yang telah diterima operator

sebaiknya tidak langsung dikirim kepada pemerintah, karena dalam perjalanan

dimungkinkan data tersebut disabotase oleh orang-orang yang tidak

bertanggungjawab. Informasi di dalamnya seperti nomor telepon, nomor id,

nama dan yang lainnya dapat diubah tanpa sepengetahuan yang bersangkutan.

Sehingga, pihak operator perlu menjamin bahwa data yang dikirimkan

tersebut aman dan asli. Untuk mengantisipasi hal-hal yang tidak diinginkan,

sidik dijital dapat digunakan untuk mengatasi masalah ini. Pihak operator dan

Page 42: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

pemerintah dapat bekerjasama dalam bertukar informasi mengenai kunci yang

digunakan. Selanjutnya data tersebut dibuat sidik dijital dan dikirimkan

kepada pemerintah bersama data aslinya. Seperti yang ditunjukkan Gambar

4.4.

Gambar 4.4. Skema regristrasi pengguna kartu prabayar

4.3.1. Tahap Pembuatan Sidik Dijital

Data yang sudah diisi disimpan di komputer operator dengan nama

regristrasi. Selanjutnya data tersebut dibuat pesan ringkas (message digest)

kemudian dienkripsi setelah sebelumnya ditentukan terlebih dahulu kunci

untuk enkripsi dan dekripsi.

4.3.1.1. Tahap Pembuatan Message Digest

Data dari pelanggan yang melakukan regristrasi tersebut kemudian

diubah menjadi message digest menggunakan algoritma fungsi hash MD5

(source code terdapat pada lampiran), sehingga diperoleh message digest

MD = d5ee40d2753128d165783ba4273bc44f.

4.3.1.2. Tahap Menghasilkan Kunci Pribadi dan Kunci Publik

Misalkan dipilih p = 397 dan q = 229 (keduanya harus bilangan

prima), selanjutnya dihitung nilai

r = p . q = 90913,

dan

φ(r)= (p – 1)(q – 1) = 90288.

Dipilih kunci publik PK = 5, karena 5 relatif prima dengan 90288. PK

dan r dipublikasikan ke pemerintah untuk proses otentikasi sidik dijital.

Selanjutnya dihitung kunci rahasia SK dengan menggunakan persamaan (4.3),

Pengguna Kartu Prabayar

Operator Seluler

PemerintahData Pribadi Data Pribadi

Sidik Dijital

Page 43: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

5)90288(1 ×+= mSK .

Dengan mencoba nilai-nilai m = 1, 2, 3,…, diperoleh nilai SK yang bulat

adalah 54173. Ini adalah kunci enkripsi yang harus dirahasiakan.

4.3.1.3. Tahap Enkripsi Untuk Operator

Plaintext (message digest dari data regristrasi) disusun menjadi blok-

blok x1, x2, …, xn sedemikian sehingga setiap blok merepresentasikan nilai di

dalam rentang 0 sampai r – 1. Plaintext yang dienkripsikan yaitu

X = MD = d5ee40d2753128d165783ba4273bc44f

atau dalam sistem desimal (pengkodean ASCII) adalah

“100 53 101 101 52 48 100 50 55 53 51 49 50 56 100 49 54 53 55 56 51 98 97

52 50 55 51 98 99 52 52 102”

X dibagi menjadi blok yang lebih kecil, misalnya X dipecah menjadi 24 blok

yang berukuran 3 digit :

x1 = 100

x2 = 531

x3 = 011

x4 = 015

x5 = 248

x6 = 100

x7 = 505

x8 = 553

x9 = 514

x10 = 950

x11 = 561

x12 = 004

x13 = 954

x14 = 535

x15 = 556

x16 = 519

x17 = 897

x18 = 525

x19 = 055

x20 = 519

x21 = 899

x22 = 525

x23 = 210

x24 = 002

Page 44: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

Nilai-nilai xi ini masih terletak di dalam rentang 0 sampai 90913 – 1 (agar

transformasi menjadi satu-ke-satu). Selanjutnya setiap blok xi dienkripsi

menjadi blok si dengan rumus

si = xi SK mod r.

Blok-blok plaintext dienkripsikan sebagai berikut.

10054173 mod 90913 = 65072 = s1

53154173 mod 90913 = 64568 = s2

01154173 mod 90913 =45815 = s3

01554173 mod 90913 = 44410 = s4

24854173 mod 90913 = 18597 = s5

10054173 mod 90913 = 65072 = s6

50554173 mod 90913 = 63270= s7

55354173 mod 90913 = 58301 = s8

51454173 mod 90913 = 86252= s9

95054173 mod 90913 = 67432 = s10

56154173 mod 90913 = 11110 = s11

00454173 mod 90913 = 10049 = s12

95454173 mod 90913 = 39652 = s13

53554173 mod 90913 = 15830 = s14

55654173 mod 90913 = 27211 = s15

51954173 mod 90913 = 44011 = s16

89754173 mod 90913 = 24684 = s17

52554173 mod 90913 = 5409 = s18

05554173 mod 90913 = 62459 = s19

51954173 mod 90913 = 44011 = s20

89954173 mod 90913 =18384= s21

52554173 mod 90913 = 5409 = s22

21054173 mod 90913 = 1326 = s23

00254173 mod 90913 = 29890 = s24

Page 45: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

Jadi, ciphertext yang dihasilkan adalah

S = 65072 64568 45815 44410 18597 65072 63270 58301 86252 67432

11110 10049 39652 15830 27211 44011 24684 5409 62459 44011

18384 5409 1326 29890.

Ciphertext tersebut merupakan sidik dijital yang telah dibuat dengan

menggunakan algoritma RSA, selanjutnya sidik dijital tersebut dikirimkan

kepada pemerintah besama dengan data aslinya.

4.3.2. Tahap Analisis Keabsahan Data

Pemerintah menerima data dan sidik dijital dari operator, kemudian

menyimpannya dalam basis data daftar pengguna kartu prabayar. Pemerintah

harus menyimpan keduanya (tidak hanya data pengguna kartu prabayar saja)

untuk mengantisipasi apabila pada suatu saat terjadi tindakan kriminal dari

salah satu nomor yang sudah terdaftar, sedangkan orang yang memiliki nomor

tersebut tidak mengakui perbuatannya. Sebelum melakukan tindakan lebih

lanjut, pihak yang berwajib melakukan verifikasi terlebih dahulu apakah data

tersebut benar dan belum diubah oleh siapapun dalam perjalanan dari operator

ke pemerintah.

Sebagai contoh akan diperiksa data dari Joko Wijoyo, pengguna kartu

prabayar dengan nomor handphone 081802510001 yang tidak mengaku telah

melakukan tindakan penipuan melalui SMS. Langkah pertama yang dilakukan

adalah sidik dijitalnya, S = 65072 64568 45815 44410 18597 65072 63270

58301 86252 67432 11110 10049 39652 15830 27211 44011 24684 5409

62459 44011 18384 5409 1326 29890 didekripsi dengan menggunakan kunci

publik untuk mendapatkan kembali message digest dari data tersangka.

Dengan menggunakan kunci publik PK=5, blok-blok ciphertext

didekripsikan sebagai berikut.

650725 mod 90913 = 100 = x1

645685 mod 90913 = 531 = x2

Page 46: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

458155 mod 90913 = 011= x3

444105 mod 90913 = 015 = x4

185975 mod 90913 = 248= x5

650725 mod 90913 = 100 = x6

632705 mod 90913 = 505 = x7

583015 mod 90913 = 553 = x8

862525 mod 90913 = 514 = x9

674325 mod 90913 = 950 = x10

111105 mod 90913 = 561 = x11

100495 mod 90913 = 004 = x12

396525 mod 90913 = 954 = x13

158305 mod 90913 = 535 = x14

272115 mod 90913 = 556 = x15

440115 mod 90913 = 519 = x16

246845 mod 90913 = 897 = x17

54095 mod 90913 = 525 = x18

624595 mod 90913 = 055 = x19

440115 mod 90913 = 519 = x20

183845 mod 90913 = 899 = x21

5409 5 mod 90913 = 525 = x22

1326 5 mod 90913 = 210 = x23

298905 mod 90913 = 2 = x24

Sehingga diperoleh kembali plaintext

Page 47: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

X = “100 531 011 015 248 100 505 553 514 950 561 004 954 535 556 519

897 525 055 519 899 525 210 2”, yang dalam karakter ASCII adalah

X = d5ee40d2753128d165783ba4273bc44f.

Selanjutnya data tersangka diubah menjadi message digest dengan

menggunakan fungsi hash yang sama dengan fungsi hash yang digunakan

oleh operator. Data dari pengguna bernomor handphone 081802510001

tesebut setelah dibuat message digest dengan menggunakan fungsi hash MD5

diperoleh MD’ = d5ee40d2753128d165783ba4273bc44f. MD’ yang

dihasilkan tersebut ternyata sama dengan hasil dekripsi sidik dijitalnya.

Dengan demikian data tersebut asli dan dikirim oleh orang yang benar (sah),

sehingga pihak yang berwajib dapat melakukan tindakan lebih lanjut.

Apabila data tersebut sudah diubah, misalkan nomor handphone

diubah oleh seseorang dari 081802510001 menjadi 081802510002 dengan

menggunakan fungsi hash MD5, message digest yang dihasilkan adalah

”9a91d15b4e789989455277caa3a49ee0”. Message digest tersebut jauh

berbeda dengan ”d5ee40d2753128d165783ba4273bc44f” walaupun hanya

satu angka saja yang diubah, sehingga dapat ditebak pada tahap analisis

keabsahan data, hasil dari dekripsi sidik dijital tidak sama dengan message

digest dari data yang telah diubah tersebut.

4.4. Pembuatan dan Pengujian Aplikasi

Dalam penelitian ini, setelah mengetahui kinerja fungsi hash MD5 dan

algoritma RSA dalam membuat sidik dijital dan cara menguji keabsahan data

menggunakan sidik dijital, dapat diketahui terdapat dua buah aplikasi yang

harus dibuat. Pertama pembuatan sidik dijital oleh pengirim dan kedua

verifikasi sidik dijital (untuk menguji keabsahan data) oleh penerima. Pada

penelitian ini software tool yang digunakan dalam pembuatan aplikasi adalah

Delphi 7.

4.4.1. Pembuatan Aplikasi Untuk Pengirim

Page 48: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

Kunci Enkripsi

Ya

Tidak

Pada aplikasi pembuatan sidik dijital, dibuat dengan empat tampilan

utama, yaitu petunjuk penggunaan aplikasi, proses pembuatan message digest,

proses menghasilkan kunci enkripsi dan dekripsi, dan proses enkripsi

(pembuatan sidik dijital). Alur proses yang berlangsung pada aplikasi

pembuatan sidik dijital ditunjukkan pada Gambar 4.5.

Gambar 4.5. Alur sistem pembuatan sidik dijital

Berikut diberikan pseudocode (algortima) beserta penjelasan pada

masing-masing proses yang berlangsung.

1. Proses pembuatan message digest//Mendefinisikan variabelvar r,k : int64;

Mulai

MembuatMessage Digest

Message Digest

Enkripsi

Bilangan Prima

Sidik Dijital

Memasukkan Data Memasukkan dua buah kunci bilangan prima

Kunci Enkripsi dan Dekripsi

Selesai

Page 49: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

var h0,h1,h2,h3 : int; var a,b,c,d: int;r[ 0..15]:=(7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22);r[16..31]:=(5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20);r[32..47]:=(4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23);r[48..63]:=(6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21);//Menggunakan bagian fraksional biner dari integral sinus sebagai konstanta:for i:=0 to 63 do k[i] := round(abs(sin(i + 1)) × 2^32);//Inisialisasi variabel: h0 := 0x67452301; h1 := 0xEFCDAB89; h2 := 0x98BADCFE; h3 := 0x10325476;//Pemrosesan awal:append "1" bit to message;append "0" bits until message length in bits ≡ 448 (mod 512);append bit length of message as 64-bit little-endian integer to message;//Pengolahan pesan paada blok 512-bit:for each 512-bit chunk of message break chunk into sixteen 32-bit little-endian words; w(i), 0 ≤ i ≤ 15//Inisialisasi nilai hash pada blok ini: a := h0; b := h1; c := h2; d := h3;//Kalang utama: for i:=0 to 63 do if 0 ≤ i ≤ 15 then begin f := (b and c) or ((not b) and d); g := I; end else if 16 ≤ i ≤ 31 then

Page 50: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

begin f := (d and b) or ((not d) and c); g := (5×i + 1) mod 16; end else if 32 ≤ i ≤ 47 then begin f := b xor c xor d; g := (3×i + 5) mod 16; end else if 48 ≤ i ≤ 63 begin f := c xor (b or (not d)); g := (7×i) mod 16; end; temp := d; d := c; c := b; b := ((a + f + k(i) + w(g)) leftrotate r(i)) + b; a := temp;//Tambahkan hash dari pengolahan blok 512 bit sebagai hasil h0 := h0 + a; h1 := h1 + b; h2 := h2 + c; h3 := h3 + d;

mesaggedigest := h0 append h1 append h2 append h3

2. Proses menghasilkan kunci enkripsi (d) dan kunci dekripsi (e)//Mendefinisikan variabelvar p,q,e,d,phi:int64;//Menguji bahwa input p dan q adalah bilangan primaif prime(p)=true and prime(q)=true thenphi:=(p-1)*(q-1);//Menguji nilai e yang diinputif GCD(e,phi)<>1 then e:=FALSE else

Page 51: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

begin m:=1; while ((1+m*phi) mod e)<>0 do m:=m+1; end;//Menentukan nilai kunci enkripsi (d)d:=(1+m*phi) div e;

3. Proses enkripsi (pembuatan sidik dijital)// Mendefinisikan variabelvar n,d: int64; messagedigest,ascii,semua,sidikdijital:string;// Mencari deret nilai ascii message digestascii_md:='';for i:=1 to length(messagedigest) do begin hargaascii[i]:=ord(messagedigest [i]); ascii_md:=concat(ascii_md,inttostr(hargaascii[i])); end;//Menentukan panjang blok dan lebarbloklebarblok:= length(n)-1;If length(ascii_md) mod lebarblok<>0 then banyakblok:=(length(ascii_md)div lebarblok)+1 else banyakblok:=length(ascii_md)div lebarblok;//Tahap enkripsimulai:=1;sidikdijital:='';for i:=1 to banyakblok do begin x[i]:=copy(ascii_md,mulai,lebarblok); s[i]:=enkripsi(strtoint(x1[i]),d,n); chipertext[i]:=chr(strtoint(s[i])); mulai:=mulai+lebarblok; //Nilai sidik dijital sidikdijital:=concat(sidikdijital,chipertext[i]); end;

Page 52: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

4.4.2. Pengujian Aplikasi Untuk Pengirim

Dalam subbab ini dilakukan pengujian terhadap aplikasi untuk

pengirim yang meliputi : proses pembuatan message digest, proses

menghasilkan kunci enkripsi dan dekripsi, dan proses enkripsi (pembuatan

sidik dijital). Ketika aplikasi dijalankan, terlebih dahulu muncul user guide

(petunjuk pemakaian aplikasi) seperti ditunjukkan pada Gambar 4.6.

Gambar 4.6. Form petunjuk pemakaian aplikasi

Berikut ini diberikan contoh pengujian terhadap masing-masing proses

yang dijalankan.

1. Proses pembuatan message digest

Apabila tombol ”PROSES” dibawah tulisan message digest ditekan

maka muncul tampilan seperti ditunjukkan Gambar 4.8.

Gambar 4.7. Form regristrasi

Page 53: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

Misal dimasukkan file regristrasi.txt, kemudian tombol ”BUAT

MESSAGE DIGEST” ditekan maka dihasilkan message digest dari

data yang dimasukkan tersebut.

Gambar 4.8. Form pembuatan message digest

2. Proses menghasilkan kunci enkripsi dan dekripsi

Pada proses ini kunci yang dimasukkan kunci dua bilangan prima yang

berbeda. Pada aplikasi ini disediakan juga sejumlah bilangan prima

yang dapat dibangkitkan secara random berdasarkan ukuran kuncinya.

Jika kunci yang dimasukkan bukan bilangan prima maka muncul

peringatan agar mengganti bilangan yang tidak prima menjadi bilangan

prima. Apabila dua buah kunci yang dimasukkan merupakan bilangan

prima, maka proses dilanjutkan.

Gambar 4.9. Peringatan apabila kunci yang dimasukkan tidak prima

Page 54: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

Setelah itu user diminta memasukkan sembarang bilangan yang prima

relatif dengan φ(r). Bilangan ini adalah kunci dekripsi (e). Pada

aplikasi ini juga disediakan pembangkit kunci dekripsi dengan

menekan tombol ”BANGKITKAN E” sehingga user tidak perlu

mencoba-coba memasukkan bilangan e yang akan memakan waktu.

Setelah e dimasukkan atau dibangkitkan, didapat nilai d (kunci

enkripsi) seperti ditunjukkan Gambar 4.10.

Gambar 4.10. Form pembuatan kunci

Setelah mendapatkan kunci enkripsi dan dekripsi, kunci publik

disimpan sebelum dikirimkan kepada penerima.

Gambar 4.11. Kunci publik yang dikirimkan kepada penerima

3. Proses enkripsi (pembuatan sidik dijital)

Page 55: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

Dalam proses ini message digest yang diperoleh dari proses pertama

dienkripsi menggunakan kunci pribadi (d) yang diperoleh pada proses

kedua. User dapat juga memasukkan message digest yang diperoleh

dari software lain dengan menekan tombol ”MD LAIN”.

Gambar 4.12. Form enkripsi message digest

Apabila tombol ”LIHAT PROSES” ditekan, seluruh proses yang

dijalankan seperti kode ascii message digest, blok enkripsi, banyak

blok, lebar blok, dan huruf chipertext ditampilkan. Selanjutnya sidik

dijital disimpan sebelum dikirimkan kepada penerima.

Gambar 4.13. Sidik dijital hasil dari enkripsi message digest

Dari proses yang berlangsung dapat diketahui nilai dari message

digest, kunci dekripsi dan enkripsi, dan sidik dijital yang diperoleh dari

aplikasi sama dengan sidik dijital yang diperoleh secara teori.

Page 56: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

Kunci Dekripsi

Ya Tidak

4.4.3. Pembuatan Aplikasi Untuk Penerima

Pada aplikasi verifikasi sidik dijital, terdapat tiga proses yang

berlangsung, yaitu proses pembuatan message digest, proses dekripsi sidik

dijital, dan proses verifikasi. Alur proses yang berlangsung pada aplikasi

verifikasi sidik dijital ditunjukkan pada Gambar 4.14.

Gambar 4.14. Alur sistem verifikasi sidik dijital

Mulai

MembuatMessage Digest

Message Digest

Dekripsi

Data Sah

Memasukkan Data Memasukkan Sidik Dijital

Plaintext

Selesai

Plaintext = Message Digest

Data Tidak Sah

Page 57: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

Berikut diberikan pseudocode (algoritma) beserta penjelasan pada

masing-masing proses yang berlangsung.

1. Proses pembuatan message digest

Pseudocode pembuatan message digest pada aplikasi verifikasi sidik

dijital sama dengan pseudocode pembuatan message digest pada

aplikasi pembuatan sidik dijital.

2. Proses dekripsi sidik dijital//Mendefinisikan variabelvar ascii_md,sidikdijital,messagedigest,hasildekrip:string; n,e:int64;//Mencari deret nilai ascii message digestascii_md:='';for i:=1 to length(messagedigest) do begin hargaascii[i]:=ord(messagedigest[i]); ascii_md:=concat(ascii_md,inttostr(hargaascii[i])); end;//Tahap Dekripsihasildekripsi:=’’;for i:=1 to length(sidikdijital) dobeginplaintext[i]:=dekripsi(strtoint(sidikdijital[i]),e,n);hasildekrip:=concat(hasildekrip,inttostr(plaintext[i]));end;

3. Proses verifikasi sidik dijital//Mendefinisikan variabelvar ascii_md,hasildekrip,verifikasi:string;//Tahap verifikasiif ascii_md = hasildekrip then verifikasi:=TRUE else verifikasi:=FALSE;

Page 58: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

4.4.4. Pengujian Aplikasi Untuk Penerima

Dalam subbab ini dilakukan pengujian terhadap aplikasi untuk

penerima yang meliputi : proses pembuatan message digest, proses dekripsi

sidik dijital, dan proses verifikasi sidik dijital. Ketika aplikasi dijalankan,

terlebih dahulu muncul user guide seperti ditunjukkan pada Gambar 4.15.

Gambar 4.15. Form petunjuk pemakaian aplikasi

Berikut ini diberikan contoh pengujian terhadap masing-masing proses.

1. Proses pembuatan message digest

Misal dimasukkan file regristrasi.txt, kemudian tombol ”DIGEST”

ditekan dihasilkan message digest dari data yang dimasukkan tersebut.

2. Proses dekripsi sidik dijital

Pada proses ini kunci dekripsi dan sidik dijital yang telah diterima

dimasukkan, kemudian tombol ”VERIFIKASI” ditekan untuk

mendapatkan plaintext dari sidik dijital.

3. Proses verifikasi sidik dijital

Pada proses ini message digest yang didapat pada proses 1 disamakan

dengan hasil dekripsi sidik dijital pada proses 2. Ternyata message

digest dari file regristrasi.txt sama dengan hasil dekripsi dari sidik

Page 59: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

dijitalnya, muncul tampilan form seperti ditunjukkan pada Gambar

4.16. Tetapi ketika isi dari file regristrasi.txt diubah, muncul tampilan

form seperti ditunjukkan pada Gambar 4.17.

Gambar 4.16. Tampilan form verifikasi sidik dijital ketika data sah

Gambar 4.17. Tampilan form verifikasi sidik dijital ketika data tidak sah

Page 60: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

Dari proses yang berlangsung dapat diketahui nilai dari message

digest, dan hasil dekripsi sidik dijital yang diperoleh dari aplikasi sama dengan

yang diperoleh secara teori.

4.5. Analisis Kelebihan dan Kelemahan Pembuatan Sidik Dijital Dengan

Menggunakan Fungsi Hash MD5 dan Algoritma RSA

Pada subbab ini dibahas mengenai kekuatan dan kelemahan pembuatan

sidik dijital dengan menggunakan fungsi hash MD5 dan algoritma RSA baik

secara teori maupun aplikasi yang telah dibuat.

Kelebihan sidik dijital yang dibuat oleh fungsi hash MD5 adalah

jaminan bahwa file yang diterima belum terdapat perubahan. Hal ini

dikarenakan untuk setiap message digest (h) yang dihasilkan, tidak mungkin

dikembalikan menjadi plaintext (x) sedemikian sehingga

H(x) = h.

Oleh karena itu, MD5 juga dapat memberikan perlindungan terhadap virus

komputer yang terdapat pada file yang diterima. Kemudian algoritma RSA

mempunyai kelebihan yang terletak pada sulitnya memfaktorkan bilangan

besar menjadi faktor-faktor prima (Munir, 2004). Menurut Stinson (1995),

agar algoritma RSA lebih aman kunci yang dimasukkan sebaiknya lebih dari

100 dijit atau sekitar 512 bit. Selain itu, dua buah kunci yang dibuat sebaiknya

tidak berpola (acak) untuk menyulitkan seorang Cryptanalyst dalam

memecahkan sandi.

Kelemahan dari pembuatan sidik dijital dengan fungsi hash MD5 dan

algoritma RSA adalah adanya kemungkinan diperoleh message digest yang

sama dari data yang berbeda. Hal ini dapat terjadi karena terdapat bilangan

yang terbatas pada keluaran MD5 (2128), tetapi terdapat bilangan yang tak

terbatas sebagai masukannya. Tetapi perlu diketahui menemukan hash yang

sama dari dua data yang berbeda adalah hal yang sulit. Sedangkan algoritma

RSA mempunyai masalah apabila metode faktorisasi yang cepat telah

dikembangkan. Meskipun banyak metode dari Cryptanalyst untuk

memecahkan sandi dari algoritma RSA, tetapi selama ini belum ditemukan

Page 61: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

adanya metode yang lebih mudah selain dengan memfaktorkan kunci publik.

Oleh karena itu, untuk menjaga agar algoritma RSA tetap aman, cara yang

terbaik selain membuat kunci dengan bilangan yang sangat besar (karena

dengan kunci yang sangat besar menyebabkan proses enkripsi dan dekripsi

menjadi lebih lama) adalah menjaga distribusi kunci publik agar tidak jatuh

kepada orang-orang yang tidak berhak.

Dari aplikasi yang telah dibuat dapat diketahui bahwa aplikasi tersebut

mempunyai kelebihan sebagai berikut.

1. Hasil yang diperoleh aplikasi sama dengan hasil yang diperoleh secara

teori, sehingga aplikasi tersebut layak untuk digunakan sebagai

software pembuat sidik dijital dan verifikasinya.

2. Aplikasi tersebut dibuat dengan menggunakan Borland Delphi 7 yang

bersifat user friendly, sehingga mudah digunakan. Kemudian tampilan

form pada aplikasi tersebut didesain dengan Coreldraw 12, sehingga

terlihat menarik.

Sedangkan kelemahan dari aplikasi tersebut adalah kunci yang

dimasukkan dibatasi sebesar 32 bit. Hal ini disebabkan kemampuan dari

Delphi 7 yang hanya mempunyai kemampuan perhitungan maksimal sebesar

64 bit. Hal ini dijelaskan sebagai berikut. Diambil contoh pada proses

enkripsi. Pada proses ini dilakukan operasi matematika ba mod r, nilai

maksimal dari a adalah r-1 dan nilai minimal dari b adalah 2, sehingga ba mod

r dapat dituliskan sebagai berikut.

(r-1) 2 < r 2 < 2 64

(r-1) < 2 32

r < 2 32 +1

Oleh karena itu, apabila nilai kunci yang dimasukkan lebih dari 32 bit +1,

maka hasil perhitungan dari aplikasi tidak sesuai dengan yang diharapkan.

Page 62: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

BAB V

PENUTUP

5.1. Kesimpulan

Berdasarkan pembahasan, diperoleh kesimpulan sebagai berikut.

1. Fungsi hash MD5 dan algoritma RSA membuat sidik dijital

dengan cara algoritma RSA mengenkripsikan message digest

yang dibuat oleh fungsi hash MD5.

2. Untuk membuktikan keabsahan data, sidik dijital dari pengirim

didekripsikan menggunakan kunci publik. Setelah itu data yang

diterima diubah menjadi message digest menggunakan fungsi

hash MD5. Apabila hasil dekripsi sidik dijitalnya sama dengan

message digest dari data yang diterima, data masih asli dan

dikirim oleh pengirim yang benar.

3. Setelah diadakan pengujian dan analisa, baik secara teori

maupun dari aplikasi, fungsi hash MD5 dan algoritma RSA

mampu membuat sidik dijital yang dapat digunakan untuk

menjaga keabsahan data.

5.2. Saran

Pada penelitian ini sidik dijital yang dihasilkan berformat .txt.

Selanjutnya dapat dikembangkan sidik dijital yang berformat .mp3, .dat, dan

sebagainya.

Page 63: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

DAFTAR PUSTAKA

Budiyono, A. (2004). Enkripsi Data Kunci Simetri dengan Algoritma Kriptografi LOKI97. Program Magister Teknologi Informasi Departemen Elektro Institut Teknologi Bandung, Bandung.

Fichtner, M. (1997). The MD5 Message-Digest Algorithm. http://www.fichtner.net/delphi/md5.delphi.phtml

Munir, R. (2004). Bahan Kuliah Kriptografi : Pengantar Kriptografi. Departemen Teknik Informatika, Institut Teknologi Bandung, Bandung.

Nursanto, J. (2003). Tugas Akhir Kuliah Keamanan Jaringan Informasi : Tinjauan Mengenai Aplikasi Metode Montgomery Multiflication-Chinese Remainder Theorem (Crt) dalam Mempercepat Deskripsi RSA. Program Magister Teknologi Elektro Institut Teknologi Bandung, Bandung.

Rahayu, F. S. (2005). Suplemen Bahan Ajar Mata Kuliah Proteksi dan Teknik Keamanan Sistem Informasi. Magister Teknologi Informasi Universitas Indonesia, Jakarta.

Stinson, D. (1995). Cryptography. Computer Science and Engineering Departement, University of Nebraska, Lincoln.

Sukaridhoto, S. Dkk. (2005). Teknik Keamanan pada VoIP dengan Virtual Private Networking dan Kriptografi Serta Korelasi Terhadap Bandwidth dan Intelligibility Suara. Institut Teknologi Sepuluh Nopember (ITS), Surabaya.

Susanto, Budi. (2004). Keamanan Jaringan. http://lecturer.ukdw.ac.id/budsus/

Wibowo, A. (2004). Digital Security. Universitas Indonesia, Jakarta.

Page 64: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

LAMPIRAN

• Fungsi dan prosedur yang digunakan dalam aplikasi

• Source code fungsi hash MD5

(dari www.fichtner.net/delphi/md5.delphi.phtml)

• Source code aplikasi pembuatan sidik dijital

• Source code aplikasi verifikasi sidik dijital

Page 65: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

FUNGSI DAN PROSEDUR YANG DIGUNAKAN

DALAM APLIKASI

//FUNGSI UNTUK MENGECEK BILANGAN PRIMAFunction cekprime(bil:int64):boolean;var bil1:int64; i:longint; cek:boolean;begin if (bil<=1) then cek:=false else if (bil=2)or(bil=3) then cek:=true else begin for i:=2 to (bil div 2) do begin bil1:=bil mod i; if bil1=0 then cek:=false; end; end;if cek=false then cekprime:=false else cekprime:=true;end;

//FUNGSI UNTUK MENCARI FAKTOR PERSEKUTUAN TERBESARFunction fpb(ei,phei:int64):int64; var temp1,temp2,hasil:int64;begin if ei=phei then hasil:=0 else if(ei>phei)then begin while(ei mod phei <> 0) do begin temp1:=ei mod phei; ei:=phei; phei:=temp1; end; hasil:=phei; end else begin

Page 66: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

while(phei mod ei <> 0)do begin temp2:=phei mod ei; phei:=ei; ei:=temp2; end; hasil:=ei; end;fpb:=hasil;end;

//FUNGSI UNTUK MENCARI NILAI E(KUNCI PUBLIK/DEKRIPSI)Function carie(phei:int64):int64;var hasil,ei:int64;beginhasil:=0;ei:=2; while (hasil<>1) do begin ei:=ei+1; hasil:=fpb(ei,phei); end;carie:=ei;end;

//FUNGSI UNTUK MENCARI NILAI ENKRIPSIFunction enkripsi(nilaix:integer;SK,en:int64):int64;var sum:int64; i:longint;beginsum:=1;for i:=1 to SK do begin if sum=0 then sum:=1; sum:=(nilaix*sum)mod en; end;enkripsi:=sum;end;

//FUNGSI UNTUK MENCARI MESSAGE DIGESTFunction LogEntry(Cmd, Msg: string; Dig: MD5Digest): string;begin

Result := Format('%s(''%s'') =' + #13#10 + ' %s', [Cmd, Msg, MD5Print(Dig)]);end;

//PROSEDUR UNTUK MENAMPILKAN MESSAGE DIGESTProcedure TForm1.Button6Click(Sender: TObject);

Page 67: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

var mesdig:string;begin

Screen.Cursor := crHourGlass; display.Text:=''; with Display.Lines do begin

if Count > 0 then Add(''); Add(LogEntry('MD5File',pesan.Text,MD5File(pesan.Text)));

end;Screen.Cursor := crDefault;

mesdig:=display.text; edit3.text:=copy(mesdig,length(mesdig)-33,32);end;

//PROSEDUR MEMBANGKITKAN NILAI E (KUNCI DEKRIPSI/PUBLIK)Procedure TForm1.Button9Click(Sender: TObject);begine:=carie(phi);kuncie.Text:=inttostr(e);memo6.Lines.Add('E = '+inttostr(E));end;

//PROSEDUR UNTUK MEMBUAT KUNCI BILANGAN PRIMA ACAKProcedure TForm1.Button7Click(Sender: TObject);var acak81,acak82:array[0..1]of integer; acak161,acak162:array[0..3]of integer; acak241,acak242:array[0..5]of integer; acak321,acak322,acak322n:array[0..5]of integer; pilihan1,pilihan2:word;beginacak81[0]:=5;acak81[1]:=7;acak82[0]:=29;acak82[1]:=31;acak161[0]:=1453;acak161[1]:=1451;acak161[2]:=1459;acak161[3]:=1483;acak162[0]:=31;acak162[1]:=29;acak162[2]:=23;acak162[3]:=37;acak241[0]:=2137;acak241[1]:=2131;acak241[2]:=2129;acak241[3]:=2113;acak241[4]:=2111;acak241[5]:=2099;acak242[0]:=6997;acak242[1]:=6917;acak242[2]:=6947;acak242[3]:=6949;acak242[4]:=6907;acak242[5]:=6899;acak322n[0]:=15485863;acak322n[1]:=15485857;acak322n[2]:=13833997;acak322n[3]:=13012171;acak322n[4]:=11381507;acak322n[5]:=11868929;acak321[0]:=27449;acak321[1]:=27457;acak321[2]:=27479;acak321[3]:=27481;acak321[4]:=27509;acak321[5]:=22433;acak322[0]:=22447;acak322[1]:=22381;acak322[2]:=22391;acak322[3]:=22397;acak322[4]:=22433;acak322[5]:=22409; Case combobox1.itemindex of0:begin pilihan1:=random(2); if pilihan1=0 then begin

Page 68: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

pilihan1:=random(2); p:=acak81[pilihan1]; pilihan2:=random(2); q:=acak82[pilihan2]; pe.text:=inttostr(p); qi.text:=inttostr(q); end else begin pilihan1:=random(2); p:=acak82[pilihan1]; pilihan2:=random(2); q:=acak81[pilihan2]; pe.text:=inttostr(p); qi.text:=inttostr(q); end; end;1:begin pilihan1:=random(2); if pilihan1=0 then begin pilihan1:=random(3); p:=acak161[pilihan1]; pe.text:=inttostr(p); pilihan2:=random(3); q:=acak162[pilihan2]; qi.Text:=inttostr(q); end else begin pilihan1:=random(3); p:=acak162[pilihan1]; pe.text:=inttostr(p); pilihan2:=random(3); q:=acak161[pilihan2]; qi.Text:=inttostr(q); end; end;2:begin pilihan1:=random(2); if pilihan1=0 then begin pilihan1:=random(6); p:=acak241[pilihan1]; pe.text:=inttostr(p); pilihan2:=random(6); q:=acak242[pilihan2]; qi.Text:=inttostr(q); end else begin

Page 69: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

pilihan1:=random(6); p:=acak242[pilihan1]; pe.text:=inttostr(p); pilihan2:=random(6); q:=acak241[pilihan2]; qi.Text:=inttostr(q); end; end;3:begin pilihan1:=random(2); if pilihan1=0 then begin pilihan1:=random(6); p:=acak321[pilihan1]; pe.text:=inttostr(p); pilihan2:=random(6); q:=acak322[pilihan2]; qi.Text:=inttostr(q); end else begin pilihan1:=random(4); p:=acak162[pilihan1]; pe.text:=inttostr(p); pilihan2:=random(6); q:=acak322n[pilihan2]; qi.Text:=inttostr(q); end; end; end;end;

//FUNGSI UNTUK MENCARI NILAI DEKRIPSIFunction DEKRIP(nilaiS,PK,en:int64):int64;var sum:int64; i:longint;beginsum:=1;for i:=1 to PK do begin if sum=0 then sum:=1; sum:=(nilaiS*sum)mod en; end;DEKRIP:=sum;end;

Page 70: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

SOURCE CODE FUNGSI HASH MD5//MD5 Message-Digest for Delphi 4//Delphi 4 Unit implementing the//RSA Data Security, Inc. MD5 Message-Digest Algorithm//Implementation of Ronald L. Rivest's RFC 1321//Copyright © 1997-1999 Medienagentur Fichtner & Meyer//Written by Matthias Fichtner//See RFC 1321 for RSA Data Security's copyright and license notice!//14-Jun-97 mf Implemented MD5 according to RFC 1321 RFC 1321//16-Jun-97 mf Initial release of the compiled unit (no source code) RFC 1321//28-Feb-99 mf Added MD5Match function for comparing two digests RFC 1321//13-Sep-99 mf Reworked the entire unit RFC 1321//17-Sep-99 mf Reworked the "Test Driver" project RFC 1321//19-Sep-99 mf Release of sources for MD5 unit and "Test Driver" project RFC 1321

unit md5;

usesWindows;

typeMD5Count = array[0..1] of DWORD;MD5State = array[0..3] of DWORD;MD5Block = array[0..15] of DWORD;MD5CBits = array[0..7] of byte;MD5Digest = array[0..15] of byte;MD5Buffer = array[0..63] of byte;MD5Context = record

State: MD5State;Count: MD5Count;Buffer: MD5Buffer;

end;

procedure MD5Init(var Context: MD5Context);procedure MD5Update(var Context: MD5Context; Input: pChar; Length: longword);procedure MD5Final(var Context: MD5Context; var Digest: MD5Digest);

function MD5String(M: string): MD5Digest;

Page 71: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

function MD5File(N: string): MD5Digest;function MD5Print(D: MD5Digest): string;

function MD5Match(D1, D2: MD5Digest): boolean;

// -----------------------------------------------------------------------------------------------IMPLEMENTATION// -----------------------------------------------------------------------------------------------

varPADDING: MD5Buffer = (

$80, $00, $00, $00, $00, $00, $00, $00,$00, $00, $00, $00, $00, $00, $00, $00,$00, $00, $00, $00, $00, $00, $00, $00,$00, $00, $00, $00, $00, $00, $00, $00,$00, $00, $00, $00, $00, $00, $00, $00,$00, $00, $00, $00, $00, $00, $00, $00,$00, $00, $00, $00, $00, $00, $00, $00,$00, $00, $00, $00, $00, $00, $00, $00

);

function F(x, y, z: DWORD): DWORD;begin

Result := (x and y) or ((not x) and z);end;

function G(x, y, z: DWORD): DWORD;begin

Result := (x and z) or (y and (not z));end;

function H(x, y, z: DWORD): DWORD;begin

Result := x xor y xor z;end;

function I(x, y, z: DWORD): DWORD;begin

Result := y xor (x or (not z));end;

procedure rot(var x: DWORD; n: BYTE);begin

x := (x shl n) or (x shr (32 - n));end;

Page 72: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

procedure FF(var a: DWORD; b, c, d, x: DWORD; s: BYTE; ac: DWORD);begin

inc(a, F(b, c, d) + x + ac);rot(a, s);inc(a, b);

end;

procedure GG(var a: DWORD; b, c, d, x: DWORD; s: BYTE; ac: DWORD);begin

inc(a, G(b, c, d) + x + ac);rot(a, s);inc(a, b);

end;

procedure HH(var a: DWORD; b, c, d, x: DWORD; s: BYTE; ac: DWORD);begin

inc(a, H(b, c, d) + x + ac);rot(a, s);inc(a, b);

end;

procedure II(var a: DWORD; b, c, d, x: DWORD; s: BYTE; ac: DWORD);begin

inc(a, I(b, c, d) + x + ac);rot(a, s);inc(a, b);

end;

// -----------------------------------------------------------------------------------------------

// Encode Count bytes at Source into (Count / 4) DWORDs at Targetprocedure Encode(Source, Target: pointer; Count: longword);var

S: PByte;T: PDWORD;I: longword;

beginS := Source;T := Target;for I := 1 to Count div 4 do begin

T^ := S^;inc(S);T^ := T^ or (S^ shl 8);inc(S);

Page 73: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

T^ := T^ or (S^ shl 16);inc(S);T^ := T^ or (S^ shl 24);inc(S);inc(T);

end;end;

// Decode Count DWORDs at Source into (Count * 4) Bytes at Targetprocedure Decode(Source, Target: pointer; Count: longword);var

S: PDWORD;T: PByte;I: longword;

beginS := Source;T := Target;for I := 1 to Count do begin

T^ := S^ and $ff;inc(T);T^ := (S^ shr 8) and $ff;inc(T);T^ := (S^ shr 16) and $ff;inc(T);T^ := (S^ shr 24) and $ff;inc(T);inc(S);

end;end;

// Transform State according to first 64 bytes at Bufferprocedure Transform(Buffer: pointer; var State: MD5State);var

a, b, c, d: DWORD;Block: MD5Block;

beginEncode(Buffer, @Block, 64);a := State[0];b := State[1];c := State[2];d := State[3];FF (a, b, c, d, Block[ 0], 7, $d76aa478);FF (d, a, b, c, Block[ 1], 12, $e8c7b756);FF (c, d, a, b, Block[ 2], 17, $242070db);FF (b, c, d, a, Block[ 3], 22, $c1bdceee);FF (a, b, c, d, Block[ 4], 7, $f57c0faf);FF (d, a, b, c, Block[ 5], 12, $4787c62a);FF (c, d, a, b, Block[ 6], 17, $a8304613);FF (b, c, d, a, Block[ 7], 22, $fd469501);FF (a, b, c, d, Block[ 8], 7, $698098d8);

Page 74: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

FF (d, a, b, c, Block[ 9], 12, $8b44f7af);FF (c, d, a, b, Block[10], 17, $ffff5bb1);FF (b, c, d, a, Block[11], 22, $895cd7be);FF (a, b, c, d, Block[12], 7, $6b901122);FF (d, a, b, c, Block[13], 12, $fd987193);FF (c, d, a, b, Block[14], 17, $a679438e);FF (b, c, d, a, Block[15], 22, $49b40821);GG (a, b, c, d, Block[ 1], 5, $f61e2562);GG (d, a, b, c, Block[ 6], 9, $c040b340);GG (c, d, a, b, Block[11], 14, $265e5a51);GG (b, c, d, a, Block[ 0], 20, $e9b6c7aa);GG (a, b, c, d, Block[ 5], 5, $d62f105d);GG (d, a, b, c, Block[10], 9, $2441453);GG (c, d, a, b, Block[15], 14, $d8a1e681);GG (b, c, d, a, Block[ 4], 20, $e7d3fbc8);GG (a, b, c, d, Block[ 9], 5, $21e1cde6);GG (d, a, b, c, Block[14], 9, $c33707d6);GG (c, d, a, b, Block[ 3], 14, $f4d50d87);GG (b, c, d, a, Block[ 8], 20, $455a14ed);GG (a, b, c, d, Block[13], 5, $a9e3e905);GG (d, a, b, c, Block[ 2], 9, $fcefa3f8);GG (c, d, a, b, Block[ 7], 14, $676f02d9);GG (b, c, d, a, Block[12], 20, $8d2a4c8a);HH (a, b, c, d, Block[ 5], 4, $fffa3942);HH (d, a, b, c, Block[ 8], 11, $8771f681);HH (c, d, a, b, Block[11], 16, $6d9d6122);HH (b, c, d, a, Block[14], 23, $fde5380c);HH (a, b, c, d, Block[ 1], 4, $a4beea44);HH (d, a, b, c, Block[ 4], 11, $4bdecfa9);HH (c, d, a, b, Block[ 7], 16, $f6bb4b60);HH (b, c, d, a, Block[10], 23, $bebfbc70);HH (a, b, c, d, Block[13], 4, $289b7ec6);HH (d, a, b, c, Block[ 0], 11, $eaa127fa);HH (c, d, a, b, Block[ 3], 16, $d4ef3085);HH (b, c, d, a, Block[ 6], 23, $4881d05);HH (a, b, c, d, Block[ 9], 4, $d9d4d039);HH (d, a, b, c, Block[12], 11, $e6db99e5);HH (c, d, a, b, Block[15], 16, $1fa27cf8);HH (b, c, d, a, Block[ 2], 23, $c4ac5665);II (a, b, c, d, Block[ 0], 6, $f4292244);II (d, a, b, c, Block[ 7], 10, $432aff97);II (c, d, a, b, Block[14], 15, $ab9423a7);II (b, c, d, a, Block[ 5], 21, $fc93a039);II (a, b, c, d, Block[12], 6, $655b59c3);II (d, a, b, c, Block[ 3], 10, $8f0ccc92);II (c, d, a, b, Block[10], 15, $ffeff47d);II (b, c, d, a, Block[ 1], 21, $85845dd1);II (a, b, c, d, Block[ 8], 6, $6fa87e4f);II (d, a, b, c, Block[15], 10, $fe2ce6e0);II (c, d, a, b, Block[ 6], 15, $a3014314);II (b, c, d, a, Block[13], 21, $4e0811a1);

Page 75: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

II (a, b, c, d, Block[ 4], 6, $f7537e82);II (d, a, b, c, Block[11], 10, $bd3af235);II (c, d, a, b, Block[ 2], 15, $2ad7d2bb);II (b, c, d, a, Block[ 9], 21, $eb86d391);inc(State[0], a);inc(State[1], b);inc(State[2], c);inc(State[3], d);

end;

// -----------------------------------------------------------------------------------------------

// Initialize given Contextprocedure MD5Init(var Context: MD5Context);begin

with Context do beginState[0] := $67452301;State[1] := $efcdab89;State[2] := $98badcfe;State[3] := $10325476;Count[0] := 0;Count[1] := 0;ZeroMemory(@Buffer, SizeOf(MD5Buffer));

end;end;

// Update given Context to include Length bytes of Inputprocedure MD5Update(var Context: MD5Context; Input: pChar; Length: longword);var

Index: longword;PartLen: longword;I: longword;

beginwith Context do begin

Index := (Count[0] shr 3) and $3f;inc(Count[0], Length shl 3);if Count[0] < (Length shl 3) then inc(Count[1]);inc(Count[1], Length shr 29);

end;PartLen := 64 - Index;if Length >= PartLen then begin

CopyMemory(@Context.Buffer[Index], Input, PartLen);

Transform(@Context.Buffer, Context.State);I := PartLen;while I + 63 < Length do begin

Transform(@Input[I], Context.State);inc(I, 64);

Page 76: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

end;Index := 0;

end else I := 0;CopyMemory(@Context.Buffer[Index], @Input[I], Length -

I);end;

// Finalize given Context, create Digest and zeroize Contextprocedure MD5Final(var Context: MD5Context; var Digest: MD5Digest);var

Bits: MD5CBits;Index: longword;PadLen: longword;

beginDecode(@Context.Count, @Bits, 2);Index := (Context.Count[0] shr 3) and $3f;if Index < 56 then PadLen := 56 - Index else PadLen :=

120 - Index;MD5Update(Context, @PADDING, PadLen);MD5Update(Context, @Bits, 8);Decode(@Context.State, @Digest, 4);ZeroMemory(@Context, SizeOf(MD5Context));

end;

// -----------------------------------------------------------------------------------------------

// Create digest of given Messagefunction MD5String(M: string): MD5Digest;var

Context: MD5Context;begin

MD5Init(Context);MD5Update(Context, pChar(M), length(M));MD5Final(Context, Result);

end;

// Create digest of file with given Namefunction MD5File(N: string): MD5Digest;var

FileHandle: THandle;MapHandle: THandle;ViewPointer: pointer;Context: MD5Context;

beginMD5Init(Context);FileHandle := CreateFile(pChar(N), GENERIC_READ,

FILE_SHARE_READ or FILE_SHARE_WRITE,

Page 77: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL or FILE_FLAG_SEQUENTIAL_SCAN, 0);

if FileHandle <> INVALID_HANDLE_VALUE then tryMapHandle := CreateFileMapping(FileHandle, nil,

PAGE_READONLY, 0, 0, nil);if MapHandle <> 0 then try

ViewPointer := MapViewOfFile(MapHandle, FILE_MAP_READ, 0, 0, 0);

if ViewPointer <> nil then tryMD5Update(Context, ViewPointer,

GetFileSize(FileHandle, nil));finally

UnmapViewOfFile(ViewPointer);end;

finallyCloseHandle(MapHandle);

end;finally

CloseHandle(FileHandle);end;MD5Final(Context, Result);

end;

// Create hex representation of given Digestfunction MD5Print(D: MD5Digest): string;var

I: byte;const

Digits: array[0..15] of char =('0', '1', '2', '3', '4', '5', '6', '7', '8',

'9', 'a', 'b', 'c', 'd', 'e', 'f');begin

Result := '';for I := 0 to 15 do Result := Result + Digits[(D[I]

shr 4) and $0f] + Digits[D[I] and $0f];end;

// -----------------------------------------------------------------------------------------------

// Compare two Digestsfunction MD5Match(D1, D2: MD5Digest): boolean;var

I: byte;begin

I := 0;Result := TRUE;while Result and (I < 16) do begin

Result := D1[I] = D2[I];inc(I);

Page 78: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

end;end;

end.

SOURCE CODE APLIKASI PEMBUATAN

SIDIK DIJITAL

unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Menus;type TForm1 = class(TForm) Image1: TImage; Label1: TLabel; Button1: TButton; Label2: TLabel; Button2: TButton; Button3: TButton; Label3: TLabel; Button4: TButton; Image2: TImage; PESAN: TEdit; DISPLAY: TMemo; Button5: TButton; Button6: TButton; Label4: TLabel; OpenDialog1: TOpenDialog; Label5: TLabel; ComboBox1: TComboBox; Button7: TButton; PE: TEdit; QI: TEdit; Button8: TButton; Label6: TLabel; Label7: TLabel; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label14: TLabel; Label11: TLabel;

Page 79: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

Label12: TLabel; KUNCIE: TEdit; Button9: TButton; Label13: TLabel; Button10: TButton; Button11: TButton; Label15: TLabel; Label16: TLabel; Label17: TLabel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Button12: TButton; Button13: TButton; Button14: TButton; Button15: TButton; Label18: TLabel; Label19: TLabel; Label20: TLabel; Memo1: TMemo; Memo2: TMemo; Memo3: TMemo; Memo4: TMemo; Label21: TLabel; Label22: TLabel; Label23: TLabel; Label24: TLabel; Label25: TLabel; Label26: TLabel; Memo5: TMemo; SaveDialog1: TSaveDialog; Memo6: TMemo; procedure Button4Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Button9Click(Sender: TObject); procedure Button10Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button13Click(Sender: TObject); procedure Button12Click(Sender: TObject); procedure Button15Click(Sender: TObject); procedure Button14Click(Sender: TObject); procedure Button11Click(Sender: TObject); private { Private declarations } public

Page 80: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

{ Public declarations } end;

var Form1: TForm1; p,q,phi,n,m,e,d:int64;implementation

{$R *.dfm}USES MD5;// MENGECEK BILANGAN PRIMA MASUKAN DARI USERProcedure TForm1.Button8Click(Sender: TObject);begin p:=strtoint64(pe.text); q:=strtoint64(qi.text); if (p*q)>=2147483649 then begin messagedlg('P dan Q yang dimasukkan terlalu besar!, ganti nilai P atau Q yang lebih kecil',mtinformation,[mbOK],0); pe.Text:=''; qi.Text:=''; end else if cekprime(p)=false then begin messagedlg('P bukan bilangan prima, masukkan P prima',mtinformation,[mbOK],0); pe.Text:=''; end else if cekprime(q)=false then begin messagedlg('Q bukan bilangan prima, masukkan Q prima',mtinformation,[mbOK],0); qi.Text:=''; end else if p=q then begin messagedlg('Anda disarankan untuk tidak memasukkan nilai P dan Q yang sama ',mtinformation,[mbOK],0); pe.Text:=''; qi.Text:=''; end else begin phi:=(p-1)*(q-1); n:=p*q; if n<=9 then

Page 81: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

begin messagedlg('P dan Q yang dimasukkan terlalu kecil!',mtinformation,[mbOK],0); label10.caption:=''; label11.caption:=''; end else begin label10.caption:=inttostr(n); label11.caption:=inttostr(phi); memo6.Lines.Add('N = '+inttostr(N)); end; end;end;

// MEMBUKTIKAN PHI RELATIF PRIMA// DENGAN E MASUKAN DARI USER SEKALIGUS MENCARI// NILAI D-NYA (KUNCI ENKRIPSI/PRIBADI)Procedure TForm1.Button10Click(Sender: TObject);Procedure TForm1.Button10Click(Sender: TObject);begin e:=strtoint64(kuncie.Text); if e<=1 then messagedlg('e yang anda masukkan tidak tepat, cari e yang lain',mtinformation,[mbok],0) else if fpb(e,phi)=1 then begin m:=1; while ((1+m*phi)mod e)<>0 do m:=m+1; d:=(1+m*phi)div e; Label14.Caption:=inttostr(d); end else begin messagedlg('e yang anda masukkan tidak relatif prime dengan phi',mtinformation,[mbok],0); kuncie.text:=''; end;end;

//MEMASUKKAN MESSAGE DIGEST DARI SOFTWARE LAINProcedure TForm1.Button13Click(Sender: TObject);var md:string;beginif edit1.text='N' then n:=p*q else n:=strtoint64(edit1.text);if edit2.text='D' then D:=d else d:=strtoint64(edit2.text);

Page 82: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

md:=edit3.text;end;

// PEMBUATAN SIDIK DIJITALProcedure TForm1.Button12Click(Sender: TObject);var md,ascii,semua,SIDIKDIJITAL:string;jumlahhuruf,panjangn,lebarmax,lebarblok,mulai,banyakblok,lebarbaru:integer; i,j,panjang,tambah,jumlahangka,awal:longint; hargaascii:array[1..32] of integer; x,s1:array[1..96]of string; kirim:array[1..96]of string; x1:array[1..96]of integer; s:array[1..96]of int64; huruf:array[1..96]of char; karakter:array[1..96]of byte;

begin//MENCARI DERET NILAI ASCII md:=edit3.Text; panjang:=Length(md); memo1.Clear; memo2.clear; memo3.clear; memo4.clear; memo5.clear; ascii:=''; for i:=1 to panjang do begin hargaascii[i]:=ord(md[i]); memo1.lines.add(inttostr(hargaascii[i])); ascii:=concat(ascii,inttostr(hargaascii[i])); end;

//MENENTUKAN PANJANG BLOK panjangn:=length(inttostr(n)); lebarmax:=panjangn-1; if lebarmax =1 then lebarblok:=lebarmax else if lebarmax=2 then lebarblok:=lebarmax else lebarblok:=3;

//MENENTUKAN BANYAK BLOK if length(ascii) mod lebarblok<>0 then banyakblok:=(length(ascii)div lebarblok)+1 else banyakblok:=length(ascii)div lebarblok; Label24.caption:='banyak blok= '+inttostr(banyakblok)+', lebarblok= '+inttostr(lebarblok);

Page 83: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

// TAHAP ENKRIPSI mulai:=1; for i:=1 to banyakblok do begin x[i]:=copy(ascii,mulai,lebarblok); x1[i]:=strtoint(x[i]); s[i]:=enkripsi(x1[i],d,n); s1[i]:=inttostr(s[i]); if odd(panjangn)=true then lebarbaru:=panjangn+1 else lebarbaru:=panjangn; tambah:=lebarbaru-length(s1[i]); for j:=1 to tambah do s1[i]:='0'+s1[i]; memo2.lines.add(s1[i]); mulai:=mulai+lebarblok; end;

//hasil enkripsi semua:=''; for i:=1 to banyakblok do semua:=concat(semua,s1[i]);

jumlahangka:=banyakblok*lebarbaru; jumlahhuruf:=jumlahangka div 2; Label25.caption:='banyaknya angka='+inttostr(jumlahangka);

awal:=1; SIDIKDIJITAL:=''; for i:=1 to jumlahhuruf do begin kirim[i]:=copy(semua,awal,2); if kirim[i]='00' then huruf[i]:='d' else if kirim[i]='13' then huruf[i]:='e' else begin karakter[i]:=strtoint(kirim[i]); huruf[i]:=chr(karakter[i]); end; memo3.lines.add(kirim[i]); memo4.lines.Add(huruf[i]); SIDIKDIJITAL:=concat(SIDIKDIJITAL,huruf[i]); awal:=awal+2; end;MEMO5.LINES.ADD(SIDIKDIJITAL);end;

Page 84: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

SOURCE CODE APLIKASI VERIFIKASI

SIDIK DIJITALunit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; Edit4: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Button3: TButton; Memo1: TMemo; Button4: TButton; Edit5: TEdit; Label6: TLabel; Label7: TLabel; OpenDialog1: TOpenDialog; Memo2: TMemo; Edit6: TEdit; Edit7: TEdit; Label8: TLabel; Label9: TLabel; Label10: TLabel; Button5: TButton; Button6: TButton; Image1: TImage; Button7: TButton; Image2: TImage; Memo3: TMemo; Label11: TLabel; memo4: TMemo;

Page 85: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

OpenDialog2: TOpenDialog; Button8: TButton; Edit3: TEdit; Label5: TLabel; procedure Button3Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button7Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button8Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1; MD,SD:String; E,N:INT64;implementation{$R *.dfm}USES MD5;

// VERIFIKASI SIDIK DIJITALProcedure TForm1.Button3Click(Sender: TObject);VAR I,J,PANJANGBLOK,PANJANGN,PANJANGTEXT,BANYAKBLOK,AWAL,LEBARMAX,LEBARBLOK,SISA,NAMBAH:INTEGER; ASCIIMD,HASILDEKRIP,TAMBAH:STRING; BLOK1,HASIL,PLAINTEXT2:ARRAY[1..100]OF STRING; PLAINTEXT1:ARRAY[1..100]OF INT64; BLOK2:ARRAY[1..100,1..10]OF CHAR; ASCII:ARRAY[1..100,1..100]OF STRING; NILAI:ARRAY[1..100,1..10] OF STRING;

beginE:=STRTOINT64(EDIT1.TEXT);N:=STRTOINT64(EDIT2.TEXT);SD:=MEMO4.Text;MD:=EDIT5.TEXT;Label6.Caption:='';

PANJANGN:=LENGTH(INTTOSTR(N));IF ODD(PANJANGN)=TRUE THEN PANJANGN:=PANJANGN+1;PANJANGBLOK:=PANJANGN DIV 2;PANJANGTEXT:=LENGTH(SD);

Page 86: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

BANYAKBLOK:=PANJANGTEXT DIV PANJANGBLOK;

//NILAI ASCII MESSAGE DIGESTLEBARMAX:=LENGTH(INTTOSTR(N))-1;IF LEBARMAX =1 THEN LEBARBLOK:=LEBARMAX ELSE IF LEBARMAX=2 THEN LEBARBLOK:=LEBARMAX ELSE LEBARBLOK:=3;ASCIIMD:='';FOR I:=1 TO LENGTH(MD) DO BEGIN ASCIIMD:=CONCAT(ASCIIMD,INTTOSTR(ORD(MD[I]))); END;SISA:=LENGTH(ASCIIMD) MOD LEBARBLOK;IF SISA<>0 THEN IF LEBARBLOK-SISA=1 THEN BEGIN TAMBAH:='0'+COPY(ASCIIMD,LENGTH(ASCIIMD)-SISA+1,LENGTH(ASCIIMD)); DELETE(ASCIIMD,LENGTH(ASCIIMD)-SISA+1,LENGTH(ASCIIMD)); ASCIIMD:=ASCIIMD+TAMBAH; END ELSE BEGIN TAMBAH:='00'+COPY(ASCIIMD,LENGTH(ASCIIMD)-SISA+1,LENGTH(ASCIIMD)); DELETE(ASCIIMD,LENGTH(ASCIIMD)-SISA+1,LENGTH(ASCIIMD)); ASCIIMD:=ASCIIMD+TAMBAH; END;EDIT6.TEXT:=ASCIIMD;

//DEKRIPSI SIDIK DIJITALAWAL:=1;HASILDEKRIP:='';FOR I:=1 TO BANYAKBLOK DO BEGIN BLOK1[I]:=COPY(SD,AWAL,PANJANGBLOK); HASIL[I]:=''; FOR J:=1 TO PANJANGBLOK DO BEGIN BLOK2[I,J]:=BLOK1[I][J]; IF BLOK2[I,J]='d' THEN ASCII[I,J]:='00' ELSE IF BLOK2[I,J]='e' THEN ASCII[I,J]:='13' ELSE ASCII[I,J]:=INTTOSTR(ORD(BLOK2[I,J])); IF LENGTH(ASCII[I,J])=1 THEN NILAI[I,J]:='0'+ASCII[I,J] ELSE NILAI[I,J]:=ASCII[I,J]; HASIL[I]:=CONCAT(HASIL[I],NILAI[I,J]); END; MEMO3.LINES.ADD(HASIL[I]); PLAINTEXT1[I]:=DEKRIP(STRTOINT64(HASIL[I]),E,N); PLAINTEXT2[I]:=INTTOSTR(PLAINTEXT1[I]);

Page 87: APLIKASI KYLIX UNTUK PEMBUATAN SIDIK ... - Digital …/APLIKASI... · of digital signature decryption must be equal to message digest from data ... informasi adalah dengan algoritma

IF LENGTH(PLAINTEXT2[I])<>LEBARBLOK THEN BEGIN NAMBAH:=LEBARBLOK-LENGTH(PLAINTEXT2[I]); IF NAMBAH=1 THEN PLAINTEXT2[I]:=CONCAT('0',PLAINTEXT2[I]) ELSE PLAINTEXT2[I]:=CONCAT('00',PLAINTEXT2[I]); END; MEMO2.LINES.ADD(PLAINTEXT2[I]); HASILDEKRIP:=CONCAT(HASILDEKRIP,PLAINTEXT2[I]); AWAL:=AWAL+PANJANGBLOK; END;EDIT7.Text:=HASILDEKRIP;IF HASILDEKRIP=ASCIIMD THENLaBEL6.CAPTION:='HASIL VERIFIKASI MENYATAKAN BAHWA DATA MASIH ASLI'ELSEmessagedlg('Hasil dekripsi sidik dijitalnya tidak sama dengan Messae Digest Pesan, Data tidak valid!',mtinformation,[mbOK],0);end;