• Tidak ada hasil yang ditemukan

Implementasi Algoritma Hill Cipher 3x3 dan Rabin Public Key pada Pengiriman Short Message Service (SMS)

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Algoritma Hill Cipher 3x3 dan Rabin Public Key pada Pengiriman Short Message Service (SMS)"

Copied!
22
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1. Kriptografi

Kata Cryptography berasal dari bahasa Yunani yang terdiri dari dua kata yaitu kryptos yang berarti rahasia dan graphein yang berarti tulisan (Mollin, 2007).

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 (sender) ingin mengirimkan suatu pesan kepada si penerima (receiver), dimana si pengirim ingin pesan yang disampaikannya tidak dapat dibaca oleh orang lain yang ingin melakukan penyadapan (eavesdropper). Dalam kriptografi, pesan asli biasa disebut plaintext dan pesan yang disamarkan disebut ciphertext. Proses menyamarkan pesan sedemikian rupa untuk menyembunyikan substansinya disebut enkripsi. Proses untuk mengubah ciphertext kembali ke plaintext adalah dekripsi. Skema rangkaian proses enkripsi dan dekripsi ditunjukkan secara umum pada Gambar 2.1 (Schneier, 1996).

Gambar 2.1. Skema Proses Enkripsi dan Dekripsi (Schneier, 1996)

Enkripsi Dekripsi

(2)

2.1.2. Tujuan kriptografi

Kriptografi bertujuan untuk memberikan layanan keamanan sebagai berikut : (Paar&Pelzl, 2010)

1. Kerahasiaan (Confidentiality)

Informasi dirahasiakan dari semua pihak yang tidak berwenang. 2. Keutuhan Data (Inegrity)

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

3. Autentikasi (Message Authentication)

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.2. Sistem Kriptografi

Sistem kriptografi adalah algoritma, seluruh kemungkinan plaintext, ciphertext dan kunci. P adalah notasi yang digunakan untuk plaintext, C adalah ciphertext, E adalah fungsi enkripsi dan D adalah fungsi dekripsi (Schneier, 1996). Sedangkan untuk kunci dapat dinotasikan sebagai K.

Berdasarkan kunci yang dipakai, algoritma kriptografi dibagi menjadi tiga, yaitu algoritma simetri (menggunakan satu kunci untuk enkripsi dan dekripsi), algoritma asimetri (menggunakan kunci yang berbeda untuk enkripsi dan dekripsi) dan fungsi hash (Ariyus, 2008).

Selain berdasarkan kunci yang dipakai, karakteristik kriptografi juga dibagi berdasarkan tipe operasi yang dipakai untuk enkripsi dan dekripsi serta berdasarkan tipe pengolahan pesan (Sadikin, 2012).

2.3. Kriptografi Berdasarkan Kunci yang Dipakai

(3)

asimetri (menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsi), dan fungsi hash (Ariyus, 2008).

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 stram cipher) (Verma, 2015).

2.3.1. Sistem kriptografi simetri

Algoritma simetris adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya (Kromodimoeljo, 2010). 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. Yang termasuk algoritma kunci simetris adalah Hill Cipher, Affine Cipher, OTP, DES, RC2, RC4, RC5, IDEA, Twofish, Magenta, FEAL, dan lain-lainnya. Skema kriptografi simetris ditunjukkan secara umum pada Gambar 2.2.

Gambar 2.2. Skema Kriptografi Simetris (Fauzana, 2013)

2.3.2. Sistem kriptografi asimetri

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

(4)

semua algoritma kriptografinya menggunakan konsep kunci publik, seperti Rivest-Shamir-Adleman (RSA), El-Gamal, Rabin dan sebagainya (Harahap, 2014). Skema

kriptografi asimetris ditunjukkan secara umum pada Gambar 2.3.

Gambar 2.3 Kriptografi Asimetris (Fauzana, 2013)

Sistem kriptografi asimetri kunci publik pertama kali diusulkan oleh Diffie dan Hellman pada tahun 1976. Ide kriptografi kunci publik sebenarnya mirip dengan cara kerja kunci gembok, misalnya terdapat sebuah peti yang berisi pesan rahasia, lalu peti itu dikunci dengan gembok di mana gembok ini 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 apabila kunci yang dipegang olehnya merupakan pasangan dari gembok tersebut. Kunci yang dipegang oleh penerima bekerja seperti private key (Sadikin, 2012).

