Anda di halaman 1dari 17

IMPLEMENTASI ALGORITMA RSA UNTUK ENKRIPSI DAN

DEKRIPSI MENGGUNAKAN BAHASA PEMROGRAMAN JAVA DI


NETBEANS

NurAini [1412120129]1, Devy Afria Ningrum[1412120162]2, Pradhipta


Mahardhika [1412120283]3.
Fakultas Teknik Informatika 2012 A, Universitas PGRI Ronggolawe Tuban.

Abstrak
Suatu proses pengiriman data atau informasi dengan menggunakan
algoritma kriptografi. Dalam suatu data dapat ditransmisikan dengan berbagai
cara baik melalui sinyal diudara maupun dengan saluran kabel. Penggunaan media
transmisi ini memungkinkan pihak-pihak yang tidak bertanggung jawab membaca
bahkan mengubah isi data tersebut, oleh karena itu diperlukan adanya penyandian
data untuk mengamankan data yang ditransmisikan. Untuk mengatasi hal tersebut
diperlukan adanya sistem pengamanan terhadap data yang dikenal sebgai ilmu
kriptografi.
Semakin berkembangannya ilmu pengetahuan, dikembangkan pula
algoritma kriptografi. Salah satu algoritma yang cukup dikenal adalah algoritma
RSA. RSA yang menggunakan algoritma asimetrik mempunyai dua kunci yang
berbeda, disebut pasangan kunci (key pair) untuk proses enkripsi dan dekripsi.
Tingkat keamanan algoritma penyandian RSA sangat bergantung pada
ukuran kunci sandi tersebut, karena makin kecil ukuran kunci, maka makin besar
juga kemungkinan kombinasi kunci yang bisa dijebol dengan metode memeriksa
kombinasi satu persatu kunci atau lebih dikenal dengan istilah Brute Force Attack.
Bilangan prima yang dihasilkan dalam algoritma RSA mempengaruhi ukuran
kunci sandi. Jumlah bilangan prima yang dihasilkan pada aplikasi ini adalah 1000
buah bilangan.
Kata Kunci : visualisasi, kriptografi, algoritma RSA, pemrograman Java.
Abstract
A process of sending data or information using cryptographic algorithms.
In a data can be transmitted in various ways either through the air or the signal
cable channels. The use of the transmission media allows parties who are not
responsible to read and even change the content of these data, therefore it is
necessary to have data encryption to secure the data transmitted. To overcome this
necessary system of safeguards against known data sebgai science of
cryptography.
The air is getting its development of science, developed the cryptographic
algorithm. One well-known algorithm is RSA algorithm. RSA uses asymmetric
algorithm has two different keys, called a key pair (key pair) for encryption and
decryption.
The security level of RSA encryption algorithm is very dependent on the
size of the cipher key, because the smaller the size of the key, then the greater the
possibility of combination locks that can be uprooted with the method of checking
one by one key combination or better known as Brute Force Attack. Primes
generated in the RSA algorithm affect the size of the passkey. The number of
primes generated in this application is 1000 pieces numbers.
Keywords: visualization, cryptography, RSA algorithms, Java programming.
BAB I penggunanya pun semakin meluas
PENDAHULUAN dan beragam. komputasi dan
prosedur yang rumit membuat orang
Pada saat ini sistem informasi enggan mempelajari dan memahami
dan komunikasi semakin algoritma kriptografi secara
berkembang. Untuk kebutuhan menyeluruh. Hal ini membuat
manusia dalam melakukan penulis termotivasi untuk membuat
komunikasi data pun semakin sebuah program yang dapat
meningkat. Hal ini yang memvisualisasikan sekaligus
mempengaruhi tingkat keamanan mensimulasikan proses yang terjadi
informasi pada teknologi media pada sebuah algoritma kriptografi,
transmis yang dimana tidak hanya yaitu RSA. Pemilihan algoritma RSA
melalui kabel, data pun juga dapat dikarenakan sistem penyandian
dikirim melalui media non kebel algoritma ini memiliki mekanisme
yang menggunakan udara, data dapat kerja yang cukup sederhana dan
dikirim dari satu tempat ketempat mudah dimengerti namun tetap
yang lain dengan menggunkan media kokoh dalam tugasnya
non kabel secara mudah. mengamankan data. Dengan adanya
Penggunaan media transmisi sebuah aplikasi yang dapat
memungkinkan pihak-pihak yang memvisualisasikan sekaligus
tidak memiliki kepentingan melihat mensimulasikan algoritma RSA,
bahkan mengubah isi data tersebut diharapkan akan memudahkan
yang tentu saja membahayakan mereka yang ingin mempelajarinya
integritas data, terutama data yang sehingga dapat menghilangkan
bersifat sangat rahasia. Oleh karena anggapan sulitnya memahami
itu, dibutuhkan suatu mekanisme algoritma kriptografi.
yang dapat mengacak data (enkripsi) Pengiriman informasi atau
sehingga data tidak mudah dilihat data yang diolah menggunkan teknik
dan diubah oleh pihak yang tidak kiptografi salah satunya
memiliki kepentingan. menggunakan algoritma dengan
Algoritma kiptografi metode RSA
berkembang sangat pesat dan
BAB II biasanya digunakan antar-komputer
TINJAUAN PUSTAKA yang tidak memiliki kesepakatan
untuk saling bertukar informasi
2.1 Deskripsi Dan Enkripsi format dan layout teks. Sedangkan
2.1.1 Deskripsi Ciphertext adalah bentuk setelah
Saat anda mengirimkan Surat pesan dalam plaintext telah diubah
tersebut dan diterima oleh Pacar bentuknya menjadi lebih aman dan
anda, tidak dapat dibaca. Proses mengubah
maka pacar anda akan mengubah plaintext menjadi ciphertext disebut
kembali font Bookshelf symbol encryption (enciphering), dan proses
menjadi Font Arial agar bisa dibaca membalikkannya kembali disebut
kembali. Maka Pacar anda telah decryption (deciphering)[3].
melakukan yang disebut Proses
Deskripsi ( Descryption ) dengan 2.1.3 Kriptografi
mengunakan Private Key ( karena Secara etimologi (ilmu asal usul
dengan kunci yang sama , bukan kata), kata kriptografi berasal dari
Public key ) pada kasus ini keyword gabungan dua kata dalam bahasa
nya adalah Font Arial . Yunani yaitu kriptos dan
graphia. Kata kriptos digunakan
untuk mendeskripsikan sesuatu yang
disembunyikan, rahasia atau
misterius. Sedangkan kata graphia
berarti tulisan. Kriptografi
didefinisikan sebagai ilmu dan
pelajaran untuk tulisan rahasia
dengan pertimbangan bahwa
2.1.2 Plaintext dan Ciphertext komunikasi dan data dapat
Plaintext adalah teks yang diencode dikodekan untuk mencegah dari
dalam format ASCII. Plain text tidak mata-mata atau orang lain yang ingin
memiliki format dan informasi mengetahui isinya, dengan
struktur seperti ukuran dan tipe font, menggunakan kode-kode dan aturan-
warna, atau layout. Plain text aturan tertentu dan metode lainnya
sehingga hanya orang yang berhak dapat berupa nomor kartu kredit,
yang dapat mengetahui isi pesan catatan penting dalam komputer,
sebenarnya[3]. maupun password untuk mengakses
sesuatu. Deskripsi dalam dunia
2.1.4 Enkripsi keamanan komputer merupakan
Enkripsi adalah proses proses untuk mengubah chiperteks
mengamankan suatu informasi menjadi plainteks atau pesan asli.
dengan membuat informasi tersebut Jadi Deskripsi merupakan kebalikan
tidak dapat dibaca tanpa bantuan dari Enkripsi upaya pengolahan data
pengetahuan khusus. atau bisa menjadi sesuatu yang dapat
didefinisikan juga Enkripsi diutarakan secara jelas dan tepat
merupakan proses untuk mengubah dengan tujuan agar dapat dimengerti
plainteks menjadi chiperteks. oleh orang yang tidak langsung
Planteks sendiri adalah data atau mengalaminya sendiri.
pesan asli yang ingin dikirim,
sedangkan Chiperteks adalah data 2.1.4.1 Kategori dari Enkripsi
hasil enkripsi. Enkripsi dapat Dalam hal ini terdapat tiga kategori
diartikan sebagai kode atau chiper. enkripsi, yaitu :
Sebuah chiper mengunakan a. Kunci enkripsi rahasia,
suatu algoritma yang dapat artinya terdapat sebuah kunci
mengkodekan semua aliran data yang digunakan untuk
(stream) bit dari sebuah pesan mengenkripsi dan juga
menjadi cryptogram yang tidak sekaligus mendekripsikan
dimengerti (unintelligible). Karena informasi.
teknik chiper merupakan suatu b. Kunci enkripsi public, artinya
system yang telah siap untuk di dua kunci digunakan satu
automasi, maka teknik ini digunakan untuk proses enkripsi dan
dalam system keamanan computer yang Lain untuk proses
dan jaringan. Enkripsi dimaksudkan dekripsi.
untuk melindungi informasi agar c. Fungsi one-way, atau fungsi
tidak terlihat oleh orang atau pihak satu arah adalah suatu fungsi
yang tidak berhak. Informasi ini dimana informasi dienkripsi
untuk menciptakan diturunkan dari kunci lainnya. Oleh
signature dari informasi karena itu sistem ini sering disebut
asli yang bisa digunakan secret-key ciphersystem. Kunci yang
untuk keperluan autentikasi. menggunakan teknik enkripsi ini
harus betul-betul dirahasiakan.
Kelebihan dari Enkripsi: b. Assymmetric Cryptosystem
a. Kerahasiaan suatu informasi (Enkripsi public-key)
terjamin. Dalam Assymmetric
b. Menyediakan autentikasi dan cryptosystem,kunci yang digunakan
perlindungan integritas pada terdapat dua buah. Satu kunci yang
algoritma checksum/hash. dapat dipublikasikan deisebut kunci
c. Menanggulangi penyadapan publik (public key), satu lagi kunci
telepon dan email Untuk digital yang harus dirahasiakan disebut
signature. kunci privat (private key). Secara
sedehana proses tersebut diterangkan
Kekurangan dari Enkripsi sebagai berikut :
a. Penyandian rencana teroris. A mengirimkan pesan kepada B.
b. Penyembunyian record A menyandikan pesannya dengan
kriminal oleh seorang menggunakan kunci publik B.
penjahat. Bila B ingin membaca pesan dari
c. Pesan tidak bisa dibaca bila A, ia harus menggunakan kunci
penerima pesan lupa atau privatnya untuk mendekripsikan
kehilangan kunci. pesan yang tersandikan itu.

