Protokol Kriptografi Implementasi Zero Knowledge Proof Dengan Protokol Feige Fiat Shamir Dan quadratic Linear Congruential Generator

dengan kunci publik, sedangkan kunci dekripsi disebut dengan kunci privat. Proses dari skema kriptografi asimetri dapat dilihat pada Gambar 2.5. Enkripsi E K1 P=C Dekripsi D K2 C=P Kunci Publik, K 1 Kunci Privat, K 2 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 Arbiter adalah pihak ketiga yang dipercaya yang melengkapi transaksi antara dua pihak atau lebih. Contohnya yaitu penjualan mobil dengan menggunakan jasa makelar, transaksi yang menggunakan kartu kredit, dan lain-lain. Pada protocol di dalam computerarbiter adalah pihak ketiga yang menjamin tidak ada kecurangan yang dilakukan ke dua belah pihak. Arbiter biasanya adalah program atau mesin yang yang mengirim kembali pesan dari atu user ke user lain dalam jaringan computer.Arbiter selalu berpartisipasi dalam setiap transaksi. Universitas Sumatera Utara 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 Protocol ini tidak melibatkan pihak ketiga. Prosedur yang digunakan adalah masing-masing pihak yang melakukan hubungan mempunyai kontrol terhadap pihak lainnya. Kelebihannya adalah biaya yang dikeluarkan lebih rendah dibanding dengan dua protocol sebelumnya, tetapi kekurangannya adalah sangat sulit melakukan pengamatan pada setiap kondisi. Universitas Sumatera Utara

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 GeneratorCPRNG 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 Joan Boyar 1251 dengan rumus: � � = ��� �−� � + �� �−� + � ���� � dimana � � adalah bilangan acak ke-n dari deretnya, � �−1 adalah bilangan acak sebelumnya, a dan b merupakan bilangan pengali increment, c merupakan konstanta dan m merupakan modulus. D. E. Knuth1981. Universitas Sumatera Utara 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 � �−1 2 + 11 � �−1 + 5 ��� 17 dan � adalah 0. Hasil perhitungan dapat dilihat pada Tabel 2.1. Tabel 2.1 Contoh QLCG X � � 1 5 2 14 3 1 4 6 5 6 5 7 14 8 1 9 6 10 11 5 12 14 Dari hasil contoh pada tabel 2.1 dapat diketahui bahwa keunggulan QLCG terletak pada kecepatannya dan hanya membutuhkan sedikit operasi bit. Sebenarnya, QLCG tidak dapat digunakan untuk kriptografi karena bilangan acaknya dapat diprediksi urutan kemunculannya dapat dilihat pada tabel 2.1. Meskipun secara teoritis QLCG mampu menghasilkan bilagan acak Universitas Sumatera Utara 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. Contoh yang sering digunakan untuk menjelaskan konsep zero- knowledge proof biasanya menggunakan gua atau terowongan yang bercabang dan terdapat suatu pintu yang menghubungkan kedua cabang yang hanya dapat dibuka oleh seseorang yang mengetahui suatu kode rahasia Di dalam gua itu hanya terdapat dua orang yakni Tian dan Tika. Tian mengaku mengetahui kata rahasia Universitas Sumatera Utara 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 Tika Universitas Sumatera Utara 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.5 Feige Fiat Shamir

