• Tidak ada hasil yang ditemukan

Perancangan Aplikasi Kriptografi Kunci Publik Metode Rivest-Shamir-Adleman (RSA) dengan Metode The Sieve of Erathostenes pada File Text dengan PHP

N/A
N/A
Protected

Academic year: 2016

Membagikan "Perancangan Aplikasi Kriptografi Kunci Publik Metode Rivest-Shamir-Adleman (RSA) dengan Metode The Sieve of Erathostenes pada File Text dengan PHP"

Copied!
59
0
0

Teks penuh

(1)

PERANCANGAN APLIKASI KRIPTOGRAFI KUNCI PUBLIK

METODE RIVEST – SHAMIR – ADLEMAN (RSA) DENGAN

METODE THE SIEVE OF ERATHOSTENES PADA FILE

TEXT DENGAN PHP

SKRIPSI

RISSA RIFLIZA LUBIS 051401074

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

(2)

PERANCANGAN APLIKASI KRIPTOGRAFI KUNCI PUBLIK METODE RIVEST – SHAMIR – ADLEMAN (RSA) DENGAN METODE THE SIEVE OF

ERATHOSTENES PADA FILE TEXT DENGAN PHP

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer

RISSA RIFLIZA LUBIS 051401074

PROGRAM STUDI S1 ILMU KOMPUTER

FAKULTAS ILMU KOMPUTER DAN TEKNOLOGI INFORMASI UNIVERSITAS SUMATERA UTARA

(3)
(4)

PERSETUJUAN

Judul : PERANCANGAN APLIKASI KRIPTOGRAFI

KUNCI PUBLIK METODE RIVEST – SHAMIR – ADLEMAN (RSA) DENGAN METODE THE SIEVE OF ERATHOSTENES PADA FILE TEXT DENGAN PHP

Kategori : SKRIPSI

Nama : RISSA RIFLIZA LUBIS

Nomor Induk Mahasiswa : 051401074

Program Studi : SARJANA (S1) ILMU KOMPUTER

Fakultas : ILMU KOMPUTER DAN TEKNOLOGI

INFORMASI

Diluluskan di

Medan, 17 Juli 2012

Komisi Pembimbing :

Pembimbing 1 Pembimbing 2

(5)

PERNYATAAN

PERANCANGAN APLIKASI KRIPTOGRAFI KUNCI PUBLIK METODE RIVEST – SHAMIR – ADLEMAN (RSA) DENGAN METODE THE SIEVE OF

ERATHOSTENES PADA FILE TEXT DENGAN PHP

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, 17 Juli 2012

(6)

PENGHARGAAN

Alhamdulillah, puji syukur saya sampaikan kehadirat Allah SWT, yang telah memberikan rahmat dan hidayah-Nya serta segala sesuatunya dalam hidup, sehingga saya dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi S1 Ilmu Komputer Universitas Sumatera Utara. Shalawat beriring salam saya persembahkan kepada Nabi Besar Muhammad SAW.

Ucapan terima kasih saya sampaikan kepada bapak Drs. Sawaluddin, MIT

sebagai Dosen Pembimbing I dan Bapak M.Umar T, ST sebagai Dosen Pembimbing II yang telah memberikan bimbingan, saran, dan masukan kepada saya untuk menyempurnakan kajian ini. Panduan ringkas, padat dan profesional telah diberikan kepada saya sehingga saya dapat menyelesaikan tugas ini. Selanjutnya kepada Dosen Penguji Bapak Syahril Efendi, S.Si, MIT dan Bapak M. Andri Budiman, ST, MSComp, MEM atas saran dan kritikan yang sangat berguna bagi saya. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Program Studi S1 Ilmu Komputer, Bapak Dr. Poltak Sihombing, M.Kom, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen serta pegawai di Program Studi S1 Ilmu Komputer FMIPA USU.

(7)

per satu. Untuk teman-teman sekelas dan satu angkatan yang sedang berjuang tanpa patah semangat dan tiada putus harapan. Terima kasih pula kepada semua pihak-pihak yang tidak dapat saya sebutkan satu persatu, terima kasih atas ide, saran, dan kerjasama yang baik.

(8)

ABSTRAK

(9)

THE DESIGN OF THE APPLICATION OF PUBLIC KEY CRYPTOGRAPHY METHOD RIVEST-SHAMIR-ADLEMAN (RSA) WITH THE SIEVE OF

ERATHOSTENES METHOD IN TEXT FILE WITH PHP

ABSTRACT

The issue of security and confidentiality of data is one important aspect of an information system. In this case, is related to how important the information is sent and received by a person of interest. Information would no longer useful in the middle

(10)

DAFTAR ISI

2.2 Teori Dasar Kriptografi 5

2.2.1 Subtitusi 5

2.2.2 Blocking 6

2.2.3 Permutasi 7

2.2.4 Ekspansi 8

2.2.5 Pemampatan 8

2.3 Teknologi Enkripsi Simetris Dengan Asimetris 9

2.4 Konsep Dasar Kriptografi Kunci Publik 10

2.5 Rivest-Shamir-Adleman (RSA) 11

2.6 Keamanan Algoritma RSA 13

2.7 Cryptographic Protocol 14

2.7.1 Fungsi Protokol 14

2.7.2 Penyerangan Terhadap Protokol 15

2.7.3 Berbagai Macam Basic Cryptanalytic Attacks 16 2.7.4 Analisis Berbagai Tipe Penyerangan Secara Matematis 17

2.7.5 Ciphertext-Only Attack 18

2.7.6 Known-Plaintext Attack 19

2.7.7 Brute-Force Attack 19

Bab III Analisis Permasalahan 20

3.1 Bilangan Prima 20

(11)

3.1.3 Distribusi Kunci 23

3.2 Analisis Metode Sieve of Eratosthenes 23

3.3 Rancangan Sistem 26

3.4 Prosedur Membuat Pasangan Kunci 28

3.5 Enkripsi 30

3.6 Dekripsi 30

3.7 Kekuatan dan Kelemahan RSA 32

Bab IV Implementasi dan Pengujian Sistem 36

4.1 Implementasi Sistem 36

4.1.1 Tampilan Aplikasi 37

Bab V 40

5.1 Kesimpulan 40

5.2 Saran 41

Daftar Pustaka 42

(12)

DAFTAR TABEL

Halaman

Tabel 2.1 Tabel Substitusi 5

Tabel 2.2 Enkripsi Dengan Bloking 6

Tabel 2.3 Enkripsi RSA 12

(13)

DAFTAR GAMBAR

Halaman

Gambar 2.1 Permutasi 7

Gambar 2.2 Proses Enkripsi Dengan Permutasi 7

Gambar 2.3 Enkripsi Dengan Ekspansi 8

Gambar 2.4 Enkripsi Dengan Pemampatan 9

Gambar 2.5 Model Enkripsi Kunci Publik 10

Gambar 3.1 Rancangan Flowchart Algoritma Sieve of Eratosthenes 25 Gambar 3.1 Flowchart Inisialisasi Kunci Enkripsi 33

Gambar 3.2 Flowchart Kunci Enkripsi 34

Gambar 3.3 Flowchart Kunci Dekripsi 35

Gambar 4.1 Proses Import File rsa.sql Ke Dalam Database RSA 36

Gambar 4.2 Tampilan Form Utama 37

Gambar 4.3 Tampilan Setelah Memasukkan Bilangan Prima 38

Gambar 4.4 Tampilan Form Input Teks 38

(14)

ABSTRAK

(15)

THE DESIGN OF THE APPLICATION OF PUBLIC KEY CRYPTOGRAPHY METHOD RIVEST-SHAMIR-ADLEMAN (RSA) WITH THE SIEVE OF

ERATHOSTENES METHOD IN TEXT FILE WITH PHP

ABSTRACT

The issue of security and confidentiality of data is one important aspect of an information system. In this case, is related to how important the information is sent and received by a person of interest. Information would no longer useful in the middle