Sistem kriptografi kunci publik memiliki kunci untuk enkripsi Ke dan kunci untuk dekripsi Kd yang berbeda. Kunci untuk enkripsi Ke disebut juga sebagai kunci publik (KPublik) bersifat tidak rahasia sehingga dapat didistribusikan melalui saluran tidak aman. Sedangkan kunci dekripsi Kd disebut juga kunci privat (KPrivat) bersifat rahasia dan harus dijaga kerahasiaannya oleh pemegang kunci. Berikut ini adalah algoritma sistem kriptografi kunci publik (Sadikin, 2012).

1. Sebelum A melakukan enkripsi, B membangkitkan sepasang kunci yaitu kunci privat dan kunci publik milik B dengan memanggil fungsi PembangkitKunci().

(KPublikB, KPrivatB) PembangkitKunci()

(5)

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

C  E(KPublikB, P)

A mengirim teks sandi (C) ke B melalui saluran tidak aman.

3. B mendekripsi teks sandi (C) dengan kunci privat B (KPrivatB) untuk mendapatkan teks asli (P) dengan fungsi dekripsi (D).

P  D(KPrivatB, 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).

Dalam kriptografi kunci asimetri, hampir semua algoritma kriptografinya menggunakan konsep kunci publik, seperti Rivest-Shamir-Adleman (RSA), El-Gamal, Rabin dan sebagainya. Kecuali algoritma Pohlig˗Hellman karena kunci enkripsi maupun kunci dekripsinya bersifat rahasia. (Fauzana, 2013). Skema algoritma kriptografi asimetri nirkunci publik (dengan asumsi kunci sudah diketahui oleh kedua belah pihak sebelumnya) dapat dilihat pada Gambar 2.4.

(6)

2.3.3. Fungsi hash

Fungsi hash adalah sebuah fungsi yang masukannya adalah sebuah pesan dan keluarannya adalah sebuah sidik pesan (message fingerprint) (Ariyus, 2008).

Fungsi hash sering disebut dengan fungsi hash satu arah (one-way function), message digest, fingerprint, fungsi kompresi dan message authentication code (MAC)

yang merupakan suatu fungsi matematika yang mengambil masukan panjang variabel dan mengubahnya ke dalam urutan biner dengan panjang yang tetap. Fungsi hash biasanya diperlukan bila ingin membuat sidik jari dari suatu pesan. Sidik jari pada pesan merupakan suatu tanda bahwa pesan tersebut benar-benar berasal dari orang yang diinginkan (Ariyus, 2008). Beberapa fungsi hash yang banyak dipakai adalah MD5 dan SHA.

2.4. Teori Bilangan Integer

2.4.1. Faktor Persekutuan Terbesar (Greatest Common Divisor)

Faktor Persekutuan Terbesar atau 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. GCD dari a dan b adalah bilangan bulat terbesar c sedemikian sehingga c|a dan c|b. GCD dari a dan b dapat dinotasikan dengan gcd(a,b) (Nasution, 2015).

Contoh :

GCD (36,88) = … ? 36 mod 88 = 36 88 mod 36 = 16 36 mod 16 = 4 16 mod 4 = 0

Jadi, GCD dari (36,88) adalah 4

2.4.2. Aritmatika Modulo

(7)

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

a mod b = r sedemikian sehingga a = bs + r, dengan 0 ≤ b < n ... (2.1)

Sebagai contoh, jika 23 mod 4 = 3, maka 23 = (4 × 5) + 3.

Jika a negatif, maka bagi |a| dengan b mendapatkan sisa bagi r’ (Munir, 2006). Sehingga didapatkan:

a mod b = b – r’, di mana r’ ≠ 0 dan a < 0 ... (2.2) Sebagai contoh, jika |-23| mod 4 = 3, maka -23 mod 4 = 4 – 3 = 1.

Cormen, et 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), di mana 0 ≤ a mod b < b ... (2.3)

Contohnya adalah 23 mod 4 = 23 – 4(23/4) = 23 – 4(5) = 23 – 20 = 3.

