Cara menggunakan rsa php

TEXT FILE SECURITY WITH RSA PUBLIC KEY ALGORITHM AND SELECT LEAST SIGNIFICANT BIT OF STEGANOGRAPHY ALGORITHM ABSTRACT Data (information) exchange by using recent technology resulted in the rapid spreading of data. However in data transmission, security and confidentiality aspects are factors that required careful consideration so data may be securely received. To maintain security and confidentiality of data one of the techniques that can be applied is RSA Public Key Algorithm. The difficulty of factoring large numbers into prime factors becomes the strength of this algorithm. RSA Public Key Cryptography Algorithm makes the encrypted messages become longer and difficult to send to recipients. Select Least Significant Bit is one of the steganographic algorithms that can be used to insert messages into an image. In this research, the author combined RSA Public Key Algorithm to encrypt data and Select Least Significant Bit Algorithm to insert encrypted data into the image so that not only the encrypted data is easy to send but also to improve the security and confidentiality of the data. Testing primes is done by using Fermat’s Little Theorem. This system is built using C # programming language. The results showed that securing text files using RSA Public Key Algorithm and Select Least Significant Bit Algorithm could return the original text message intact. RSA Public Key Algorithm testing showed that RSA Public Key Algorithm required an average encryption time of 0,1859557 seconds and average decryption time of 0.082861 seconds. The embedding process of Select Least Significant Bit Algorithm required an average process time of 4.474672 seconds and average extraction time of 3.45519 seconds. It was concluded that the steganography method in this research has fulfilled the recovery aspect well Keywords: Cryptography, Steganography, RSA Public Key, SLSB, Little Fermat Theorem, Text File

Perhitungan dan Implementasi Algoritma RSA pada PHP Rini Amelia Program Studi Teknik Informatika, Fakultas Sains dan Teknologi , Universitas Islam Negeri Sunan Gunung Djati Bandung. Jalan A.H Nasution No. 105, Bandung Email: [email protected]

Abstrak Algoritma RSA merupakan salah satu kriptografi asimetri, yang menggunakan dua kunci berbeda yaitu kunci public (public key) dan kunci pribadi (private key). Kunci public bersifat tidak rahasia sedangkan kunci pribadi bersifat rahasia. Dalam kriptografi asimetri, dua kunci tersebut diatur sehingga memiliki hubungan dalam suatu persamaan aritmatika modulo. Pada makalah ini akan dibahas bagaimana perhitungan algoritma RSA dan penerapan algoritma rsa menggunakan php. Kata kunci: penerapan, perhitungan, algoritma RSA, php.

1 PENDAHULUAN Enkripsi tidak dirahasiakan dan diketahui umum (sehingga dinamakan juga kunci publik), namun kunci untuk dekripsi bersifat rahasia. Kunci dekripsi dibangkitkan dari beberapa buah bilangan prima bersama-sama dengan kunci enkripsi. Untuk menemukan kunci dekripsi, suatu bilangan non prima harus difaktorkan menjadi faktor primanya. Dalam kenyataannya, memfaktorkan bilangan non prima menjadi faktor primanya bukanlah

pekerjaan yang mudah. Belum ada algoritma yang secara efisien yang dapat melakukan pemfaktoran tersebut. Semakin besar bilangan non primanya maka semakin sulit pula pemfaktorannya. Semakin sulit Dari sekian banyak algoritma kriptografi 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. Algorima

RSA mendasarkan proses enkripsi dan dekripsinya pada konsep bilangan prima dan aritmatika modulo. Kunci enkripsi maupun kunci dekripsi keduanya harus berupa bilangan bulat. Kunci pemfaktorannya, semakin kuat pula algoritma RSA. Algoritma RSA merupakan salah satu kriptografi asimetri, yakni jenis kriptografi yang menggunakan dua kunci yang berbeda : kunci public (public key) dan kunci pribadi (private key). Dengan demikian, maka terdapat satu kunci, yakni kunci publik, yang dapat dikirimkan melalui saluran yang bebas, tanpa adanya suatu kemanan tertentu. Hal ini bertolak belakang dengan kriptografi simetri yang hanya menggunakan satu jenis kunci dan kunci tersebut harus terus terjaga keamanan serta kerahasiaannya. Dalam kriptografi asimetri, dua kunci tersebut diatur sedemikian sehingga memiliki hubungan dalam suatu persamaan aritmatika modulo. Pada makalah ini akan dibahas bagaimana perhitungan algoritma RSA dan penerapan algoritma rsa menggunakan php. 2 DASAR TEORI Kriptografi adalah komputasi integer dengan Aritmatika Modulo. Operator yang digunakan pada

