• Tidak ada hasil yang ditemukan

Implementasi Algoritma Rivest-Shamir-Adleman Untuk Pengamanan Kunci Algoritma Hill Cipher Pada Citra Digital

N/A
N/A
Protected

Academic year: 2019

Membagikan "Implementasi Algoritma Rivest-Shamir-Adleman Untuk Pengamanan Kunci Algoritma Hill Cipher Pada Citra Digital"

Copied!
15
0
0

Teks penuh

(1)

BAB II

TINJ AUAN PUSTAKA

2.1. Kriptografi

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. Dekripsi menggunakan kunci dekripsi untuk mendapatkan data asli kembali. Proses enkripsi dilakukan menggunakan suatu algoritma dengan beberapa parameter. Biasanya algoritma tidak dirahasiakan, bahkan enkripsi yang mengandalkan kerahasiaan algoritma dianggap sesuatu yang tidak baik. Rahasia terletak di beberapa parameter yang digunakan, jadi kunci ditentukan oleh parameter. Parameter yang menentukan kunci dekripsi itulah yang harus dirahasiakan (parameter menjadi ekuivalen dengan kunci) (Kromodimoeljo, 2010).

(2)

Menurut Schneier (1996), dalam pemenuhan kerahasiaan, kriptografi sering digunakan untuk :

1. Authentication. Memungkinkan penerima pesan menegaskan keaslian dari data tersebut; penyusup tidak dapat menyamar sebagai orang lain.

2. Integrity. Memungkinkan penerima pesan memeriksa bahwa data tersebut tidak dimodifikasi selama pengiriman; penyusup tidak dapat mengganti pesan yang salah dengan yang asli.

3. Non-repudiation. Pengirim tidak dapat menyangkal telah melakukan pengiriman.

2.2. Algoritma Kriptografi Simetris

Algoritma simetris, biasanya disebut juga sebagai algoritma konvensional, merupakan algoritma dimana kunci enkripsi dapat dihitung dari kunci dekripsi dan sebaliknya. Pada kebanyakan algoritma simetris, kunci enkripsi dan dekripsi nya adalah sama. Algoritma ini, disebut juga algoritma kunci-privat (secret-key), algoritma kunci-tunggal (single-key), algoritma satu kunci (one-key), dimana pengirim dan penerima sepakat dengan sebuah kunci sebelum berkomunikasi dengan aman. Keamanan algoritma simetris terletak pada kunci; mengumumkan kunci berarti siapa saja dapat mengenkripsi dan mendekripsi pesan. Sepanjang komunikasi yang diharapkan agar aman, maka kunci harus dijaga tetap aman (Schneier, 1996).

Menurut Schneier (1996), enkripsi dan dekripsi dengan menggunakan algoritma simetris disimbolkan dengan :

EK (M) = C

(3)

2.2.1. Algoritma Hill cipher

Hill cipher pertama kali dibuat pada tahun 1929 oleh penemunya, seorang matematikawan Lester S. Hill, dalam jurnal The American Mathematical Monthly. Hill cipher merupakan cipher polygraphic pertama. Cipherpolygraphic adalah cipher dimana plainteks dibagi menjadi grup-grup karakter yang berdekatan dengan panjang tetap n, dan kemudian tiap grup diubah ke grup lain dengan n karakter. Fitur polygraphic menambah kecepatan dan kemampuan transfer Hill cipher. Di samping itu, keuntungan lainnya adalah pada enkripsi data misalnya kemampuan pertahanannya terhadap analisis frekuensi. Inti dari Hill cipher adalah manipulasi matriks

.

Rumus aljabar linier nya adalah

C = K x P (mod m)

dimana C adalah adalah blok cipherteks, P adalah blok plainteks dan K adalah kunci. Kunci K berbentuk matriks. Jadi, untuk dekripsi, kunci matriks invers. K-1 dibutuhkan (Rahman et al, 2013).

Contoh :

Contoh di bawah ini akan menggunakan beberapa aljabar linier dan beberapa teori bilangan. Kunci untuk Hill cipher adalah sebuah matriks, misalnya:

2 4 5

9 2 1

3 17 7

(4)

