Simulasi Pencarian Kunci Privat Dengan Metode Modifikasi Pollard Rho Pada Algoritma Kriptografi Rsa

BAB 2
TINJAUAN PUSTAKA

2.1

Kriptografi

Kriptografi pada awalnya dijabarkan sebagai ilmu yang mempelajari bagaimana
menyembunyikan pesan. Namun pada pengertian modern kriptografi adalah ilmu
yang bersandarkan pada teknik matematika untuk berurusan dengan keamanan
informasi seperti kerahasiaan, keutuhan data dan otentikasi entitas. Jadi pengertian
kriptografi modern adalah tidak saja berurusan hanya dengan penyembunyian pesan
namun lebih pada sekumpulan teknik yang menyediakan keamanan informasi.
Kriptografi klasik umumnya merupakan teknik penyandian dengan kunci simetrik dan
menyembunyikan pesan yang memiliki arti ke sebuah pesan yang nampaknya tidak
memiliki arti dengan metode pergantian huruf (substitusi) atau transpose (pertukaran
tempat).

2.1.1

Sistem Kriptografi


Sistem kriptografi terdiri dari 5 bagian, yaitu :
1. Plaintext: pesan atau data dalam bentuk aslinya yang dapat terbaca. Plaintext
adalah masukan bagi algoritma enkripsi. Untuk selanjutnya digunakan istilah teks
asli sebagai padanan kata plaintext.
2. Secret Key: secret key yang juga merupakan masukan bagi algoritma enkripsi
merupakan nilai yang bebas terhadap teks asli dan menentukan hasil keluaran
algoritma enkipsi. Untuk selanjutnya digunakan istilah kunci rahasia sebagai
padanan kata secret key.
3. Ciphertext: ciphertext adalah keluaran algoritma enkripsi. Ciphertext dapat
dianggap sebagai pesan dalam bentuk tersembunyi. Algoritma enkripsi yang baik
akan menghasilkan ciphertext yang terlihat acak. Untuk selanjutnya digunakan
istilah teks sandi sebagai padanan kata ciphertext.

Universitas Sumatera Utara

4. Algoritma Enkripsi: algoritma enkripsi memiliki 2 masukan teks asli dan kunci
rahasia. Algoritma enkripsi melakukan transformasi terhadap teks asli sehingga
menghasilkan teks sandi.
5. Algoritma Dekripsi: algoritma dekripsi memiliki 2 masukan yaitu teks sandi dan

kunci rahasia. Algoritma dekripsi memulihkan kembali teks sandi menjadi teks
asli bila kunci rahasia yang dipakai algoritma dekripsi sama dengan kunci rahasia
yang dipakai algoritma enkripsi (Sadikin, 2012).
Eve

Alice
M

Bob
Algoritma
Enkripsi

C
Saluran Publik

K

Algoritma
Dekripsi


M

K

Saluran Aman

Sumber Kunci

Gambar 2.1 Sistem Kriptografi Konvensional
Sumber Gambar: (Sadikin, 2012)
Pada Gambar 2.1 kunci rahasia dibangkitkan oleh pembangkit kunci dan dikirim
melalui saluran aman ke pihak penyandi (encryptor) maupun penerima sandi
(decryptor). Teks sandi dikirim melalui saluran umum sehingga ada pihak ketiga yang
dapat membaca teks sandi itu (Sadikin, 2012).

2.2

Sistem Kriptografi RSA

Pada tahun 1977, Rivest, Shamir, dan Adleman merumuskan algoritma praktis yang

mengimplementasikan sistem kriptografi kunci publik yang disebut dengan sistem
kriptografi RSA. Meskipun pada tahun 1977 badan sandi Inggris memublikasikan
bahwa Clifford Cock telah merumuskan sistem kriptografi RSA 3 tahun lebih dahulu
daripada Rivest, Shamir dan Adleman.
Algoritma enkripsi dan dekripsi sistem kriptografi RSA bersandar pada asumsi
fungsi satu arah (one-way function) yang dibangun oleh fungsi eksponensial modular

Universitas Sumatera Utara

dengan n = p · q, p dan q adalah bilangan prima dan Φ (n) = (p – 1) (q – 1). Gambar
2.2 mengilustrasikan sistem kriptografi kunci publik RSA (Sadikin, 2012).
Kunci
publik (e,n)

Bob

Pilih p dan q
n = p.q
(e,d) ß Φ(n)


