BAB II TINJAUAN PUSTAKA - Analisis Kinerja Algoritma Rabin dan Rivest Shamir Adleman ( RSA ) pada Kriptografi

BAB II TINJAUAN PUSTAKA

  2.1 Kriptografi

  Kriptografi atau Cryptography berasal dari kata kryptos yang artinya tersembunyi dan grafia yang artinya sesuatu yang tertulis (bahasa Yunani) sehingga kriptografi dapat juga disebut sebagai sesuatu yang tertulis secara rahasia(tersembunyi).

  Cryptography adalah ilmu yang mempelajari teknik-teknik matematika yang

  berhubungan dengan aspek-aspek pada keamanan informasi misalnya kerahasiaan, integritas data, otentikasi pengirim / penerima data, dan otentikasi data. Dengan pengembangan bidang cryptography, pembagian antara apa yang termasuk

  

cryptography dan apa yang tidak telah menjadi kabur. Dewasa ini, cryptography dapat

  dianggap sebagai perpaduan antara studi teknik dan aplikasi yang tergantung kepada keberadaan masalah

  • – masalah sulit. Bagi kebanyakan orang, cryptography lebih diutamakan dalam menjaga komunikasi agar tetap rahasia. Seperti yang telah diketahui dan disetujui bahwa perlindungan (proteksi) terhadap komunikasi yang sensitif telah menjadi penekanan kriptografi selama ini. Akan tetapi hal tersebut hanyalah sebagian dari penerapan kriptografi dewasa ini.

  2.2 Tujuan Kriptografi

  Kriptografi merupakan suatu ilmu mengenai teknik matematis yang ditujukan pada aspek pengamanan data yang meliputi tingkat kepercayaan terhadap data tersebut, integritas data, dan otentifikasi terhadap keaslian data. Untuk mencapai ini, perlu ditetapkan suatu tujuan sebagai titik tolak dalam pengembangan ilmu kriptografi itu sendiri. Menurut Rhee, tujuan dari kriptografi dapat memenuhi satu atau lebih dari hal-hal berikut ini:

1. Melakukan proteksi terhadap sistem komputer yang khusus ditujukan untuk pemrosesan dan penyimpanan data.

  2. Melakukan pencegahan terhadap tindakan yang tidak mendapat otoritas untuk mengambil ataupun menghapus suatu informasi dari pesan-pesan yang dikirim melalui saluran terbuka.

  3. Melakukan pencegahan terhadap tindakan yang tidak mendapat otoritas untuk memodifikasi data ataupun informasi pada saluran terbuka.

  Sejalan dengan penjabaran dari Man Young Rhee, Menezes menjelaskan tujuan dari kriptografi sebagai berikut:

  a.

   Confidentiality.

  Menjaga muatan informasi dari campur tangan pihak-pihak lain, selain yang memiliki otoritas.

  b. Data Integrity.

  Meyakinkan tidak terjadinya pengubahan data oleh pihak yang tidak memiliki otoritas. Untuk meyakinkan integritas dari suatu data, harus dapat dilakukan pendeteksian apakah data tersebut telah mengalami manipulasi. Manipulasi data meliputi penyisipan, penghapusan, dan pensubstitusian.

  c. Authentication.

  Fungsi untuk pemberian identifikasi. Fungsi ini diberikan baik kepada pengirim maupun kepada penerima informasi itu sendiri. Kedua belah pihak yang ingin melakukan komunikasi sebaiknya dapat saling melakukan identifikasi. Informasi yang dikirimkan sebaiknya dapat dipastikan sumbernya, keasliannya, muatannya, waktu pembuatannya, dan lain-lain.

  d. Non-Repudiation.

  Mencegah suatu pihak yang menyangkal telah melakukan pengiriman pesan ataupun informasi.

2.3 Teknik Dalam Cryptography

  Berdasarkan jumlah kunci yang digunakan, ada dua jenis sistem cryptography yaitu sistem cryptography simetris dan sistem cryptography asimetris.

2.3.1. Sistem Cryptography Simetris

  Enkripsi simetris sering juga disebut sebagai enkripsi konvensional atau enkripsi kunci-tunggal (single key). Pada model enkripsi simetris ini digunakan algoritma yang sama untuk proses enkripsi/dekripsi dengan memakai satu kunci yang sama. kunci enkripsi dekripsi

  plaintext ciphertext plaintext