(16)

BAB 1

PENDAHULUAN

1.1Latar Belakang

Masalah keamanan dan kerahasiaan data merupakan salah satu aspek penting dari suatu sistem informasi. Dalam hal ini, sangat terkait dengan betapa pentingnya informasi tersebut dikirim dan diterima oleh orang yang berkepentingan. Informasi akan tidak berguna lagi apabila di tengah jalan informasi itu disadap atau dibajak oleh

orang yang tidak berhak.

Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, serta otentikasi. Ilmu sandi (kriptografi) sendiri telah ada sejak lama. Tercatat dalam sejarah bahwa Julius Caesar (kaisar romawi) menggunakan penyandian untuk menyampaikan pesan rahasia saat perang.

Enkripsi ialah proses mengamankan suatu informasi dengan membuat informasi tersebut tidak dapat dibaca tanpa bantuan pengetahuan dan atau alat khusus. Sedangkan dekripsi merupakan algoritma atau cara yang dapat digunakan untuk membaca informasi yang telah dienkripsi untuk kembali dapat dibaca.

Algoritma sandi adalah algoritma yang berfungsi untuk melakukan tujuan kriptografis. Secara umum berdasarkan kesamaan kuncinya, algoritma sandi dibedakan menjadi:

1. Kunci simetris / symetric key

(17)

Contoh algoritma yang menggunakan kunci simetris: DES, MARS, IDEA, Triple DES, AES

2. Kunci asimetris / asymetric key

Skema ini adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsinya. Contoh algoritma yang menggunakan kunci asimetris : Knapsack, RSA, Diffie Hellman.

Saat ini terdapat berbagai algoritma penyandian dalam ilmu kriptografi, namun pada penulisan skripsi ini penulis memilih RSA dalam proses enkripsi dan dekripsi file teks. Metode ini merupakan metode yang paling banyak dipakai di dunia.

Dari sekian banyak algoritma kunci-publik yang pernah dibuat, algoritma yang paling populer adalah algoritma RSA. Algoritma RSA dibuat oleh 3 orang peneliti

dari MIT (Massachussets Institute of Technology) pada tahun 1976, yaitu: Ron (R)ivest, Adi (S)hamir, dan Leonard (A)dleman. Keamanan algoritma RSA 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 algoritma yang mangkus, maka selama itu pula keamanan algoritma RSA tetap terjamin. Pada RSA, masalah pemfaktoran berbunyi : Faktorkan n menjadi dua factor primanya, p dan q, sedemikian sehingga n = p . q. Sekali n berhasil difaktorkan menjadi p dan q, maka φ(n) = (p - 1) (q - 1) dapat dihitung. Selanjutnya, karena kunci enkripsi e diumumkan (tidak rahasia), maka kunci dekripsi d dapat dihitung dari persamaan e .d ≡ 1 (mod φ(n)).

1.2 Perumusan Masalah

(18)

1.3 Pembatasan Masalah

Dalam melakukan perancangan aplikasi kriptografi kunci publik terhadap text dilakukan batasan sebagai berikut :

1. Pada skripsi ini tidak membahas mengenai sulitnya dan cara-cara untuk memecahkan mekanisme penyandian.

2. File teks yang akan digunakan adalah file dokumen teks (*.txt).

3. Perbandingan yang dilakukan berdasarkan lama proses deskripsi diantara kedua algoritma tersebut, didalam implementasinya dalam suatu program sederhana.

1.4 Tujuan Penelitian

Penelitian ini bertujuan untuk pembuatan aplikasi kunci publik (key public) yang bertujuan untuk pengamanan sebuah file text atau dokumen text sehingga terjaga sifat rahasia dan keamanannya.

1.5 Manfaat Penelitian

Dengan pembuatan aplikasi metode RSA, kita dapat mengetahui bahwa, metode rsa mudah digunakan untuk menghindari pencurian, penyadapan, dan pemalsuan informasi. Dimana metode tersebut digunakan untuk mengamankan data dari kejadian – kejadian tersebut maka diperlukan penyandian terhadap data yang akan dikirim.

1.6 Metode Penelitian

(19)
(20)

BAB 2

TINJAUAN PUSTAKA

2.1 Pendahuluan

Teknik pengacakan data yang disebut enkripsi, telah membentuk suatu bidang keilmuan yang disebut kriptografi. Prinsip dasar dari teknik enkripsi adalah menyembunyikan informasi dalam bentuk yang sedemikin rupa sehingga hanya orang yang berhak saja yang dapat mengetahui isi informasi yang disembunyikan itu. Keinginan untuk merahasiakan informasi sudah muncul sejak laman dahulu,

bahkan Sebelum Masehi.

Pada tahun 475 S.M. bangsa Sparta , suatu bangsa militer pada jaman

Yunani kuno, menggunakan teknik kriptografi yang disebut scytale, untuk kepentingan perang. Scytale terbuat dari tongkat dengan papyrus yang mengelilingi secara spiral. Pesan dituliskan secara melintang pada tongkat melintasi papyrus.

Kunci dari scytale adalah diameter tongkat yang digunakan pengiriman harus sama dengan diameter tongkat yang dimiliki penerima pesan, sehingga pesan yang disembunyikan dalam papyrus dapat dibaca dan dimengerti penerima.

(21)

2.2 Teori Dasar Kriptografi

Suatu ilmu dan seni dalam menjaga kerahasiaan suatu pesan (kode) disebut dengan kriptografi yang dilakukan oleh seorang kriptografi. Kriptografi terdiri dari proses yaitu enkripsi dan dekripsi yang diibaratkan seperti dua sisi mata uang. Suatu pesan dibuat seolah tidak bermakna dengan merubahnya menurut prosedur tertentu maka disebut dengan Enkripsi, dan dibuat bermakna kembali dengan menggunakan prosedur yang biasanya bersifat kebalikannya, disebut juga dengan istilah Dekripsi.

Pesan atau dalam istilah kriptografi disebut message, yang akan dirahasiakan disebut plaintext, sedangkan bentuk pesan hasil proses di enkripsi disebut ciphertext. Cryptanalyst adalah orang yang mempelajari ilmu dan seni

ilmu membongkar ciphertext. Menurut ISO 7498-2 istilah yang lebih tepat untuk

decryption adalah “decipher”.

Terdapat lima teknik yang mendasari kriptografi. Berikut ini dicontohkan procedure enkripsi dalam melakukan pengacakan data terhadap

plaintext yang sama, yaitu “5 teknik dasar kriptografi”.

2.2.1 Subtitusi

Salah satu contoh teknik ini adalah Caesar cipher yang telah dicontohkan di atas. Langkah pertama adalah membuat suatu tabel substitusi. Tabel substitusi dapat dibuat sesuka hati, dengan catatan bahwa penerima pesan memilki tabel yang sama untuk keperluan dekripsi. Bila tabel substitusi dibuat secara acak, akan semakin sulit pemecahan ciphertext oleh orang yang tidak berhak.

Tabel 2.1 Subtitusi

A B C D E F G H I J K L M N O P Q R S T B F 1 K Q G A T P J 6 H Y D 2 X 5 M V 7

(22)

Tabel substitusi di atas dibuat secara acak. Dengan menggunakan tabel tersebut, dari plaintext “5 teknik dasar kriptografi” dihasilkan ciphertext “L 7Q6DP6 KBVBM6MPX72AMBGP”. Dengan menggunakan tabel substitusi yang sama secara dengan arah yang terbalik, plaintext dapat diperoleh kembali dari ciphertext-nya.

2.2.2 Blocking

Sistem enkripsi terkadang membagi plaintext menjadi blok-blok yang terdiri dari beberapa karakter yang kemudian di enkripsi secara independent. Plaintext

yang dienkripsikan dengan menggunakan teknik blocking terdapat pada tabel 2.2.

Tabel 2.2 Enkripsi Dengan Blocking

(23)

2.2.3 Permutasi