aritmatika modulo adalah mod [1]. Operator mod memberikan sisa pembagian dari bilangan bulat. Misalkan a adalah bilangan bulat dan m adalah bilangan bulat > 0. Operasi a mod m memberikan sisa pembagian dari a dan m. Dapat dikatakan pula bahwa a mod m = r, sedemikian sehingga a = mq + r, dimana 0 ≤ r < m. Jika terdapat bilangan bulat a dan b sedemikian sehingga keduanya mempunyai sisa yang sama jika dibagi dengan bilangan bulat positif m, maka a dan b adalah kongruen dalam modulo m dan dilambangkan dengan a ≡ b (mod m). Operator mod juga digunakan dalam persamaan berdasarkan teorema Fermat, yakni a p−1 ≡ 1 (mod p), dengan p adalah bilangan prima dan a adalah bilangan bulat yang tidak habis dibagi dengan p. Aritmatika Modulo nantinya akan banyak dipergunakan pada pembahasan selanjutnya. Kriptografi adalah seni dan ilmu dalam menuliskan pesan rahasia, artinya suatu informasi diubah sedemikian sehingga menjadi tidak dapat dimengerti oleh orang yang tidak diinginkan untuk mengetahui informasi tersebut. Namun, perubahan informasi tersebut harus dapat dikembalikan seperti semula (reversible) agar dapat dibaca oleh orang yang berhak. Penyandiaan pesan tersebut

selanjutnya dinamakan cipher atau cryptosystem. Chiper adalah sepasang fungsi yang tidak dapat dibalik, yakni k fv(enciphering function) dan k (deciphering function). Fungsi k f memetakan elemen xdalam himpunan S menjadi elemen k f (x) dalam himpunan T, sehingga mencari pemetaan balikan (inverse) menjadi sangat sulit tanpa mengetahui k’. Elemen dari S disebut sebagai plaintext dan elemen dari T disebut sebagai ciphertext. Fungsi k g adalah balikan (inverse) dari k f . k’ yang disebut juga sebagai deciphering key (kunci dekripsi). Jika k = k’, atau k’ sangatlah gampang untuk dihitung dengan memanfaatkan nilai k, maka kriptografi yang dipakai disebut dengan symmetric cryptography (kriptografi simetri) dan kunci dari kriptografi ini disebut secret key (kunci rahasia). Namun, jika k’ sangat sulit untuk diketahui, walaupun dengan mengetahui k, maka kriptografi yang dipakai disebut dengan asymmetric cryptography (kriptografi asimetri) dan k disebut sebagai public key (kunci publik) dan k’ disebut dengan private key (kunci pribadi). Proses enkripsi dan dekripsi seperti ditunjukkan pada Gambar 1

2.1 Kriptografi Simetri Kriptografi simetri adalah metode enkripsi dimana pengirim dan penerima pesan memiliki kunci yang sama, atau dalam beberapa kasus kedua kunci berbeda namun mempunya relasi dengan perhitungan yang mudah. Studi modern terfokuskan pada block cipher dan stream cipher serta aplikasinya. Block cipher adalah aplikasi modern dari Alberti’s polyphabetic cipher. Block cipher menerima masukan berupa blok plaintext dan sebuah kunci dan kemudian menghasilkan keluaran blok ciphertext dengan ukuran yang sama. Dikarenakan pesan yang dikirim hampir selalu lebih panjang dari single block (blok tunggal), maka diperlukan metode penggabungan beberapa blok. Data Encryption Standard (DES) dan Advanced Encryption Standard (AES) adalah contoh block ciphers yang dijadikan standar kriptografi oleh pemerintahan Amerika Serikat.

Dalam kriptografi asimetri, kunci public dapat secara bebas disebarluaskan, sedangkan kunci pribadi harus senantiasa dijaga kerahasiaa nnya. Kunci public digunakan untuk enkripsi, sedangkan kunci pribadi digunakan untuk dekripsi. Diffie dan Hellman membuktikan bahwa kriptografi asimetri adalah mungkin dengan menerapkan protokol pertukaran kunci DiffieHellman. 3.PEMBAHASAN 3.1Perhitungan dan Penerapan Algoritma RSA pada PHP

Gambar 2 : pembangkitan kunci rsa

Gambar 1 : pembangkitan kunci rsa Gambar 3 : enkripsi

5. d (kunci dekripsi) (rahasia) 6. m (plainteks) (rahasia) 7. c (cipherteks) (tidak rahasia) Proses Enkripsi

Proses Dekripsi

Langkah2 : Tentukan p dan q (termasukbilangan prima) p=7 q = 13 Langkah2 : Gambar 4 : deskripsi Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktorfaktor prima. Pemfaktoran dilakukan untuk memperoleh kunci pribadi. Selama pemfaktoran bilangan besar menjadi faktorfaktor prima belum ditemukanalgoritma yang mangkus, maka selama itu pula keamanan algoritma RSA tetap terjamin. Besaran-besaran yang digunakan pada algoritma RSA: [5] 1. p dan q bilangan prima (rahasia) 2. n = p ⋅ q (tidak rahasia) 3. φ(n ) = (p – 1)(q – 1) (rahasia) 4. e (kunci enkripsi) (tidak rahasia)

