BAB 2 TINJAUAN PUSTAKA
8.1. Kriptografi Kriptografi memiliki arti sebagai suatu bidang ilmu yang mempelajari metodemetode pengiriman pesan dalam bentuk rahasia sehingga hanya pihak yang dituju saja yang dapat menghilangkan penyamaran dari pesan dan membaca pesan asli. Pesan asli disebut plainteks, dan pesan tersamarkan disebut cipherteks. Proses untuk mengubah plainteks menjadi cipherteks disebut enkripsi. Dan sebaliknya yaitu proses mengembalikan cipherteks menjadi plainteks yang dapat dilakukan oleh penerima yang memiliki kunci untuk menghilangkan samaran pesan disebut dekripsi. Hingga akhir abad ke 20 kriptografi secara umum dianggap sebagai seni. Hal ini disebabkan karena kriptografi pada masa tersebut digunakan untuk mengkonstruksi kode yang baik, atau memecahkan kode yang sudah ada menggunakan kreativitas dan pengertian mengenai bagaimana kode bekerja. Pengguna terbesar kriptografi pada masa ini adalah pemerintah dan organisasi militer. Pada awal tahun 1970 dan 1980an, pandangan bahwa kriptografi merupakan seni berubah secara drastis. Perubahan disebabkan dengan munculnya teori-teori kompleks yang mengawali kajian mendalam terhadap kriptografi sebagai sebuah disiplin ilmu. Kriptografi modern mencakup mekanisme untuk menjamin integritas, teknik untuk pertukaran secret key, protokol untuk otentikasi pengguna, pelelangan dan pemilihan elektronik, uang digital, dll. Dapat dikatakan bahwa kriptografi modern meliputi kajian dari teknik matematika untuk mengamankan informasi digital, sistem, dan mendistribusikan komputasi terhadap serangan permusuhan. Pada masa kini, kriptografi dapat digunakan oleh orang biasa untuk mengamankan jalur komunikasi
Universitas Sumatera Utara
atau transaksi seperti mengamankan transaksi kartu kredit melalui internet, verifikasi pembaharuan sistem operasi, dan proses otentikasi dengan menggunakan password. Kriptografi telah berevolusi dari sebuah kumpulan perangkat yang ditugaskan untuk mengamankan komunikasi rahasia untuk keperluan militer menjadi sebuah ilmu yang dapat digunakan untuk mengamankan sistem untuk orang biasa diseluruh dunia seperti (Katz & Lindell 2015).
2.1.1 Jenis kriptografi berdasarkan kunci enkripsi Berdasarkan kunci yang digunakan terdapat dua jenis kriptografi, yaitu: 1.
Kriptografi simetris atau private key cryptosystem Pada skema kriptografi private key, kedua pihak yang melakukan komunikasi memilih sebuah kunci (ππ) yang akan digunakan untuk mengamankan pesan. Pihak pertama dapat mengirimkan sebuah pesan atau plainteks yang telah diamankan menggunakan sebuah kunci yang telah dipilih untuk mengenkripsi atau βmengacakβ pesan. Pihak kedua yang telah menerima cipherteks akan mendekripsi atau βmenguraikanβ pesan dengan menggunakan kunci yang sama. Simetris dari skema ini terletak pada penggunaan kunci yang sama untuk proses enkripsi dan dekripsi pesan. Beberapa contoh sistem kriptografi simetris antara lain DES (Data Encryption Standard), Blowfish, Twofish, Triple-DES, IDEA, Serpent, dan yang terbaru AES (Advanced Encryption Standard). Skema kriptografi simetris dapat dilihat pada Gambar 2.2.
Gambar 2.1 Skema Kriptografi Simetris (Katz & Lindell 2015)
2.
Kriptografi asimetris atau kriptografi kunci publik Pada skema enkripsi private key, salah satu pihak (penerima) membangkitkan pasangan kunci (pk, sk) yang disebut publik key dan private key. Publik key (pk) kemudian dikirimkan kepada pengirim pesan agar digunakan untuk mengenkripsi
Universitas Sumatera Utara
pesan. Untuk mendekripsi cipherteks yang dikirimkan oleh pihak pengirim, pihak penerima menggunakan private key (sk) (Katz & Lindell 2015).
2.1.2 Kelebihan dan kelemahan kriptografi kunci publik Kelebihan kriptografi kunci publik (Katz & Lindell 2015): 1.
Pihak yang berkomunikasi tidak perlu berbagi kunci secara rahasia sebelum melakukan komunikasi. Kedua pihak dapat bermokunikasi secara aman meskipun jalur komunikasi antara kedua pihak selalu diawasi.
2.
Kriptografi kunci publik lebih sesuai pada lingkungan dimana pihak yang belum pernah berinteraksi sebelumnya menginginkan kemampuan untuk berkomunikasi secara aman.
3.
Enkripsi kunci publik memperkenankan distribusi kunci dilakukan pada saluran publik. Hal ini dapat menyederhanakan distribusi dan pembaharuan material kunci.
4.
Kriptografi kunci publik mengurangi kebutuhan user untuk menyimpan banyak secret key.
Kelemahan kriptografi kunci publik: a.
Pada beberapa penerapan, kriptosistem kunci publik secara umum lebih lambat dibandingkan kriptosistem simetris sehingga kurang sesuai untuk enkripsi dalam ukuran besar (Blahut, 2014).
2. Dalam prakteknya, cipher asimetris dianggap lebih lambat dibandingkan dengan cipher simetris seperti DES dan AES (Hoffstein, et al. 2014).
8.2. Three-Pass Protocol Pada kriptografi, Three Pass-Protocol merupakan sebuah protokol atau kerangka kerja untuk mengirim pesan secara aman tanpa harus memerlukan pertukaran kunci. ThreePass Protocol pertama kali dikembangkan oleh Adi Shamir sekitar tahun 1980 dan dikatakan Three-Pass-Protocol karena pengirim dan penerima melakukan pertukaran pesan sebanyak tiga kali. Three-Pass Protocol dapat digambarkan sebagai sebuah kotak yang dikirimkan dengan menggunakan dua buah gembok, tanpa harus berbagi kunci untuk membuka
Universitas Sumatera Utara
gembok. Berikut merupakan cara kerja Three-Pass Protocol (Kanomori & Yoo, 2009): 1. Alice memasukkan pesan yang ingin dikirimkan kepada Bob ke dalam kotak dan mengunci kotak dengan gembok miliknya. Kotak kemudian dikirimkan ke Bob. 2. Bob menerima kotak yang dikirimkan dari Alice dan mengunci kotak dengan gembok miliknya dan mengirimkan kotak kembali ke Alice. Pada tahap ini kotak memiliki dua buah gembok. 3. Alice membuka gembok miliknya dari kotak dan mengirimkan kotak kembali ke Bob. 4. Bob membuka gembok miliknya dari kotak dan mendapatkan pesan yang dikirimkan oleh Alice.
8.3. Algoritma Massey-Omura Massey-Omura Cryptosystem adalah cipher berbasis eksponensial yang diusulkan oleh James Massey dan Jim K. Omura pada 1982 yang didasarkan pada Shamirβs threepass protocol atau Shamirβs no-keys protocol. Keuntungan dari kriptosistem ini adalah tidak diperlukan distribusi atau pertukaran kunci diantara kedua pihak yang berkomunikasi (Blahut, 2014). Sebelum
melakukan
komunikasi
dengan
menggunakan
Massey-Omura
Cryptosystem, para koresponden harus memiliki kunci enkripsi dan dekripsi terlebih dahulu dengan syarat (Hyka & Benusi 2014): 1.
Kedua pihak menyetujui sebuah bilangan prima (p) yang sudah tetap dan diketahui secara publik sebagai modulus dengan syarat p > L. Di mana L adalah integer terbesar yang merepresentasikan sebuah karakter pesan.
2.
Masing-masing pengguna sistem secara rahasia memilih sebuah bilangan bulat acak πππ΄π΄ atau πππ΅π΅ antara 1 dan p β 1 sebagai calon kunci enkripsi dengan syarat
3.
gcd(πππ΄π΄ , ππ β 1) = 1 dan gcd(πππ΅π΅ , ππ β 1) = 1
Dengan menggunakan algoritma euclidean, hitung invers πππ΄π΄ dan πππ΅π΅ . Invers πππ΄π΄
yaitu πππ΄π΄ β‘ πππ΄π΄β1 (ππππππ ππ β 1) sebagai kunci dekripsi pengirim (πππ΄π΄ ) dan invers πππ΅π΅ yaitu πππ΅π΅ β‘ πππ΅π΅β1 (ππππππ ππ β 1) sebagai kunci dekripsi penerima (πππ΅π΅ ).
Universitas Sumatera Utara
Tahap-tahap pengiriman pesan dengan Massey-Omura Cryprosystem, dengan anggapan bahwa Bob ingin mengirim sebuah pesan M ke Alice adalah (Hyka & Benusi 2014): 1.
Sebelum mengirimkan pesan M kepada Bob, Alice harus mengkonversi pesan alfanumerik menjadi pesan numerik M. Kemudian, Alice menghitung ππ1 =
2.
ππππ π΄π΄ (ππππππ ππ) dan mengirim hasil komputasi kepada Bob.
Tanpa perlu mengerti isi dari pesan, Bob mengenkripsi pesan dengan kunci πππ΅π΅
miliknya
3.
dan
mengirimkan
hasil
perhitungan
ππππ π΄π΄ ππ π΅π΅ (ππππππ ππ) yang didapat kembali ke Alice.
ππ2 = ππ1 ππ π΅π΅ (ππππππ ππ) =
Alice mendekripsi pesan secara parsial dengan kunci πππ΄π΄ dan menghitung ππ3 =
ππ2 ππ π΄π΄ (ππππππ ππ) = ππππ π΄π΄ ππ π΅π΅ ππ π΄π΄ (ππππππ ππ) = ππππ π΅π΅ (ππππππ ππ)
dan
mengirim
hasil
komputasi ke Bob.
4.
Bob kemudian menyelesaikan proses dekripsi dengan kunci πππ΅π΅
dan
mengkomputasi ππ4 = ππ3 ππ π΅π΅ (ππππππ ππ) = ππππ π΅π΅ ππ π΅π΅ (ππππππ ππ) = ππ.
8.4. Aspek Matematika pada Massey-Omura Cryptosystem 2.4.1 Aritmatika modular Aritmatika modular digunakan dalam kriptografi dengan menggunakan mod atau modulo sebagai operator. Mod adalah operator yang digunakan untuk memberikan hasil sisa bagi antara dua bilangan. Misalkan ππ, ππ β β€ dengan ππ > 0. Perhitungan m ππππππ ππ akan menghasilkan sisa bagi r, atau dalam model matematika dapat ditulis: ππ ππππππ ππ = ππ
(1)
ππ = ππ . ππ + ππ, di mana ππ = ππ Γ· ππ dan 0 β€ ππ < ππ
(2)
sedemikian hingga:
Contoh: 27 ππππππ 4 = 1, maka 27 = 4 . 6 + 1
Apabila m bernilai negatif, maka sisa bagi yang didapat dari |βππ| dibagi dengan ππ adalah rβ dan untuk mendapatkan r dicari ππ β ππβ² sedemikian hingga: ππ ππππππ ππ = ππ β ππβ² , di mana ππ β² β 0
(3)
Contoh: |β32| ππππππ 5 = 2. Maka, β32 ππππππ 5 = 5 β 2 = 3
Universitas Sumatera Utara
2.4.2 Faktor persekutuan terbesar (Greatest Common Divisor (GCD)) Faktor persekutuan dari dua buah bilangan bulat ππ dan ππ adalah bilangan bulat positif ππ yang dapat membagi kedua bilangan. Faktor persekutuan terbesar dari ππ dan ππ
adalah bilangan bulat terbesar dari d dimana ππ|ππ dan ππ|ππ. Faktor persekutuan terbesar dari ππ dan ππ dinotasikan sebagai gcd(ππ, ππ). Metode yang umum digunakan untuk mencari gcd adalah algoritma Euclidean (Hoffstein, et al. 2014). Algoritma
Euclidean menggunakan hasil sisa bagi dan dapat ditulis sebagai ππ = ππ . ππ + ππ, dimana ππ adalah faktor pengali dan ππ adalah sisa bagi atau mod. Contoh: pencarian gcd(2024, 748) :
2024 = 748 . 2 + 528
748 = 528 . 1 + 220 528 = 220 . 1 + 88 220 = 88 . 2 + 44 88 = 44 . 1 + 0
Maka, gcd(2024, 748) adalah 44. Terdapat sebuah sebutan khusus untuk kasus di mana gcd ππ dan ππ adalah 1, yaitu relatif prima. 2.4.3 Relatif prima atau coprime Dua buah bilangan bulat ππ dan ππ adalah relatif prima bila Greatest Common Divisor (GCD) kedua bilangan tersebut adalah 1. Atau dapat ditulis dengan gcd(ππ, ππ)= 1. 2.4.4 Inversi modulo ππβ1 disebut inversi dari ππ ππππππ ππ apabila gcd(ππ, ππ) = 1 dan ππβ1 . ππ (ππππππ ππ) = 1.
Sebagai contoh, pencarian invers dari 27 (ππππππ 4) dapat dilihat pada Tabel 2.1: Tabel 2.1 Penyelesaian Invers ππβ1 1 2 3
3 2 1
Maka, invers dari 27 (ππππππ 4) adalah 3.
Universitas Sumatera Utara
8.5. Kompresi Data Kompresi Data terdiri dua kata yaitu kata βdataβ yang secara umum digunakan untuk mendefinisikan informasi dalam bentuk digital yang dioperasikan oleh program komputer, dan βkompresiβ yang berarti sebuah proses untuk menghilangkan redudansi. Maka, kompresi data memiliki arti sebagai sebuah metode atau algoritma yang secara efisien dirancang untuk merepresentasi data dengan mode redudansi yang rendah atau menghilangkan redudansi di dalam data. Tujuan utama dari kompresi data adalah untuk mewakili data terkompresi dalam bentuk digital dengan bit sesedikit mungkin namun tetap memenuhi persyaratan minimal yang diperlukan untuk merekonstruksi data kembali menjadi data asli. Algoritma kompresi data tidak akan bekerja apabila tidak terdapat algoritma dekompresi data. Dekompresi data adalah teknik yang digunakan untuk mengembalian data yang telah terkompresi ke ukuran semula. Kompresi data bekerja dengan dua konsep sederhana yaitu mengurangi jumlah simbol unik yang terdapat di dalam data dan mengencoding simbol dengan frekuensi tinggi menjadi bit yang lebih sedikit. Setiap algoritma kompresi data fokus melakukan salah satu dari dua konsep tersebut. Algoritma kompresi data mentransformasi data dengan mengurangi jumlah simbol atau mengambil keuntungan dari perbedaan jumlah frekuensi simbol dan mengencoding simbol dengan frekuensi tinggi dengan bit yang lebih sedikit (McAnlis & Haecky 2016).
2.5.1 Parameter analisis algoritma kompresi Terdapat beberapa parameter yang digunakan untuk menganalisis kinerja metode kompresi, antara lain: 1.
Ratio of Compression (Rc) adalah perbandingan ukuran data sebelum dan setelah dilakukan kompresi yang dirumuskan sebagai: π
π
π
π
=
ππππππ π π π π π π π π π π π π π π ππππππππππππππππ ππππππ π π π π π π π π π π π π β ππππππππππππππππ
Misalkan didapat Ratio of Compression setelah kompresi sebesar 1.75. Hal ini menunjukkan bahwa ukuran data sebelum dikompresi adalah 1.75 kali lebih besar dari ukuran data setelah dikompresi.
Universitas Sumatera Utara
2.
Compression Ratio (Cr) adalah persentasi besar data setelah dikompresi yang didapatkan dengan menghitung perbandingan ukuran data sesudah kompresi dan data sebelum kompresi yang dirumusakan sebagai: πΆπΆπΆπΆ =
ππππππ π π π π π π π π π π π π β ππππππππππππππππ π₯π₯ 100% ππππππ π π π π π π π π π π π π π π ππππππππππππππππ
Misalkan didapatkan Compression Ratio sebesar 40%. Hal ini menunjukkan bahwa ukuran data setelah dikompresi hanya 40% dari ukuran file asli.
3.
Redudancy (Rd) merupakan kelebihan yang terdapat didalam data sebelum dilakukan kompresi. Kelebihan data ini dapat diketahui dengan menghitung selisih perbandingan ukuran data setelah kompresi dan data sebelum kompresi, yang dirumuskan sebagai: π
π
π
π
= 100% β πΆπΆπΆπΆπΆπΆpππππππππππππππ π
π
π
π
π
π
π
π
π
π
Nilai 65% yang didapatkan memiliki arti data sebelum kompresi memiliki kelebihan data sebesar 65%.
4. Running Time adalah waktu yang dibutuhkan sistem untuk mengerjakan sebuah proses. Semakin kecil waktu yang digunakan oleh sistem, maka kinerja algoritma semakin efisien.
2.5.2 Jenis kompresi data berdasarkan output 1.
Lossy Compression Metode ini dapat digunakan terutama untuk mengkompresi gambar, video, atau audio. Lossy compression menghasilkan hasil kompresi yang lebih baik daripada lossless compression, akan tetapi terdapat beberapa data yang hilang setelah proses kompresi. Dengan Lossy Compression hasil kompresi berbeda dengan data original yang di kompresi oleh encoder, namun tetap dapat diterima oleh user. Karena jumlah kehilangan data kecil, perbedaan yang ada tidak akan terdeteksi hanya dengan panca indra sehingga hasil kompresi akan tetap terlihat atau terdengar sama. Beberapa algoritma yang termasuk dalam jenis lossy compression adalah JPEG, MPEG, ADPCM, Fractal Compression, MP3, dan sebagainya.
Universitas Sumatera Utara
2.
Lossless Compression Pada kompresi file teks metode Lossy Compression tidak sesuai untuk digunakan, di mana pada file teks hilangnya karakter walaupun hanya satu buah dapat menghasilkan teks yang salah, ambigu, atau tidak dapat dimengerti. File seperti ini harus dikompresi dengan metode lossless compression. Pada metode lossless compression, hasil yang didapat identik dengan data original sebelum proses kompresi. Beberapa algoritma yang tergolong jenis metode ini antara lain FLBE, VLBE, Even-Rodeh Code, Huffman Code, 7z, ace, bow, Zip, rar.
8.6. Algoritma Even-Rodeh Algoritma kompresi Even-Rodeh dikembangkan oleh Shimon Even dan Michael Rodeh pada tahun 1978 yang merupakan algoritma berjenis lossless compression. Ide dasar dibalik algoritma ini adalah untuk menuliskan panjang dari string sebelum menuliskan string tersebut secara rekursif sampai kepada sebuah length yang dapat direpresentasikan pada fixed-size field. Untuk membaca representasi string asli, setiap string panjang akan memberitahukan bagaimana cara menemukan string selanjutnya. Diperlukan sebuah cara untuk menentukan apakan string selanjutnya adalah string panjang atau string asli. Yaitu dengan merepresentasikan string panjang tanpa 0 didepannya dan menuliskan sebuah angka 0 sebelum string asli (Even & Rodeh, 1978). Tahap-tahap pembentukan kode Even-Rodeh dengan n sebagai indeks dari karakter yang telah diurutkan adalah sebagai berikut: 1. Bila n < 4, prepend atau tambah pada bagian awal kode dengan 3-bit representasi binari n.
2. Bila n β₯ 4:
a. Set kode menjadi bit 0 b. Prepend kode dengan representasi binari n. c. Set panjang bit n sebagai nilai n. d. Prepend kode dengan representasi binari n. e. Ulangi langkah c hingga panjang bit n β₯ 4.
Beberapa daftar kode Even-Rodeh dan jumlah bit kode Even-Rodeh berdasarkan frekuensi karakter dapat dilihat pada Tabel 2.3 dan Tabel 2.4
Universitas Sumatera Utara
Tabel 2.3 Kode Even-Rodeh n 0 1 2 3 4 7 8 15 16 32 100
Kode Even-Rodeh 000 001 010 011 100 0 111 0 100 1000 0 100 1111 0 101 10000 0 110 100000 0 111 1100100 0
Tabel 2.4 Jumlah bit kode ER berdasarkan variasi karakter n
Jumlah bit ER
0-3 4-7 8-15 16-31 32-63 64-127 128-255
3 4 8 9 10 11 16
8.7. Penelitian yang Relevan 1.
Tengku Surya Pramana (2013), dalam skripsi yang berjudul βImplementasi Massey-Omura Cryptosystem dan Lehmann Prime Generator untuk keamanan Email pada Mozilla Thunderbirdβ, menyatakan bahwa waktu eksekusi program berbanding lurus dengan besar bilangan prima dan kunci. Di mana rata-rata waktu enkripsi lebih lama dibandinggkan dengan waktu dekripsi.
2.
Muhammad Solihin (2013), dalam skripsi yang berjudul βPerancangan Sistem Pengamanan dan Kompresi Data Teks dengan Fibonacci Encoding dan Algoritma Shannon-Fano serta Aloritma Deflateβ, menyatakan bahwa rasio kompresi ratarata yang antara file input dengan file output untuk file dokumen input dengan ekstensi *.doc adalah 43.653%, sedangkan rasio kompresi rata-rata antara file input dengan file output untuk file teks input dengan ekstensi *.txt adalah 78.444%.
Universitas Sumatera Utara
3.
Ade Rani Abdullah (2016), dalam skripsi yang berjudul βPerbandingan Algoritma Even-Rodeh dan Algoritma Variable Length Binary Encoding (VLBE) pada Kompresi File Teksβ, menyatakan bahwa algoritma Even-Rodeh dan algoritma VLBE dipengaruhi oleh jumlah variasi karakter.
4.
Umri Erdiansyah (2014), dalam skripsi yang berjudul βPerbandingan Algoritma Elias Delta Code dan Levenstein untuk Kompresi File Teksβ, menyatakan bahwa hasil pengujian kompresi file teks dengan karakter yang berbeda berdasarkan variabel Ratio of Compression, Compression Ratio, Redundancy dan waktu kompresi menunjukkan bahwa metode Elias Delta code lebih baik dibandingkan dengan metode Levenstein dengan rasio kompresi rata-rata sebesar 134.40%.
Universitas Sumatera Utara