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 QLCG

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

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

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

  8 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