1
PEMFAKTORAN KUNCI RSA DENGAN METODE
PENYARINGAN KUADRATIK
HERY MULYONO
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2012
1
PEMFAKTORAN KUNCI RSA DENGAN METODE
PENYARINGAN KUADRATIK
HERY MULYONO
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
BOGOR
2012
ii
ABSTRAK
HERY MULYONO. Pemfaktoran Kunci RSA dengan Metode Penyaringan Kuadratik.
Dibimbing oleh SUGI GURITMAN dan SISWANDI.
Data yang dikirim melalui jaringan tidak jarang disadap oleh orang lain untuk kepentingan tertentu. Oleh karena itu, data harus dienkripsi sebelum dikirim. RSA (Rivest Samir Adleman) adalah salah satu metode kriptografi kunci publik untuk mengenkripsi data. Keamanan algoritme ini terletak pada sulitnya memfaktorkan bilangan bulat positif yang besar menjadi faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci privat. Dalam skripsi ini kita mempelajari salah satu metode faktorisasi disebut penyaringan kuadratik. Pada metode ini, pemilihan nilai B,disebut faktor basis, akan sangat berpengaruh pada proses komputasi.
i
ABSTRACT
HERY MULYONO. Factoring RSA Keys with Quadratic Sieve Method. Supervised by SUGI GURITMAN and SISWANDI.
Sending data by network might be hacked by others for certain purposes. Therefore, the data should be encrypted before it is sent. RSA (Rivest Samir Adleman) is one of public key cryptosystem method for encrypting data. Security of this algorithm relies on the difficulty of factoring large positif integer to prime factors. Factoring is used to obtain a private key. In this thesis, we study one of factoring methods called quadratic sieve. In this method, selection the basic factor will greatly affect on the computational processes.
iii
PEMFAKTORAN KUNCI RSA DENGAN METODE
PENYARINGAN KUADRATIK
HERY MULYONO
Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Sains pada
Departemen Matematika
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
iv
Judul : Pemfaktoran Kunci RSA dengan Metode Penyaringan Kuadratik
Nama : Hery Mulyono
NIM : G54104065
Menyetujui,
Pembimbing I
Dr. Sugi Guritman
NIP. 19620927 199203 1 004
Pembimbing II
Drs. Siswandi, M.Si
NIP. 19640629 199103 1 001
Mengetahui,
Ketua Departemen
Dr. Berlian Setiawaty, MS
NIP.
19650505 198903 2 004
Tanggal Lulus :
v
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Allah SWT atas segala nikmat, karunia, dan pertolongan-Nya sehingga penulisan karya ilmiah ini berhasil diselesaikan. Sholawat dan salam semoga senantiasa tercurahkan kepada nabi besar Muhammad SAW. Terima kasih penulis ucapkan kepada :
1 Dr. Sugi Guritman dan Drs. Siswandi selaku pembimbing pertama dan kedua yang telah dengan sabar membimbing penulis dalam menyusun karya ilmiah ini,
2 Dr. Ir. Hadi Sumarno, MS. selaku dosen pembimbing akademik, Teduh Wulandari Mas’oed, M.Si. selaku dosen penguji, dan seluruh dosen Departemen Matematika FMIPA IPB,
3 Ibu dan Bapak tercinta atas doa, dukungan, kasih sayang, nasihat, dan kepercayaannya,
4 teman-teman Matematika 41 atas segala dukungan, bantuan, dan ketulusan hati yang telah diberikan,
5 teman-teman DOTA lab: Deni, Amin, Irwan, Kopet, Ali, Judin, Aswin, Akil, Ihsan, Tendi, Haryanto, TB atas doa, nasihat dan bantuan kepada penulis,
6 teman-teman Baristar Squad atas rasa kekeluargaan yang telah diberikan,
7 seluruh staf Departemen Matematika : Bapak Yono, Mas Heri, Ibu Ade, Bapak Acep, Ibu Susi, Mas Bono, Mas Deni yang telah membantu penulis dalam administrasi dan sebagainya. Penulis menyadari bahwa dalam tulisan ini masih terdapat kekurangan, oleh kerena itu penulis mengharapkan saran dan kritik dari semua pihak. Semoga tulisan ini bermanfaat bagi semua pihak yang memerlukan .
Bogor, April 2012
vi
RIWAYAT HIDUP
Penulis dilahirkan di Bogor,pada tanggal 1 Oktober 1986 dari pasangan Willy Suparman dan Gusnimar Aliawaty. Penulis merupakan putra pertama dari satu bersaudara. Pendidikan yang telah ditempuh oleh penulis antara lain SDN Empang II (Bogor, Jawa Barat) tahun 1992-1998, SLTPN 4 Bogor (Bogor, Jawa Barat) tahun 1998-2001, SMAN 3 Bogor (Bogor, Jawa Barat) tahun 2001-2004, dan Institut Pertanian Bogor Departemen Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam 2004-2012. Penulis diterima di Institut Pertanian Bogor melalui jalur SPMB (Seleksi Penerimaan Mahasiswa Baru) pada tahun 2004.
Disamping kegiatan akademis, penulis pernah menjadi asisten praktikum matakuliah Algoritma dan Pemrograman pada tahun ajaran 2006-2007. Penulis juga aktif dalam kegiatan kemahasiswaan yaitu menjadi panitia pada Try Out Gumatika tahun 2006, Matematika Ria pada tahun 2006 dan 2007, dan Ramadhan in Action tahun 2006.
vii
DAFTAR ISI
Halaman
DAFTAR TABEL ………. viii
DAFTAR LAMPIRAN ………. viii
I PENDAHULUAN 1.1 Latar Belakang ………...…. 1
1.2 Tujuan ………. 1
II LANDASAN TEORI ……….. 1
III PEMBAHASAN 3.1 Faktorisasi Trial Division ………... 5
3.2 Faktorisasi Fermat ………... 5
3.3 Faktorisasi Kraitchik dan Dixon ………..………... 5
3.4 Smoothness………... 6
3.5 Faktorisasi Penyaringan Kuadratik ………..………... 7
IV SIMPULAN 4.1 Simpulan ………. 10
4.2 Saran ………... 10
DAFTAR PUSTAKA ……… 11
viii
DAFTAR TABEL
Halaman 1 Perbandingan waktu ……… 9 2 Pemfaktoran N………. 9DAFTAR LAMPIRAN
Halaman1 Pembangkitan kunci RSA ……… 13 2 Pembangkitan bilangan prima acak ………. 13 3 Penyaringan kuadratik ………. 14
1
I PENDAHULUAN
1.1 Latar Belakang
Kriptografi „cryptography‟ berasal dari bahasa yunani „cryptos‟ artinya rahasia dan „graphein‟ artinya tulisan, jadi kriptografi berarti tulisan rahasia. Sedangkan menurut definisi kriptografi adalah studi teknik matematik yang berkaitan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, autentikasi entitas, dan autentikasi data.
Pengembangan paling mengejutkan dalam sejarah kriptografi terjadi pada 1976 saat Diffie dan Hellman mempublikasikan ”New
Directions in Cryptography”. Tulisan ini
memperkenalkan konsep revolusioner kriptografi kunci publik dan juga memberikan metode baru untuk pertukaran kunci, keamanan yang berdasar pada kekuatan masalah logaritma diskret. Meskipun Diffie dan Hellman tidak memiliki realisasi praktis pada ide enkripsi kunci publik saat itu, idenya sangat jelas dan menumbuhkan ketertarikan yang luas pada komunitas kriptografi. Pada 1978 Rivest, Shamir dan Adleman menemukan rancangan enkripsi kunci publik dan tanda tangan digital, yang sekarang disebut RSA. Rancangan RSA berdasar pada masalah faktorisasi yang sulit untuk kriptografi, dan menggiatkan kembali
usaha untuk menemukan metode yang lebih efisien untuk pemfaktoran.
Pada awalnya pemfaktoran ini menggunakan metode Trial Division, kemudian digantikan oleh metode Fermat karena jauh lebih cepat. Namun metode iterasi Fermat masih terlalu lambat untuk memfaktorkan bilangan berdigit ratusan contohnya untuk faktorisasi kriptografi RSA. Beberapa metode baru telah dikembangkan untuk memecahkan masalah tersebut diantaranya metode Elliptic Curve, metode
Continued Fraction, metode Quadratic Sieve,
dan metode Number Field Sieve.
Metode Quadratic Sieve (Penyaringan Kuadratik) ditemukan oleh Carl Pomerence pada tahun 1981, sebagai perluasan ide dari Kraitchik dan Dixon. QS adalah algoritme pemfaktoran tercepat sampai metode Number
Field Sieve ditemukan pada tahun 1993. 1.2 Tujuan
Tujuan dari penulisan ini adalah untuk mempelajari metode Quadratic Sieve
sehingga dapat memfaktorkan kunci dari kriptografi RSA dan mengimplementasikan algoritme Quadratic Sieve dengan perangkat lunak Maple 13.
II LANDASAN TEORI
Definisi 2.1 (Keterbagian)
Misalkan Bilangan b dikatakan membagi a jika ada integer n sehingga , dinotasikan . Dalam hal ini b disebut juga pembagi atau faktor dari a. Untuk kasus b tidak membagi a dinotasikan dengan .
[Menezes, 1997]
Definisi 2.2 (Pembagi Bersama)
Suatu bilangan bulat c dikatakan pembagi bersama dari a dan b jika dan .
[Niven, 1991]
Teorema 2.1 (Teorema Dasar Aritmatika (TDA))
Setiap integer dapat dituliskan sebagai hasil kali beberapa bilangan prima. dengan adalah integer dan bilangan prima, untuk
[Crandall, 2005]
Definisi 2.3 (Pembagi Bersama Terbesar)
Suatu bilangan bulat tak negatif d, dikatakan sebagai pembagi bersama terbesar atau greatest common divisor (gcd) dari bilangan bulat a dan b jika
Dengan adalah bilangan bulat positif.
[Niven, 1991]
Definisi 2.4 (Floor)
Floor dari x yang dinotasikan oleh ⌊ ⌋
adalah bilangan bulat terbesar yang kurang dari atau sama dengan x.
[Menezes, 1997]
Definisi 2.5 (Ceilling)
Ceiling dari x yang dinotasikan oleh
⌈ ⌉adalah bilangan bulat terkecil yang lebih besar atau sama dengan x.
2
Definisi 2.6 (Prima)
Integer dikatakan bilangan prima jika bilangan tersebut hanya dapat dibagi oleh 1 dan p. Integer positif yang bukan prima disebut komposit.
[Crandall, 2005]
Definisi 2.7 (Relatif Prima)
Jika maka dua integer a dan b dikatakan relatif prima.
[Menezes, 1997]
Definisi 2.8 (Fungsi Phi Euler)
Dinotasikan dengan adalah banyaknya integer positif yang kurang dari n dan koprima (relatif prima) dengan n, untuk .
[Guritman, 2010]
Definisi 2.9 (Himpunan Bilangan Bulat Modulo n)
Misalkan N adalah suatu integer positif. Himpunan integer modulo N, dinotasikan , merupakan suatu himpunan dari integer – .
[Menezes, 1997]
Definisi 2.10 (Kongruensi)
Jika a dan b adalah integer, maka a disebut kongruen ke b modulo n ditulis , apabila n membagi – . integer n disebut modulus dari kongruensi.
[Menezes, 1997]
Teorema 2.2
Misalkan dan . Maka : 1. Jika , maka . 2. Jika , maka .
[Guritman, 2010]
Teorema 2.3 (Sifat-sifat Kongruensi)
Untuk semua maka berlaku berikut ini.
1. Refleksif : .
2. Simetrik : jika , maka
3. Transitif : jika dan , maka 4. Jika dan , maka 5. Jika dan , maka 6. Jika maka 7. Jika , maka . 8. Jika , maka [Guritman, 2010]
Algoritme 2.1 (Euclid yang diperluas) Input : Dua integer tak negatif, a dan b
dengan .
Output: dan bilangan bulat x
dan y yang memenuhi . 1. Jika maka tetapkan
.
2. Tetapkan nilai .
3. Selama lakukan iterasi berikut : 3.1 Tentukan ⌊ ⌋ – 3.2 Tentukan 4. Didapatkan [Menezes, 1997]
Teorema 2.4 (Sifat-sifat Fungsi Euler)
1. Jika p prima maka – .
2. Jika , maka
3. Jika , maka ( ) ( ) ( )
[Guritman, 2010]
Teorema 2.5 (Faktorisasi Trial Division)
Misalkan , maka salah satu faktor a dan b pasti kurang dari atau sama dengan ⌊ ⌋ .
[Crandall, 2005] Teorema 2.6 (Faktorisasi Fermat)
Jika N adalah bilangan komposit maka ada bilangan x dan y sehingga
[Crandall, 2005]
Definisi 2.11 (B-smooth)
Misalkan B sebuah bilangan bulat positif. Sebuah bilangan bulat N dikatakan B-smooth jika semua faktor prima dari N kurang dari atau sama dengan B.
3
Teorema 2.7 (Faktorisasi Kraitchik dan Dixon)
Untuk mendapatkan faktor a pada
dan maka
pelacakannya dapat dilakukan dengan algoritme dengan ,
[Crandall, 2005]
Definisi 2.12 (Fungsi)
Misalkan A dan B himpunan. Relasi biner
f dari A ke B merupakan suatu fungsi jika
setiap anggota di dalam A dihubungkan dengan tepat satu anggota di dalam B. Jika f adalah fungsi dari A ke B maka dapat dituliskan f A: B yang artinya f
memetakan A ke B.
Himpunan A disebut domain dan himpunan B disebut codomain. Jika maka image dari x adalah himpunan B dimana aturan f berlaku pada x. Image y dari
x dinotasikan sebagai
Jika maka sebuah preimage dari B adalah sebuah anggota dimana Himpunan seluruh anggota dalam Y memiliki sedikitnya sebuah preimage disebut image dari f, dinotasikan Im(f).
[Munir, 2006]
Definisi 2.13 (Fungsi satu-satu)
Suatu f A: Bdisebut fungsi satu-satu (1-1) jika tidak ada dua anggota A yang memiliki image (bayangan) yang sama. Dengan kata lain, jika a dan b adalah anggota himpunan A, maka bilamana Jika maka implikasinya adalah .
[Munir, 2006]
Definisi 2.14 (Fungsi Onto)
Suatu f A: Bdisebut fungsi onto jika setiap anggota himpunan B merupakan bayangan dari satu atau atau lebih anggota himpunan A.
[Munir, 2006]
Definisi 2.15 (Fungsi Bijeksi)
Jika f A: B adalah fungsi satu-satu dan fungsi onto, maka f disebut fungsi bijeksi.
[Munir, 2006]
Definisi 2.16 (Fungsi Satu Arah)
Suatu fungsi f A: B disebut dengan fungsi satu arah jika untuk setiap
a
A
,
( )
f a
adalah mudah dihitung, tetapi untuk “kebanyakan“b
Im( )
f
adalah secara perhitungan tidak layak (computationallyinfeasible) dapat menentukan
a
A
sehinggab
f a
( ).
[Guritman, 2003]
Definisi 2.17 (Fungsi Satu-Arah Pintu Jebakan)
Fungsi satu-arah pintu jebakan adalah fungsi satu-arah
f
:
A
B
yang apabila diberikan informasi ekstra (yang disebut informasi pintu jebakan), maka perhitungan mencari nilaix
A
,
diketahuiy
B
sehingga
y
f x
( ),
menjadi mudah. [Guritman, 2003]Definisi 2.18 (Residu Kuadratik)
Misalkan m adalah integer positif dan a adalah sembarang integer sehingga Maka, a disebut residu kuadratik modulo m jika kongruensi mempunyai solusi, sebaliknya (jika tidak mempunyai solusi) a disebut non-residu kuadratik modulo m.
[Guritman, 2003]
Definisi 2.19 (Sistem Residu Terreduksi)
Himpunan berkardinal r, dengan , yaitu disebut sistem residu terreduksi (SRT) modulo n jika dan .
[Niven, 1991]
Definisi 2.20 (Legendre ( ))
Misalkan p prima ganjil dan a adalah sembarang integer, simbol Legendre ( ) didefinisikan sebagai 0 jika , 1 jika a adalah residu kuadratik modulo p, dan -1 jika a adalah non-residu kuadratik modulo
p.
4
III PEMBAHASAN
Data yang dikirim melalui jaringan tidak jarang disadap oleh orang lain untuk kepentingan tertentu, sehingga timbul usaha untuk melakukan pengkodean terhadap data sebelum dikirim melalui jaringan agar tidak bisa dibaca oleh penyadap. Pengubahan data asli menjadi kode rahasia disebut proses data
encryption (enkripsi). Setelah data rahasia
sampai ke tujuan maka data ini dikembalikan ke bentuk aslinya, proses ini disebut data
decryption (dekripsi). Ilmu matematik yang
mendasari teknik enkripsi dan dekripsi disebut kriptologi sedangkan teknik dan sains dari proses enkripsi-dekripsi disebut kriptografi. Naskah asli disebut sebagai plainteks dan naskah rahasia (yang telah di-enkrip) disebut cipherteks.
Kriptografi secara garis besar dibagi kedalam kriptografi modern dan klasik. Pada kritografi klasik, kriptografer menggunakan algoritme yang sederhana, yang memungkinkan cipherteks dapat dipecahkan dengan mudah (melalui penggunaan statistik, terkaan, intuisi, dan sebagainya). Algoritme kriptografi modern dibuat sedemikian sehingga kritanalis (pihak yang berusaha menemukan rahasia (plaintext atau kunci) dari chiperteks) sangat sulit memecahkan cipherteks tanpa mengetahui kunci.
Algoritme kriptografi modern umumnya beroperasi dalam mode bit ketimbang mode karakter. Operasi dalam mode bit berarti semua data dan informasi (baik kunci, plainteks, maupun cipherteks) dinyatakan dalam rangkaian (string) bit biner, 0 dan 1. Algoritme enkripsi dan dekripsi memproses semua data dan informasi dalam bentuk rangkaian bit. Rangkaian bit yang menyatakan plainteks dienkripsi menjadi cipherteks dalam bentuk rangkaian bit, demikian sebaliknya. Secara garis besar ada dua kategori teknik kriptografi, yaitu: teknik simetris dan teknik asimetris. Teknik simetris berarti kunci/kode untuk melakukan enkripsi sama dengan kunci/kode untuk melakukan dekripsi. Teknik asimetri disebut juga sebagai teknik kunci publik, menggunakan kunci yang berbeda antara enkripsi dan dekripsi.
Dari sekian banyak algoritme kriptografi asimetris yang pernah dibuat, algoritme yang paling populer adalah algoritme RSA. Keamanan kriptografi RSA yaitu terletak pada sulitnya memfaktorkan bilangan yang
besar menjadi faktor-faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci privat. Selama pemfaktoran bilangan besar menjadi faktor-faktor prima belum ditemukan algoritme yang mangkus, maka selama itu pula keamanan algoritme RSA tetap terjamin.
Pembangkitan Kunci RSA
1. Pilih dua bilangan prima p dan q yang memenuhi syarat keamanan, . 2. Hitung dan – – . 3. Pilih e yang relatif prima dengan . 4. Gunakan algoritme Euclidean diperluas
untuk menghitung integer .
5. Kunci publik pasangan kunci privat d.
Contoh 3.1
Misalkan Hery akan membangkitkan kunci publik dan kunci privat. Hery memilih dan (dalam praktek, p dan q haruslah bilangan yang memenuhi syarat keamanan). Selanjutnya, Hery menghitung dan – – . Kemudian Hery memilih , karena 47 relatif prima dengan 220, dengan menggunakan algoritme Euclidean diperluas didapatkan . Sehingga didapatkan pasangan kunci publik (253,47) dan kunci privat 103.
Tujuan kriptanalis di dalam skema kunci publik yang menggunakan algoritme RSA adalah ingin mendapatkan plainteks m dari cipherteks c dengan bermodalkan kunci publik . Di dalam teori bilangan, masalah ini disebut problem RSA. Salah satu cara untuk memecahkan problem RSA yaitu dengan cara mencari faktor dari ,
kemudian menghitung
( – )( – ), dan selanjutnya menghitung
d sebagai invers dari e yang pada akhirnya
didapatkan . Dengan pendekatan ini dapat dikatakan bahwa problem RSA ekuivalen dengan problem faktorisasi n. Sejauh ini belum ada algoritme yang efisien untuk memecahkan problem tersebut. Beberapa algoritme tentang faktorisasi integer: Trial Division, Pollard’s rho, Elliptic
Curve, Quadratic Sieve, Number Field Sieve Factoring, dan lain-lain.
Salah satunya yang akan saya bahas yaitu metode faktorisasi penyaringan kuadratik.
5
Sebelum masuk kepembahasan metode faktorisasi penyaringan kuadratik, ada baiknya kita mengetahui metode–metode yang mendasari faktorisasi penyaringan kuadratik.
3.1 Faktorisasi Trial Division
Misalkan maka salah satu faktor a dan b pasti kurang dari atau sama dengan ⌊ ⌋ . Jika N genap salah satu faktornya pasti 2. Jika N ganjil untuk mendapatkan faktornya, N diuji apakah habis dibagi 3 dan seterusnya sampai ⌊ ⌋. Metode ini sangat lambat terutama jika N berukuran sangat besar dan produk dari dua prima yang ukurannya hampir sama.
3.2 Faktorisasi Fermat
Jika N adalah bilangan komposit dan N dapat dinyatakan sebagai maka adalah faktor dari N. Jika N ganjil dan , maka bentuk dijamin tercapai dengan dan karena N ganjil maka a dan b pasti ganjil, sehingga x dan y pasti integer.
Berdasarkan ide dasar diatas, untuk memformulasikan algoritmenya kita definisikan fungsi yang berfungsi untuk mencari nilai , dengan x adalah integer dengan nilai terkecil ⌈ ⌉ dan setiap nilai x diuji apakah kuadrat. Jika sudah diperoleh kuadrat, maka proses berhenti dan .
Sehingga semakin kecil y maka looping akan semakin sedikit. Dengan demikian kasus terbaik algoritme Fermat terjadi ketika nilai a dan b berdekatan
) dan kasus terburuknya terjadi pada saat untuk p prima. Dari kasus terburuknya diperoleh
⌊ ⌋ ⌊ ⌋ Dari deskripsi di atas, kecepatan algoritme Fermat dan Trial Division bisa dikatakan berimbang, keduanya sama – sama memerlukan O( ) operasi.
3.3 Faktorisasi Kraitchik dan Dixon
Metode faktorisasi Kraitchik dan Dixon adalah pengembangan dari faktorisasi Fermat .
Teorema 3.1
Jika maka dapat disimpulkan bahwa Bukti: Misal .Jika maka dapat disimpulkan bahwa . Adb : . Misal :
Karena gcd tidak negatif dan maka kita tinggal membuktikan . Untuk dan berarti kontradiksi dengan .
Untuk dan berarti kontradiksi dengan .
Jadi haruslah Dengan demikian untuk mendapatkan faktor a dalam formulasi algoritmenya, dapat dilakukan pelacakan pada integer x dan y sedemikian sehingga
, Dengan ide dasar ini, maka metode Fermat bisa dipercepat sebagaimana dideskripsikan dalam formulasi berikut ini sehingga dapat didefinisikan barisan dengan
⌈ ⌉ dan ⌊ ⌋
dengan sifat dengan
Pada metode Fermat N didapatkan pada saat kuadrat. Sedangkan pada metode Kraitchik tidak harus menunggu sampai kuadrat, tetapi manakala ada subbarisan { } { } dengan ∏
kuadrat, maka faktor dari N bisa diperoleh. Dari persamaan diatas didapatkan ∏ ∏
∏ ∏ atau dapat
ditulis dengan ∏ dan √∏
Algorime pelacakan
6
2. Didefinisikan himpunan B disebut faktor basis dan adalah banyaknya semua prima kurang dari atau sama dengan B.
3. Mulai dari integer ⌈ ⌉ sampai dengan didefinisikan
barisan dan dengan langkah penyaringan :
a)
b) Faktorkan dalam representasi TDA,
c) Jika setiap p berada dalam F, maka x dan s masuk dalam barisan.
4. Tentukan subbarisan dan dengan cara :
a) Dari masing-masing representasi TDA untuk didefinisikan vektor biner dengan panjang
b) Dengan metode aljabar linear, masuk dalam barisan jika tak – bebas linear. 5. Hitung ∏
√∏ Jika maka
salah satu faktor nontrivial dari N adalah dan jika atau maka N adalah bilangan prima.
Contoh 3.2
Misalkan diberikan N = 253.
1. Definisikan B = 10, maka F = {2,3,5,7}. 2. Hitung ⌈ ⌉ maka
Faktor TDA dari Dari kalkulasi ini diperoleh
3. Hitung maka Faktor TDA dari Dari kalkulasi diperoleh
4. Hitung maka
Faktor TDA dari karena maka x tidak terpilih. 5. Hitung maka
Faktor TDA dari Dari kalkulasi diperoleh
tak – bebas linear, sehingga dan ( ) , jadi salah satu faktor dari 253 adalah
Dengan berdasarkan ide dasar yang sama ( tetapi sedikit berbeda pada pelacakannya. Untuk mencari x dan y yang memenuhi persamaan pada metode faktorisasi Dixon dipilih x secara acak dan menghitung sehingga . Maka salah satu faktor nontrivial dari N adalah .
Contoh 3.3
Misalkan diberikan 1. Ambil sembarang x, misal 2. Cari x dan y sehingga persamaan
terpenuhi. , , 3. Lihat didapatkan
sehingga kita mempunyai Perhatikan bahwa dan bahwa sehingga persamaan terpenuhi. 4. Hitung karena maka didapatkan salah satu faktor dari
3.4 Smoothness
Berdasarkan teorema dasar aritmatika (teorema 2.1), setiap integer dapat dituliskan sebagai hasil kali beberapa bilangan prima. dengan adalah integer dan bilangan prima untuk lalu untuk setiap tidak nol atau kurang dari sama dengan batas
smoothness, katakanlah B, maka integer n,
dikatakan B-smooth.
Contoh 3.4
Misal diberikan jika kita tetapkan apakah n 7-smooth?
Diketahui karena faktor – faktor prima dari N yaitu maka dengan demikian N adalah 7-smooth, tetapi jika batas smoothness B dirubah menjadi 5, maka N dikatakan tidak 5-smooth.
3.5 Faktorisasi Penyaringan Kuadratik
Ide dasar metode ini sama dengan metode Kraitchik dan Dixon yang merupakan pengembangan dari metode Fermat, yang akan menjadi penekanan di sini adalah
7
pengoptimalan pada metode penyaringannya. Hal ini terkait dengan:
1. Memilih nilai B yang cukup optimal. 2. Memilih barisan prima
yang bisa mempercepat proses penyaringan.
3. Menentukan barisan pelacakan sehingga memperbesar probabilitas bahwa semua faktor prima dari berada dalam Dalam hal ini
disebut B-smooth.
Pada metode Kraitchik kita mengambil sembarang B sehingga didapatkan himpunan
F. Dalam tahapan penyaringan dari metode
Kraitchik, besar kecilnya nilai B sangat mempengaruhi kecepatan keberhasilan faktorisasi dan penggunaan memori. Jika nilai B kecil, kita mempunyai keuntungan sehingga kita tidak membutuhkan banyak
B-smooth residu untuk mendapatkan s, tetapi
jika B terlalu kecil maka akan sulit untuk mendapatkan s yang B-smooth. Sehingga dibutuhkan nilai B yang optimal sehingga dapat mengoptimalkan waktu dan memori. Fakta yang cukup relevan adalah probabilitas bahwa suatu anggota dalam merupakan
B-smooth adalah sekitar
(Crandall, 2005). Sebagai ilustrasi, jika maka peluang integer acak dalam merupakan B-smooth adalah 0.0510. Jika penentuan barisan menggunakan metode Fermat ( √⌈ ⌉) maka peluang bahwa s adalah B-smooth menjadi lebih baik, yaitu sekitar
Pada
pelacakan ini penghitung s cukup dengan dan s positif.
Misalkan diberikan suatu nilai B, berapa waktu yang diperlukan untuk menguji bahwa suatu nilai s adalah B-smooth untuk suatu nilai x? Pertanyaan tersebut perlu mendapatkan perhatian karena peluang bahwa s adalah B-smooth cukup kecil sehingga uji tersebut akan dilakukan berulang-ulang. Metode termudah yang terkait dengan pertanyaan tersebut adalah dengan trial division (dengan representasi TDA). Metode tercepat adalah dengan Penyaringan Eratosthenes yang hanya melibatkan (ln ln B) operasi, namun metode ini memerlukan memori besar.
Dalam penyaringan Kraitchik dan Dixon dipilih F adalah himpunan semua prima dengan merupakan
banyaknya semua prima kurang dari atau sama dengan B. Sebagaimana dinyatakan sebelumnya bahwa nilai terkait banyaknya vektor biner tak-bebas linear yang diperlukan. Jadi nilai yang kecil akan mempercepat proses penyaringan.
Jika p adalah prima yang membagi maka ini berarti N merupakan residu kuadratik modulo
p (bilangan Legendre ( ) Dengan
demikian, prima yang menyebabkan N bukan residu kuadratik modulo p tidak layak untuk dijadikan anggota F. Jadi, F
selayaknya didefinisikan sebagai { ( ) } sehingga (Crandall, 2005).
Perhatikan bahwa karena probabilitas untuk satu s merupakan B-smooth adalah
maka harapan untuk mendapatkan satu s
yang B-smooth adalah Dengan demikian, harapan untuk mendapatkan s yang B-smooth sebanyak adalah melibatkan langkah (operasi) sebanyak
( )
Jika pengujian s adalah B-smooth
diasumsikan menggunakan metode Fermat, maka langkah yang diperlukan bisa dinyatakan sebagai fungsi
( ) (
* dari pendefinisian fungsi ini, akan dicari (dengan pendekatan) nilai B sebagai fungsi dari N yang meminimalkan T(B). Untuk menyederhanakan didefinisikan sehingga ( ) ( )
kemudian dicari bilangan
kritisnya diperoleh dari persamaan
karena ( ) dan ( ) maka persamaannya menjadi ( ) dengan pendekatan selanjutnya diperoleh
sehingga
8
dari hasil ini menunjukkan bahwa estimasi running time adalah ketika dipilih nilai B adalah √
Secara garis besar algoritme Penyaringan kudratik adalah sebagai berikut.
1. Inisialisasi a. Tentukan nilai B ⌈√ ⌉ b. Tentukan himpunan { | ( ) } 2. Penyaringan
a. Saring barisan untuk ⌈ ⌉ dan
yang memenuhi merupakan
B-smooth. Catatan bahwa nilai awal
barisan bisa kurang dari ⌈ ⌉ asalkan nilainya tidak jauh dari Dalam hal ini, haruslah yang terkait dengan formulasi vektor binernya. b. Dapatkan sebanyak +c) hasil saringan pasang dan dihimpun kedalam himpunan S. Catatan bahwa nilai c adalah integer positif kecil (misalkan tergantung besarnya N). Nilai digunakan untuk mengatisipasi terjadinya kegagalan faktorisasi pada langkah terakhir.
3. Kalkulasi Aljabar Linear
a. Untuk setiap nyatakan s dalam representasi TDA
∏
dengan secara terurut. b. Dari setiap repsentasi TDA dari s,
definisikan vektor biner Dengan panjang bit. Cacatan bahwa jika maka bit pertama dari adalah “0” ketika dan “1” ketika c. Dari sebanyak
vektor biner definisikan matrik A berukuran
d. Dari matriks A, dengan metode aljabar linear, pilih r vektor yang tak-bebas linear dan himpunan anggota-anggota S yang terkait yaitu ( ) ( ) ( )
4. Faktorisasi
a. Dari himpunan H, hitung (∏ + (√∏ , b. Hitung c. Jika maka g adalah
faktor dari N. Jika faktorisasi gagal. Catatan bahwa dalam kasus gagal, bisa kembali ke Langkah-3 untuk mencari r vector tak-bebas linear yang lain. Jika A tidak memuat himpunan vektor yang tak-bebas linear, maka nilai B atau c harus diperbesar.
Contoh 3.4:
Misalkan diberikan N = 253 1. Inisialisasi
Tentukan nilai √ maka didapatan himpunan 2. Penyaringan ⌈ ⌉ 3. Kalkulasi Aljabar Linear
[ ] 4. Faktorisasi
Dari himpunan H didapat, dan ( ) Jadi salah satu faktor dari 253 adalah
Pada metode Penyaringan Kuadratik pemilihan nilai B akan mempengaruhi cepat atau lambatnya proses penyaringan dan kalkulasi Aljabar Linearnya, seperti disajikan pada Tabel 1.
9
Tabel 1 Perbandingan Waktu
No bit p q B Waktu (detik)
Penyaringan Kalk alin
1 10 733 691 19 0 0 2 20 596209 746153 110 2.542 0.015 3 30 812972143 669145397 471 14.773 0.046 4 30 812972143 669145397 4710 1.185 1.404 5 40 648485443343 1022548977533 1654 245.202 0.015 6 40 648485443343 1022548977533 16540 20.576 12.994 7 50 806704852939511 945719412570883 5072 1924.823 1.762 8 50 806704852939511 945719412570883 50720 606.875 142.538
Spesifikasi computer yang digunakan adalah sebagai berikut prosesor Intel® Core™ i3 CPU 530 @ 2.93GHz, RAM 4GB,
system type 32-bit OS. Dari tabel terlihat
bahwa untuk nilai p dan q yang sama tetapi nilai B yang berbeda, didapatkan perbedaan waktu komputasi pada penyaringan dan kalkulasi aljabar linearnya. Dari tabel tersebut juga terlihat bahwa setiap penambahan bit pada nilai p dan q akan meningkatkan waktu komputasinya. Untuk nilai p dan q sebesar 60 bit, 2 jam proses komputasi tidak menghasilkan solusi, sehingga saya hentikan proses komputasinya.
Untuk menguji keakuratan algoritme Penyaringan Kuadratik diatas maka akan
dilakukan 10 percobaan dengan memasukkan nilai N secara acak.
Tabel 2 Pemfaktoran N No N g 1 543996567377675771 669145397 2 848824551314626063 946418267 3 623007170805249617 593777267 4 922121180248472873 969490519 5 613001134894902163 664385773 6 808672364201669447 1069704931 7 903318945087037417 941582827 8 465280673507443873 768048691 9 791864136083864357 907171091 10 695821058187484787 711845041
10
IV SIMPULAN DAN SARAN
4.1 Simpulan
Ada banyak metode untuk menfaktorkan suatu bilangan komposit tetapi sampai sekarang belum ditemukan metode yang benar-benar efektif dan efisien, sehingga kriptografi RSA masih layak digunakan.
Pemilihan nilai B akan sangat berpengaruh pada proses komputasi dari Metode Penyaringan Kuadratik. Jika nilai B kecil maka proses penyaringan akan memakan waktu yang lama, bahkan jika nilai
B terlalu kecil maka solusi tidak akan
didapatkan. Tetapi jika nilai B terlalu besar maka proses perhitungan pada Aljabar Linear akan memakan waktu yang lama.
4.2 Saran
Bagi yang berminat, algoritme ini masih dapat dikembangkan, karena masih belum ditemukan algoritme yang benar-benar optimal untuk memfaktorkan suatu bilangan komposit. Lalu mengimplementasikan pada perangkat lunak untuk membandingkan tingkat kecepatannya.
11
DAFTAR PUSTAKA Crandall, R. dan Pemorance, C. 2005.
Prime Number a Computational Perspective. Springer. New York. Guritman, S. 2010. Faktorisasi dan
Logaritme Diskret. Departemen Matematika FMIPA IPB. Bogor.
Menezes, A.J. Oorschot, P.C.V. dan S Vanstone. 1997. Handbook of
Cryptography. CRC Press. Inc. New
York.
Munir, A. 2006. Kriptografi. Informatika.
Bandung.
Niven, I. Zuckerman, H.S. dan Montgomery, L.H. 1991. An Introduction to The Theory of Numbers. John Wiley & Sans. Inc.
12
13
LAMPIRAN
1. Pembangkitan kunci RSA
>
2. Pembangkitkan bilangan prima secara acak
>
14
3. Penyaringan Kuadratik
Prosedur untuk melis semua bilangan prima ( )
>
Prosedur untuk menentukan vektor biner yang direpresentasikan dengan TDA
>
Prosedur untuk menentukan menyaring barisan
15
16
Prosedur untuk memfaktorkan integer berdasarkan TDA
>
Prosedur untuk menentukan satu faktor (prima terkecil) dari integer positif N
>
17