2.4.3. Algoritma Extended Euclid

Teorema yang digunakan sebagai dasar dari algoritma Extended Euclid adalah sebagai berikut:

Jika = qb + r maka gcd(,b) = gcd(b,r)………….……(2.4)

Algoritma Euclid menggunakan rumus diatas secara berulang untuk men-dapatkan gcd, yaitu dengan memperkecil kedua bilangan yang dijadikan patokan untuk gcd setiap kali mengulang, tanpa merubah nilai gcd itu sendiri. Hasil dari komputasi gcd di dapat saat kedua patokan untuk gcd tidak dapat diperkecil lagi.

2.4.4. 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).

(8)

Teka-teki tersebut dapat dituliskan sebagai berikut. x ≡ 2 (mod 11)

x ≡ 3 (mod 7) x ≡ 2 (mod 5)

Apa solusi dari sistem kekongruenan berikut ini?

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

Misalkan m1, m2, …, mn adalah bilangan bulat positif yang relatif prima berpasangan (pairwise relatively prime) yang lebih besar dari 1 dan a1, a2, …, an merupakan bilangan bulat sembarang. Maka sistem kekongruenan linear

x a1 (mod m1),

x a2 (mod m2),

x an (mod mn)

memiliki sebuah solusi unik modulo m = m1m2…mn. (Terdapat solusi x dengan 0 ≤ x < 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).

1. Hitung hasil perkalian dari keseluruhan modulus.

M = m1m2mn ………….……….……….…… (2.5) M = 11 × 7 × 5 = 385

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

x1 = {2, 13, 24, 35, 46, 57, 68, 79, 90, 101, 112, 123, 134, 145, 156, 167,

178, 189, 200, 211, 222, 233, 244, 255, 266, 277, 288, 299, 310, 321, 332, 343, 354, 365, 376}

x2 = {3, 10, 17, 24, 31, 38, 45, 52, 59, 66, 73, 80, 87, 94, 101, 108, 115,

122, 129, 136, 143, 150, 157, 164, 171, 178, 185, 192, 199, 206, 213,

220, 227, 234, 241, 248, 255, 262, 269, 276, 283, 290, 297, 304, 311, 318, 325, 332, 339, 246, 353, 360, 367, 374, 381}

x3 = {2, 7, 12, 17, 22, 27, 32, 37, 42, 47, 52, 57, 62, 67, 72, 77, 82, 87, 92,

97, 102, 107, 112, 117, 122, 127, 132, 137, 142, 147, 152, 157, 162,

(9)

307, 312, 317, 322, 327, 332, 342, 347, 352, 357, 362, 367, 372, 377, 382}

3. X merupakan irisan dari keseluruhan himpunan penyelesaian tersebut. X = x1 x2 ∩ … ∩ xn ………….……….……….…… (2.6) X = x1 x2 x3 = 332

4. Agar tercapai seluruh bilangan yang memenuhi x, maka dihitung kelipatan persekutuan terkecil (Least Common Multiple) dari ketiga modulus (interval yang memenuhi x).

Persamaan 2.7 berikut merupakan rumus untuk mencari LCM dari dua bilangan bulat positif (Rosen, 2012).

ab = GCD(a,b) . LCM(a, b) ………….…… (2.7) Dari persamaan di atas dapat disimpulkan:

GCD(11,5,7) = 1 dan LCM(11,5,7) = 385

Sehingga x memenuhi akan bilangan dalam interval 105 dimulai dari 23, yaitu x = 332 ± (k × 385). Atau interval ini dapat dituliskan x X ± (k × LCM (m1,m2, …,mn))

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

1. Hitung hasil perkalian dari keseluruhan modulus.

M = m1m2mn ………….……….……….…… (2.8) M = 11 × 7 × 5 = 385

2. Hitung hasil bagi dari M dengan tiap-tiap modulus.

Mn = M/mn ………….……….……….…… (2.9) M1 = 385/11 = 35

M2 = 385/7 = 55

M3 = 385/5 = 77

3. Hitung invers modulo (yn) dari (Mn mod mn). Maka diperoleh: y1 = 2, y2 = 6 dan y3 = 2

