• Tidak ada hasil yang ditemukan

Analisis dan Implementasi Algoritma Kriptografi Playfair Cipher dan Algoritma Kompresi Run Length Encoding Dalam Pengamanan dan Kompresi Data Teks

N/A
N/A
Protected

Academic year: 2017

Membagikan "Analisis dan Implementasi Algoritma Kriptografi Playfair Cipher dan Algoritma Kompresi Run Length Encoding Dalam Pengamanan dan Kompresi Data Teks"

Copied!
13
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1 Kriptografi

2.1.1 Pengertian Kriptografi

Kriptografi merupakan metode untuk mengirimkan pesan rahasia sehingga hanya penerima pesan yang dimaksud dapat menghapus, menyamarkan atau membaca pesan tersebut. Kriptografi berasal dari kata bahasa Yunani yaitu kryptos yang berarti tersembunyi dan grapein yang berarti menulis. Pesan asli disebut plainteks dan pesan yang telah disandikan disebut cipherteks. Pesan yang telah dienkapsulasi dan dikirim disebut kriptogram. Proses mengubah plainteks menjadi cipherteks disebut enkripsi. Membalikkan proses cipherteks menjadi plainteks disebut dekripsi. Siapapun yang terlibat dalam kriptografi disebut kriptografer. Pada sisi lain, studi tentang teknik matematika karena berusaha untuk mengalahkan metode kriptografi disebut pembacaan sandi. Cryptanalysts adalah orang-orang berlatih pembacaan sandi (Mollin,2007).

Pada kriptografi, pesan asli disebut plaintext dan pesan yang disamarkan disebut ciphertext. Proses menyamarkan plaintext menjadi ciphertext disebut enkripsi. Sedangkan proses untuk mengubah ciphertext kembali menjadi plaintext disebut dekripsi (Mollin,2007). Skema rangkaian proses enkripsi dan dekripsi ditunjukkan secara umum pada Gambar 2.1.

Gambar 2.1. Skema Proses Enkripsi dan Dekripsi

Plaintext

Enkripsi

(2)

Plaintext adalah pesan yang akan diamankan. Pada awalnya, plaintext hanya

berbentuk data teks. Namun seiring dengan perkembangan, plaintext kini bisa berbentuk teks, citra (image), suara/bunyi (audio) dan video. Sedangkan ciphertext adalah hasil dari plaintext yang telah disamarkan. Enkripsi (encryption) adalah proses mengubah pesan asli (plaintext) sedemikian rupa menjadi pesan tersandi (ciphertext). Sedangkan dekripsi (decryption) adalah proses mengubah kembali pesan tersandi (ciphertext) menjadi pesan asli (plaintext).

Ada empat tujuan mendasar dari ilmu kriptografi ini yang juga merupakan aspek keamanan informasi, yaitu :

1. Kerahasiaan (Confidentiality)

Kerahasiaan adalah layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas atau kunci rahasia untuk membuka/mengupas informasi yang telah disandi.

2. Integritas Data (Integrity)

Integritas adalah berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya.

3. Otentikasi (Authentication)

Otentikasi adalah berhubungan dengan identifikasi/pengenalan, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui kanal harus diautentikasi keaslian, isi datanya, waktu pengiriman, dan lain-lain.

4. Ketiadaan Penyangkalan (Non-repudiation).

(3)

2.1.2 Jenis-Jenis Algoritma Kriptografi

Algoritma Kriptografi dapat diklasifikasikan menjadi dua jenis berdasarkan proses enkripsi dan deskripsi nya, yaitu algoritma simetris dan algoritma asimetris. Dan berdasarkan perkembangannya terbagi menjadi algoritma kriptografi modern dan klasik.

2.1.2.1 Algoritma Simetris

