2.8 Algoritma Euclid
Algoritma ini digunakan untuk mencari nilai pembagi persekutuan terbesar dari 2 dua bilangan bulat. Algoritma ini didasarkan pada pernyataan berikut ini :
Dua bilangan bilangan bulat positif r dan r
1
, dengan r ≥ r
1
, kemudian dihitung menggunakan algoritma pembagian :
r = q
1
r
1
+ r
2
, 0 r
2
r
1
r
1
= q
2
r
2
+ r
3
, 0 r
3
r
2
r
n-2
= q
n-1
r
n-1
+ r
n
0 r
n
r
n-1
r
n-1
= q
n
r
n
Universitas Sumatera Utara
Dari pernyataan tersebut, dapat diperoleh : GCDr
, r
1
= GCDr
1
, r
2
= ……….. = GCDr
n-1
,r
n
= GCDr
n
,0 = r
n
2.1 Contoh :
GCD40,24 adalah : 40 = 124 + 40-24
40 = 124 + 16 24 = 116 + 24
– 16 24 = 116 + 8
16 = 28 Jadi, GCD40,24=8.
2.9 Extended Euclidean
Algoritma Extended Euclidean ini merupakan perluasan dari algoritma Euclide yang berfungsi untuk menentukan nilai x dan y sedemikian sehingga r
x + r
1
y = GCDr
,r
1
dengan r , r
1
merupakan bilangan bulat positif serta x dan y merupakan bilangan bulat. Dua bilangan bulat r
dan r
1
yang merupakan pairwise relatively prime dapat menemukan bilangan bulat x dan y sedemikian sehingga r
x + r
1
y = 1. Dengan menggunakan algoritma Euclid dan rumus :
tj = t
j-2
- q
j –1
t
j-1
, j ≥ 2 2.2
dengan tj adalah suatu barisan bilangan t
1
, t
2
, t
3
,…, t
n
dan q
j
diperoleh dari perhitungan GCDr
, r
1
= 1 dengan r
1-1
= t
n
. Sehingga diperoleh : r
n
= t
n
r
1
atau 1 = t
n
r
1
2.3
Universitas Sumatera Utara
Contoh : 11x + 23y = 1
Hasil Bagi
Sisa Bagi
Subsitusi Penggabungan
- 11
- 11 = 111 + 230
- 23
- 23 = 110 + 231
11 11=111+230
– 110 + 2310 11 = 111 +230 2
1 1 = 110 + 231
– 111 + 2302 1 = 11-2 + 231 11
Karena sisa bagi mencapai 0, maka proses berakhir
Hasil akhir yang diperoleh adalah 1 = 11-2 + 231, sehingga didapat nilai x = -2 dan y = 1.
2.10 Algoritma Rabin Public Key
Algoritma Rabin Public Key pertama kali diperkenalkan pada tahun 1979 oleh Michael O. Rabin. Algoritma Rabin Public Key adalah salah satu sistem kriptografi
asimetris yang menggunakan kunci publik dan kunci privat. Algoritma Rabin Public Key merupakan varian algoritma Rivest Shamir Adleman RSA. Fungsi dasar
algoritmanya mirip dengan fungsi dasar dari algoritma RSA. Hanya saja komputasinya lebih sederhana dibandingkan algoritma RSA.
Proses Pembangkitan Kunci Pada algoritma Rabin Public Key, proses pembangkitan kuncinya dilakukan sebagai
berikut : 1. Pilih 2 dua buah bilangan prima besar sembarang yang saling berbeda p dan
q, dimana p ≡ q ≡ 3 mod 4. Atau dengan kata lain jika p dan q di modulo 4
akan menghasilkan 3. 2. Hitung nilai n yang merupakan kunci publik dengan rumus sebagai berikut:
n = p q dengan p dan q adalah kunci privat. Untuk mengenkripsi pesan hanya dibutuhkan kunci publik n, sedangkan untuk
dekripsi, dibutuhkan bilangan p dan q sebagai kunci privat.
Proses Enkripsi
Universitas Sumatera Utara
Proses enkripsi pada algoritma Rabin Public Key menggunakan kunci publik n. Pada proses dekripsi menggunakan Algoritma Rabin Public Key akan menghasilkan 4
empat buah kemungkinan plaintext. Oleh karena itu, diperlukan modifikasi dalam proses enkripsi dan dekripsi untuk menentukan plaintext yang sebenarnya. Berikut
langkah –langkah proses enkripsi pesan rahasia menggunakan algoritma Rabin Public
Key yang telah dimodifikasi adalah : 1. Ubah nilai plaintext m menjadi nilai biner, kemudian tambahkan dengan nilai
biner m itu sendiri redundant information atau dengan kata lain plainteks digandakan.
2. Ubah hasil penggandaan nilai biner plaintext menjadi nilai desimalnya. 3. Hitung nilai k yang merupakan kongruen nilai desimal dari hasil penggandaan
plaintext m terhadap kunci publik n dengan menggunakan rumus :
Hitung nilai ciphertext c dengan menggunakan rumus : c = m
2
mod n dengan c adalah ciphertext, n adalah kunci publik, dan m adalah nilai desimal dari
hasil penggandaan nilai biner plaintext. Metode dekripsi
Proses enkripsi pada algoritma Rabin Public Key menggunakan kunci privat p dan q. Berikut langkah
–langkah proses dekripsi dengan menggunakan algoritma Rabin Public Key yang telah dimodifikasi:
1. Tentukan nilai Yp dan Yq yang merupakan pembagi GCD Greatest Common Divisor dari p dan q dengan menggunakan Algoritma Extended Euclidean. Karena
GCD bilangan prima adalah 1, maka dapat ditulis sebagai berikut : Ypp + Yq q = 1
2. Hitunglah nilai akar kuadrat dari ciphertext terhadap p dan q dengan rumus:
Universitas Sumatera Utara
dengan m
p
adalah akar kuadrat dari ciphertext terhadap p dan m
q
adalah akar kuadrat dari ciphertext terhadap q.
3. Hitung nilai r, s, t dan u dengan menggunakan Chinese Remainder Theorem, dengan persamaan berikut :
r = Ypp mq + Yq q mp mod n s = Ypp mq - Yq q mp mod n
t = -Ypp mq + Yq q mp mod n u = -Ypp mq - Yq q mp mod n
4. Tambahkan r,s,t,u dengan kongruen nilai desimal hasil penggandaan plainteks k yang dikalikan dengan kunci publik n.
R = kn+r S = kn+s
T = kn+t U = kn+u
5. Ubahlah nilai desimal R,S,T,U ke dalam bentuk biner. Kemudian nilai biner R,S,T,U dibagi menjadi 2 dua bagian. Bandingkan kedua bagian tersebut. Jika kedua
bagian tersebut menghasilkan bentuk biner yang sama, maka didapatlah hasil dekripsi ciphertext c dengan mengubah bentuk biner salah satu bagian yang telah
dibagi menjadi 2dua bagian yang sama.
2.11 Rivest Shamir Adleman RSA