Gambar 2.1. Model Sederhana Sistem Cryptography Simetris

  Keamanan dari enkripsi simetris bergantung pada beberapa faktor. Pertama, algoritma enkripsi harus cukup kuat sehingga tidaklah praktis untuk mendekripsi suatu pesan hanya dengan memiliki ciphertext saja.

2.3.2. Sistem Cryptography Asimetris

  Sistem cryptography asimetris biasanya lebih dikenal dengan cryptography kunci- publik (public-key cryptography).ide cryptography asimetris ini pertama kali dimunculkan oleh whitfield diffie dan martin hellman pada tahun 1976. Diffie dan hellman mempostulatkan sistem ini tanpa menunjukkan algoritmanya. kunci publik kunci pribadi penerima penerima enkripsi dekripsi

  plaintext ciphertext plaintext Gambar 2.2. Model Sederhana Sistem Cryptography Asimetris.

2.4 Aritmatika Modulo

  Aritmatika modulo merupakan sisa hasil pembagian 2 (dua) bilangan. Operator yang digunakan dalam aritmatika modulo adalah mod. Misalkan a adalah bilangan bulat dibagi dengan m adalah bilangan bulat > 0 , maka akan menghasilkan sisa bagi r dengan q adalah hasil bagi. Sehingga dapat dinotasikan sebagai berikut :

  a mod m = r sedemikian sehingga a = mq + r, dengan 0 ≤ r < m

  Contoh : 35 mod 8 = 3, dimana 35 = (4*8) + 3

  2.5 Greatest Common Divisor (GCD)

Greatest common divisor (GCD) merupakan bilangan bulat terbesar yang merupakan

  pembagi yang sama dari dua bilangan bulat. Misalkan a dan b adalah 2 (dua) bilangan bulat yang tidak nol. Greatest common divisor (GCD) dari a dan b adalah bilangan bulat terbesar c sedemikian sehingga c|a dan c|b. Greatest common divisor (GCD) dari a dan b dapat dinotasikan dengan gcd(a,b). Contoh :

  GCD(60,45) adalah : 60 mod 45 = 15 30 mod 15 = 0

  Karena telah menghasilkan sisa pembagian sama dengan 0, maka proses berakhir dan didapatlah GCD(60,45) = 15.

  2.6 Bilangan Prima

  Bilangan prima adalah bilangan bulat positif a, dimana a ≥ 2 hanya dapat dibagi dengan 1 dan bilangan itu sendiri. Seluruh bilangan prima adalah bilangan ganjil, kecuali 2 yang merupakan bilangan genap. Contoh bilangan prima adalah 2, 3, 5, 7, 11, 13, 17, ….

  Untuk menguji apakah n merupakan bilangan prima atau bukan, kita cukup membagi n dengan sejumlah bilangan prima, dengan syarat bilangan prima ≤ √n. Jika

  

n habis dibagi dengan salah satu dari bilangan prima tersebut, maka n bukan bilangan

  prima, tetapi jika n tidak habis dibagi oleh semua bilangan prima tersebut, maka n adalah bilangan prima. Terdapat metode lain yang dapat digunakan untuk menguji keprimaan suatu bilangan bulat yaitu Rabin Miller, Pilih nilai p sebarang, lakukan perhitungan b dengan nilai b adalah nilai jumlah perkalian 2 dibagi (p-1) kemudian hitung nilai m dengan rumus:

  p = 1 + 2 b* m 1.

  pilih nilai random, a kurang dari p

  m

  2. mod p set j = 0 set z = a

  3. jika = - 1 atau jika z = p -1 maka p valid akan kemungkinan prima 4. jika j > 0 dan z = 1 maka p bukan prima

  2 5. mod p dan lakukan proses 4 jika

  set j = j + 1, jika j < b dan z  p -1, set z = z z = p-1, maka p valid kemungkinan prima

  6. jika j=b dan z  p-1 maka p bukan prima