Algoritma simetris kadang disebut juga algoritma konvensional. Algoritma ini menggunakan kunci yang sama pada saat proses enkripsi dan dekripsi. Pengirim harus memberitahu kuncinya terlebih dahulu, agar penerima dapat mendekripsi ciphertext. Keamanan algoritma simetris terletak pada kunci nya, agar data tetep terjaga kunci harus tetap dirahasiakan. Adapun algoritma yang termasuk ke dalam algoritma simetris adalah OTP, DES, RC2, RC4, RC5, IDEA, Twofish, Playfair Cipher, Magenta, FEAL, SAFER, LOKI, CAST, Rijndael (AES), Blowfish, GOST, A5, Kasumi dan lain-lainnya. Skema kriptografi simetris dapat dilihat pada Gambar 2.2.

Gambar 2.2. Skema Kriptografi Simetris

2.1.2.2 Algoritma Asimetris

Berbeda dengan kriptografi simetri, kriptografi asimetri menggunakan dua kunci yang berbeda pada saat proses enkripsi dan dekripsinya. Kunci pada proses enkripsi asimetris ini tidak rahasia (public key) dan kunci pada proses dekripsi bersifat rahasia (private key), sehingga algoritma asimetris disebut juga dengan algoritma kunci publik. Pengirim akan mengenkripsi dengan menggunakan kunci public, sedangkan penerima mendeskripsi menggunakan kunci privat. Adapun algoritma yang menggunakan kunci asimetris adalah seperti Rivest-Shamir-Adleman (RSA), El-Gamal, Rabin dan lain-lain. Skema kriptografi asimetris dapat dilihat pada Gambar 2.3.

Plaintext, P Plaintext, P Enkripsi Ek(P) Ciphertext, C

= C

Dekripsi Dk(C) = P

(4)

Gambar 2.3. Skema Kriptografi Asimetris

2.2Playfair Cipher

Playfair Cipher merupakan salah satu contoh algoritma klasik yang ditemukan oleh

Charles Wheatstone, salah seorang Pioneer Telegraf. Kemudian algoritma ini dipopularkan oleh Lyon Playfair pada tahun 1854. Algoritma Playfair Cipher termasuk ke dalam polygram cipher (Munir, 2006).

Proses enkripsi dengan menggunakan algoritma Playfair Cipher, dilakukan dengan mengenkripsi dua huruf atau pasangan-pasangan huruf. Kunci yang di gunakan dalam proses enkripsi harus disepakati oleh pengirim dan penerima pesan terlebih dahulu, agar pesan dapat di deskripsi oleh penerima pesan. Kunci tersebut disusun pertama kali dalam sebuah bujur sangkar yang memiliki ukuran 5x5, setelah itu sisa dari elemen-elemen bujur sangkar yang masih kosong akan diisi dengan seluruh alfabet (A-Z) terkecuali J. Sebagai contoh, misalkan kata kunci yang disetujui oleh pengirim dan penerima pesan adalah IMILKOM. Contoh matriks kunci Playfair Cipher dengan penulisan kunci dalam baris dapat dilihat pada Tabel 2.1.

Tabel 2.1. Contoh matriks kunci „ILKOM‟

(5)

Setelah bujur sangkar terisi penuh dengan kata kunci dan huruf alphabet. Proses enkripsi dilanjutkan dengan proses pengaturan pesan yang ingin dienkripsi, sebagai berikut (Azhari, 2014) :

1. Ganti huruf „J‟ yang terdapat pada pesan yang ingin dienkripsi dengan huruf „I‟.

2. Tulis kembali pesan dengan kedalam pasangan huruf atau bigram.

3. Bila terdapat bigram yang memiliki huruf yang sama, maka sisipkan dengan huruf „X‟ ditengahnya.

4. Bila huruf terakhir tidak memiliki pasangan (jumlah huruf pada pesan ganjil),

maka tambahkan huruf „X‟ sebagai pasangannya.

Contoh Plaintext : ILKOM

Karena bigram terakhir tidak memiliki pasangan maka, ditambahkan huruf X pada bigram terakhir, menjadi (Azhari, 2014) :

