BAB 2 LANDASAN TEORI
2.1
Kriptografi
2.1.1 Definisi Kriptografi
Kriptografi berasal dari bahasa Yunani, crypto dan graphia. Crypto berarti secret (rahasia) dan graphia berarti writing (tulisan)[10].
Beberapa definisi Kriptografi yaitu, Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan (Cryptography is the art and science of keeping message secure). Sebagai pembanding, terdapat juga definisi kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan, integritas data, serta otentikasi[12].
Kriptografi adalah ilmu mengenai teknik enkripsi dimana data diacak menggunakan kunci enkripsi menjadi sesuatu yang sulit dibaca oleh seseorang yang tidak memiliki kunci dekripsi[11].
2.1.2 Enkripsi dan Dekripsi
Enkripsi (encryption) adalah proses yang dilakukan untuk mengamankan sebuah pesan (disebut plaintext) menjadi pesan yang tersembunyi (disebut ciphertext). Ciphertext adalah pesan yang sudah tidak dapat dibaca dengan mudah.
Universitas Sumatera Utara
Proses sebaliknya, untuk mengubah ciphertext menjadi plaintext, disebut dekripsi (decryption)[14].
Enkripsi, dekripsi dan kunci tersebut diatas merupakan dasar penting dari algoritma kriptografi. Algoritma kriptografi disebut juga cipher yaitu fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Konsep matematis yang mendasari algoritma kriptografi dapat dimisalkan P menyatakan plainteks dan C menyatakan chiperteks, maka fungsi enkripsi E memetakan P ke C, E(P) = C
………………………………….
(2.1)
Dan fungsi dekripsi D memetakan C ke P, D(C) = P
………………………………….
(2.2)
Pada Gambar 2.1 menjelaskan lebih lengkap tentang proses enkripsi-dekripsi dalam kriptografi. Kunci
Kunci
Plainteks
Enkripsi
Cipherteks
Dekripsi
Plainteks
Gambar 2.1 Proses Enkripsi Dekripsi[12]
2.1.3 Sejarah Kriptografi
Kriptografi mempunyai sejarah yang panjang, sebagian besar merupakan sejarah kriptografi klasik, yaitu metode enkripsi yang menggunakan kertas dan pensil atau mungkin dengan bantuan alat mekanik sederhana[12].
Sejarah kriptografi klasik mencatat penggunaan cipher transposisi oleh tentara Sparta di Yunani permulaan tahun 400 SM. Mereka menggunakan alat yang bernama scytale (Gambar 2.2a). Scytale terdiri dari sebuah kertas panjang dan daun papyrus yang dililitkan pada sebuah silinder dari diameter tertentu. Pesan ditulis secara
Universitas Sumatera Utara
horizontal, baris per baris (Gambar 2.2b). Bila pita dilepaskan, maka huruf-huruf di dalamnya menjadi tersusun acak membentuk pesan rahasia. Untuk membaca pesan, penerima pesan harus melilitkan kembali kertas tersebut ke silinder yang sama[12].
(a)
(b)
Gambar 2.2. (a) Sebuah scytale; (b) Pesan ditulis secara horizontal, baris per baris[12]
2.1.4 Jenis Algoritma Kriptografi
Algoritma kriptografi berdasarkan jenis kunci yang digunakan dapat dibedakan menjadi dua jenis, yaitu sebagai berikut[6] : 1. Algoritma Simetris Dalam algoritma simetris, kunci yang digunakan untuk proses enkripsi dan dekripsi sama (Gambar 2.3). Istilah lain dari kriptografi ini adalah kriptografi kunci privat (private-key cryptography), kriptografi kunci rahasia (secret-key cryptography), atau kriptografi konvensional (conventional cryptography). Dalam kriptografi kunci simetri dapat diasumsikan bahwa si penerima dan pengirim pesan telah terlebih dahulu bertukar kunci sebelum pesan dikirim. Keamanan dari sistem ini terletak pada kerahasiaan kuncinya. Semua kriptografi klasik menggunakan sistem kunci simetri ini, dan ada beberapa algoritma kriptografi modern yang juga menggunakan sistem kunci simetri seperti DES (Data Encryption Stamdard), Triple-DES, dan One Time Pad.
Universitas Sumatera Utara
Gambar 2.3 Skema kriptografi simetri [12]
2. Algoritma Asimetri Berbeda dengan algoritma kunci simetris, kriptografi algoritma asimetris mempunyai dua kunci yang berbeda pada proses enkripsi dan dekripsinya (Gambar 2.4). Nama lain dari algoritma ini adalah kriptografi kunci publik (public key cryptography). Kunci enkripsi pada kriptografi ini tidak bersifat rahasia (publik), sedangkan kunci untuk dekripsi bersifat rahasia (privat). Algoritma kriptografi yang asimetris
seperti algoritma RSA, ElGamal,
Massey-Omura dll.
Gambar 2.4 Skema Kriptografi Asimetri [12]
2.1.5 Tujuan Kriptografi
Adapun empat tujuan mendasar dari kriptografi adalah[12]: 1. Confidentiality, adalah layanan yang ditujukan untuk menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak. 2. Data integrity, adalah layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriman. 3. Authentication, adalah layanan yang berhubungan dengan identifikasi, baik mengidentifikasi
kebenaran
pihak-pihak
yang
berkomunikasi
(user
authentication or entity authentication) maupun mengidentifikasi kebenaran sumber pesan (data origin authentication).
Universitas Sumatera Utara
4. Non-repudiation, adalah layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan.
2.2
Three-Pass Protocol
Dalam kriptografi, Three-Pass Protocol dalam pengiriman pesan merupakan suatu kerangka kerja yang memungkinkan satu pihak untuk aman mengirim pesan ke pihak kedua tanpa perlu untuk bertukar atau mendistribusikan kunci enkripsi.
Disebut
dengan Three-Pass Protocol karena pengirim dan penerima pesan melakukan pertukaran sebanyak tiga tahap untuk mengenkripsi pesan tersebut. Three-Pass Protocol pertama kali dikembangkan oleh Adi Shamir pada sekitar tahun 1980. Konsep dasar Three-Pass Protocol adalah bahwa masing-masing pihak memiliki kunci enkripsi pribadi dan sebuah kunci dekripsi pribadi. Kedua belah pihak menggunakan kunci mereka masing-masing untuk mengenkripsi pesan dan kemudian untuk mendekripsi pesan[5].
Gambar 2.5 Skema Three-Pass Protocol
Cara kerja skema Three-Pass Protocol [5]: 1.
Pengirim (Alice) memilih sebuah kunci sandi pribadi s dan kunci dekripsi t. Pengirim pesan mengenkripsi pesan m dengan kunci s dan mengirimkan pesan terenkripsi E(s, m) untuk penerima (Bob) .
2.
Penerima memilih sebuah kunci pribadi r dan kunci dekripsi q dan mengenkripsi pesan pertama E(s,m) dengan kunci r lalu, mengirimkan kembali kunci enkripsi ganda E(r, E(s,m)) kepada pengirim (Alice) .
Universitas Sumatera Utara
3.
Pengirim (Alice) mendekripsi pesan kedua dengan kunci t. Karena dari sifat komutatif dimana D(t, E(r, E(s,m))) = E(r,m) merupakan pesan yang dienkripsi dengan hanya menggunakan private key penerima (Bob). Lalu pengirim mengirimkan pesan tersebut kepada penerima (Bob) dan di dekripsi dengan D(q, E(r,m)) = m yaitu sebagai pesan asli.
2.3
Aritmatika Modulo
Aritmatika modulo sangat berperan dalam kriptografi karena banyak digunakan dalam algoritma enkripsi, baik untuk enkripsi simetris maupun untuk public key cryptography.[11]
Misalkan a adalah bilangan bulat dan m adalah bilangan bulat > 0. Operasi a mod m memberikan sisa jika a dibagi dengan m. Bilangan m disebut modulo, dan hasil aritmatika modulo m terletak di dalam himpunan {0,1,2,…,m-1}. Sehingga dinotasikan [12] : a mod m = r sedemikian sehingga a = mq + r, dengan 0 ≤ r < m. Contoh: 23 mod 5 = 3 (23 = 5 x 4 + 3)
2.4
Greatest Common Divisor (GCD)
Greatest Common Divisor (GCD) disebut juga Pembagi Bersama Terbesar (PBB). Misalkan a dan b adalah dua buah bilangan bulat tidak nol. Maka GCD dari a dan b adalah bilangan bulat terbesar d sedemikian sehingga d | a dan d | b. Dalam hal ini kita nyatakan bahwa GCD(a,b) = d [12].
Contoh : Faktor pembagi 45: 1,3,5,9,15,45 Faktor pembagi 36: 1,2,3,4,9,12,18,36 Faktor pembagi bersama dari 45 dan 36 adalah 1,3,9 Sehingga GCD(45,36) = 9
Universitas Sumatera Utara
2.5
Algoritma Euclidean
Algoritma Euclidean adalah algoritma untuk mencari Pembagi Bersama Terbesar (PBB atau GCD) dari dua buah bilangan bulat. Euclid, penemu algoritma Euclidean, adalah seorang matematikawan Yunani yang menuliskan algoritmanya tersebut dalam bukunya yang terkenal, Element [12]. Diberikan dua buah bilangan bulat tak-negatif m dan n ( m ≥ n ). Algoritma Euclidean berikut mencari pembagi bersama terbesar dari m dan n[12].
Algoritma Euclidean[12]: 1.
Jika n = 0 maka m adalah PBB (m,n); stop. Kalau tidak (yaitu n ≠ 0) lanjutkan ke langkah 2.
2.
Bagilah m dengan n dan misalkan r adalah sisanya
3.
Ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang kembali ke langkah 1.
Contoh: Misalkan m = 88 , n = 36 dan dipenuhi syarat ( m ≥ n ), maka PBB(88,36) dihitung dengan cara sebagai berikut: 88 mod 36 = 16 36 mod 16 = 4 16 mod 4 = 0 (STOP) Sisa pembagian terakhir sebelum 0 adalah 4, maka PBB (88,36) = 4
2.6
Relatif Prima
Dua buah bilangan bulat a dan b dikatakan relatif prima jika GCD(a,b) = 1. Jika a dan b relatif prima, maka terdapat bilangan bulat m dan n sedemikian sehingga[12] ma + nb = 1
………………………………….
(2.3)
Contoh: 20 dan 3 relatif prima karena GCD(20,3) = 1, dengan m = 2 dan n = -13. Maka dapat ditulis 2 x 20 + (-13) x 3 = 1
Universitas Sumatera Utara
2.7
Inversi Modulo
Jika a dan m relatif prima dan m > 1, maka dapat diketahui inversi dari a modulo m. Inversi dari a (mod m), disebut juga inversi perkalian, adalah bilangan bulat 𝑎−1
sedemikian sehingga[12]. 𝑎𝑎−1
≡ 1 (mod 𝑚)
………………………………….
(2.4)
Contoh :
Berapa inversi modulo dari 5 (mod 12) ? Diketahui m = 5 , n = 12
Tabel 2.1 Proses Perhitungan Invers Modulo 𝑚−1 x 𝑚(𝑚𝑜𝑑 𝑛)
𝑚−1
1
1 x 5 (mod 12) = 5
2
2 x 5 (mod 12) = 10
3
3 x 5 (mod 12) = 3
4
4 x 5 (mod 12) = 8
5
5 x 5 (mod 12) = 1
Maka invers modulo dari 5 (mod 12) adalah 𝑚−1 = 5 2.8
Fermat’s Little Theorem
Pierre De Fermat lahir di Beaumont-de-Lomagne, Tarn-et-Garonne, Prancis. Ia memberikan banyak sekali kontribusi pada ilmu teori bilangan. Salah satu teoremanya yang terkenal adalah Fermat’s Little Theorem. Teorema ini pertama kali dinyatakannya pada sebuah surat untuk temannya, Frencle de Bessy, pada tanggal 18 Oktober 1640 [3]. Secara formal, Fermat’s Little Theorem ini dapat ditulis[3]: Misalkan a suatu bilangan bulat positif dan p suatu bilangan prima, maka Untuk 𝐺𝐶𝐷 (𝑎,𝑝) = 1, berlaku 𝑎𝑝−1 ≡ 1 (𝑚𝑜𝑑 𝑝)
………………………………….
(2.5)
Universitas Sumatera Utara
Contoh, kalkulasikan 258 (mod 19). Karena 19 adalah bilangan prima dan 2 tidak dapat dibagi 19, maka teorema ini dapat digunakan untuk mengkalkulasi 218 ≡ 219−1 (mod 19) ≡ 1 (mod 19)
Jadi 258 = (218 )3 x (24 ) ≡ 13 x 24 ≡ 16 (mod 19) Meskipun dapat digunakan untuk mempermudah kalkulasi, dalam kriptografi, peran terpenting dari Fermat's little theorem adalah sebagai dasar dari berbagai teknik enkripsi asimetris[11].
2.9
Algoritma Massey-Omura
Massey-Omura Cryptosystem adalah salah satu cryptosystem kunci publik yang berdasarkan pada logaritma diskrit. Diusulkan oleh James Massey dan Jim K. Omura pada tahun 1982 sebagai pengembangan atas Three Pass Protocol oleh Shamir pada tahun 1980, dimana pengirim dan penerima tidak bertukar kunci namun protocol ini memerlukan pengirim dan penerima yang memiliki dua kunci untuk mengenkripsi dan mendekripsi pesan[16].
Berikut cara kerja dari Algoritma Massey-Omura[5]: a.
Semua pengguna telah mensepakati sebuah bilangan prima p berdasarkan Fermat’s Little Theorem.
b.
Setiap pengguna secara rahasia memilih acak bilangan bulat e antara 0 hingga p–1 berdasarkan GCD (e, p–1) = 1, dan menghitung d = 𝑒 −1 mod (p–1)
………………………………….
(2.6)
dengan menggunakan algoritma Euclidean GCD. c.
Alice ingin mengirim pesan M yang aman untuk Bob, kemudian mereka ikuti prosedur berikut : 1.
Alice menambahkan kunci 𝑒𝐴
pada pesan M sehingga Alice
mengirimkan pesan 𝑀𝑒𝐴 kepada Bob.
Universitas Sumatera Utara
2.
Pada saat menerima pesan, Bob menambahkan kunci lagi yaitu 𝑒𝐵
sehingga mengirimkan pesan 𝑀𝑒𝐴𝑒𝐵 kembali ke Alice (perhatikan bahwa saat ini, Bob tidak bisa membaca pesan Alice M).
3.
Setelah menerima pesan dari Bob, Alice melakukan dekripsi dengan memakai 𝑑𝐴 sehingga didapat 𝑀𝑒𝐴𝑒𝐵𝑑𝐴 = 𝑀𝑒𝐵 kemudian dikirim
kembali kepada Bob. 4.
Bob menerima 𝑀𝑒𝐵 dan melakukan dekripsi pesan sehingga didapat 𝑀𝑑𝐵𝑒𝐵 = M, dan terbukalah pesan asli Alice yaitu M. Alice
Bob
Alice
Bob
Alice
Bob
Gambar 2.6 Skema Prosedur Pengiriman Pesan Alice-Bob [5]
Keterangan: M
= Pesan yang akan dikirimkan
𝑒𝐴
= Kunci enkripsi Alice
= Kunci dekripsi Alice
𝑒𝐵
= Kunci enkripsi Bob
𝑑𝐴
𝑑𝐵
= Kunci dekripsi Bob
2.10
Steganografi
2.10.1 Definisi Steganografi
Kata steganografi berasal dari bahasa Yunani steganos, yang artinya tersembunyi atau terselubung, dan graphein artinya menulis. Steganografi adalah seni dan ilmu menulis atau menyembunyikan pesan tersembunyi dengan suatu cara sehingga selain si pengirim dan si penerima, tidak ada seorangpun yang mengetahui atau menyadari bahwa ada suatu pesan rahasia. Kini, istilah steganografi termasuk penyembunyian
Universitas Sumatera Utara
data digital dalam file komputer. Tujuan dari steganografi adalah merahasiakan atau menyembunyikan
keberadaan
dari
sebuah
pesan
tersembunyi
atau
sebuah
informasi[1].
Steganografi sering berkaitan dengan kriptografi. Namun terdapat perbedaan mendasar antara steganografi dengan kriptografi terletak pada proses penyembunyian data dan hasil akhir dari proses tersebut. Kriptografi melakukan proses pengacakan data asli sehingga dihasilkan data terenkripsi yang benar-benar acak dan berbeda dengan aslinya. Sementara itu steganografi menyembunyikan data dalam data lain dengan cara menumpanginya tanpa mengubah data yang ditumpanginya tersebut sehingga tampilan data tetap terlihat sama[10].
Gambar 2.7 Model dasar embedding pada steganografi [6]
Keterangan: 𝑓𝐸
= fungsi steganografi “embedding”
𝑓𝐸 −1
= fungsi steganografi “extracting”
Sampul(cover)
= cover data sebagai media untuk penyisipan pesan
Isi pesan
= pesan yang akan disisipkan
Key
= parameter 𝑓𝐸
media stego
= cover data dengan pesan yang telah disisipkan
Proses embedding atau sering disebut penyembunyian pesan ini, dilakukan dengan cara menciptakan suatu proses stego medium dengan cara menggantikan atau menyisipkan
bit-bit
dari
sampul
media
dengan
bit-bit
dari
pesan
disembunyikan[6]. Sedangkan proses yang digunakan untuk menampilkan
yang pesan
rahasia yang ada dalam image disebut (extracting).
Universitas Sumatera Utara
Kriteria yang harus diperhatikan dalam penyembunyian pesan adalah[12]:
a.
Imperceptibility Keberadaan pesan rahasia tidak dapat dipersepsi oleh inderawi. Misalnya jika covertext berupa citra, maka penyisipan pesan membuat citra stegotext sukar dibedakan oleh mata dengan citra covertext-nya. Jika covertext berupa audio, maka indera telinga tidak dapat mendeteksi perubahan pada audio stegotext-nya.
b.
Fidelity Mutu media penampung tidak berubah banyak akibat penyisipan. Perubahan tersebut tidak dapat dipersepsi oleh inderawi. Misalnya jika covertext berupa citra, maka penyisipan pesan membuat citra stegotext sukar dibedakan oleh mata dengan citra covertext-nya. Jika covertext berupa audio, maka audio stegotext tidak rusak dan indera telinga tidak dapat mendeteksi perubahan tersebut.
c.
Recovery Pesan yang disembunyikan harus dapat diungkap kembali (reveal). Karena tujuan steganografi adalah data hiding, maka sewaktu-waktu pesan rahasia di dalam stegotext harus dapat diambil kembali untuk digunakan lebih lanjut.
2.10.2 Sejarah Steganografi
Steganografi sudah dikenal oleh bangsa Yunani sejak lama. Herodatus, seorang penguasa Yunani, mengirimkan pesan rahasia menggunakan kepala budak atau prajurit sebagai medai. Caranya, rambut budak dibotaki, lalu pesan rahasia ditulis pada kulit kepala budak. Setelah rambut budak tumbuh cukup banyal (yang berarti menutupi pesan rahasia), budak tersebut dikirim ketempat tujuan untuk membawa pesan rahasia dikepalanya. Di tempat penerima kepala budak dibotaki kembali untuk membaca pesan yang tersembunyi dibalik rambutnya. Pesan tersebut berisi peringatan tentang invasi dari Bangsa Persia[12].
Universitas Sumatera Utara
2.10.3 Teknik Steganografi Kombinasi End Of File dan First Of File
Teknik EOF atau End Of File merupakan salah satu teknik yang digunakan dalam steganografi. Teknik ini digunakan dengan cara menambahkan data atau pesan rahasia pada akhir file citra[9]. Untuk mengenal data yang disisipkan pada akhir file, diperlukan suatu tanda pengenal atau simbol pada awal dan akhir data yang akan disisipkan[8]. Dengan metode ini pesan yang disisipkan jumlahnya tak terbatas. Akan tetapi efek sampingnya adalah ukuran file menjadi lebih besar dari ukuran semula[4]. Sedangkan untuk teknik FOF atau First Of File merupakan kebalikannya, yaitu data atau pesan rahasia ditambahkan pada awal file.
2.11
Citra Bitmap
Citra bitmap sering disebut juga dengan citra raster. Dipresentasikan dalam bentuk matriks atau dipetakan dengan menggunakan bilangan biner atau sistem bilangan lain[15]. File bitmap merupakan format file citra yang tidak mengalami proses kompresi sehingga kualitas gambar yang dihasilkan baik daripada file citra dengan format lain.
Gambar 2.8 Contoh Citra Bitmap
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 28 = 256 derajat keabuan, mulai dari 0 sampai 255. Nilai intensitas citra pada data bitmap terdiri dari bilangan biner. Untuk citra true color jumlah bit per pixel sebanyak 24 bit
Universitas Sumatera Utara
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[8].
Terdapat beberapa format dari citra bitmap, salah satunya format .bmp merupakan format penyimpanan standar tanpa kompresi yang umum dapat digunakan untuk menyimpan citra biner hingga citra warna yang dikembangkan oleh Microsoft[13].
2.12
Penelitian Terdahulu
Berikut ini beberapa penelitian yang terkait dengan algoritma Massey- Omura dan teknik steganografi End Of File :
1. Penelitian yang dilakukan oleh Muhammad Reza, Muhammad Andri Budiman, dan Dedy Arisandi yaitu membangun sistem untuk mengenkripsi dan mendekripsi pesan teks menggunakan algoritma Massey-Omura.
Dimana
Algoritma
Massey-Omura
ini
juga
membutuhkan metode The Sieve of Eratosthenes untuk membantu membangkitkan bilangan prima, algoritma Euclidean GCD untuk mencari dua buah bilangan bulat yang relatif prima dan untuk proses enkripsi menggunakan algoritma Modulo Exponential yang berfungsi menghitung nilai perpangkatan modulo bilangan besar serta algoritma Modulo Invers untuk proses dekripsi[5].
2. Penelitian oleh Krisnawati membahas bagaimana menyisipkan teks ke dalam citra grayscale dengan menggunakan dua metode yaitu metode Least Significant Bit (LSB) dan metode End Of File (EOF). Alasan digunakannya citra grayscale adalah karena citra ini bentuk digital yang lebih sederhana dibandingkan dengan citra RGB. Dalam penelitiannya, diperoleh bahwa, kelebihan metode LSB adalah ukuran citra yang mengandung pesan tidak berubah, sedangkan kekurangannya adalah kapasitas pesan yang akan disisipkan terbatas. Sebaliknya metode EOF
Universitas Sumatera Utara
mempunyai kelebihan dapat menyisipkan pesan dalam jumlah yang tidak terbatas, sedangkan kekurangannya adalah kapasitas file citra akan bertambah[4].
3. Penelitian yang dilakukan oleh Henny Wandani, mengimplementasikan Teknik steganografi End Of file dengan algoritma Rabin Public Key. Dilakukan proses enkripsi data atau pesan rahasia yang berupa data teks angka dengan jumlah maksimum yang dimasukkan adalah 24 digit angka, kemudian hasil enkripsi (ciphertext) akan disembunyikan ke dalam suatu file gambar yang berformat bitmap dengan ukuran minimum 25 x 25. Selanjutnya, dilakukan proses ekstraksi dan dekripsi ciphertext, sehingga diperoleh kembali plaintext yang berupa data teks angka[8].
4. Penelitian yang dilakukan oleh Arfiyah membandingkan Teknik Steganografi First Of File, End Of File, dan kombinasi keduanya . Untuk teknik kombinasi End Of File dan First Of File dilakukan secara vertikal sehingga proses nilai desimal pesan disisipkan pada bagian atas dan bawah pixel matriks citra RGB[2].
Universitas Sumatera Utara