Salah satu teknik enkripsi yang terpenting adalah permutasi atau sering juga disebut tranposisi. Teknik ini memindahkan atau merotasiakan karakter dengan aturan tertentu. Prinsipnya adalah berlawanan dengan teknik substitusi. Dalam teknik substitusi, karakter berada pada posisi yang tetap tapi identitasnya yang diacak,. Pada teknik permutasi, umumnya plaintext terlebih dahulu dibagi menjadi blok-blok dengan panjang yang sama.

Untuk contoh di atas, plaintext akan dibagi menjadi blok-blok yang terdiri dari 6 karakter, dengan aturan permutasi sebagai berikut:

1 2 3 4 5 6

6 2 4 3 5 1

Gambar 2.1 Permutasi

Dengan menggunakan aturan di atas, maka proses enkripsi dengan permutasi dari plaintext adalah sebagai berikut:

5 T E K N I K D A S A R K R I P T O G R A F I

N E T K 5 S K D A I I R K R A A T G O R P F 1

Gambar 2.2 Proses Enkripsi Dengan Permutasi

(24)

2.2.4 Ekspansi

Suatu metode sederhana untuk mengacak pesan adalah dengan melebarkan pesan itu dengan aturan tertentu. Salah satu contoh penggunaan teknik ini adalah dengan meletakkan huruf konsonan atau bilangan ganjil yang menjadi awal dari suatu kata akhir kata itu dan menambahkan akhiran “an”. Bila suatu kata dimulai dengan huruf hidup atau bilangan genap, ditambahkan akhiran “i”. Proses enkripsi dengan cara ekspansi terhadap plaintext terjadi sebagai berikut

5 T E K N I K D A S A R K I P T O G R A F I

5 A N E K N I K T A N A S A R D A N R I P T O G

R A F I K A N

Gambar 2.3 Enkripsi Dengan Ekspansi

Ciphertextnya adalah “5AN EKNIKTAN ASARDAN RIPTOGRAFIKAN”. Aturan ekspansi dapat dibuat lebih kompleks. Terkadang teknik ekspansi digabungkan dengan teknik lainnya, karena teknik ini bila berdiri sendiri terlalu mudah untuk dipecahkan.

2.2.5 Pemampatan

Mengurangi panjang pesan atau jumlah bloknya adalah cara lain untuk menyembunyikan isi pesan. Contoh sederhana ini menggunakan cara menghilangkan setiap karakter ketiga secara berurutan. Karakter-karakter yang dihilangkan disatukan kembali dan disusulkan sebagai “lampiran” dari pesan utama, dengan diawali oleh suatu karakter khusus, dalam contoh ini digunakan “&”. Proses yang terjadi untuk plaintext kita adalah:

5 T E K N I K = D A S A R = K R I P T O G R A F I

Plaintext

5 E K I K D A A R K R P T G R F I

Pesan yang dimampatkan

(25)

5 E K I K D A A R K R P & T G R F I T N S I O A Ciphertext

Gambar 2.4 Enkripsi Dengan Pemampatan

Aturan penghilangan karakter dan karakter khusus yang berfungsi sebagai

pemisah menjadi dasar untuk proses dekripsi ciphertext menjadi plaintext kembali.

Dengan menggunakan kelima teknik dasar kriptografi di atas, dapat diciptakan kombinasi teknik kriptografi yang amat banyak, dengan faktor yang membatasi semata-mata hanyalah kreativitas dan imajinasi kita. Walaupun sekilas terlihat sederhana, kombinasi teknik dasar kriptografi dapat menghasilkan teknik kriptografi turunan yang cukup kompleks, dan beberapa teknik dasar kriptografi masih digunakan dalam teknik kriptografi modern.

2.3 Teknologi Enkripsi Simetris dan Asimetris

Untuk menyandi informasi dan untuk menterjemahkan pesan tersandi sebuah algoritma penyandian memerlukan sebuah data binary yang disebut kunci atau key. Tanpa kunci yang cocok orang tidak bisa mendapatkan kembali pesan asli dari pesan tersandi. Ada dua jenis sistem tersandi yang dikenal dengan istilah sistem sandi simetris dan sistem sandi asimetris.

Sistem sandi simetris menggunakan kunci yang sama dalam proses enkripsi maupun proses dekripsi. Sedangkan sistem sandi asimetris dalam melakukan proses enkripsi menggunakan kunci yang berbeda dengan kunci yang digunakan dalam proses deskripsi. Contoh dari sistem sandi simetris adalah Data Encryption Standard (DES), sedangkan contoh sistem sandi asimetris adalah Ron Shamir Adleman (RSA).

Kedua sistem ini memiliki keuntungan dan kerugiannya sendiri. Sistem

(26)

2.4 Konsep Dasar Kriptografi Kunci Publik

Algoritma Kunci Publik menggunakan kunci yang berbeda untuk enkripsi dan deskripsi. Karena sifatnya ini maka algoritma ini termasuk ke dalam sistem sandi asimetris. Metode Kunci Publik ini menjadi penting karena meskipun kunci enkripsi sudah diketahui publik, namun ciphertext tersebut tidak dapat diterjemahkan tanpa menggunakan kunci deskripsi yang disebut kunci privat.

Plaintext

Ciphertext Plainteks

User A User B

Gambar 2.5 Model Enkripsi Kunci Publik

Gambar 2.5 menggambarkan model dari enkripsi kunci publik. Apabila user A akan mengirimkan pesan tersandi maka ia akan menyandi pesan itu (enkripsi) dengan menggunakan kunci publik user B. Kemudian user B mendeskripsikan pesan tersebut mengggunakan kunci privat miliknya.

Algortima dari proses komunikasi mengggunakan kriptografi kunci publik adalah seperti contoh berikut: 1). Feli dan Fajar akan menggunakan sistem kriptografi kunci publik. 2). Fajar mengirimkan kunci publik miliknya kepada Feli.

3). Feli meng-enkripsi pesan miliknya dengan menggunakan kunci publik milik Fajar dan mengirimkannya. 4). Fajar meng-deskripsikan pesan dari Feli dengan menggunakan kunci privat miliknya. Dalam prakteknya baik Feli maupun Fajar dapat mengakses kunci publik masing-masing yang tersedia dalam sebuah Data Base, yang disebut dengan Key Distribution Center (KDC).

Kunci publik dapat diketahui orang lain, kunci privat tetap hanya diketahui pemiliknya saja. Konsep Kunci Publik ini adalah prototype awal dari munculnya RSA.

KUNCI PUBLIK KUNCI PRIVAT

PROSES ENKRIPSI

(27)

2.5 Rivest-Shamir-Adleman (RSA)

Penemu RSA adalah Ron Rivest, Adi Shamir, dan Leonard Adleman yang membuatnya di tahun 1978. RSA ini adalah sistem penyandian kunci publik yang popular.

Kepopuleran RSA terletak dari kemampuannya digunakan sebagai tanda tangan digital. Teknologi tanda tangan digital dibuat dengan memanfaatkan teknologi kunci publik. Sepasang kunci public-privat dibuat untuk keperluan seseorang. Kunci privat disimpan oleh pemiliknya, dan digunakan untuk membuat tanda tangan digital. Sedangkan kunci publik dapat diserahkan kepada siapa saja yang ingin memeriksa tanda tangan digital yang bersangkutan pada suatu dokumen.

Saat ini satu-satunya cara yang diketahui untuk mendobrak sandi RSA adalah dengan mencoba satu-persatu berbagai kombinasi kunci dengan istilah

brute force attack. Karena itu, sebenarnya keamanan dari RSA banyak bergantung dari ukuran kunci yang digunakan yaitu dalam bit. Semakin lebar ukuran kunci maka banyaknya kemungkinan kombinasi kunci yang mungkin semakin besar. Selain itu keamanan RSA ini pun bergantung pada kesulitan dalam pemangkatan bilangan bulat dalam digit yang besar. Salah satu kelemahan RSA dibandingkan dengan sistem sandi simetris adalah lama proses yang dibutuhkannya.

