BAB 2 TINJAUAN TEORETIS

dokumen-dokumen yang mirip
BAB II TINJAUAN PUSTAKA

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI. Universitas Sumatera Utara

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI. 2.1 Kriptografi

BAB 2 LANDASAN TEORI

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

BAB I PENDAHULUAN. diperhatikan, yaitu : kerahasiaan, integritas data, autentikasi dan non repudiasi.

IMPLEMENTASI KRIPTOGRAFI DAN STEGANOGRAFI DENGAN MENGGUNAKAN ALGORITMA RSA DAN MEMAKAI METODE LSB

BAB 2 LANDASAN TEORI. Berikut ini akan dijelaskan pengertian, tujuan dan jenis kriptografi.

BAB II TINJAUAN PUSTAKA

Aplikasi Teori Bilangan dalam Algoritma Kriptografi

BAB II LANDASAN TEORI. yang mendasari pembahasan pada bab-bab berikutnya. Beberapa definisi yang

I. PENDAHULUAN. Key Words Tanda Tangan Digital, , Steganografi, SHA1, RSA

Bab 2: Kriptografi. Landasan Matematika. Fungsi

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB 2 TINJAUAN PUSTAKA

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

Oleh: Benfano Soewito Faculty member Graduate Program Universitas Bina Nusantara

BAB II TINJAUAN PUSTAKA

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 2 LANDASAN TEORI

BAB II TINJAUAN PUSTAKA

IMPLEMENTASI KRIPTOGRAFI DAN STEGANOGRAFI MENGGUNAKAN ALGORITMA RSA DAN METODE LSB

BAB II LANDASAN TEORI

BAB 1 PENDAHULUAN. 1.1 Latar Belakang. Seiring perkembangan teknologi, berbagai macam dokumen kini tidak lagi dalam

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Berikut ini akan dijelaskan sejarah, pengertian, tujuan, dan jenis kriptografi.

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB II LANDASAN TEORI

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

Berikut adalah istilah-istilah yang digunakan dalam bidang kriptografi(arjana, et al. 2012):

BAB II LANDASAN TEORI

MODUL PERKULIAHAN EDISI 1 MATEMATIKA DISKRIT

BAB 2 TINJAUAN PUSTAKA

Modifikasi Algoritma RSA dengan Chinese Reamainder Theorem dan Hensel Lifting

BAB 1 PENDAHULUAN Latar belakang

PERANAN ARITMETIKA MODULO DAN BILANGAN PRIMA PADA ALGORITMA KRIPTOGRAFI RSA (Rivest-Shamir-Adleman)

Perhitungan dan Implementasi Algoritma RSA pada PHP

BAB 2 TINJAUAN TEORETIS

Teori Bilangan (Number Theory)

BAB II DASAR TEORI. membahas tentang penerapan skema tanda tangan Schnorr pada pembuatan tanda

ALGORITMA ELGAMAL DALAM PENGAMANAN PESAN RAHASIA

BAB III ANALISIS DAN PERANCANGAN

IMPLEMENTASI SISTEM KEAMANAN DATA DENGAN MENGGUNAKAN TEKNIK STEGANOGRAFI END OF FILE (EOF) DAN RABIN PUBLIC KEY CRYPTOSYSTEM SKRIPSI

Perbandingan Sistem Kriptografi Kunci Publik RSA dan ECC

BAB 2 LANDASAN TEORI. 2.1 Kriptografi

BAB II TINJAUAN PUSTAKA. Kriptografi (cryptography) berasal dari Bahasa Yunani: cryptós artinya

Penerapan algoritma RSA dan Rabin dalam Digital Signature


Studi dan Implementasi Sistem Kriptografi Rabin

BAB 2 LANDASAN TEORI

BAB Kriptografi

BAB 2 LANDASAN TEORI Keamanan Informasi

Pengantar Kriptografi

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

R. Rosnawati Jurusan Pendidikan Matematika FMIPA UNY

BAB 2 LANDASAN TEORI Kriptografi

BAB 1 PENDAHULUAN. dalam bahasa sandi (ciphertext) disebut sebagai enkripsi (encryption). Sedangkan

Pengenalan Kriptografi