pesan ini perlu dibagi menjadi potongan 3 huruf. Sekarang diambil 3 huruf pertama dari plainteks, “ATT” dan buat suatu vector yang berhubungan dengan huruf tersebut (ganti A dengan 0, B dengan 1 … Z dengan 25 dsb) untuk mendapatkan: [0 19 19] (sama dengan [‘A’,’T’,’T’]).

Untuk mendapatkan cipherteks, dilakukan perkalian matriks :

2 4 5 ditambah dengan beberapa huruf untuk memastikan setiap blok genap memiliki 3 huruf.

Untuk dekripsi, dibutuhkan invers matriks modulo 26 yang akan digunakan sebagai kunci dekripsi, dimana ‘PFO’ akan dikembalikan ke ‘ATT’. Jika matriks 3 x 3 disebut K, maka kunci dekripsinya adalah matriks 3 x 3 , K-1, yang adalah inverse matriks

K (Hill Cipher, 2014).

2.3. Algoritma Kriptografi Asimetris (Kunci Publik)

(5)

disebut kunci rahasia, tetapi untuk menghindari kerancuan dengan algoritma simetris, istilah tersebut tidak digunakan (Schneier, 1996).

Enkripsi menggunakan kunci publik K disimbolkan :

EK (M) = C

Walaupun kunci publik dan kunci privat berbeda, dekripsi dengan kunci privat yang cocok disimbolkan dengan :

DK (C) = M

Menurut Schneier (1996), terkadang, pesan akan dienkripsi dengan kunci privat dan didekripsi dengan kunci publik; ini digunakan pada tanda tangan digital. Walaupun kerancuan mungkin terjadi, operasi ini disimbolkan dengan:

EK (M) = C

DK (C) = M

Keterangan :

E = Fungsi enkripsi

D = Fungsi dekripsi

C = Cipherteks

M = Pesan (Message) atau plainteks

2.3.1. Algoritma Rivest-Shamir-Adleman (RSA)

(6)

Pembangkitan kunci algoritma RSA antara lain :

1. Pilih dua bilangan prima acak ukuran besar, p dan q. 2. Hitung modulus sistem n = p * q

3. Pilih kunci enkripsi e secara acak

Dimana 1 < e < ϕ(n), gcd (e, ϕ(n)) = 1(dimana ϕ(n) = (p – 1)(q – 1)) 4. Selesaikan rumus berikut untuk menentukan kunci dekripsi d

e * d = 1 (mod ϕ(n)) and 0 ≤ d ≤ n

5. Kemudian tiap pengguna memberikan kunci enkripsi publik : PU = {e, n} dan menyimpan kunci dekripsi : PR = {d, p, q}.

Jika m adalah pesan yang akan dikirim, maka rumus enkripsinya adalah :

• gunakan kunci publik PU = {e, n}

c = me (mod n), dimana 0 ≤ m ˂ n

dan untuk mendekripsi digunakan rumus :

• gunakan kunci privat PR = {d, p, q}.

m = cd(mod n).

Contoh :

Ruth membuat sistem kunci publiknya dengan pertama-tama memilih dua bilangan prima, p = 17 dan q = 11. Nilai n = 187 dan ϕ(n) = 16 * 10 = 160. Dia membutuhkan sebuah e dimana gcd(e, 160) = 1 dan memilih e = 7.

(7)

2.4. Landasan Matematika Kriptografi

2.4.1. Bilangan Prima

Bilangan prima adalah bilangan bulat positif yang lebih besar dari 1 yang hanya habis dibagi oleh 1 dan dirinya sendiri. Sebagai contoh, 23 adalah bilangan prima karena ia hanya habis dibagi oleh 1 dan 23. Karena bilangan prima harus lebih besar dari 1, maka barisan bilangan dimulai dari 2, yaitu 2, 3, 5, 7, 11, 13, dst. Seluruh bilangan prima adalah bilangan ganjil, kecuali 2 yang merupakan bilangan genap (Munir, 2007).

2.4.2. Pembagi Bilangan Terbesar (PBB)

Dua buah bilangan bulat dapat memiliki faktor pembagi yang sama. Misalkan a dan b

adalah dua buah bilangan bulat tidak nol. Pembagi bersama terbesar (PBB) dari a dan b