Kepopuleran RSA saat ini ditandingi oleh kepopuleran Pretty Good Privacy

(PGP), yang merupakan aplikasi pengamanan Surat Elektronik atau Electronic Mail (E-mail). Namun sebenarnya PGP sendiri masih menggunakan algoritma RSA dalam hal tanda tangan digital

RSA adalah sistem sandi yang barangkali paling mudah dimengerti cara kerjanya, tetapi juga sangat kokoh, baik untuk menyandi maupun menterjemahkan sandi, RSA hanya menggunakan operasi pemangkatan. Para pembuat RSA ini melihat

bahwa operasi mk mod n menghasilkan nilai yang relative acak hubungan terhadap

m. Berikut ini akan disampaikan pembentukan kunci privat dan kunci publik dengan RSA :

(28)

2. Hitung n = pq. Untuk kemudian bilangan n disebut parameter sekuriti.

3. Pilih bilangan e secara acak di mana e tidak memiliki factor pembagi yang sama dengan (p-1)(q-1) selain bilangan 1. Atau dengan kata lain bersifat relative prima. 4. Hitung d sedemikian sehingga ed mod (p-1)(q-1) = 1. Dengan menggunakan sebuah algoritma yang disebut algoritma Euclid akan menghitung d sehingga,

d = e-1 mod ((p-1)(q-1))

5. Bilangan n dan e kita sebarkan ke public. e ini adalah yang akan menjadi kunci public. d menjadi kunci privat. Sementara itu bilangan p dan q dihilangkan, dan dicegah agar tidak pernah sampai bocor ke public.

Kini sudah didapatkan sebuah kunci publik dan kunci privat. Selanjutnya berikut ini adalah algoritma untuk menyandi dan menterjemahkan pesan :

1. Untuk menyandi sebuah pesan m dengan menggunakan kunci public e, kita

melakukan operasi me mod n, sementara untuk membuka pesan tersandi c dengan

menggunakan kunci privat, kita lakukan cd mod n

2. Untuk memudahkan enkripsi dan dekripsi maka pesan m dibagi menjadi beberapa blok yang kecil.

Algoritma di atas adalah algoritma yang digunakan dalam penyandian RSA, maka hanya menggunakan operasi pemangkatan bilangan dan modulus bilangan, dalam melakukan proses enkripsi dan dekripsi sebuah pesan. Kesederhanaan inilah yang menjadikan RSA menjadi popular karena relatif mudah dimengerti. Adapun dari algoritma di atas dapat disederhanakan seperti pada tabel berikut.

Tabel 2.3 Enkripsi RSA Kunci Publik

n hasil perkalian dua bilangan prima p dan q

(29)

2.6 Keamanan Algoritma RSA

Sistem kriptografi yang baik adalah sistem kriptografi yang memang dirancang sedemikian rupa sehingga sulit untuk dipecahkan atau dibongkar. Secara teori sebuah metode kriptografi dengan sebuah kunci akan dapat dipecahkan dengan mencoba semua kemungkinan rangkaian kunci. Maka semakin panjang ukuran kunci maka semakin sulit untuk dipecahkan.

Saat ini satu-satunya cara yang diketahui untuk mendobrak sandi RSA adalah dengan mencoba satu persatu berbagai kombinasi kunci dengan istilah

brute force attack. Karena itu, sebenarnya keamanan dari RSA banyak bergantung dari ukuran kunci yang digunakan yaitu dalam bit.

Selain itu keamanan RSA ini pun bergantung pada kesulitan dalam pemangkatan bilangan bulat dalam digit yang besar. Namun ada beberapa anggapan adalah mudah untuk membongkar sandi RSA. Sebagai contoh adalah dengan

membangkitkan nilai n sehingga nantinya akan didapatkan nilai e dan d yang mungkin. Kemungkinan penyerangan terhadap RSA dilakukan pula dengan memperkirakan nilai (p-1)(q-1). Namun cara ini juga memberikan kemungkinan kecil untuk berhasil.

Sejauh ini belum seorang pun yang berhasil menemukan lubang sekuriti pada RSA, tetapi tak seorang pun juga berhasil memberikan pembuktian ilmiah yang memuaskan dari keamanan teknik sandi ini. Padahal, pemakaiannya sudah sangat meluas dan mencakup sektor-sektor strategis seperti perbankan, pemerintahan, dan telekomunikasi.

(30)

2.7 Cryptographic Protokol

Suatu protokol adalah serangkaian langkah yang melibatkan dua pihak atau lebih dan dirancang untuk menyelesaikan suatu tugas. Dari definisi ini dapat diambil beberapa arti sebagai berikut :

1. protokol memiliki urutan dari awal hingga akhir 2. setiap langkah harus dilaksanakan secara bergiliran

3. suatu langkah tidak dapat dikerjakan bila langkah sebelumnya belum selesai 4. diperlukan dua pihak atau lebih untuk melaksanakan protokol

5. protokol harus mencapai suatu hasil

Selain itu, suatu protokol pun memiliki karakteristik yang lain, yaitu :

1. setiap orang yang terlibat dalam protokol harus mengetahui terlebih dahulu

mengenai protokol dan seluruh langkah yang akan dilaksanakan

2. setiap orang yang terlibat dalam protokol harus menyetujui untuk mengikutinya

3. protokol tidak boleh menimbulkan kerancuan

4. protokol harus lengkap

Protocol kriptografi adalah suatu protokol yang menggunakan kriptografi. Protokol ini melibatkan sejumlah algoritma kriptografi, namun secara umum tujuan protokol lebih dari sekedar kerahasiaan. Pihak-pihak yang berpartisipasi mungkin saja ingin membagi sebagian rahasianya untuk menghitung sebuah nilai, menghasilkan urutan random, atau pun menandatangani kontrak secara bersamaan. Penggunaan kriptografi dalam sebuah protokol terutama ditujukan untuk mencegah atau pun mendeteksi adanya eavesdropping dan cheating.

2.7.1 Fungsi Protokol

(31)

protokol-protokol ini terus berkembang, semua orang mengetahui bagaimana menggunakannya.

Saat ini, semakin banyak interaksi antar manusia dilakukan melalui jaringan komputer. Komputer ini tentu saja memerlukan suatu protokol formal agar dapat melakukan hal yang biasa dilakukan manusia tanpa berpikir. Bila kita berpindah dari satu daerah ke daerah lain dan mengetahui bahwa kartu pemilihan suaranya berbeda dengan yang biasa kita gunakan, kita dapat beradaptasi dengan mudah. Akan tetapi kemampuan ini belum dimiliki oleh komputer, sehingga diperlukan suatu protokol. Protokol digunakan untuk mengabtraksikan proses penyelesaian suatu tugas dari mekanisme yang digunakan. Protokol komunikasi adalah sama meskipun diimplementasikan pada PC atau VAX. Bila kita yakin bahwa kita memiliki protokol yang baik, kita dapat mengimplementasikannya dalam segala benda mulai dari telepon

hingga pemanggang roti cerdas.

2.7.2 Penyerangan Terhadap Protokol

Penyerangan kriptografi dapat ditujukan pada beberapa hal berikut :

1. algoritma kriptografi yang digunakan dalam protokol.

2. teknik kriptografi yang digunakan untuk mengimplementasikan algoritma dan protokol.

3. protokol itu sendiri.

Seseorang dapat mencoba berbagai cara untuk menyerang suatu protokol. Mereka yang tidak terlibat dalam protokol dapat menyadap sebagian atau seluruh protokol. Tindakan ini disebut penyerangan pasif, karena si penyerang tidak mempengaruhi atau mengubah protokol, ia hanya mengamati protokol dan berusaha untuk memperoleh informasi.

(32)

Tindakan-tindakan ini disebut sebagai penyerangan aktif, karena ia membutuhkan suatu campur tangan aktif.

