Implementasi Hybrid Cryptosystem dengan Algoritma One Time Pad dan Algoritma Rabin Cryptosystem dalam Pengamanan Data Teks

BAB II TINJAUAN PUSTAKA Bab II ini berisi tentang pembahasan teori-teori tentang Kriptografi algoritma One Time Pad dan Rabin Cryptosystem

2.1. Kriptografi Kata Cryptography berasal dari bahasa Yunani yang artinya secret writing.

  Kriptografi adalah suatu praktek dan ilmu dari teknik untuk komunikasi yang aman dimana adanya kehadiran dari pihak ketiga. Menurut Terminologinya, kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan akan dikirim dari suatu tempat ke tempat yang lain (Ariyus, 2008).

  Kriptografi adalah ilmu mengenai teknik enkripsi dimana data diacak menggunakan suatu kunci enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang yang tidak memiliki kunci dekripsi (Kromodimoeljo, 2010).

2.1.1 Terminologi

  Ketika seorang pengirim ingin mengirimkan suatu pesan kepada si penerima. Dimana si pengirim ingin pesan yang disampaikannya tidak dapat dibaca oleh orang lain yang ingin melakukan penyadapan. Proses menyamarkan pesan sedemikian rupa untuk menyembunyikan substansinya disebut enkripsi. Sebuah pesan yang dienkripsi disebut

  . Proses untuk mengubah ciphertext kembali ke plaintext adalah dekripsi.

  ciphertext

  Pada standar ISO 7498-2 menggunakan istilah encipher untuk proses enkripsi dan

  

decipher untuk proses dekripsi. Skema rangkaian proses enkripsi dan dekripsi

ditunjukkan secara umum pada Gambar 2.1. (Schneier, 1996).

  Seni dan ilmu untuk menjaga keamanan pesan disebut kriptografi dan pelakunya adalah kriptografer. Kriptanalis adalah yang melakukan kriptanalisis, yaitu seni dan ilmu untuk memecahkan pesan tersembunyi (ciphertext). Cabang matematika yang meliputi kriptografi dan kriptanalisis adalah kriptologi dan praktisinya disebut kriptologis (Schneier, 1996). Skema proses enkripsi dan dekripsi dapat dilihat pada Gambar 2.1.

  Ciphertext Plaintext Plaintext Enkripsi Dekripsi

Gambar 2.1. Skema ProsesEnkripsi dan Dekripsi(Schneier, 1996) 2.1.2.

   Komponen Kriptografi

  Dalam kriptografi terdapat beberapa istilah penting antara lain : 1)

  Pesan, Plainteks, dan Cipherteks Pesan merupakan data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain untuk pesan adalah plainteks (plaintext). Pesan dapat berupa data atau informasi yang dikirim atau yang disimpan dalam media penyimpanan. Pesan yang tersimpan bisa berbentuk teks, citra (image), suara/bunyi (audio) dan

  video . Agar pesan tidak dapat dimengerti maknanya oleh pihak lain maka, pesan

  dapat disandikan ke bentuk lain yang tidak dapat dipahami. Bentuk pesan yang tersandi disebut cipherteks (ciphertext).

  2) Pengirim dan Penerima

  Komunikasi data melibatkan pertukaran pesan antara dua entitas. Pengirim (sender) adalah entitas yang mengirim pesan kepada entitasnya yang lain. Penerima (receiver) adalah entitas yang menerima pesan.Entitas di sini dapat berupa orang, mesin (komputer), kartu kredit, dan sebagainya.

  3) Enkripsi dan Dekripsi

  Proses menyandikan pesan asli (plainteks) menjadi pesan tersandi (cipherteks) disebut enkripsi (encryption) sedangkan proses untuk mengembalikan pesan tersandi (cipherteks) menjadi plainteks semula dinamakan dekripsi (decryption). 4)

  Cipher dan Kunci Algoritma kriptografi disebut juga cipher yaitu aturan untuk enchipering dan dechipering , atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi.

  Keamanan algoritma kriptografi sering diukur dari banyaknya kerja (work) yang dibutuhkan untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang digunakan. Kunci (key) merupakan parameter yang digunakan untuk transformasi enciphering dan deciphering. Kunci biasanya berupa string atau deretan bilangan.

  5) Sistem Kriptografi

  Kriptografi membentuk sebuah sistem yang dinamakan sistem kriptografi.Sistem kriptografi (cryptosystem) terdiri dari algoritma kriptografi, semua plainteks dan

  cipherteks yang mungkin dan kunci.

  6) Penyadap (eavesdropper)

  Penyadap merupakan orang yang mencoba menangkap pesan selama ditransmisikan.Tujuan penyadap adalah untuk mendapatkan informasi sebanyak- banyaknya mengenai sistem kriptogafi yang digunakan untuk berkomunikasi dengan maksud untuk memecahkan cipherteks. Nama lain penyadap adalah

  enemy , adversary, intruder, interceptor, bad guy.

  7) Kriptanalisis

  Kriptografi berkembang sedemikian rupa sehingga melahirkan bidang yang berlawanan yaitu kriptanalisis.Menurut (Schneier,1996) mengatakan bahwa kriptanalisis (crytanalysis) adalah ilmu dan seni untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang digunakan. Pelakunya disebut kriptanalis.