4. Diperoleh solusi x dari teka-teki dengan menghitung rumus berikut ini. x a1M1y1 + a2M2y2 + … + anMnyn ………….……….… (2.10) x a1M1y1 + a2M2y2 + a3M3y3 ≡ (2.35.2) + (3.55.6) + (2.77.2)

(10)

2.4.5. 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, yang terkenal dengan Teorema Fermat. Berikut pernyataan dari Teorema Fermat : Jika p adalah bilangan prima dan a adalah bilangan bulat yang tidak habis dibagi dengan p, yaitu GCD(a,p) = 1, maka : ap-1 ≡ 1 (mod p) (Mollin, 2007).

Teorema Fermat ini memiliki kelemahan yaitu terdapat bilangan bulat bukan prima p sedemikian sehingga ap–1 ≡ 1 (mod p). Bilangan bulat p seperti itu 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 fermat’s liar. Akan tetapi, bilangan prima semu relatif jarang ditemukan.

Contoh :

Apakah p = 49 adalah bilangan prima?

a. Pilihlah sembarang bilangan bulat positif a dengan syarat 1<a<p.

b. Hitung ap-1 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.

348 mod 49 = 43 648 mod 49 = 8

Karena ap-1 mod p ≠ 1, maka bilangan bulat p = 49 bukan bilangan prima

2.5. Sistem Kriptografi Hill Cipher

(11)

kriptographer dan diplomat Perancis Blaise de Vigenere (1523-1596), Lester S.Hill, yang menemukan Hill Cipher pada tahun 1929. Hill Cipher merupakan jenis lain dari Polygraphic cipher. Sandi ini mengenkripsi suatu string huruf menjadi bentuk string

yang lain dengan panjang sama. Teknik Hill Cipher dikembangkan oleh Lester S.Hill pada Hunter Collage dan dipublikasikan pada American Mathematical Monthly, Volume 36, Issue 6 (Juni-Juli, 1929) halaman 106-312. Hill Cipher menggunakan matriks untuk mentransformasi string berupa blok huruf (Simamora,2015).

Hill Cipher berdasarkan pada aljabar linier dan seperti sandi Vignere, Hill

Cipher merupakan Block Cipher. Sandi ini dapat dipecahkan dengan Known-Plaintext

Attacks tetapi tahan melawan ciphertext-only attack. Cara kerja sandi ini berdasarkan atas perkalian matriks dengan menggunakan sebuah kunci K. Penjelasan mengenai Hill Cipher ini dapat diuraikan sebaai berikut:

Misalkan m adalah bilangan bulat positif dan � = � = � dan misalkan K ={ × merupakan matriks yang nilai elemennya terdiri dari }, maka untuk suatu kunci K, dapat didefenisikan sebagai � = � × dan � = �− dimana semua operasi dilakukan dalam matriks .

Karena �− dengan mudah dapat dihitung dari K, maka Hill Cipher merupakan suatu kriptosistem simetris. Hill Cipher juga merupakan blok cipher linier umum. Suatu blok cipher linier dapat dengan mudah dipecahkan yang dikenal cara Known-plaintext

attacks. Maka bagi penyerang yang mengetahui beberapa contoh plaintext dengan enkripsi yang berhubungan, tidaklah sulit baginya untuk mencari kunci yang dipakai untuk mengenkripsikan plaintext tersebut. Metode dari perhitungan frekuensi sering dipakai untuk usaha ini. Metode ini mengeksplorasi perulangan (redundancy) dari bahasa alami yang dipakai sebagai plaintext pada pesan.

Cara kerja Hill Cipher dapat disederhanakan dengan cara perkalian dengan matriks kunci (K). K merupakan sebuah matriks kunci × yang merupakan representasi dari suatu persamaan linier. Cara mencari matriks kunci itu sendiri adalah dengan mencari GCD dari matriks K tersebut. Cara kerja Hill Cipher dapat diuraikan sebagai berikut. Pertama tentukan matriks kunci secara acak. Misal matriks kuncinya:

� = ( )

(12)

determinan matriks ≠ 0. Jika sudah memenuhi syarat, maka selanjutnya lakukan GCD (det, 26) =1

Sebagai contoh, buktikan apakah matriks kunci ini mempunyai invers :