Seorang penyerang tidaklah hanya berasal dari lingkungan luar protokol, namun ia mungkin juga berasal dari dalam protokol itu sendiri, ia dapat merupakan salah satu pihak yang terlibat dalam protokol. Tipe penyerang semacam ini disebut sebagai cheater. Passive cheater mengikuti protokol, tetapi berusaha memperoleh informasi lebih banyak daripada yang diperbolehkan protokol bagi dirinya. Active

cheater mengubah protokol dalam usahanya untuk berbuat curang.

Usaha untuk menjaga keamanan protokol akan semakin sulit apabila pihak-pihak yang terlibat umumnya merupakan active cheater, oleh karena itu suatu protokol yang baik harus mampu atau pun harus aman terhadap kemungkinan passive cheating.

2.7.3 Berbagai Macam Basic Cryptanalytic Attacks

Tujuan cryptanalytic attack adalah untuk mengetahui beberapa plaintext yang sesuai dengan ciphertext yang ada dan berusaha menentukan kunci yang memetakan satu dengan yang lainnya. Plaintext ini dapat diketahui karena ia merupakan standar atau karena pendugaan. Jika suatu teks diduga berada di dalam suatu pesan, posisinya mungkin tidak diketahui, tetapi suatu pesan lazimnya cukup pendek sehingga memungkinkan cryptanalyst menduga plaintext yang diketahui dalam setiap posisi yang mungkin dan melakukan penyerangan pada setiap kasus secara paralel.

Suatu algoritma enkripsi yang kuat tidak hanya mampu bertahan terhadap serangan plaintext yang dikenal tetapi juga mampu bertahan terhadap adaptive chosen plaintext. Dalam penyerangan ini, cryptanalyst berkesempatan memilih plaintext yang digunakan dan dapat melakukannya secara berulang kali, memilih plaintext untuk tahap N+1 setelah menganalisis hasil tahap N.

(33)

ringkas terdapat tujuh macam basic cryptanalytic attacks berdasarkan tingkat kesulitannya bagi penyerang, dimulai dari yang paling sulit adalah :

1. Ciphertext-only attack. Dalam penyerangan ini, seorang cryptanalyst memiliki ciphertext dari sejumlah pesan yang seluruhnya telah dienkripsi menggunakan algoritma yang sama.

2. Known-plaintext attack. Dalam tipe penyerangan ini, cryptanalyst memiliki akses tidak hanya ke ciphertext sejumlah pesan, namun ia juga memiliki plaintext pesan-pesan tersebut.

3. Chosen-plaintext attack. Pada penyerangan ini, cryptanalyst tidak hanya memiliki akses atas ciphertext dan plaintext untuk beberapa pesan, tetapi ia juga dapat memilih plaintext yang dienkripsi.

4. Adaptive-chosen-plaintext attack. Penyerangan tipe ini merupakan suatu kasus

khusus chosen-plaintext attack. Cryptanalyst tidak hanya dapat memilih plaintext

yang dienkripsi, ia pun memiliki kemampuan untuk memodifikasi pilihan berdasarkan hasil enkripsi sebelumnya. Dalam chosen-plaintext attack, cryptanalyst mungkin hanya dapat memiliki plaintext dalam suatu blok besar untuk dienkripsi; dalam adaptive-chosen-plaintext attack ini ia dapat memilih blok plaintext yang lebih kecil dan kemudian memilih yang lain berdasarkan hasil yang pertama, proses ini dapat dilakukannya terus menerus hingga ia dapat memperoleh seluruh informasi.

5. Chosen-ciphertext attack. Pada tipe ini, cryptanalyst dapat memilih ciphertext yang berbeda untuk didekripsi dan memiliki akses atas plaintext yang didekripsi.

6. Chosen-key attack. Cryptanalyst pada tipe penyerangan ini memiliki pengetahuan tentang hubungan antara kunci-kunci yang berbeda.

7. Rubber-hose cryptanalysis. Pada tipe penyerangan ini, cryptanalyst mengancam, memeras, atau bahkan memaksa seseorang hingga mereka memberikan kuncinya.

2.7.4 Analisis Berbagai Tipe Penyerangan Secara Matematis

(34)

mengetahui kunci. Secara matematis, diberikan fungsi F, G, dan H yang terdiri dari n variabel. Diberikan sistem enkripsi E. Diberikan suatu distribusi plaintext dan kunci.

Suatu penyerangan atas E dengan menggunakan G dengan mengasumsikan F membagi H dengan probabilitas p adalah suatu algoritma A dengan sepasang input f,g dan satu buah output h sedemikian hingga terdapat probabilitas p atas h = H(P1, …, Pn), jika kita memiliki f = F(P1, …, Pn) dan g = G(EK(P1), …, EK(Pn)). Perlu diperhatikan bahwa probabilitas ini tergantung pada distribusi vektor-vektor (K,P1,…,Pn).

Penyerangan akan merupakan suatu trivial bila terdapat probabilitas paling sedikir p untuk h = H(P1, …, Pn) jika f = F (P1,…,Pn) dan g = G (C1,…,Cn). Di sini C1,…,Cn terletak pada ciphertext yang mungkin, dan tidak memiliki hubungan tertentu

dengan P1,…,Pn. Dengan kata lain, suatu serangan akan merupakan trivial bila ia tidak benar-benar menggunakan enkripsi EK(P1),…,EK(Pn).

Dengan merumuskan penyerangan secara matematis, kita dapat secara tepat memformulasikan dan bahkan membuktikan pernyataan bahwa suatu cryptosystem itu kuat. Kita katakan, sebagai contoh, bahwa suatu cryptosystem adalah aman terhadap seluruh penyerangan pasif jika sembarang penyerangan nontrivial terhadapnya tidak praktis. Jika kita dapat membuktikan pernyataan ini maka kita akan memiliki keyakinan bahwa cryptosystem kita akan bertahan terhadap seluruh teknik cryptanalytic pasif. Jika kita dapat mereduksi pernyataan ini hingga pada beberapa masalah yang tidak terpecahkan maka kita masih tetap memiliki keyakinan bahwa cryptosystem kita tidak mudah dibuka.

2.7.5 Ciphertext-only attack

(35)

merupakan suatu trivial bila ia hanya menghasilkan H(P1,…,Pn) ketika diberikan G(C1,…,Cn) untuk C1,…,Cn acak.

Sebagai contoh, misalkan G ( C ) = C dan misalkan H(P) adalah bit pertama P. Kita dapat secara mudah menulis suatu penyerangan, pendugaan, yang menduga bahwa H(P) adalah 1. Penyerangan ini adalah trivial karena tidak menggunakan ciphertext, probabilitas keberhasilannya adalah 50 %. Di lain pihak, terdapat penyerangan atas RSA yang memproduksi satu bit informasi tentang P, dengan probabilitas keberhasilan 100 %, menggunakan C. Jika diberikan suatu C acak maka tingkat kesuksesan turun menjadi 50%. Inilah yang disebut penyerangan nontrivial.

2.7.6 Known-Plaintext Attack

Penyerangan known-plaintext klasik memiliki F(P1,P2) = P1, G(C1,C2) = (C1,C2), dan H(P1,P2) tergantung hanya pada P2. Dengan kata lain, bila diberikan dua ciphertext C1 dan C2 dan satu dekripsi P1, penyerangan known-plaintext seharusnya menghasilkan informasi tentang dekripsi P2.

2.7.7 Brute-Force Attack

Umpamakan penyerangan known-plaintext berikut. Kita diberikan sejumlah plaintext P1,…,Pn-1 dan ciphertext C1,…,Cn-1. Kita juga diberikan sebuah ciphertext Cn. Kita jalankan seluruh kunci K. Bila kita temukan K sedemikian sehingga EK(P1) = Ci untuk setiap I<n, kita cetak DK(Cn).

Jika n cukup besar sehingga hanya satu kunci yang bekerja, penyerangan ini akan sukses untuk seluruh input yang valid pada setiap waktu, sementara ia akan menghasilkan hasil yang tepat hanya sekali untuk input acak. Penyerangan ini adalah

