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
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
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,
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
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.
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,
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.
DAFTAR ISI
2.2 Pembangkit Bilangan Acak (Cryptographcally-secure Pseudo-RandomNumber Generator 13
3.1.3.3 Usecase Proses Autentikasi 27 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 Tahapan Sistem 40
3.2.1 Tahapan Metode Fermat 40 3.2.2 Tahapan Metode QuadraticLinear 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
5.1 Kesimpulan 100
5.2 Saran 101
DAFTAR TABEL Tabel 3.5 Rincian Rancangan Form Authentication with FFS and QLCG 39 Tabel 3.6 Lanjutan Rincian Rancangan Form Authentication with FFS
and QLCG 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 51
Tabel 3.15 Hasil kunci private s Percobaan I 52
Tabel 3.16 Hasil v-invers Percobaan II 53
Tabel 3.17 LanjutanHasil v-invers Percobaan II 54 Tabel 3.18 Hasil kunci private 2 Percobaan II 55
Tabel 3.19 Hasil v-invers Percobaan III 56
Tabel 4.12 Lanjutan Pengujian QLCG dengan m=256 90 Tabel 4.13 Lanjutan Pengujian QLCG dengan m=256
91
Tabel 4.14 Pengujian Running time FFS dan QLCG dengan n sebanyak 4 digit
dan pengulangan (t) = 5 92
Tabel 4.15 Pengujian Running time FFS dan QLCG dengan n sebanyak 4 digit
dan pengulangan (t) = 30 93
Tabel 4.16 Pengujian Running time FFS dan QLCG dengan n sebanyak 5 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.18 Pengujian Running time FFS dan QLCG dengan n sebanyak 6 digit
dan pengulangan (t) = 5 94
Tabel 4.19 Pengujian Running time FFS dan QLCG dengan n sebanyak 6 digit
dan pengulangan (t) = 30 94
Tabel 4.20 Pengujian Running time FFS dan QLCG dengan n sebanyak 7 digit
dan pengulangan (t) = 5 95
Tabel 4.21 Pengujian Running time FFS dan QLCG dengan n sebanyak 7 digit
dan pengulangan (t) = 30 95
Tabel 4.22 Pengujian Running time FFS dan QLCG dengan n sebanyak 8 digit
dan pengulangan (t) = 5 95
Tabel 4.23 Pengujian Running time FFS dan QLCG dengan n sebanyak 8 digit
dan pengulangan (t) = 30 96
Tabel 4.24 Pengujian Running time FFS dan QLCG dengan n sebanyak 9 digit
dan pengulangan (t) = 5 96
Tabel 4.25 Pengujian Running time FFS dan QLCG dengan n sebanyak 9 digit
dan pengulangan (t) = 30 97
Tabel 4.26 Pengujian Running time FFS dan QLCG dengan n sebanyak 10 digit
dan pengulangan (t) = 5 97
Tabel 4.27 Perbandingan Hasil Pengujian Proses FFS dengan dan tanpa QLCG 98 Tabel 4.28 Lanjutan Perbandingan Hasil Pengujian Proses FFS dengan dan tanpa
DAFTAR GAMBAR
Gambar 2.5 Skema kriptografi kunci asimetri 11
Gambar2.6 Ilustrasi Zero knowledge proof 17 Gambar 3.8 Sequence Diagram untuk Proses identifikasi skema (autentikasi)
FFS 30
DAFTAR LAMPIRAN
Halaman
A. Listing Program A-1
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.
BAB I
PENDAHULUAN
1.1Latar Belakang
Sewaktu seseorang menerima atau mengirim pesan, terdapat tiga buah persoalan yang sangat penting, yaitu kerahasian, autentifikasi, dan keutuhan. Kerahasian memberi garansi data tidak dapat dibaca oleh orang yang tidak berkepentingan. Autentifikasi 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 autentifikasi, termasuk juga tanda tangan pada sebuah dokumen. Autentifikasi 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.
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, dan protokol yang dapat digunkan untuk zero knowledge proof ini yaitu feige fiat shamir.
Beberapa Penelitian yang telah dilakukan sebelumnya yang berkaitan dengan penelitian ini adalah penelitian yang dilakukan oleh Hanson Prihantoro Putro dengan judul “Percobaan Pemanfaatan Graf pada Protokol Kriptografi”, disimpulkan bahwa Pemanfaatan graf pada protokol kriptografi dapat menjadi alternatif bagi penggunaan protokol kriptografi yang telah digunakan saat ini, dengan dasar yang dimiliki Zero Knowledge Proof, bisa diaplikasikan pada protokol kriptografi yang sudah ada dengan beberapa kelebihan maupun kekurangannya. Penelitian lainnya yaitu penelitian yang dilakukan oleh Ronen Gradwohl dengan judul “Cryptographic and Physical Zero-Knowledge Proof Systems for Solutions of Sudoku Puzzles”, peneliti menganggap bahwa kriptografi dan skema Zero Knowledge Proof adalah kombinasi yang baik digunakanan dalam pemecahan permainan Sudoku.
Oleh karena itu, berdasarkan pertimbangan yang ada maka dalam penyusunan tugas akhir ini, penulis tertarik memilih judul “Implementasi Zero Knowledge proof dengan Protokol Feige Fiat Shamir dan Quadratic Linear Congruential Generator”.
1.2Rumusan Masalah
1.3Batasan Masalah
Agar tulisan ini tidak menyimpang dari ruang lingkup pembahasan, diperlukan batasan masalah sebagai berikut :
a. Algoritma untuk autentikasi Zero Knowledge Proof adalah protokol Feige Fiat Shamir.
b. Algoritma untuk pembangkit bilangan acak yang digunakan adalah Quadratic Linear Congruential Generator.
c. Algoritma Pembangkit bilangan prima yang digunakan yaitu Lehman Theorem
d. Jenis data yang diamankan yaitu data teks (.txt)dan dokumen (.doc) e. Bahasa pemograman yang digunakan adalah C#.
1.4Tujuan Penelitian
Adapun tujuan dari penulisan tugas akhir ini adalah :
a. Mengetahui proses kerja Zero Knowledge Proof dalam pengamanan sebuah data.
b. Mengetahui cara pengimplementasian Zero Konwledge Proof dengan metode Feige Fiat Shamir dan Quadratic Congruential Generator.
c. Mengetahui running time dari Quadratic Linear Congruential Generator (QLCG) dan Feige-Fiat-Shamir (FFS) secara terpisah dan ketika dikombinasikan.
1.5 Manfaat Penelitian
Manfaat yang diambil dari penulisan tugas akhir ini adalah :
a. Membantu pengamanan data tanpa menunjukkan siapa yang melakukan autentifikasi atas keaslian dokumen tersebut, sehingga penyalahgunaannya tidak akan bisa melibatkan pihak yang memverifikasi.
b. Sebagai referensi bagi pengguna yang ingin mengetahui mengenai cara kriptografi Zero Knowledge Proof dengan protokol Feige Fiat Shamir dan quadratic Linear Congruential.
Tahapan yang dilakukan dalam penelitian ini adalah: 1. Studi Literatur.
Melakukan studi kepustakaan, dengan mengumpulkan dan mempelajari bahan- bahan referensi yang berhubungan dengan kriptografi, Zero Knowledge Proof, Protokol Feige-Fiat-Shamir dan Quadratic Linear Congruential.
2. Analisis Masalah dan Perancangan Sistem.
Analisis masalah yang dimulai dengan tahap mengindentifikasikan masalah, memahami kerja sistem yang akan dibuat, manganalisis dan membuat laporan tentang hasil analisis, dan perancangan yang dimaksud adalah dengan membuat rancangan dan interface sistem dengan protokol Feige-Fiat-Shamir. 3. Implementasi Sistem.
Perancangan sistem diimplementasikan dalam bentuk kode program (coding) dengan menggunakan bahasa pemrograman C#.
4. Pengujian Sistem.
Pengujian dilakukan terhadap program yang telah dibuat. 5. Dokumentasi Sistem.
Penyusunan laporan Tugas Akhir lengkap dengan analisis yang didapatkan.
1.7Sistematika Penulisan
Sistematika penulisan skripsi ini terdiri atas bagian-bagian berikut: BAB I PENDAHULUAN
Bab ini menjelaskan latar belakang, rumusan masalah, batasan masalah, tujuan penelitian, manfaat penelitian, metodologi penelitian dan sistematikan penulisan dari skripsi ini.
BAB II LANDASAN TEORI
Bab ini menjelasakan landasan teori dari penelitian yang dilakukan. Teori yang diangkat yaitu kriptografi dan keamanannya, protokol Zero Knowledge Proof, Algoritma Feige-Fiat Shamir, dan Quadratic Linear Congruantial generator BAB III ANALISIS DAN PERANCANGAN SISTEM
manganalisis dan membuat laporan tentang hasil analisis, dan perancangan yang dimaksud adalah dengan membuat rancangan dan interface sistem dengan protokol Feige-Fiat-Shamir.
BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM
Pada bab ini akan menguraikan hasil pengujian sistem tentang autentikasi sebuah pesan dengan Feige Fiat Shamir dan Quadratic Linear Congruantial generator, dan kompleksitas waktu yang dihasilkan dengan penggabungan dua algoritma tersebut.
BAB V KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan yang didapat dari hasil pengujian yang dilakukan serta saran-saran yang diberikan untuk penelitian selanjutnya.
BAB II
TINJAUAN PUSTAKA
2.1 Kriptografi
Secara etimologi (ilmu asal usul kata), kata kriptografi berasal dari gabungan dua kata dalam bahasa Yunani yaitu “kriptos” dan “graphia”. Kata kriptos digunakan untuk mendeskripsikan sesuatu yang disembunyikan, rahasia atau misterius. Sedangkan kata graphia berarti tulisan. Kriptografi didefinisikan sebagai ilmu dan pelajaran untuk tulisan rahasia dengan pertimbangan bahwa komunikasi dan data dapat dikodekan untuk mencegah dari mata-mata atau orang lain yang ingin mengetahui isinya, dengan menggunakan kode-kode dan aturan-aturan tertentu dan metode lainnya sehingga hanya orang yang berhak yang dapat mengetahui isi pesan sebenarnya.
Selain definisi di atas, Schneier (1996) mengemukakan pendapatnya tentang definisi kriptografi yaitu:ilmu dan seni untuk menjaga keamanan pesan. Penggunaan kata “seni” di dalam definisi di atas berasal dari fakta sejarah bahwa pada masa-masa awal sejarah kriptografi, setiap orang mungkin mempunyai cara yang unik untuk merahasiakan pesan. Cara-cara unik tersebut mungkin berbeda-beda pada setiap pelaku kriptografi sehingga setiap cara menulis pesan rahasia pesan mempunyai nilai estetika tersendiri sehingga kriptografi berkembang menjadi sebuah seni merahasiakan pesan (kata “graphy” di dalam “cryptography” itu sendiri sudah menyiratkan sebuah seni, (Mollin, 2006)).
Dalam menjaga kerahasiaan data, kriptografi mentransformasikan data jelas (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.
1. Kerahasiaan (Confidentiality), adalah layanan yang digunakan untuk menjaga isi informasi dari siapapun, kecuali yang memiliki kunci rahasia atau otoritas untuk membuka informasi yang telah disandikan.
2. Integritas Data (Message Integrity), berhubungan dengan penjagaan (perlindungan data) dari upaya-upaya pengubahan data secara tidak sah. Untuk dapat menjaga integritas data, suatu sistem harus memiliki kemampuan untuk mendeteksi pemanipulasian data yang dilakukan oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pendistribusian data lain ke dalam data yang asli.
3. Autentifikasi (Authentication), berhubungan dengan identifikasi, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomuniasi harus saling memperkenalkan diri. Informasi yang dikirimkan harus diautentikasi keasliannya, isi datanya, waktu pengirimannya dan lain sebagainya.
4. Nirpenyangkalan (Non-repudiation), merupakan usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang mengirimkan/membuat, juga sebaliknya.
2.1.1 Konsep Dasar Kriptografi
Pada kriptografi akan ditemukan beberapa istilah-istilah yang penting untuk diketahui dalam memahami ilmu kriptografi. Istilah-istilah dan konsep dasar kriptografi tersebut akan dijelaskan sebagai berikut.
a. Enkripsi dan Dekripsi
Sedangkan dekripsi merupakan algoritma atau cara yang dapat digunakan untuk membaca informasi yang telah dienkripsi untuk dapat dibaca kembali (Kurniawan. Y., 2004).
Secara umum kriptografi mengatasi masalah keamanan data dengan menggunakan kunci, yang dalam hal ini algoritma tidak dirahasiakan lagi, tetapi kunci harus tetap dijaga kerahasiaannya. Kunci (key) adalah parameter yang digunakan untuk transformasi enciphering dan deciphering. Kunci biasanya berupa string atau deretan bilangan. Skema enkripsi dan dekripsi dengan menggunakan kunci diperlihatkan pada gambar 2.1 dibawah ini :
Kunci Kunci
Plaintext Plaintext Gambar 2.1 Skema enkripsi dan dekripsi
b. Plaintext dan Ciphertext
Pesan merupakan data atau informasi yang dapat dimengerti maknanya, nama lain dari pesan adalah plaintext. Pesan dapat berupa teks, video, gambar dan lain-lain. Ketika pesan ingin dijaga kerahasiaannya maka pesan perlu disandikan ke bentuk lain yang tidak dapat dipahami oleh orang lain. Bentuk pesan yang telah tersandikan tersebut dinamakan dengan ciphertext. Perbandingan antara plaintext dan ciphertext dapat dilihat pada gambar 2.3a dan 2.3b.
(a) Plaintext (b) ciphertext Gambar 2.2 perbandingan plaintext dan ciphertext
c. Kriptanalisis dan kriptologi
Tugas utama kriptografi adalah untuk menjaga agar baik plaintext maupun kunci ataupun keduanya tetap terjaga kerahasiannya. Berbeda dengan kriptanalisis (Cryptanalysis) yang merupakan suatau ilmu dan seni untuk memecahkan chipertext menjadi plaintext tanpa memerlukan kunci yang digunakannya. Jika seorang kriptografer mentranformasikan plaintext ke dalam ciphertext dengan menggunakan kunci, maka sebaliknya seorang kriptanalis berusaha memecahkan ciphertext tersebut untuk menemukan plaintext atau kunci. Sedangkan studi mengenai kriptografi dan kriptanalis tersebut disebut dengan kriptologi (cryptlogy). hubungan antara kriptologi, kriptografi dan kriptanalisis dapat dilihat pada Gambar 2.3.
Kriptologi
Kriptografi kriptanalisis
Gambar 2.3 Hubungan Kriptologi, kriptanalisi, dan kriptografi
2.1.2 Jenis Kriptografi
Terdapat dua jenis algoritma kriptografi berdasarkan jenis kuncinya, yaitu:
a. Algoritma Simetri
Algoritma simetri ssering juga disebut sebagai algoritma kunci rahasia, algoritma kunci tunggal atau algoritma satu kunci, dan mengharuskan pengirim dan penerima menyetujui suatu kunci tertentu sebelum mereka dapat berkomunikasi dengan aman. Keamanan algoritma simetri tergantung pada kunci, agar komunikasi tetap aman, maka kunci harus tetap dirahasiakan.
Algoritma simetri dapat dibagi dalam dua kategori, jenis pertama beroperasi pada plaintext yang berupa satu bit tunggal pada satu waktu, yang disebut dengan stream algorithms (algoritma aliran atau stream ciphers). Jenis kedua beroperasi pada plaintext dalam grup bit, grup bit-bit ini blok yang disebut sebagai algoritma blok atau kode rahasia blok (block cipher).
Proses dari skema kriptografi simetri dapat dilihat pada Gambar2.4
Enkripsi EK (P)=C
Dekripsi DK (C)=P
Kunci Privat, K
Plaintext, P Ciphertext, C Plaintext, P
Gambar 2.4 Kriptografi Simetri
b. Algoritma Asimetri
dengan kunci publik, sedangkan kunci dekripsi disebut dengan kunci privat.
Proses dari skema kriptografi asimetri dapat dilihat pada Gambar 2.5.
Enkripsi EK1 (P)=C
Dekripsi DK2 (C)=P
Kunci Publik, K1 Kunci Privat, K2
Palintext, P Ciphertext, C Plaintext, P
Gambar 2.5 Skema kriptografi kunci asimetri
2.1.3 Protokol Kriptografi
Protokol adalah aturan yang berisi rangkaian langkah-langkah, yang melibatkan dua atau lebih orang, yang dibuat untuk menyelesaikan suatu kegiatan. Protokol digunakan untuk mengabtraksikan proses penyelesaian suatu tugas dari mekanisme yang digunakan.
Protokol kriptografi adalah protokol yang menggunakan kriptografi dengan melibatkan sejumlah algoritma kriptografi. Protokol kriptografi memiliki urutan dari awal hingga akhir, setiap langkah harus dilakukan secara berurutan, dan langkh tidak dapat dikerjakan bila langkah sebelumnya belum selesai.
Beberapa jenis protokol kriptografi antara lain: a. Abritated protocol
Ada beberapa kelemahan menggunakan protocol jenis arbiter. Sangat sulit menemukan seorang atau pihak arbiteryang dapat dipercaya, mampu menjamin tidak terjadi kecurangan, dan mampu menyimpan kerahasiaan data-data yang perlu disembunyikan. Selain itu harus ada biaya tambahan untuk membayar arbiter. Karena menggunakan prosedur dan pihak tambahan dalam komunikasi, maka waktu dalam melakukan transaksi maupun komunikasi akan semakin lama. Delainya pun akan bertambah besar. Bila banyak transaksi yang dilakukan dalam waktu yang hamper bersamaan, maka akan terjadi kemacetan yang dalam bahasa kerennya disebut bottleneck atau leher botol. Kerahasiaannya pun tergantung pada seberapa besar pihak ketiga mampu menjaga kerahasiaan data-data penting.
b. Adjudicated protocol
Protokol ini berbeda dengan protocol yang sebelumnya. Untuk protocol ini, menggunakan pihak ketiga yang hanya bertindak sebagai juri bila terjadi kecurangan. Contoh yang bsa dilihat dalam kehidupan adalah adanya notaris dalam sengketa tanah.
Dalam protocol ini juga terdapat beberapa kelemahan termasuk analisis yang digunakan atau dilakukan harus setelah masalah terjadi dan tidak ada upaya untuk melakukan pencegahan. Tetapi keuntungannya adalah tidak perlu mengeluarkan banyak biaya dibanding dengan menggunakan arbiter karena keterlibatan pihak ketiga terbatas pada adanya masalah.
c. Self-enforcing protocol
2.2 Pembangkit Bilangan Acak (Cryptographcally-secure Pseudo-Random Number
Generator)
Cryptographically-secure Pseudo-Random Number Generator (CPRNG) adalah suatu peralatan komputasional yang dirancang untuk menghasilkan suatu urutan nilai yang tidak dapat ditebak polanya dengan mudah, sehingga urutan nilai tersebut dapat dianggap sebagai suatu keadaan acak (random). CPRNG ini tidak dapat diterapkan dalam prakteknya.Bilangan acak yang dihasilkan oleh komputer sekalipun tidak benar-benar acak dan kebanyakan bilangan acak yang diterapkan dalam kriptografi juga tidak benar-benar acak, tetapi hanya berupa acak semu.Ini berarti bahwa bilangan acak yang dihasilkan itu dapat ditebak susunan atau urutan nilainya.Dalam kriptografi, bilangan acak sering dibangkitkan dengan menggunakan pembangkit bilangan acak semu (Cryptographically-secure Pseudo-Random Number Generator).
Suatu Cryptographically-secure Pseudo-Random Number Generator(CPRNG) merupakan suatu algoritma yang menghasilkan suatu urutan nilai dimana elemen-elemennya bergantung pada setiap nilai yang dihasilkan.Output dari CPRNG tidak betul-betul acak, tetapi hanya mirip dengan properti dari nilai acak.Kebanyakan algoritma dari Cryptographically-secure Pseudo-Random Number Generator ditujukan untuk menghasilkan suatu sampel yang secara seragam terdistribusi. CPRNG ini sering digunakan dalam kriptografi pada proses pembentukan kunci dari metoda kriptografi. Tingkat kerumitan dari CPRNG ini menentukan tingkat keamanan dari metoda kriptografi.Semakin rumit (kompleks) CPRNG yang digunakan maka semakin tinggi tingkat keamanan dari metode kriptografi.
2.3 Quadratic Linear Congruential Generator
Quadratic Linear Congruential Generator (QLCG) adalah salah satu pembangkit bilangan acak yang dikemukakan oleh Jim Reeds (1294,1295,1296) dan JoanBoyar (1251) dengan rumus:
�� =����−�� +���−�+������
Periode QLCG pada dasarnya tidak lebih besar dari m, dan pada kebanyakan kasus periodenya kurang dari m. QLCG akan mempunya periode penuh (m-1) jika memenuhi syarat dimana (b-a) mod m=1, m adalah bilangan kelipatan 2 dan c adalah bilangan ganjil.
Keunggulan QLCG terletak pada kecepatannya dan hanya membutuhkan sedikit operasi bit. Jika dilihat dari angka yang dihasilkan, algoritma Qudratic Linear Congruential Generator (QLCG) memiliki kelemahan.Sebab angka (bilangan acak) yang dihasilkan dapat diprediksi urutan kemunculannya.
Contoh:
�� = (7��−12 + 11��−1+ 5 )��� 17 dan �0 adalah 0. Hasil perhitungan
dapat dilihat pada Tabel 2.1.
Tabel 2.1 Contoh QLCG
X ��
0 0
1 5
2 14
3 1
4 6
5 0
6 5
7 14
8 1
9 6
10 0
11 5
12 14
yang, namun ia sangat sensitif terhadap pemilihan nilai a, b, c dan m. Pemilihan nilai – nilai yang buruk dapat mengarah pada implementasi QLCG yang tidak bagus.
2.4 Zero Knowledge Proof
Zero-knowledge proof adalah protokol kriptografi yang dapat digunakan oleh seseorang (misalnya Tian yang bertindak sebagai prover) untuk membuktikan kepemilikannya akan suatu secret piece atau informasi rahasia kepada orang lain (misalnya Tika, yang bertindak sebagai verifier) tanpa perlu mengungkapkan isi secret piece tersebut atau memberikan suatu cara bagi Tika untuk mengetahui isi rahasia tersebut.
Proses pembuktian kepemilikan rahasia yang dilakukan oleh Tian ini termasuk ke dalam interactive protocol, dimana Tika akan menanyakan serangkaian pertanyaan kepada Tian. Jika Tian benar-benar mengetahui isi rahasia, maka ia akan dapat menjawab keseluruhan pertanyaan dengan benar. Setelah serangkaian pertanyaan diajukan (misalnya 10 atau lebih pertanyaan) Tika akan yakin bahwa Tian benar-benar memiliki informasi rahasia seperti yang ia katakan.
Zero-Knowledge Proof harus memenuhi tiga sifat yaitu:
a. Completeness:yaitu jika prover memang tahu suatu pernyataan, verifier selalu akan dapat menerimanya.
b. Soundness:yaitu jika prover memang tidak mengetahui pernyataan yang benar, verifier tidak dapat menerimanya, kecuali dalam kemungkinan yang kecil.
c. Zero-knowledge:yaitu walaupun setelah interaksi dilakukan verifier akan yakin bahwa prover benar-benar tahu pernyataan yang sebenarnya, sebenarnya verifier sendiri tetap tidak akan mengetahui pernyataan yang sebenarnya.
untuk membuka pintu itu, tetapi ketika Tian diminta untuk membuktikannnya, Tian tidak mau memberitahukan kata kuncinya kepada Tika. Cara yang digunakan Tian untuk membuktikan bahwa ia tahu kata rahasia tanpa memberitahukannya kepada Tika adalah dengan menggunakan zero knowledge proof.
Tian dalam hal ini adalah pihak yang akan membuktikan bahwa ia mengetahui rahasia disebut dengan Prover, sedangkan Tika dalam hal ini adalah pihak yang diyakinkan disebut dengan verifier. Gambar di bawah ini adalah ilustrasi zero knowledge proof di dalam gua.
Gambar2.6 Ilustrasi Zero knowledge proof
Gua itu memiliki 2 jalur untuk sampai ke pintu rahasia yaitu jalur A dan jalur B. Langkah-langkah pembuktiannya adalah sebagai berikut : a. Tika berada di posisi A, sedangkan Tian berada di posisi B.
b. Tian akan berjalan menuju ke pintu dengan menggunakan jalan C atau D sesuai dengan keinginan Tian dan dilakukan secara acak.
c. Setelah itu, Tika akan berjalan ke posisi B dan dia meneriakkan jalan C atau D sesuai dengan keinginannya agar Tian berjalan kearah posisi B dengan menggunakan jalan itu.
d. Jika Tian tahu kata rahasia, maka ia akan mampu menuruti semua permintaan Tika, tetapi jika ia ingin mengelabui Tika, maka Tian memiliki probabilitas setengah untuk berhasil.
Tian
e. Agar pembuktian yang dilakukan akurat maka langkah 1 sampai 5 harus diulang n kali dan Tika percaya jika Tian mampu memenuhi seluruh permintaan Tika.
2.5Feige Fiat Shamir
Konsep zero-knowledge protocol digunakan dalam beberapa protokol untuk identifikasi (zero-knowledge identification protocol). Protokol pertama jenis iniadalah protokol Feige-Fiat-Shamir. Ada tiga aktor yang berperan dalam protokol Fiat-Shamir yaitu trusted center (sebut saja Tim), prover (Tian) dan verifier (Tika). Tim membuat suatu modulus seperti RSA n = pq, mengumumkan n tetapi merahasiakan p dan q. Tian membuat secara acak (menggunakan random number generator) kunci privat s, dimana 0 < s < n dan gcd(s; n) = 1. Kunci publik Tian adalah v = s2 mod n dan v diregistrasi ke Tim. Tika dapat memperoleh kunci publik Tian v yang telah diregistrasi, dari Tim. Langkah-langkah berikut diulang t kali, setiap kali dengan nilai-nilai acak yang baru, agar Tian dapat diidentifikasi oleh Tika.
a. Tian memilih secara acak, menggunakan random number generator, r, 0 < r < n, dan mengirim x = r2 mod n kepada Tika
b. Tika memilih secara acak, menggunakan random number generator, e, e
∈ {0,1}, dan mengirimnya ke Tian.
c. Tian mengkomputasi y = rsemod n dan mengirim y ke Tika.
d. Jika y = 0 atau y2 ≡xve (mod n) maka Tika menolak dan proses identikasi gagal.
Jika langkah-langkah diatas telah diulang t kali tanpa penolakan maka identifikasi Tian diterima oleh Tika. Probabilitas bahwa Tian telah berhasil menipu Tika adalah 1 dalam 2t.
Keamanan dari Feige-Fiat-Shamir berdasarkan pada sukarnya mengkalkulasi akar kuadrat modulo pq jika p dan q tidak diketahui (hanya produknya n = pq yang diketahui). Fungsi pengacakan menggunakan parameter e adalah agar Tian tidak curang. Jika Tika selalu meminta y = r (e = 0) maka jelas Tian tidak perlu mengetahui s untuk menjawabnya. Jika Tika selalu meminta y = rs (mod n), Tian juga dapat mengelabui Tika tanpa mengetahui sebagai berikut. Pada langkah 1 Tian mengirim
kepada Tika. Ketika diminta untuk mengirim y = rs (mod n) maka Tianmengirim y harus mencari akar kuadrat modulo n karena ia harus mengirim
y = (r2v-1)-2 (mod n).
Untuk menunjukkan bahwa tidak ada rahasia yang bocor ke Tika, kita gunakan cara standar yaitu dengan simulasi. Seseorang yang tidak mengetahui p, q dan s akan tetapi mengetahui apa yang akan diminta Tika untuk e tentunya akan dapat berperan sebagai Tian dengan mengirim x = r2 (mod n) atau x = r2v-1 (mod n) tergantung pada nilai e. Informasi yang dikeluarkan oleh Tian dapat dikeluarkan oleh siapa saja tanpa mengetahui p; q dan s, jaditidak memberi tahu nilai p; q dan s.
Sebetulnya Fiat-Shamir membocorkan 1 bit dari nilai s, yaitu sign (+ atau -) dari s. Protokol Feige-Fiat-Shamir menutup kebocoran ini. Selain itu Feige Fiat-Shamir melakukan k “pembuktian" secara paralel yang mengurangi interaksi antara Tian dan Tika karena langkah-langkah tidak perlu diulang sebanyak pada Fiat-Shamir, bahkan langkah-langkah tidak perlu diulang jika k cukup besar.
Dalam Feige-Fiat-Shamir, Tian membuat k kunci privat s1, s2, ..., sk dimana gcd(si , n) = 1 untuk setiap i, dan mempublikasikan k kunci publik v1, v2,..., vkdimana
vi= si2 (mod n)
untuk setiap i. Langkah-langkah Feige-Fiat-Shamir adalah sebagai berikut. a. Tian memilih secara acak, menggunakan random number generator, r,0
Jika k = 20, maka probabilitas bahwa Tian berhasil mengelabui Tika kurang dari 1 dalam sejuta, dengan hanya 1 putaran langkah-langkah diatas.
Untuk Feige-Fiat-Shamir ada yang menggunakan vi = 1=si2 mod n untukkunci publik. Jika demikian, maka pada langkah 4, Tika harus memeriksa
� ≡ ± �2���1�2�2 … ���� (����)
Contoh :
Jika n=35 (bilangan pengali yang prima 5 dan 7), kemudian bilangan kuadrat yang mungkin adalah:
1: x2≡1 (mod 35) mempunyai penyelesaian: x = 1, 6, 29,or 34. 4:x2≡ 4 (mod 35) mempunyai penyelesaian: x = 2,12, 23,or33. 9: x2≡9 (mod 35) mempunyai penyelesaian :x = 3,17,18, or32. 11:x2≡11(mod 35)mempunyai penyelesaian: x = 9,16,19,or26. 14: x2≡14 (mod 35) mempunyai penyelesaian: x = 7 or 28. 15: x2≡15 (mod 35) mempunyai penyelesaian: x = 15 or 20. 16: x2≡16(mod 35)mempunyai penyelesaian:x=4,11, 24, or31. 21: x2≡21 (mod 35) mempunyai penyelesaian: x = 14 or 21. 25: x2≡25 (mod 35) mempunyai penyelesaian: x = 5 or 30. 29: x2≡29(mod 35)mempunyai penyelesaian:x= 8,13,22 or 27. 30: x2≡30 (mod 35) mempunyai penyelesaian: x = 10 or 25.
Inversi (mod 35) dan akar pangkat duanya adalah: Tabel 2.2 Inversi (mod 35)
v v-1 S=sqrt(v-1)
1 1 1
4 9 3
9 4 2
11 16 4
a. Tian memilih sebuah bilangan acak r= 16, hitung 162(mod35)=11, dan kemudian angka tersebut dikirim ke Tika.
b. Tika mengirim Tian bilangan biner acak {1,1,0,1}.
c. Tian menghitung 16*((31)*(41)*(90)*(81))mod 35=31 dan dikirim ke Tika
d. Tika memeriksa bahwa 312*((41)*(111)*(160)*(291)) mod 35=11
BAB III
ANALISIS DAN PERANCANGAN
3.1 Analisis Sistem
Sebelum dilakukan tahap perancangan sebuah sistem, perlu dilakukan analisis sistem yang akan dibangun. Analisis sistem merupakan istilah yang secara kolektif mendeskripsikan fase-fase awal pengembangan sistem. Tahap ini bertujuan memberikan gambaran yang jelas terhadap sistem yang akan dibangun. Tahap ini menjabarkan kebutuhan-kebutuhan yang berguna untuk perancangan sistem agar sistem yang dibangun sesuai dengan masalah yang akan diselesaikan.
3.1.1 Analisis Masalah
Masalah utama yang diangkat adalah autentikasi sebuah data pada sistem kriptografi. Sistem kriptografi ini menggunakan protokol Feige Fiat Shamir (FFS) yang merupakan salah satu algoritma dari penerapan Zero Knowledge Proof. Seperti yang telah dijelaskan bahwa Zero knowledge Proof ini merupakan prokotol yang aman untuk autentikasi sebuah data karena tidak memberikan informasi apapun tentang data yang dimiliki oleh seorang prover.
Verifier
Gambar 3.1 Diagram Ishikawa Untuk Analisa Masalah
3.1.2 Analisis Persyaratan (Requirement Analysis)
Analisis ini bertujuan untuk mengidentifikasi dan menyatakan persyaratan apa saja yang akan dibutuhkan oleh sistem agar dapat berjalan sesuai dengan yang diharapkan. Analisis persyaratan terdiri atas dua bagian yaitu analisis fungsional (functional requirement) dan analisis nonfungsional (nonfunctional requirement). Dimana persyaratan fungsional adalah aktifitas dan layanan yang harus diberikan/ disediakan oleh sebuah sistem, dan persyaratan nonfungsional berkaitan dengan fitur, kateristik, dan batasan lainnya yang menetukan apakah sistem memuaskan atau tidak. Persyaratan nonfungsional seringkali berupa batasan atau sesuatu yang menjadi perhatian stakeholder sebuah sistem. Kedua analisis ini merupakan hal penting untuk menentukan hal-hal yang harus dimiliki sistem.
3.1.2.1Persyaratan Fungsional
Analisis fungsional dibutuhkan untuk mengetahui hal-hal yang bisa dikerjakan oleh sistem. Berikut dijabarkan fungsi-fungsi yang dapat dikerjakan oleh sistem.
1. Sistem akan melakukan autentikasi pada data berupa .txt atau .doc
2. Sistem menghitung berapa lama waktu yang dibutuhkan dalam memproses seluruh kegiatan autentikasi.
3.1.2.2Analisis Nonfungsional
Analisis nonfungsional berhubungan dengan hal-hal berikut ini: 1. Performa
Perangkat lunak yang akan dibangun dapat menunjukkan hasil dari proses pemabangkitan bilangan acak, dan autentikasi sebuah pesan.
2. Mudah dipelajari dan digunakan
Perangkat lunak yang akan dibangun memiliki tampilan yang user friendly dan responsif.
3. Hemat biaya
Perangkat lunak yang dibangun akan memprmudah pengguna untuk efesiensi waktu, sehingga hemat biaya.
4. Dokumentasi
Perangkat lunak yang akan dibangun dapat menyimpan hasil autentikasi pesan serta memiliki panduan penggunaan.
5. Kontrol
Perangkat lunak yang dibangun akan menampilkan pesan error untuk setiap input yang tidak sesuai.
3.1.3 Pemodelan Sistem dengan Use Case dan Ac tivity Diagram
Pemodelan sistem dilakukan untuk memperoleh gambaran yang lebih jelas tentang objek apa saja yang akan berinteraksi dengan sistem serta hal-hal apa saja yang dilakukan oleh sistem. Use case adalah salah satu pemodelan yang digunakan untuk memodelkan persyaratan sistem. Dengan use case ini digambarkan siapa saja yang berinteraksi dengan sistem dan apa saja yang dapat dilakukan dengan sistem.
Berdasarkan analisis kebutuhan sistem, secara garis besar sistem melakukan proses autentikasi dengan protokol Feige Fiat Shamir dan autentikasi dengan protokol Feige Fiat Shamir dengan pembangkit bilangan acak quadratic linear Congruential Generator.
Generate p dan q
Gambar 3.2 Use case Diagram yang akan Dikembangkan
Diagram pada gambar 3.2 menjelaskan aksi yang dapat dilakukan oleh user, user melakukan input data dengan men-generate bilangan prima p dan q dan kemudian memproses data dan melakukan autentikasi dengan protokol feige Fiat Shamir dengan beberapa kali percobaan hingga proses autentikasi dinyatakan berhasil.
3.1.3.1Use Case generate Bilangan Prima p dan q
Berikut ini merupakan spesifikasi use case generate Input p dan q Tabel 3.1 Spesifikasi Use Case generate p dan q
Name Enkripsi
Actors User
Trigger User men-generate p dan q yang akan menghasilkan nilai n Preconditions -
Post Conditions p dan q akan menghasil nilai n yang didapat dari perkalian bilangan prima p dan q
Success Scenario 1. User telah men-generate bilangan p dan q. 2. User mengakses tombol generate.
3. Sistem akan melakukan proses pemilihan bilangan prima berdasarkan metode Fermat.
4. Sistem akan menampilkan hasil bilangan prima p dan q. Alternative Flows -
User System
Akses tombol generate bilangan
prima
proses pemilihan bilangan prima p dan q dengan metode Fermat
Manampilkan bilangan prima p dan q
Gambar 3.3 ActivityDiagram untuk Proses input p dan q
3.1.3.2Use Case generate Bilangan Acak
Berikut ini adalah spesifikasi untuk use case proses pemilihan bilangan acak:
Tabel 3.2 Spesifikasi Use Case Pemilihan Bilangan acak Name Pemilihan bilangan acak
Actors User
Trigger User mengakses tombol pemilihan bilangan random (random r) Preconditions Bilangan n telah diproses dan ditampilkan
Post Conditions Bilangan acak r akan menghasilkan nilai x Success Scenario 1. User mengakses tombol random r.
2. Sistem akan melakukan proses pemilihan bilngan acak dengan Quadratic Linear Congruential
Alternative Flows -
Verifier System
Akses tombol bilngan random r
Proses memilih dan menampilkan bilangan acak
dengan metode QLCG
Sistem menampilkan bilangan acak r
Gambar 3.4 Activity Diagram untuk Proses pemilihan bilangan acak
3.1.3.3Use Case Proses Autentikasi
Berikut ini adalah spesifikasi untuk use case proses autentikasi Tabel 3.3 Spesifikasi Use Case Autentikasi
Name Authentication
Actors User
Trigger User menginputkan plaintext yang akan di autentikasi Preconditions plaintext telah disimpan sebelumnya
Post Conditions Proses ini akan menghasilkan hasil proses keberhasilan autentikasi
Success Scenario 1. User memasukkan plaintext
Berikut ini adalah activity diagram untuk proses autentikasi.
User System
Akses tombol Process
Sistem menampilkanoutput x, s, v, v invers
User memasukkan
plaintext
Sistem menampilakan output hasil autentikasi
Gambar 3.5 : Activity Diagram untuk Proses Autentikasi
3.1.4. Analisis Sistem Proses
User Sistem
Generate p
Generate q
Tampilkan output p dan q
Gambar 3.6 Sequence Diagram Proses Generate p dan q
Hasil dari bilangan prima p dan q yang didapat akan digunakan untuk mendapatkan nilai n. Setelah proses input bilangan prima p dan q selesai dilakukan, kemudian sistem akan melakukan generate bilangan acak dngan metode Quadratic Linear Congruential Generator, yang dapat dilihat pada gambar 3.7.
verifier Sistem
Random r
Tampilkan bilangan acak r
Proses bilangan acak
Dari sequnce diagram pada gambar 3.7 dapat dilihat bahwa hasil yang didapat oleh user adalah bilangan random r yang akan digunakan untuk mencari nilai x.
Untuk proses identifikasi skema (autentikasi) dengan protokol Feige Fiat Shamir sistem akan memproses dan menampilkan hasil perhitungan nilai n, x, v, v-invers, dan s yang akan digunakan untuk pengecekan. Sequence diagram proses idrntifikasi skema feige Fiat Shamir dapat dilihat pada Gambar 3.8.
verifier Sistem
Tampilkan hasil autentikasi
pengecekan Masukkan plaintext
Proses nilai x, v, v invers, dan s
3.1.5. Flowchart Sistem
3.1.5.1. Flowchart Gambar Umum
Secara umum proses yang dilakukan ini dapat dilihat pada flowchart gambaran umum pada gambar 3.9.
Start
Input plaintext
End Pembangkitan bilangan Prima
p dan q
Pembangkitan bilangan Acak
Pengecekan/ Autentikasi
FFS
Tampilkan hasil Autentikasi
3.1.5.2Flowchart dan pseudocode Proses Generate p dan q
Proses gnerate bilangan prima p dan q ini menggunakan metode Fermat. Berikut ini flowchart yang menggambarkan langkah-langkah generate bilangan prima.
start
p, q
For i=0;i<p.length, i++ For i=0;i<q.length, i++
If ap-1 = 1(mod p) False
true
End
no
yes
Tampilkan p, q
3.1.5.3.Flowchart dan Pseudocode Proses Pembangkitan Bilangan Acak Metode Quadratic Linear Congruential Generator (QLCG)
Proses pembangkitan bilangan acak dilakukan dengan Metode Quadratic Linear Congruential Generator (QLCG), dapat dilihat pada Gambar 3.11.
Mulai
a , b , c,
Xo = key(i) for i = 1; i = 256 ; i++
Selesai
key(i) = (ceil((a*Xo*Xo+b*X0+C) mod 256
Tampilkan bilangan acak
Pseudocode metode Quadratic Linear Congruential Generator (QLCG).
private int po (n,m)
int hasil1
loop i from 0 to i less then m
hasilhasil*n
return hasil
end loop
public int Generate(index)
array x0
loop i from 1 to i less then 256
x[i]((a*pow(x[i-1],2))+b*x[i-1]+c) mod m
return x[index]
end loop
Pada saat akan melakukan pembangkitan bilangan acak maka program akan mengeksekusi nilai x[i] sampai 256 kali. Ketika algoritma Quadratic Linear Congruential Generator berjalan maka program akan menampilkan hasil seluruh bilangan acak yang di dapat dan memilih salah satu bilangan acak secara random yang akan digunakan pada proses autentikasi selanjutnya.
3.1.5.4.Flowchart dan pseudocode Proses Autentikasi (Identifikasi Skema) Feige Fiat Shamir (FFS)
Start
p,q
n = p x q
r
v = x2 mod n
s2 = v-1 mod n v-1 = s2 mod n
y = r x mod n= r2 mod n
Input paliantext
stop x = r2 mod n
no If random bit
b=1 yes x mod n=v(y2 mod n) mod n
Hasil autentikasi
, y = rs mod n
pseudocode Proses Autentikasi (Identifikasi Skema) Feige Fiat Shamir (FFS): private FFSAlgorithm()
QLCGGen(a,b,c,m)
GenerateBigPrime(p)
GenerateBigprime(q)
rgenerate[index]
x(r*r) mod n
v(x*x) mod n
initialize counter to zero
initialize result to zero
while result not equals to 1
counter++
result (v*counter) mod n
end while
initialize counter to zero
initialize result to zero
while result not equals to 1
counter++
result(counter*counter) mod n
end while
end
public bool otentikasi(int t)
for i equals to 0, i less then t
if (index"0")
y:=r
valA x mod n
valBr*r mod n
if(valA not equals to valB)
return false
endif
return true
end
Pada saat akan melakukan proses identifikasi skema (autentikasi) dengan protokol Feige Fiat Shamir (FFS) maka program akan memproses nilai n dan r yang diperoleh untuk mendapatkan nilai x, v, v-invers, dan memproses hasil autentikasi setelah user menginputkan data yang akan diidentifikasi.
3.1.6. Rancangan Antar Muka
Sistem akan dibangun menggunakan bahasa pemrograman C# dengan menggunakan software Microsoft Visual Studio. Rancangan antar muka akan disesuaikan dengan kebutuhan dan software yang digunakan. Antar muka menggunakan lima form, form utama ,form about, form Help, form Protokol FFS dengan QLCG, form protokol FFS tanpa QLCG
3.1.6.1.Antar Muka Mainform
Pada Mainformuser dapat memilih menu tersedia
X
__File About Help
Implementasi Zero Knowledge Proof
dengan Feige Fiat Shamir dan Quadratic Linear Congruential generator
Gambar 3. 13 Rancangan Form Utama
Tabel 3.4 Rincian Rancangan Form Utama
No Tipe Teks Nama Keterangan
1 MenuStrip File Menustrip1 Terdapat beberapa sub menu 2 MenuStrip About Menustrip2 Terdapat submenu untuk
beralih ke Form About
3 MenuStrip Help MenuStrip3 Submenu untuk ke Form Help
4 Label Judul Label1 -
5 PictureBox LambangUSU PictureBox1 -
6 Label Jurusan Label2 -
3.1.5.1Antar Muka FormAuthenticationwith FFS and QLCG
Pada form Autentikasi user akan menginputkan bilangan prima yang nantinya akan proses.
X
__ File About Help
1 2 3
PROTOKOL FEIGE FIAT SHAMIR DENGAN QUADRATIC LINEAR CONGRUENTIAL GENERATOR
Gambar 3.14 Rancangan Form Authenticationwith FFS and QLCG
Tabel 3.5 Rincian Rancangan Form Authentication with FFS and QLCG
No Tipe Teks Nama Keterangan
1 MenuStrip File Menustrip1 Terdapat beberapa sub menu
2 MenuStrip About Menustrip2 Terdapat submenu untuk beralih ke Form About 3 MenuStrip Help MenuStrip3 Submenu untuk ke Form
Help
4 Label Judul Label1 -
5 Label P Label2 -
6 Label Q Label3 -
7 Label N Label4 -
8 Label R Label5 -
9 Label X Label6 -
10 Label V Label7 -
11 Label v-invers Label8 -
12 Label S Label9 -
13 Textbox - Tbp Inputan bilangan prima p
14 Textbox - Tbq Inputan bilangan prima q
15 Textbox - Tbn hasil perkalian p x q
16 Textbox - Tbr Inputan bilangan acak
17 Textbox - Tbx Tampilan hasil r2 mod n
18 Textbox - Tbv Tampilan hasil x2 mod n
19 Textbox - tbv_invers Tampilan hasil v invers 20 Button Open File btnOpen Membuka File
21 Textbox - tbFile Tampilan file yang dibuka
22 Grupbox Info File - Berisi informasi mengenai file
23 Button Generate p Buttonp Bangkitkan bilangan prima p
24 Button Generat q Buttonq Bangkitkan bilangan
Tabel 3.6 Lanjutan Rincian Rancangan Form Autentikasi
No Tipe Teks Nama Keterangan
25 Button Process Proses Proses hasil r, x, v, v invers, s
26 Groupbox Authentication - Menampilkan hasil proses autentikasi
27 Textbox - A Hasil pengecekan pertama
28 Textbox - B Hasil pengecekan kedua
29 Label - LabelTime1 Menampilkan waktu
autentikasi
30 Button Random r Btnr Memproses bilangan acak
31 textBox - Txtbox Menampilkan seluruh
nilai r
32 Label - Labeltime2 Menampilkan waktu
pembangktan bilangan acak
33 Label - Labeltime3 Menampilkan waktu
process
3.2 Tahapan Sistem
3.2.1 Tahapan metode Fermat
Teorema Fermat menyatakan bahwa jika n adalah bilangan yang akan dites keprimaannya dan 1≤ a < n , maka :
an-1 mod n = 1 dimana : a ∈ Z
Nilai a ditentukan secara acak pada interval antara 2 sampai n-1. Jika persamaan tersebut tidak terpenuhi pada satu nilai a maka n adalah bilangan komposit. Sedangkan jika persamaan tersebut dipenuhi pada banyak nilai a, maka n adalah kemungkinan prima.
Berikut beberapa contoh pengujian bilangan prima dengan metode Fermat
• n = 47
an-1 mod n
Jika a = 9 ,maka : 947-1 mod 47 = 1 Jika a = 13 ,maka : 1347-1 mod 47 = 1
Karena memenuhi persamaan Fermat pada semua nilai a, maka 47 merupakan bilangan prima.
• n = 201
Pembuktian dilakukan dengan mengambil beberapa nilai a pada interval 1 < a < 201, sebagai contoh a = { 32, 51, 199}
Karena tidak memenuhi persamaan Fermat, maka 201 bukan merupakan bilangan prima.
• n = 227
Pembuktian dilakukan dengan mengambil beberapa nilai a pada interval
Karena memenuhi persamaan Fermat pada semua nilai a, maka 227 merupakan bilangan prima.
Pembuktian dilakukan dengan mengambil beberapa nilai a pada
Karena memenuhi persamaan Fermat pada semua nilai a, maka 71
merupakan bilangan prima.
3.2.2 Tahapan Metode Quadratic Linear Congruential Generator (QLCG)
Penentuan keempat konstanta tersebut akan menentukan kualitas bilangan acak yang dihasilkan Pembangkit bilangan acak QLCG mengalami pengulangan pada periode tertentu atau setelah sekian kali pembangkitan, hal ini adalah salah satu sifat pembangkitan dari metode ini. QLCG mempunyai periode tidak lebih dari m dan kebanyakan kasus periodenya kurang dari m.
Di bawah ini, ada beberapa buah contoh hasil analisis yang penulis lakukan dengan beberapa buah kombinasi keempat konstanta LCG :
= 7
Nilai Xn selanjutnya dapat dilihat pada tabel 3.7 dibawah ini: Tabel 3.7 Tabel dengan nilai a = 7, b=24, c = 11, m = 16
Tabel 3.3 menunjukkan hasil pembangkitan kunci dengan menggunakan metode QLCG. Nilai 11, 2, 7, 10, 7 adalah kunci yang diperoleh dari hasil pembangkitan dan terlihat perulangan kunci pada proses pembangkitan ke tiga.
2. Tabel hasil bilangan acak metode QLCG dengan nilai a= 29, b=31 , c=49, m=256
Tabel 3.8 Hasil bilangan acak metode QLCG dengan nilai a= 29, b=31, c=49,
3. Tabel hasil bilangan acak metode QLCG dengan nilai a= 124, b=637, c=381, m=256
X0 = 0
X1 = (a*Xn-1*Xn-1+b*Xn-1+c) mod 256 = (124*0*0 + 637* 0 + 381) mod 256
= 381 mod 256 = 125
X2 = (a*Xn-1*Xn-1+b*Xn-1+c) mod 256
= (124*125*125 + 637 * 125 + 381) mod 256 = 2017506 mod 256
= 226
X3 = (a*Xn-1*Xn-1+b*Xn-1+c) mod 256
= (124*226*226 + 637 * 226 + 381) mod 256 = 6477767 mod 256
= 199
Nilai Xn selanjutnya dapat dilihat pada tabel 3.9 dibawah ini:
Tabel 3.9 Hasil bilangan acak metode QLCG dengan nilai a= 124, b=637, c=381, m=256
Xn Xn-1 Xn Xn-1 Xn Xn-1 Xn Xn-1 Xn Xn-1 Xn Xn-1 Xn Xn-1 Xn Xn-1
0 0 32 32 64 64 96 96 128 128 160 160 192 192 224 224
1 125 33 29 65 189 97 93 129 253 161 157 193 61 225 221
2 226 34 2 66 34 98 66 130 98 162 130 194 162 226 194
3 199 35 103 67 7 99 167 131 71 163 231 195 135 227 39
4 100 36 132 68 164 100 196 132 228 164 4 196 36 228 68
5 17 37 177 69 81 101 241 133 145 165 49 197 209 229 113
6 198 38 230 70 6 102 38 134 70 166 102 198 134 230 166
7 155 39 59 71 219 103 123 135 27 167 187 199 91 231 251
Tabel 3.10 Lanjutan Hasil bilangan acak metode QLCG dengan nilai a= 124, b=637, c=381, m=256
Xn Xn-1 Xn Xn-1 Xn Xn-1 Xn Xn-1 Xn Xn-1 Xn Xn-1 Xn Xn-1 Xn Xn-1
9 165 41 69 73 229 105 133 137 37 169 197 201 101 233 5
10 42 42 74 74 106 106 138 138 170 170 202 202 234 234 10
11 111 43 15 75 175 107 79 139 239 171 143 203 47 235 207
12 172 44 204 76 236 108 12 140 44 172 76 204 108 236 140
13 57 45 217 77 121 109 25 141 185 173 89 205 249 237 153
14 14 46 46 78 78 110 110 142 142 174 174 206 206 238 238
15 67 47 227 79 131 111 35 143 195 175 99 207 3 239 163
16 144 48 176 80 208 112 240 144 16 176 48 208 80 240 112
17 205 49 109 81 13 113 173 145 77 177 237 209 141 241 45
18 114 50 146 82 178 114 210 146 242 178 18 210 50 242 82
19 23 51 183 83 87 115 247 147 151 179 55 211 215 243 119
20 244 52 20 84 52 116 84 148 116 180 148 212 180 244 212
21 97 53 1 85 161 117 65 149 225 181 129 213 33 245 193
22 86 54 118 86 150 118 182 150 214 182 246 214 22 246 54
23 235 55 139 87 43 119 203 151 107 183 11 215 171 247 75
24 216 56 248 88 24 120 56 152 88 184 120 216 152 248 184
25 245 57 149 89 53 121 213 153 117 185 21 217 181 249 85
26 186 58 218 90 250 122 26 154 58 186 90 218 122 250 154
27 191 59 95 91 255 123 159 155 63 187 223 219 127 251 31
28 60 60 92 92 124 124 156 156 188 188 220 220 252 252 28
29 137 61 41 93 201 125 105 157 9 189 169 221 73 253 233
30 158 62 190 94 222 126 254 158 30 190 62 222 94 254 126
31 147 63 51 95 211 127 115 159 19 191 179 223 83 255 243
4. Tabel hasil bilangan acak metode QLCG dengan nilai a = 266, b = 267, c =
Nilai Xn selanjutnya dapat dilihat pada tabel 3.8 dan 3.11 dibawah ini:
Tabel 3.12 Lanjutan Hasil bilangan acak metode QLCG dengan nilai a= 124, b=637,
Tabel 3.11 dan 3.12 menunjukkan hasil pembangkitan kunci dengan menggunakan metode QLCG. Nilai 11, 62, 221, 100, 247, 210, 185, 232 dan seterusnya adalah kunci yang diperoleh dari hasil pembangkitan dan terlihat perulangan kunci pada proses pembangkitan ke 256.
= 1701923 mod 256 = 35
Nilai Xn selanjutnya dapat dilihat pada tabel 3.13 di bawah ini:
Tabel 3.13 menunjukkan hasil pembangkitan kunci dengan menggunakan metode QLCG. Nilai 97, 130, 35, 4, 229, 134, 167, 8, 105, 138, 43, 12 dan seterusnya adalah kunci yang diperoleh dari hasil pembangkitan dan terlihat perulangan kunci pada proses pembangkitan ke 256.
Pada bab sebelumnya sudah disinggung bahwa QLCG mempunyai periode tidak lebih besar dari m. Jika a, b, c dan m dipilih secara tepat (misalnya (b-a) mod m = 1, c merupakan bilangan ganjil, dan m merupakan bilangan kelipatan 2), maka QLCG akan mempunyai periode maksimal, yaitu m – 1. Dari grafik di atas, dapat kita buktikan pernyataan tersebut. Pada tabel 3.5, Tabel 3.6 dan Tabel 3.7, terlihat kombinasi secara tepat antara a, b, c dan m, sehingga QLCG mempunyai periode maksimal (m-1), dimana dengan m = 256, perulangan terjadi pada n=256. Sedangkan pada Tabel 3.2 kombinasi a, b, dan m sangat buruk, sehingga terjadi perulangan saat n=3 dengan m=256, dan Tabel 3.3 terjadi perulangan pada saat n=65 dengan m=256 sehingga tidak memenuhi syarat untuk menghasilkan QLCG yang memiliki periode maksimal.
3.2.3 Tahapan Feige Fiat Shamir
Nilai r sebagai bilangan acak yang didapatkan dari pembangkit bilangan acak dengn metode Quadratic Linear Congruential Generator, akan digunakan pada tahapan Feige Fiat Shamir.
1. Percobaan I
• Tim : p =11
q = 13 n = 11 x 13 = 143
• Tian : r = 17 x = �2���� = 172 mod 143 = 3
• Tim : v = �2����
v-1= v*v-1 mod n = 9*2 mod 143 = 18
v-1= v*v-1 mod n = 9*3 mod 143 = 27
dan hasil v-invers dapat dilhat pada Tabel 3.14 berikut ini. Tabel 3.14 Hasil v-invers Percobaan I
v-1 v.v-1 mod n
1 9
2 18
3 27
4 36
5 45
6 54
7 63
8 72
9 81
10 90
11 99
12 108
13 117
14 126
15 135
16 1
s2= v-1(mod n) s sebagai kunci private Tian v-1= s2 mod n
= 12 mod 143 = 1
= 4
v-1= s2 mod n = 32 mod 143 = 9
v-1= s2 mod n = 42 mod 143 = 16
hasil kunci private s dapat dilihat pada tabel 3.15 berikut ini. Tabel 3.15 Hasil kunci private s Percobaan I
� �2����
1 1
2 4
3 9
4 16
• Tika random bit (0 atau 1)
• Tian : menentukan y, jika b = 0 y = r
Jika b = 1 y = �.�����
b = 0 y = r = 17 b = 1 y = 68
• Tika : melakukan pengecekan (autentikasi) b = 0 ����� = �2���� = 3
b = 1 ����� = �(�2����)���� = 3
2. Percobaan II
• Tim : p =23
q = 103
n = 23 x 103 = 2369