adalah bilangan bulat terbesar d sedemikian sehingga d|a dan d|b. Dalam hal ini kita nyatakan bahwa PBB (a,b) = d . Misalnya 45 memiliki faktor pembagi 1, 3, 5, 9, 15, dan 45 sendiri; sedangkan 36 memiliki faktor pembagi 1, 2, 3, 4, 9, 12, 18, dan 36 sendiri. Faktor pembagi bersama dari 45 dan 36 adalah 1, 3, 9, yang terbesar adalah 9 sehingga disimpulkan PBB(45, 36) = 9 (Munir, 2007). Dalam menentukan PBB perlu digunakan suatu algoritma yang lebih baik yaitu dengan algoritma Euclidean.

Menurut Munir (2007), langkah-langkah dalam algoritma Euclidean adalah sebagai berikut :

1. Jika n = 0 maka 2. m adalah PBB(m, n); 3. stop.

4. Bagilah m dengan n dan misalkan r adalah sisanya .

5. Ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang kembali ke langkah 1.

(8)

Contoh:

PBB dari 80 dan 12 dicari dengan algoritma Euclidean sebagai berikut:

m = 80, n = 12 dan dipenuhi syarat m ≥ n

Karena m = 12 ≠ 0, maka langkah instruksi 2 dikerjakan : 80 dibagi 12 memberikan hasil 6 dan sisa r = 8,

80 = 6 . 12 + 8

Kerjakan langkah instruksi 3:

m = 12, n = 8

Kembali ke langkah instruksi 1, karena n = 8 ≠ 0, maka langkah instruksi 2 dikerjakan: 12 dibagi 8 memberikan hasil 1 dan sisa r = 4,

12 = 1 . 8 + 4

Kerjakan langkah instruksi 3:

m = 8, n = 4

Kembali ke langkah instruksi 1, karena b = 4 ≠ 0, maka langkah instruksi 2 dikerjakan : 8 dibagi 4 memberikan hasil 2 dan sisa r = 0,

8 = 2 . 4 + 0

Kerjakan langkah instruksi 3:

m = 4, n = 0

(9)

Secara ringkas proses perhitungan dengan algoritma Euclidean di atas dinyatakn dalam runtunan pembagian berikut ini:

80 = 6 . 12 + 8 12 = 1 . 8 + 4

8 = 2 . 4 + 0

Sisa pembagian terakhir sebelum 0 adalah 4, maka PBB(80, 12) = 4 (Munir, 2007).

2.4.3. Relatif Prima

Dua buah bilangan bulat a dan b dikatakan relatif prima (relatively prime) jika PBB(a, b) = 1. Sebagai contoh : 20 dan 3 relatif prima sebab PBB (20, 3) = 1. Tetapi 20 dan 5 tidak relatif prima sebab PBB(20, 5) = 5 ≠ 1 (Munir, 2007).

Jika a dan b relatif prima, maka kita dapat menemukan bilangan bulat m dan n

sedemikian sehingga

ma + nb = 1

Contoh :

Bilangan 20 dan 3 adalah relatif prima karena PBB(20, 3) = 1, atau dapat ditulis 2 . 20 + (-13) . 3 = 1

Dengan m = 2 dan n = -13. Tetapi 20 dan 5 tidak relatif prima karena PBB(20, 5) = 5 ≠ 1 sehingga 20 dan 5 tidak dapat dinyatakan dalam m . 20 + n . 5 = 1 (Munir, 2007).

2.4.4. Aritmatika Modulo

(10)

dibagi 5 memberikan hasil = 4 dan sisa = 3, sehingga kita tulis 23 mod 5 = 3 (Munir, 2007).

Notasi : a mod m = r sedemikian sehingga a = mq + r , dengan 0 ≤ r ˂ m.

Bilangan m disebut modulus atau modulo, dan hasil aritmatika modulo m terletak di dalam himpunan {0, 1, 2, ..., m - 1 }.

Contoh:

Beberapa hasil operasi dengan operator modulo:

• 23 mod 5 = 3 (karena 23 dibagi 5 memberikan hasil (q) = 4 dan sisa (r) = 3, atau ditulis sebagai 23 = 5 . 4 + 3)

• 27 mod 3 = 0 ( 27 = 3 . 9 + 0)

• 6 mod 8 = 6 (6 = 8 . 0 + 6)

• 0 mod 12 = 12 (0 = 12 . 0 + 12)

• - 41 mod 9 = 4 ( - 41 = 9 (- 5) + 4)

