1
PEMFAKTORAN KUNCI RSA DENGAN METODE
PENYARINGAN KUADRATIK
HERY MULYONO
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
1
PEMFAKTORAN KUNCI RSA DENGAN METODE
PENYARINGAN KUADRATIK
HERY MULYONO
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
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
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
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………. 9
DAFTAR LAMPIRAN
Halaman
1 Pembangkitan kunci RSA ……… 13
2 Pembangkitan bilangan prima acak ………. 13
1
I PENDAHULUAN
1.1Latar 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.2Tujuan
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.1Tentukan – 3.2Tentukan 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. Imagey 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 secaraperhitungan tidak layak (computationally
infeasible) dapat menentukan
a
A
sehingga
b
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 apabiladiberikan informasi ekstra (yang disebut informasi pintu jebakan), maka perhitungan
mencari nilai
x
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.
5
Sebelum masuk kepembahasan metode
faktorisasi penyaringan kuadratik, ada
baiknya kita mengetahui metode–metode
yang mendasari faktorisasi penyaringan kuadratik.
3.1Faktorisasi 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.2Faktorisasi 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.3Faktorisasi 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.4Smoothness
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.5Faktorisasi Penyaringan Kuadratik
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
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
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
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
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
>
15
16
Prosedur untuk memfaktorkan integer berdasarkan TDA
>
17