Kunci
Privat (d)

Alice
P

C = Pemod n

C

P = Cdmod n

P

Teks asli

Enkripsi

Teks sandi


Dekripsi

Teks asli

Gambar 2.2 Sistem kriptografi dengan kunci publik RSA.
Sumber Gambar: (Sadikin, 2012)
Pada Gambar 2.2 digambarkan skema sistem kriptografi RSA biasa tanpa tambahan
modifikasi apapun dimana terdapat kunci public (n,e) dan kunci private d. Nilai n
dapat diakses oleh publik, sehingga rentan terhadap serangan faktorisasi. Pada saat ini
RSA yang dianggap aman adalah RSA dengan ukuran 1024 sampai dengan 2048 bit
(Sadikin, 2012).
Sistem kriptografi RSA dapat dimodifikasi, beberapa varian yang ada
diantaranya: RSA-CRT, Multiprime-RSA, Takagi-RSA (Galbraith, 2012). Modifikasi
ini muncul untuk meningkatkan waktu komputasi dan tingkat keamanan algoritma
RSA dari berbagai serangan. Sistem Kriptografi RSA biasanya dimanfaatkan sebagai
pengaman pesan pendek misalnya sebagai otentikasi atau digital signature (Sadikin,
2012).
2.2.1

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.
2. Melakukan perhitungan n = p · q (n merupakan hasil perkalian dari p dikalikan
dengan q).
3. Melakukan perhitungan nilai totient Φ (n) = (p - 1) · (q - 1).

Universitas Sumatera Utara

4. Menentukan nilai e dengan syarat bahwa bilangan tersebut merupakan bilangan
bulat (integer) 1 < e < Φ (n) dan nilai GCD (Φ (n), e) = 1 dimana e ialah kunci
publik.
5. Menghitung kunci dekripsi yang dilakukan dengan perhitungan kunci enkripsi
dengan rumus d ≡ e -1 (mod Φ (n)) dimana d ialah kunci privat.
6. Setelah mendapatkan kunci-kunci tersebut maka dapat dilakukan proses enkripsi
maupun proses dekripsi.
e

7. Rumus untuk melakukan proses enkripsi adalah C = P mod n.

d

8. Rumus untuk melakukan proses dekripsi adalah P = C mod n (Simarmata, 2012).
Contoh:
Diketahui bilangan prima p = 17 dan q = 31.
Selanjutnya dihitung parameter kunci publik (e, n) sebagai berikut:
n = p · q = 17 · 31 = 527

Φ (n)= (p – 1) · (q – 1) = 16 x 30 = 480
Misalnya e dipilih 77, nilai 77 memenuhi syarat karena GCD (480, 77) = 1. Jadi kunci
publik (Kpublik) = (77, 527).
Sedangkan parameter d = 77-1 mod 480 = 293. Jadi kunci privat (Kprivat) =293.
2.3

Algoritma Miller-Rabin

Algoritma Miller-Rabin merupakan algoritma probabilistik yang menguji keprimaan
sebuah bilangan yang diberikan berdasarkan pada Fermat’s LittleTheorem. Algoritma
Miller-Rabin menghitung deret berikut secara berulang : �� ≡ �2� ≡ �2
�2


�−1 �

≡ �2

��



2�

≡⋯≡

(��� �). Pada perhitungan �2 � dilakukan pengujian Fermat dan

pengujian kepemilikan akar kuadrat untuk i = 0, 1, 2, …, k . Jika pengujian akar
kuadrat ialah positif, n dideklarasikan sebagai bilangan komposit. Jika pengujian
Fermat ialah positif, maka n mungkin bilangan prima (Sadikin, 2012).

Berikut Algoritma Miller-Rabin:

1. Input sebuah bilangan yang akan diuji keprimaannya yaitu n.
2. Jika n < 2 atau n habis dibagi 2, maka n bukan prima (STOP).
3. Temukan m dan k sehingga n – 1 = 2k · m, dengan m bernilai ganjil yang didapat
melalui perulangan pembagian 2 dari n-1 dan k merupakan jumlah perulangan.

Universitas Sumatera Utara

