Implementasi Dan Analisis Algoritma Massey-Omura Dan Algoritma Even-Rodeh Dalam Pengamanan Dan Kompresi File Dokumen

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