PENGAMANAN PESAN RAHASIA MENGGUNAKAN ALGORITMA KRIPTOGRAFI RIVEST SHAMIR ADLEMAN (RSA).
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
PENGAMANAN PESAN RAHASIA MENGGUNAKAN
ALGORITMA KRIPTOGRAFI RIVEST SHAMIR ADLEMAN
(RSA)
SKRIPSI
Diajukan untuk Memenuhi Sebagian dari Syarat Memperoleh Gelar Sarjana Sains
Program Studi Matematika Konsentrasi Aljabar
Oleh:
Chandra Putra Devha 0905803
JURUSAN PENDIDIKAN MATEMATIKA
FAKULTAS PENDIDIKAN MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS PENDIDIKAN INDONESIA
(2)
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
PENGAMANAN PESAN RAHASIA MENGGUNAKAN ALGORITMA KRIPTOGRAFI RIVEST-SHAMIR-ADLEMAN (RSA)
Oleh
Chandra Putra Devha
Sebuah skripsi yang diajukan untuk memenuhi salah satu syarat untuk memperoleh gelar Sarjana Sains pada
Fakultas Pendidikan Matematika dan Ilmu Pengetahuan Alam
© Chandra Putra Devha 2013 Universitas Pendidikan Indonesia
Oktober 2013
(3)
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
Skripsi ini tidak boleh diperbanyak seluruhya atau sebagian, dengan dicetak ulang, difoto kopi, atau cara lainnya tanpa ijin dari penulis.
LEMBAR PENGESAHAN
PENGAMANAN PESAN RAHASIA MENGGUNAKAN
ALGORITMA KRIPTOGRAFI RIVEST SHAMIR ADLEMAN (RSA)
Oleh:
Chandra Putra Devha 0905803
Disetujui dan Disahkan Oleh: Pembimbing I,
Dr. Elah Nurlaelah, M.Si. NIP. 196411231991032002
Pembimbing II,
Dr. Kusnandi, M.Si. NIP. 196903301993031002
Mengetahui,
(4)
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
Drs. Turmudi, M.Ed., M.Sc., Ph.D. NIP. 196101121987031003
(5)
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
ABSTRAK
Chandra Putra Devha. (2013). Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest-Shamir-Adleman (RSA).
Penelitian ini dilatar belakangi oleh tingkat keamanan dari informasi dan komunikasi yang rendah. Padahal, tingkat keamanan informasi dan komunikasi merupakan faktor penting agar terhindar dari pencurian data atau manipulasi data. Oleh karena itu, perlu dilakukan upaya untuk meningkatkan hal tersebut. Salah satunya dengan menggunakan kriptografi. Kriptografi merupakan ilmu yang mempelajari teknik matematika yang berhubungan dengan keamanana informasi. Salah satu algoritma kriptografi yaitu algoritma kriptografi RSA. RSA merupakan algoritma kriptografi asimetris karena menggunakan dua kunci, yaitu kunci publik dan kunci pribadi. Ada tiga algoritma dalam kriptografi RSA, yaitu pembangkitan kunci, proses enkripsi, dan proses dekripsi. Algoritma ini memiliki tingkat keamanan yang terletak pada sulitnya memfaktorkan sebuah bilangan besar menjadi dua buah bilangan prima. Kelemahan dari algoritma kriptografi RSA adalah waktu yang dibutuhkan untuk melakukan proses pembangkitan kunci, enkripsi dan dekripsi lambat. Sedangkan kelebihannya terletak pada sulitnya memecahkan kunci dan penggunaan kunci yang lebih efektif.
Kata kunci: algoritma, RSA, kriptografi, enkripsi, dekripsi, kunci, bilangan prima ABSTRACT
This research is motivated by security level of information and communication which is low. In fact, security level of information and communication is the main factor to avoid stealing data or manipulating data happen. Therefore, needed to find a way to improve it. One of that way is using cryptography. Cryptography is the study of mathematical techniques related to aspect of informations security. one of the cryptography is RSA algorithm. RSA algorithm is asymmetric cryptography algorithm because it use two keys; public key and private key. The RSA algorithm involves three steps; key generation algorithm, encryption algorithm, and decryption algorithm. This algorithm has security level based on presumed difficulty of factoring large number, become two primes number. The weakness of RSA algorithm is time to execute key generate algorithm, encryption algorithm, and decryption algorithm is slow. And the strength of it based on difficulty of break the key and better effective of using the key.
Keywords: algorithm, RSA, cryptography, encryption, decryption, key, prime
(6)
v
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
DAFTAR ISI
Halaman
PERNYATAAN ... i
ABSTRAK ... ii
KATA PENGANTAR ... iii
UCAPAN TERIMA KASIH ... iv
DAFTAR ISI ... v
DAFTAR TABEL ... ix
DAFTAR GAMBAR ... x
DAFTAR LAMPIRAN ... xi
ARTI LAMBANG ... xii
BAB 1 PENDAHULUAN 1.1 Latar Belakang ... 1
1.2 Rumusan Masalah ... 2
1.3 Batasan Masalah ... 2
1.4 Tujuan Penulisan ... 3
1.5 Manfaat Penulisan ... 3
BAB 2LANDASAN TEORI 2.1 Kriptografi ... 4
2.1.1. Sejarah Kriptografi ... 5
2.1.2. Algoritma Kriptografi ... 7
2.1.2.1.Algoritma Kriptografi Simetris ... 7
2.1.2.2.Algoritma Kriptografi Asimetris ... 8
2.1.3. Sistem Kriptografi ... 9
(7)
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
2.2.1 Divisibility ... 10
2.2.2 Algoritma Pembagian ... 12
2.2.3 Representasi Bilangan Bulat ... 13
2.2.4 Pembagi Persekutuan Terbesar ... 15
2.2.5 Algoritma Euclid ... 17
2.2.6 Algoritma Euclid yang Diperluas ... 18
2.2.7 Bilangan Prima ... 19
2.3 Struktur Aljabar ... 20
2.3.1 Pemetaan ... 21
2.3.2 Grup ... 21
2.3.3 Ring dan Field ... 22
2.4 Konsep Dasar Matematika dalam Algoritma RSA ... 23
2.4.1 Persamaan Kongruen... 24
2.4.2 Residue Class ... 26
2.4.3 Residue Class Ring... 27
2.4.4 Multiplikatif Grup Residue ... 29
2.4.5 Teorema Fermat ... 31
2.4.6 Metode Fast Exponentiation... 33
2.4.7 Tes Keprimaan ... 34
2.4.7.1Tes Fermat ... 34
2.4.7.2Bilangan Carmichael ... 35
2.4.7.3Tes Miller-Rabin ... 35
2.5 Digital Signature ... 36
2.5.1 Layanan Keamanan ... 36
BAB 3KRIPTOGRAFI RSA 3.1 Sistem ASCII... 39
(8)
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
3.2.1 Proses Pembangkitan Kunci ... 42
3.2.2 Proses Enkripsi ... 48
3.2.3 Proses Dekripsi ... 51
3.3 Digital Signature Algoritma Kriptografi RSA ... 53
3.3.1. Konsep Digital Signature ... 53
3.3.2. Algoritma Digital Signature Kriptografi RSA ... 54
3.2.3.1Proses Pembangkitan Kunci ... 55
3.2.3.2Proses Sign Digital Signature ... 59
3.2.3.3Proses Verifikasi Digital Signature ... 61
3.4 Keamanan RSA ... 65
3.5 Kelebihan dan Kekurangan RSA ... 66
BAB 4IMPLEMENTASI DAN UJI COBA 4.1 Sarana Implementasi ... 74
4.2 Implementasi Algoritma RSA ... 75
4.2.1. Deklarasi Nama Program, Unit, Variabel dan Tipe Data ... 75
4.2.2. Fungsi dan Prosedur ... 76
4.3 Uji Coba Program... 84
4.3.1. Bahan Pengujian ... 84
4.3.2. Pengujian Program ... 84
4.3.2.1Pengujian Proses Input Bilangan Prima ... 84
4.3.2.2Pengujian Proses Pembangkitan Kunci ... 85
4.3.2.3Pengujian Proses Enkripsi dan Dekripsi ... 88
4.4 Perbandingan Uji Coba ... 89
4.4.1 Perbandingan Uji Coba Terhadap Waktu Proses Pembangkitan Kunci ... 90
(9)
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
BAB 5KESIMPULAN DAN SARAN
5.1 Kesimpulan... 99
5.2 Saran ... 100
DAFTAR PUSTAKA ... 101
LAMPIRAN-LAMPIRAN ... 103
(10)
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
DAFTAR TABEL
Halaman
Tabel 2.1 Contoh Iterasi Algoritma Euclid yang Diperluas ... 19
Tabel 3.1 Kode ASCII... 39
Tabel 3.2Waktu Proses RSA ... 67
Tabel 3.3Waktu Proses Diffie-Hellman ... 67
Tabel 3.4 Waktu Proses Enkripsi dan Dekripsi RSA ... 69
Tabel 3.5 Waktu Proses Enkripsi dan Dekripsi Elgamal ... 70
Tabel 3.6 Proses Enkripsi Menggunakan Kriptografi Elgamal ... 72
Tabel 3.7 Proses Dekripsi Menggunakan Kriptografi Elgamal ... 73
Tabel 4.1 Spesifikasi Perangkat Keras ... 74
Tabel 4.2 Spesifikasi Perangkat Lunak ... 74
Tabel 4.3 Waktu Proses Pembentukan Kunci dengan Visual Basic 6.0(*) ... 90
Tabel 4.4 Waktu Proses Pembentukan Kunci dengan IDE Microsoft Visual Studio 2010 Ultimate(**) ... 92
Tabel 4.5 Waktu Proses Enkripsi dengan Visual Basic 6.0(*) ... 95
Tabel 4.6 Waktu Proses Enkripsi RSA dengan aplikasi IDE Visual Studio 2010(**) 97 Tabel 4.7 Perbandingan Waktu Proses Enkripsi Visual Basic 6.0(*) dengan IDE Microsoft Visual Studio 2010 Ultimate(**) ... 97
(11)
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
DAFTAR GAMBAR
Halaman
Gambar 2.1 Skema Algoritma Simetris ... 8
Gambar 2.2 Skema Algoritma Asimetris ... 9
Gambar 2.3 Skema Digital Signature... 38
Gambar 3.1 Flowchart Algoritma Pembangkitan Kunci... 45
Gambar 3.2 Flowchart Pembangkitan Kunci Lanjutan ... 46
Gambar 3.3 Flowchart Pembangkitan Kunci Lanjutan ... 47
Gambar 3.4 Flowchart Algoritma Enkripsi ... 50
Gambar 3.5 Flowchart Proses Dekripsi ... 52
Gambar 3.6 Skema Digital Signature Kriptografi RSA ... 54
Gambar 3.7 Flowchart Pembangkitan Kunci Digital Signature Kriptografi RSA .... 56
Gambar 3.8 Flowchart Pembangkitan Kunci Digital Signature Kriptografi RSA .... 57
Gambar 3.9 Flowchart Pembangkitan Kunci Digital Signature Kriptografi RSA .... 58
Gambar 3.10 Flowchart Sign Digital Signature Kriptografi RSA ... 60
Gambar 3.11 Flowchart Verifikasi Digital Signature Kriptografi RSA ... 62
Gambar 4.1 Tampilan Proses Input Bilangan Prima ... 85
Gambar 4.2 Tampilan Proses Input Bilangan Prima pada Contoh 3.1.1.1 ... 85
Gambar 4.3 Tampilan Proses Pembangkitan Kunci ... 86
Gambar 4.4 Tampilan Informasi Nilai Diterima ... 86
Gambar 4.5 Tampilan Proses Input Nilai ... 86
Gambar 4.6 Tampilan Proses Pembangkitan Kunci Pada Contoh 3.1.1.1 ... 87
Gambar 4.7 Tampilan Informasi Nilai Diterima pada Contoh 3.1.1.1 ... 87
Gambar 4.8 Tampilan Proses Input Nilai pada Contoh 3.1.1.1 ... 87
Gambar 4.9 Tampilan Proses Enkripsi dan Dekripsi ... 88
Gambar 4.10 Tampilan Proses Enkripsi pada Contoh 3.1.1.1 ... 89
(12)
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
DAFTAR LAMPIRAN
Halaman LAMPIRAN-LAMPIRAN ... 105
(13)
1
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
BAB 1 PENDAHULUAN
1.1 Latar Belakang Masalah
Di zaman modern seperti sekarang, perkembangan teknologi sangat berpengaruh besar terhadap segala aspek kehidupan. Banyak sekali manfaat dan kemudahan yang didapat dengan adanya teknologi yang terus berkembang, salah satunya di bidang informasi dan komunikasi. Dengan adanya internet, semua orang bisa saling berkomunikasi dan bertukar informasi dengan mudah. Namun, hal tersebut juga memiliki dampak buruk karena rawan terjadi pencurian data. Hal ini tentu akan merugikan banyak pihak, terutama bagi pengusaha, pemerintah, bank, dan pihak lain yang memiliki dokumen rahasia. Oleh karena itu, keamanan informasi merupakan faktor penting yang harus dipenuhi. Berbagai cara telah dilakukan untuk mengamankan informasi rahasia tersebut. Salah satu cara yang ditempuh adalah dengan mengubah informasi tersebut menjadi sandi-sandi yang sulit dibaca dan hanya bisa dibaca oleh pihak tertentu, metode ini disebut kriptografi.
Kriptografi merupakan studi matematis yang terkait dengan aspek-aspek yang berhubungan dengan keamanan informasi seperti menyembunyikan isi data, mencegah data dapat dirubah tanpa terdeteksi, ataupun mencegah data digunakan tanpa otoritas yang cukup. Kriptografi dilakukan untuk menyembunyikan konten dari suatu informasi dengan mengubah informasi tersebut menjadi sandi dengan menggunakan kunci, dan untuk membacanya diperlukan kunci pula. Orang yang melakukan proses kriptografi disebut kriptografer. Kebalikan dari kriptografi adalah Kriptoanalisis, yaitu seni dan ilmu untuk memecahkan Chiperteks menjadi
Plainteks tanpa melalui cara yang seharusnya, dan orangnya disebut Kriptoanalis.
Berdasarkan kerahasiaan kuncinya, algoritma dari kriptografi dapat dibedakan menjadi algoitma sandi kunci rahasia (private key) dan algoritma sandi kunci publik (public key). Namun algoritma kunci publik (public key) lebih sering
(14)
2
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
digunakan karena penggunaanya yang lebih efisien dari kunci rahasia (private key). Salah satu algoritma kunci publik (public key) yang sering digunakan adalah algoritma Rivest-Shamir-Adleman (RSA). Algoritma RSA dikembangkan oleh Ron (R)ivest, Adi (S)hamir, dan Len (A)dleman dari Massachussets Institute of Technology (MIT) pada tahun 1978. Secara garis besar, algoritma RSA melibatkan perkalian dua bilangan prima yang besar dan dengan tambahan operasi matematika lain menghasilkan dua kunci, yaitu kunci publik (public key) dan kunci pribadi (private key). Pembuatan kunci tersebut dilakukan dengan memilih bilangan prima acak yang besar.
Berdasarkan uraian di atas, penulis tertarik untuk mengkaji lebih lanjut algoritma kriptografi Rivest-Shamir-Adleman (RSA). Oleh karena itu, penulis mengambil judul “Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi
Rivest-Shamir-Adleman (RSA)”.
1.2 Rumusan Masalah
Berdasarkan latar belakang masalah yang telah diuraikan, maka dibuat beberapa rumusan masalah sebagai berikut.
1. Apa konsep matematis yang melandasi pembentukan algoritma kriptografi RSA?
2. Bagaimana cara kerja algoritma kriptografi RSA dan aplikasinya dalam tanda tangan digital?
3. Bagaimana implementasi algoritma RSA dalam bentuk program yang sederhana?
4. Bagaimana hasil analisis dan perbandingan program implementasi algoritma RSA?
1.3 Batasan Masalah
Sesuai dengan judul skripsi ini, pembahasan lebih difokuskan pada algoritma kriptografi RSA yang merupakan bagian dari algorima kriptografi kunci publik. Adapun yang menjadi batasan masalah adalah sebagai berikut :
(15)
3
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
1. Pembahasan mengenai algoritma kriptografi RSA ini meliputi konsep matematis yang melandasinya.
2. Membahas proses penyandian meliputi pembentukan kunci, enkripsi pesan, dan dekripsi pesan.
3. Pembahasan implementasi RSA pada tanda tangan digital hanya meliputi konsep teoritis.
4. Program yang dibuat merupakan implementasi dari algoritma RSA dengan menggunakan Visual Basic 6.0.
1.4 Tujuan Penulisan
Berdasarkan rumusan masalah yang telah diuraikan, maka skripsi ini bertujuan untuk memberikan gambaran mengenai:
1. Konsep matematis yang melandasi pembentukan algoritma kriptografi RSA beserta penerapannya pada tanda tangan digital.
2. Cara kerja algoritma kriptografi RSA dan aplikasinya dalam tanda tangan digital.
3. Implementasi algoritma kriptografi RSA dalam bentuk program yang sederhana.
4. Hasil analisis dan perbandingan program implementasi algoritma RSA
1.5 Manfaat Penulisan
Penulis berharap skripsi ini dapat memberi pengetahuan tentang konsep matematis yang melandasi algoritma kriptografi RSA, penerapan pada tanda tangan digital, proses enkripsi dan dekripsi algoritma kriptografi RSA.
(16)
39 Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
BAB 3
KRIPTOGRAFI RSA
3.1 Sistem ASCII
Sebelumnya, akan dijelaskan terlebih dahulu Sistem ASCII sebagai system standar pengkodean dalam pertukaran informasi yaitu Sistem ASCII. Plainteks yang akan dienkripsi dengan algoritma RSA merupakan angka-angka,
sedangkan pesan yang dikirimkan biasanya berbentuk teks atau tulisan. Oleh karena itu, dibutuhkan suatu kode yang sifatnya universal untuk mengubah pesan teks menjadi plainteks yang berbentuk angka. ASCII (American
Standard Code for Information Interchange) atau Kode Standar Amerika untuk Pertukaran Informasi adalah suatu standar internasional dalam kode huruf dan symbolyang bersifat universal. ASCII selalu digunakan oleh computer dan alat komunikasi lain untuk menunjukkan teks. Kode ASCII sebenranya memiliki komposisi bilangan biner 8 bit dimulai dari 0000 0000 sampai 1111 1111. Total kombinasi yang dihasilkan sebanyak 256 dimulai dari 0 sampai 255. Kode ASCII terdiri dari karakter umum yang biasa digunakan dalam penulisan data. Kode ASCII yang biasa digunakan dalam penulisan data dapat dilihat dalam tabel berikut :
Tabel 3.1 Kode ASCII
Karakter Kode ASCII Karakter Kode ASCII Karakter Kode ASCII
Spasi 32 @ 64 ` 96
! 33 A 65 a 97
“ 34 B 66 b 98
# 35 C 67 c 99
$ 36 D 68 d 100
% 37 E 69 e 101
& 38 F 70 f 102
„ 39 G 71 g 103
( 40 H 72 h 104
(17)
40
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
* 42 J 74 j 106
+ 43 K 75 k 107
, 44 L 76 l 108
- 45 M 77 m 109
. 46 N 78 n 110
/ 47 O 79 o 111
0 48 P 80 p 112
1 49 Q 81 q 113
2 50 R 82 r 114
3 51 S 83 s 115
4 52 T 84 t 116
5 53 U 85 u 117
6 54 V 86 v 118
7 55 W 87 w 119
8 56 X 88 x 120
9 57 Y 89 y 121
: 58 Z 90 z 122
; 59 [ 91 { 123
< 60 \ 92 | 124
= 61 ] 93 } 125
> 62 ^ 94 ~ 126
? 63 _ 95
3.2 Algoritma Kriptografi RSA
RSA merupakan salah satu algoritma kriptografi kunci publik.Algoritma ini adalah algoritma pertama yang cocok dalam melakukan digital signature.Saat ini algoritma RSA merupakan algoritma yang paling sering dipakai dari algoritma kunci publik lainnya.Algoritma RSA dikembangkan pertama kali oleh Ron Rivest, Adi Shamir, dan Len Adleman dari Massachussets Institute of Technology pada tahun 1978. Nama RSA sendiri diambil dari nama ketiga peneliti tersebut yaitu, (R)ivest, (S)hamir, dan (A)dleman. RSA merupakan algoritma kunci publik
(18)
41
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
yang memilik dua kunci yaitu kunci publik (public key) dan kunci pribadi (private key).
RSA terbagi menjadi tiga proses, yaitu pembangkitan kunci, enkripsi dan dekripsi. Dasar proses enkripsi dan dekripsi pada algoritma RSA yaitu konsep bilangan prima dan aritmatika modulo. Kunci enkripsi tidak dirahasiakan dan diberikan kepada umum (disebut kunci publik), sedangkan kunci untuk dekripsi bersifat rahasia (disebut kunci pribadi).
Untuk menemukan kunci dekripsi, dilakukan dengan cara memfaktorkan bilangan bulat menjadi faktor-faktor primanya. Namun, memfaktorkan bilangan bulat menjadi faktor primanya tidak mudah karena belum ada cara yang efisien untuk melakukan pemfaktoran. Cara yang paling mungkin dilakukan adalah dengan pohon faktor. Namun semakin besar bilangan yang akan difaktorkan maka semakin lama pula waktu yang dibutuhkan untuk menyelesaikannya. Jadi semakin besar bilangan yang akan difaktorkan, semakin sulit pemfaktorannya, semakin kuat pula algoritma RSA. Oleh karena itu, dalam menggunakan algoritma RSA dianjurkan menggunakan bilangan yang sangat besar agar keamanannya dapat terjamin.
Besaran-besaran yang digunakan pada algoritma RSA antara lain :
1. dan bilangan prima (rahasia)
2. (tidak rahasia)
3. (rahasia)
4. (kunci enkripsi) (tidak rahasia)
5. (kuni dekripsi) (rahasia)
6. (plainteks) (rahasia)
7. (chiperteks) (tidak rahasia)
Algoritma RSA didasarkan pada Teorema Euler yang menyatakan bahwa
(19)
42
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
1. relatif prima terhadap .
2. dengan adalah
faktor prima dari .
Berdasarkan sifat dengan bilangan bulat , maka persamaan (1) menjadi
Ganti dengan sehingga
Berdasarkan sifat dan persamaan (3) dikalikan dengan diperoleh
Misalkan dipilih
atau
Substitusi (6) ke persamaan (4) menjadi
Persamaan (7) dapat ditulis kembali menjadi
yang berarti bahwa ketika dipangkatkan dan dipangkatkan lagi dengan menghasilkan m lagi.
Berdasarkan persamaan (8), dirumuskan enkripsi dan enkripsi yaitu:
dan
3.2.1. Proses Pembangkitan Kunci
Algoritma RSA memiliki dua kunci yang berbeda untuk proses enkripsi dan dekripsi. Dalam menentukan dua bilangan prima sebagai kunci adalah
(20)
43
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
bilangan prima yang besar, karena pemfaktoran bilangan dari dua bilangan prima yang besar sangat sulit, sehingga keamanan pesan lebih terjamin.
Pasangan kunci adalah elemen penting dari algoritma RSA.Berikut ini langkah-langkah dalam membangkitkan dua kunci algoritma RSA.
1. Pilih dua bilangan prima sembarang, dan . 2. Hitung .
3. Hitung .
4. Pilih kunci publik e, yang relatif prima terhadap .
5. Bangkitkan kunci pribadi dengan menggunakan .
Hasil dari algoritma tersebut akan menghasilkan dua kunci, yaitu kunci publik
dan kunci pribadi .
Contoh 3.1.1.1
Misalkan B akan membangkitkan kunci publik dan kunci pribadi miliknya. B memilih dan (keduanya prima). Selanjutnya B menghitung
dan
B memilih karena relatif prima terhadap . B mengumumkan nilai dan .
Selanjutnya B menghitung nilai dengan algoritma Euclid yang diperluas menjadi
, ,
, ,
, ,
(21)
44
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
Karena dapat ditulis menjadi , maka didapat . Sehingga diperoleh . Ini adalah kunci pribadi untuk mendekripsikan pesan dan harus dirahasiakan oleh B. Dari perhitungan tersebut didapat kunci publik dan kunci pribadi berturut-turut adalah
dan
Contoh 3.1.1.2.
Misalkan B akan membangkitkan kunci publik dan kunci pribadi miliknya. B memilih dan (keduanya prima). Selanjutnya B menghitung
dan
B memilih karena relatif prima terhadap . B mengumumkan nilai dan .
Selanjutnya B menghitung nilai dengan algoritma Euclid yang diperluas menjadi
, ,
, ,
, ,
Karena dapat ditulis menjadi , maka didapat . Sehingga diperoleh . Ini adalah kunci pribadi untuk mendekripsikan pesan dan harus dirahasiakan oleh B. Dari perhitungan tersebut didapat kunci publik dan kunci pribadi berturut-turut adalah
(22)
45
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
dan
Berikut merupakan flowchart pembangkitan kunci dengan algoritma RSA.
Gambar 3.1 Flowchart Algoritma Pembangkitan Kunci
Start
Bilangan Prima Positif Bilangan Prima Positif
Bukan Prima Tes Miller Rabin
, dengan positif.
, dengan .
, dengan positif.
, dengan .
YA
TIDAK
Jika dan
Print dan prima
(23)
46
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
Gambar 3.2 Flowchart Pembangkitan Kunci Lanjutan
TIDAK
TIDAK
YA YA
B
( ) Algoritma Euclid
A
Pilih relatif prima,
TIDAK
(24)
47
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
Gambar 3.3 Flowchart Pembangkitan Kunci Lanjutan
B
END
Kunci rahasia
Kunci Publik
Mencari Invers dari b Algoritma Euclid Diperluas
Kunci publik dipublikasikan
(25)
48
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
3.2.2. Proses Enkripsi
Langkah-langkah dalam melakukan proses enkripsi adalah sebagai berikut: 1. Ambil kunci public penerima pesan, e, dan modulus n.
2. Plainteks dibuat menjadi blok-blok sedemikian sehingga setiap blok merepresentasikan nilai di selang . 3. Setiap blok dienkripsi menjadi blok dengan rumus
Contoh 3.2.2.1.
Misalkan A akan mengirim pesan ke B. Pesan (Plainteks) yang akan dikirim adalah
atau dalam sistem desimal pengkodean ASCII adalah
A memecah menjadi blok yang lebih kecil, misalkan membagi menjadi 5 blok yang berukuran 2 digit
Nilai-nilai ini masih terletak di selang agar transformasi menjadi satu-ke-satu.
A mengetahui kunci publik B adalah dan . A dapat mengenkripsikan setiap blok plainteks sebagai berikut
(26)
49
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
Jadi chiperteks yang dihasilkan adalah
Contoh 3.2.2.2.
Misalkan A akan mengirim pesan ke B. Pesan (Plainteks) yang akan dikirim adalah
atau dalam sistem desimal pengkodean ASCII adalah
A memecah menjadi blok yang lebih kecil, misalkan membagi menjadi 6 blok yang berukuran 3 digit
Nilai-nilai ini masih terletak di selang agar transformasi menjadi satu-ke-satu.
A mengetahui kunci publik B adalah dan . A dapat mengenkripsikan setiap blok plainteks sebagai berikut
Jadi chiperteks yang dihasilkan adalah
(27)
50
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
Gambar 3.4 Flowchart Algoritma Enkripsi
Start
Kunci Publik
Plainteks
Plainteks ASCII (Desimal)
Cipherteks
Proses Merubah Plainteks Dengan Metode Fast Exponentiation
END
Cipherteks dikirim ke penerima
YA
(28)
51
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
3.2.3. Proses Dekripsi
Langkah-langkah dalam melakukan proses dekripsi adalah sebagai berikut: 1. Setiap blok chiperteks didekripsi kembali menjadi blok dengan
rumus
2. Blok-blok diubah kembali menjadi bentuk huruf dengan kode ASCII.
Contoh 3.2.3.1.
B akan mendekripsi pesan dengan menggunakan kunci pribadi
. Blok-blok chiperteks didekripsikan dengan cara
Akhirnya diperoleh plainteks semula yaitu yang dalam sistem karakter pengkodean ASCII
Contoh 3.2.3.2.
B akan mendekripsi pesan dengan menggunakan kunci pribadi
. Blok-blok chiperteks didekripsikan dengan cara
(29)
52
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
Akhirnya diperoleh plainteks semula yaitu yang dalam sistem karakter pengkodean ASCII
Berikut merupakan flowchart dekripsi pesan dengan algoritma RSA.
Gambar 3.5 Flowchart Proses Dekripsi
Start
Kunci rahasia
Cipherteks
Proses Merubah Plainteks Dengan Metode Fast Exponentiation
END
ASCII (Karakter)
(30)
53
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
3.3 Digital Signature Algoritma Kriptografi RSA
Sistem Kriptografi Algoritma Kriptografi RSA dapat dimodifikasi sehingga memenuhi sistem digital signature.Ada beberapa perbedaan dari algoritma RSA yang dibahas di awal, dimana pihak pembentuk kunci merupakan si pengirim pesan, berbeda dengan algoritma RSA, pembentukan kunci dilakukan oleh penerima pesan. Perbedaan lainnya terletak pada pembuatan nilai tanda tangan dan verifikasi nilai tanda tangan, dengan proses enkripsi dan dekripsi pesan pada algoritma RSA. Jika pada enkripsi pesan digunakan kunci public, dan proses dekripsi pesan menggunakan kunci pribadi, sebaliknya pada proses pembuatan nilai tanda tangan justru menggunakan kunci pribadi, sedangkan verifikasi pesan menggunakan kunci public. Berikut merupakan konsep serta algoritma digital signature dengan kriptografi RSA.
3.2.1 Konsep Digital Signature RSA
Secara garis besarnya, konsep digital signature dengan algoritma RSA diawali dengan pembangkitan kunci oleh si pengirim pesan.Setelah itu, dengan kunci pribadi yang dimilikinya, si pengirim pesan mencari nilai tanda tangan yang bersesuaian dengan isi pesan, dan mengirimkan nilai pesan beserta nilai tanda tangan ke penerima.Lalu dengan kunci public dari pengirim pesan, penerima mencari nilai pesan dengan menggunakan nilai tanda tangan yang diberikan. Jika nilai pesan dari pengirim sama dengan hasil perhitungan dari penerima, maka pesan tersebut terbukti valid. Berikut skema digital signature demgam algoritma RSA.
(31)
54
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
Gambar 3.6 Skema Digital Signature Kriptografi RSA
3.2.2 Algoritma Digital Signature Kriptografi RSA
Algoritma digital signature dengan kriptografi RSA terdiri dari tiga proses, yaitu proses pembangkitaan kunci, proses sign digital signature, dan proses verify digital signature. Pada dasarnya, ketiga proses tersebut mempunyai langkah yang sama dengan tiga proses algoritma RSA, hanya terdapat beberapa perbedaan, yaitu pembuat pembangkitan kunci merupakan si pengirim pesan, berbeda dengan kriptografi RSA, dengan penerima pesan sebagai pembangkitan kunci. Selain itu ada perbedaan dari proses sign dan verify dengan proses enkripsi dan dekripsi. Jika dalam proses enkripsi menggunakan kunci public dan proses dekripsi menggunakan kunci pribadi, sedangkan pada proses sign digital signature menggunakan kunci pribadi, dan proses verify menggunakan kunci public. Berikut merupakan algoritma pembuatan digital signature dengan kriptografi RSA.
Kunci Publik A
Terima A
dokumen
Kunci Pribadi A
(32)
55
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
3.2.3.1Proses Pembangkitan Kunci
Sama halnya dengan proses pembangkitan kunci dengan algoritma RSA, proses pembangkitan kunci untuk digital signature dengan algoritma RSA menghasilkan kunci public dan kunci privat. Perbedaannya terletak pada si pembangkit kunci.Jika pada pembangkitan kunci algoritma RSA, si penerima pesan yang membangkitkan kunci, namun pada digital signature algoritma RSA, si pengirim pesan lah yang membangkitkan kunci. Untuk tahap-tahap pembangkitan kunci digital signature sama dengan pembangkitan algoitma RSA, yaitu:
1. Pilih dua bilangan prima sembarang, dan . 2. Hitung .
3. Hitung .
4. Pilih kunci publik e, yang relatif prima terhadap .
5. Bangkitkan kunci pribadi dengan menggunakan .
Hasil dari algoritma tersebut akan menghasilkan dua kunci, yaitu kunci publik
dan kunci pribadi .
(33)
56
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
Gambar 3.7 Flowchart Pembangkitan Kunci Digital Signature Kriptografi RSA
Start
Bilangan Prima Positif Bilangan Prima Positif
Bukan Prima Tes Miller Rabin
, dengan positif.
, dengan .
, dengan positif.
, dengan .
Jika dan
Print dan prima
A
YA
(34)
57
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
Gambar 3.8 Flowchart Pembangkitan Kunci Digital Signature Kriptografi RSA
TIDAK
TIDAK
YA YA
B
( ) Algoritma Euclid
A
Pilih relatif prima,
TIDAK
(35)
58
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
Gambar 3.9 Flowchart Pembangkitan Kunci Digital Signature Kriptografi RSA
B
END
Kunci rahasia
Kunci Publik
Mencari Invers dari b Algoritma Euclid Diperluas
(36)
59
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
3.2.3.2Proses Sign Digital Signature
Pada proses sign digital signature, langkah yang dilakukan sama dengan proses enkripsi pada algoritma RSA. Perbedaannya selain terletak di pembuat kunci, hasil yang dihasilkannya merupakan nilai dari digital signature. Dan proses mendapatkan nilai sign digital signature menggunakan kunci privat, berbeda dengan proses enkripsi yang menggunakan kunci publik. Jika pada tanda tangan manual, hanya ada satu tanda tangan untuk satu pengirim, namun pada digital signature bisa banyak nilai tanda tangan karena bergantung pada isi pesan yang akan dikirim. Berikut adalah langkah pembuatan sign digital signature.
Langkah-langkah dalam melakukan proses enkripsi adalah sebagai berikut: 1. Ambil kunci privat, , yang telah dibangkitkan pengirim dan modulus
.
2. Plainteks dibuat menjadi blok-blok sedemikian sehingga setiap blok merepresentasikan nilai di selang . 3. Nilai digital signature didapat dengan menggunakan rumus berikut:
4. Pengirim mengirim nilai pesan beserta nilai tanda tangan
(37)
60
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
Gambar 3.10 Flowchart Sign Digital Signature Kriptografi RSA
Start
Kunci Rahasia
Plainteks
Plainteks ASCII (desimal)
Proses Signature dengan Metode Fast Exponentiation
Nilai Tanda Tangan (
END
Nilai Tanda Tangan dikirim
YA
(38)
61
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
3.2.3.3Proses Verifikasi Digital Signature
Sama halnya dengan proses sign digital signature, langkah dalam proses verifikasi pun sama dengan proses dekripsi pada algoritma RSA. Namun pada proses verifikasi, menggunakan kunci public dari pengirim, berbeda dengan dekripsi algoritma RSA yang menggunakan kunci pribadi dari penerima itu sendiri. Langkah-langkah dalam melakukan proses verifikasi adalah sebagai berikut:
1. Penerima pesan menerima nilai pesan beserta tanda tangan pesan
.
2. Setiap blok nilai digital signature diubah menjadi blok dengan rumus
3. Bandingkan nilai dan , apabila maka pesan tersebut dapat dipercaya keasliannya.
4. Blok-blok diubah kembali menjadi bentuk huruf dengan kode ASCII.
Berikut merupakan flowchart proses verifikasi digital signature dengan algoritma RSA.
(39)
62
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
Gambar 3.11 Flowchart Verifikasi Digital Signature Kriptografi RSA
YA
Pesan tersebut masih otentik atau masih
utuh
TIDAK
Pesan tersebut tidak otentik atau tidak masih
utuh Plainteks
Kunci Publik Signature
Nilai Verifikasi (
END
Proses Verifikasi dengan Metode Fast Exponentiation
Dekripsi Cipherteks Plainteks
(40)
63
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
Berikut adalah contoh dari digital signature dengan menggunakan algoritma RSA.
Contoh 3.2.3.4.
Seorang direktur akan mengirimkan sebuah pesan kepada seluruh pegawainya. Karena pesan tersebut sangat penting, direktur tersebut akan memberikan digital signature pada pesan yang akan ia sampaikan dengan menggunakan digital signature algoritma kriptografi RSA untuk menghindari perubahan isi pesan yang dilakukan pihak tak berwenang. Hal yang pertama dilakukan direktur tersebut yaitu membangkitkan kunci public dan pribadi. Direktur tersebut memilih bilangan dan . Dari dua bilangan prima tersebut, didapat
dan
Direktur tersebut memilih bilangan karena relatif prima dengan
.
Selanjutnya Direktur tersebut menghitung nilai dengan algoritma Euclid yang diperluas menjadi
, ,
, ,
, ,
Dari perhitungan tersebut didapat kunci publik dan kunci pribadi berturut-turut adalah dan
Misalkan pesan (plainteks) yang akan dikirim direktur tersebut yaitu
atau dalam sistem desimal pengkodean ASCII adalah
A memecah menjadi blok yang lebih kecil, misalkan membagi menjadi 12 blok yang berukuran 3 digit
(41)
64
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
Nilai-nilai ini masih terletak di selang agar transformasi menjadi satu-ke-satu.
Dengan menggunakan kunci pribadi miliknya yaitu dan
, direktur tersebut akan menghitung nilai digital signature dari pesan yang akan ia kirim sebagai berikut:
(42)
65
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
Jadi pesan yang dikirim oleh direktur tersebut adalah
Setelah menerima pesan dari direktur, para karyawan akan mendekripsi pesan dan memverifikasi pesan tersebut. Langkah pertama adalah mengambil kunci public dari direktur, yaitu . Dengan kunci public tersebut, karyawan memverifikasi pesan yang dikirim oleh direktur denga cara
Karena nilai yang dikirim oleh direktur sama dengan nilai yang didapat dari hasil perhitungan karyawan, maka dapat disimpulkan bahwa keutuhan pesan tersebut dapat dijamin. Dan dengan mengubah kode tersebut dalam tabel ASCII, didapat pesan asli dari direktur yaitu
3.3 Keamanan RSA
Pengamanan pesan dengan menggunakan algoritma RSA didasarkan pada dua masalah matematika,yaitu:
1. Penanganan masalah faktorisasi pada bilangan bilangan yang sangat besar.
(43)
66
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
2. Permasalahan perhitungan modulus yang bersesuaian dengan persamaan . Sampai saat ini, untuk memecahkan algoritma yang paling baik adalah dengan memfaktorkan nilai menjadi nilai dan sehingga akan didapat nilai sehingga didapat nilai yang didapat dari nilai . Oleh karena itu, sangat disarankan agar nilai dari dan memiliki panjang 100 digit sehingga menghasilkan nilai berukuran 200 digit. Dengan cara tersebut, akan sangat menyulitkan untuk memfaktorkan nilai . Menurut Rivest, Shamir, dan Adleman,butuh waktu komputasi selama 400 milyar untuk memfaktorkan bilangan berukuran 200 digit. Meskipun belum ada bukti yang menyatakan bahwa memfaktorkan nilai merupakan satu-satunya cara untuk membongkar algoritma RSA, namun tetap saja belum ada metode yang lebih efisien dari pemfaktoran nilai .
3.4 Kelebihan dan Kekurangan RSA
Dalam penggunaan kriptografi RSA, tentu terdapat eberapa kekurangan dan kelebihan yang didapat. Sekarang akan dibahas beberapa kekurangan dan kelebihan serta perbandingan kriptografi RSA dengan kriprografi lainnya.
Menurut Yudi Retanto dalam artikelnya yang berjudul
“Perbandingan Algoritma RSA dan Diffie-Hellman” terdapat beberapa
perbedaan yang terdapat pada kedua algoritma tersebut.Yang pertama adalah perbandingan waktu. Menurut penelitian yang dilakukan oleh Yudi Retanto, didapat rata-rata waktu yang diperlukan algoritma RSA adalah 433,9 ms sedangkan untuk algoritma Diffie-Hellman membutuhkan rata-rata 318,5 ms. Sehingga dapat dikatakan bahwa kecepatan proses algoritma Diffie-Hellman lebih baik dari algoritma RSA. Hal ini terjadi karena algoritma pada kriptografi Diffie-Hellman lebih sederhana dibandingkan dengan algoritma RSA. Berikut tabel waktu proses dari algoritma kriptografi RSA dan Diffie-Hellman.
(44)
67
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
a. Algoritma RSA
Tabel 3.2 Waktu Proses RSA
b. Algoritma Diffie-Hellman.
Tabel 3.3 Waktu Proses Diffie-Hellman
(45)
68
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
Lalu dari perbandingan tingkat keamanan pun algoritma Diffie-Hellman lebih unggul dari algoritma RSA. Hal ini karena pada algoritma RSA,nilai dipublikasikan sehingga ada kemungkinan dibongkar oleh pihak lain sengan cara pemfaktoran nilai menjadi dan sehingga didapat nilai . Sedangkan pada algoritma Diffie-Hellman, nilai dan yang dipilih oleh masing-masing pihak tidak dikirimkan sehingga terjamin keamanannya. Namun dalam efektifitas kunci, algoritma RSAunggul dari algoritma Diffie-Hellman,karena dalam algoritma Diffie-Hellman, membutuhkan pertukaran data antar pihak untuk saling berkomunikasi, sehingga akan butuh data baru dan pertukaran data baru jika ingin melakukan komunikasi dengan pihak lain. Sedangkan pada algoritma RSA, tidak perlu lagi melakukan pembangkitan kunci. Setiap pihak cukup mengambil kunci publik yang telah tersedia tanpa harus melakukan pembangkitan kunci dari awal. Berikut merupakan proses pembangkitan kunci kriptografi Diffie-Hellman.
Algoritma Diffie Hellman merupakan salah satu algoritma kunci simetris karena hanya menggunakan kunci pribadi dalam proses enkripsi dekripsinya. Berikut ini adalah langkah-langkah yang dilakukan:
1. Ada dua pihak yang akan saling berkomunikasi, yaitu A dan B.
2. Untuk berkomunikasi, A dan B perlu mengetahui kunci pribadi masing-masing.
3. Caranya yaitu A dan B memilih sebuah bilangan prima dan bilangan bulat dimana dan relatif prima dengan .
4. A memilih satu bilangan acak rahasia lalu menghitung
(46)
69
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
5. B juga memilih bilangan acak rahasia lalu menghitung
6. Lalu A dan B saling mengirim nilai dan dan menjaga nilai acak masing-masing yaitu dan .
7. A mulai menghitung kunci rahasia yang akan digunakan untuk enkripsi dan dekripsi yaitu dengan menggunakan perhitungan
.
8. B pun mulai menghitung kunci rahasia yang akan digunakan untuk enkripsi dan dekripsi yaitu dengan menggunakan perhitungan
.
9. Maka nilai sehingga A dan B dapat memulai bertukar pesan.
Menurut penelitian Nikolaus Indra dalam artikelnya yang berjudul
“Analisis dan Perbandingan Kecepatan Algoritma RSA dan Algoritma Elgamal”didapat bahwa waktu proses algoritma RSA lebih baik dibandingkan
dengan algoritma Elgamal. Hal ini dikarenakan proses algoritma pada Elgamal lebih kompleks daripada algoritma RSA. Berikut tabel waktu proses algoritma kriptografi RSA dan Elgamal.
a. Algoritma RSA.
Tabel 3.4 Waktu Proses Enkripsi dan Dekripsi RSA
(47)
70
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
b. Algoritma Elgamal
Tabel 3.5 Waktu Proses Enkripsi dan Dekripsi Elgamal
Namun karena hal tersebut, tingkat keamanan pesan dengan algoritma Elgamal lebih baik dari algoritma RSA. Karena kompleksnya algoritma Elgamal, membuat algoritma Elgamal lebih sulit dipecahkan daripada algoritma RSA. Untuk perbandingan dalam hal efektifitas, algoritma RSA lebih unggul dari algoritma Elgamal. Dalam algoritma RSA,chiperteks yang dihasilkan hanya memiliksatu nilai,sedangkan pada algoritma Elgamal, chiperteks yang dihasilkan ada dua untuk setiap bloknya. Berikut sekilas tentang algoritma dari kriptografi Elgamal.
Keamanan kriptografi Elgamal terletak pada tingkat kesulitan dalam menghitung logaritma diskrit. Logaritma diskrit dalam kriptografi Elgamal adalah sebagai berikut: terdapat bilangan prima dan terdapat bilangan bulat dan . Maka harus dicari nilai sedemikian sehingga
Bilangan disebut logaritma diskrit terhadap dengan basis ( ).
Parameter yang dibutuhkan algoritma Elgamal adalah:
1. (tidak rahasia)
2. (tidak rahasia)
3. (rahasia)
4. (tidak rahasia)
Langkah dalam membangkitkan kunci public dan kunci pribadi adalah : 1. Pilih sembarang bilangan prima dan elemen primitif .
(48)
71
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
3. Hitung .
4. Publikasikan nilai dan rahasiakan nilai .
dari langkah tersebut, maka akan didapat kunci public dan kunci pribadi yaitu
dan
Setelah mendapatkan kunci public dan kunci pribadi, selanjutnya akan dilakukan proses enkripsi terhadap plainteks. Proses enkripsi algoritma Elgamal adalag sebagai berikut:
1. Plainteks dipecah menjadi blok yang kecil . 2. Pilih bilangan acak yang terletak pada nilai . 3. Setiap blok dienkripsi dengan rumus
dan
diperoleh chiperteks . Jadi ukuran chiperteks dua kali dari ukuran plainteksnya.Bilangan ditentukan oleh pengirim dan harus dijaga kerahasiaannya jadi hanya pengirim saja yang mengetahuinya, tetapi nilai
hanya digunakan saat enkripsi, sehingg tidak perlu disimpan.
Selanjutnya akan dijelaskan proses dekripsi dari algoritma Elgamal, yaitu: 1. Gunakan kunci privat untuk menghitung .
2. Hitung . 3. Diperoleh plainteks
Contoh :
Misalkan A dan B akan berkomunikasi dengan menggunakan kriptografi Elgamal. B membangkitkan kunci public dan kunci pribadi dengan memilih bilangan prima
dan elemen primitive . Selanjutnya dipilih dan dihitunh
(49)
72
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
diperolehkunci public dan kunci pribadi . Lalu B memberikan kunci kepada A.
Selanjutnya A akan mengirim pesan kepada B yaitu “Temui aku”. Pesan tersebut
akan dienkripsi oleh A dengan menggunakan kunci public dari B. pesan tersebut jika diubah ke dalam kode ASCII akan menjadi
Pembagian blok sesuai kode dalam tiap kata. Sehingga jika A melakukan proses enkripsi akan menghasilkan chiperteks yaitu
Tabel 3.6 Proses Enkripsi Menggunakan Kriptografi Elgamal
Berdasarkan tabel tersebut, diperoleh chiperteks sebagai berikut
Chiperteks ini dikirimkan oleh A kepada B.
Selanjutnya B akan melakukan proses dekripsi terhadap chiperteks yang dikirimkan A, dengan cara sebagai berikut.
B memiliki kunci dan kunci pribadi . Selanjutnya B melakukan perhitungan sebagai berikut.
(50)
73
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
Tabel 3.6 Proses Dekripsi Menggunakan Kriptografi Elgamal
Karakter
(51)
99 Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan uraian yang telah dijelaskan dalam skripsi mengenai algoritma kriptografi RSA,diperoleh kesimpulan sebagai berikut.
1. Konsep-konsep matematis yang melandasi pembentukan algoritma kriptografi RSA adalah divisible, algoritma pembagian, pembagi persekutuan terbesar, bilangan prima, persamaan kongruen, grup berhingga, pemetaan, dan Teorema Euler tentang persamaan kongruen.
2. Cara kerja algoritma kriptografi RSA terdiri dari proses pembangkitan kunci, proses enkripsi, dan proses dekripsi. Dan cara kerja aplikasi algoritma kriptografi RSA dalam tanda tangan digital terdiri dari proses pembangkitan kunci, proses sign digital signature, dan proses verifikasi digital signature.
3. Implementasi algoritma kriptografi RSA dalam program yang sederhana, yaitu program algoritma kriptografi RSA, dibuat menggunakan aplikasi Visual Basic 6.0.
4. Setelah dilakukan analisis dan perbandingan program kriptografi RSA menggunakan Visual Basic 6.0 yang dibuat penulis dengan program menggunakan IDE Microsoft Visual Studio 2010 yang dibuat Yudi Retanto dan Nikolaus Indra didapat hasil berupa kelebihan dan kekurangan pada program kriptografi RSA menggunakan Visual Basic 6.0 yang dibuat penulis. Kelebihan dari program kriptografi RSA menggunakan Visual Basic 6.0 yang dibuat penulis jika dibandingkan dengan program menggunakan IDE Microsoft Visual Studio 2010 adalah aspek waktu proses pembangkitan kunci dan enkripsi yang lebih cepat. Berikut hasil perbandingan waktu proses pembangkitan kunci dan enkripsi program kriptografi RSA
(52)
100
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
menggunakan Visual Basic 6.0 dengan program menggunakan IDE Microsoft Visual Studio 2010. Namun, program kriptografi RSA menggunakan aplikasi Visual Basic 6.0 yang dibuat penulis memiliki beberapa kekurangan. Karena program tersebut menggunakan tipe data Double yang terbatas pada
sampai (Negatif) dan
sampai
(positif) sehingga perlu diperhatikan besarnya bilangan prima dan kunci publik yang akan dipilih. Lalu pada penghitungan nilai kunci pribadi perlu dihitung secara manual sehingga kurang praktis.
5.2 Saran
Berdasarkan uraian yang telah dijelaskan dan kesimpulan dalam skripsi mengenai algoritma kriptografi RSA, penulis memberikan beberapa saran sebagai berikut.
1. Algoritma kriptografi RSA dapat digunakan sebagai salah satu pilihan dalam menjaga dan mengamankan pesan rahasia karena sulitnya melakukan faktorisasi terhadap bilangan yang terbentuk dari dua bilangan prima yang besar sehingga tingkat keamanan algoritma kriptografi RSA cukup tinggi.
2. Perlu diperhatikan pemilihan bilangan prima dan dua kunci yang dibangkitkan dalam proses pembangkitan kunci untuk menjaga dari ancaman serangan-serangan terhadap keamanan algoritma kriptografi RSA.
3. Meski memiliki keterbatasan pada input bilangan, program kriptografi RSA dengan menggunakan aplikasi Visual Basic 6.0 yang dibuat penulis dapat digunakan sebagai alternatif dalam memahami algoritma kriptografi RSA.
4. Bagi penulis lain yang tertarik untuk membuat sebuah program sederhana mengenai implementasi dari algoritma kriptografi RSA, dapat menggunakan bahasa pemrograman lain serta aplikasi lainnya.
(53)
101 Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
DAFTAR PUSTAKA
Ariyus, D. (2008). Awal Sejarah Kriptografi di Dunia. Yogyakarta, STMIK AMIKOM.
Burton, D. M. (2007). Elementary Number Theory. New York: The McGraw-Hill Companies, Inc.
Durbin, J. R. (2000). Modern Algebra, an Introduction 4th Edition. New York:
John Wiley & Sons, Inc.
Gallian, J. A. (1998). Contemporary Abstract Algebra 4th Edition. Boston:
Houghton Mifflin Company.
Indra, N. (2011). Analisis dan Perbandingan Kecepatan Algoritma RSA dan
Algoritma Elgamal. Bandung: Institut Teknologi Bandung.
Isaacs, I. M. (1993). Algebra, a Graduate Course. California: Brooks/Cole Publishing Company.
Laba, L. G. (2011). Penerapan Algoritma RSA dan Rabin dalam Digital
Signature. Bandung: Institut Teknologi Bandung.
Lidl, R dan Pilz, G. (1997). Applied Abstract Algebra 2th Edition. New York:
Springer-Verlag, Inc.
Menezes, A. J., van Oorschot, P. C. , dan Vanstonem S. A. (1996). Handbook of
Applied Cryptography. United States of America: CRC Press, Inc.
Munir, R. (2004). Algoritma RSA dan Elgamal. Bandung: Institut Teknologi Bandung.
(54)
102
Chandra Putra Devha, 2013
Pengamanan Pesan Rahasia Menggunakan Algoritma Kriptografi Rivest Shank Adleman (RSA) Universitas Pendidikan Indonesia | repository.upi.edu | perpustakaan.upi.edu
Retanto, Y. (2011). Perbandingan Algoritma RSA dan Diffie-Hellman. Bandung: Institut Teknologi Bandung.
Riyanto, M. Z. (2007). Pengamanan Pesan Rahasia Menggunakan Algoritma
Kriptografi Elgamal Atas Grup Pergandaan . Yogyakarta: Universitas Gadjah Mada.
Sadikin, R. (2012). Kriptografi untuk Keamanan Jaringan dan Implementasinya
dalam Bahasa Java. Yogyakarta: C. V. ANDI OFFSET.
Wahyudin. (2000). Pengantar Aljabar Abstrak. Bandung: CV. Delta Bawean.
Wicaksono, P. A. (2011). Studi Pemakaian Algoritma RSA dalam Proses Enkripsi
dan Aplikasinya. Bandung: Institut Teknologi Bandung.
Zimmermann, P. (2009). AnIntroduction to Cryptography. Santa Clara: Network Associates, Inc.
(1)
diperolehkunci public dan kunci pribadi . Lalu B memberikan kunci kepada A.
Selanjutnya A akan mengirim pesan kepada B yaitu “Temui aku”. Pesan tersebut
akan dienkripsi oleh A dengan menggunakan kunci public dari B. pesan tersebut jika diubah ke dalam kode ASCII akan menjadi
Pembagian blok sesuai kode dalam tiap kata. Sehingga jika A melakukan proses enkripsi akan menghasilkan chiperteks yaitu
Tabel 3.6 Proses Enkripsi Menggunakan Kriptografi Elgamal
Berdasarkan tabel tersebut, diperoleh chiperteks sebagai berikut
Chiperteks ini dikirimkan oleh A kepada B.
Selanjutnya B akan melakukan proses dekripsi terhadap chiperteks yang dikirimkan A, dengan cara sebagai berikut.
B memiliki kunci dan kunci pribadi . Selanjutnya B melakukan perhitungan sebagai berikut.
(2)
73
Tabel 3.6 Proses Dekripsi Menggunakan Kriptografi Elgamal
Karakter
(3)
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Berdasarkan uraian yang telah dijelaskan dalam skripsi mengenai algoritma kriptografi RSA,diperoleh kesimpulan sebagai berikut.
1. Konsep-konsep matematis yang melandasi pembentukan algoritma kriptografi RSA adalah divisible, algoritma pembagian, pembagi persekutuan terbesar, bilangan prima, persamaan kongruen, grup berhingga, pemetaan, dan Teorema Euler tentang persamaan kongruen.
2. Cara kerja algoritma kriptografi RSA terdiri dari proses pembangkitan kunci, proses enkripsi, dan proses dekripsi. Dan cara kerja aplikasi algoritma kriptografi RSA dalam tanda tangan digital terdiri dari proses pembangkitan kunci, proses sign digital signature, dan proses verifikasi digital signature.
3. Implementasi algoritma kriptografi RSA dalam program yang sederhana, yaitu program algoritma kriptografi RSA, dibuat menggunakan aplikasi Visual Basic 6.0.
4. Setelah dilakukan analisis dan perbandingan program kriptografi RSA menggunakan Visual Basic 6.0 yang dibuat penulis dengan program menggunakan IDE Microsoft Visual Studio 2010 yang dibuat Yudi Retanto dan Nikolaus Indra didapat hasil berupa kelebihan dan kekurangan pada program kriptografi RSA menggunakan Visual Basic 6.0 yang dibuat penulis. Kelebihan dari program kriptografi RSA menggunakan Visual Basic 6.0 yang dibuat penulis jika dibandingkan dengan program menggunakan IDE Microsoft Visual Studio 2010 adalah aspek waktu proses pembangkitan kunci dan enkripsi yang lebih cepat. Berikut hasil perbandingan waktu proses pembangkitan kunci dan enkripsi program kriptografi RSA
(4)
100
menggunakan Visual Basic 6.0 dengan program menggunakan IDE Microsoft Visual Studio 2010. Namun, program kriptografi RSA menggunakan aplikasi Visual Basic 6.0 yang dibuat penulis memiliki beberapa kekurangan. Karena program tersebut menggunakan tipe data Double yang terbatas pada
sampai (Negatif) dan
sampai
(positif) sehingga perlu diperhatikan besarnya bilangan prima dan kunci publik yang akan dipilih. Lalu pada penghitungan nilai kunci pribadi perlu dihitung secara manual sehingga kurang praktis.
5.2 Saran
Berdasarkan uraian yang telah dijelaskan dan kesimpulan dalam skripsi mengenai algoritma kriptografi RSA, penulis memberikan beberapa saran sebagai berikut.
1. Algoritma kriptografi RSA dapat digunakan sebagai salah satu pilihan dalam menjaga dan mengamankan pesan rahasia karena sulitnya melakukan faktorisasi terhadap bilangan yang terbentuk dari dua bilangan prima yang besar sehingga tingkat keamanan algoritma kriptografi RSA cukup tinggi.
2. Perlu diperhatikan pemilihan bilangan prima dan dua kunci yang dibangkitkan dalam proses pembangkitan kunci untuk menjaga dari ancaman serangan-serangan terhadap keamanan algoritma kriptografi RSA.
3. Meski memiliki keterbatasan pada input bilangan, program kriptografi RSA dengan menggunakan aplikasi Visual Basic 6.0 yang dibuat penulis dapat digunakan sebagai alternatif dalam memahami algoritma kriptografi RSA.
4. Bagi penulis lain yang tertarik untuk membuat sebuah program sederhana mengenai implementasi dari algoritma kriptografi RSA, dapat menggunakan bahasa pemrograman lain serta aplikasi lainnya.
(5)
DAFTAR PUSTAKA
Ariyus, D. (2008). Awal Sejarah Kriptografi di Dunia. Yogyakarta, STMIK AMIKOM.
Burton, D. M. (2007). Elementary Number Theory. New York: The McGraw-Hill Companies, Inc.
Durbin, J. R. (2000). Modern Algebra, an Introduction 4th Edition. New York:
John Wiley & Sons, Inc.
Gallian, J. A. (1998). Contemporary Abstract Algebra 4th Edition. Boston:
Houghton Mifflin Company.
Indra, N. (2011). Analisis dan Perbandingan Kecepatan Algoritma RSA dan
Algoritma Elgamal. Bandung: Institut Teknologi Bandung.
Isaacs, I. M. (1993). Algebra, a Graduate Course. California: Brooks/Cole Publishing Company.
Laba, L. G. (2011). Penerapan Algoritma RSA dan Rabin dalam Digital
Signature. Bandung: Institut Teknologi Bandung.
Lidl, R dan Pilz, G. (1997). Applied Abstract Algebra 2th Edition. New York:
Springer-Verlag, Inc.
Menezes, A. J., van Oorschot, P. C. , dan Vanstonem S. A. (1996). Handbook of
Applied Cryptography. United States of America: CRC Press, Inc.
Munir, R. (2004). Algoritma RSA dan Elgamal. Bandung: Institut Teknologi Bandung.
(6)
102
Retanto, Y. (2011). Perbandingan Algoritma RSA dan Diffie-Hellman. Bandung: Institut Teknologi Bandung.
Riyanto, M. Z. (2007). Pengamanan Pesan Rahasia Menggunakan Algoritma
Kriptografi Elgamal Atas Grup Pergandaan . Yogyakarta: Universitas
Gadjah Mada.
Sadikin, R. (2012). Kriptografi untuk Keamanan Jaringan dan Implementasinya
dalam Bahasa Java. Yogyakarta: C. V. ANDI OFFSET.
Wahyudin. (2000). Pengantar Aljabar Abstrak. Bandung: CV. Delta Bawean.
Wicaksono, P. A. (2011). Studi Pemakaian Algoritma RSA dalam Proses Enkripsi
dan Aplikasinya. Bandung: Institut Teknologi Bandung.
Zimmermann, P. (2009). AnIntroduction to Cryptography. Santa Clara: Network Associates, Inc.