4. Pilih sebuah bilangan acak a (1 < a < n-1).
5. x = am mod n. Jika x = 1 atau x = n-1, maka lanjutkan ke tahap 9.
6. x = x2 mod n. Jika x = 1, maka n bukan prima (STOP). Jika x = n-1, maka
lanjutkan ke tahap 9.
7. Lakukan perulangan pada tahap 6 sebanyak k-1.
8. Jika x != n-1, maka n bukan prima (STOP).
9. Lakukan perulangan pada tahap 4-8 sebanyak t (panjang digit n).
10. n mungkin prima (Sadikin, 2012).
2.4

Algoritma Euclid GCD

Algoritma Euclid merupakan salah satu metode untuk menemukan Greatest Common

Divisor (GCD).
Berikut Algoritma Euclid GCD:
1. Input 2 buah bilangan yang akan dicari GCD-nya yaitu m dan n.
2. Usahakan agar m > n. Jika tidak, maka tukar nilai m dan n.
3. Hitung r = m mod n.
4. Selama r != 0, lakukan:
m = n,
n = r,
r = m mod n.
5. Maka, nilai n saat ini adalah GCD dari m dan n.
2.5

Metode Pollard ρ

Metode Pollard ρ (baca Pollard Rho) dipublikasikan oleh John Pollard pada tahun
1975. Metode ini dipilih untuk menemukan faktor prima dari bilangan bulat yang
besar dengan hanya menggunakan jumlah lokasi memori yang konstan (Sutomo,
2005). Metode ini dikenal sebagi metode faktorisasi Pollard Monte Carlo. Algoritma
Pollard ρ berdasar pada hal berikut ini:
1. Terdapat x1 dan x2 sehingga s relatif prima terhadap (x1– x2) tetapi N tidak relatif
prima terhadap (x1– x2) dimana N ialah sebuah bilangan bulat dan s ialah faktor
pembagi N.

Universitas Sumatera Utara

2. Dapat dibuktikan bahwa s = GCD (x1 – x2) sehingga GCD(x1 – x2, N) dapat
bernilai 1 atau sebuah faktor N (Sadikin, 2012).
Metode Pollard ρ ialah metode probabilistik untuk memfaktorkan sebuah angka N
dengan mengiterasikan sebuah fungsi polynomial di dalam modulo N. Umumnya
fungsi yang digunakan ialah f(x) = x2+1, karena telah terbukti bekerja dengan baik
untuk masalah faktorisasi, namun fungsi polynomial lain dapat digunakan. John
Pollard menyarankan untuk membandingkan x1.i dengan x2.i untuk i = 1, 2, 3, ….
Untuk setiap i, diperiksa apakah GCD(x1.i – x2.i, N) merupakan faktor pembagi dari N.
Jika GCD(x1.i – x2.i, N) bernilai 1 atau N, maka proses iterasi dilanjutkan hingga faktor
pembagi ditemukan (Barnes, 2004).
Berikut Algoritma Pollard ρ:
1. Input sebuah bilangan yang akan difaktorkan yaitu N.
2. Terdapat x1 dan x2. Dipilih seed (x1 = 2, dan x2 = x1) dan fungsi polynomial
f(x) = x2+1.
3. Lakukan perhitungan pada x1 = f(x1) dan x2 = f(f(x2)).
4. Dilakukan perhitungan modulus pada x1= x1 mod N dan x2 = x2 mod N.
5. Dilakukan perhitungan GCD untuk mencari faktor yaitu s = GCD(|xi- x2.i|, N)
6. Lakukan perulangan pada tahap 3, 4 dan 5 hinnga s ≠ 1 dan s ≠ N
7. Jika s ≠ 1 dan s ≠ N, maka kedua faktor N ialah s dan N/s (Barnes, 2004).
Kompleksitas algoritma Pollard ρ membutuhkan perhitungan aritmatika sebanyak √s,
akan tetapi karena s diharapkan lebih kecil atau sama dengan
√N maka tetap saja
algoritma faktorisasi Pollard ρ tidak memungkinkan untuk bilangan integer besar.
Kompleksitas operasi-bit Pollard ρ adalah eksponensial yaitu, O(2nb/4) dengan nb
adalah jumlah bit N (Sutomo, 2005).
Contoh: Diambil n = 29 sebagai modulus, x0 = 2 sebagai seed dan f(x) = x2 + 1 sebagai
fungsi polynomial, maka perhitungan menggunakan metode Pollard ρ ialah:

Universitas Sumatera Utara

x7 ≡ x9 ≡ 7 (mod 29)

x8 ≡ x10 ≡ 21 (mod 29)