(36)

BAB 3

ANALISIS PERMASALAHAN

3.1 Bilangan Prima

Bilangan prima merupakan permasalahan yang serius di dalam ilmu komputer dan teori bilangan, itu sebabnya sangat cocok dipakai untuk bidang kriptografi. Saat protocol-protokol enkripsi kunci publik didasarkan pada penggunaan dari bilangan-bilangan prima dengan ukuran besar dan keamanannya didasarkan pada kesulitan untuk mendapatkan faktor-faktor prima dari suatu bilangan prima yang sangat besar.

Bilangan prima juga sangat bermanfaat untuk kegunaan-kegunaan yang lainnya. Contohnya antara lain adalah hash table, di mana hash table paling bagus jika diinisialisasi dengan bilangan prima agar dapat meminimumkan kolisi (collisions) yang akan terjadi.

Dalam dunia komputer sudah ditemukan beberapa cara untuk mencari bilangan prima, cara yang paling baik dan tercepat adalah menggunakan algoritma

Sieve of Eratosthenes, sesuai dengan nama orang yang menemukannya, yaitu

Eratosthenes, ahli matematika dari Kirene yang hidup pada 276 SM - 195 SM.

Bilangan prima (atau integer prima, sering disingkat "prima") adalah sebuah integer positif p > 1 yang tidak memiliki pembagi integer positif selain 1 dan p itu sendiri. Atau dengan kata lain, sebuah bilangan prima p adalah sebuah integer positif dengan tepat satu pembagi positif selain 1.

(37)

sebuah bilangan prima. Integer positif selain 1 yang bukan bilangan prima disebut dengan bilangan komposit (composite numbers).

Dengan demikian, bilangan prima adalah bilangan – bilangan yang tidak bisa difaktorkan, lebih singkatnya adalah bilangan-bilangan N yang pembaginya sedikit dan hanya 1 dan N.

Angka 1 sendiri adalah kasus spesial di mana 1 dianggap bukanlah prima dan bukan komposit. Walaupun angka 1 dulu dianggap sebagai bilangan prima, angka 1 membutuhkan perlakuan spesial dalam banyak definisi-definisi dan aplikasi-aplikasi yang melibatkan bilangan prima yang lebih besar atau sama dengan 2 yang biasanya dikelaskan sendiri.

Dengan angka 1 dikeluarkan, maka bilangan prima terkecil adalah 2. Karena 2 adalah satu – satunya bilangan prima yang genap, angka 2 juga menjadi spesial, dan keseluruhan bilangan prima tanpa 2 kemudian disebut sebagai “bilangan prima ganjil”.

3.1.1 Pembangkitan Kunci

Menemukan bilangan prima besar p dan q pada dasarnya didapatkan dengan mencobas erangkaian bilangan acak dengan ukuran yang tepat menggunakan probabilitas bilangan prima yang dapat dengan cepat menghapus hamper semua bilangan bukan prima.

P dan q seharusnya tidak "saling-berdekatan", agar faktorisasi fermat pada N

berhasil. Selain itu pula, jika p-1 atau q-1 memiliki faktorisasi bilangan prima yang kecil, N dapat difaktorkan secara mudah dan nilai-nilai dari p atau q dapat diacuhkan.

(38)

bilangan yang digunakan. Harap diingat, bahwa kebutuhan disini ialah "acak" dan “tidak-terduga". Berikut ini mungkin tidak memenuhi kriteria, sebuah bilangan mungkin dapat dipilah dari proses acak (misal, tidak dari pola apapun), tetapi jika bilangan itu mudah untuk ditebak atau diduga (atau mirip dengan bilangan yang mudah ditebak), maka metode tersebut akan kehilangan kemampuan keamanannya. Misalnya, table bilangan acak yang diterbitkan oleh Rand Corp pada tahun 1950-an mungkin memang benar-benar teracak, tetapi dikarenakan diterbitkan secara umum, hal ini akan mempermudah para penyerang dalam mendapatkan bilangan tersebut. Jika penyerang dapat menebak separuh dari digit p atau q, para penyerang dapat dengan cepat menghitung separuh yang lainnya (ditunjukkan oleh Donald Coppersmith pada tahun 1997).

Sangatlah penting bahwa kunci rahasia d bernilai cukup besar, Wiener

menunjukkan pada tahun 1990 bahwa jika p di antara q dan 2q (yang sangat mirip) dan d lebih kecil daripada N1/4/3, maka d akan dapat dihitung secara effisien dari N

dan e. Kunci enkripsi e = 2 sebaiknya tidak digunakan.

3.1.2 Kecepatan

RSA memiliki kecepatan yang lebih lambat dibandingkan dengan DES dan algoritma simetrik lainnya. Pada prakteknya, Bob menyandikan pesan rahasia menggunakan algoritma simetrik, menyandikan kunci simetrik menggunakan RSA, dan mengirimkan kunci simetrik yang dienkripsi menggunakan RSA dan juga mengirimkan pesan yang dienkripasi secara simetrik kepada Alice.

(39)

3.1.3 Distribusi Kunci

Sebagaimana halnya cipher, bagaimana public key RSA didistribusi menjadi hal penting dalam keamanan. Distribusi kunci harus aman dari man-in-the-middle attack. Anggap Eve dengan suatu cara mampu memberikan kunci yang bukan sebenarnya kepada Bob dan membuat Bob percaya bahwa kunci tersebut milik Alice. Anggap Eve dapat "menghadang" sepenuhnya transmisi antara Alice dan Bob. Eve mengirim Bob

public key milik Eve, dimana Bob percaya bahwa public key tersebut milik Alice. Eve dapat menerima seluruh ciphertext yang dikirim oleh Bob, melakukan dekripsi dengan kunci rahasia milik Eve sendiri, menyimpan salinan dari pesan tersebut, melakukan enkripsi menggunakan public key milik Alice, dan mengirimkan ciphertext yang baru kepada Alice. Secara prinsip, baik Alice atau Bob tidak menyadari kehadiran Eve di antara transmisi mereka. Pengamanan terhadap serangan semacam ini yaitu

menggunakans ertifikat digital atau komponen laindari infrastuktur public key.

3.2 Analisis Metode Sieve of Eratosthenes

Algoritma Sieve of Eratosthenes bisa mengurutkan bilangan prima dengan cara cepat. Algoritma ini menggunakan Ø(N) operasi dan Ø(N1/2 (log log N)/log N) bit memori.

Kekurangan dari algoritma Sieve of Eratosthenes adalah kebutuhan memorinya yang besar, sehingga hanya dapat dipakai untuk N = 10.000.000. Walaupun kompleksitas waktunya masih cukup baik, akan tetapi kompleksitas memorinya tidak menunjang (karena jumlah memori yang diperlukan sudah berada dalam jenjang puluhan, bahkan ratusan Megabyte).

Apabila Sieve of Eratosthenes masih dirasa kurang cepat, bahkan setelah dioptimasi, maka masih ada cara lain yang lebih cepat lagi, yaitu Sieve of Atkin, ditemukan pada tahun 2003 oleh A. O. L. Atkin dan D. J. Bernstein. Ide dari algoritma ini juga mengacu pada Sieve of Eratosthenes, ini menunjukkan bahwa ide dari Sieve of

(40)

Sieve Of Eratosthenes adalah sebuah algoritma klasik untuk menemukan seluruh bilangan prima sampai ke sebuah N yang ditentukan. Mulai dengan array of

integer yang belum dicoret dari 2 ke N. Integer pertama yang belum dicoret yaitu 2, adalah bilangan prima pertama. Coret seluruh kelipatan dari bilangan prima ini. Ulangi pada integer selanjutnya yang belum dicoret.

Sebagai contoh, berikut adalah larik (array) pada awalnya:

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

Karena 2 belum dicoret, maka 2 adalah bilangan 2 pertama. Kita coret seluruh kelipatan 2, yaitu 4, 6, 8, 10, 12, dan seterusnya.

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

