e kunci enkripsi: bilangan acak dalam rentang 1 e ϕn,
dengan syarat gcde, ϕn = 1
d kunci dekripsi:e
-1
mod ϕn
K
publik
= e, n K
privat
= d P = plain text
C = cipher text
2.4.2 Enkripsi RSA Proses enkripsi RSA menggunakan kunci publik yang telah dibangkitkan sebelumnya.
Enkripsi pada RSA menggunakan fungsi eksponensial modulokunci enkripsi e berikut:
K
publik
= e, n C P
e
mod n
2.4.3 Dekripsi RSA Untuk mengembalikan cipher text menjadi plain text, dekripsi RSA juga berupa fungsi
eksponensial modulon dengan menggunakan kunci privat. Berikutproses dekripsi RSA:
K
publik
= e, n K
privat
= d P C
d
mod n
2.5 Sistem Kriptografi Multiple-Key RSA
Kriptografi kunci publik umumnya menggunakan dua kunci untuk masing-masing proses enkripsi dan dekripsi. Pada 1988, Colin Boyd memperkenalkan konsep
generalisasi RSA sehingga menjadi algoritma Multiple-Key RSA [18]. Dalam fungsi modulo RSA, n merupakan hasil perkalian dua bilangan prima p dan q sehingga
d · e ≡ 1 mod ϕn
Untuk konsep ini, dipilih sejumlah t kunci, sehingga K
1
· K
2
· …· K
t
≡ 1 mod ϕn
Universitas Sumatera Utara
Berikutlangkah-langkah yang terdapat pada Multiple-Key RSA: p, qbilangan prima acak besar, p
≠ q n p · q, sehingga
ϕn p – 1· q – 1 t = jumlah kunci enkripsi danatau dekripsi
Pembangkitan kunci enkripsi: K
e1
bilangan acak ganjil dalam rentang 1 K
e1
ϕn, gcdK
e1
, ϕn = 1
K
e2
bilangan acak ganjil dalam rentang 1 K
e2
ϕn, gcdK
e1
·K
e2
, ϕn = 1
⁞ K
et
bilangan acak ganjil dalam rentang 1 K
et
ϕn, gcdK
e1
·K
e2
· … · K
et
, ϕn = 1
e K
e1
·K
e2
· … · K
et
Pembangkitan kunci dekripsi: K
d1
bilangan acak ganjil dalam rentang 1 K
d1
ϕn, gcdK
d1
, ϕn = 1,
K
e1 -1
mod ϕn
K
d2
bilangan acak ganjil dalam rentang 1 K
d2
ϕn, gcdK
d2
·K
d2
, ϕn = 1, K
e2 -1
mod ϕn
⁞ K
dt
bilangan acak ganjil dalam rentang 1 K
dt
ϕn, gcdK
d1
·K
d2
· … · K
dt
, ϕn = 1, K
et -1
mod ϕn
d K
d1
·K
d2
· … · K
dt
K
publik
= K
e
, n K
privat
= K
d
P = Plain text C = Cipher text
Proses Enkripsi: K
publik
= K
e
, n C P
Ke
mod n Proses Dekripsi:
K
publik
= K
e
, n, K
privat
= K
d
P C
Kd
mod n
Universitas Sumatera Utara
2.6 Algoritma Miller-Rabin
Algoritma Miller-Rabin merupakan algoritma probabilistik pengujian keprimaan sebuah bilangan berdasarkan pada Fermat’s LittleTheorem dan kepemilikan akar
kuadrat [3]. Fermat’s LittleTheorem menyatakan bahwa �
�−1
≡ 1 ��� � apabila n adalah bilangan prima. Sedangkan untuk kepemilikan akar kuadrat, jika n
adalah bilangan prima, akar kuadrat modulo n
��
2
= 1 ��� ��
akan menghasilkan 1 atau
˗1 �� + 1� − 1 = 0 ��� ��.
Misalkan � – 1 = 2
�
� di mana � ∈ ℕ ialah ganjil dan � ∈ ℕ serta n merupakan bilangan integer positif ganjil n
≥ 3 yang akan diuji keprimaannya [13]. Algoritma Miller-Rabin tidak menghitung
�
�−1
��� � secara langsung, melainkan menghitung deret berikut secara berulang:
�
�
≡ �
2 �
≡ �
2
2
�
≡ ⋯ ≡ �
2
�−1
�
≡ �
2
�
�
��� �. Pada setiap perhitungan �
2
�
�
dilakukan pengujian Fermat dan pengujian kepemilikan akar kuadrat. Jika pengujian akar kuadrat ialah positif, n
dideklarasikan sebagai bilangan komposit. Jika pengujian Fermat ialah positif, maka n mungkin bilangan prima. Berikut pseudocode algoritma Miler-Rabin:
MillerRabinn, s: 1. for j = 1 to s:
2. a = Random1, n-1 3. if Witnessa, n:
4. return “Composite” 5. return “Prime”
Witnessa, n: 1. let t and u be such that t
≥ 1, u is odd and n – 1 = 2
t
u 2.x
= ModularExponentationa, u, n 3. for i = 1 to t:
4. �
�
= �
�−1 2
��� � 5. if x
i
== 1 and x
i-1
≠ 1 and x
i-1
≠ n – 1: 6.return True
7. if x
t
≠ 1: 8. return True
9. return False
Universitas Sumatera Utara
2.7 Strong Prime