• Tidak ada hasil yang ditemukan

PEMFAKTORAN KUNCI RSA DENGAN METODE PENYARINGAN KUADRATIK HERY MULYONO

N/A
N/A
Protected

Academic year: 2021

Membagikan "PEMFAKTORAN KUNCI RSA DENGAN METODE PENYARINGAN KUADRATIK HERY MULYONO"

Copied!
28
0
0

Teks penuh

(1)

 

 

 

PEMFAKTORAN KUNCI RSA DENGAN METODE

PENYARINGAN KUADRATIK

HERY MULYONO

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR

BOGOR

2012

(2)

 

 

 

PEMFAKTORAN KUNCI RSA DENGAN METODE

PENYARINGAN KUADRATIK

HERY MULYONO

DEPARTEMEN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

INSTITUT PERTANIAN BOGOR

BOGOR

2012

(3)

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.

(4)

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.

(5)

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

(6)

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 :

(7)

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

(8)

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.

(9)

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

(10)

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 3 Penyaringan kuadratik ………. 14

(11)

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.

(12)

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.

(13)

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 (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 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.

(14)

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.

(15)

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

(16)

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

(17)

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

(18)

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.

(19)

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

(20)

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.

(21)

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.

(22)

12

 

(23)

13

LAMPIRAN

1. Pembangkitan kunci RSA

>

2. Pembangkitkan bilangan prima secara acak

>

(24)

14

3. Penyaringan Kuadratik

Prosedur untuk melis semua bilangan prima ( )

>

Prosedur untuk menentukan vektor biner yang direpresentasikan dengan TDA

>

Prosedur untuk menentukan menyaring barisan

(25)

15

(26)

16

Prosedur untuk memfaktorkan integer berdasarkan TDA

>

Prosedur untuk menentukan satu faktor (prima terkecil) dari integer positif N

>

(27)

17

(28)

Gambar

Tabel 1 Perbandingan Waktu

Referensi

Dokumen terkait

Berdasarkan hasil analisis diketahui bahwa nilai R Square mendekati satu artinya variabel yang diukur dengan labelisasi halal, pengetahuan konsumen, gaya hidup dan citra merek

Penerapan media benda kongkrit dapat meningkatkan aktivitas belajar para siswa pada mata pelajaran matematika materi penjumlahan dan pengurangan siswa kelas 1

1. Mendapatkan himpunan pembeda dan himpunan pembeda bintang. Mendapatkan dimensi metrik dan dimensi metric bintang. Pada tahap ini diperoleh batas atas dan batas bawah,

Dengan  demikian,  otonomi  perguruan  tinggi  melalui  PTN  badan  hukum 

Sediaan oral yang banyak digunakan adalah garam fero, karena garam fero.. diabsorpsi kira-kira tiga kali lebih baik daripada garam feri (Gilman,

Undang–Undang Nomor 2 tahun 1989 tentang Sistem Pendidikan Nasional dalam Pasal 8 ayat (2) menegaskan bahwa:“Warga negara yang memiliki kemampuan dan kecerdasan luar biasa

Tujuan penelitian ini adalah membandingkan pemeriksaan dokter gigi dan bukan dokter gigi dan untuk mendapatkan ketepatan pemeriksaan agar hasil survei kesehatan

Hasil penelitian menunjukkan bahwa rata-rata pengetahuan siswa tentang penyakit HIV/AIDS setelah diberikan pendidikan kesehatan dengan menggunakan media Video Konvensional