Konsep zero-knowledge protocol digunakan dalam beberapa protokol untuk identifikasi zero-knowledge identification protocol. Protokol pertama jenis ini adalah 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 gcds; n = 1. Kunci publik Tian adalah v = s 2 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 = r 2 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 = rs e mod n dan mengirim y ke Tika. d. Jika y = 0 atau y 2 ≡ xv e 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 2 t . 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 x ≡ r 2 v -1 mod n Universitas Sumatera Utara kepada Tika. Ketika diminta untuk mengirim y = rs mod n maka Tian mengirim y = r. Jadi Tika terkelabui karena xv ≡ r 2 v -1 vmod n ≡ r 2 mod n ≡ y 2 mod n: Dengan pengacakan, jika Tian mengirim x = r 2 mod n maka ia kadang harus menggunakan s, sedangkan jika ia mengirim x=r 2 v -1 mod n maka ia kadang harus mencari akar kuadrat modulo n karena ia harus mengirim y = r 2 v -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 = r 2 mod n atau x = r 2 v -1 mod n tergantung pada nilai e. Informasi yang dikeluarkan oleh Tian dapat dikeluarkan oleh siapa saja tanpa mengetahui p; q dan s, jadi tidak 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 s 1 , s 2 , ......, s k dimana gcds i , n = 1 untuk setiap i, dan mempublikasikan k kunci publik v 1 , v 2 ,......., v k dimana v i = s i 2 mod n untuk setiap i. Langkah-langkah Feige-Fiat-Shamir adalah sebagai berikut. a. Tian memilih secara acak, menggunakan random number generator, r,0 r n, dan s ∈ {-1, 1}, dan mengirim x = sr 2 mod n kepada Tika. b. Tika memilih secara acak e 1 , e 2 ,..., e k , e i ∈{0, 1} untuk setiap i, dan mengirimnya ke Tian. c. Tian mengkomputasi y = rs 1 e1 s 2 e2 ...s k ek mod n dan mengirim y ke Tika. d. Jika y 2 ≡ ± xv1 e1 v 2 e2 ...v k ek mod n maka Tika menolak dan proses identifikasi gagal. Universitas Sumatera Utara 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 v i = 1=s i 2 mod n untuk kunci 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: x 2 ≡1 mod 35 mempunyai penyelesaian: x = 1, 6, 29,or 34. 4:x 2 ≡ 4 mod 35 mempunyai penyelesaian: x = 2,12, 23,or33. 9: x 2 ≡9 mod 35 mempunyai penyelesaian :x = 3,17,18, or32. 11:x 2 ≡11mod 35mempunyai penyelesaian: x = 9,16,19,or26. 14: x 2 ≡14 mod 35 mempunyai penyelesaian: x = 7 or 28. 15: x 2 ≡15 mod 35 mempunyai penyelesaian: x = 15 or 20. 16: x 2 ≡16mod 35mempunyai penyelesaian:x=4,11, 24, or31. 21: x 2 ≡21 mod 35 mempunyai penyelesaian: x = 14 or 21. 25: x 2 ≡25 mod 35 mempunyai penyelesaian: x = 5 or 30. 29: x 2 ≡29mod 35mempunyai penyelesaian:x= 8,13,22 or 27. 30: x 2 ≡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=sqrtv -1 1 1 1 4 9 3 9 4 2 11 16 4 Catatan bahwa 14, 15, 21, 25 dan 30 tidak mempunyai inversi dengan mod 35 karena angka-angka tersebut tidak relatif prima dengan 35. Maka Tian mendapat kunci publik k = 4 dengan nilai:{4,11,16,29}. Kunci privat yang berhubungan adalah {3,4,9,8}. Kemudian langkah-langkah protokol Feige Fiat Shamir sebagai berikut: Universitas Sumatera Utara a. Tian memilih sebuah bilangan acak r= 16, hitung 16 2 mod35=11, dan kemudian angka tersebut dikirim ke Tika. b. Tika mengirim Tian bilangan biner acak {1,1,0,1}. c. Tian menghitung 163 1 4 1 9 8 1 mod 35=31 dan dikirim ke Tika d. Tika memeriksa bahwa 3 12 4 1 11 1 16 29 1 mod 35=11 Tian dan tika mengulang protokol ini sampai t kali, dengan bilangan acak yang berbeda setiap pengulangan, sampai Tika percaya. Dengan angka yang kecil seperti contoh di atas, maka tidak terlihat keamanan data yang sebenarnya. Tetapi dengan angka sepanjang 512 bit atau lebih, maka Tika tidak akan dapat mempelajari apa-apa tentang kunci rahasia Tian. Universitas Sumatera Utara 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