2.2. Tujuan Kriptografi

  (

  Kriptografi bertujuan untuk memberikan layanan keamanan Paar & Pelzl,

  )

  2010 sebagai berikut: 1)

  Kerahasian (Confidentiality) Informasi dirahasiakan dari semua pihak yang tidak berwenang.

  2) Keutuhan Data (Integrity)

  Pesan tidak berubah dalam proses pengiriman hingga pesan diterima oleh penerima.

  3) Autentikasi (Anthentication) Kepastian terhadap identitas setiap entitas yang terlibat dan keaslian sumber data.

  4) Nirpenyangkalan(Nonrepudiation)

  Setiap entitas yang berkomunikasi tidak dapat menolak atau menyangkal atas data yang telah dikirim atau diterima.

  .

2.3. Jenis-Jenis Algoritma Kriptografi

  Algoritma Kriptografi dibagi tiga berdasarkan kunci yang dipakai, yaitu algoritma simetri (menggunakan satu kunci untuk proses enkripsi dan dekripsi), algoritma asimetri (menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsi), dan fungsi hash (Sadikin, 2012).

  Karakteristik kriptografi dibagi dua berdasarkan tipe operasi yang dipakai untuk enkripsi dan dekripsi (teknik substitusi dan teknik permutasi) serta berdasarkan tipe pengolahan pesan (block cipher dan stream cipher ) (Ariyus, 2008).

2.3.1 Algoritma Simetris

  Algoritma simetris adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya (Wandani, 2012) . Algoritma simetris sering juga disebut sebagai algoritma kunci rahasia, algoritma kunci tunggal atau algoritma satu kunci. Bila mengirim pesan dengan algoritma ini, si penerima pesan harus diberitahu kunci dari pesan tersebut agar bisa mendekripsikan pesan yang dikirim. Keamanan dari pesan yang menggunakan algoritma ini tergantung pada kunci.

  Jika kunci tersebut diketahui oleh orang lain maka orang tersebut dapat melakukan enkripsi dan dekripsi pada pesan (Sadikin, 2012). Yang termasuk algoritma kunci simetris adalah OTP, DES, RC2, RC4, RC5, IDEA, Twofish, Magenta, FEAL, SAFER, LOKI, CAST, Rijndael (AES), Blowfish, GOST, A5, Kasumi dan lain-lainnya.Skema kriptografi simetris dapat dilihat pada Gambar 2.2.

  Teks Asli Teks Asli

  Ciphertext Algoritma Algoritma Enkripsi Dekripsi

  Kunci Rahasia

Gambar2.2. Skema Kriptografi Simetris (Fauzana, 2013)

2.3.2 Algoritma Asimetris

  Algoritma asimetris disebut juga dengan kriptografi kunci publik karena algortima ini memiliki kunci yang berbeda untuk enkripsi dan dekripsi, dimana enkripsi menggunakan public key dan untuk dekripsinya menggunakan private key. Public key dan private key harus saling berpasangan secara matematis. Dengan memberikan

  

public key , pembuat kunci berhak memberikan dan mendapatkan public key agar

  pesan aman dan hanya bisa dibaca oleh si pembuat kunci. Dalam kriptografi kunci asimetri, hampir semua algoritma kriptografinya menggunakan konsep kunci publik, seperti Rivest-Shamir-Adleman (RSA), El-Gamal, Rabin dan sebagainya (Harahap, 2014). K ecuali algoritma Pohlig˗Hellman karena kunci enkripsi maupun kunci dekripsinya bersifat rahasia. Skema kriptografi asimetris dapat dilihat pada Gambar 2.3.

  Kunci Kunci Publik Rahasia

  Teks Asli Teks Asli

  

Ciphertext

Enkripsi Dekripsi

Gambar 2.3. Kriptografi Asimetris (Wandani, 2012 ).

2.3.3 Algoritma Kunci Publik

  Algoritma kunci publik termasuk juga kedalam algoritma asimetris, dan cara kerja dari algoritma ini hampir sama dengan gembok. Misalnya terdapat sebuah pesan di dalam peti lalu peti tersebut dikunci dengan gembok dan gembok ini dapat dimiliki oleh semua orang (gembok bekerja seperti public key). Peti terkunci tersebut kemudian dikirim ke tujuan atau penerima yang memiliki kunci untuk membuka gembok. Penerima dapat membuka gembok tersebut apabila sipenerima memiliki pasangan kunci dari gembok tersebut. Kunci yang dipegang oleh penerima bekerja seperti private key (Sadikin, 2012).

  Algoritma kriptografi kunci publik memiliki dua kunci yang berbeda untuk proses enkripsi dan dekripsi. Untuk melakukan proses enkripsi kunci publik(K )

  Publik bersifat tidak rahasia sehingga dapat didistribusikan melalui saluran tidak aman.

  Sedangkan untuk kunci dekripsi disebut juga kunci privat � bersifat rahasia

  ����

  dan harus dijaga kerahasiaannya oleh pemegang kunci. Berikut ini adalah algoritma sistem kriptografi kunci publik (Sadikin, 2012).

  • Sebelum A melakukan enkripsi, B membangkitkan sepasang kunci yaitu kunci privat dan kunci publik milik B dengan memanggil fungsi

  PembangkitKunci() .

  PembangkitKunci()

  (K , K )

  