2.7 Relatif Prima

  Dua bilangan bulat a dan b dikatakan relatif prima jika GCD(a,b) = 1. Bilangan- bilangan a1, a2, …, an adalah relatif prima berpasangan (pairwise relatively prime) jika GCD(ai, aj) = 1 untuk 1 ≤ i < j n.

  Dengan demikian, sekumpulan bilangan bisa ditunjukkan apakah relatif prima atau tidak dengan mengevaluasi GCD dari semua pasangan bilangan yang mungkin. Jika GCD pasangan-pasangan tersebut semuanya bernilai 1, maka syarat pairwise

  

relatively prime dipenuhi. Sebaliknya, jika salah satu GCD dari pasangan bilangan

  tersebut tidak sama dengan 1, maka kumpulan bilangan tersebut bukan pairwise relatively prime. Dan 2 (dua) bilangan prima pasti adalah pairwise relatively prime. Contoh : GCD(27,15) adalah : 27 mod 15 = 12

  15 mod 12 = 3 12 mod 3 = 0 Bilangan-bilangan 27 dan 15 adalah bukan pairwise relatively prime karena GCD(27,15) = 3. GCD(11,7) adalah : 11 mod 7 = 4

  7 mod 4 = 3 4 mod 3 = 1 3 mod 1 = 0

  Bilangan

  • – bilangan prima 11 dan 7 adalah pairwise relatively prime karena GCD(11,7) = 1.