x6 ≡ 8 (mod 29)

x5 = 226 ≡ 23 (mod 29)

x4 = 3146 ≡ 14 (mod 29)

x3 = 677 ≡ 10 (mod 29)

x2 = 26

x1 = 5

x0 = 2

Gambar 2.3 Illustrasi Metode Pollard ρ
Gambar 2.3 menunjukkan bahwa ketika x9 dicapai, perhitungan berada dalam periode
bolak-balik x7 dan x8. Ini membentuk sebuah sirkuit. Bentuk ini mengingatkan pada
simbol yunani ρ (baca rho) (Mollin, 2005).
Pada RSA dengan n berukuran 1024 bit, maka faktorisasi dengan algoritma
Pollard ρ membutuhkan paling tidak 2256 operasi aritmatika. Misalnya sebuah
komputer mampu melakukan operasi sebanyak 230 per detiknya maka faktorisasi
Pollard ρ membutuhkan 2226 detik (Sadikin, 2012).
2.5.1. Modifikasi Pollard ρ
Pada algoritma Pollard ρ biasa terdapat sebuah fungsi polynomial yang digunakan
yaitu f(x) = x2 + 1. Fungsi ini diintegrasikan dengan modulo N untuk menghasilkan
deretan bilangan. Oleh sebab itu diperlukan modifikasi pada fungsi polynomial
tersebut untuk mengetahui apakah fungsi yang digunakan mempengaruhi kecepatan
faktorisasi dari metode Pollard ρ. Dalam hal ini, fungsi yang akan digunakan ialah

Universitas Sumatera Utara

fungsi polynomial pembangkit bilangan prima dengan harapan bahwa akan didapat
faktor dari sebuah bilangan N dengan lebih cepat.
2.5.2. Fungsi Polynomial
Legendre mengatakan bahwa tidak ada fungsi algebra rasional yang selalu
menghasilkan bilangan prima. Fungsi polynomial terbaik yang dapat membangkitkan
sangat banyak bilangan prima menurut Euler (1772), Nagel (1951), Gardner (1984),
Ball dan Coxeter (1987) yaitu: n2 + n + 41 yang menghasilkan bilangan prima berbeda
untuk 40 urutan bilangan bulat n = 0 - 39. Menurut Legendre pada tahun 1798, Fungsi
n2 – n +41 menghasilkan 40 bilangan prima untuk n = 1 – 40 dan bilangan tersebut
disebut

sebagai

“Euler

Numbers”.

Fungsi

polynomial

digunakan

dalam

membangkitkan deret bilangan pada metode Pollard ρ. Berikut merupakan tabel
fungsi polynomial hasil modifikasi yang digunakan dalam penelitian ini.
Tabel 2.1 Daftar Fungsi Polynomial
Polynomial
Dapat difaktorkan
Konstanta
x2 + 1

Tidak

Ganjil

x2 + 12x + 11

Ya

Prima

x2 + 2x + 23

Tidak

Prima

3x2 + 4x + 1

Ya

Ganjil

x2 – x + 1

Tidak

Ganjil

Pada Tabel 2.1 terdapat 5 fungsi polynomial yang berbeda. Fungsi x2 + 1 merupakan
fungsi polynomial standard yang paling sering digunakan pada metode Pollard ρ,
sedangkan sisanya merupakan fungsi polynomial modifikasi yang dibangun
berdasarkan 2 kriteria, yaitu: apakah fungsi polynomial tersebut dapat difaktorkan dan
nilai konstanta dari fungsi tersebut.

2.5.3. Faktorisasi Kunci RSA dengan Metode Pollard ρ
Sistem Kriptografi RSA memiliki kunci publik (e, n) untuk enkripsi dan kunci privat
(d) untuk dekripsi. Dengan memfaktorkan (n) akan didapat p dan q. Kemudian
perhitungan untuk mencari (d) dapat dilakukan dengan mengikuti Algoritma RSA.

Universitas Sumatera Utara

Contoh:
Diketahui Kunci public (e, n) dimana e = 77, n = 527. Kemudian n akan difaktorkan
untuk mendapatkan p dan q sehingga N = n = 527. Selanjutnya dicari faktor dari N
dengan metode Pollard ρ.
1. Dipilih seed dan fungsi polynomial.
x1= 2, x2 = x1 dan f(x) = x2+1.
2. Lakukan perhitungan pada x1 = f(x1) dan x2 = f(f(x2)).
x1= x12 + 1 = 22 + 1 = 5,