Integer selanjutnya yang belum dicoret adalah 3, maka 3 adalah prima dan kita coret seluruh kelipatan 3, seperti 6, 9. 12, dan seterusnya.

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

5 adalah bilangan prima selanjutnya, maka kita harus mencoret seluruh kelipatan 5. Satu-satunya

bilangan yang dicoret dalam range ini adalah 25.

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

Maka akan didapat bilangan prima selanjutnya yaitu 7, 11, 13, 17, 19, dan 23. Pada prinsipnya, algoritma Sieve of Eratosthenes adalah sebagai berikut: 1. Buat daftar bilangan dari 2 sampai dengan N (2, 3, 4, …, N).

2. Ambil bilangan terkecil dalam daftar tersebut, misal X. X adalah bilangan prima yang dicari, keluarkan dari daftar dan masukkan ke tempat lain.

(41)

Berikut adalah rancangan flowchart algoritma Sieve of Eratosthenes :

(42)

3.3 Rancangan Sistem

Berdasarkan hasil analisis yang telah dilakukan di atas, maka penulis mendapatkan beberapa kesimpulan sebagai berikut :

1. Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci pribadi. Selama pemfaktoran bilangan besar menjadi faktor-faktor prima belum ditemukan algoritma yang efektif, maka selama itu pula keamanan algoritma RSA tetap terjamin.

2. Besaran-besaran yang digunakan pada algoritma RSA:

1. p dan q bilangan prima (rahasia)

3. Algoritma RSA didasarkan pada teorema Euler (lihat bahan kuliah Teori Bilangan Bulat) yang menyatakan bahwa:

i. aφ(r)≡ 1 (mod r) (1)

yang dalam hal ini, a harus relatif prima terhadap r

φ(r) = r(1 – 1/p1)(1 – 1/p2) … (1 – 1/pn) yang dalam hal ini p1, p2, …, pn adalah faktor prima dari r.

(43)

5. Berdasarkan sifat ambm (mod r) untuk m bilangan bulat ≥ 1, maka

persamaan (1) dapat ditulis menjadi

a mφ(r)≡ 1m (mod r)

atau

amφ(r)≡ 1 (mod r) (2)

6. Bila a diganti dengan X, maka persamaan (2) menjadi

Xmφ(r)≡ 1 (mod r) (3)

7. Berdasarkan sifat acbc (mod r), maka bila persamaan (3) dikali dengan X

menjadi:

Xmφ(r) + 1≡X (mod r) (4)

yang dalam hal ini X relatif prima terhadap r.

8. Misalkan SK dan PK dipilih sedemikian sehingga

SKPK≡ 1 (mod φ(r)) (5)

atau

SKPK = mφ(r) + 1 (6)

9. Sulihkan (6) ke dalam persamaan (4) menjadi:

(44)

10.Persamaan (7) dapat ditulis kembali menjadi

(X PK)SKX (mod r) (8)

yang artinya, perpangkatan X dengan PK diikuti dengan perpangkatan dengan

SK menghasilkan kembali X semula.

11.Berdasarkan persamaan (8), maka enkripsi dan dekripsi dirumuskan sebagai berikut:

EPK(X) = YXPK mod r (9)

DSK(Y) = XYSK mod r (10)

12.Karena SKPK = PKSK, maka enkripsi diikuti dengan dekripsi ekivalen

dengan dekripsi diikuti enkripsi:

ESK(DSK(X)) = DSK(EPK(X)) ≡XPK mod r (11)

Oleh karena XPK mod r ≡ (X + mr)PK mod r untuk sembarang bilangan bulat m,

maka tiap plainteks X, X + r, X + 2r, …, menghasilkan cipherteks yang sama. Dengan kata lain, transformasinya dari banyak ke satu. Agar transformasinya satu-ke-satu, maka X harus dibatasi dalam himpunan {0, 1, 2, …, r – 1} sehingga enkripsi dan dekripsi tetap benar seperti pada persamaan (9) dan (10).

3.4 Prosedur Membuat Pasangan Kunci

1. Pilih dua buah bilangan prima sembarang, p dan q.

2. Hitung r = pq. Sebaiknya pq, sebab jika p = q maka r = p2 sehingga p dapat

(45)

3. Hitung φ(r) = (p – 1) (q – 1).

4. Pilih kunci publik, PK, yang relatif prima terhadap φ(r).

5. Bangkitkan kunci rahasia dengan menggunakan persamaan (5), yaitu SKPK≡ 1

(mod φ(r)).

Perhatikan bahwa SKPK ≡ 1 (mod φ(r)) ekivalen dengan SKPK = 1 + mφ(r), sehingga SK dapat dihitung dengan

PK r m

SK =1+ φ( ) (12)

Akan terdapat bilangan bulat m yang menyebabkan memberikan bilangan bulat SK. Catatan

Contoh 1. Misalkan p = 47 dan q = 71 (keduanya prima). Selanjutnya, hitung nilai : PK dan SK dapat dipertukarkan urutan pembangkitannya. Jika langkah 4 diganti dengan “Pilih kunci rahasia, SK, yang …”, maka pada langkah 5 kita menghitung kunci publik dengan rumus yang sama.

r = pq = 3337 dan

φ(r)= (p – 1)(q – 1) = 3220.

Pilih kunci publik SK = 79, karena 79 relatif prima dengan 3220. PK dan r dapat

dipublikasikan ke umum.

Selanjutnya akan dihitung kunci dekripsi SK seperti yang dituliskan pada langkah instruksi 5 dengan menggunakan persamaan (11),

(46)

3.5Enkripsi

Plainteks disusun menjadi blok-blok x1, x2, …, sedemikian sehingga setiap blok merepresentasikan nilai di dalam rentang 0 sampai r – 1. Setiap blok xi dienkripsi menjadi blok yi dengan rumus.

yi = xi PK mod r

3.6 Dekripsi

Setiap blok cipherteks yididekripsi kembali menjadi blok xi dengan rumus

xi = yiSK mod r

Contoh 2. Misalkan plainteks yang akan dienkripsikan adalah

X = HARI INI

atau dalam sistem desimal (pengkodean ASCII) adalah

7265827332737873

Pecah X menjadi blok yang lebih kecil, misalnya X dipecah menjadi enam blok yang berukuran 3 digit:

x1 = 726 x4 = 273

x2 = 582 x5 = 787

x3 = 733 x6 = 003

(47)

Blok-blok plainteks dienkripsikan sebagai berikut:

72679 mod 3337 = 215 = y1 58279 mod 3337 = 776 = y2 73379 mod 3337 = 1743 = y3 27379 mod 3337 = 933 = y4 78779 mod 3337 = 1731 = y5 00379 mod 3337 = 158 = y6

Jadi, cipherteks yang dihasilkan adalah

Y = 215 776 1743 933 1731 158.

Dekripsi dilakukan dengan menggunakan kunci rahasia

SK = 1019

Blok-blok cipherteks didekripsikan sebagai berikut:

2151019 mod 3337 = 726 = x1 7761019 mod 3337 = 582 = x2 17431019 mod 3337 = 733 = x3 …

Blok plainteks yang lain dikembalikan dengan cara yang serupa. Akhirnya kita memperoleh kembali plainteks semula

P = 7265827332737873

yang dalam karakter ASCII adalah

(48)

3.7Kekuatan dan Keamanan RSA

1. Keamanan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan

bilangan non prima menjadi faktor primanya, yang dalam hal ini r = p×q.

2. Sekali r berhasil difaktorkan menjadi p dan q, maka φ(r) = (p – 1) (q – 1) dapat dihitung. Selanjutnya, karena kunci enkrispi PK diumumkan (tidak rahasia), maka

kunci dekripsi SK dapat dihitung dari persamaan PKSK≡ 1 (mod φ(r)).

3. Penemu algoritma RSA menyarankan nilai p dan q panjangnya lebih dari 100 digit.

