5. Barisan bit acak adalah z
1,
z
2,
z
3,
....
Sebagai contoh, untuk menemukan bialangan acak berbasis RSA, yaitu:
Misal p = 11 dan q = 5 N = p.q = 11.5 =55
E3, or S = 3
X x
= 3
i
= x
i -
1
e
= 3
3
x mod 55 = 27
2
= 27
3
x mod 55 = 48
3
= 48
3
x mod 55 =42
4
= 42
3
karena x mod 55 = 3
4
= x
1
z berarti dilakukan pengulangan setelah 3 kali
i
z mod 2
1
z = 27 mod 2 = 1
2 =
z 48 mod 2 = 0
3
z = 3 mod 2 = 1
4
karena z = 27 mod 2 = 1
4
= z
1
jadi baris acak yang dihasilkan maka pengulangan dilakukan setelah 3 kali
1011 0110 1101 1011 0101 dan seterusnya, kemudian dikonversikan ke bilangan desimal
11 6 13 11 5
2.4 Algoritma Lehmann
Tes yang paling sederhana adalah menggunakan algoritma Lehmann. Cara kerja algoritma Lehmann adalah sebagai berikut :
{ Masukan: p yang akan diuji keprimaannyaKeluaran: p adalah prima atau tidak prima }
a Bangkitkan bilangan acak a yang lebih kecil dari p.
b Hitung a
p – 12
c Jika a
mod p.
p – 12
≡ 1 atau –1 mod p, maka p tidak prima.
Universitas Sumatera Utara
d Jika a
p – 12
≡ 1 atau –1 mod p, maka peluang p bukan prima adalah 50.
Ulangi pengujian dengan algoritma Lehmann di atas sebanyak t kali dengan nilai a yang berbeda. Jika hasil perhitungan langkah b sama dengan 1 atau –1, tetapi
tidak selalu sama dengan 1, maka peluang p adalah prima mempunyai kesalahan tidak lebih dari 12
t
.
Pengujian menggunakan algoritma Lehmann dianjurkan diulangi sebanyak lima kali dengan nilai a yang berbeda. Jika hasil perhitungan langkah ke-dua
sama dengan 1 atau -1, maka peluang p adalah prima mempunyai kesalahan tidak lebih dari lima puluh persen. Bilangan acak yang digunakan pada algoritma Lehmann dapat
dipilih nilai yang kecil agar perhitungan lebih cepat. Algoritma Lehmann menentukan keprimaan suatu bilangan dengan cara yang sangat sederhana dan masih sangat diragukan
kevalidannya. Selain algoritma Lehmann, metode lain yang banyak digunakan adalah Rabin-Miller
Schneier, 1996
.
2.5 Algoritma Kriptografi RSA
Algoritma kriptografi RSA ditemukan oleh tiga orang yang kemudian nama-nama
mereka disingkat menjadi RSA. Ketiga penemu itu adalah Ron Riverst, Adi Shamir, dan Leonard Adleman. RSA dibuat di MIT pada tahun 1977 dan dipatenkan oleh
MIT Massachussets Institute of Technology pada tahun 1983. Sejak 21 September tahun 2000, paten tersebut berakhir, sehingga saat ini semua orang dapat
menggunakannya dengan bebas Brian, 2000. RSA merupakan algoritma yang mudah untuk diimplementasikan dan dimengerti.
Algoritma RSA adalah sebuah algoritma pada enkripsi kunci publik. RSA merupakan algoritma pertama yang cocok digunakan untuk digital signature karena
kehandalannya dalam proses enkripsi. Hal ini menjadikan algoritma yang lebih banyak dikembangkan dalam bidang kriptografi public key.
2.5.1 Proses Algoritma RSA
Proses atau cara kerja dari algoritma RSA dapat dilihat sebagai berikut: 1. Menentukan dua bilangan prima p
≠ q secara acak dan terpisah untuk tiap-tiap p dan q. Bilangan prima tersebut diperoleh melalui uji proses prima yang
Universitas Sumatera Utara
menggunakan metode CSPRNG berbasis RSA dan algoritma Lehman. Sifat dari kedua bilangan ini adalah rahasia. Ini berarti hanya pihak pengirim dan penerima
saja yang mengetahuinya. 2. Melakukan perhitungan n = pq. n merupakan hasil perkalian dari p dikalikan
dengan q 3. Melakukan perhitungan nilai totient
φ n= p-1q-1. 4. Menentukan nilai kunci enkripsi e dengan syarat bahwa nilangan tersebut
merupakan bilangan bulat integer 1 e φn dimana nilai GCD φn, e=1.
5. Menghitung kunci enkripsi yang dilakukan dengan perhitungan kunci dekripsi dengan rumus d
≡ e
-1
6. Setelah mendapatkan kunci-kunci tersebut maka dapat dilakukan proses enkripsi maupun proses dekripsi.
mod φn.
7. Rumus untuk melakukan proses enkripsi adalah C = M
e
8. Rumus untuk melakukan proses dekripsi adalah P = C mod n
d
mod n
2.5.2 Contoh Kasus Algoritma RSA
Algoritma RSA disimulasikan dalam sebuah simulasi pengiriman pesan yang dilakukan antara Alice dan Bob. Alice mengizinkan Bob untuk mengirimkan sebuah
pesan pribadi private message. Dalam algoritma RSA multiple-key, Alice dan Bob akan melakukan langkah-langkah pada sebagai berikut :
1. Alice penerima dan Bob pengirim menyepakati dua buah bilangan prima
sebagai kunci privat dari pesan yang akan dikirimkan. Misalkan kunci tersebut adalah bernilai p=11 dan q=7.
2. Setelah disepakati kedua bilangan prima tersebut kemudian digunakan untuk
menghitung nilai totient dengan rumus n =pq, sehingga didapat nilai: n
= 117= 77 3.
Langkah selanjutnya adalah menghitung nilai totient dengan rumus ϕn =p– 1q-1,
sehingga didapat nilai: n = 11-17-1= 60. Nilai n dan nilai totient akan digunakan dalam perhitungan nilai kunci enkripsi.
4. Dari nilai totient yang didapat, maka Bob dapat menghitung nilai kunci enkripsi
e yang digunakan dalam program dengan syarat bahwa nilai 1e
ϕn dan juga
Universitas Sumatera Utara
nilai e relatif prima dengan ϕn. Hal ini dapat dihitung dengan menghitung
GCD ϕn,e=1. Dalam perhitungan didapati:
GCD 60, e = 1 , 1e60 e =
19 Didapat nilai e yang memungkinkan dan disepakati oleh keduanya adalah e = 19.
Dengan nilai kunci enkripsi ini makan selanjutnya dapat dilakukan proses enkripsi.
5. Kunci dekripsi juga langsung ditetapkan oleh kedua belah pihak dengan syarat
rumusan d= e
-1
d = e mod
ϕ n. Dari nilai e yang didapat sebelumnya maka dapat dihitung nilai d dengan langkah sebagai berikut :
-1
d = 19
mod ϕ n
-1
d = 19
mod 60
Kunci dekripsi digunakan untuk mengembalikan nilai ciphertext ke dalam bentuk plaintext.
6. Proses enkripsi merupakan proses dimana pesan yang sebelumnya berupa
plaintext yang dikodekan menjadi ciphertext. Terlebih dahulu Bob akan membuat pesan rahasia berupa teks. Dalam kasus ini pesan yang akan
digunakan adalah kode 100. Dari rumus perhitungan enkripsi C = m
e
Pesan yang akan dikirim M = 100 mod n,
maka dapat dihitung kode ciphertext dari setiap pesan tersebut sebagai berikut:
Nilai dari setiap Plaintext P
1
C = M
= 100, maka nilai ciphertext dari setiap pesan dengan perhitungan :
e
= 100 mod n
19
C = 40
mod 60
7. Setelah mendapatkan semua kode ciphertext maka dapat dirangkai seluruh kode
yang menghasilkan ciphertext sebesar 40. Pesan inilah yang akan dikirimkan kepada Alice, sehingga pihak lain tidak akan mengetahui makna pesan
sebenarnya.
Universitas Sumatera Utara
8. Alice dapat mendapatkan pesan sebenarnya dengan melakukan proses dekripsi.
Dari rumus perhitungan dekripsi P = C
d
C = 40
mod n, maka dapat dihitung kode
plaintext dari setiap chipertext tersebut sebagai berikut:
Nilai dari setiap Plaintext : P
1
= C
d
mod n = C
1 d
= 40 mod n
19
P mod
60
1
Setelah mendapatkan semua plaintext terhitung maka dapat dirangkai seluruh kode dan menghasilkan plaintext adalah 40
= 40
9. Dari contoh didapat bahwa Alice dapat membuka kembali pesan yang sudah
dienkripsi dengan melakukan proses dekripsi.
2.6 Perhitungan Matematis