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.
Ada empat tujuan mendasar dari kriptografi yang juga merupakan aspek
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
Secara garis besar, prosoes enkripsi adalah proses pengacakan
“naskah asli” (Plaintext) menjadi naskah acak (ciphertext) yang “sulit untuk dibaca” oleh seseorang yang tidak mempunyai kunci dekripsi,
artinya probabilitas mendapat kembali naskah asli oleh seseorang yang
tidak mempunyai kunci dekripsi dalam waktu yang tidak terlaluu lama
adalah sangat kecil. Jadi suatu proses enkripsi yang baik menghasilkan
naskah acak yang memerlukan waktu yang lama untuk di dekripsi oleh
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 disebut juga sebagai algoritma konvensional
adalah algoritma yang menggunakan kunci enkripsi yang sama dengan
kunci dekripsinya. Disebut konvensional karena algoritma yang biasa
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
Algoritma asimetrik (juga disebut algoritma kunci publik) didesain
sedemikian sehingga kunci yang digunakan untuk enkripsi berbeda dari
kunci yang digunakan untuk dekripsi. Kunci dekripsi tidak dapat
(sedikitnya dalam waktu yang diterima) dihitung dari kunci enkripsi.
Algoritma asimetri disebut algoritma kunci publik karena kunci enkripsi
dapat dibuat publik yang berarti semua orang boleh mengetahuinya. Setiap
orang dapat menggunakan kunci enkripsi tersebut untuk mengenkripsi
pesan, namun hanya orang tertentu (pemilik rahasia) yang dapat melakukan
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
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
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
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:
𝑿𝒏 =�𝒂𝑿𝒏−𝟏𝟐 +𝒃𝑿𝒏−𝟏+𝒄�𝒎𝒐𝒅𝒎
dimana 𝑋𝑛 adalah bilangan acak ke-n dari deretnya, 𝑋𝑛−1 adalah bilangan acak
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
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
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
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,..., vk dimana
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
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
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
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