pemfaktoran kunci rsa dengan metode penyaringan kuadratik hery

advertisement
 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
1 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.
Kata Kunci : kriptografi RSA, metode penyaringan kuadratik.
ii
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.
Key Words : RSA cryptography, quadratic sieve method.
i
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
2012
iii
Judul : Pemfaktoran Kunci RSA dengan Metode Penyaringan Kuadratik
Nama : Hery Mulyono
NIM
: G54104065
Menyetujui,
Pembimbing I
Pembimbing II
Dr. Sugi Guritman
Drs. Siswandi, M.Si
NIP. 19620927 199203 1 004
NIP. 19640629 199103 1 001
Mengetahui,
Ketua Departemen
Dr. Berlian Setiawaty, MS
NIP.19650505 198903 2 004
Tanggal Lulus :
iv
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
Hery Mulyono
v
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 20012004, 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.
vi
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
LAMPIRAN ……………………………………………………………………………….. 12
vii
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
3 Penyaringan kuadratik …………………………………………………………………. 14
viii
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.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.2 (Pembagi Bersama)
Suatu bilangan bulat c dikatakan pembagi
bersama dari a dan b jika
dan
.
[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]
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.5 (Ceilling)
Ceiling dari x yang dinotasikan oleh
⌈ ⌉adalah bilangan bulat terkecil yang lebih
besar atau sama dengan x.
[Menezes, 1997]
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]
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
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]
[Menezes, 1997]
Teorema 2.4 (Sifat-sifat Fungsi Euler)
1. Jika p prima maka
– .
2. Jika
, maka
3. Jika
Teorema 2.2
Misalkan
1. Jika
2. Jika
dan
. Maka :
, maka
.
.
, maka
[Guritman, 2010]
Teorema 2.3 (Sifat-sifat Kongruensi)
Untuk semua
maka
berlaku berikut ini.
1. Refleksif :
.
2. Simetrik : jika
, maka
3. Transitif
:
4. Jika
maka
5. Jika
maka
6. Jika
jika
, maka
dan
dan
dan
,
,
maka
7. Jika
, maka
.
(
, 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.
[Menezes, 1997]
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  B disebut 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  B disebut 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 (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 apabila
diberikan informasi ekstra (yang disebut
informasi pintu jebakan), maka perhitungan
mencari nilai x  A, diketahui y  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 nonresidu 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.
[Crandall, 2005]
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 dienkrip) 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
Teorema 3.1
Jika
maka dapat disimpulkan
bahwa
Bukti:
Misal
.Jika
dapat
maka
disimpulkan bahwa
Adb :
.
.
Misal :
Karena gcd
maka
kita
Untuk
kontradiksi dengan
Untuk
kontradiksi dengan
Jadi
tidak negatif dan
tinggal membuktikan
.
dan
berarti
.
dan
berarti
.
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
⌉
dengan
didefinisikan
barisan
dengan
dan
⌊
⌋
sifat
dengan
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
.
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
1. Ambil sembarang integer positif B.
6
2.
3.
4.
5.
Didefinisikan
himpunan
B
disebut
faktor basis dan
adalah banyaknya
semua prima kurang dari atau sama
dengan B.
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.
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.
∏
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 Bsmooth 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 Bsmooth 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
(
(
maka
(
)
dan
)
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 Bsmooth. 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
4. Faktorisasi
a. Dari himpunan H, hitung
(∏
(√∏
b. Hitung
c. Jika
faktor
+
,
maka g adalah
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.
dari
Contoh 3.4:
Misalkan diberikan N = 253
1. Inisialisasi
Tentukan nilai
√
didapatan himpunan
2. Penyaringan
⌈ ⌉
maka
3. Kalkulasi Aljabar Linear
∏
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
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
1
2
3
4
5
6
7
8
10
20
30
30
40
40
50
50
733
596209
812972143
812972143
648485443343
648485443343
806704852939511
806704852939511
q
B
691
746153
669145397
669145397
1022548977533
1022548977533
945719412570883
945719412570883
19
110
471
4710
1654
16540
5072
50720
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
Waktu (detik)
Penyaringan
0
2.542
14.773
1.185
245.202
20.576
1924.823
606.875
Kalk alin
0
0.015
0.046
1.404
0.015
12.994
1.762
142.538
dilakukan
10
percobaan
memasukkan nilai N secara acak.
dengan
Tabel 2 Pemfaktoran N
No
N
1 543996567377675771
2 848824551314626063
3 623007170805249617
4 922121180248472873
5 613001134894902163
6 808672364201669447
7 903318945087037417
8 465280673507443873
9 791864136083864357
10 695821058187484787
g
669145397
946418267
593777267
969490519
664385773
1069704931
941582827
768048691
907171091
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
Cryptography. CRC Press. Inc. New
York.
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
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.
New York.
12
LAMPIRAN
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
>
18
Download