2.8 Algoritma Euclid

  Algoritma ini digunakan untuk mencari nilai pembagi persekutuan terbesar dari 2 (dua) bilangan bulat. Algoritma ini didasarkan pada pernyataan berikut ini : Dua bilangan bilangan bulat positif r dan r , dengan r , kemudian dihitung

  1 ≥ r

  1

  menggunakan algoritma pembagian :

  r = q 1 * r 1 + r 2 , 0 < r 2 < r

  1 r = q * r + r , 0 < r < r

  1

  2

  2

  3

  3

  2 r = q * r + r 0 < r < r n-2 n-1 n-1 n n n-1 r n-1 = q n * r n Dari pernyataan tersebut, dapat diperoleh : GCD(r , r

  1 ) = GCD(r 1 , r 2 ) n-1 ,r n ) = GCD(r n ,0) = r n (2.1)

  = ……….. = GCD(r Contoh : GCD(40,24) adalah : 40 = 1*24 + (40-24) 40 = 1*24 + 16 24 = 1*16 + (24

  • – 16) 24 = 1*16 + 8 16 = 2*8 Jadi, GCD(40,24)=8.

2.9 Extended Euclidean

  Algoritma Extended Euclidean ini merupakan perluasan dari algoritma Euclide yang berfungsi untuk menentukan nilai x dan y sedemikian sehingga r *x + r *y =

  1 GCD(r ,r 1 ) dengan r , r 1 merupakan bilangan bulat positif serta x dan y merupakan

  bilangan bulat. Dua bilangan bulat r dan r

  1 yang merupakan pairwise relatively prime dapat menemukan bilangan bulat x dan y sedemikian sehingga r *x + r *y = 1.

  1 Dengan menggunakan algoritma Euclid dan rumus : tj = t j-2 - q j * t j-1 , j ≥ 2

   (2.2)

  • –1

  dengan tj adalah suatu barisan bilangan t , t , t dan q diperoleh dari

  

1

  2 3 ,…, t n j

  perhitungan GCD(r , r ) = 1 dengan r = t . Sehingga diperoleh :

  1 1-1 n r n = t n *r 1 atau 1 = t n *r

  1 (2.3) Contoh : 11x + 23y = 1

  Hasil Sisa Subsitusi Penggabungan Bagi Bagi

  • 11
  • 11 = 11*1 +

  23 23 = 11*0 + 23*1 11 11=(11*1+23*0)

  • – (11*0 + 23*1)*0 11 = 11*1 +23*0

  2 1 1 = (11*0 + 23*1)

  • – (11*1 + 23*0)*2 1 = 11*(-2) + 23*1

  11 Karena sisa bagi mencapai 0, maka proses berakhir Hasil akhir yang diperoleh adalah 1 = 11*(-2) + 23*1, sehingga didapat nilai x = -2 dan y = 1.

2.10 Algoritma Rabin Public Key

  Algoritma Rabin Public Key pertama kali diperkenalkan pada tahun 1979 oleh Michael O. Rabin. Algoritma Rabin Public Key adalah salah satu sistem kriptografi asimetris yang menggunakan kunci publik dan kunci privat. Algoritma Rabin Public

  

Key merupakan varian algoritma Rivest Shamir Adleman (RSA). Fungsi dasar

  algoritmanya mirip dengan fungsi dasar dari algoritma RSA. Hanya saja komputasinya lebih sederhana dibandingkan algoritma RSA.

  • Pada algoritma Rabin Public Key, proses pembangkitan kuncinya dilakukan sebagai berikut : 1.

  Proses Pembangkitan Kunci

  Pilih 2 (dua) buah bilangan prima besar sembarang yang saling berbeda (p dan

  q), dimana p ≡ q ≡ 3 (mod 4). Atau dengan kata lain jika p dan q di modulo 4 akan menghasilkan 3.

2. Hitung nilai n yang merupakan kunci publik dengan rumus sebagai berikut: n = p * q dengan p dan q adalah kunci privat.

  Untuk mengenkripsi pesan hanya dibutuhkan kunci publik n, sedangkan untuk dekripsi, dibutuhkan bilangan p dan q sebagai kunci privat.

  Proses Enkripsi

  Proses enkripsi pada algoritma Rabin Public Key menggunakan kunci publik n. Pada proses dekripsi menggunakan Algoritma Rabin Public Key akan menghasilkan 4 (empat) buah kemungkinan plaintext. Oleh karena itu, diperlukan modifikasi dalam proses enkripsi dan dekripsi untuk menentukan plaintext yang sebenarnya. Berikut langkah

  • –langkah proses enkripsi pesan rahasia menggunakan algoritma Rabin Public

  Key yang telah dimodifikasi adalah : 1.

  Ubah nilai plaintext m menjadi nilai biner, kemudian tambahkan dengan nilai biner m itu sendiri (redundant information) atau dengan kata lain plainteks digandakan.

  2. Ubah hasil penggandaan nilai biner plaintext menjadi nilai desimalnya.

  3. Hitung nilai k yang merupakan kongruen nilai desimal dari hasil penggandaan

  plaintext m terhadap kunci publik n dengan menggunakan rumus :

  Hitung nilai ciphertext c dengan menggunakan rumus :

   2 c = m mod n

  dengan c adalah ciphertext, n adalah kunci publik, dan m adalah nilai desimal dari hasil penggandaan nilai biner plaintext.

  • Proses enkripsi pada algoritma Rabin Public Key menggunakan kunci privat p dan q. Berikut langkah

  Metode dekripsi

  • –langkah proses dekripsi dengan menggunakan algoritma Rabin

  Public Key yang telah dimodifikasi: 1.

  Tentukan nilai Yp dan Yq yang merupakan pembagi GCD (Greatest Common

  Divisor) dari p dan q dengan menggunakan Algoritma Extended Euclidean. Karena

  GCD bilangan prima adalah 1, maka dapat ditulis sebagai berikut :

  Yp*p + Yq * q = 1 2.

  Hitunglah nilai akar kuadrat dari ciphertext terhadap p dan q dengan rumus: dengan m p adalah akar kuadrat dari ciphertext terhadap p dan m q adalah akar kuadrat dari ciphertext terhadap q.

  3. Hitung nilai r, s, t dan u dengan menggunakan Chinese Remainder Theorem, dengan persamaan berikut :

  r = (Yp*p* mq + Yq * q* mp ) mod n s = (Yp*p* mq - Yq * q* mp ) mod n t = ( -Yp*p* mq + Yq * q* mp ) mod n u = ( -Yp*p* mq - Yq * q* mp ) mod n

  4. Tambahkan r,s,t,u dengan kongruen nilai desimal hasil penggandaan plainteks k yang dikalikan dengan kunci publik n.

  R = (k*n)+r S = (k*n)+s T = (k*n)+t U = (k*n)+u

  5. Ubahlah nilai desimal R,S,T,U ke dalam bentuk biner. Kemudian nilai biner R,S,T,U dibagi menjadi 2 (dua) bagian. Bandingkan kedua bagian tersebut. Jika kedua bagian tersebut menghasilkan bentuk biner yang sama, maka didapatlah hasil dekripsi ciphertext c dengan mengubah bentuk biner salah satu bagian yang telah dibagi menjadi 2(dua) bagian yang sama.

2.11 Rivest Shamir Adleman ( RSA )

  Dari sekian banyak algoritma kriptografi kunci-publik yang pernah dibuat, algoritma yang paling popular adalah algoritma RSA. Keamanan algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi factor-faktor prima. Pemfaktoran dilakukan untuk memperoleh kunci privat. Selama pemfaktoran bilangan besar menjadi factor-faktor prima belum ditemukan algoritma yang mangkus, maka selama itu pula keamanan algoritma RSA tetap terjamin. Algoritma RSA memiliki besaran-besaran sebagai berikut :

  1. (rahasia) p dan q bilangan prima 2. (tidak rahasia) n = p x q 3. (rahasia)

  (n) = (p-1)(q-1) 4. (tidak rahasia) e ( kunci enkripsi ) 5. ( rahasia ) d ( kunci dekripsi ) 6. ( rahasia ) m ( plainteks ) 7. ( tidak rahasia ) c (cpherteks)

  RSA adalah suatu blok sandi rahasia tempat teks asli dan teks rahasia merupakan bilangan bulat antara 0 dan n-1 untuk beberapa n. Enkripsi dan dekripsi berasal dari beberapa bentuk berikut ini, untuk beberapa blok teks asli M dan blok teks rahasia C.

  C = M‘ mod n

  d e d ed

  M = C mod n = (M ) mod n = M od n Blok pengirim meupun penerima harus mengetahui nilai n dan e, dan hanya penerima saja yang mengetahui nilai d. ini merupakan algoritma enkripsi kunci umum dengan kunci umum sebesar KU = {e,n} dan kunci khusus sebesar KR = {d,n}. Agar algoritma ini bisa memenyhi syarat sebagai enkripsi kunci umum yang baik, maka harus memenuhi ketentuan-ketentuan seperti berikut :

  ed 1.

  = M mod kemungkinan menemukan nilai e,d,n sedemikian rupa sehingga M n untuk semua M < n

  e d

  2. dan C untuk semua nilai M < n relative mudah menghitung M

  3. tidak mudah menghitung menentukan d, yang diberi e dan n. dua ketentuan pertama bisa terpenuhi dengan mudah. Sedangkan ketentuan ketiga baru bisa terpenuhi untuk nilai e dan n yang besar.

  • 1)

  Pembangkitan Kunci

  Memilih dua bilangan prima p, q . bilangan ini harus cukup besar (minimal 100 digit) 2)

  Menghitung n = p . q. Bilangan n disebut parameter security

  2

  sehingga p dapat diperoleh (sebaiknya p ≠ q, sebab jika p = q maka n = p dengan menarik akar pangkat dua dari n)