Publik Privat

  B memublikasikan kunci publik (K Publik ) dan menjaga kerahasiaan kunci privat (K Privat ).

  Publik )

  • A melakukan enkripsi sebuah teks asli (P) dengan kunci publik B (K menghasilkan sebuah teks sandi (C) dengan memanggil fungsi enkripsi (E).

  CE (K , P) Publik A mengirim teks sandi (C) ke B melalui saluran tidak aman.

  ) untuk

  Privat

  • B mendekripsi teks sandi (C) dengan kunci privat B (K mendapatkan teks asli (P) dengan fungsi dekripsi (D).

  PD (K Privat , C) B mendapatkan P jika teks sandi (C) dienkripsi dengan kunci publik B yang sesuai.

  Jadi dalam kriptografi kunci publik, kunci publik dapat disebar-luaskan kepada umum dan sebaiknya disebar luaskan. Sebaliknya, kunci privat harus dirahasiakan oleh pemiliknya. Perlu untuk diingat, biasanya algoritma tidak dirahasiakan, bahkan enkripsi yang mengandalkan kerahasiaan algoritma dianggap sesuatu yang tidak baik (Kromodimoeljo, 2010). Hal ini sesuai dengan prinsip Kerckhoff yaitu semua algoritma kriptografi harus publik, hanya kunci yang rahasia (Munir, 2006).

2.4. Kode Vigenere Kode Vigenere termasuk kode abjad-majemuk (polyalphabetic substitution cipher).

  Dipublikasikan oleh diplomat Perancis, Blaise de Vigenere pada Abad 16, tahun 1586. Pada teknik subsitisusi Vigenere setiap teks-kode bisa memiliki banyak kemungkinan teks-asli. Teknik dari substitusi Vigenere bias dilakukan dengan dua cara, yaitu angka dan huruf (Ariyus, 2008).

2.4.1. Angka

  Teknik subsitusi Vigenere dengan menggunakan angka dilakukan dengan menukarkan huruf dengan angka, hampir sama dengan kode geser. Daftar Vigenere Angka dapat dilihat pada Tabel 2.1.

Tabel 2.1. Vigenere Angka (Ariyus, 2008)

  A B C D E F G H

  I J K L M N

  1

  2

  3

  4

  5

  6

  

7

  8

  9

  10

  11

  12

  13 O P Q R S T U

  V W

  X Y Z

  14

  15

  16

  17

  18

  19

  20

  21

  22

  23 NN225

  24 Kunci dengan 6 huruf jika ditukar dengan angka akan menjadi K=(2,8,15,7,4,17), dan teks- aslinya “This is Cryptosystem is Not Secure”. Contoh Viginere Ciphertext dapat dilihat padada Tabel 2.2.

Tabel 2.2. Vigenere CipherText (Ariyus, 2008)

  T H

  I S C R Y P T O S Y S T

  19 7 8 18 2 17 24 15 19 14 18 24 18 19

  2 8 15 7 4 17 2

  8

  15 7 4 17 2

  8

  21 15 23 25 6

  8

  23 8 21 22 15 20

  1 E M

  I S N O T S E C U R E 4 12 8 18 13 14 19 18 4 2 20 17 4 15 7 4 17 2

  8

  15 7 4 17 2 8 15

  19 19 12 9 15 22 8 25 8 19 22 25 19

  Teks-asli : This cryptosystem is not secure Kunci : (2,8,15,7,4,17) Teks-Kode : VPXZGIAXIVWPUBTTMJPWIZITWZT Untuk melakukan dekripsi juga dapat menggunakan kunci yang sama dengan modulo 26.

2.4.2. Huruf

  Ide dasarnya adalah dengan menggunakan kode Kaisar, tetapi jumlah pergeseran hurufnya berbeda-beda untuk setiap periode beberapa huruf tertentu.Untuk mengenkripsi pesan dengan kode Vigenere digunakan tabula recta (disebut juga bujursangkar Vigenere.Tabula Recta digunakan untuk memperoleh teks-kode dengan menggunakan kunci yang sudah ditentukan.Jika panjang kunci lebih pendek daripada panjang teks-asli maka penggunaan kunci diulang. Secara matematis enkripsi dengan kode Vigenere bias dinyatakan sebagai berikut: E(pi)=V(pi , k(I mod m)) Dengan : Pi = huruf ke- I dalam teks asli Kn = huruf ke-n dalam kunci m = panjang kunci, dan V(x,y) = huruf yang tersimpan pada baris x dan kolom y pada tabula recta. Contoh kode Vigenere adalah sebagai berikut: Teks-asli

  : “KEAMANAN DATA MENGGUNAKAN CIPHER

  VIGINERE” Kunci

  : “KRIPTOGRAFI” Dengan menggunakan algoritma kode Vigenere maka akan didapat teks-kode sebagai berikut : UVIBTBGE DFBK WVVVZCTRKFV FZOTGSXHE HQZYMP (Ariyus, 2008).

2.5. Algoritma One Time Pad

  Algoritma ini ditemukan pada tahun 1917 oleh Mayor Joseph Mauborgne dan Gilbert Vernam. Cipher ini termasuk ke dalam kelompok algoritma kriptografi simetri . (Prameswara, 2013) One Time Pad berisi deretan karakter kunci yang dibangkitkan secara acak dan setiap kunci hanya bisa dipakai sekali pakai.

  Pemilihan kunci harus secara acak agar tidak bisa diproduksi ulang dan membuat lawan tidak mudah memecahkannya(Ariyus, 2008) . Panjang stream karakter kunci sama dengan panjang pesan. One Time Pad (pad = kertas bloknot) berisi barisan karakter-karakter kunci yang dibangkitkan secara acak. Satu pad hanya digunakan sekali (one time) saja untuk mengenkripsi pesan, setelah itu pad yang telah digunakan dihancurkan. Panjang kunci One Time Pad

  • – panjang teks asli sehingga tidak ada kebutuhan untuk menggulang penggunaan kunci selama proses enkripsi.
Aturan enkripsi yang digunakan persis sama seperti pada kode Vigenere. Bila diketahui teks

  • – asli: “ONETIMEPAD” Dengan kunci: “TBFRGFARM” Diasumsikan A= 0, B = 1, . . . , Z=25. Maka akan didapat teks- kode : “IPKLPSFHGQ” yang mana diperoleh sebagai berikut:

  (O + T ) mod 26 = I (N + B ) mod 26 = P (E + F ) mod 26 = K ( T + R ) mod 26 = L ( I + G ) mod 26 = P ( M + F ) mod 26 = S ( E + A ) mod 26 = F ( P + R ) mod 26 = H ( A + F ) mod 26 = G ( D + M ) mod 26 = Q

  Sistem One Time Pad tidak dapat dipecahkan karena beberapa alasan: 1)

  Barisan kunci acak + teks asli yang tidak acak = teks kode yang seluruhnya acak. 2)

  Mendekripsi teks kode dengan beberapa kunci berbeda dapat menghasilkan teks asli yang bermakna sehingga kriptanalis tidak punya cara untuk menentukan teks asli mana yang benar. Algoritma ini memiliki beberapa kelemahan.Yaitu kunci yang dipakai haruslah benar- benar acak. Menggunakan pseudorandom generator tidak dihitung, karena algoritma ini memiliki bagian yang tidak acak. Panjang kunci juga harus sama dengan panjang pesan, sehingga hanya cocok untuk pesan berukuran kecil. Selain itu, karena kunci dibangkitkan secara acak, maka ‘tidak mungkin’ pengirim dan penerima membangkitkan kunci yang sama secara simultan. Dan karena kerahasiaan kunci harus dijamin, maka perlu ada perlindungan selama pengiriman kunci.Oleh karena itu, algoritma ini hanya dapat digunakan jika tersedia saluran komunikasi kedua yang cukup aman untuk mengirim kunci (Prameswara, 2013)

  2.6. Greatest Common Divisor (GCD)

  Faktor persekutuan terbesar adalah elemen terbesar pada himpunan divisor dua bilangan integer. Dua bilangan dapat saja memiliki beberapa elemen divisor yang sama namun hanya satu yang terbesar (Sadikin, 2012). Misalnya, divisor 15 = { 1, 3, 5, 15 } dan divisor45 = { 1, 3, 5, 9, 15, 45 }, maka himpunan divisor kedua bilangan tersebut ialah { 1, 3, 5, 15 } dan yang terbesar ialah 15. Dengan kata lain, faktor persekutuan terbesar 15 dan 45 dapat dinotasikan sebagai GCD(15, 45) = 15 (Fauzana, 2013).

  Dalam notasi matematika, faktor persekutuan terbesar d dari dua bilangan integer a dan b, di mana keduanya tidak sama dengan nol, didefinisikan sebagai berikut (Welschenbach, 2005):

  d = GCD(a,b) jika d> 0, maka d | a, d | b ............................ (2.1)

  (d | a dibaca d habis membagi a) dan jika terdapat bilangan d ’, di manad

  ’ | a dan d’ | b, maka d’ | d .................................... (2.2) Sebagai contoh, telah diketahui GCD(15, 45) = 15. Pembuktian dari persamaan (2.1) dapat dilihat dari 15/15 = 1 dan 45/15 = 3. Hal ini dikarenakan 15 merupakan salah satu divisor dari 15 dan 45.

  Berikut ini beberapa aturan yang berlaku dalam faktor persekutuan terbesar(Welschenbach, 2005).

  1. GCD(a,b) = GCD(b,a) ............................................................................ (2.3) 2.

  GCD(a,0) = |a| ......................................................................................... (2.4) 3. GCD(a,b,c) = GCD(a, GCD(b,c))........................................................... (2.5) 4. GCD(a,b) = GCD(-a,b) ........................................................................... (2.6) 2.7.

   Aritmatika Modulo

  Aritmatika modulo merupakan sisa hasil pembagian dua bilangan. Operator yang digunakan dalam aritmatika modulo adalah mod. Misalkan, jika bilangan integer

  