IL KO MX

Setelah plaintext disusun kedalam bigram dan sesuai dengan aturan diatas, pesan dapat dienkripsi dengan menggunakan matriks kunci pada Tabel 2.1. Dengan ketentuan sebagai berikut (Azhari, 2014) :

1. Bila dua huruf dalam satu bigram berada pada baris kunci yang sama, maka masing-masing huruf digantikan dengan huruf disebelah kanannya.

2. Bila dua huruf dalam satu bigram berada pada kolom kunci yang sama, maka masing-masing huruf digantikan dengan huruf yang berada dibawahnya.

3. Bila dua huruf dalam satu bigram tidak berada pada baris maupun kolom yang sama, maka huruf pertama digantikan dengan huruf pada perpotongan baris huruf pertama dengan kolom huruf kedua. Dan huruf kedua digantikan dengan huruf pada titik sudut keempat dari persegi yang dibentuk dari 3 huruf yang digunakan sebelumnya.

Contoh :

Matriks kunci di tulis kembali, dapat dilihat pada Table 2.2 :

(6)

Tabel 2.2. Contoh matriks kunci

Plaintext dalam bentuk bigram, sebagai berikut :

IL KO MX Ciphertext yang dihasilkan, sebagai berikut :

MK OI LW

Untuk mendekripsikan pesan nya, dengan kunci yang telah diketahui sebelumnya oleh si penerima, maka dilakukan seperti enkripsi pesan dengan membentuk pasangan huruf dari Ciphertext . Hanya saja aturan yang digunakan untuk dekripsi merupakan kebalikan dari enkripsi pesan (Azhari, 2014).

2.2.1 Playfair Cipher dengan Teknik Pemutaran Kunci Dua Arah

Ide untuk mencegah terjadinya pasangan huruf yang terus berulang memiliki hasil enkripsi yang sama adalah dengan mengganti matriks yang digunakan pada saat enkripsi. Teknik pemutaran kunci dua arah merupakan suatu cara untuk mengganti matriks agar berbeda dari kunci matriks untuk mengenkripsi bigram sebelumnya. Teknik pemutaran kunci dua arah dilakukan dengan memutar 4 huruf disekitar huruf pertama dengan menempatkan huruf pertama yang dienkripsi searah jarum jam, kemudian memutar 4 huruf disekitar huruf kedua berlawanan arah jarum jam (Azhari, 2014).

Proses pemutaran matriks kunci memiliki aturan sebagai berikut:

1. Pilihlah 4 huruf disekitar huruf bigram plaintext. Yaitu huruf itu sendiri, huruf disebelah kanannya, huruf disebelah kanan bawah dan huruf dibawahnya.

2. Apabila huruf plaintext terletak di paling bawah atau paling kanan, maka sebelah kanan dari huruf itu adalah huruf dipaling kiri pada baris huruf plaintext berada dan sebelah bawah huruf plaintext terletak di paling atas dari kolom tempat huruf plaintext berada.

I M L K O

A B C D E

F G H N P

Q R S T U

(7)

3. Untuk setiap huruf pertama pada bigram plaintext, 4 huruf yang berada disekitarnya (pada poin nomor 1) diputar searah jarum jam.

4. Untuk setiap huruf kedua pada bigram plaintext, 4 huruf yang berada disekitarnya (pada poin nomor 1) diputar berlawanan jarum jam.

5. Proses ini diulang terus sampai seluruh plaintext selesai dienkripsi.

Contoh pada matriks kunci “IMILKOM” pada Tabel 2.3, bigram “IL” terlebih dahulu dienkripsi, hasilnya yaitu “MK” baru matriks kunci diputar. Pada matrik kunci, huruf yang berada disekitar „I‟ dapat dilihat pada Tabel 2.3.

Tabel 2.3. Matriks Kunci 4 huruf disekitar huruf „I‟ sebelum diputar