3) Menghitung φ(n) = (p-1)(q-1).

  4) Memilih bilangan bulat e dengan algoritma Euclid yaitu gcd(φ(n),e)=1; dimana 1< e < φ(n).

  • -1

  5) mod Menghitung d dengan rumus d = e φ(n)

  Atau e . d  1 (mod φ(n)). Perhatikan bahwa e . d  1 (mod

  φ(n)) ekivalen dengan e . d = 1 + k φ(n), sehingga secara sederhana d dapat dihitung dengan : d = ( 1 + k . φ(n)) / e

  6) Kunci umum (kunci public) adalah KU = {e,n}

  7) Kunci pribadi (kunci privat adalah KR = {d,n}

  Catatan : n tidak bersifat rahasia, sebab ia diperlukan pada perhitungan

  enkripsi/dekripsi Enkripsi

  • B mengenkripsi message M untuk A, yang harus dilakukan B :

  1) Teks asli dengan syarat M < n

  2) Ambil kunci public A yang otentik (n,e)

  3) Representasikan message sebagai integer M dalam interval [0,n-1]

  e

  4) (mod n) Teks Rahasia didapat dari C = M

  5) Kirim C ke A

  • Untuk mendekripsi, A melakukan

  Dekripsi

  1) Gunakan kunci pribadi d untuk menghasilkan M

  2) Teks rahasia adalah C

  d

  3) (mod n) Teks asli didapat dari M = C

  • – riset terkait tersebut adalah :

  Pada implementasi tandatangan digital dengan metode hybrid : Biometrik tandatangan dan dsa terpenuhi kebutuhan keamanan edokumen.Dalam hal kerahasiaan (confidentiality) Dan keutuhan atau keotentikan (integrity) e-dokumen yang Ditransmisi, dijamin dengan hash sha-1 dari e-dokumen Tersebut.

  2.14 Perbedaan Dengan Riset Yang Lain

  Adapun persamaan penelitian ini dengan penelitian sebelumnya adalah sama

  2.13 Persamaan Dengan Riset Yang Lain

  Dapat memberikan penjelasan mengenai bagaimana jalannya suatu proses dengan menggunakan algoritma DES sehingga dapat lebih mudah memahami.

  Diyah Krisna Yuliana, 2009 algoritma kriptografi des, double des dan triple des

  5 Modul pembelajaran enkripsi dengan menggunakan algoritma DES (Data Enkripsi Standart) melalu visualisasi

  4 Analisis kriptografi menggunakan algoritma Vigenere cipher dengan mode operasi Cipher block chaining (cbc) Erna kumalasari nurnawati, 2008 Algoritma vigenere chiper dan mode operasi cbc Penggabungan algoritma vigenere chiper dan mode operasi cbc ini akan menghasilkan Suatu metode baru yang peneliti sebut vigenere chiper +

  Ana wahyuni, 2011 Metode hybrid : biometrik tandatangan dan dsa