a dibagi dengan bilangan integer yang lebih besar dari nol(b> 0), maka akan

  menghasilkan sisa bagi r (remainder) dengan hasil bagi s (quotient). Sehingga dapat dinotasikan sebagai berikut (Lipschutz & Lipson, 2007).

  a mod m = r sedemikian sehingga a = mq + r,

  dengan 0 ≤ r < m………..(2.7) Contoh : 23 mod 8 = 7, dimana 23 = (8*2) + 7 Jika a negatif, maka bagi |a| dengan b mendapatkan sisa bagi r ’ (Munir, 2006). Sehingga didapatkan:

  a mod b = b

  • r’, dimana r’ ≠ 0 dan a< 0………………….(2.8) Sebagai contoh, jika |-41| mod 9 = 5, maka -41 mod 9 = 9 – 5 = 4.

  Cormen, at al. (2009) menuliskan di dalam bukunya, untuk setiap bilangan bulat a dan setiap bilangan bulat positif b, nilai a mod b adalah sisa (residu) dari hasil bagi a / b:

  a mod b = a

  • b (a/b), dimana 0 ≤a mod b<a……………….(2.9) Contohnya adalah 23 mod 4 = 23 – 4(23/4) = 23 – 4(5) = 23 – 20 = 3.

2.8. Relatif Prima

  Bilangan bulat positif i (i> 1) disebut bilangan prima jika pembaginya 1 dan i (Cormen, at al. 2009).Seluruh bilangan prima adalah ganjil kecuali 2. Cara sederhana untuk menguji apakah i merupakan bilangan prima atau komposit adalah dengan membagi i dengan sejumlah bilangan prima, mulai dari 2 hingga bilangan prima yang lebih kecil atau sama dengan akar kuadrat dari i (2

  ≤x≤ ). Jika i habis dibagi dengan salah satu dari bilangan prima tersebut, maka i adalah bilangan komposit dan jika tidak, maka i adalah prima (Munir, 2006). Terdapat metode lain yang dapat digunakan untuk menguji keprimaan suatu bilangan bulat, beberapa diantaranya adalah Teori Fermat (dibaca “Fair-ma”) (Munir, 2006) dan Miller-Rabin. Dua bilangan bulat a dan b dikatakan relatif prima jika GCD(a,b) = 1. Jika a dan b relatif prima, maka terdapat bilangan bulat m dan n sedemikian sehingga

  ma + nb

  =1…………………………………(2.10) Bilangan-bilangan a

  1 , a 2 , a 3 n adalah relatif prima berpasangan (pairwise

  , …, a

  

relatively prime ) jika GCD(a , a , a ) = 1 (Cormen, et al. 2012). Contoh

  1

  2