Model model Enkripsi : Enkripsi Menggunakan Algoritma


a. Symmetric Cryptosystem ( RSA
Enkripsi Konvensional) Sebagai media komunikasi
Dalam symmetric umum, suatu jaringan sangat rawan
cryptosystem,kunci yang digunakan terhadap penyadapan, pencurian, dan
dalam proses enkripsi dan dekripsi pemalsuan informasi. Proses
adalah sama atau pada prinsipnya pengiriman data pada suatu jaringan
identik. Kunci ini pun bisa harus menjamin keamanan dan
keutuhan, jika tidak, akan terjadi banyak dipakai di dunia adalah DES
kemungkinan-kemungkinan seperti dan RSA. Di samping DES dan RSA,
yang dijelaskan sebelumnya. Untuk masih ada banyak sandi lain seperti
itu salah satu cara untuk MD2 (dipakai GSM), IDEA, RC2,
mengamankan data dari kejadian- dll. Akan tetapi, DES dan RSA
kejadian tersebut, diperlukan adalah yang paling populer dan
penyandian terhadap data yang akan paling banyak dipakai.
dikirim. Penyandian ini sangat RSA banyak dipakai oleh
penting, apalagi dalam sektor-sektor banyak perangkat lunak di dunia,
strategis seperti bisnis, perbankan, contohnya adalah pada program
atau pemerintahan sangat browser internet MS Internet
memerlukan teknologi penyandian Explorer dan Netscape. Salah satu
Informasi. sistem penyandian yang juga banyak
Ilmu menyandi (kriptografi) dipakai adalah DES (Data
sebetulnya adalah ilmu yang sudah Encryption Standard). Mekanisme
dikenal bahkan semenjak jaman kerja RSA cukup sederhana dan
Julius Caesar (sebelum masehi). Ilmu mudah mengerti, tetapi kokoh.
ini tidak hanya mencakup teknik- Sampai saat ini satu-satunya cara
teknik menyandikan informasi, tetapi untuk mendobraknya adalah dengan
juga teknik untuk membongkar cara mencoba satu persatu kombinasi
sandi. kunci yang mungkin atau yang biasa
Enkripsi adalah suatu proses disebut brute force attack. Sehingga
mengubah sebuah teks murni penentuan tingkat keamanan suatu
(plaintext) menjadi sebuah runtutan sandi dari kemungkinan dibongkar
karakter atau data yang terlihat tidak adalah seberapa panjang dari sandi
berarti dan mempunyai urutan bit (ukuran kunci) terebut. Karena jika
yang tidak beraturan, disebut semakin panjang suatu kode, maka
ciphertext. Proses pengubahan semakin banyak pula kombinasi
kembali ciphertext menjadi plaintext kunci yang mungkin ada.
disebut dekripsi. RSA sendiri dibuat pada
Terdapat banyak algoritma tahun 1978. RSA adalaMsingkatan
penyandian di dunia ini, yang paling dari nama para penemunya, yaitu
Ron Rivest, Adi Shamir, dan sementara kalangan industri.
Leonard Adleman. RSAadalah salah Kejelekannya, pihak-pihak yang
satu algoritma penyandian yang ingin berkomunikasi secara privat
paling banyak mengundang harus punya akses ke sebuah kunci
kontroversi, selain DES. Sejauh ini DES bersama. Walaupun biasanya
belum seorang pun yang berhasil pihak-pihak yang terkait sudah saling
menemukan lubang sekuriti pada percaya, skema ini memungkinkan
DES dan RSA, tetapi tak seorangpun satu pihak untuk memalsukan
juga yang berhasil memberikan pernyataan dari pihak lainnya.
pembuktianilmiah yang memuaskan RSA yang menggunakan
dari keamanan kedua teknik sandi algoritma asimetrik mempunyai dua
ini. kunci yang berbeda, disebut
Untuk menyandi informasi pasangan kunci (key pair) untuk
dan untuk menerjemahkan pesan proses enkripsi dan dekripsi.
tersandi sebuah algoritma Kunci-kunci yang ada pada pasangan
penyandian memerlukan sebuah data kunci mempunyai hubungan secara
biner yang disebut kunci. Tanpa matematis, tetapi tidak dapat dilihat
kunci yang cocok orang tidak bisa secara komputasi untuk mendeduksi
mendapatkan kembali pesan asli dari kunci yang satu ke pasangannya.
pesan tersandi. Pada DES digunakan Algoritma ini disebut kunci publik,
kunci yang sama untuk menyandi karena kunci enkripsi dapat
(enkripsi) maupun untuk disebarkan. Orang-orang dapat
menterjemahan (dekripsi), sedangkan menggunakan kunci publik ini, tapi
RSA menggunakan dua kunci yang hanya orang yang mempunyai kunci
berbeda. Isitilahnya, DES disebut privat sajalah yang bisa mendekripsi
sistem sandi simetris sementara RSA data tersebut.
disebut sistem sandi asimetris. Keamanan algoritma RSA
Kedua sistem ini memiliki terletak pada sulitnya memfaktorkan
keuntungan dan bilangan yang besar menjadi faktor-
kerugiannya sendiri. Sistem sandi faktor prima.Pemfaktoran dilakukan
simetris cenderung jauh lebih cepat untuk memperoleh kunci privat.
sehingga lebih disukai oleh Selama pemfaktoran bilangan besar
menjadi faktor-faktor prima belum RSA dengan panjang 256 bit, maka
ditemukan algoritma yang efisien, metode brute force attack akan
maka selama itu pula keamanan menjadi tidak ekonomis dan sia-sia
algoritma RSA tetap terjamin. dimana para hacker pun tidak
Besaran-besaran yang mau/sanggup untuk menjebol sandi
digunakan pada Algoritma RSA: tersebut.
1. p dan q bilangan prima
(rahasia) 3.2 Proses Pembuatan
2. n = p . q (tidak rahasia) Kunci
3. (n) = (p 1) (q-1) (rahasia) Dalam membuat suatu sandi,
4. e (kunci enkripsi) (tidak RSA mempunyai cara kerja dalam
rahasia) membuat kunci publik dan kunci
5. d(kunci dekripsi) ( rahasia) privat adalah sebagai berikut :
6. m (plainteks) (rahasia) 1. Pilih dua bilangan prima p
7. c (cipherteks) (tidak rahasia) dan q secara acak , p q.
Bilangan ini harus cukup
BAB III besar (minimal 100 digit).
PERANCANGAN SISTEM 2. Hitung N = pq. Bilangan N
disebut parameter sekuriti.
3.1 Mekanisme Dasar Kerja 3. Hitung = (p-1)(q-1).
Rsa 4. Pilih bilangan bulat (integer)
Tingkat keamanan algoritma antara satu dan (1< e < )
penyandian RSA sangat bergantung yang tidak mempunyai faktor
pada ukuran kunci sandi tersebut pembagi dari .
(dalam bit), karena makin besar 5. Hitung d hingga d e 1 (mod
ukuran kunci, maka makin besar juga ).
kemungkinan kombinasi kunci yang Keterangan :
bisa dijebol dengan metode Langkah 3 dan 4
mengencek kombinasi satu persatu dapat dihasilkan
kunci atau lebih dikenal dengan dengan cara algoritma
istilah brute Euclidean
force attack. Jika dibuat suatu sandi
Langkah 4 dapat dihasilkan 3.2.1 Proses Enkripsi Pesan
dengan menemukan integer x Misalkan pada suatu kasus si
sehingga d = (x(p-1)(q-1)+ 1)/e A ingin mengirim pesan m kepada si
menghasilkan bilangan bulat, B. A mengubah m menjadi angka n <
kemudian menggunakan nilai dari N, menggunakan protokol yang
d (mod (p-1)(q-1)) Setelah sebelumnya telah
melalui cara ini, maka kita akan disepakati dan dikenal sebagai
mendapatkan kunci publik dan padding scheme. Padding scheme
kunci privat. Kunci publik terdiri harus dibangun secara hati-hati
dari dua elemen, yaitu : sehingga tidak ada nilai dari m yang
menyebabkan masalah keamanan.
Walaupun bentuk ini Contohnya, jika kita ambil contoh
memperbolehkan dekripsi secara sederhana dari penampilan ASCII
cepat dan signing menggunakan dari m dan menggabungkan bit-bit
Chinese Remainder Theorem (CRT), secara bersama-sama akan
hal ini mejadi lebih tidak aman menghasilkan n, kemudian pessan
karena bentuk ini memperbolehkan yang berisi ASCII tunggal karakter
side channel attacks. Side channel NUL (nilai numeris 0) akan
attacks adalah sebuah serangan yang menghasilkan n = 0, yang akan
berdasarkan informasi yang menghasilkan ciphertext 0 apapun itu
dikumpulkan dari implementasi fisik nilai dari e dan N yang digunakan.
(atau kelemahan secara fisik) dari Maka A mempunyai nilai n dan
sebuah sistem kriptografi, dibanding mengetahui N dan e,yang telah
dengan kelemahan teoritis dari diumumkan oleh B. A kemudian
algoritmanya sendiri. Sebagai menghitung ciphertext c yang terkait
contohnya, faktor-faktor kurun waktu pada n :
dari informasi, konsumsi tenaga, c = ne mod N (1)
bahkan suara yang ditimbulkan dapat Perhitungan tersebut dapat
membantu mempermudah informasi diselesaikan dengan menggunakan
yang bisa diambil untuk menjebol metode exponentation by squaring,
sistem tersebut. yaitu sebuah algoritma yang dipakai
untuk komputasi
terhadap sejumlah nilai integer yang Contoh Penghitungan RSA
besar dengan cepat. Kemudian A Sekarang kita mencoba suatu
mengirimkan nilai c kepada B. contoh untuk mengenal lebih dalam
sistem kerja enkripisi RSA. Misalnya
3.2.2 Proses Dekripsi Pesan kita mau mengenkripsi kata
B sudah menerima c dari A, SECRET dengan RSA, lalu kita
dan mengetahui kunci privat yang dekripsi kembali ke dalam plaintext.
digunakan B. B kemudian Karena p dan q berjumlah minimal
mengembalikan nilai n dari c dengan 100 digit atau lebih, nilai d dan e bisa
langkah-langkah sebagai berikut : berjumlah sama dengan 100 digit dan
n = cd mod N (2) nilai N akan berjumlah 200 digit.
Untuk itu
Perhitungan diatas akan di contoh pemakaian berikut, kita
menghasilkan n, dengan begitu B akan memakai angka-angka yang
dapat mengembalikan pesan semula kecil agar mudah dalam
m. Prosedur dekripsi bekerja karena penghitungan. Cara pengerjaannya
cd (n)d (mod N) (3) adalah :
Kemudian, karena ed 1 1. Kita pilih p = 3 dan q = 5
(mod p-1) dan ed 1 (mod q-1), 2. Hitung N = pq = 3*5 = 15
hasil dari Fermat's little theorem. 3. Nilai e harus merupakan
ned n (mod p) (4) bilangan prima yang lebih
dan besar dan relatif dekat dengan
ned n (mod q) (5) (p-1)(q-1) = (2)(4) = 8,
sehingga kita pilih e = 11.
Karena p dan q merupakan Angka 11 adalah bilangan
bilangan prima yang berbeda, prima terdekat dan lebih
mengaplikasikan Chinese remainder besar daripada 8
theorem akan menghasilkan dua 4. Nilai d harus dipilih sehingga
macam kongruen (ed - 1)
ned n (mod pq) (6) (p-1)(q-1)
Serta adalah sebuah integer. Lalu
cd n (mod N) (7) nilai (11d - 1) / [(2)(4)] =
(11d - 1) / 8 juga merupakan setiap karakter plaintext akan
integer. Setelah melalui masuk persamaan.
proses penghitungan, salah Mi = Ci3 mod 15
satu nilai yang mungkin
adalah d = 3. String masukan yang bernilai
5. Lalu kita masukkan kata yang 0x2c696d286924, akan
akan dienkripsi, SECRET. dikonversi kembail menjadi
Kita akan mengkonversi 0x836967826984, dan
string ini ke representasi akhirnya angka-angka
desimal menggunakan nilai tersebut akan diubah kembali
karakter ASCII, yang akan menjadi bentuk string
menghasilkan nilai ASCII 83 plaintext yang bernilai
69 67 82 69 84 SECRET
6. Pengirim akan mengenkripsi
setiap digit angka pada saat Dari contoh di atas kita dapat
yang bersamaan menangkap suatu kelemahan dari
menggunakan nilai kunci pemakaian p dan q yang bernilai
publik (e, n) = (11,15). Lalu kecil yaitu bisa kita lihat di digit ke-
setiap karakterciphertext akan 4, ke-6 dan ke-9 tidak berubah saat
masuk ke persamaan. dienkripsi, dan nilai 2 dan 8
Ci = Mid mod 15 dienkripsi menjadi 8 dan 2, yang
berarti dienkripsi menjadi
Yang akan menghasilkan kebalikannya. Tapi kesimpulan yang
nilai digit masukan adalah bisa diambil dari
0x836967826984 yang akan contoh yang sederhana ini adalah
dikirim sebagai RSA dapat digunakan dalam
0x2c696d286924 penyandian dalam pengiriman
7. Penerima akan mendekripsi informasi.
setiap digit angka Kunci RSA yang mempunyai
menggunakan nilai kunci ukuran 512 dan 768 bit dianggap
privat (d, n) = (3, 15). Lalu, masih lemah dan mudah dijebol.
Ukuran kunci yang dianjurkan adalah
1024 bit. Ukuran 2048 dan 3072 bit }

