pengukuran running time dari setiap perlakuan. Ulangan setiap perlakuan dilakukan sebanyak
10 kali untuk masing-masing RSA dan RSA- CRT.
Lingkungan Penelitian
Perangkat keras dan perangkat lunak yang digunakan adalah sebagai berikut.
a. Perangkat lunak: sistem operasi
Windows XP Professional Edition dan aplikasi bahasa pemrograman Java,
b. Perangkat keras: Prosesor Intel Core
Duo.
HASIL DAN PEMBAHASAN
Analisis Algoritma
Pada penelitian ini dilakukan analisis terhadap algoritma RSA dan RSA-CRT.
Algoritma tersebut dapat dibagi menjadi tiga bagian utama, yaitu algoritma pembangkitan
kunci, algoritma enkripsi, dan algoritma dekripsi. Adapun subrutin-subrutinnya diacu
dari
Menezes. Masing-masing
algoritma tersebut dapat dilihat pada analisis berikut.
1. Analisis Subrutin RSA dan RSA-CRT 1.1
Analisis Subrutin Primality Test
Pada subrutin ini RSA menggunakan algoritma Miller-Rabin. Algoritma Miller-Rabin
adalah sebagai berikut. a
x ;= a
m
mod n; b
If x ≡ 1 mod n return ”n is prime” and halt;
c For j = 0, 1, ..., k-1
d If x ≡ -1 mod n return ”n is
prime” and halt; e
Else x := x
2
mod n; f
Return ”n is composite” and halt; Subrutin Primality Test menggunakan
algoritma modular exponentiation, sehingga kompleksitasnya adalah Olg n
3
. Menezes et al
. 1996.
1.2 Analisis Subrutin Euclid
Subrutin Euclid berfungsi untuk menentukan gcd antara 2 bilangan bulat a dan b. Algoritma
subrutin Euclid adalah sebagai berikut. a
If b = 0 Then b
Euclid a c
Else d
Euclid b, a mod b Proses ini dilakukan dengan menggunakan
algoritma perkalian, sehingga kompleksitasnya adalah Olg n
2
. Menezes et al. 1996.
1.3 Analisis Subrutin Extended Euclid
Subrutin Extended Euclid digunakan untuk mencari kunci pribadi. Algoritma subrutin
Extended Euclid adalah sebagai berikut.
a If b = 0 Then
b return a, 1, 0
c d1, x1, y1 Extended Euclid b, a,
mod b d
d, x, y d1, y1, x1 - ab y1 e
return d, x, y Subrutin
Extended Euclid
juga menggunakan algoritma perkalian, sama seperti
pada subrutin
Euclid ,
sehingga kompleksitasnya adalah Olg n
2
. Menezes et al
. 1996.
1.4 Analisis Subrutin Modular
Exponentiation
Algoritma Modular
Exponentiation digunakan untuk melakukan operasi modular,
a
b
mod n. Algoritmanya adalah sebagai berikut. a
d 1 b
Andaikan b
1
, b
2
, ... b
k-1
, b
k
adalah representasi biner dari b
c Untuk i 1 sampai k lakukan
d d dd mod n
e Jika b
i
= 1 maka f
d da mod n g
Modular Exponentiation d Algoritma
Modular Exponentiation
mempunyai kompleksitas sebesar Olg n
3
Menezes et al. 1996.
2. Analisis Algoritma RSA 2.1
Analisis Algoritma Pembangkitan Kunci
a Pilih dua bilangan prima, p dan q
secara acak dan terpisah untuk setiap p dan q. b
Hitung n = p x q. c
Hitung n = p-1 q-1. d
Pilih bilangan bulat antara satu dan 1e yang juga merupakan coprime dari .
Coprime yang dimaksud adalah bilangan
terbesar yang dapat membagi e dan untuk
menghasilkan nilai 1 pembagi ini dinyatakan dengan gcd.
e Hitung d, dimana d e
-1
mod n.
Pada baris a, diperlukan algoritma Miller- Rabin untuk menentukan prima tidaknya suatu
bilangan, sehingga kompleksitasnya sebesar O
lg n
3
. Baris b dan c merupakan
perkalian biasa, sehingga kompleksitasnya adalah Olg n
2
. Baris d menggunakan subrutin Euclid, sehingga kompleksitasnya
adalah Olg n
2
. Baris e menggunakan subrutin Extended Euclid yang mempunyai
kompleksitas sebesar Olg n
2
. Jadi total secara keseluruhan, kompleksitas algoritma
pembangkitan kunci pada RSA adalah Olg n
3
. 2.2
Analisis Algoritma Enkripsi
Diagram alir proses enkripsi pada algoritma RSA dapat dilihat pada Gambar 2.
Plaintext
Proses Enkripsi Pesan
Kunci Publik n,e
Ciphertext
Gambar 2 Proses enkripsi pesan pada RSA Proses enkripsi pesan pada RSA adalah
menghitung C, dimana C = M
e
mod n, dengan e
adalah eksponen enkripsi, M adalah plaintext, C
adalah ciphertext, dan n adalah modulus. Proses ini dilakukan menggunakan algoritma
modular exponentiation
, sehingga
kompleksitasnya adalah Olg n
3
.
2.3 Analisis Algoritma Dekripsi
Diagram alir proses dekripsi pada algoritma RSA dapat dilihat pada Gambar 3.
Gambar 3 Proses dekripsi pesan pada RSA Proses dekripsi pesan pada RSA adalah
menghitung M, dimana M = C
d
mod n, dengan d
adalah eksponen dekripsi, M adalah plaintext, C
adalah ciphertext, dan n adalah modulus. Proses ini dilakukan menggunakan algoritma
modular exponentiation
, sehingga
kompleksitasnya adalah Olg n
3
.
3. Analisis Algoritma RSA-CRT 3.1