Kemudian matrik 4 huruf tersebut diputar searah jarum jam, sehingga hasilnya dapat dilihat pada Tabel 2.4.

Tabel 2.4. Matriks 4 huruf disekitar huruf „I‟ setelah diputar

Selanjutnya matrik kunci, huruf yang berada disekitar „L‟ dapat dilihat pada Tabel 2.5.

I M L K O

A B C D E

F G H N P

Q R S T U

V W X Y Z

A I L K O

B M C D E

F G H N P

Q R S T U

(8)

Tabel 2.5. Matriks 4 huruf disekitar huruf „L‟ sebelum diputar

Kemudian matrik 4 huruf tersebut diputar berlawanan jarum jam, sehingga hasilnya dapat dilihat pada Tabel 2.6.

Tabel 2.6. Matriks 4 huruf disekitar huruf „L‟ setelah diputar

Kunci matriks pada Tabel 2.6 digunakan untuk mengenkripsi bigram kedua pada plaintext. Proses ini terus berulang sampai plaintext habis dienkripsi.

Dengan menggunakan teknik pemutaran kunci dua arah, maka ciphertext yang dihasilkan dari plaintext “ILKOM” adalah:

Plaintext (setelah disusun sesuai dengan bigram dan aturan): IL KO MX

Ciphertext yang dihasilkan:

MK DA CW

Dapat dilihat ciphertext yang dihasil dari algoritma Playfair Cipher klasik dengan Playfair Cipher Modifikasi teknik pemutaran kunci dua arah memiliki perbedaan meskipun dengan plaintext yang sama.

2.3Kompresi Data

Kompresi adalah sebuah proses mengubah ukuran data menjadi lebih kecil dari ukarannya yang semula sehingga dapat lebih menghemat kebutuhan tempat penyimpanan dan waktu untuk transmisi data . Saat ini terdapat berbagai tipe

A I L K O

B M C D E

F G H N P

Q R S T U

V W X Y Z

A I K D O

B M L C E

F G H N P

Q R S T U

(9)

algoritma kompresi , antara lain: Huffman, IFO, LZHUF, LZ77 dan variannya (LZ78, LZW, GZIP), Dynamic Markov Compression (DMC), Block-Sorting Lossless, Run Length Encoding (RLE), Shannon-Fano, Arithmetic, PPM (Prediction by Partial Matching), Burrows-Wheeler Block Sorting, dan Half Byte.

Untuk melakukan kompresi data telah banyak algoritma yang telah dikembangkan. Namun, secara umum algoritma kompresi data dapat di bagi menjadi dua kelompok besar berdasarkan dapat tidaknya rekontuksi ke data asli dilakukan yaitu:

1. Kompresi Lossless

Kompresi lossless adalah kompresi yang menjaga keakuratan dari data yang telah di kompres, bila selama proses kompresi terjadi perubahan atau hilangnya informasi dari data bahkan hanya beberapa bit saja, tidak dapat ditoleransi. Sehingga teknik kompresi ini bersifat reversible yaitu hasil kompresi dapat dikembalikan ke bentuk semula secara utuh. Teknik kompresi lossless ini lebih cocok diaplikasikan pada teks, gambar medis, atau photo hasil satelit dimana hilangnya beberapa detail pada data dapat berakibat fatal. Contoh algoritma lossless adalah Run Length Encoding, Arithmetic Coding, Huffman Coding, dan lain-lain.

2. Kompresi Lossy

(10)

2.4 Run Length Encoding

Algoritma Run Length Encoding mengurangi ukuran karakter string yang berulang. Algoritma ini memanfaatkan karakter yang berulang secara berurutan pada sebuah data dengan mengkodekannya dengan sebuah string yang terdiri dari jumlah karakter yang berulang dan diikuti dengan karakter itu sendiri. Sehingga banyak tidaknya karakter yang berulang pada sebuah data menjadi penentu keberhasilan kompresi algoritma RLE.