merupakan suatu ukuran yang lebih


/** Create an
baik.
instance that can both
encrypt and decrypt. */
kode penerapan implementasi
public Tugas(int
program algoritma RSA
bits) {
menggunakan bahasa pemrograman bitlen = bits;
Java. SecureRandom r =
new SecureRandom();
package tugas;
BigInteger p = new
import
BigInteger(bitlen / 2,
java.math.BigInteger;
100, r);
import
BigInteger q = new
java.security.SecureRan
BigInteger(bitlen / 2,
dom;
100, r);
/**
n = p.multiply(q);
*
BigInteger m =
* @author home
(p.subtract(BigInteger.
*/
ONE)).multiply(q
public class Tugas {
private BigInteger n,
.subtract(BigInteger.ON
d, e;
E));
e = new
private int bitlen =
BigInteger("3");
1024;
while
(m.gcd(e).intValue() >
/** Create an
1) {
instance that can
e = e.add(new
encrypt using someone
BigInteger("2"));
elses public key. */
}
public
d =
Tugas(BigInteger newn,
e.modInverse(m);
BigInteger newe) {
}
n = newn;
e = newe;
/** Encrypt the given public synchronized
plaintext message. */ BigInteger
public synchronized decrypt(BigInteger
String encrypt(String message) {
message) { return
return (new message.modPow(d, n);
BigInteger(message.getB }
ytes())).modPow(e,
n).toString(); /** Generate a new
} public and private key
set. */
/** Encrypt the given public synchronized
plaintext message. */ void generateKeys() {
public synchronized SecureRandom r =
BigInteger new SecureRandom();
encrypt(BigInteger BigInteger p = new
message) { BigInteger(bitlen / 2,
return 100, r);
message.modPow(e, n); BigInteger q = new
} BigInteger(bitlen / 2,
100, r);
/** Decrypt the given n = p.multiply(q);
ciphertext message. */ BigInteger m =
public synchronized (p.subtract(BigInteger.
String decrypt(String ONE)).multiply(q
message) {
return new .subtract(BigInteger.ON
String((new E));
BigInteger(message)).mo e = new
dPow(d, BigInteger("3");
n).toByteArray()); while
} (m.gcd(e).intValue() >
1) {
/** Decrypt the given e = e.add(new
ciphertext message. */ BigInteger("2"));
}
d = BigInteger
e.modInverse(m); plaintext = new
} BigInteger(text1.getByt
es());
/** Return the
modulus. */ BigInteger
public synchronized ciphertext =
BigInteger getN() { rsa.encrypt(plaintext);
return n;
} System.out.println("Enk
ripsi: " + ciphertext);
/** Return the public plaintext =
key. */ rsa.decrypt(ciphertext)
public synchronized ;
BigInteger getE() {
return e; String text2 = new
} String(plaintext.toByte
/** Array());
* @param args the
command line arguments System.out.println("Des
*/ kripsi: " + text2);
public static void }
main(String[] args) { }
// TODO code Tampilan Program :
application logic here
Tugas rsa =
new Tugas(1024);

System.out.print("Enter
string:");
//String rawString =
userInput.readLine();
String text1 =
"AINI DEVY DHIKA";
System.out.println("Pla
intext: " + text1);
4.2 Saran
Penulis menyadari bahwa
masih terdapat beberapa kekurangan
dalam program ini, untuk itu melalui
bagian ini penulis hendak
memberikan saran bagi
pengembangan dan penyempurna
BAB IV selanjutnya. Salah satu kekurangan
PENUTUP program ini adalah terbatasnya
jumlah bilangan prima yang dapat
4.1 Kesimpulan dibangkitkan yaitu 1000 bilangan.
1. Dengan program ini Penulis berharap dalam
algoritma Rivest Shamir pengembangan program algoritma
Adleman (RSA) dapat RSA dapat memenuhi persyaratan
digunakan pada file teks dari algoritma RSA itu sendiri yaitu
sebagai metode untuk bilangan prima yang digunakan
mengenkripsi file teks. berjumlah lebih dari 100 digit.
2. Ukuran panjang kunci (bit) Demikian saran yang dapat diajukan
pada pembangkitan kunci oleh penulis, semoga program ini
berpengaruh pada lama waktu dapat dikembangkan menjadi lebih
pemrosesan, semakin besar baik dan lebih bermanfaat dimasa
nilai panjang kunci maka mendatang.
semakin banyak waktu yang
diperlukan untuk proses DAFTAR PUSTAKA
pembangkitan.
3. Panjang teks yang dikirim 1. Aulya Suryana dkk,
berpengaruh pada lama waktu Enkripsi,Manajemen
proses enkripsi dan dekripsi, Teknologi Informasi,Sekolah
semakin panjang teks maka Tinggi Manajemen
semakin lama waktu untuk Informatika dan Teknik
mengenkripsi dan Komputer (STMIK)
mendekripsi teks. STIKOM BALI, 2007.
2. Bambang Harianto, Esensi- 7. URL :
esensi Bahasa Pemograman http://www.asciitable.com
Java, 2005.
3. Budhi Irawan, Rancang
Bangun Sistem Keamanan
Instant Messanger
Menggunakan Kriptografi
DenganmAlgoritma RSA
Caesar Cipher, Program
Magister Teknik Elektro
Bidang Khusus Teknik
Komputer Program
Pascasarjana Institut
Teknologi Bandung, 2005.
4. Irawan, E-Trik JAVA (Dasar
Pemrograman Java),
Maxikom, Palembang, 2007.
5. Muhazir, Web Design and
Programming Tutorial,
http://indodesain.org/2008/06
/03/tutorial -dasar-
pemrograman-java-berbasis
guimenggunakan- netbeans/,
Mei 2008.
6. M. Zaki Riyanto dan Ardhi
Ardhian, Kriptografi Kunci
Publik: Sandi RSA,
Yogyakarta, 30 Agustus
2008. Rinaldi Munir.
Kriptografi, Informatika,
Bandung, 2006.

Anda mungkin juga menyukai