3 n

  , …, a bilangan yang relatif prima adalah 11 dan 23.

  2.9. Persamaan Diophantine linier

  Jika terdapat bilangan bulat a, b, c, x, y dalam bentuk persamaan:

  ax + by = c,

  dengan nilai a,b dan c yang diketahui, maka persamaan ini disebut sebagai persamaan Diophantine Linier (Mollin, 2008). Jika nilai c pada persamaan Diophantine linier berikut ini,

  ax + by = c,

  adalah merupakan nilai faktor persekutuan terbesar dari a dan b atau dengan kata lain

  

c = GCD(a,b), maka persamaan tersebut disebut sebagai persamaan Diophantine linier

dengan identitas Bézout (Rosen, 2012).

  2.10. Extended Euclidean

  Algoritma Euclid dapat dikembangkan (disebut dengan algoritma Extended Euclid) agar dapat menemukan dua integer x dan y yang unik selain nilai GCD(a,b) sehingga memenuhi relasi yang ditunjukkan oleh persamaan (2.11) (Lipschutz & Lipson, 2007).

  a × x + b × y = GCD(a,b

  )………………………..(2.11) 2.11.

   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 , ….

  Ada dua jenis algoritma pengujian bilangan prima, yaitu bersifat deterministik dan (pasti) dan yang bersifat probabilistik(Sadikin, 2012).

  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(Wandani, 2012).

  Metode lain yang bisa digunakan untuk melakukan pengujian bilangan prima adalah Teorema Fermat. Berikut pernyataan dari Teorema Fermat: Jika p adalah sebuah bilangan prima dan a adalah bilangan integer positif yang tidak habis dibagi p maka(Sadikin, 2012):

  −

  � ≡ 1 mod p...................................................(2.12) Kelemahan dari teorema fermat ini yaitu terdapat bilangan bulat yang bukan disebut bilangan prima semu (pseudoprimes). Bilangan bulat a yang menyebabkan ap

  • –1 ≡ 1 (mod p), dimana p adalah bilangan prima semu disebut dengan bilangan Carmichael atau F

  ermat’s liar. Akan tetapi, bilangan prima semu relatif jarang ditemukan(Schneier, 1996).

  Apakah p = 23 adalah bilangan prima? 1. Pilihlah sembarang bilangan bulat positif a dengan syarat 1<a<p.

  −

  2. Hitung mod p sebanyak dua kali untuk menghindari ditemukan bilangan prima � semu. Jika salah satu hasil perhitungan tidak sama dengan 1, maka bilangan bulat p bukan bilangan prima.

  22

  3 mod 23 = 1

  22

  6 mod 23 = 1

  −

  Karena mod p � ≠ 1, maka bilangan bulat p = 23 merupakan kemungkinan bilangan prima.