• - 39 mod 13 = 0 (- 39 = 13 (- 3) + 0)

Penjelasan untuk (v): karena a negatif, bagi |a| dengan m mendapatkan sisa r’. Maka a mod m = m – r’ bila r’ ≠0. Jadi |- 41| mod 9 = 5, sehingga – 41 mod 9 = 9 – 5 = 4.

(11)

2.4.5. Lehmann Primality Test

Menurut Schneier (1996), berikut merupakan pengujian apakah p adalah prima: 1. Pilih sebuah bilangan acak a kurang dari p.

2. Hitung a(p-1)/2 mod p.

3. Jika a(p-1)/2 ≠ 1 atau -1 (mod p), maka p bukan bilangan prima.

4. Jika a(p-1)/2 = 1 atau -1 (mod p), maka kemungkinan p bukan prima lebih dari 50%.

Demikian sehingga, kemungkinan acak a sebagai witness pada bilangan p sebagai bilangan tidak prima. Ulangi pengujian t kali. Jika perhitungan menghasilkan 1 atau -1, tetapi tidak selalu menghasilkan 1, maka tingkat kesalahan kemungkinan p sebagai prima dengan (1/2)t.

Contoh :

Misal sebuah bilangan bulat positif p yang akan di uji adalah 37. Kemudian dipilih

a adalah 7. Hitung a(p-1)/2 mod p, dimana hasilnya adalah 1. Maka, p = 37 dianggap sebagai bilangan prima dengan kemungkinan kesalahan 50%.

2.4.6. Invers Modulo

Apabila suatu bilangan dikalikan dengan inversnya hasilnya adalah 1. Dari aritmatika dasar diketahui bahwa:

• Invers dari bilangan A adalah I / A dimana A * I / A = 1 Contoh: invers dari 5 adalah 1/5

• Semua bilangan riil lebih besar dari 0 memiliki invers

• Pengalian sebuah bilangan dengan invers dari A sama dengan pembagian dengan

A

(12)

Dalam aritmatika modulo tidak terdapat operasi pembagian. Tetapi terdapat invers modulo.

• Invers modulo dari A (mod C) adalah A-1

• (A * A-1) ≡ 1 (mod C) atau ekivalen dengan (A * A-1) mod C = 1

• Hanya bilangan yang relatif prima terhadap C (bilangan yang tidak memiliki faktor prima yang sama dengan C) memiliki invers modulo (mod C)

Metode biasa yang digunakan untuk menemukan invers modulo A (mod C) adalah: Langkah 1. Hitung A * B mod C untuk B nilainya 0 sampai (C – 1)

Langkah 2. Invers modulo dari A mod C adalah B dimana nilainya didapat dari A * B mod

C = 1

Perlu diketahui bahwa B mod C hanya akan mendapatkan nilai integer 0 sampai C – 1, jadi pengujian dengan nilai B yang lebih besar hanya akan membuat perulangan.

Contoh:

A = 3 , C = 7

Langkah 1. Hitung A * B mod C untuk B nilainya 0 sampai C - 1

3 * 0 ≡ 0 (mod 7) 3 * 1 ≡ 3 (mod 7) 3 * 2 ≡ 6 (mod 7) 3 * 3 ≡ 9 ≡ 2 (mod 7) 3 * 4 ≡ 12 ≡ 5 (mod 7)

3 * 5 ≡ 15 (mod 7) ≡ 1 (mod 7) invers ditemukan.

(13)

Langkah 2. Invers modulo dari A mod C adalah B dengan nilai yang membuat A * B mod

C = 1.

5 adalah invers modulo dari 3 mod 7 karena 5 * 3 mod 7 = 1 (Modular Inverse, 2014).

2.4.7. Euler Totient

Jika n ≥ 1 adalah integer. Maka dapat didefinisikan Fungis Euler Phi ϕ dengan ϕ (n) = jumlah bilangan bulat (integer) positif yang kurang dari n dan relatif prima dengan n.

Contoh :

ϕ (1) = 1, ϕ (2) = 1, ϕ (3) = 2, ϕ (4) = 2, ϕ (5) = 4, ϕ (6) = 2, ϕ (15) = 8

ϕ (15) = 8, artinya terdapat 8 bilangan bulat positif yang kurang dari 15 dan relatif prima dengan 15 yaitu 1, 2, 4, 7, 8, 11, 13, 14 (Sizemore, 2012).