(digital

Signature algorithm)

  3 Aplikasi kriptografi untuk pengamanan E-dokumen dengan metode hybrid : Biometrik tandatangan dan dsa (digital Signature algorithm)

  Dekripsinya sangat sulit, walaupun Menggunakan supercomputer dan ribuan Tahun, tidak dapat mendekripsi pesan tanpa Mempunyai kunci private.

  2 Implementasi algoritma kunci public pada algoritma rsa Hersatoto listiyono, 2009 Algoritma rsa Dengan algoritma rsa proses

  2009 Algoritma kunci asimetris (kunci public) dan hash

sha1

Sistem keamanan ini dapat memberikan Keamanan otentikasi dokumen e-mail,Untuk menghindari jebolnya atau Tembusnya keamanan yang diterapkan email Standar seperti pgp.

  1 Pemakaian kriptografi kunci publik untuk proses enkripsi dan tandatangan digital pada dokumen e- mail Aji supriyanto,

Tabel 2.1 Riset Terkait No. Judul riset Nama peneliti dan tahun Algoritma/metode yang digunakan Hasil penelitian

  Dalam melakukan penelitian, penulis menggunakan beberapa riset terkait yang dijadikan acuan yang membuat penelitian berjalan lancar. Adapun riset

  2.12 Riset Terkait

  • – sama menggunakan algoritma kunci public salah satunya algoritma kriptografi Rivest Shamir Adleman ( RSA ) untuk proses pengamanan data.

  Dalam Penelitian ini, dilakukan perbandingan kinerja antara algoritma Rabin dan RSA, dengan menganalisis tingkat keamanan dan tingkat kecepatan dalam memprosesan data.Sehingga dari aplikasi ini diketahui kelebihan dan kekurangan dari masing

  • – masing algoritma .

2.15 Kontribusi Riset

  Penelitian ini memberikan pemahaman tentang pentingnya aspek keamanan suatu pesan teks, apalagi pesan yang ingin disampaikan bersifat rahasia. Dengan mengimplementasikan algoritma kriptografi dan Rivest Shamir Adleman ( RSA ) pada pesan teks, maka kita dapat mengetahui algoritma mana yang cocok dan yang sangat baik dalam melakukan pengiriman dan pengamanan pesan, sehingga pesan yang akan dikirimkan prosesnya cepat dan terjaga kerahasiannya dari pihak

  • – pihak yang tidak berkepentingan, untuk proses pembangkitan bilangan prima dalam algoritma Rabin dan Rivest Shamir Adleman ( RSA ), penulis menggunakan algorima Rabin Miller.Dalam penelitian ini, diharapkan akan didapatkan metode yang lebih baik lagi dalam keamanan data maupun kecepatan memprosesan data.