2.12. Chinese Remainder Theorem

  

Chinese Remainder Theorem (CRT) ditemukan oleh seorang matematikawan Cina

  bernama Sun-Tsu (juga disebut Sun Tse) sekitar 100 A.D (anno domini) atau 100 M (Stallings, 2011).Chinese Remainder Theorem (teorema sisa Cina), dinamai setelah masalah peninggalan Cina yang melibatkan sistem persamaan atau kekongruenan linear, menyatakan bahwa ketika modulus dari sistem kekongruenan linear yang berpasangan relatif prima, ada solusi unik dari sistem modulo produk dari modulus. Berikut ini adalah pertanyaan atau teka-teki Sun-Tsu (Rosen, 2012).

  

“Ada beberapa hal yang bilangannnya tidak diketahui. Bila dibagi dengan 3, sisanya

adalah 2, ketika dibagi oleh 5, sisanya adalah 3, dan ketika dibagi 7, sisanya adalah 2

Berapakah bilangan itu?” Teka-teki tersebut dapat dituliskan sebagai berikut.

  Apa solusi dari sistem kekongruenan berikut ini:

  x

  ≡ 2 (mod 3)

  x

  ≡ 3 (mod 5)

  x

  ≡ 2 (mod 7) Sebelum menyelesaikan teka-teki tersebut, berikut ini adalah teorema sisa Cina (Chinese Remainder Theorem) (Rosen, 2012).

  Misalkan m

  1 , m 2 adalah bilangan bulat positif yang relatif prima berpasangan

  , …,m n (pairwise relatively prime) yang lebih besar dari 1 dan a

  1 , a 2 n merupakan

  , …, a bilangan bulat sembarang. Maka sistem kekongruenan linear

  x (mod m ),

  ≡ a

  1

  1 x 2 (mod m 2 ),

  ≡ a

  x n (mod m n )

  ≡ a memiliki sebuah solusi unik modulo m = m m . (Terdapat solusi x dengan 0

  1 2 …m nx<m, dan semua solusi lainnya adalah kongruen modulo m untuk solusi ini).

  Solusi dari penyelesaian teka-teki Sun-Tsu tersebut adalah sebagai berikut (Wandani, 2012). Hitung hasil perkalian dari keseluruhan modulus.

  M = m 1 m 2 n

  …m

  M = 3 × 5 × 7 = 105

  1) Buat himpunan penyelesaian untuk masing-masing persamaan dari bilangan terkecil hingga hasil perkalian modulus (M).

  x 1 = {2, 5, 8, 11, 14, 17, 20, 23, 26, 29, 32, 35, 38, 41, 44, 47, 50, 53, 56,

  59, 62, 65, 68, 71, 74, 77, 80, 83, 86, 89, 92, 95, 98, 101, 104}

  x 2 = {3, 8, 13, 18, 23, 28, 33, 38, 43, 48, 53, 58, 63, 68, 73, 78, 83, 88, 93,

  98, 103}

  x = {2, 9, 16, 23, 30, 37, 44, 51, 58, 65, 72, 79, 86, 93, 100}

  3

2) X merupakan irisan dari keseluruhan himpunan penyelesaian tersebut.

  X = x

  1 2 n

  ∩ x ∩ … ∩ x

  X = x

  1

  2 3 = 23

  ∩ xx 3)

  Agar tercapai seluruh bilangan yang memenuhi x, maka dihitung kelipatan persekutuan terkecil (Least Common Multiple) dari ketiga modulus (interval yang memenuhi x). Berikut ini merupakan rumus untuk mencari LCM dari dua bilangan bulat positif (Rosen, 2012).

  ab = GCD(a,b) . LCM(a, b

  )………………………….(2.13) Dari persamaan 2.13 di atas dapat disimpulkan:

  GCD(3,5,7) = 1 dan LCM(3,5,7) = 105 ……………..(2.14)

  Sehingga x memenuhi akan bilangan dalam interval 105 dimulai dari 23, yaitu x = 23 ± (k × 105). Atau interval ini dapat dituliskan: x X ± (k × LCM(m

  1 ,m 2 , n ))

  …,m Cara yang dapat digunakan untuk menyelesaikan teka-teki Sun-Tsu menurut Rosen (2012) adalah sebagai berikut.