� = ( )

Mencari determinan matriks :

( )

= ( 12 + 18 + 36 ) – ( 27 + 24 + 12 ) = 3

Setelah dapat determinannya selanjutnya pembuktian apakah matriks kunci atau tidak dengan cara :

Maka terbukti matriks diatas merupakan matriks kunci karena memenuhi syarat. Setelah mendapatkan matrik kunci. Maka untuk menghasilkan ciphertext menggunakan persamaan sebagai berikut:

2.5.1. Enkripsi Hill Cipher

Langkah-langkah untuk proses enkripsi plaintext dengan Hill Cipher adalah sebagai berikut:

1. Pilih suatu matriks kunci K yang berupa matriks bujur sangkar yang dipakai sebagai kunci.

(13)

3. Kelompokkan barisan angka yang didapat ke dalam beberapa blok vektor P yang panjangnya sama dengan ukuran matriks K.

4. Hitung C = K. P (mod 26) untuk tiap vektor P.

5. Kembalikan tiap angka dalam vektor sandi C ke huruf yang sesuai untuk mendapatkan teks sandi. Skema kerja enkripsi Hill Cipher dapat dilihat pada Gambar 2.5.

Gambar 2.5. Illustrasi Enkripsi Hill Cipher

Bagian ini akan menjelaskan enkripsi dengan Hill Cipher dengan memberikan contoh. Hill Cipher menggunakan matriks untuk mentransformasikan string plaintext menjadi ciphertext.

Untuk mentransformasikan plaintext maka pertama sekali semua alphanumerik dinyatakan dalam Tabel 2.1 seperti berikut:

Tabel 2.1 Transformasi alphanumerik

A B C D E F G H I J K L M N O P

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Q R S T U V W X Y Z

16 17 18 19 20 21 22 23 24 25

Contoh :

Kode Hill dengan mengunakan matriks 3×3 dengan kunci matriks :

( )

(14)

Tabel 2.2 Enkripsi Hill Cipher

Jadi, enkripsi dari “FITRIIMUT”adalah “PHYEUXPHR”

2.5.2. Dekripsi Hill Cipher

Algoritma proses pendekripsian Hill Cipher dapat diuraikan dalam bentuk langkah-langkah sebagai berikut:

1. Hitung matriks �− (Mod 26) sebagai kunci pembuka. �− ada jika GCD ((det(K),26)=1.

2. Transformasikan tiap huruf dalam teks ke bilangan bulat yang sesuai (A=1; B=2; … Z=26).

3. Kelompokkan barisan angka yang didapat ke dalam beberapa blok vektor C yang panjangnya sama dengan ukuran matriks �− .

4. Hitung P = �− . � � untuk tiap vector C.

(15)

Gambar 2.6. Illustrasi dekripsi Hill Cipher Contoh :

Diketahui Kode Hill dengan mengunakan matriks 3×3 dengan kunci matriks:

( )

Diketahui teks adalah: “PHYEUXPHR”.

1. Cari Adjoint dari matriks K yang ditunjukkan pada Tabel 2.3 Tabel 2.3 Mencari Adjoint dari Matriks K

(16)

b. Adjoint diperoleh, cari determinan matriks K yang ditunjukkan pada Tabel 2.4 berikut.

Tabel 2.4 Proses determinan matriks K

4 2 3 4 2 c. Invers dari determinan K

(17)

=> (3*X) mod 26 = 1 memperoleh bilangan Positif (+), ini dilakukan karena yang digunakan adalah bilangan 0 hingga 25 seperti yang ditunjukkan pada Tabel 2.5.

Tabel 2.5 Proses Pembulatan

f. Pembuktian bahwa K saling invers dengan �− , dengan melakukan perkalian, dan hasil akhirnya adalah matriks identitas yang ditunjukkan pada Tabel 2.6 berikut ini :

Tabel 2.6 Proses Saling Invers

K �−

=

K* �−

( ) * ( )

4*25+2*1+3*1 4*10+2*7+3*8 4*25+2*2+3*0 6*25+3*1+3*1 6*10+3*7+3*8 6*25+3*2+3*0 3*25+2*1+1*1 3*10+2*7+1*8 3*25+2*2+3*0 100+2+3 40+14+24 100+40+0 �� . Tabel ciphertext dapat dilihat pada Tabel 2.7 dan proses dekripsi Hill Cipher dapat dilihat pada Tabel 2.8.

Tabel 2.7 Tabel Ciphertext

P H Y E U X P H R

(18)

Tabel 2.8 Proses dekripsi Hill Cipher

Jadi teks asli dari “PHYEUXPHR” adalah “FITRIIMUT”.

2.6. Sistem Kriptografi Rabin Public Key

(19)

2.6.1. Pembangkit Kunci Rabin

Untuk membangkitkan bilangan prima dapat menggunakan metode Fermat. Jika p adalah bilangan prima dan a adalah bilangan bulat yang tidak habis dibagi dengan p, yaitu GCD(a,p) = 1, maka : ap-1 ≡ 1 (mod p) (Mollin, 2007).

Teorema Fermat ini memiliki kelemahan yaitu terdapat bilangan bulat bukan prima p sedemikian sehingga ap–1 ≡ 1 (mod p). Bilangan bulat p seperti itu 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 fermat’s liar. Akan tetapi, bilangan prima semu relatif jarang ditemukan.

2.6.2. Enkripsi Rabin Public Key

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

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

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

c. Hitung nilai k yang merupakan kongruen nilai desimal dari hasil penggandaan plaintext m terhadap kunci publik n dengan menggunakan rumus :

� ∗ = − ………….……….………..…… (2.12) d. Hitung nilai ciphertext c dengan menggunakan rumus :

(20)

2.6.3. Dekripsi Kunci Public Rabin

Proses enkripsi pada algoritma Rabin Public Key menggunakan kunci privat p dan q. Berikut langkah–langkah proses dekripsi dengan menggunakan algoritma Rabin Public Key yang telah dimodifikasi : (Wandani, 2012)

a. 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.14) b. Hitunglah nilai akar kuadrat dari ciphertext terhadap p dan q dengan rumus:

mp = +1 ………….……….……….………….…. (2.15)

mq= +1 ………….……….……….……... (2.16)

Dengan mp adalah akar kuadrat dari ciphertext terhadap p dan mq adalah akar kuadrat dari ciphertext terhadap q.

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

r = (Yp*p* mq + Yq * q* mp ) mod n ………….……….…………(2.17) s = (Yp*p* mq - Yq * q* mp ) mod n ………….……….………….(2.18) t = ( -Yp*p* mq + Yq * q* mp ) mod n ………….……….………..(2.19) u = ( -Yp*p* mq - Yq * q* mp ) mod n ………….……….………..(2.20) d. Tambahkan r,s,t,u dengan kongruen nilai desimal hasil penggandaan plaintext k

yang dikalikan dengan kunci publik n.

R = (k*n)+r ………….……….………….………….……...…...(2.21) S = (k*n)+s ………….……….………...…….…… …….…… .(2.22) T = (k*n)+t ………….……….……….…….………….……...(2.23) U = (k*n)+u ………….……….………...…….…… …….…… .(2.24) e. Ubahlah nilai desimal R, S, T, U ke dalam bentuk biner. Kemudian nilai biner

(21)

2.7. Android

Android adalah sistem operasi untuk telepon seluler yang berbasiskan Linux (Entprise,2010). Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka sendiri sehingga dapat digunakan oleh bermacam peranti penggerak. Untuk mengembangkan Android di bentuklah Open Handset Alliance yang merupakan gabungan dari 34 perusahaan peranti keras, peranti lunak dan telekomunikasi termasuk Google, HTC, Intel, Motorola, Qualcomm, TMobile, dan Nvidia.

Pada saat perilisan perdana Android pada tanggal 5 November 2007, Android bersama Open Handset Alliance menyatakan mendukung pengembangan pada perangkat seluler. Pertama yang dapat dukungan penuh dari Google atau Google Mail Service (GMS) dan kedua adalah yang benar-benar bebas distribusinya tanpa dukungan

langsung dari Google atau dikenal sebagai Open Handset Distribution (DHD) (Ardiansyah, 2011). Sejak April 2009, masing-masing versi android dirilis sesuai urutan alfabet. Berikut adalah rangkaian perjalanan Android dan logo dari Android pada Gambar 2.7