x2 = x22 + 1 = 22 + 1 = 5,
x2 = x22 + 1 = 52 + 1 = 26.

3. Dilakukan perhitungan modulus pada x1= x1 mod N dan x2 = x2 mod N.
x1 = 5 mod 527 = 5
x2 = 26 mod 527 = 26
4. Dilakukan perhitungan GCD untuk mencari faktor yaitu s = GCD(|x1- x2|, N)
s = GCD(|5-26|, 527) = 1
5. Lakukan perulangan pada tahap 2, 3 dan 4 hinnga s ≠ 1 dan s ≠ N
x1= x12 + 1 = 52 + 1 = 26

x2 = x22 + 1 = 262 + 1 = 677
x2 = x22 + 1 = 6772 + 1 = 458330.

x1 = 26 mod 527 = 26

x2 = 458330 mod 527 = 367

s = GCD(|26-367|, 527) = 31
6. Jika s ≠ 1 dan s ≠ N, maka kedua faktor N ialah p dan q dimana p = s = 31 dan
q = N / s = 527 / 31 = 17
Selanjutnya dengan memanfaatkan p dan q tersebut dapat dihitung kunci privat d
dengan algoritma RSA.

Φ (n)= (p – 1) x (q – 1) = 16 x 30 = 480
Sedangkan parameter d = 77-1 mod 480 = 293. Jadi kunci privat (Kprivat) = 293.

Universitas Sumatera Utara

2.6

Tinjauan Penelitian yang Relevan

1. B.R. Ambedkar dan S.S. Bedi dari MJP Rohilkhand University mengangkat judul
penelitian “A New Factorization Method to Factorize RSA Public Key
Encryption”. Pada penelitian ini, metode faktorisasi baru diajukan untuk
mendapatkan faktor dari sebuah bilangan bulat positif N. Penelitian ini berfokus
pada faktorisasi pada seluruh bilangan bulat trivial dan nontrivial dan
membutuhkan tahap yang lebih sedikit untuk proses faktorisasi RSA modulus N.
Metode ini didasarkan pada metode Pollard ρ (Ambedkar & Bedi 2011).
2. Kuldeep Singh, Rajesh Verma dan Ritika Chehal mengangkat judul penelitian
“Modified Prime Number Factorization Algorithm (MPFA) for RSA Public Key
Encryption”. Penelitian ini berfokus pada faktorisasi pada seluruh bilangan bulat
trivial dan nontrivial seperti halnya metode Fermat dan membutuhkan tahap
yang lebih sedikit untuk proses faktorisasi RSA modulus N. Hasil eksperimen
menunjukkan peningkatan kecepatan faktorisasi dibandingkan metode lain seperti
Trial Division method, Fermat Factorization, Brent’s Factorization method dan
Pollard ρ factorization method (Singh & Verma 2012).
3. Prasasti Imani dari Institut Pertanian Bogor mengangkat judul skripsi “Analisis
Keamanan Kriptosistem Kunci Publik RSA”. Tugas Akhir ini bertujuan untuk
mempelajari dan menganalisis algoritma RSA serta beberapa kemungkinan
serangan yang dapat dilakukan oleh musuh terhadap kriptosistem ini. Salah satu
serangannya yaitu analisis algoritma faktorisasi bilangan komposit menggunakan
Pollard ρ. Hasil dari penganalisisan menunjukkan bahwa inti keamanan RSA
adalah pada masalah RSA dan faktorisasi bilangan komposit (Imani, 2002).
4. Toni Sutomo dari Universitas Indonesia mengangkat judul skripsinya “Metode
Pollard Rho dan Aplikasinya pada Penyelesaian IFP (Integer Factorization
Problem) dan ECDLP (Elliptic Curve Discrete Logarithm Problem)”. Tugas
akhir ini memberikan pemaparan tentang penyelesaian masalah pemfaktoran
bilangan bulat (integer factorization problem, IFP) dan masalah logaritma diskret
dari suatu kurva eliptik (elliptic curve discrete logarithm problem, ECDLP)
dengan menggunakan metode Pollard ρ. Kedua masalah tersebut merupakan
dasar keamanan sistem kriptografi kunci publik (public key cryptography, PKC)
(Sutomo,2005).

Universitas Sumatera Utara