Setiap kode perlu ditambahkan sebuah penanda (marker byte) yang berfungsi untuk menghindari keambiguan pada saat decoding. Jadi, secara umum format kode yang dihasilkan oleh algoritma RLE dapat dilihat pada Tabel 2.7.

Tabel 2.7. Format kode karakter berulang

m n s

Keterangan :

m : Sebuah penanda (marker byte). n : Jumlah deret karakter yang berulang. s : Karakter yang berulang tersebut. Contoh :

String : “AAABBBBBCCDDDCCCCC”

Kompresi RLE : “#3A#4B#2C#3D#5C”

Sebaiknya yang dipilih sebagai penanda m, adalah karakter yang jarang digunakan pada data (seperti tanda #, ^, |, atau ~). Namun, apabila penanda m terdapat pada data, cukup dengan mengkodekannya sebanyak dua kali, sehingga apabila penanda tersebut muncul dua kali secara berturut-turut saat decoding, maka penanda tersebut dianggap sebagai karakter asli.

2.5 Kompleksitas Algoritma

(11)

menerangkan model abstrak pengukuran waktu dan ruang maka digunakan suatu fungsi yang menjelaskan bagaimana ukuran masukan data (n) mempengaruhi perfomansi algoritma yang disebut sebagai kompleksitas algoritma.

Pada saat penentuan kompleksitas algoritma, ada beberapa istilah yang sering digunakan untuk menunjukkan kinerja suatu algoritma untuk ukuran input n, yaitu best-case, average-case, dan worst-case yang masing-masing menyatakan

kompleksitas keadaan terbaik, keadaan rata-rata, dan keadaan terburuk dari suatu algoritma. Namun, pada prakteknya penentuan nilai pasti untuk setiap case tersebut sulit dilakukan. Jadi, yang dilakukan hanyalah analisis asimtotik dari suatu algoritma, yaitu bagaimana pertumbuhan fungsi (growth of function) suatu algoritma dipengaruhi oleh input n yang semakin membesar menuju ke tak terhingga (infinity).

Dalam analisis asimtotik, ada beberapa notasi yang sering digunakan untuk menunjukkan batas-batas fungsi asimtot, yaitu notasi Big-O, Big-Omega, dan Big- Theta yang masing-masing menunjukkan batas atas (upper bound), batas bawah (lower bound), dan batas atas dan batas bawah (tight bound) dari fungsi asimtot.

2.5.1 Big – O

Notasi Big-O adalah notasi matematika yang digunakan untuk menggambarkan suatu fungsi asimtotik. Notasi Big-O sering juga digunakan untuk menjelaskan seberapa besar ukuran dari suatu data mempengaruhi penggunaan sebuah algoritma dari sumber komputasi. Notasi ini pertama kali diperkenalkan pada tahun 1894 oleh Paul Bachman, yaitu pada volume kedua dari bukunya Analytische Zahlentheorie (analisis teori bilangan) sehingga notasi Big-O biasa juga disebut sebagai notasi Landau (Landau notation), Bachman-Landau notation, atau notasi asimtotik (asymptotic notation).

(12)

waktu dan ruang yang diperlukan algoritma dengan meningkatkan ukuran masukan n. Untuk menjelaskan konsep Big-O, diasumsikan terdapat dua fungsi f dan g, dengan kecepatan tingkat pertumbungan yang berbeda. Misalnya, f(n) = 100n2, dan g(n) = n4. Perbandingan pertumbuhan fungsi f dan g dapat dilihat pada Table 2.8, grafik fungsi f dan g dapat dilihat pada Gambar 2.4.

Tabel 2.8 Perbandingan

Pertumbuhan fungsi f dan g

Gambar 2.4 Grafik fungsi f dan g

Dari tabel 2.8 terlihat bahwa fungsi g(n) memiliki tingkat pertumbuhan yang lebih cepat dari pada f(n) saat n > 10, dan dapat dikatakan bahwa f(n) adalah Big-O dari g(n). Defenisi (Big-O): Misalkan f(n) dan g(n) adalah dua fungsi asimtot nonnegatif. Dapat dikatakan bahwa f(n) = O(g(n)), jika dan hanya jika terdapat dua konstanta positif C dan n0 sehingga demikian f(n) ≤ Cg(n) saat n n0.

Makna notasi Big-O adalah jika sebuah algoritma mempunyai waktu asimptotik O(f(n)), maka jika n dibuat semakin besar, waktu yang dibutuhkannya tidak akan

pernah melebihi suatu konstanta C dikali dengan f(n). Jadi, f(n) adalah batas lebih atas (upper bound) dari T(n) untuk n yang besar. Kita katakana T(n) berorde paling besar f(n) (Munir, 2006).

n f(n) g(n)

10 10.000 10.000

50 250.000 6.250.000

100 1.000.000 100.000.000

150 2.250.000 506.250.000 1 10

g

(13)

2.6Penelitian yang Relevan

Berikut ini beberapa penelitian tentang kriptografi dan kompresi data yang berkaitan dengan algoritma Playfair Cipher dan Run Length Encoding :

1. Pada penelitian Namira (2014), diimplementasikan algoritma kriptografi knapsack dan algoritma kompresi data Run Length Encoding untuk

mengamankan dan kompresi file teks. Kesimpulan dari penelitian ini Kombinasi Algoritma Knapsack dan RLE pada file Teks tepat digunakan apabila dalam suatu plainteks (pesan asli) memiliki banyak perulangan karakter.

2. Berdasarkan penelitian oleh Lutvianus Satria (2015), membangun aplikasi enkripsi dan dekripsi pesan elektronik (SMS) dengan metode Playfair Cipher pada Smartphone berbasis Android. Hasil pengujian yang dilakukan di beberapa versi android menunjukan bahwa aplikasi enkripsi dan dekripsi SMS menggunakan metode Playfair Cipher berjalan dan berfungsi dengan baik di semua versi android yang diujikan.

Gambar

Gambar 2.2. Skema Kriptografi Simetris
Gambar 2.3. Skema Kriptografi Asimetris
Tabel 2.2. Contoh matriks kunci
Tabel 2.3. Matriks Kunci 4 huruf disekitar huruf „I‟ sebelum diputar
+3

Referensi

Dokumen terkait

Tesis Upaya Pencegahan Penyakit TB Paru ..... ADLN - Perpustakaan

Tema yang dipilih dalam Skripsi yang dilaksanakan pada bulan Febuari 2017 sampai Mei 2017 ialah “Pemberian Bahan Pembenah Tanah Pada Lahan Tailing Pasir Pasca Penambangan

kegiatan ilmiah berupa diskusi atau seminar, mengenai bidang studinya; (2) selalu berusaha meningkatkan keefektifan mengajar, mencari cara- cara baru dalam menyampaikan materi

Pendidikan Islam pada dasarnya merupakan upaya normatif untuk membantu seseorang atau sekelompok peserta didik dalam mengembangkan pandangan hidup islami (bagaimana akan menjalani

Panjang tangkai mayang betina diukur dengan menggunakan meteran, mulai dari pangkal tangkai yang menempel di batang sampai bertemu dengan rangkaian buah pertama. Lingkar

Tujuan dari paper ini adalah untuk memperlihatkan bagaimana pemimpin NU, Abdurrahman Wahid (selanjutnya ditulis Gus Dur), menggunakan wacana dialog antaragama sebagai: pertama

Peran dan Fungsi Penilai Kerugian (Loss Adjuster) Dalam Penyelesaian Klaim Asuransi Kerugian Berdasarkan Undang-Undang Nomor 40 Tahun 2014 Tentang Perasuransian. Fakultas Hukum

Penilai kerugian asuransi dalam industri asuransi di Indonesia berdasarkan Undang-Undang Nomor 40 Tahun 2014, yaitu usaha jasa penilaian klaim dan/atau jasa konsultasi atas