BAB 2
TINJAUAN TEORETIS
2.1 Kriptografi
Kriptografi berasal dari bahasa Yunani, yaitu “cryptos” yang berarti rahasia dan “graphein” yang berarti tulisan. Jadi, kriptografi adalah tulisan rahasia. Namun, menurut Menezes dalam bukunya
yang berjudul ”Handbook of Applied
Cryptography”, menyatakan bahwa kriptografi merupakan suatu ilmu mengenai teknik matematis yang ditujukan pada aspek pengamanan data yang meliputi tingkat kepercayaan terhadap data tersebut, integritas data, otentikasi entitas data, otentifikasi terhadap keaslian data.[6] Sedangkan Rhee dalam bukunya berjudul ”Cryptography And Secure Communication”, mendefinisikan kriptografi sebagai suatu ilmu mengenai kriptosistem dimana privasi dan otentikasi dari data dapat dijamin.[11] Kurniawan dalam bukunya yang berjudul ”Kriptografi Keamanan Internet dan Jaringan Komunikasi”, menjelaskan bahwa kriptografi merupakan seni dan ilmu untuk menjaga keamanan pesan.[8]
2.1.1
Enkripsi dan Dekripsi
Pesan atau informasi yang dapat dibaca disebut sebagai plaintext. Plaintext dinyatakan dengan M (message) atau P (plaintext). Pesan dapat berupa aliran bit, file teks, gambar, audio, video dan sebagainya. Proses penyandian plaintext menjadi ciphertext disebut enkripsi (encryption) atau enciphering (standard nama menurut ISO 7498-2). Sedangkan proses mengembalikan ciphertext menjadi plaintext semula dinamakan dekripsi (decryption) atau deciphering (standard nama menurut ISO 7498-2). Secara matematis, proses umum enkripsi dijelaskan sebagai berikut:
Universitas Sumatera Utara
E (P) = C
Jadi, proses enkripsi E plaintext P akan menghasilkan ciphertext C. Sedangkan proses umum deskripsi adalah sebagai berikut:
D (C) = P
Proses dekripsi D ciphertext C, akan menghasilkan plaintext P. Proses umum yang terjadi pada kriptografi dapat dilihat pada Gambar 2.1.
Kunci Enkripsi
Plaintext
Enkripsi
Kunci Dekripsi
Ciphertext
Dekripsi
Plaintext
Gambar 2.1 Proses Umum dalam Kriptografi (Sumber : [ 10 ])
Pada Gambar 2.1 dilakukan proses enkripsi plaintext dengan menggunakan kunci enkripsi dan menghasilkan ciphertext. Kemudian dilakukan proses dekripsi ciphertext dengan menggunakan kunci dekripsi dan menghasilkan plaintext.
2.1.2
Sejarah dan Perkembangan Kriptografi
Kriptografi sudah lama digunakan oleh tentara Spartan di Yunani pada tahun 400SM. Mereka menggunakan alat yang disebut dengan Scytale. Scytale adalah alat yang terdiri dari sebuah pita panjang dari daun papyrus yang dililitkan pada batang silinder. Pesan yang akan dikirim ditulis secara horizontal pada pita panjang yang dililitkan pada batang silinder. Jika pita dilepaskan, maka huruf – huruf di dalamnya telah tersusun membentuk pesan rahasia. Untuk membaca pesan rahasia tersebut, si penerima pesan harus melilitkan kembali pita tersebut pada batang silinder yang
Universitas Sumatera Utara
memiliki diameter yang sama dengan batang silinder si pengirim. Bentuk Scytale dapat dilihat pada Gambar 2.2.[12]
Gambar 2.2 Bentuk Scytale (Sumber : [ 11])
2.1.3 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.
Universitas Sumatera Utara
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.
Pada penelitian ini hanya memenuhi tujuan kriptografi confidentiality.
2.2 Jenis-Jenis Algoritma Kriptografi
Terdapat 2 (dua) jenis algoritma kriptografi berdasarkan jenis kuncinya yaitu algoritma simetri (konvensional) dan algoritma asimetri atau kunci publik.
2.2.1 Algoritma Simetris
Algoritma simetris adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya. Algoritma ini juga
disebut dengan algoritma
konvensional, karena algoritma jenis ini biasa digunakan sejak berabad-abad yang lalu. Pada algoritma simetris, pengirim dan penerima pesan harus menyetujui suatu kunci tertentu sebelum mereka saling berkomunikasi. Keamanan algoritma simetris
Universitas Sumatera Utara
tergantung pada kunci yang digunakan. Apabila kunci diketahui orang lain, maka orang lain dapat mengenkripsi dan mendekripsi pesan. Maka dari itu, kunci harus tetap dirahasiakan. Hal ini mengharuskan pengirim untuk selalu memastikan bahwa jalur yang digunakan untuk pendistribusian kunci adalah jalur yang aman. Skema algoritma simetris dapat dilihat pada Gambar 2.3.
Kunci Plaintext
A
Plaintex
Ciphertext
Enkripsi
Dekripsi
B
Gambar 2.3 Skema Kriptografi Simetris (Sumber : [ 15 ])
Kriptografi yang termasuk algoritma kunci simetri adalah OTP, DES, RC2, RC4, RC5, RC6, Message Digest (MD), IDEA, Twofish, Magenta, FEAL, SAFER, LOKI, CAST, Rinjael (AES), Blowfish, GOST, AS, Kasumi, dan lain-lain.
2.2.2 Algoritma Asimetris
Algoritma asimetris merupakan algoritma kriptografi yang kunci enkripsi dan kunci dekripsinya berbeda. Algoritma asimetris disebut juga dengan algoritma kunci publik karena kunci enkripsi yang digunakan bersifat publik atau boleh diketahui semua orang. Pada algoritma ini, kunci yang digunakan untuk mengenkripsi pesan disebut dengan kunci publik. Sedangkan kunci yang digunakan untuk mendekripsi pesan disebut dengan kunci privat. Kunci privat bersifat rahasia atau tidak boleh diketahui orang lain. Kriptografi yang termasuk dalam algoritma asimetris adalah ECC, LUC, Rabin, RSA, EI Gamal dan DH. Skema kriptografi asimetris dapat dilihat pada Gambar 2.4.
Universitas Sumatera Utara
Kunci Publik Plaintext
Plaintex
Ciphertext
Enkripsi
A
Kunci Rahasia
Dekripsi
B
Gambar 2.4 Kriptografi Asimetris (Sumber : [ 15 ])
2.3 Diffie - Hellman
Pada tahun 1976 Whitfield Diffie dan Martin Hellman memperkenalkan metode pertukaran kunci. Metode ini dipakai untuk menyandikan pertukaran pesan antara pihak pengirim dan penerima pesan. Sehingga pengirim dan penerima pesan dapat bertukar kunci secara aman meskipun melalui saluran komunikasi yang tidak aman.[5]
Aturan matematika yang pakai dalam metode ini cukup sederhana. Pertamatama, tentukan bilangan prima n dan g dimana g adalah primitive mod n dan nilai bilangan prima n tidak perlu dirahasiakan. Misalkan A adalah pengirim pesan dan B adalah penerima pesan, maka algoritma pertukaran kunci Diffie–Hellman adalah sebagai berikut :
1. A memilih nilai integer x yang cukup besar dan mengirim : X = gx mod n. 2. B memilih nilai random y yang cukup besar dan mengirim : Y = gy mod n 3. A melakukan perhitungan : K = Yx mod n
Universitas Sumatera Utara
4. B melakukan perhitungan : K’ = Xy mod n Nilai k dan k’ adalah sama dan bersesuaian dengan nilai gxy mod n. Seorang yang dapat melakukan penyadapan informasi yang dikirim hanya akan mengetahui nilai n, g, X dan Y tetapi tidak mengetahui nilai k dan k’, kecuali penyadap dapat menghitung nilai logaritma diskritnya.Oleh karena itu, pemilihan nilai n dan g sangat berpengaruh pada tingkat keamanan. [2]
2.4 RSA (Rivest – Shamir – Adleman)
Algoritma RSA merupakan algoritma kunci publik yang dikembangkan oleh Ron Rivest, Adi Shamir, dan Leonard Adleman pada tahun 1977. Orang-orang tersebut adalah para ilmuwan yang berada di MIT (Massachuset Institute of Technology). RSA telah banyak digunakan di berbagai hal seperti di web browser yang dikembangkan oleh Microsoft dan Netscape. Konsep utama keamanan dari RSA adalah sulitnya pemfaktoran bilangan-bilangan besar menjadi faktor - faktor primanya.
Berikut proses enkripsi dan dekripsi pada algoritma RSA :
a. Pembangkitan kunci Langkah-langkah dalam pembangkitan kunci pada algoritma RSA adalah sebagai berikut : 1. Pilih 2 (dua) bilangan prima, p dan q. 2. Hitung n = p*q dengan n adalah pasangan dari kunci privat dan kunci publik yang akan digunakan. 3. Hitung φ (n) = (p – 1)(q – 1) dengan φ (n) adalah banyaknya bilangan yang lebih kecil dari n dan juga relatif prima terhadap n. 4. Pilih sebuah bilangan bulat e sebagai kunci publik dengan syarat e relatif prima terhadap φ (n) dan 1< e < φ (n). 5. Hitung kunci dekripsi d dengan persamaan :
Universitas Sumatera Utara
ed ≡ 1 (mod φ (n))
atau
d ≡ e-1 mod ( φ (n) )
Dari algoritma tersebut akan dihasilkan pasangan kunci publik (e, n) dan pasangan kunci privat (d, n).
b. Proses Enkripsi Pada algoritma RSA digunakan pasangan kunci publik (e, n) dalam proses enkripsi pesan. Berikut langkah – langkah proses enkripsi pesan pada algoritma RSA : 1. Nyatakan pesan menjadi blok-blok plaintext: m1, m2, m3, … dengan syarat 0 < mi < n – 1, dimana n adalah salah satu pasangan kunci publik dan mi adalah plaintext. 2. Hitung blok ciphertext ci untuk blok plaintext pi dengan persamaan : ci = mi*e mod n dengan e adalah kunci publik.
c. Proses Dekripsi Proses dekripsi dilakukan dengan menggunakan persamaan : mi = cid mod n dengan d adalah kunci privat.
2.5 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 algoritma 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. Karena
kesederhaan komputasinya inilah maka serangan terhadap algoritma ini pun lebih banyak, antara lain :
Universitas Sumatera Utara
a. Chosen-Ciphertext Attack Penyerang menentukan ciphertext untuk didekripsikan, sehingga mengetahui bentuk plaintext hasil dekripsi.[15]
b. Chosen-Plaintext Attack Kriptanalis dapat menentukan plaintext untuk dienkripsikan, yaitu plaintext plaintext yang lebih mengarahkan ke penemuan kunci.
Adapun proses enkripsi dan dekripsi pada algoritma Rabin Public Key, yaitu :
a. Proses Pembangkitan Kunci Pada algoritma Rabin Public Key, proses pembangkitan kuncinya dilakukan sebagai berikut :
1. 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
(1)
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.
b. 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 :
Universitas Sumatera Utara
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 :
k=
m − (m mod n) n
(2)
4. Hitung nilai ciphertext c dengan menggunakan rumus : c = m 2 mod n
(3)
dengan c adalah ciphertext, n adalah kunci publik, dan m adalah nilai desimal dari hasil penggandaan nilai biner plaintext.
c. Metode dekripsi 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:
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
(4)
2. Hitunglah nilai akar kuadrat dari ciphertext terhadap p dan q dengan rumus:
mp = c
mq = c
p +1 4
q +1 4
mod p
(5)
mod q
(6)
dengan m p adalah akar kuadrat dari ciphertext terhadap p dan mq adalah akar kuadrat dari ciphertext terhadap q.
Universitas Sumatera Utara
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
(7)
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
(8)
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.[12]
2.6 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
Universitas Sumatera Utara
2.7 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). [9]
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.8 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 :
Universitas Sumatera Utara
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)
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.[13]
Contoh : Apakah p = 49 adalah bilangan prima? 1. Pilihlah sembarang bilangan bulat positif a dengan syarat 1
2.9 Relatif Prima
Dua bilangan bulat a dan b dikatakan relatif prima jika GCD(a,b) = 1. Bilanganbilangan 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
Universitas Sumatera Utara
pairwise relatively prime. Dan 2 (dua) bilangan prima pasti adalah pairwise relatively prime. [13]
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.10 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 r0 dan r1 , dengan r0 ≥ r1, kemudian dihitung menggunakan algoritma pembagian : r0 = q1 * r1 + r2,
0 < r2 < r1
r1 = q 2 * r 2 + r3 ,
0 < r3 < r2
rn-2 = qn-1 * rn-1 + rn
0 < rn < rn-1
rn-1 = qn * rn
Universitas Sumatera Utara
Dari pernyataan tersebut, dapat diperoleh : GCD(r0 , r1) = GCD(r1 , r 2) = ……….. = GCD(rn -1,rn ) = GCD(r n,0) = rn
(10)
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.11 Extended Euclidean
Algoritma Extended Euclidean ini merupakan perluasan dari algoritma Euclide yang berfungsi untuk menentukan nilai x dan y sedemikian sehingga r0 *x + r1*y = GCD(r0,r1) dengan r0 , r1 merupakan bilangan bulat positif serta x dan y merupakan bilangan bulat. Dua bilangan bulat r0 dan r1 yang merupakan pairwise relatively prime dapat menemukan bilangan bulat x dan y sedemikian sehingga r0 *x + r1*y = 1. Dengan menggunakan algoritma Euclid dan rumus : tj = tj-2 - qj–1 * tj-1 , j ≥ 2 dengan tj adalah suatu barisan bilangan t1 , t2
(11)
,
t3 ,…, tn dan qj diperoleh dari
perhitungan GCD(r0 , r1 ) = 1 dengan r1-1 = tn. Sehingga diperoleh :
rn = tn*r1 atau 1 = tn*r1
(12)
Universitas Sumatera Utara
Contoh : 11x + 23y = 1
Hasil
Sisa
Subsitusi
Penggabungan
Bagi
Bagi
-
11
-
11 = 11*1 + 23*0
-
23
-
23 = 11*0 + 23*1
0
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
0
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.12 Chinese Remainder Theorem
Chinese Remainder Theorem (CRT) adalah suatu teorema untuk menyelesaikan permasalahan pada seluruh sistem persamaan jika diketahui faktorisasi prima dari n. Chinese Remainder Theorem ini ditemukan oleh matematikawan cina pada abad pertama, yang bernama Sun Tse. Jika ada suatu pertanyaan sebagai berikut: Tentukan sebuah bilangan bulat yang bila dibagi dengan 3 menyisakan 2, bila dibagi 4 menyisakan 3, dan bila dibagi 5 menyisakan 4.
Dengan menggunakan Chinese Remainder Theorem akan ditemukan penyelesaian dari pertanyaan tersebut. Misalkan m1 , m2, …, m n adalah bilangan bulat positif sedemikian sehingga PBB(mi, mj) = 1 untuk i ≠ j. Maka sistem dapat dihasilkan : x ≡ ak (mod mk)
(13)
mempunyai sebuah solusi unik modulo m = m1 x m2 x … x mn.
Universitas Sumatera Utara
Maka, pernyataan Sun Tse dapat dapat diselesaikan sebagai berikut : 1. Rumuskan pernyataan Sun Tse dengan rumus x ≡ ak (mod mk). x ≡ 2 (mod 3) x ≡ 3 (mod 4) x ≡ 4 (mod 5) 2. Hitung semua perkalian modulus. N = 3*4*5 = 60 3. Buat himpunan untuk masing – masing persamaan dari angka terkecil yang memenuhi sampai perkalian ketiga modulus. x1 = {2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59} x2 = {3,7,11,15,19,23,27,31,35,39,43,47,51,55,59} x3 = {4,9,14,19,24,29,34,39,44,49,54,59} 4. Iriskan ketiganya untuk mendapat nilai x. x = x1 ⋂ x2 ⋂ x3 = 59
5. Hitung interval LCM (The Least Common Multiple) dari ketiga modulus.[3] LCM(3,4,5) = 60 , sehingga x memenuhi akan berulang setiap interval 60 angka, yaitu x = {…,59,119,179,…}
2.13 Steganografi
Kata steganografi berasal dari bahasa Yunani, yaitu dari kata “steganos” (tersembunyi atau terselubung) dan “graphien” (tulisan) yang berarti tulisan tersembunyi. Secara umum steganografi merupakan seni atau ilmu yang digunakan untuk menyembunyikan pesan rahasia dengan segala cara sehingga selain orang yang dituju, orang lain tidak akan menyadari keberadaan dari pesan rahasia tersebut.
Terdapat beberapa istilah yang berkaitan dengan steganografi antara lain. 1. Hiddentext
atau
hidden
object
merupakan
informasi
yang
akan
disembunyikan. 2. Covertext atau cover object, merupakan media penampung pesan. 3. Stegotext atau stego object, media yang sudah disisipkan pesan. 4. Stegokey, merupakan kunci untuk menyisipkan pesan atau membaca pesan.
Universitas Sumatera Utara
Penyisipan pesan ke dalam media cover object dinamakan embedding, sedangkan pemisahan pesan dari stego object dinamakan extraction. Kedua proses ini memerlukan kunci (stegokey) agar hanya pihak yang berhak saja yang dapat melakukan penyisipan dan pemisahan pesan. Untuk lebih jelasnya tentang proses steganografi dapat dilihat pada Gambar 2.5.
covertext
covertext
Embedding
Extraction
hiddentext
hiddentext
stegotex
key
key
Gambar 2.5 Proses Steganografi (Sumber : [1])
Proses steganografi sedikit atau banyak akan mengubah kualitas dari media tersebut. Untuk hasil steganografi dapat dikatakan baik cukup dengan memenuhi 3 (tiga) kriteria, yaitu : a. Imperceptibility Keberadaan pesan tidak diketahui oleh indera manusia. b. Fidelity Kualitas dari media penampung tidak berubah banyak setelah dilakukan proses penyisipan sehingga orang akan sulit mengetahui bahwa sebenarnya didalamnya terdapat pesan. c. Recovery Pesan yang disisipkan harus dapat diungkapkan kembali, karena tujuan dari steganografi adalah hanya untuk menyembunyikan data. [1]
Metode End of File (EOF) merupakan salah satu metode yang digunakan dalam steganografi. Teknik ini menggunakan cara dengan menyisipkan data pada akhir file. Sehingga, tidak akan mengganggu kualitas data awal yang akan disisipkan
Universitas Sumatera Utara
pesan. Namun, ukuran file setelah disisipkan pesan rahasia akan bertambah. Sebab, ukuran file yang telah disisipkan pesan rahasia sama dengan ukuran file sebelum disisipkan pesan rahasia ditambah dengan ukuran pesan rahasia yang disisipkan. Untuk mengenal data yang disisipkan pada akhir file, diperlukan suatu tanda pengenal atau simbol pada awal dan akhir data yang akan disisipkan. Contoh hasil penyisipan pesan rahasia dengan menggunakan metode End of File dapat dilihat pada Gambar 2.6.
(a)
(b)
Gambar 2.6 Sebelum dan Sesudah Penyisipan Pesan dengan Menggunakan Metode End of File
Pada Gambar 2.6 tidak terjadi perubahan kualitas citra setelah disisipkan pesan rahasia. Namun, terdapat penambahan garis – garis pada bagian bawah Gambar 2.7 (b) yang merupakan pesan rahasia yang disisipkan.[7]
2.14 File Bitmap
File bitmap merupakan format file citra yang tidak mengalami proses kompresi sehingga kualitas gambar yang dihasilkan baik daripada file citra dengan format lain. Pada file bitmap, nilai intensitas pixel dalam citra dipetakan ke dalam sejumlah bit tertentu yang umumnya panjang setiap pixel adalah 8 bit. Delapan bit ini 8
merepresentasikan nilai intensitas pixel. Dengan demikian ada sebanyak 2 = 256 derajat keabuan, mulai dari 0 sampai 255.
Universitas Sumatera Utara
File bitmap terdiri dari header berkas, header bitmap dan data bitmap, informasi palet warna dan data bitmap. Header merupakan data yang terdapat pada bagian awal file citra. Data dalam header berguna untuk mengetahui bagaimana citra dalam format bitmap dikodekan dan disimpan. Data dalam header dapat berisi informasi panjang citra, lebar citra, kedalaman warna citra, dan sebagainya. Setelah header, akan ditemukan informasi palet warna yang terdapat pada file citra yang dinyatakan dalam tabel RGB (Red Green Blue). Kemudian, data bitmap diletakan sesudah informasi palet. Penyimpanan data bitmap di dalam berkas disusun terbalik dari bawah keatas dalam bentuk matriks yang berukuran height x width. Baris ke-0 pada matriks data bitmap menyatakan data pixel di citra baris terbawah, sedangkan baris terakhir pada matriks menyatakan data pixel di citra baris teratas.[4]
Pada file bitmap citra plaintext yang dienkripsi adalah data bitmap yang merupakan nilai intensitas citra. Nilai intensitas citra adalah representasi citra pada domain spatial yaitu nilai warna yang dapat dilihat oleh indra penglihatan manusia. Nilai intensitas citra pada data bitmap terdiri dari bilangan biner. Untuk citra true color jumlah bit per pixel sebanyak 24 bit yang terdiri dari nilai red, green dan blue (RGB). Untuk mendapatkan nilai RGB setiap pixel dilakukan dengan membaca nilai pixel dan mengkonversikan dari nilai biner ke nilai desimal.[14]
Universitas Sumatera Utara