n = p x q = 7 x 13 = 91 Langkah3 : totient (n) = (p-1)(q-1) = (71)(13-1) = 72 nilaidari e yang relatif prima terhadaptotient (n), kitapilih 5, karena 5 relatif prima terhadap 91. Maka di dapatkan e = 5 Langkah4 : Hitungnilai d denganmenggunakanalgoritm aeuclid yang diperluas, denganteknik :

72 = 14 x 5 + 2

m4 = 72

5 = 2x2+1

m5 = 65

2 = 2x1+0

m6 = 82

n = 1, a1 = 5, q1 = 14

m7 = 84

n = 2, a2 = 2, q2 = 2

m8 = 79

n = 3, a3 = 1, q3 = 2 t0 = 0;

 ENKRIPSI

t1 = 1;

c=

t2 = t0 – q1.t1 = 0 – 14(1) = 14 = 58

c1 =

t3 = t1 – q2.t2 = 1 – 2(-14) = 29

c2 = c3 =

Kesimpulan :

c4 =

e = 5, n = 91

c5 =

d = 29, n = 91

Diketahui plainteks :SOEHARTO

c6 =

10

c7 = c8 =

RUMUS ENKRIPSI c= e = 5, n = 91

 DESKRIPSI

d = 29, n = 91

m=

m1 = 83

m1 =

m2 = 79

m2=

79

m3 = 69

m3 =

69

m4 =

72

m5 =

65

m6 =

82

m7=

84

m8 =

79

HASIL DESKRIPSI : SOEHARTO

2. IMPLEMENTASI ALGORITMA RSA PADA PHP Gambar 6 : Tampilan Proses Hasil Input Kunci

Gambar 5 : Tampilan Input Kunci

Gambar 7 : tampilan proses enkripsi

Gambar 7 : tampilan proses deskripsi

Kekuatan dan Keamanan RSA Keamanan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan non prima menjadi faktor primanya, yang dalam hal ini n = p × q. Sekali n berhasil difaktorkan menjadi p dan q, maka φ(n) = (p – 1) (q – 1) dapat dihitung. Penemu algoritma RSA menyarankan nilai p dan q panjangnya lebih dari 100 digit.Dengan demikian hasil kali n = p × q akan berukuran lebih dari 200 digit. Menurut Rivest dan kawankawan, 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). Untunglah algoritma yang paling mangkus untuk memfaktorkan bilangan yang besar belum ditemukan. Inilah yang membuat algoritma RSA tetap dipakai hingga saat ini. Selagi belum ditemukan algoritma yang mangkus untuk memfaktorkan bilangan bulat menjadi faktor primanya, maka algoritma RSA tetap direkomendasikan untuk menyandikan pesan.

4. SIMPULAN Berdasarkan hasil analisis dan perhitungan algoritma RSA dapat disimpulkan bahwa: • Keamanan algoritma RSA terletak pada tingkat kesulitan dalam memfaktorkan bilangan non prima menjadi factor primanya, yang dalam hal ini n = p × q. • Semakin tinggi angka yang digunakan maka akan semakin sulit pula pesan/sandi dapat ditebak oleh pihak ketiga. DAFTAR KEPUSTAKAAN [1] http://en.wikipedia.org/wiki /Cryptography,”Cryptography”,

[2] Munir, Rinaldi. (2004). “Kriptografi”, Departemen Teknik Informatika,ITB.

Langkah Langkah RSA?

RSA membutuhkan tiga langkah dalam prosesnya, yaitu : pembangkitan kunci, enkripsi, dan dekripsi. Dimana proses enkripsi dan dekripsi merupakan proses yang hampir sama, maksudnya jika bilangan acak yang dibangkitkan kuat, maka akan lebih sulit untuk melakukan cracking terhadap pesan.

RSA digunakan untuk apa?

RSA adalah salah satu teknik kriptografi dimana kunci untuk melakukan enkripsi berbeda dengan kunci untuk melakukan dekripsi. Kunci untuk melakukan enkripsi disebut sebagai kunci publik, sedangkan kunci untuk melakukan dekripsi disebut sebagai kunci privat.

Dimana saja teknik RSA digunakan?

RSA masih digunakan secara luas dalam protokol electronic commerce, dan dipercaya dalam mengamnkan dengan menggunakan kunci yang cukup panjang. Algoritma RSA merupakan salah satu algoritma kunci asimetris.

Apa itu kriptografi RSA?

Algoritma kriptografi RSA merupakan algoritma kriptografi kunci publik (nirsimetri). Ditemukan pertama kali pada tahun 1977 oleh R. Rivest, A. Shamir, dan L. Adleman. Nama RSA sendiri diambil dari ketiga penemunya tersebut. Sebagai algoritma kunci publik, RSA mempunyai dua kunci, yaitu kunci publik dan kunci rahasia.