Relatif prima atau koprima adalah himpunan bilangan dimana Faktor Pembagi Terbesar (GCD) adalah 1 (Turner, 2008).

2.5. Citra Digital

Citra digital adalah hasil potret elektronik yang diambil dari suatu pemandangan atau di

(14)

Gambar 2.1. Citra digital dalam piksel (Cornell University Library, 2003).

Nilai piksel : seperti ditunjukkan pada citra bitonal diatas, tipa piksel terdiri dari nilai tonal, contohnya 0 untuk hitam dan 1 untuk putih.

Format file pada citra digital terdiri dari bit – bit yang terdapat pada citra tersebut dan informasi header tentang bagaimana membaca dan meninterpretasi file tersebut. Format file dibedakan berdasarkan resolusi, kedalaman bit, warna yang dapat diproses, dan mendukung kompresi dan meta data (Cornell University Library, 2003).

2.5.1. Citra PNG (Portable Network Graphics)

(15)

2.6. Penelitian yang relevan

Adapun penelitian-penelitian yang relevan terhadap penelitian ini adalah :

1. Pada penelitian yang telah dilakukan oleh Bibhudendra Acharya dkk (2010) dengan judul “Image Encryption Using Advanced Hill cipher Algorithm” menyimpulkan bahwa matriks yang digunakan sebagai kunci pada Hill cipher

harus memiliki invers, jika tidak maka tidak dapat digunakan untuk mengenkripsi atau mendeskripsi teks atau gambar. Dalam jurnal ini matriks involuntary invertible di gunakan karena matriks dan inversnya memiliki bentuk yang sama sehingga waktu yang dibutuhkan untuk proses enkripsi dan dekripsi akan semakin cepat. Dalam penerapannya pada citra digital, matriks involuntary invertible

mampu mengenkripsi seluruh citra sedangkan matriks biasa tidak dapat mengenkripsi wilayah citra yang memiliki warna yang sama atau abu-abu.

2. Pada penelitian yang dilakukan oleh Arya Widyanarko (2007), dengan judul “Studi dan Analisis mengenai Hill cipher, Teknik Kriptanalisis dan Upaya Penanggulangannya” menyimpulkan bahwa matriks kunci Hill cipher harus merupakan matriks yang invertible. Hill cipher kuat dalam menghadapi

ciphertext-only attack namun lemah terhadap known-plaintext attack. Dalam jurnal ini penulis menggunakan Chaining Hill cipher yang dapat mempersulit pemecahan dengan teknik known-plaintext attack.

Gambar

Gambar 2.1. Citra digital dalam piksel (Cornell University Library, 2003).

Referensi

Dokumen terkait

Pengujian dilanjutkan pada proses dekripsi RSA dengan meng- input kunci publik n dan kunci privat d , serta ciphertext pada form ‟Dekripsi RSA‟ aplikasi Sistem

Teknik kriptografi ini menggunakan sebuah matriks persegi sebagai kunci yang.. digunakan untuk melakukan enkripsi dan dekripsi. Hill Cipher diciptakan oleh Lester S.

Sistem kriptografi kunci-publik (Public-key Cryptosystem), sering disebut algoritma asimetris (asymmetric cryptosystem), adalah algoritma di mana kunci yang digunakan

Berdasarkan kunci yang dipakai, algoritma kriptografi dibagi menjadi tiga, yaitu algoritma simetri (menggunakan satu kunci untuk enkripsi dan dekripsi), algoritma asimetri

Algoritma LUC merupakan kriptografi asimetri sehingga menggunakan dua kunci yang berbeda, yaitu kunci publik untuk enkripsi dan kunci privat digunakan untuk

Jika file yang berisi kunci tersebut bocor pada publik, maka enkripsi citra ini akan sia-sia karena dapat didekripsi dengan mudah.” Analisa hasil pengujian dilihat dari

4.3 Analisis Hasil Pengujian Analisa hasil pengujian dilihat dari perbandingan citra gambar sebelum dan sesudah dilakukan proses enkripsi dan dekripsi dengan menggunakan

Jika file yang berisi kunci tersebut bocor pada publik, maka enkripsi citra ini akan sia-sia karena dapat didekripsi dengan mudah.” Analisa hasil pengujian dilihat dari