Perbandingan Algoritma Kunci Nirsimetris ElGammal dan RSA pada Citra Berwarna

Penerapan Matriks dalam Kriptografi Hill Cipher

PENGAMANAN FILE TEKS DENGAN ALGORITMA KRIPTOGRAFI KUNCI PUBLIK RABIN DAN ALGORITMA STEGANOGRAFI FIRST OF FILE DAN END OF FILE SKRIPSI

Penerapan Metode End Of File Pada Steganografi Citra Gambar dengan Memanfaatkan Algoritma Affine Cipher sebagai Keamanan Pesan

Kongruen Lanjar dan Berbagai Aplikasi dari Kongruen Lanjar

BAB 2 LANDASAN TEORI

DASAR-DASAR KEAMANAN SISTEM INFORMASI Kriptografi, Steganografi. Gentisya Tri Mardiani, S.Kom.,M.Kom

KEAMANAN DATA DENGAN METODE KRIPTOGRAFI KUNCI PUBLIK

BAB II TINJAUAN PUSTAKA. Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan (message).

Reference. William Stallings Cryptography and Network Security : Principles and Practie 6 th Edition (2014)

PENGAMANAN DOKUMEN MENGGUNAKAN METODE RSA (RIVEST SHAMIR ADLEMAN)BERBASIS WEB

BAB II TINJAUAN PUSTAKA

BAB 1 PENDAHULUAN Latar Belakang

BAB II LANDASAN TEORI

BAB II BAB II TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB 3 KRIPTOGRAFI RSA

ENKRIPSI AFFINE CIPHER UNTUK STEGANOGRAFI PADA ANIMASI CITRA GIF

BAB II TINJAUAN PUSTAKA

PENGGUNAAN KRIPTOGRAFI DAN STEGANOGRAFI BERDASARKAN KEBUTUHAN DAN KARAKTERISTIK KEDUANYA

BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN 1.1. Latar Belakang

BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN 1.1 Latar Belakang

Simulasi Pengamanan File Teks Menggunakan Algoritma Massey-Omura 1 Muhammad Reza, 1 Muhammad Andri Budiman, 1 Dedy Arisandi

DASAR-DASAR KEAMANAN SISTEM INFORMASI Kriptografi, Steganografi. Gentisya Tri Mardiani, S.Kom

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

BAB II TINJAUAN PUSTAKA

BAB I PENDAHULUAN. melalui ringkasan pemahaman penyusun terhadap persoalan yang dibahas. Hal-hal

BAB III ANALISIS DAN DESAIN SISTEM

BAB III KUNCI PUBLIK

Transkripsi:

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:

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 Kunci Dekripsi Plaintext Enkripsi 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

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.

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

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 Ciphertext Plaintex A 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.

Kunci Publik Kunci Rahasia Plaintext Ciphertext Plaintex A Enkripsi 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 = g x mod n. 2. B memilih nilai random y yang cukup besar dan mengirim : Y = g y mod n 3. A melakukan perhitungan : K = Y x mod n

4. B melakukan perhitungan : K = X y mod n Nilai k dan k adalah sama dan bersesuaian dengan nilai g xy 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 :

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: m 1, m 2, m 3, dengan syarat 0 < m i < n 1, dimana n adalah salah satu pasangan kunci publik dan m i adalah plaintext. 2. Hitung blok ciphertext c i untuk blok plaintext pi dengan persamaan : c i = m i *e mod n dengan e adalah kunci publik. c. Proses Dekripsi Proses dekripsi dilakukan dengan menggunakan persamaan : m i = c d i 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 :

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 :

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 : m ( m mod n) k = (2) n 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: m m p q p+ 1 4 = c mod p (5) q+ 1 4 = c mod q (6) dengan m p adalah akar kuadrat dari ciphertext terhadap p dan m q adalah akar kuadrat dari ciphertext terhadap q.

3. Hitung nilai r, s, t dan u dengan menggunakan Chinese Remainder Theorem, dengan persamaan berikut : r = (Yp*p* m q + Yq * q* m p ) mod n s = (Yp*p* m q - Yq * q* m p ) mod n t = ( -Yp*p* m q + Yq * q* m p ) mod n u = ( -Yp*p* m q - Yq * q* m p ) 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

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 :

