Analisis Subrutin RSA dan RSA-CRT 1 Analisis Algoritma RSA 1

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