Implementasi Zero Knowledge Proof Dengan Protokol Feige Fiat Shamir Dan quadratic Linear Congruential Generator
IMPLEMENTASI ZERO KNOWLEDGE PROOF DENGAN FEIGE FIAT SHAMIR DAN QUADRATIC LINEAR CONGRUENTIAL GENERATOR SKRIPSI TIAN NOVITA SITUNGKIR 091401041 PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN 2013
IMPLEMENTASI ZERO KNOWLEDGE PROOF DENGAN FEIGE FIAT SHAMIR DAN QUADRATIC LINEAR CONGRUENTIAL GENERATOR
SKRIPSI Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana
Komputer TIAN NOVITA SITUNGKIR
091401041 PROGRAM STUDI S1 ILMU KOMPUTER FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA MEDAN
2013
PERSETUJUAN
Judul : IMPLEMENTASI ZERO KNOWLEDGE PROOF DENGAN PROTOKOL FEIGE FIAT SHAMIR DANQUADRATIC LINEAR CONGRUENTIAL GENERATOR .
Kategori : SKRIPSI Nama : TIAN NOVITA SITUNGKIR Nomor Induk Mahasiswa : 091401041 Program Studi : SARJANA (S1) ILMU KOMPUTER Departemen : ILMU KOMPUTER Fakultas : FAKULTAS ILMU KOMPUTER
DAN TEKNOLOGI INFORMASI (FASILKOM-TI) UNIVERSITAS SUMATERA UTARA
Diluluskan di Medan, Oktober 2013
Komisi Pembimbing : Pembimbing 2 Pembimbing 1 M. Andri Budiman, S.T., M.Comp Dian Rachmawati, S.Si., M.Kom NIP.
NIP.198307232009122004 Diketahui/Disetujui oleh Program Studi S1 Ilmu Komputer Ketua, Dr. Poltak Sihombing, M.Kom NIP. 196203171991031001
PERNYATAAN
IMPLEMENTASI ZERO KNOWLEDGE PROOF DENGAN PROTOKOL FEIGE FIAT SHAMIR DAN QUADRATIC LINEAR CONGRUENTIAL SKRIPSI Saya menyatakan bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Medan, September 2013 Tian Novita Situngkir 091401041
PENGHARGAAN
Segala puji dan syukur Penulis ucapkan kepada Tuhan Yesus Kristus yang senantiasa melimpahkan rahmat dan karunia-Nya sehingga skripsi ini dapat diselesaikan.
Ucapan terima kasih Penulis sampaikan kepada semua pihak yang telah membantu Penulis dalam menyelesaikan skripsi ini baik secara langsung maupun tidak langsung, teristimewa untuk kedua orangtua terkasih, Ayahanda Suherman Situngkir dan Ibunda Lallu Parapat. Pada kesempatan ini penulis ingin mengucapkan terima kasih yang sebesar-besarnya kepada :
1. Bapak M. Andri Budiman, ST, M.Comp.Sc, MEM selaku Dosen Pembimbing I yang telah memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini.
2. Ibu Dian Rachmawati, S.Si, M.Kom selaku Dosen Pembimbing II yang telah memberikan bimbingan, saran dan masukan kepada penulis dalam pengerjaan skripsi ini.
3. Bapak Ade Candra, S. T., M. Kom Dosen Pembanding I yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
4. Bapak M. Fadly Syahputra, B. Sc., M. Sc. IT selaku Dosen Pembanding II yang telah memberikan kritik dan saran dalam penyempurnaan skripsi ini.
5. Bapak Dr. Poltak Sihombing, M.Kom selaku Ketua Program Studi Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
6. Ibu Maya Silvi Lydia, B.Sc, M.Sc selaku Sekretaris Program Studi Ilmu Komputer, Dekan dan Pembantu Dekan Fakultas Ilmu Komputer dan Teknologi Informasi, semua dosen dan semua pegawai di Program Studi S1 Ilmu Komputer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
7. Abang dan adik Penulis yang tersayang Rahmat Situngkir, Andi Situngkir, Amd., dan Ayu Situngkir.
8. Abang Angga Malau, S. Kom yang telah memberikan semangat dan menjadi teman diskusi penulis dalam menyelesaikan skripsi ini.
9. Teman-teman seperjuangan mahasiswa S1-Ilmu Komputer stambuk 2009 secara Tika Romauli Siregar, Fitri Rizki Khairani, Ismail Fata Lubis, Samuel Tarigan, Oshin Santa Monica, Silvya Dinata, yang telah memberikan semangat dan menjadi teman diskusi penulis dalam menyelesaikan skripsi ini.
10. Teman-teman Ikatan Mahasiswa Dairi (Sunny, Reno, Nurita, Ome, Astri, Nciho, Samson, Wanti).
11. Semua pihak yang terlibat langsung ataupun tidak langsung yang tidak dapat penulis ucapkan satu per satu yang telah membantu penyelesaian skripsi ini. Penulis menyadari bahwa skripsi ini masih terdapat kekurangan. Oleh karena itu, kepada pembaca agar kiranya memberikan kritik dan saran yang bersifat membangun demi kesempurnaan skripsi ini. Sehingga dapat bermanfaat bagi kita semuanya.
Medan, September 2013 Penulis, (Tian Novita Situngkir)
ABSTRAK
Sewaktu seseorang menerima atau mengirim pesan, terdapat tiga buah persoalan yang sangat penting, yaitu kerahasian, autentikasi, dan keutuhan. Kerahasian memberi garansi data tidak dapat dibaca oleh orang yang tidak berkepentingan. Autentikasi memberi garansi tentang keaslian data dan dengan siapa berhubungan. Keutuhan memberi garansi bahwa data tidak mengalami perubahan sewaktu perjalanan, dengan kata lain data yang dikirim adalah data yang diterima. Dalam pegiriman informasi dengan beberapa teknik kriptografi, kita membutuhkan suatu cara agar informasi yang ingin kita sampaikan dapat diterima dengan aman oleh orang yang memang berwenang mendapatkannya. Cara atau protokol ini dapat digunakan baik untuk pengiriman pesan ataupun pemberian autentikasi, termasuk juga tanda tangan pada sebuah dokumen. Autentikasi entitas atau identifikasi dirancang agar suatu pihak (verifier) mendapat jaminan bahwa identitas dari pihak lain (claimant) yang ingin berkomunikasi dengannya sesuai dengan apa yang dinyatakan, sehingga mencegah terjadinya peniruan identitas atau penyamaran. Salah satu identifikasi kuat yang dapat digunakan adalah Zero-knowledge Proofs, dimana pada protokol ini pesan yang akan dipertukarkan saat protokol berlangsung bukan informasi rahasia, melainkan pengetahuan tentang informasi rahasia tersebut dan dilakukan tanpa menyatakan apapun tentang informasi rahasia tersebut. Hal yang harus diperhatikan dalam protokol di atas adalah pemilihan dari masalah matematika dan transformasi random yang digunakan sehingga orang lain benar-benar tidak dapat memperoleh informasi apapun tentang masalah yang asli atau solusinya, bahkan setelah dilakukan iterasi protokol secara berulang-ulang, protokol dan transformasi random yang dapat digunakan untuk Zero Knowledge Proof ini yaitu Feige Fiat Shamir dan Qudratic
Linear Congruential Generator . Hasil penelitian menunjukkan bahwa hasil
autentikasi dengan menggunakan Feige Fiat Shamir dan gabungan antara Feige fiat
Shamir dan Quadratic Linear Congruential Generator tidak menunjukkan perbedaan
waktu yang signifikan, dan penggunaaan pembangkit bilangan acak Quadratic Linear
Congruential Generator menunjukkan bilangan acak yang dapat diprediksi urutan
kemunculannya sama seperti Linear Congruential Generator, sehingga Quadratic Linear Congruential Generator kurang tepat digunakan kriptografi. Kata kunci : Keamanan Data, Pembangkit Bilangan Acak, Zero Knowledge Proof, Feige Fiat Shamir, Quadratic Linear Congruential Generator.
DAFTAR ISI
Halaman Persetujuan ii
Pernyataan iii
Penghargaan iv
Abstrak vi
Abstract vii
Daftar Isi viii
Daftar Tabel xi
Daftar Gambar xiii
Daftar Lampiran xv
Bab 1 Pendahuluan
1
1.1 Latar Belakang Masalah
2
1.2 Rumusan Masalah
3
1.3 Batasan Masalah
3
1.4 Tujuan Penelitian
3
1.5 Manfaat Penelitian
3
1.6 Metodolgi Penelitian
4
1.7 Sistematika Penulisan
5 Bab 2 Landasan Teori
6
2.1 Kriptografi
7
2.1.1 Konsep Dasar kriptografi
7
2.1.2 Jenis Kriptografi
10
2.1.3 Protokol Kriptografi
11
2.2 Pembangkit Bilangan Acak (Cryptographcally-secure
Pseudo-RandomNumber Generator
13
2.3 Quadratic Linear Congruential Generator
14
2.4 Zero Knowledge Proof
15
2.5 Feige Fiat Shamir
17 Bab 3 Analisis dan Perancangan Sistem
22
3.1
22 Analisis Sistem
3.1.1 Analisis Masalah
22
3.1.2 Analisis Persyaratan
23
3.1.2.1 Persyaratan Fungsional
23
3.1.2.2 Persyaratan Non-Fungsional
24
3.1.3 Pemodelan Sistem dengan Usecase dan Activity Diagram
25
3.1.3.1 Usecase Generate Bilangan Prima p dan q
25
3.1.3.2 Usecase Generate Bilangan Acak r
26
3.1.3.3 Usecase Proses Autentikasi
27
3.1.4 Analisis Sistem Proses
28
3.1.5 Flowchart Sistem
31
3.1.5.1 Flowchart Gambaran Umum
31
3.1.5.2 Flowchart dan Pseudocode Proses Generate p dan q
32
3.1.5.3 Flowchart dan Pseudocode Pembangkit Bilangan Acak Metode Quadratic Linear
Congruential Generator (QLCG)
33
3.1.5.4 Flowchart dan pseudocode Proses Autentikasi (Identifikasi Skema) Feige Fiat Shamir (FFS)
34
3.1.6 Rancangan Antar Muka
36
3.1.6.1 Antar Muka Mainform
37
3.1.6.2 Anatr Muka Form Authenticationwith
FFS and QLCG
38
3.2
40 Tahapan Sistem
3.2.1 Tahapan Metode Fermat
40
3.2.2 Tahapan Metode Quadratic Linear Congruential
Generator (QLCG)
42
3.2.3 Tahapan Feige Fiat Shamir
50 Bab 4 Implementasi dan Pengujian
63
4.1 Implementasi Sistem
63
4.1.1 Tampilan Halaman Menu Utama
64
4.1.2 Tampilan Halaman Menu Authentication with FFS
and QLCG
65
4.1.3 Tampilan Halaman Menu About
67
4.1.4 Tampilan Halaman Menu Help
68
4.2 Pengujian Sistem
68
4.2.1 Pengujian Proses Generate p dan q
69
4.2.2 Pengujian Proses Result n
70
4.2.3 Pengujian Proses Random r
71
4.2.4 Pengujian Proses Tampilan Hasil Nilai x,
v, v-invers, dan s
72
4.2.5 Pengujian Proses Open File
74
4.2.6 Pengujian Proses Authentication
76
4.3 Analisis Hasil Pengujian Proses Quadratic Linear
Congruential Generator (QLCG)
78
4.4 Analisis Hasil Pengujian Proses FFS dan QLCG
92
4.5 Analisis Pebandingan Hasil Pengujian FFS dengan dan tanpa
QLCG
98 Bab 5 Kesimpulan dan Saran 100
5.1 Kesimpulan 100
5.2 Saran 101
Daftar Pustaka 102
DAFTAR TABEL
79 Tabel 4.2 Pengujian QLCG dengan m=16
55 Tabel 3.19 Hasil v-invers Percobaan III
56 Tabel 3.20 Lanjutan Hasil v-invers Percobaan III
57 Tabel 3.21 Hasil kunci private s Percobaan III
58 Tabel 3.22 Hasil v-invers Percobaan IV
59 Tabel 3.23 Lanjutan Hasil v-invers Percobaan IV
60 Tabel 3.24 Hasil kunci private s Percobaan IV
61 Tabel 4.1 Pengujian QLCG dengan m=8
80 Tabel 4.3 Pengujian QLCG dengan m=32
53 Tabel 3.17 LanjutanHasil v-invers Percobaan II
81 Tabel 4.4 Pengujian QLCG dengan m=64
82 Tabel 4.5 Lanjutan Pengujian QLCG dengan m=64
83 Tabel 4.6 Pengujian QLCG dengan m=128
84 Tabel 4.7 Lanjutan Pengujian QLCG dengan m=128
85 Tabel 4.8 Lanjutan Pengujian QLCG dengan m=128
86 Tabel 4.9 Lanjutan Pengujian QLCG dengan m=128
87 Tabel 4.10 Pengujian QLCG dengan m=256
88 Tabel 4.11 Lanjutan Pengujian QLCG dengan m=256
54 Tabel 3.18 Hasil kunci private 2 Percobaan II
52 Tabel 3.16 Hasil v-invers Percobaan II
Halaman
Tabel 3.6 Lanjutan Rincian Rancangan Form Authentication with FFSTabel 2.1 Contoh QLCG15 Tabel 2.2 Inversi (mod 35)
20 Tabel 3.1 Use Case Generate Bilangan Prima p dan q
25 Tabel 3.2 Use Case Generate Bilangan Acak
26 Tabel 3.3 Use Case Autentikasi
27 Tabel 3.4 Rincian Rancangan Form Utama
37 Tabel 3.5 Rincian Rancangan Form Authentication with FFS and QLCG 39
and QLCG
51 Tabel 3.15 Hasil kunci private s Percobaan I
40 Tabel 3.7 Tabel dengan nilai a = 7, b=24, c = 11, m = 16
43 Tabel 3.8 Hasil bilangan acak metode QLCG dengan nilai a= 29, b=31, c=49, m=256
44 Tabel 3.9 Hasil bilangan acak metode QLCG dengan nilai a= 124, b=637, c=381, m=256
45 Tabel 3.10 Lanjutan Hasil bilangan acak metode QLCG dengan nilai a= 124, b=637, c=381, m=256
46 Tabel 3.11 Hasil bilangan acak metode QLCG dengan nilai a= 124, b=637, c=381, m=256
47 Tabel 3.12 Lanjutan Hasil bilangan acak metode QLCG dengan nilai a= 124, b=637, c=381, m=256
48 Tabel 3.13 Hasil bilangan acak metode QLCG dengan nilai a= 96 , b=609, c=353, m=256
49 Tabel 3.14 Hasil v-invers Percobaan I
89
Tabel 4.12 Lanjutan Pengujian QLCG dengan m=25695 Tabel 4.22 Pengujian Running time FFS dan QLCG dengan n sebanyak 8 digit dan pengulangan (t) = 5
QLCG
98 Tabel 4.28 Lanjutan Perbandingan Hasil Pengujian Proses FFS dengan dan tanpa
97 Tabel 4.27 Perbandingan Hasil Pengujian Proses FFS dengan dan tanpa QLCG
97 Tabel 4.26 Pengujian Running time FFS dan QLCG dengan n sebanyak 10 digit dan pengulangan (t) = 5
96 Tabel 4.25 Pengujian Running time FFS dan QLCG dengan n sebanyak 9 digit dan pengulangan (t) = 30
96 Tabel 4.24 Pengujian Running time FFS dan QLCG dengan n sebanyak 9 digit dan pengulangan (t) = 5
95 Tabel 4.23 Pengujian Running time FFS dan QLCG dengan n sebanyak 8 digit dan pengulangan (t) = 30
95 Tabel 4.21 Pengujian Running time FFS dan QLCG dengan n sebanyak 7 digit dan pengulangan (t) = 30
90 Tabel 4.13 Lanjutan Pengujian QLCG dengan m=256
94 Tabel 4.20 Pengujian Running time FFS dan QLCG dengan n sebanyak 7 digit dan pengulangan (t) = 5
94 Tabel 4.19 Pengujian Running time FFS dan QLCG dengan n sebanyak 6 digit dan pengulangan (t) = 30
93 Tabel 4.18 Pengujian Running time FFS dan QLCG dengan n sebanyak 6 digit dan pengulangan (t) = 5
93 Tabel 4.17 Pengujian Running time FFS dan QLCG dengan n sebanyak 5 digit dan pengulangan (t) = 30
93 Tabel 4.16 Pengujian Running time FFS dan QLCG dengan n sebanyak 5 digit dan pengulangan (t) = 5
92 Tabel 4.15 Pengujian Running time FFS dan QLCG dengan n sebanyak 4 digit dan pengulangan (t) = 30
91 Tabel 4.14 Pengujian Running time FFS dan QLCG dengan n sebanyak 4 digit dan pengulangan (t) = 5
99
DAFTAR GAMBAR
69 Gambar 4.7 Tampilan Result n
37 Gambar 3.14 Rancangan Form Authenticationwith FFS and QLCG
38 Gambar 4.1 Tampilan Halaman Menu Utama
64 Gambar 4.2 Tampilan Submenu yang Terdapat Pada Menu File
65 Gambar 4.3 Tampilan Halaman Menu Authentication with FFS and QLCG 66
Gambar 4.4 Tampilan Halaman Menu About67 Gambar 4.5 Tampilan Halaman Menu Help
68 Gambar 4.6 Tampilan hasil Generate p dan q
70 Gambar 4.8 Tampilan MessageBox Result n
33 Gambar 3.12 Flowchart untuk Proses Autentikasi
71 Gambar 4.9 Tampilan proses Random
72 Gambar 4.10 Tampilan Hasil nilai x, v, v-invers dan s
73 Gambar 4.11 Tampilan MessageBox Hasil nilai x, v, v-invers dan s
74 Gambar 4.12 Tampilan Pop Up Window Open File
75 Gambar 4.13 Hasil Proses Open File
76 Gambar 4.14 Tampilan Proses Authentication
77 Gambar 4.15 MessageBox Tampilan Proses Authentication
35 Gambar 3.13 Rancangan Form Utama
32 Gambar 3.11 Flowchart untuk Proses QLCG
Halaman
17 Gambar 3.1 Diagram Ishikawa Masalah Penelitian
Gambar 2.1 Skema Enkripsi dan Dekripsi8 Gambar 2.2(a) Plaintext
9 Gambar 2.2(b) Citra Ciphertext
9 Gambar 2.3 Hubungan Kriptologi, kriptanalisis, dan kriptografi
9 Gambar 2.4 Kriptografi Simetri
10 Gambar 2.5 Skema kriptografi kunci asimetri
11 Gambar2.6 Ilustrasi Zero knowledge proof
23 Gambar 3.2 Use case Diagram yang akan Dikembangkan
31 Gambar 3.10 Flowchart untuk proses Generate p dan q
25 Gambar 3.3 Activity Diagram untuk Proses input p dan q
26 Gambar 3.4 Activity Diagram untuk Proses pemilihan bilangan acak
27 Gambar 3.5 Activity Diagram untuk Proses Autentikasi
28 Gambar 3.6 Sequence Diagram Proses Generate p dan q
29 Gambar 3.7 Sequence Diagram untuk Proses input bilangan acak
29 Gambar 3.8 Sequence Diagram untuk Proses identifikasi skema (autentikasi) FFS
30 Gambar 3.9 Gambaran Umum Sistem
78