1. Hitung hasil perkalian dari keseluruhan modulus.

  = m

  M 1 m 2 n

  …m

  M = 3 × 5 × 7 = 105 2.

  Hitung hasil bagi dari M dengan tiap-tiap modulus.

  M n = M/m n M = 105/3 = 35

  1 M 2 = 105/5 = 21 M 3 = 105/7 = 15

  3. ) dari (M mod m ). Maka diperoleh:

  n n n

  Hitung invers modulo (y

  y 1 = 2, y 2 = 1 dan y 3 = 1

4. Diperoleh solusi x dari teka-teki dengan menghitung rumus berikut ini.

  x M y + a M y M y

  1

  1

  1

  2

  2 2 n n n

  ≡ a + … + a …………………………(2.15)

  x

  1 M 1 y 1 + a

  2 M 2 y 2 + a

  3 M

3 y

  

3

  ≡ a ≡ (2.35.2) + (3.21.1) + (2.15.1)

  x ≡ 233 ≡ 23 (mod 105).

2.13. Algoritma Rabin

  Algoritma Rabin Public Key adalah salah satu algoritma kriptografi asimetris yang menggunakan kunci publik dan kunci privat. Algoritma ini pertama kali diperkenal kan oleh Michael O. Rabin pada tahun 1979. Fungsi dasar dari algoritma ini hampir sama dengan algoritmaRivest Shamir Adleman ( RSA). Hanya saja komputasinya lebih sederhana dibandingkan dengan RSA. Inilah yang membuat serangan terhadap algoritma ini menjadi lebih banyak, antara lain:

  1) Chosen Ciphertext Attack

  Penyerang menentukan ciphertext untuk didekripsikan, sehingga mengetahui bentuk plaintext hasil dekripsi.

  2) Chosen – Plaintext Attack

  Kriptanalis dapat menentukan plaintext untuk dienkripsikan, yaitu plaintext - yang lebih mengarahkan ke penemuan kunci(Wandani, 2012) .

  plaintext 2.13.1.

   Pembangkit Kunci

  Langkah yang pertama yang harus dilakukan didalam algoritma Rabin Public Key adalah pembangkitan kunci. Berikut ini algoritma untuk proses pembangkitan kunci pada algoritma Rabin Public Key (Schneier, 1996).

  • Pilih dua bilangan prima, p dan q, dimana keduanya kongruen terhadap 3 mod 4. Atau dengan kata lain, jika p dan q dimodulokan 4 akan menghasilkan 3.

  p

  ≡ q ≡ 3 (mod 4)..............................................................(2.17) Misalkan p = 11 dan q = 23. Kedua bilangan ini (p dan q) merupakan private key.

  • Hitung nilai n yang merupakan public key dengan rumus perkalian antara p dan q (Rădulescu, 2008).

  , n

  n = pq

  ∈.........................................................................(2.18) = 11 × 23 = 253.

  n Dimana:

  n =kunci publik pq =kunci rahasia

  Simpan dan rahasiakan nilai p dan q, sedangkan nilai n dapat disebarkan seluas- luasnya.

  2.13.2 . Proses Enkripsi

  Proses enkripsi pada algoritma Rabin Public Key menggunakan kunci publik n. Untuk melakukan enkripsi pesan (P), P harus lebih kecil dari n. Berikut adalah rumus untuk melakukan enkripsi pada algoritma Rabin Public Key (Schneier, 1996).

  2 C = P mod n.....................................................................(2.19)

  Dimana:

  C=ciphertext P=plaintext n =kunci publik

  Berikut ini adalah contoh dan algoritma dalam melakukan enkripsi pesan (Rădulescu, 2008).

   Terima kunci publik, n = 253.  Ekspresikan pesan P = “A” = 65 (kode ASCII) sebagai bilangan, P∈ dan P <n.

  2

  mod 253 = 177 dengan rumus C=  Hitung C = 65

  � mod n  Kirim C = 177 = “±” ke pemilik kunci publik.