Jika p adalah bilangan prima dan a adalah bilangan bulat yang tidak habis dibagi dengan p, yaitu GCD(a,p) = 1, maka : a p-1 1 (mod p) Teorema Fermat ini memiliki kelemahan yaitu terdapat bilangan bulat bukan prima p sedemikian sehingga a p 1 1 (mod p). Bilangan bulat p seperti itu disebut bilangan prima semu (pseudoprimes). Bilangan bulat a yang menyebabkan a p 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<a<p. 2. Hitung a p-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. 3 48 mod 49 = 43 6 48 mod 49 = 8 Karena a p-1 mod p 1, maka bilangan bulat p = 49 bukan bilangan prima. 2.9 Relatif Prima Dua bilangan bulat a dan b dikatakan relatif prima jika GCD(a,b) = 1. Bilanganbilangan a 1, a 2,, a n adalah relatif prima berpasangan (pairwise relatively prime) jika GCD(a i, a j ) = 1 untuk 1 i < j n. Dengan demikian, sekumpulan bilangan bisa ditunjukkan apakah relatif prima atau tidak dengan mengevaluasi GCD dari semua pasangan bilangan yang mungkin. Jika GCD pasangan-pasangan tersebut semuanya bernilai 1, maka syarat pairwise relatively prime dipenuhi. Sebaliknya, jika salah satu GCD dari pasangan bilangan tersebut tidak sama dengan 1, maka kumpulan bilangan tersebut bukan

pairwise relatively prime. Dan 2 (dua) bilangan prima pasti adalah pairwise relatively prime. [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 r 0 dan r 1, dengan r 0 r 1, kemudian dihitung menggunakan algoritma pembagian : r 0 = q 1 * r 1 + r 2, 0 < r 2 < r 1 r 1 = q 2 * r 2 + r 3, 0 < r 3 < r 2 r n-2 = q n-1 * r n-1 + r n 0 < r n < r n-1 r n-1 = q n * r n

Dari pernyataan tersebut, dapat diperoleh : GCD(r 0, r 1 ) = GCD(r 1, r 2 ) =.. = GCD(r n - 1,r n ) = GCD(r n,0) = r n (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 r 0 *x + r 1 *y = GCD(r 0,r 1 ) dengan r 0, r 1 merupakan bilangan bulat positif serta x dan y merupakan bilangan bulat. Dua bilangan bulat r 0 dan r 1 yang merupakan pairwise relatively prime dapat menemukan bilangan bulat x dan y sedemikian sehingga r 0 *x + r 1 *y = 1. Dengan menggunakan algoritma Euclid dan rumus : tj = t j-2 - q j 1 * t j-1, j 2 (11) dengan t j adalah suatu barisan bilangan t 1, t 2, t 3,, t n dan q j diperoleh dari perhitungan GCD(r 0, r 1 ) = 1 dengan r 1-1 = t n. Sehingga diperoleh : r n = t n *r 1 atau 1 = t n *r 1 (12)

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 m 1, m 2,, m n adalah bilangan bulat positif sedemikian sehingga PBB(m i, m j ) = 1 untuk i j. Maka sistem dapat dihasilkan : x a k (mod m k ) (13) mempunyai sebuah solusi unik modulo m = m 1 x m 2 x x m n.

Maka, pernyataan Sun Tse dapat dapat diselesaikan sebagai berikut : 1. Rumuskan pernyataan Sun Tse dengan rumus x a k (mod m k ). 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. x 1 = {2,5,8,11,14,17,20,23,26,29,32,35,38,41,44,47,50,53,56,59} x 2 = {3,7,11,15,19,23,27,31,35,39,43,47,51,55,59} x 3 = {4,9,14,19,24,29,34,39,44,49,54,59} 4. Iriskan ketiganya untuk mendapat nilai x. x = x 1 x 2 x 3 = 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.

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 hiddentext Embedding stegotex Extraction hiddentext 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

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 merepresentasikan nilai intensitas pixel. Dengan demikian ada sebanyak 2 8 = 256 derajat keabuan, mulai dari 0 sampai 255.

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]