1. Kerjasama Android Inc. dengan Google Inc.

2. 2007-2008 perjalanan awal Android 3. Android Versi 1.1

4. Android Versi 1.5 (Cupcake) 5. Android Versi 1.6 (Donut) 6. Android Versi 2.0/2.1 (Eclair)

7. Android Versi 2.2 (Froyo) 8. Android Versi 2.3 (Gingerbread) 9. Android Versi 3.0 (Honeycomb) 10. Android Versi 4.0 (ICS)

11. Android Versi 4.1-4.3 (Jelly Bean) 12. Android Versi 4.4 (KitKat)

13. Android Versi 5.0 (Lollipop)

(22)

2.8. Penelitian Yang Relevan

Berikut ini adalah beberapa penelitian tentang kriptografi yang berkaitan dengan Algoritma Hill Cipher dan Rabin Public Key :

1. Wandani,H (2012) dengan judul “Implementasi Sistem Keamanan Data dengan Menggunakan Teknik Steganografi End of File (EOF) dan Rabin Public Key Cryptosystem” dengan kesimpulan bahwa kombinasi plaintext dan kunci tertentu. Terdapat hasil dekripsi yang berbeda dari plaintext yang sebenarnya dikarenakan pada saat sistem memeriksa 4 (empat) kemungkinan nilai plaintext, terdapat 2 (dua) atau lebih nilai kemungkinan plaintext yang memenuhi syarat sebagai plaintext yang sebenarnya. Sehingga sistem ini akan mengambil nilai kemungkinan plaintext yang pertama sekali memenuhi syarat sebagai plaintext yang sebenarnya.

2. Harahap, A.A (2014) dengan judul “Implementasi Sistem Keamanan Data Menggunakan Steganografi Teknik Pemetaan Titik Hitam dengan Pencarian Sekuensial dan Rabin Cryptosystem” dengan kesimpulan bahwa proses enkripsi relatif lebih cepat dibandingkan dengan proses dekripsi pada algoritma kriptografi Rabin dan proses ekstraksi gambar relatif lebih cepat dibandingkan dengan proses penyisipan pada steganografi teknik pemetaan titik hitam dengan pencarian sekuensial.

Gambar

Gambar 2.1. Skema Proses Enkripsi dan Dekripsi (Schneier, 1996)
Gambar 2.2. Skema Kriptografi Simetris (Fauzana, 2013)
Gambar 2.3 Kriptografi Asimetris (Fauzana, 2013)
Gambar 2.4. Skema Kriptografi Asimetri Nirkunci Publik (Fauzana, 2013)
+7

Referensi

Dokumen terkait

Selain itu, penelitian ini juga bertujuan untuk mengetahui keefektifan LKPD terintegrasi nilai karakter terhadap pengembangan tanggung jawab, disiplin, serta prestasi belajar

Sehingga apabila sepanjang mengenai kepastian hukum anak sah maka diatur dalam Pasal 250 Burgelijk Wetboek voor Indonesie (BW) atau yang dikenal juga dengan Kitab

Jumlah Pegawai Teknisi Kehutanan pada Balai Taman Nasional Kepualuan Seribu Sampai dengan Bulan Desember

Dengan analisa SWOT dan IE-Matrix, disarankan beberapa hal, yaitu: strategi market intensive dilakukan melalui penetrasi pasar dan pengembangan pasar; mengembangkan

Seluruh adik – adik FISIKA USU stambuk 2014, 2015 dan 2016 dan juga Seluruh teman – teman di Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, Medan

Informan Kalau itu sebenarnya kenapa, karena strategi marketnya udah benar kenapa kita masuk pasar LCGC intinya sih secara keseluruhan dulu itu logo Nissan sama dengan logo

1. Peserta didik belum terlibat dalam proses pembelajaran, sehingga materi yang diberikan menjadi sulit dipahami oleh siswa dan mengakibatkan hasil belajar

Berdasarkan hasil penelitian dan pembahasan yang telah dilakukan, maka dapat disimpulkan bahwa gaya kepemimpinan dan ketidakapastian lingkungan memiliki pengaruh terhadap