2.13.3. Proses Dekripsi Proses dekripsi pada algoritma Rabin Public Key menggunakan kunci privat p dan q.

  Selama penerima pesan mengetahui p dan q, penerima pesan dapat menyelesaikan dua kekongruenan menggunakan Chinese Remainder Theorem (Schneier, 1996). Pada dekripsi, masalah yang dihadapi adalah menghitung (Galbraith, 2012). Berikut ini adalah contoh dan algoritma dekrispi pada algoritma Rabin PublicKey yang dapat menyelesaikan permasalahan tersebut (Wandani, 2012).

  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.20) 2.

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

  • mod p...............................................(2.21)

  � = c (

  4

  • mod q.................................................(2.22)

  � = c

  4

  denganmp adalah akar kuadrat dari ciphertext terhadap p dan mq 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*

  � + Yq * q* ) mod n...................(2.23)

  s = (Yp*p*

  � - Yq * q* ) mod n..................(2.24)

  t = ( -Yp*p*

  � + Yq * q* ) mod n ..............(2.25)

  u = ( -Yp*p*

  � - Yq * q* ) mod n...............(2.26) 4. Tambahkan r,s,t,udengan kongruen nilai desimal hasil penggandaan plainteks k yang dikalikan dengan kunci publik n.

  R = (k*n)+r .........................................................(2.27) S = (k*n)+s .........................................................(2.28) T = (k*n)+t ......................................................... (2.29) U = (k*n)+u .........................................................(2.30)

  5. Ubahlah nilai desimal R,S,T,Uke dalam bentuk biner. Kemudian nilai biner dibagi menjadi 2 (dua) bagian. Bandingkan kedua bagian tersebut. Jika

  R,S,T,U

  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.14. Penelitian yang Relevan 1.

  Firman Saragih(2008), membuat penelitian yang berjudul Penggunaan Kriptografi One Time Pad (Algoritma Vernam) dalam Pengamanan Informasi. Hasil penelitian yang diperoleh adalah One-time pad merupakan algoritma pengenkripsian datadan informasi yang relative sederhana dan mudah digunakan namun cukup aman dalam menjamin kerahasiaan informasi atau data yang ingin dikirimkan oleh pengirim pesan kepada penerima pesan tanpa dapat diketahui oleh pihak lain(Saragih, 2008).

  2. Henny Wandani(20012), membuat penelitian yang berjudul Implementasi Sistem Keamanan Data dengan Menggunakan Tekhnik Steganografi End

  of File (EOF) dan Rabin Public Key Cryptosystem, dimana penelitian ini

  menggabungkan algoritma kriptografi Rabin Public Key dengan tekhnik Steganografi dalam pengamanan data dan kerahasian sebuah data rahasia dengan algoritma Rabin sebagai pembangkit kunci(Wandani, 2012).

  3. Gustaf Prameswara(2012), membuat penelitian yang berjudul Implementasi Algoritma One Time Padpada data teks dan Knapsack pada kunci. Penelitian ini membahas tentang bagaimana algoritma One Time

  Pad mengenkripsikan dan mendekripsikan pesan dan Knapsack sebagai pengaman kunci dalam pengiriman pesan (Prameswara,2012).

Dokumen yang terkait

I. Identitas Pekerja penyemprot - Hubungan Pemakaian Alat Pelindung Diri dengan Gejala Keracunan Pada Penyemprot Pestisida di Perkebunan Kelapa Sawit Tanjung Garbus Pagar Merbau Tahun 2015

0 0 22

BAB II TINJAUAN PUSTAKA 2.1 Pestisida 2.1.1 Pengertian Pestisida - Hubungan Pemakaian Alat Pelindung Diri dengan Gejala Keracunan Pada Penyemprot Pestisida di Perkebunan Kelapa Sawit Tanjung Garbus Pagar Merbau Tahun 2015

0 0 40

BAB I PENDAHULUAN 1.1 Latar Belakang - Hubungan Pemakaian Alat Pelindung Diri dengan Gejala Keracunan Pada Penyemprot Pestisida di Perkebunan Kelapa Sawit Tanjung Garbus Pagar Merbau Tahun 2015

0 1 7

BAB 2 TINJAUAN PUSTAKA - Nyeri Punggung dan Mekanika Tubuh pada Ibu Hamil di Kelurahan Belawan II Kecamatan Medan Belawan

0 0 19

Peran Keluarga dalam Pemenuhan Kebutuhan Interaksi Sosial pada Lansia di Kelurahan Padang Bulan Kecamatan Medan Baru

0 0 28

BAB 2 TINJAUAN PUSTAKA - Peran Keluarga dalam Pemenuhan Kebutuhan Interaksi Sosial pada Lansia di Kelurahan Padang Bulan Kecamatan Medan Baru

0 0 25

BAB 2 TINJAUAN PUSTAKA 1. Tekanan Darah 1.1.Pengertian - Pengaruh Latihan Fleksibility Terhadap Perubahan Tekanan Darah Pada Pasien Gagal Ginjal Kronik yang Menjalani Terapi Hemodialisa di Klinik Ginjal dan Hipertensi Rasyida Medan

0 0 26

Pengaruh Latihan Fleksibility Terhadap Perubahan Tekanan Darah Pada Pasien Gagal Ginjal Kronik yang Menjalani Terapi Hemodialisa di Klinik Ginjal dan Hipertensi Rasyida Medan

0 0 12

BAB 2 LANDASAN TEORI 2.1 Kamus - Perancangan Fitur Autocomplete pada Aplikasi Kamus Istilah Teknologi Informasi Menggunakan Algoritma Boyer-Moore

0 0 16

Implementasi Hybrid Cryptosystem dengan Algoritma One Time Pad dan Algoritma Rabin Cryptosystem dalam Pengamanan Data Teks

0 1 19