Dengan demikian hasil kali r = p×q akan berukuran lebih dari 200 digit. Menurut

Rivest dan kawan-kawan, uasaha untuk mencari faktor bilangan 200 digit membutuhkan waktu komputasi selama 4 milyar tahun! (dengan asumsi bahwa algoritma pemfaktoran yang digunakan adalah algoritma yang tercepat saat ini dan komputer yang dipakai mempunyai kecepatan 1 milidetik).

(49)
(50)
(51)
(52)

BAB 4

IMPLEMENTASI DAN PENGUJIAN SISTEM

4.1 Implementasi Sistem

Implementasi dan pengujian system adalah tahapan berikutnya yang dilakukan setelah melakukan tahapan analisis dan perancangan sistem. Hasil analisis dan perancangan sistem yang telah diuraikan pada bab sebelumnya akan menjadi dasar pembuatan perangkat lunak yang diberi nama “Implementasi Metode The Sieve of Eratosthenes Untuk Membangkitkan Bilangan Prima”. Sebagaimana telah diuraikan pada bab-bab

sebelumnya, perangkat lunak ini akan memiliki kemampuan untuk melakukan enkripsi dan dekripsi file teks (.txt) dengan gabungan dua metode, yaitu algoritma rsa dan Eratosthenes.

Berikut adalah petunjuk instalasi aplikasi, dengan menggunakan xampp-win32-1.7.7-vc9 sebagai aplikasi pendukung untuk menjalankan aplikasi ini.

1. pastikan xampp sudah ada/diinstal di laptop.

2. kemudian, jalankan windows explorer, masuk ke c:\xampp\htdocs

3. buat folder baru, misal "rsa", lalu copy-kan file-file aplikasi ke dalam folder rsa 4. check xampp control panel, pastikan service apache dan mysql sdh “running”, jalankan browser, ketik http://localhost/phpmyadmin.

(53)

Gambar 4.1 Proses Import File rsa.sql Ke Dalam Database RSA

6. masih pada browser, buka tab baru (ctrl+t), ketik http://localhost/rsa

4.1.1 Tampilan Aplikasi

Gambar 4.2 adalah tampilan form utama dari perangkat lunak yang dihasilkan.

Form ini berisikan text box dan button sebagai interaksi kepada pengguna berupa masukan.

(54)

Gambar 4.3 Tampilan Setelah Memasukkan Bilangan Prima

(55)
(56)

BAB 5

PENUTUP

5.1Kesimpulan

Dari penulisan skripsi ini terdapat beberapa kesimpulan oleh penulis, yaitu sebagai berikut:

1. Algoritma RSA adalah algoritma kunci publik yang paling terkenal dan paling banyak aplikasinya.

2. Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor – faktor prima

3. Rancangan pembangkitan kunci yang merupakan kombinasi antara algoritma RSA dengan Bilangan PRIMA metode Eratosthenes memiliki keamanan yang ganda, yaitu pada sulitnya memfaktorkan bilangan yang besar menjadi faktor – faktor prima dan juga sulitnya menghitung logaritma diskrit.

(57)

5.2 Saran

Berikut adalah saran-saran untuk pengembangan lebih lanjut terhadap penelitian skripsi ini:

1. Untuk meningkatkan pemahaman pengguna tentang metoe erathostenes disarankan untuk menampilkan simulasi setiap proses yang terjadi pada saat enkripsi dan dekripsi.

2. Perlu dilakukan analisis terhadap penggunaan metode erathostenes pada algoritma RSA yang menjelaskan efektifitas dan efisiensi algoritma.

3. Untuk penelitian lebih lanjut, dapat digunakan data yang berbeda seperti gambar atau audio sebagai bahan uji algoritma.

4. Untuk pengembangan skripsi ini selanjutnya diharapkan menggunakan kunci

(58)

DAFTAR PUSTAKA

A Menezes, and. 1996. Handbook of Applied Cryptography. CRC Press.

Andrew S. Tanenbaum. 1997. Computer Network 3e. Alih bahasa Ir. Gurnita Priatna. Simon & Schuster Pte. Ltd. Jilid kedua.

Arrianto Mukti Wibowo, 1 9 9 8 , Mengenal Tanda Tangan & Sertifikat Digital, Majalah Info Komputer.

Bernard Sklar. 1998. Digital Communication, Fundamental and Application. USA: PTR Prentice Hall.

Bruce Schneier. 1996. Applied Cryptography. Canada: John Wiley & Sons, Inc. Second Edition.

Elang Ilik Martawijaya dan Anton Reinhard Pardede, 1995, Keamanan Data 2,

Jakarta, PT. Elex Media Komputindo.

Gertrude Ehrlich. 1991. Fundamental Concept of Abstract Algebra. PWS-Kent Publishing Company.

Jimmie Gilbert, and. 1989. Element of Modern Algebra. The Pridel, Weber & Schmidt Press, Third Edition.

Jiri Adamek. 1991. Foundations of Coding. Canada: John Wiley & Sons, Inc.

Larry J. Gerstein. 1996. Introduction to Mathematical Structures and Proofs. Springer-Verlag New York, Inc.

Michael o Albertson, and. 1998. Discrete Mathematic with algorithm. Canada: john Wiley & Sons, Inc.

Mukodim, Didin, 2002, Tinjauan Tentang Enkripsi Dan Dekripsi, Suatu Teknik Pengamanan Data Dengan Penyandian RSA, Makalah, Jakarta. Universitas Gunadarma.

Munir, Rinaldi. 2006. Kriptografi. Cetakan Pertama. Bandung : Informatika Bandung Richard Johsonbaugh. 1998. Discrete Mathematict. Alih bahasa Drs. Didiek Djunaedi.

USA: Prentice Hall, Inc. Edisi keempat. Jilid kesatu. Rosen, Kenneth H. 2007. Discrete Mathematics

(59)

Rasyid, Moh. Iqbal, 1999, Tinjauan Mengenai Kepopuleran Teknik Penyandian RSA, Skripsi, Depok : Universitas Gunadarma.

Rizal Akbar, 1997, Pengamanan Data dengan Enkripsi, Lab. Reliability & Security QRS, Artikel Internet.

Gambar

Tabel 2.1 Subtitusi
Tabel substitusi di atas dibuat secara acak. Dengan menggunakan tabel
Gambar 2.1 Permutasi
Gambar 2.3 Enkripsi Dengan Ekspansi
+7

Referensi

Dokumen terkait

Oleh karena itu, penulis akan berfokus pada pengujian lama waktu sistem dalam memfaktorkan kunci publik n menjadi faktor kunci p dan q dengan metode

Inti dari metode probabilistic encryption adalah untuk mengeliminasi kebocoran informasi dengan kriptografi kunci publik, karena metode ini menerapkan konsep acak dalam

Pengujian dilanjutkan pada proses dekripsi RSA dengan meng- input kunci publik n dan kunci privat d , serta ciphertext pada form ‟Dekripsi RSA‟ aplikasi Sistem

Untuk melakukan enkripsi pesan “M” pesan dibagi ke dalam block – block numeric yang lebih kecil dari pada “n” (data biner dengan pangkat terbesar), jika bilangan prima

Jika file yang berisi kunci tersebut bocor pada publik, maka enkripsi citra ini akan sia-sia karena dapat didekripsi dengan mudah.” Analisa hasil pengujian dilihat dari

Jika file yang berisi kunci tersebut bocor pada publik, maka enkripsi citra ini akan sia-sia karena dapat didekripsi dengan mudah.” Analisa hasil pengujian dilihat dari

Jika file yang berisi kunci tersebut bocor pada publik, maka enkripsi citra ini akan sia-sia karena dapat didekripsi dengan mudah.” Analisa hasil pengujian dilihat dari

Tujuan dan Manfaat Penelitian Tujuan dari penelitian ini adalah untuk membuktikan bahwa ada aplikasi yang berbasis ubuntu, sederhana yang mudah digunakan dan memiliki layanan