IMPLEMENTASI ALGORITMA KRIPTOGRAFI DES, RSA DAN ALGORITMA KOMPRESI LZW PADA BERKAS DIGITAL SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai gelar Sarjana Komputer
M. YULI ANDRI 051401049
PROGRAM STUDI S1 ILMU KOMPUTER DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA MEDAN 2009
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
ii PERSETUJUAN
Judul
Kategori Nama Nomor Induk Mahasiswa Program Studi Departemen Fakultas
: IMPLEMENTASI ALGORITMA KRIPTOGRAFI DES, RSA DAN ALGORITMA KOMPRESI LZW PADA BERKAS DIGITAL : SKRIPSI : M. YULI ANDRI : 051401049 : SARJANA (S1) ILMU KOMPUTER : ILMU KOMPUTER : MATEMATIKA DAN ILMU PENGETAHUAN ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA Diluluskan di Medan, 06 september 2009
Komisi Pembimbing
:
Pembimbing 2
Pembimbing 1
M. Andri B, ST, McompSc, MEM NIP. 197510082008011011
Dr . Tulus, M.Si NIP. 196209011988031002
Diketahui/Disetujui oleh Program Studi S1 Ilmu Komputer Ketua,
Prof. Dr. Muhammad Zarlis NIP. 195707011986011003
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
iii PERNYATAAN
IMPLEMENTASI ALGORITMA KRIPTOGRAFI DES, RSA DAN ALGORITMA KOMPRESI LZW PADA BERKAS DIGITAL
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil kerja saya sendiri, kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.
Medan, 06 September 2009
M. Yuli Andri 051401049
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
iv PENGHARGAAN
Alhamdulillah, puji syukur saya panjatkan kehadirat Allah SWT, yang telah memberikan rahmat dan hidayah-Nya serta segala sesuatunya dalam hidup, sehingga saya dapat menyelesaikan penyusunan skripsi ini, sebagai syarat untuk memperoleh gelar Sarjana Komputer, Program Studi S1 Ilmu Komputer Universitas Sumatera Utara. Ucapan terima kasih yang sebesar – besarnya saya sampaikan kepada Bapak Dr. Tulus, M.Si sebagai Dosen Pembimbing I dan Bapak M. Andri B, ST, McompSc, MEM sebagai Dosen Pembimbing II yang telah memberikan bimbingan, saran, dan masukan kepada saya untuk menyempurnakan kajian ini. Panduan ringkas, padat dan profesional telah diberikan kepada saya sehingga saya dapat menyelesaikan skripsi ini. Selanjutnya kepada para Dosen Penguji Bapak Ir. T Ahri Bahriun, M.Sc dan Bapak Ir. Arman Sani, MT atas saran dan kritikan yang sangat berguna bagi saya. Ucapan terima kasih juga ditujukan kepada Ketua dan Sekretaris Program Studi S1 Ilmu Komputer, Bapak Prof. Dr. Muhammad Zarlis dan Bapak Syariol Sitorus, S.Si,MIT, Dekan dan Pembantu Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera Utara, semua dosen Program Studi S1 Ilmu Komputer FMIPA USU, dan pegawai di FMIPA USU. Skripsi ini penulis persembahkan untuk orang yang penulis sayangi Ayahanda Drs. Zulkifli dan Ibunda Dra. Zuryal Afifah yang senantiasa memberikan segalanya baik moril maupun materil yang tidak terbalaskan kepada penulis selama hidup penulis. Dan juga penulis persembahkan kepada adik-adik penulis Rahmad Gunawan, Muhammad Alkhadri dan Mila Rahmiza Putri yang senantiasa memberikan dukungan kepada penulis. Penulis juga berterima kasih kepada orang yang penulis sayang Ghita Sandra, karena dukungan dan motivasi darinya penulis dapat menyelesaikan skripsi ini. Penulis juga berterima kasih kepada temen seperjuangan penulis Said yang telah berjuang bersama penulis dari kecil, serta teman-teman Mario, Aldo, Rama, Jaya, Chandra, Mayang, Ayu, Dona, Yefri, David, dan Ahmad Zulhadmi. Serta kepada seluruh teman-teman penulis yang tidak bisa penulis sebutkan satu persatu. Saya menyadari bahwa skripsi ini masih jauh dari kesempurnaan, karena kesempurnaan hanya milik Allah. Oleh karena itu saya menerima saran dan kritik yang bersifat membangun demi kesempurnaan skripsi ini. Sehingga dapat bermanfaat bagi kita semuanya.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
v ABSTRAK
Penelitian ini menggunakan algoritma RSA dan DES yang merupakan bagian dari algoritma enkripsi dalam kriptografi. Algoritma RSA merupakan bagian dari kriptografi asimetri yang mana kunci enkripsinya berbeda dengan kunci deskripsi. Algoritma DES merupakan bagian dari algoritma simetri, yaitu kunci yang digunakan untuk enkripsi sama dengan kunci yang digunakan untuk deskripsi. Disamping masalah keamanan berkas, masalah ukuran dari sebuah berkas juga menjadi perhitungan. Berkas yang berukuran besar dapat dimampatkan dengan melakukan proses kompresi. LZW merupakan salah satu algoritma kompresi yang menggunakan dictionary. Penggabungan antara algoritma kriptografi dan algoritma kompresi tersebut menjamin berkas tidak dapat dilihat oleh pengguna yang tidak berhak, menjamin berkas dapat disimpan dalam media berkapasitas rendah yang kesemuanya menyebabkan proses pengiriman yang lebih cepat. Pada algoritma RSA akan terjadi penambahan ukuran berkas, hal ini dapat dilihat dari salah satu contoh kasus yang mana ukuran berkas awal adalah 848 bytes, kemudian setelah dilakukan proses enkripsi ukuran berkas telah menjadi 3,98 KB. Pada algoritma kompresi LZW terjadi pengurangan ukuran sebagai contoh kasus berkas cipherteks yang awalnya berukuran 3,98 KB setelah dilakukan proses kompresi ukurannya menjadi 3,81 KB.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
vi ABSTRACT
This research uses RSA and DES algorithms which are cryptographic encryption algorithms. RSA algorithm is one of asymmetric cryptography algorithms whose encryption key is different from its decryption key. Meanwhile, DES algorithm is one of symmetric cryptography algorithms whose encryption key is the same with its description key. Apart from its safety, the size of the file is also measured and big sized file may be compressed further. LZW is a compression algorithm which utilizes dictionaries. The fusion of these cryptography and compression algorithms makes sure that the file cannot be viewed by unauthorized users, and also makes sure that it can be saved in a low capacity media, which altogether makes the sending process faster. RSA algorithm may cause the size of the file to become larger which can be seen in one file whose initial size is 848 bytes and the RSA-encrypted size is 3.98 kilobytes. LZW algorithm is then applied to the encrypted file, reducing the size from 3.98 to 3.81 kilobytes.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
vii DAFTAR ISI
Halaman Persetujuan Pernyataan Penghargaan Abstrak Abstract Daftar Isi Daftar Tabel Daftar Gambar Bab 1 Pendahuluan 1.1 Latar Belakang 1.2 Rumusan Masalah 1.3 Batasan Masalah 1.4 Tujuan Penelitian 1.5 Manfaat Penelitian 1.6 Metode Penelitian 1.7 Sistematika Penulisan
ii iii iv v vi vii ix x 1 1 2 2 3 3 3 4
Bab 2 Landasan Teori 2.1 Kriptografi 2.1.1. Definisi Kriptografi 2.1.2. Sejarah Kriptografi 2.1.3. Tujuan Kriptografi 2.1.4. Terminologi dan Konsep Dasar Kriptografi 2.1.5. Jenis Kriptografi 2.1.6. Algoritma DES 2.1.7. Algoritma RSA 2.2 Kompresi 2.2.1. Definisi Kompresi 2.2.2 Algoritma Kompresi LZW
6 6 6 7 11 12 14 17 29 35 35 36
Bab 3 Analisis Permasalahan 3.1 Analisis Algoritma RSA 3.2 Analisis Algoritma DES 3.3 Analisis Algoritma LZW
39 41 46 52
Bab 4 Implementasi 4.1 Umum 4.2 Proses Pembangkitan Kunci 4.3 Proses Enkripsi 4.4 Proses Deskripsi 4.5 Proses Kompresi 4.6 Proses Dekompresi
57 58 59 61 62 63
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
viii Bab 5 Penutup 5.1 Kesimpulan 5.2 Saran
70 70 71
Daftar Pustaka
72
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
ix DAFTAR TABEL
Halaman Tabel 2.1 Tabel jumlah pergeseran bit tiap putaran Tabel 2.2 Tabel contoh cara kerja algoritma LZW Tabel 3.1 Tabel aturan putaran dari pergeseran bit
22 38 47
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
x DAFTAR GAMBAR
Halaman Gambar 2.1 Gambar 2.2 Gambar 2.3 Gambar 2.4 Gambar 2.5 Gambar 2.6 Gambar 2.7 Gambar 2.8 Gambar 2.9 Gambar 2.10 Gambar 2.11 Gambar 2.12 Gambar 2.13 Gambar 3.1 Gambar 3.2 Gambar 3.3 Gambar 3.4 Gambar 3.5 Gambar 3.6 Gambar 3.7 Gambar 3.8 Gambar 3.9 Gambar 3.10 Gambar 3.11 Gambar 3.12 Gambar 4.1 Gambar 4.2 Gambar 4.3 Gambar 4.4 Gambar 4.5 Gambar 4.6 Gambar 4.7 Gambar 4.8 Gambar 4.9 Gambar 4.10 Gambar 4.11 Gambar 4.12 Gambar 4.13 Gambar 4.14 Gambar 4.15 Gambar 4.16 Gambar 4.17
Urutan proses kriptografi gambar scytale Mesin Enigma Perbandingan plainteks dengan cipherteks Hubungan antara, kriptografi, kriptologi dan kriptanalis Skema kriptografi simetri Skema kriptografi asimetri Skema global algoritma DES Skema dasar algoritma DES Proses pembangkitan kunci internal algoritma DES Rincian komputasi fungsi f Skema dasar perolehan Ri Skema dasar proses deskripsi algoritma DES Skema global proses enkripsi Skema global proses kompresi skema global untuk proses dekompresi Skema global proses deskripsi Flowchart pembangkitan pasangan kunci pada RSA Flowchart enkripsi RSA Flowchart deskripsi RSA Flowchart pembangkitan kunci dalam DES Flowchart enkripsi DES Flowchart deskripsi DES Flowchart proses kompresi LZW Flowchart proses dekompresi LZW Gambar antarmuka dari form utama Antarmuka proses enkripsi secara default Antarmuka hasil pembangkitan pasangan kunci Antarmuka proses enkripsi Antarmuka menyatakan kompresi sukses Antarmuka dari proses deskripsi Antarmuka informasi deskripsi berhasil Antarmuka kompresi ketika membuka berkas Antarmuka kompresi ketika menyimpan berkas Antarmuka menyatakan bahwa kompresi sukses Antarmuka proses dekompresi saat membuka berkas Antarmuka proses dekompresi saat menyimpan berkas Antarmuka menyatakan bahwa proses dekompresi sukses Antarmuka berkas yang belum dilakukan proses encoding Antarmuka berkas yang telah mengalami proses encoding Ukuran berkas sebelum proses enkripsi Ukuran berkas setelah enkripsi
7 8 10 12 14 15 16 19 20 23 24 27 28 39 40 41 41 43 44 45 48 50 52 54 56 57 58 59 60 60 61 62 62 63 63 64 64 65 65 65 66 66
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
xi Gambar Gambar Gambar Gambar
4.18 4.19 4.20 4.21
Ukuran berkas sebelum proses enkripsi (contoh 2) Ukuran berkas setelah proses enkripsi (contoh 2) Ukuran berkas sebelum proses kompresi Ukuran berkas setelah proses kompresi 66
67 67 68 68
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Masalah keamanan dan kerahasiaan merupakan salah satu aspek penting dari suatu data, pesan dan informasi. Pengiriman suatu pesan, data dan informasi yang sangat penting membutuhkan tingkat keamanan yang tinggi. Dengan perkembangan teknologi informasi sekarang ini yang begitu pesat, di mana setiap orang akan mudah untuk mendapatkan suatu pesan, data dan informasi. Berbagai cara dilakukan orang untuk mendapatkan data dan informasi tersebut. Mulai dari tingkatan yang mudah sampai kepada cara-cara yang lebih rumit. Dan berbagai cara pula orang berusaha untuk melindungi pesan tersebut agar tidak dapat diketahui oleh orang yang tidak memiliki hak atas pesan atau data tersebut.
Di samping usaha pengaman, sekarang ini orang juga berusaha melakukan proses pengecilan ukuran suatu data (kompresi suatu data). Tujuan dari kompresi ini adalah untuk mempercepat pengiriman data atau informasi tersebut. Kompresi data juga memiliki tujuan untuk dapat mengurangi ukuran data dan dapat disimpan pad media penyimpanann yang memiliki ukuran relatif kecil. Keamanan dan kecepatan merupakan hal yang penting dalam komunikasi menggunakan komputer dan jaringan komputer.
Ilmu yang mempelajari tentang proses pengaman data adalah kriptografi. Secara umum ada dua jenis kriptografi, yaitu kriptografi klasik dan kriptografi modern. Kriptografi klasik adalah suatu algoritma yang menggunakan satu kunci untuk mengamankan data. Dua teknik dasar yang biasa digunakan adalah substitusi M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
2 dan transposisi (permutasi). Sedangkan kriptografi modern adalah algoritma yang lebih kompleks daripada algoritma kriptografi klasik, hal ini disebabkan algoritma ini menggunakan komputer. Algoritma yang akan penulis gunakan adalah algoritma kriptografi modern.
Ada banyak algoritma yang digunakan oleh orang untuk melakukan pengamanan data tersebut, diantaranya adalah Algoritma Data Encryption Standard (DES) dan Algoritma RSA. Algoritma DES merupakan algoritma enkripsi yang paling banyak dipakai di dunia. Secara umum standar enkripsi data terbagi menjadi tiga kelompok, yaitu pemrosesan kunci , enkripsi 64 bit dan deskripsi data 64 bit yang mana setiap kelompok akan saling berinteraksi satu sama lain. Karena algoritma DES ini telah banyak digunakan dan telah ada yang dapat memecahkannya, maka di sini penulis akan melakukan penggabungan dari algoritma DES dan algoritma RSA, agar tingkat keamanan yang didapatkan semakin tinggi.
Selanjutnya dalam hal kompresi juga memiliki berbagai macam algoritma yang digunakan orang, salah satunya adalah algoritma LZW. Penulis juga ingin melakukan penggabungan antara algoritma kriptografi di atas dengan algoritma kompresi.
1.2 Rumusan Masalah
Berdasarkan latar belakang masalah diatas, maka dapat dirumuskan masalah sebagai berikut :
a. Bagaimana mengimplementasikan kriptografi dan kompresi data dengan berbagai algoritma sekaligus. b. Bagaimana cara mengembalikan data yang sudah diolah menjadi data yang orisinal tanpa mengalami cacat sedikitpun. c. Apakah data yang telah mengalami proses enkripsi tersebut dapat dikompresi.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
3 1.3 Batasan Masalah
Agar pembahasan masalah ini tidak menyimpang, penulis akan memberikan beberapa batasan masalah, sebagai berikut :
a. Algoritma kriptografi yang digunakan yaitu algoritma kriptografi DES dengan Algoritma RSA. b. Metode kompresi yang digunakan, yaitu metode dictionary dengan algoritma kompresi data lossless LZW. c. Aplikasi ini hanya digunakan pada berkas teks saja. d. Aplikasi ini hanya dapat digunakan dan dijalankan oleh operator yang memiliki dasar ilmu kriptografi. e. Aplikasi bahasa yang digunakan adalah pemrograman Borland Delphi 7.
1.4 Tujuan Penelitian
a. Mengimplementasikan penggabungan antara algoritma-algoritma kriptografi dengan algoritma kompresi. b. Menganalisis data yang telah dienkripsi untuk dapat dikompresi.
1.5 Manfaat Penelitian
Adapun manfaat dari penelitian ini adalah :
a. Memberikan keamanan data bagi para pengguna. b. Memudahkan para pengguna dalam mengirim dan menyimpan data pada media penyimpanan yang relatif berkapasitas rendah.
1.6 Metodologi Penelitian
Dalam menyusun skripsi ini penulis melakukan beberapa metode untuk memperoleh data atau informasi dalam menyelesaikan permasalahan. Adapun metode yang dilakukan adalah : M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
4
1. Studi Literatur
Melalui studi ini penulis memperoleh data atau informasi dengan mengumpulkan, mempelajari dan membaca berbagai referensi baik itu dari buku-buku, jurnal, makalah, internet dan berbagai sumber lainnya yang menunjang dalam penulisan skripsi ini.
2. Analisis Data •
Menganalisa algoritma kriptografi DES, serta teknik-teknik yang digunakan.
•
Menganalisa algoritma kriptografi RSA, serta teknik-teknik yang digunakan.
•
Menganalisa algoritma kompresi LZW, serta teknik-teknik yang digunakan.
3. Perancangan Sistem
Merancang sistem aplikasi yang mengimplementasikan algoritma DES, RSA dan LZW dengan menggunakan bahasa pemrograman Borland Delphi 7.0
4. Pengujian Sistem
Melakukan pengujian terhadap aplikasi yang telah dirancang.
1.7 Sistematika Penulisan
Sistematika penulisan skripsi ini dibagi menjadi lima bab, yaitu :
BAB 1
Pendahuluan Berisikan konsep dasar penyusunan laporan skripsi.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
5 BAB 2
Tinjauan Teoritis Pada bab ini dibahas mengenai teori-teori yang mendukung pembahasan bab selanjutnya.
BAB 3
Analisis dan Pemodelan Perangkat Lunak Berisikan analisis permasalahan dan kebutuhan kompilator, serta pemodelan sistem secara fungsional.
BAB 4
Perancangan dan Implementasi Perangkat Lunak Berisikan
gambaran
rancangan
struktur
program
serta
memberikan gambaran dari rancang bangun yang lengkap kepada
user
dan
pemakai
komputer
yang
lain
serta
implementasinya yaitu menguji untuk menemukan kesalahan.
BAB 5
Kesimpulan dan Saran Merupakan rangkuman dari laporan skripsi.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
BAB 2
LANDASAN TEORI
2.1 Kriptografi
Kriptografi mempunyai peranan penting dalam dunia komputer. Hal ini disebabkan karena banyaknya informasi rahasia yang disimpan dan dikirmkan melalui mediamedia komputer. Informasi-informasi ini biasanya berisikan dokumen-dokumen penting dan data keuangan dari suatu instansi yang tidak ingin dibaca oleh orang yang tidak berhak atas informasi tersebut. Oleh karena itu ilmu kriptografi setiap saat selalu dikembangkan oleh orang untuk dapat menjaga fasilitas-fasilitas tersebut. Pada bab ini penulis akan membahas teori-teori yang berhubungan dengan ilmu kritografi.
2.1.1 Definisi Kriptografi
Kata kriptografi ini berasal dari bahasa Yunani. Dalam bahasa Yunani kriptografi terdiri dari dua buah kata yaitu cryptos dan graphia. Kata crypto berarti rahasia sedangkan graphia berarti tulisan. Berarti secara umum makna dari kata kriptografi adalah tulisan rahasia. Dan arti sebenarnya dari kriptografi adalah ilmu yang mempelajari tentang bagaimana menjaga kerahasiaan suatu pesan, agar isi pesan yang disampaikan tersebut aman sampai ke penerima pesan.(Dony Ariyus, 2008).
Dalam kamus Bahasa Inggris Oxford pengertian kriptografi adalah sebagai berikut : “Sebuah teknik rahasia dalam penulisan, dengan karakter khusus, dengan menggunkan huruf dan karakter di luar bentuk aslinya, atau dengan metode-
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
7 metode lain yang hanya dapat dipahami oleh pihak-pihak yang memproses kunci, juga semua hal yang ditulis dengan cara seperti ini”. Jadi secara umum dapat diartikan sebagai seni menulis atau memecahkan cipher.
Secara umum, kriptografi merupakan teknik pengamanan informasi yang dilakukan dengan cara mengolah informasi awal (plainteks) dengan suatu kunci tertentu menggunakan suatu metode enkripsi tertentu sehingga menghasilkan suatu informasi baru (chiperteks) yang tidak dapat dibaca secara langsung. Chiperteks tersebut dapat dikembalikan menjadi informasi awal (plainteks) melalui proses deskripsi. Urutan proses kriptografi secara umum dapat dilihat pada Gambar 2.1. plainteks
cipherteks Enkripsi
plainteks Dekripsi
Gambar 2.1 Urutan proses kriptografi
2.1.2 Sejarah Kriptografi
Kriptografi mempunyai sejarah yang panjang dan menakjubkan. Informasi yang lengkap mengenai sejarah kriptografi dapat ditemukan di dalam buku David Kahn yang berjudul The Codebreakers. Buku yang tebalnya 1000 halaman ini menulis secara rinci sejarah kriptografi, mulai dari penggunaan kriptografi oleh Bangsa Mesir 4000 tahun yang lalu (berupa hieroglyph pada piramid) hingga penggunaan kriptografi abad ke-20.
Sebagian besar sejarah kriptografi merupakan bagian dari kriptografi klasik, yaitu metode kriptografi yang menggunakan kertas dan pensil atau menggunakan alat bantu mekanik yang sederhana. Kriptografi klasik secara umum dikelompokkan menjadi dua kategori, yaitu algoritma transposisi (transposition cipher) dan algoritma substitusi (substitution cipher). Algoritma transposisi adalah algoritma yang mengubah susunan-susunan huruf di dalam pesan, sedangkan algoritma substitusi yaitu mengganti setiap huruf atau kelompok huruf dengan sebuah huruf atau kelompok huruf yang lain. M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
8
Penggunaan transposition cipher yaitu oleh tentara Sparta di Yunani pada permulaan tahun 400 SM. Mereka menggunakan apa yang dinamakan scytale (gambar 2.2a). Scytale terdiri dari sebuah kertas panjang dari daun papyrus yang dililitkan pada sebuah silinder dari diameter tertentu (diameter dari silinder merupakan kunci dari penyandian tersebut). Pesan ditulis baris per baris dan secara horizontal (gambar 2.2b). Apabila pita dilepas, maka setiap huruf akan tersusun secara acak membentuk pesan rahasia (pesan yang tidak dapat dibaca). Agar pesan tersebut dapat dibaca, maka pesan tersebut harus kembali dililitkan ke silinder yang diameternya sama dengan diameter silinder pengirim.
(a)
(b)
Gambar 2.2. (a) Sebuah scytale; (b) Pesan ditulis secara horizontal, baris per baris. (Rinaldi Munir, 2006).
Contoh untuk substitution cipher adalah Caesar cipher. Pada zaman Romawi Kuno, disaat Julius Caesar ingin mengirimkan sebuah pesan rahasia kepada seorang jenderal di medan perang. Pesan tersebut akan dikirimkan melalui seorang kurir. Karena tingkat kerahasiaan pesan yang tinggi, maka Julius Caesar
tidak mau
mengambil resiko jika pesan tersebut sampai ke tangan musuh. Maka Caesar mensubstitusi pesan tersebut dengan cara mengganti huruf-huruf alfabet a menjadi d, b menjadi e, c menjadi f dan seterusnya. Sebelumnya kunci dari pesan tersebut telah diberitahu oleh Julius Caesar kepada jenderal yang akan menerima pesan tersebut. Dengan demikian, walaupun pesan tersebut jatuh ke pihak musuh, maka musuh tersebut tidak akan dapat membaca pesan tersebut.
Para kalangan gerejapun menggunakan kriptografi pada masa awal agama kristen. Tujuan penggunaannya adalah untuk menjaga tulisan relijius dari gangguan M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
9 otoritas politik atau budaya yang dominan pada saat itu. Yang sangat terkenal pada saat itu adalah Angka si Buruk Rupa (Number of the Beast) di dalam kitab perjanjian baru. Angka “666” menyatakan cara kriptografi untuk menyembunyikan pesan berbahaya; para ahli percaya bahwa pesan tersebut mengacu pada Kerajaan Romawi.
Kriptografi juga digunakan oleh para pecinta untuk berkomunikasi tanpa diketahui oleh orang lain. Ini kebanyakan digunakan oleh masayarakat India, hal ini terbukti dengan ditemukannya di dalam buku Kama Sutra yang merekomendasikan wanita seharusnya mempelajari seni dengan memahami cipher. Ratu Skotlandia, Queen Mary merupakan salah seorang korban pada abad ke-17. Ratu tersebut dipancung setelah ditemukannya surat rahasianya di balik penjara (surat yang terenkripsi berisi rencana pembunuhan terhadap Ratu Elizabeth I) berhasil dipecahkan oleh seorang pemecah kode.
Pada abad ke-15, ditemukan kode roda (wheel cipher) oleh Leo Battista Alberti. Kode ini terus dikembangkan menjadi alat enkripsi dan deskripsi hingga saat ini. Metode ini dikembangkan pada awalnya oleh Thomas Jefferson yang kemudian diberi nama roda kode Jefferson. Kemudian kode ini kembangkan lagi oleh Bazeries yang diberi nama silinder Bazeries. Alat ini lebih fleksibel, memungkinkan untuk dikembangkan secara terus menerus untuk menghindari code breaking. Meskipun demikian metode ini dapat dipecahkan oleh DeViaris pada tahun 1893. Meskipun demikian metode ini tetap terus dikembangkan dan dianggap aman untuk kasus-kasus tertentu.
Saat ditemukan pertama kali oleh Leon Albertini roda kode ini terdiri dari dua buah potongan silendris yaitu potongan silendris dalam dan potongan silendris luar, yang dikenal dengan cipher disk. Masing-masing potongan silendris memiliki seluruh label alfabet, dengan susunan yang tidak harus terurut dan sama. Potongan silendris luar merupakan alfabet untuk teks asli dan potongan silendris dalam merupakan alfabet untuk teks-kode dengan metode monoalphabetic substitution cipher alphabet, yaitu metode enkripsi yang mana satu karakter di teks asli diganti dengan satu karakter bersesuaian, atau fungsi satu ke satu.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
10 Pada abad ke-20, kriptografi lebih banyak digunakan oleh kalangan militer. Pada perang dunia ke II, Pemerintah Nazi Jerman membuat mesin enkripsi yang dinamakan dengan Enigma. Mesin ini menggunakan beberapa buah rotor (roda berputar), dan melakukan proses enkripsi yang sangat rumit. Jerman percaya pesan akan dikirim melalui enigma tidak akan terpecahkan kode enkripsinya. Tetapi anggapan Jerman tersebut salah, setelah mempelajari mesin enigma bertahun-tahun, sekutu berhasil memecahkan kode-kode tersebut. Setelah Jerman mengetahui kodekode mereka telah terpecahkan, kemudian enigma mengalami beberapa kali perubahan.
Enigma yang digunakan Jerman bisa mengenkripsi satu pesan dengan 15 milyar kemungkinan. Enigma termasuk kriptografi berbasis rotor. Mesin berbasis rotor ini dibangun dan dipatenkan oleh beberapa orang penemu dari negara-negara yang berbeda dari tahun 1917 sampai 1921, di antaranya oleh warga Amerika Edward Hug Hebern, warga Jerman Arthur Scherbius, warga Belanda Alexander Koch, dan warga Swedia Arvid Gerhard Damm. Milik Koch dikembangkan oleh Arthur Scherbius
yang
dipatenkan diberi
nama
enigma.
Angkatan
Laut
Jerman
memperkenalkan mesin kode Scherbius. Tahun 1930, enigma untuk versi militer dibangun. Diperkirakan mesin enigma yang digunakan pada tahun 1935 sampai 1945 adalah 100.000 mesin. Mesin Enigma dapat dilihat pada Gambar 2.3.
Gambar 2.3 Mesin enigma yang digunakan tentara Jerman pada perang dunia ke II (Rinaldi Munir, 2006)
Perkembangan peralatan komputer digital memicu terbentuknya kriptografi modern. Dengan komputer digital, akan sangat mungkin untuk menghasilkan cipher M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
11 yang lebih kompleks dan rumit. Kriptografi klasik pada umumnya dienkripsi karakter per karakter (menggunakan alfabet tradisional), sedangkan kriptografi modern beroperasi pada string biner. Cipher yang lebih kompleks seperti halnya DES (Data Encryption Standard) dan RSA adalah algoritma modern yang sangat dikenal di dunia kriptografi. Kriptografi modern tidak hanya berkaitan dengan teknik menjaga kerahasisaan pesan, tetapi
juga menghasilkan tanda tangan digital dan sertifikat
digital. Dengan kata lain kriptografi modern tidak hanya memberikan aspek keamanan, tapi juga kepada aspek-aspek lain.
2.1.3 Tujuan Kriptografi
Aspek-aspek keamanan di dalam kriptografi adalah :
1. Confidentiality (kerahasiaan) Layanan yang ditujukan untuk menjaga pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak.
2. Authentication (otentikasi) Penerima pesan dapat memastikan keaslian pengirimnya. Penyerang tidak dapat berpura-pura sebagai penerima ataupun pengirim pesan.
3. Integrity (data integritas) Penerima harus dapat memeriksa apakah pesan telah dimodifikasi di tengah jalan atau tidak. Seorang penyusup seharusnya tidak dapat memasukkan tambahan ke dalam pesan, mengurangi atau mengubah pesan selama data berada di perjalanan.
4. Nonrepudiation (nirpenyangkalan) Pengirim tidak dapat mengelak bahwa dia telah mengrim pesan, penerima juga tidak dapat mengelak bahwa dia telah menerima pesan tersebut.
Tujuan kriptografi secara umum adalah mewujudkan keempat aspek keamanan tersebut dalam teori dan praktek.(Dony Ariyus, Pengantar Ilmu Kriptografi, 2008). M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
12
2.1.4 Terminologi dan Konsep Dasar Kriptografi
Dalam bidang kriptografi akan ditemukan beberapa istilah atau terminologi. Isitilahistilah tersebut sangat penting untuk diketahui dalam memahami ilmu kriptografi. Oleh karena itu penulis akan menjelaskan beberapa istilah penting dalam bidang kriptografi yang akan sering penulis gunakan dalam tulisan penulis. Berikut merupakan istilah-istilah penting tersebut.
a. Plainteks dan Cipherteks
Pesan merupakan data atau informasi yang dimengerti maknanya. Nama lain dari pesan adalah plainteks. Pesan tersebut dapat dikirim (melalui kurir, saluran telekomunikasi, dan lain-lain) dan dapat juga disimpan dalam media penyimpanan (kertas, storage, dan lain-lain). Pesan dapat berupa teks, video, gambar, dan lain-lain. Agar pesan tersebut tidak dapat dimengerti maknanya bagi pihak lain, maka pesan perlu disandikan ke bentuk lain yang tidak dapat dipahami. Bentuk pesan yang telah tersandikan tersebut dinamakan dengan cipherteks (ciphertext). Perbandingan antara plainteks dan chiperteks dapat kita lihat pada Gambar 2.4.
(a). Plainteks
(b). Cipherteks
Gambar 2.4 Perbandingan plainteks dan cipherteks (Rinald Munir, 2006)
b. Peserta Komunikasi
Komunikasi data melibatkan pertukaran pesan antara dua entitas. Entitas yang pertama adalah pengirim, yang berfungsi mengirim pesan kepada entitas lain. Entitas M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
13 kedua adalah penerima, yang berfungsi menerima pesan yang dikirimkan. Entitasentitas ini dapat berupa orang, mesin (komputer), kartu kredit dan sebagainya. Contohnya mesin ATM berkomunikasi dengan komputer server di bank. Pengirim ingin mengirimkan pesan dengan aman sampai ke penerima. Jadi solusinya adalah dilakukan penyandian terhadap pesan tersebut agar tidak diketahui pihak-pihak yang tidak berkepentingan terhadap pesan tersebut.
c. Enkripsi dan Deskripsi
Proses penyandian pesan, dari plainteks ke cipherteks dinamakan dengan enkripsi (encryption) atau enchipering (standard nama menurut ISO 7498-2). Sedangkan proses mengembalikan pesan dari cipherteks ke plainteks dinamakan dengan deskripsi (descryption) atau dechipering (standard nama menurut ISO 7498-2). Proses enkripsi dan deskripsi dapat diterapkan pada pesan yang dikirim ataupun pesan yang disimpan. Encryption of data in motion mengacu pada enkripsi pesan yang ditransmisikan melalui saluran komunikasi, sedangkan istilah encryption of data at-rest mengacu pada enkripsi pesan yang tersimpan di dalam storage.
d. Kriptanalis dan Kriptologi
Kriptografi selalu memiliki perkembangan, karena kriptografi memiliki ilmu yang berlawan yang disebut dengan kriptanalisis. Kriptanalis (cryptanalysis) adalah ilmu dan seni untuk memecahkan cipherteks menjadi plainteks, tanpa memerlukan kunci yang digunakan. Pelakunya disebut dengan kriptanalis. Jika seorang kriptopgrafer (istilah bagi pelaku kriptografi) mentransformasikan plainteks ke cipherteks dengan menggunakan kunci, maka sebaliknya seorang kriptanalis berusaha memecahkan cipherteks tersebut untuk menemukan plainteks atau kunci. Kriptologi (cryptology) adalah studi mengenai kriptografi dan kriptanalis. Hubungan antara kriptologi, kriptografi dan kriptanalis dapat dilihat pada Gambar 2.5.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
14
Kriptologi
Kriptografi
Kriptanalisis
Gambar 2.5 Hubungan antara kriptologi, kriptografi dan kriptanalisis
2.1.5 Jenis Kriptografi
Berdasarkan kunci enkripsi dan deskripsinya algoritma kriptografi terbagi menjadi dua bagian yaitu :
1. Kriptografi simetri
Konsep dasar dari kriptografi kunci simetri adalah, di mana kunci untuk enkripsi dan deskripsi sama. Istilah lain dari kriptografi simetri ini adalah kriptografi kunci privat (privat-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 berbagi kunci sebelum pesan dikirimkan. Keamanan dari sistem ini terletak pada kerahasiaan kuncinya.
Semua kriptografi klasik menggunakan sistem kunci simetri ini. Sebelum tahun 1976 hanya kriptografi simetri inilah yang dikenal. Kriptografi modern juga ada yang masuk ke dalam lingkup kriptografi simetri ini diantaranya adalah algoritma DES (Data Encryption Standard), Triple-DES, dan lain-lain. Pada umumya cipher yang termasuk ke dalam kriptografi simetri ini beroperasi dalam mode blok (block cipher), yaitu setiap kali proses enkripsi atau deskripsi dilakukan terhadap satu blok data (yang berukuran tertentu), atau beroperasi dalam mode aliran (stream cipher),
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
15 yaitu setiap kali enkripsi atau deskripsi dilakukan terhadap satu bit atau satu byte data. Proses dari skema kriptografi simetri dapat dilihat pada Gambar 2.6.
Kunci Privat, K
Plainteks, P
Enkripsi Ek(P) = C
Kunci Privat, K
Chiperteks, C
Deskripsi Dk(C) = P
Plainteks,P
Gambar 2. 6 Skema kriptografi simetri
Kelebihan Kriptografi Simetri adalah :
1. Proses enkripsi atau deskripsi kriptografi simetri membutuhkan waktu yang singkat. 2. Ukuran kunci simetri relatif lebih pendek. 3. Otentikasi pengiriman pesan langsung diketahui dari cipherteks yang diterima, karena kunci hanya diketahui oleh penerima dan pengirim saja.
Kekurangan Kriptografi Simetri adalah :
1. Kunci simetri harus dikirim melalui saluran komunikasi yang aman, dan kedua entitas yang berkomunikasi harus menjaga kerahasiaan kunci. 2. Kunci harus sering diubah, setiap kali melakasanakan komunikasi.
2. Kriptografi asimetri
Berbeda dengan kriptografi kunci simetri, kriptografi kunci publik memiliki dua buah kunci yang berbeda pada proses enkripsi dan deskripsinya. Nama lain dari kunci asimetri ini adalah kriptografi kunci-publik (public-key cryptography). Kunci untuk enkripsi pada kriptografi asimetri ini tidak rahasia (diketahui oleh publik), sedangkan kunci untuk deskripsi bersifat rahasia (kunci privat). Entitas pengirim akan mengenkripsi dengan menggunakan kunci publik, sedangkan entitas penerima
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
16 mendeskripsi menggunakan kunci privat. Skema dari kriptografi asimetri dapat dilihat pada Gambar 2.7.
Kunci publik, K1
\ Plainteks, P
Enkripsi Ek1 (P) = C
Chiperteks, C
Kunci Privat, K2
Deskripsi Dk2 (C) = P
Plainteks, P
Gambar 2.7 Skema standar kriptografi kunci asimetri
Kriptografi asimetri ini dapat dianalogikan seperti kotak surat yang terkunci dan memiliki lubang untuk memasukan surat. Setiap orang dapat memasukkan surat ke dalam kotak surat tersebut, tetapi hanya pemilik surat yang memiliki kunci dan yang dapat membuka kotak surat. Kunci publik dapat dikirim ke penerima melalui saluran yang sama dengan saluran yang digunakan untuk mengirim pesan, tidak perlu takut, karena pihak yang tidak berkepentingan tidak akan dapat mendeskripsi pesan tersebut, karena tidak memiliki kunci privat.
Kelebihan kriptografi asimetri adalah :
1. Hanya kunci privat yang perlu dijaga kerahasiaanya oleh setiap entitas yang berkomunikasi. Tidak ada kebutuhan mengirim kunci privat sebagaimana pada kunci simetri. 2. Pasangan kunci privat dan kunci publik tidak perlu diubah dalam jangka waktu yang sangat lama. 3. Dapat digunakan dalam pengaman pengiriman kunci simetri. 4. Beberapa algoritma kunci publik dapat digunakan untuk memberi tanda tangan digital pada pesan.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
17 Kelemahan kriptografi asimetri adalah :
1. Proses enkripsi dan deskripsi umumnya lebih lambat dari algoritma simetri, karena menggunakan bilangan yang besar dan operasi bilangan yang besar. 2. Ukuran chiperteks lebih besar daripada plainteks. 3. Ukuran kunci relatif lebih besar daripada ukuran kunci simetri.
2.1.6 Algoritma DES (Data Encryption Standard)
Algoritma merupakan salah satu algoritma kriptografi simetri. Algoritma DES merupakan algoritma standar untuk kriptografi simetri. Pada subbab ini penulis akan membahas dasar-dasar dan prinsip kerja dari algoritma DES itu sendiri.
2.1.6.1 Sejarah DES (Data Encryption Standard)
DES (Data Encryption Standard) merupakan salah satu algoritma cipher blok yang merupakan standard dari algoritma enkripsi kunci simetri. Sebenarnya nama DES merupakan standar dari algoritma enkripsi, sedangkan nama aslinya adalah DEA (Data Encryption Algorithm), namun nama DES lebih populer daripada nama DEA. Sebenarnya algortima DES merupakan algoritma kriptografi pertama yang dipublikasikan secara umum oleh United States Federal Register pada tanggal 17 Maret 1975.
Pada tahun 1960-1971 sebuah proyek pertama IBM bernama LUCIFER yang dipimpim oleh Horst Feistel untuk kiptografi komputer. Proyek ini dikenal sebagai blok kode pada pengoperasian blok 64 bit dan menggunakan kunci 128 bit. Proyek LUCIFER dikomersilkan dan disebut dengan DES (Data Encryption Standard).
National Institue of Standard and Technology (NIST) mengeluarkan proposal untuk standar nasional pada tahun 1973. Isi proposal tersebut merupakan kriteria untuk standar algoritma kriptografi sebagai berikut :
a. Algoritma harus bisa memberikan level keamanan yang tinggi, M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
18 b. Algoritma harus lengkap dan mudah dimengerti, c. Keamanan algoritma harus mempunyai kunci, bukan tergantung dari algoritma yang ada, d. Algoritma harus available untuk semua user, e. Algoritma harus dapat beradaptasi dengan berabagai aplikasi, f. Algoritma
harus
ekonomis.
Perangkat
yang
menggunakannya
tidak
membutuhkan suatu alat yang canggih, g. Algoritma harus efisien bila digunakan,
Algoritma DES merupakan salah satu proposal terbaik tahun 1977. Tidak ada kritik yang datang dari kalangan ilmuwan tentang panjang kunci yang digunakan dan kotak-S yang merupakan bagian internal dari DES. Selama 20 tahun algoritma DES dipakai sebagai standar nasional hingga akhirnya diketahui bahwa algoritma DES tidak begitu aman, karena DES tidak memiliki struktur internal yang kuat. DES dievaluasi satu kali dalam lima tahun. Evaluasi yang pertama, 6 Maret 1987, dan evaluasi yang kedua pada 10 Desember 1992. Tetapi belum ada alternatif untuk menggantikan DES.
2.1.6.2 Enkripsi
DES merupakan algoritma cipher blok yang termasuk ke dalam sistem kriptografi simetri. DES beroperasi pada ukuran blok 64 bit. DES mengenkripsi 64 bit plainteks menjadi 64 bit cipherteks dengan menggunakan 56 bit kunci internal (internal key). Kunci internal pada Algoritma DES dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit. Skema global dari proses algoritma DES akan dilihat pada Gambar 2.8.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
19
Blok Plainteks
IP 16 kali Enchipering
IP-1
Blok cipherteks Gambar 2.8 Skema global algoritma DES
Skema global dari algoritma DES adalah sebagai berikut :
1. Blok plainteks dipermutasi dengan matriks permutasi awal (initial permutation atau IP). 2. Hasil permutasi awal kemudian di enchipering sebanyak 16 kali (16 putaran). Setiap putaran menggunakan kunci internal yang berbeda. 3. Hasil enchipering kemudian dipermutasi dengan matriks permutasi balikan (invers initial permutation atau IP-1) menjadi blok chiperteks.
Skema algoritma DES dapat dilihat pada Gambar 2.9.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
20 Plainteks
IP
L0
R0
f
K1
⊕ R1 = L0 ⊕ f(R0, K1)
L1 = R0
f
K2
⊕ L2 = R1
R2 = L1 ⊕ f(R1, K2)
L15 = R14
R15 = L14 ⊕ f(R14, K15)
f
K16
⊕ R16 = L15 ⊕ f(R15, K16)
L16 = R15
IP-1 Chiperteks
Gambar 2.9 Skema dasar algoritma DES
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
21 Dalam algoritma DES, terdapat kunci eksternal dan kunci internal. Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna. Kunci internal dapat dibangkitkan sebelum proses enkripsi
ataupun bersamaan dengan
proses enkripsi. Kunci eksternal panjangnya adalah 64 bit atau delapan karakter. Karena ada 16 putaran, maka kunci internal yang dibutuhkan sebanyak 16 buah, yaitu K1,K2,...,K16. Untuk membangkitkan kunci internal diperlukan beberapa langkah. Kunci eksternal 64 bit, di kompresi terlebih dahulu menjadi 56 bit menggunakan matriks permutasi kompresi PC-1. Dalam permutasi tiap bit kedelapan dari delapan byte kunci akan diabaikan. Sehingga akan ada pengurangan delapan bit dari 64 bit awal kunci eksternal. Matriks permutasi kompresi PC-1 :
57 10 63 14
49 2 55 6
41 59 47 61
33 51 39 53
25 43 31 45
17 35 23 37
9 27 15 29
1 19 7 21
58 11 62 13
50 3 54 5
42 60 46 28
34 52 38 20
26 44 30 12
18 36 22 4
Setelah di dapatkan 56 bit hasil permutasi, selanjutnya 56 bit ini akan dibagi menjadi dua bagian, kiri dan kanan, yang masing-masing panjangnya 28 bit. Kemudian kedua bagian tersebut akan disimpan ke dalam C0 dan D0.
C0 : berisi bit-bit dari K pada posisi : 57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26,18 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36
D0 : berisi bit-bit dari K pada posisi :
63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22 14, 6, 61, 53, 45, 37, 29, 21, 21, 13, 5, 28, 20, 12
Proses selanjutnya adalah, kedua bagian (C0 dan D0) digeser ke kiri (left shift) sepanjang satu atau dua bit, tergantung pada tiap putaran. Perputaran ini bersifat
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
22 wrapping atau round-shift. Bisa kita lihat pergeseran bit dari tiap putaran pada tabel 2.1.
Tabel 2.1 Jumlah pergeseran bit pada tiap putaran
Putaran, i
Jumlah pergeseran bit 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Hasil dari pergeseran C0 dan D0 akan didapatkan nilai dari C1 dan C2. Begitu seterusnya, sampai proses tersebut menghasilkan C16 dan D16. untuk mendapatkan kunci internal pertama (K1), maka bit dari C0 dan D0 tadi dilakukan permutasi kompresi dengan menggunakan matriks PC-2 berikut :
14 23 41 44
17 19 52 49
11 12 31 39
24 4 37 56
1 26 47 34
5 8 55 53
3 16 30 46
28 7 40 42
15 27 51 50
6 20 45 36
21 13 33 29
10 2 48 32
Jadi setiap kunci Ki mempunyai panjang 48 bit. Apabila proses pergerseran bit-bit dijumlahkan semuanya, makanya jumlah seluruhnya sama dengan 28 putaran. Jumlah ini sama dengan jumlah bit pada Ci dan Di. Oleh karena itu, setelah putaran ke 16 akan didapatkan kembali C16 = C0 dan D16 = D0. Gambar 2.10 akan memperlihatkan bagaimana cara pembangkitan kunci internal pada algoritma DES.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
23
Kunci eksternal
Permutasi PC-1
C0
D0
Left Shift
Left Shift
C1
D1
Left Shift
Left Shift
. . .
. . .
Ci
Di
. . .
. . .
Left Shift
Left Shift
C16
Permutasi PC-2
K1
Permutasi PC-2
K2
Permutasi PC-2
K3
D16
Gambar 2.10 Proses pembangkitan kunci internal pada algoritma DES
Proses enchipering terhadap blok plainteks dilakukan setelah permutasi awal. setiap blok plainteks mengalami 16 kali putaran enchiperin. Setiap putaran enchipering merupakan jaringan Feistel yang secara matematis dinyatakan sebagai : Li = Ri-1
(2.1)
Ri = Li-1 ⊕ f(Ri-1,Ki)
(2.2)
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
24 Diagram fungsi f diperlihatkan pada Gambar 2.11
Ri-1
E(Ri-1)
⊕
Ki
E(Ri-1) ⊕ Ki = A
S1
S8
Matriks Substitusi
B
P(B)
Gambar 2.11 Rincian komputasi fungsi f
E merupakan fungsi ekspansi yang memperluas blok Ri-1 yang mempunyai panjang 32 bit menjadi blok 48 bit. Fungsi ekspansi direalisasikan dengan matriks ekspansi sebagai berikut :
32 8 16 24
1 9 17 25
2 10 18 26
3 11 19 27
4 12 20 28
5 13 21 29
4 12 20 28
5 13 21 29
6 14 22 30
7 15 23 31
8 16 24 32
9 17 25 1
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
25 Hasil ekspansi E(Ri-1), yang panjangnya 48 bit di-XOR-kan dengan Ki yang panjangnya 48 bit menghasilkan vektor A yang panjangnya juga 48 bit. Kemudian vektor A dikelompokkan menjadi delapan bagian, yang masing-masing bagian berisi 6 bit, dan merupakan masukan dari proses substitusi.
Proses substitusi menggunakan delapan buah kotak-S (S-box). Kotak-S adalah matriks yang berisi substitusi sederhana yang memetakan satu atau lebih bit dengan satu atau lebih bit lainnya. Kotak-S merupakan satu-satunya nirlanjar di dalam algoritma, karena operasinya adalah look-up table. Masukan dari operasi look-up table dijadikan sebagai indeks kotak-S, dan keluarannya adalah entry di dalam kotak-S.
Dalam algoritma DES kotak-S yang digunakan adalah 6 x 4 S-box yang berarti menerima masukan enam bit dan menghasilkan keluaran empat bit. Kelompok enam bit pertama menggunakan S1, kelompokan enam bit berikutnya menggunakan S2 dan seterusnya sampai menggunakan S8, sehingga secara keseluruhan akan menghasilkan 32 bit keluaran yang dinamakan dengan vektor B. Delapan kotak-S tersebut adalah :
S1 14 0 4 15
4 15 1 12
13 7 14 8
1 4 8 2
2 14 13 4
15 2 6 9
11 13 2 1
8 1 11 7
3 10 15 5
10 6 12 11
6 12 9 3
12 11 7 14
5 9 3 10
9 5 10 0
0 3 5 6
7 8 0 13
1 13 14 8
8 4 7 10
14 7 11 1
6 15 10 3
11 2 4 15
3 8 13 4
4 14 1 2
9 12 5 11
7 0 8 6
2 1 12 7
13 10 6 12
12 6 9 0
0 9 3 5
5 11 2 14
10 5 15 9
0 7 6 10
9 0 4 13
14 9 9 0
6 3 8 6
3 4 15 9
15 6 3 8
5 10 0 7
1 2 11 4
13 8 1 15
12 5 2 14
7 14 12 3
11 12 5 11
4 11 10 5
2 15 14 2
8 1 7 12
S2 15 3 0 13 S3 10 13 13 1
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
26 S4 7 13 10 3
13 8 6 15
14 11 9 0
3 5 0 6
0 6 12 10
6 15 11 1
9 0 7 13
10 3 13 8
1 4 15 9
2 7 1 4
8 2 3 15
5 12 14 11
11 1 5 12
12 10 2 7
4 14 8 2
15 9 4 14
12 11 2 8
4 2 1 12
1 12 11 7
7 4 10 1
10 7 13 14
11 13 7 2
6 1 8 13
8 5 15 6
5 0 9 15
3 15 12 0
15 10 5 9
13 3 6 10
0 9 3 4
14 8 0 5
9 16 14 3
1 15 14 3
10 4 15 2
15 2 5 12
9 7 2 9
2 12 8 5
6 9 12 15
8 5 3 10
0 6 7 11
13 1 0 14
3 13 4 1
4 14 10 7
14 0 1 6
7 11 13 0
5 3 11 8
11 8 6 13
11 0 4 11
2 11 11 13
14 7 13 8
15 4 12 1
0 9 3 4
8 1 7 10
13 10 14 7
3 14 10 9
12 3 15 5
9 5 6 0
7 12 8 15
5 2 0 14
10 15 5 2
6 8 9 3
1 6 2 12
2 15 11 1
8 13 4 14
4 8 1 7
6 10 9 4
15 3 12 10
11 7 14 8
1 4 2 13
10 12 0 15
9 5 6 12
3 6 10 9
14 11 13 0
5 0 15 3
0 14 3 5
12 9 5 6
7 2 8 11
S5 2 14 4 11 S6 12 10 9 4 S7 4 13 1 6 S8 13 1 7 2
Setelah didapat vektor B, maka selanjutnya pada vektor B dilakukan proses permutasi, yang bertujuan untuk mengacak hasil proses substitusi kotak-S. Permutasi dilakukan dengan menggunakan matriks permutasi P (P-box). Keluarannya menghasilkan P(B) yang juga merupakan keluaran dari fungsi f. Proses selanjutnya yaitu bit-bit P(B) di-XOR-kan dengan Li-1 untuk mendapatkan Ri. Berikut ini adalah matriks permutasi P(B).
16 2
7 8
20 24
21 14
29 32
12 27
28 3
17 9
1 19
15 13
23 30
26 6
5 22
8 11
31 4
10 25
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
27 Skema sederhana perolehan Ri diperlihatkan pada gambar 2.12. Li-1
f ⊕ Ri Gambar 2.12 Skema dasar perolehan Ri
Proses selanjutnya yaitu, permutasi terakhir yang dilakukan setelah 16 kali putaran terhadap gabungan dari blok kiri (L) dan blok kanan (R). Proses permutasi dilakukan dengan menggunakan matriks permutasi balikan (invers initial permutation) atau IP-1 sebagai berikut :
40 38 36 34
8 6 4 2
48 46 44 42
16 14 12 10
56 54 52 50
24 22 20 18
64 62 60 58
32 30 28 26
39 37 35 33
7 5 3 1
47 45 43 41
15 13 11 9
55 53 51 49
23 21 19 17
63 61 59 57
31 29 27 25
2.1.6.3 Deskripsi
Pada algoritma DES proses deskripsi dan enkripsinya menggunakan kunci yang sama. Proses deskripsi pada cipherteks merupakan kebalikan dari proses enkripsi. Jika pada proses enkripsi urutan kunci yang digunakan adalah K1, K2, ... , K16, maka untuk proses deskripsi urutan kunci yang digunakan adalah K16, K15, ... , K1. Masukan awalnya adalah R16 dan L16 untuk dechipering. Blok R16 dan L16 diperoleh dengan mempermutasikan chiperteks dengan matriks permutasi IP-1. Skema proses deskripsi diperlihatkan pada Gambar 2.13.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
28
chiperteks
IP-1
L16
R16
K16
f ⊕ R15 = L0 ⊕ f(R16, K16)
L15 = R16
f
K15
⊕ L14 = R15
R14 = L15 ⊕ f(R15, K15)
L1 = R2
R1= L2 ⊕ f(R2, K2)
f
K1
⊕ R0 = L1 ⊕ f(R1, K1)
L0 = R1
IP
Plainteks Gambar 2.13 Skema dasar proses Deskripsi algoritma DES
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
29 2.1.7 Algoritma RSA (Rivest, Shamir, Adleman)
Secara umum aplikasi kunci publik terbagi menjadi 3 kategori :
1. Kerahasiaan Data
Hal ini sama dengan fungsi dari algoritma simetri, yaitu dapat digunakan untuk menjaga kerahasiaan suatu data melalui mekanisme enkripsi dan deksripsi. Contohnya adalah algoritma RSA.
2. Tanda tangan digital
Dengan menggunakan algoritma asimetri dapat membuktikan otentikasi pesan, maupun otentikasi pengirim (provide authentication) yaitu dengan tanda tangan digital. Contoh algoritma yang dapat digunakan adalah RSA. 3. Pertukaran kunci Algoritma kriptografi kunci publik dapat digunakan untuk pengiriman kunci simetri (session keys). Contoh algoritma yang dapat digunakan untuk aplikasi ini adalah algoritma RSA. Algoritma kriptografi kunci asimetri atau biasa disebut dengan algoritma kunci publik muncul karena adanya keterbatasan media perantara yang terjamin keamanannya untuk mendistribusikan kunci dalam kriptografi. Algoritma kriptografi simetri menggunakan kunci yang sama untuk proses enkripsi dan deskripsi, sehingga kedua belah pihak yang saling bertukar informasi maupun pihak penerima informasi harus berbagi kunci yang sama. Saluran-saluran komunikasi umum tidak mempunyai tingkat keamanan yang baik dalam pendistribusian kunci, sehingga kunci harus dikirim secara langsung melalui pihak ketiga yang dapat dipercaya.(Dony Ariyus, Computer Security, 2006)
Dengan permasalahan yang timbul di atas, digunakanlah algoritma kunci asimetri sebagai alternatif yang lebih aman. Dari berbagai algoritma kunci asimetri M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
30 yang paling populer adalah algoritma kriptografi RSA. Keamanan dari algoritma RSA ini terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Selama pemfaktoran bilangan yang besar menjadi faktor-faktor prima belum ditemukan algoritma yang efektif, maka selama itu pula keamanan algoritma kriptografi RSA ini tetap terjamin keamanannya.
2.1.7.1 Sejarah RSA
Penemu pertama algoritma kriptografi kunci asimetri adalah Clifford Cocks, James H. Ellis dan Malcolm Williamson (sekelompok ahli matematika yang bekerja untuk United Kindom’s Government Communication Head Quarters, agen rahasia Inggris) pada awal tahun 1970. Pada waktu itu temuan itu dipublikasikan dan fakta mengenai temuan tersebut tetap menjadi rahasia hingga tahun 1997.
Algoritma kriptografi kunci asimetri untuk pertama kalinya dipublikasikan pada tahun 1976 oleh Whitfield Diffie dan Martin Hellman. Dua orang tersebut merupakan
ilmuwan
dari
Stanford
University,
yang
membahas
metode
pendistribusian kunci rahasia melalui saluran komunikasi umum (publik), yang kemudian metode tersebut dikenal dengan metode pertukaran kunci Diffie-Hellman (Diffie-Hellman Key Exchange).
Ide awal Clifford Cocks ditemukan kembali oleh sekelompok ilmuwan dari Massachussets Institute of Technology pada tahun 1977. sekelompok orang ini adalah Ron Rivest, Adi Shamir, dan Leonard Adleman. Mereka kemudian mempublikasikan temuan mereka pada tahun 1978 dan algoritma kriptografi kunci asimetri yang mereka temukan dikenal dengan nama algoritma kriptografi RSA. RSA itu sendiri merupakan akronim dari nama keluarga mereka, Rivest, Shamir, dan Adleman.
Pada tahun 1983, Massachussets Institute of Technology menerima hak paten atas sebuah makalah berjudul “Cryptography Communication System and Method” yang mengaplikasikan penggunaan algoritma kriptografi RSA. (Yusuf Kurniawan, 2004).
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
31
2.1.7.2 Proses Enkripsi dan Deskripsi RSA
Secara umum ada beberapa besaran-besaran yang harus diperhatikan dalam algoritma RSA, yaitu :
1. p dan q adalah bilangan prima
( rahasia )
2. n = p . q
( tidak rahasia )
3.
φ(n) = ( p-1 ) ( q-1 )
( rahasia )
4. e ( kunci enkripsi )
( tidak rahasia )
5. d ( kunci deskripsi )
( rahasia )
6. m ( plainteks )
( rahasia )
7. c ( chiperteks )
( tidak rahasia )
2.1.7.3 Rumus Algoritma RSA
Rumus untuk enkripsi : Ee(m) = c ≡ me mod n
(2.3)
Rumus untuk deskripsi : Dd(c) = m ≡ cd mod n
(2.4)
2.1.7.4 Algoritma Membangkitkan Pasangan Kunci
1. Memilih dua buah bilangan prima yaitu diberi simbol p dan q 2. Menghitung nilai n = p.q ( n ≠ p, karena jika n = p, maka nilai n = p2 dan akan dapat mudah mendapatkan nilai n ). 3. Hitung φ(n) = (p-1)(q-1). 4. Memilih kunci publik e yang relatif prima terhadap φ(n). 5. Bangkitkan kunci privat dengan menggunakan persamaan : M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
32
d=
1 + kΦ (n) e
(2.5)
Hasil dari algoritma di atas adalah :
a. Kunci publik adalah pasangan (e,n) b. Kunci privat adalah pasangan (d,n)
Penggunaan algoritma di atas dapat dicontohkan sebagai berikut :
Misalkan Ghiand dan Ahmad akan melakukan komunikasi. Mereka akan membangkitkan kunci publik dan kunci privat milik mereka. Ghiand memilih p = 47 dan q = 71, selanujutnya Ghiand menghitung :
n = p.q = 3337
(2.6)
φ(n) = (p-1)(q-1) = 3220
(2.7)
dan
Ghiand memilih kunci publik e = 79, karena 79 merupakan relatif prima terhadap 3220. Ghiand memberikan nilai e dan n kepada publik. Selanjutnya Ghiand akan membangkitkan kunci privat d dengan persamaan :
d=
1 + kΦ (n) e
Dengan mencoba nilai k =1,2,3,... diperoleh nilai d yang bulat adalah 1019. Ini merupakan kunci privat yang akan digunakan untuk mendeskripsikan cipherteks. Jadi pasangan yang dihasilkan adalah :
a. Kunci publik ( e = 79, n = 3337 )
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
33 b. Kunci privat ( d = 1019, n = 3337 )
2.1.7.5 Algoritma Enkripsi / Deskripsi
Enkripsi
1. Ambil kunci publik penerima pesan, e, dan modulus n. 2. Plainteks dinyatakan dengan blok-blok m1, m2, ..., sedemikian sehingga setiap blok merepresentasikan nilai di dalam selang [0, n-1]. 3. Setiap blok mi dienkripsikan menjadi blok ci dengan rumus ci = mie mod n Deskripsi
Setiap blok cipherteks ci dideskripsikan kembali menjadi blok mi dengan rumus : mi = cid mod n
Algoritma di atas dapat dicontohkan sebagai berikut :
Ahmad akan mengirim pesan kepada Ghiand. Pesan yang akan dikirimkan adalah :
m = HARI INI
atau dalam desimal ( kode ASCII ) adalah :
7265827332737873
Kemudian nilai di atas akan dipecah menjadi blok-blok m. Nilai-nilai m harus lah masih dalam selang [0, 3337 – 1]. Maka blok yang akan terbentuk adalah :
m1 = 726
m4 = 273
m2 = 582
m5 = 787
m3 = 733
m6 = 003
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
34
Ahmad telah mengetahui kunci publik Ghiand adalah e = 79 dan n = 3337. Ahmad dapat mengenkripsikan pesan berikut : c1 = 72679 mod 3337 = 215;
c2 = 58279 mod 3337 = 776;
c3 = 73379 mod 3337 = 1743;
c4 = 27379 mod 3337 = 933;
c5 = 78779 mod 3337 = 1731;
c6 = 00379 mod 3337 = 158;
Jadi cipherteks yang di hasilkan adalah :
215 776 1743 933 1731 158
Maka pesan yang telah terenkripsi tersebut akan dikirimkan kepada Ghiand, yang mana Ghiand telah memiliki kunci privat :
d = 1019
Setelah itu cipherteks tersebut akan dideskripsikan oleh Ghiand sesbagai berikut : m1 = 2151019 mod 3337 = 726
m2 = 7761019 mod 3337 = 582
m3 = 17431019 mod 3337 = 733
m4 = 9331019 mod 3337 = 273
m5 = 17311019 mod 3337 = 787
m6 = 1581019 mod 3337 = 003
maka akan dihasilkan kembali
m = 726 582 733 273 787 003
Yang dalam pengkodean ASCII dapat dibaca sebagai berikut :
m = HARI INI
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
35
2.1.7.6 Keamanan RSA
Pada dasarnya keamanan algoritma RSA ini terletak yaitu pada sulitnya memfaktorkan bilangan besar menjadi faktor-faktor prima. Pada RSA masalah pemfaktoran berbunyi : Faktorkan n menjadi dua faktor prima, p dan q, sedemikian hingga n = p.q. sekali n dapat difaktorkan menjadi p dan q, maka φ(n) = (p-1)(q-1) dapat dihitung. Selanjutnya kunci privatpun dapat dihitung.
2.2 Kompresi
Kompresi merupakan salah satu dari bidang ilmu komputer. Pada subbab ini penulis akan membahas teori-teori mengenai kompresi dan algoritma LZW sebagai algoritma kompresi yang penulis gunakan.
2.2.1 Definisi Kompresi
Kompresi data adalah ilmu atau seni merepresentasikan informasi dalam bentuk yang lebih compact. Pengertian lain dari data kompresi adalah proses mengkonversikan sebuah input data stream (stream sumber, atau data mentah asli) menjadi data stream lainnya (bitstream hasil, atau stream yang telah terkompresi) yang berukuran lebih kecil.(Ida Mengyi Pu, 2006).
Tujuan dari kompresi data adalah untuk merepresentasikan suatu data digital dengan sesedikit mungkin bit, tetapi tetap mempertahankan kebutuhan minimum untuk membentuk kembali data aslinya. Data digital ini dapat berupa text, gambar, suara, dan kombinasi dari ketiganya, seperti video.
Untuk membuat suatu data menjadi lebih kecil ukurannya dari pada data asli, diperlukan algoritma tertentu. Dalam algoritma kompresi data, tidak ada algoritma yang cocok untuk semua jenis data. Hal ini disebabkan karena data yang akan dikompres harus dianalisis terlebih dahulu, dan berharap menemukan pola tertentu
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
36 yang dapat digunakan untuk memperoleh data dalam bentuk yang lebih kecil. Karena itu, muncul banyak algoritma-algoritma kompresi data.
Secara garis besar, terdapat 2 buah penggolongan algoritma kompresi data kompresi lossy, dan kompresi lossless.
a.
Kompresi Lossy
Algoritma kompresi dikatakan lossy atau disebut juga irreversible jika tidak dimungkinkan untuk membentuk data asli yang tepat sama dari data yang sudah dikompresi. Ada beberapa detail yang hilang selama proses kompresi. Contoh penggunaan algoritma lossy seperti pada data gambar, suara dan video. Karena cara kerja sistem pengelihatan dan pendengararn manusia yang terbatas, beberapa detail dapat dihilangkan, sehingga didapat data hasil kompresi yang seolah-olah sama dengan data asli.
b.
Kompresi Lossless Algoritma kompresi dikatakan lossless atau disebut juga reversible jika dimungkinkan untuk membentuk data asli yang tepat sama dari data yang sudah dikompresi. Tidak ada informasi yang hilang selama proses kompresi dan dekompresi. Teknik ini digunakan jika data tersebut sangat penting, jadi tidak di mungkinkan untuk menghilangkan beberapa detail.
2.2.2 Algoritma Kompresi LZW Algoritma Lempel-Ziv-Welch (LZW), dikembangkan oleh Abraham Lempel, Jacob Ziv, dan Terry Welch. Dan dipublikasikan pada tahun 1984 oleh Terry Welch. LWZ dirancang sebagai peningkatan dari algoritma LZ78. Algoritma ini mereduksi jumlah token yang dibutuhkan menjadi 1 simbol saja. Simbol ini merujuk kepada index dalam dictionary. Proses kerjanya mirip dengan algoritma LZ78, tetapi jika pada algoritma LZ78 dictionary dimulai dari keadaan kosong, LZW mengisi dictionary ini dengan seluruh simbol alfabet yang dibutuhkan. M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
37 Pada kasus yang umum, 256 index pertama dari dictionary akan diisi dengan karakter ASCII dari 0-255. Karena dictionary telah diisi dengan semua kemungkinan karakter terlebih dahulu, maka karakter inputan pertama akan selalu dapat ditemukan dalam dictionary. Inilah yang menyebabkan token pada LZW hanya memerlukan 1 simbol saja yang merupakan pointer pada dictionary. (Linawati dan Pangabean H.P, 2004). Prinsip kerja LZW, dimulai dengan membaca karakter input satu persatu dan diakumulasi pada sebuah srting I. Lalu dilakukan pencarian dalam dictionary, apakah terdapat string I. Selama string I ditemukan didalam dictionary, string ini ditambahkan dengan satu karakter berikutnya, lalu dicari lagi dalam dictionary. Pada saat tertentu, menambahkan satu karakter x pada string I akan menyebabkan tidak ditemukan dalam dictionary. String I ditemukan, tetapi string Ix tidak. Dalam tahap ini, algoritma akan akan menulis index dari string I sebagai output, menambahkan string Ix kedalam dictionary, dan menginisialisasikan string I dengan x, lalu proses dimulai lagi dari awal.
Sebagai contoh, inputan adalah string : ada_beberapa_data_yang_hilang. Langkah pertama adalah mengisi dictionary dengan semua kemungkinan karakter, yaitu karakter ASCII dari 0-255, yang berarti index dictionary 0-255 telah berisi. Lalu string I diisi dengan karakter ”a”. Didalam dictionary, karakter ”a” ada pada index ke 97. Lalu string I ditambah dengan karakter selanjutnya ”d”. Frase ”ad” tidak ditemukan, maka akan dihasilkan token 97, dan frase ”ad” ditambahkan pada index ke 256 dalam dictionary. String I sekarang berisi ”d”, karena d ada pada index ke 100, maka string I ditambahkan dengan karakter selanjutnya, menjadi ”da”. Untuk langkah selanjutnya dapat dilihat dari tabel.
Kumpulan output yang berupa angka-angka inilah sebagai hasil kompresi. Karena menggunakan konsep dictionary yang sama seperti LZ78, pengorganisasian dictionary juga diperlukan, misalnya seperti seberapa besar dictionary yang disediakan, dan apa yang akan dilakukan jika dictionary sudah penuh.
Banyak algoritma berbasis dictionary lainnya dikembangkan dari tiga algoritma ini. Misalnya algortima LZMW, LZAP dan LZY adalah variasi dari LZW. Atau algoritma LZFG yang merupakan gabungan dari LZ77 dan LZ78. M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
38
Tabel 2.2 merupakan contoh dari penggunaan algoritma kompresi LZW.
Tabel 2.2 Contoh cara kerja algoritma LZW
String I Di dalam dictionary? Entry baru
Output Keterangan
A
ada
-
-
Ad
tidak
[256] = ad
97
D
ada
-
-
Da
tidak
[257] = da
100
A
ada
-
-
a_
tidak
[258] = a_
97
_
ada
-
-
_b
tidak
[259] = _b
95
B
ada
-
-
Be
tidak
[260] = be
98
E
ada
-
-
Eb
tidak
[261] = eb
101
B
ada
-
-
Be
ada
-
-
Ber
tidak
[262] = be
260
262 adalah index dari ”be”
...
...
...
...
...
97 adalah index dari ”a”
100 adalah index dari ”d”
97 adalah index dari ”a”
95 adalah index dari ”_”
98 adalah index dari ”b”
101 adalah index dari ”e”
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
BAB 3
ANALISIS PERMASALAHAN
Analisis
Dalam merancang suatu sistem diperlukan analisis terhadap sistem yang akan dirancang tersebut terlebih dahulu. Tujuan dari analisis ini sendiri adalah agar sistem yang dirancang menjadi tepat guna dan ketahanan dari sistem tersebut akan lebih terjaga. Di samping itu dengan dilakukannya analisis kita akan dapat mempermudah kerja kita dalam membuat sistem, dan jika suatu saat nanti ada perbaikan atau penambahan dalam sistem tersebut, maka akan mudah untuk diselesaikan.
Sistem yang akan penulis rancang tediri dari dua proses secara garis besar, yaitu proses enkripsi dan proses kompresi. Dimana untuk proses enkripsi penulis akan menggunakan algoritma kriptografi RSA dan DES. Sedangkan untuk proses kompresi penulis akan menggunakan algoritma LZW dengan menggunakan metode lossless. Skema global dari proses enkripsi dapat dilihat pada Gambar 3.1.
Gambar 3.1 Skema global proses enkripsi M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
40 Dari gambar di atas dapat dilihat bahwa plainteks (informasi awal) pertama kali dienkripsi menggunakan algoritma RSA. Dari proses yang pertama akan dihasilkan cipherteks sementara yang mana merupakan hasil enkripsi menggunakan algoritma RSA. Setelah itu proses selanjutnya yaitu, cipherteks sementara tadi akan dienkripsi kembali menggunakan algoritma DES, yang akan menghasilkan cipherteks dari keseluruhan proses enkripsi. Chiperteks inilah yang akan digunakan pada proses kompresi.
Gambar 3.2 merupakan skema global dari proses kompresi :
Gambar 3.2 Skema global proses kompresi
Dari gambar di atas dapat dilihat bahwa proses kompresi dilakukan terhadap berkas yang telah dienkripsi yang bertujuan agar berkas tersebut ukurannya dapat diperkecil. Hasil yang diharapkan adalah berkas chiperteks tersebut ukurannya dapat lebih kecil.
Di samping kedua proses di atas penulis juga akan melengkapi sistem ini dengan proses Dekompresi dan Deskripsi. Hal ini bertujuan agar berkas yang tadi telah dienkripsi dan dikompresi dapat kembali menjadi informasi awal yang dapat dimanfaatkan oleh orang yang berhak. Dalam proses pembalikan ini yang pertama penulis lakukan adalah mendekompresikan berkas hasil tadi, agar berkas tersebut ukurannya kembali menjadi berkas chiperteks sebelum dikompresi. Skema global proses dekompresi dapat dilihat pada Gambar 3.3. M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
41
Gambar 3.3 Skema global untuk proses dekompresi
Berkas cipherteks yang telah dikompresi akan di dekompresi kembali untuk menghasilkan berkas cipherteks yang akan dideskripsikan untuk mendapatkan kembali informasi awal (plainteks). Gambar 3.4 merupakan skema global dari proses deskripsi.
Gambar 3.4 Skema global proses Deskripsi
3.1 Analisis Algoritma RSA
Prinsip kerja algoritma RSA terletak pada sulitnya memfaktorkan bilangan yang besar menjadi faktor-faktor prima. Pemfaktoran dilakukan adalah untuk mendapatkan kunci M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
42 privat. Selama bilangan tersebut tidak dapat difaktorkan selama itu pula keamanan algoritma RSA terjamin. Dalam algoritma RSA terdapat beberapa besaran-besaran yang penting, yaitu sebagai berikut :
a. p dan q merupakan bilangan prima yang diambil secara acak, atau untuk lebih bagusnya dipilih oleh orang yang akan menerima pesan. Sifat dari kedua bilangan ini adalah rahasia, dimana hanya pengirim pesan dan penerima pesan saja yang mengetahui. b. n = p.q. sifat dari n ini adalah tidak rahasia, yang berarti bisa diketahui oleh publik. c.
φ(n) = (p-1)(q-1). Sifat dari bilangan ini adalah rahasia.
d. e(kunci enkripsi). Kunci enkripsi bersifat tidak rahasia. e. d(kunci deskripsi). Kunci deskripsi bersifat tidak rahasia. f. m(plainteks). Plainteks merupakan informasi awal yang bersifat rahasia. g. c(chiperteks). Chiperteks merupakan informasi yang telah dienkripsi yang bersifat tidak rahasia. (Dony Ariyus, 2006).
Langkah pertama dalam algoritma RSA ini adalah membangkitkan pasangan kunci (kunci publik, dan kunci privat). Sebagaimana yang telah kita ketahui kunci publik bersifat tidak rahasia dan boleh diketahui oleh semua orang, sedangkan kunci privat bersifat rahasia dan hanya orang berhak terhadap informasi tersebut saja yang dapat mengetahuinya. Berikut adalah langkah-langkah dalam membangkitkan pasangan kunci :
a. Pertama pilih dua buah bilangan prima secara acak. Bilangan itu diberi besaran p dan q. b. Hitung nilai n = p.q c. Hitung φ(n) = (p-1)(q-1) d. Pilih kunci publik yang disimbolkan dengan e. Syarat dari pemilihan kunci ini adalah e harus relatif prima terhadap φ(n). e. Membangkitkan kunci privat dengan persamaan d =
1 + kΦ (n) e
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
43 Hasil dari algortima di atas adalah :
1. Kunci publik adalah pasangan (e,n). 2. Kunci privat adalah pasangan (d,n).
Gambar 3.5 merupakan flowchart dari pembangkitan kunci dalam algoritma RSA.
Gambar 3.5 Flowchart pembangkitan pasangan kunci dalam RSA
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
44 Proses selanjutnya adalah proses enkripsi. Langkah-langkah dari proses enkripsi adalah sebagai berikut :
a. Langkah pertama adalah mengambil nilai e dan n dari proses pembangkitan kunci. b. Masukan teks yang akan dienkripsi(plainteks) c. Berkas yang akan dienkripsi di ubah kedalam bentuk desimal sesuai dengan tabel ASCII. Berkas ini dilambangkan dengan d. Membagi berkas tersebut menjadi beberapa blok (mi), dengan syarat mi < n dan length(mi) = length(mi+1). e. Setelah itu setiap blok dari berkas tersebut dienkripsikan menggunakan pasangan kunci publik.
Gambar 3.6 merupakan flowchart untuk enkripsi :
Gambar 3.6 Flowchart enkripsi RSA M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
45 Setelah didapatkan cipherteksnya, dengan begitu informasi tersebut tidak akan dapat dibaca lagi oleh orang tanpa melalui proses deskripsi. Proses deskripsi pada algoritma RSA ini memerlukan yang dinamakan dengan kunci privat. Kunci privat hanya diketahui oleh orang yang berhak atas informasi tersebut. Gambar 3.7 merupakan flowchart dari proses deskripsi pada algoritma RSA
Gambar 3.7 Flowchart Deskripsi RSA
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
46 3.2 Analisis Algoritma DES
Prinsip kerja DES adalah pembagian informasi menjadi blok-blok tertentu, oleh karena itu DES termasuk salah satu algoritma chiper blok. Pesan-pesan tersebutpun akan diacak dengan menggunakan matriks-matriks standar yang ada pada algoritma DES. Proses pertama yang penulis lakukan adalah membangkitkan kunci pada algoritma DES. Langkah-langkah dalam pembangkitan kunci adalah sebagai berikut :
a. Masukkan kunci eksternal, yang panjangnya 64 bit atau delapan karakter. b. Kemudian kunci eksternal 64 bit tadi dipermutasikan dengan matriks permutasi PC-1. sehingga panjang kunci yang tadinya 64 bit menjadi 56 bit. Matriks permutasi PC-1 :
57 10 63 14
49 2 55 6
41 59 47 61
33 51 39 53
25 43 31 45
17 35 23 37
9 27 15 29
1 19 7 21
58 11 62 13
50 3 54 5
42 60 46 28
34 52 38 20
26 44 30 12
18 36 22 4
c. Hasil permutasi yang panjangnya 56 bit tersebut kemudian dibagi menjadi dua blok, yaitu Cj dan Dj. Cj merupakan kumpulan dari bit pertama sampai bit ke 28, sedangkan Dj merupakan kumpulan dari bit ke 29 sampai 56. d. Kemudian pada kedua blok dilakukan pergeseran dengan aturan seperti yang ditunjukkan Tabel 3.1.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
47 Tabel 3.1 Tabel aturan putaran dari pergeseran bit
Putaran, i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Jumlah pergeseran bit 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
Tabel diatas merupakan tabel aturan tentang pergeseran dari C0 dan D0, dimana ketentuan pergeseran diatur oleh putaran. e. Setelah mengalami proses penggeseran, kedua blok tersebut digabungkan kembali dan akan dipermutasikan dengan matriks permutasi PC-2. Berikut adalah matriks permutasi PC-2
14 23 41 44
17 19 52 49
11 12 31 39
24 4 37 56
1 26 47 34
5 8 55 53
3 16 30 46
28 7 40 42
f. Hasil permutasi dengan matriks PC-2 di atas yang dinamakan dengan kunci internal yang akan kita gunakan untuk setiap putaran pada proses enkripsi dan deskripsi algoritma DES. Flowchart pembangkitan kunci pada algoritma DES dapat dilihat pada Gambar 3.8.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
48
Gambar 3.8 Flowchart pembangkitan kunci pada DES
Proses berikutnya yaitu proses enkripsi algoritma DES. Langkah–langkah proses enkripsi adalah sebagai berikut :
a. Pertama adalah menginputkan teks yang akan dienkripsi, dalam hal ini yang diinputkan adalah cipherteks hasil enkripsi menggunakan algoritma RSA. b. Selanjutnya teks tersebut akan dirubah menjadi bilangan biner dengan mengacu kepada nilai indeks pada tabel ASCII. c. Teks yang telah dirubah menjadi bilangan biner tersebut dalam hal pengerjaan enkripsi dibagi menjadi 64 bit. Berarti pengerjaan untuk algoritma DES adalah setiap delapan karakter atau 64 bit.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
49 d. Selanjutnya teks yang telah dibagi tadi kemudian di permutasi dengan matriks permutasi awal. Tujuannya adalah mengacak plainteks
57 10 63 14
49 2 55 6
41 59 47 61
33 51 39 53
25 43 31 45
17 35 23 37
9 27 15 29
1 19 7 21
58 11 62 13
50 3 54 5
42 60 46 28
34 52 38 20
26 44 30 12
18 36 22 4
e. Proses selanjutnya yaitu teks yang telah diacak tadi kemudian dibagi menjadi dua blok, yang masing-masing besarnya adalah 32 bit. Kedua blok tersebut dilambangkan dengan L0 dan R0 f. Proses selanjutnya yaitu melakukan putaran proses sebanyak 16 kali. Proses yang dilakukan dalam setiap putaran adalah sebagai berikut : Li = Ri-1 Ri = Li-1 ⊕ K1 g. Setelah dilakukan sebanyak 16 kali, maka pada proses selanjutnya kedua blok tersebut akan digabungkan kembali. h. Setelah penggabungan kedua blok, maka proses terakhir adalah melakukan permutasi dengan menggunakan matriks pertmutasi IP-1.
Berikut adalah
-1
matriks IP .
40 38 36 34
8 6 4 2
48 46 44 42
16 14 12 10
56 54 52 50
24 22 20 18
64 62 60 58
32 30 28 26
39 37 35 33
7 5 3 1
47 45 43 41
15 13 11 9
55 53 51 49
23 21 19 17
63 61 59 57
31 29 27 25
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
50 Flowchart untuk proses enkripsi algoritma DES dapat dilihat pada Gambar 3.9.
Gambar 3.9 Flowchart enkripsi DES M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
51 Proses selanjutnya adalah proses deskripsi, yang mana bertujuan untuk membalik berkas kembali menjadi informasi yang dapat digunakan oleh pengguna. Langkah-langkah dari proses deskripsi adalah sebagai berikut :
a. Pertama chperteks hasil enkripsi menjadi input. b. Kemudian
pada
cipherteks
dilakukan
proses
invers
permutasi
dengan
menggunakan matriks permutasi IP-1. c. Terus cipherteks dibagi menjadi dua blok seperti pada proses enkripsi. d. Setelah itu lakukan perputaran sebanyak 16 kali dengan memakai persamaan berikut
:
Lj-1 = Lj-1 + invers[Rj][PBOX] Rj-1 = Lj e. Kemudian kedua blok itu digabung kembali dan dilakukan invers permutasi dengan menggunakan matriks permutasi IP. Itulah hasil deskripsi menggunakan algoritma DES.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
52 Gambar 3.10 merupakan flowchart untuk proses deskripsi algoritma DES.
Gambar 3.10 Flowchart enkripsi DES M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
53 3.3 Analisis Algoritma LZW
Algortima LZW merupakan salah satu algoritma yang menggunakan metode dictionary. Algoritma ini mereduksi jumlah token yang dibutuhkan menjadi satu simbol saja. Simbol ini merujuk kepada indeks dalam dictionary. LZW memulai isi kamus dengan nilai-nilai ASCII, yaitu dari 0-255. Berarti kamus dalam LZW secara otomatis sudah terisi sebanyak 256 karakter.
Prinsip kerja LZW dimulai dengan membaca karakter masukan satu persatu dan diakumulasikan pada sebuah string i. Lalu dilakukan pencarian dalam dictionary, apakah terdapat string i. selama string i ditemukan di dalam kamus, string ini akan ditambahkan dengan satu karakter berikutnya, setelah diperiksa di dalam kamus, maka tidak ditemukan karakter tersebut. Maka akan diambil karakter sebelumnya sebagai output dan karakter yang baru tersebut ditambahkan ke dalam kamus.
Berikut
merupakan langkah-langkah dalam melakukan kompresi LZW :
a. Proses pertama yang dilakukan adalah menginputkan berkas yang akan dikompresi. b. Selanjutnya menginisialisasi 256 pertama dari kamus dengan karakter-karakter ASCII. c. Baca karakter pertama dari berkas sumber, selanjutnya baca karakter berikutnya, jika karakter kedua terdapat dalam kamus, maka lanjutkan dengan membaca karakter berikutnya, akan tetapi jika karakter kedua tidak ada dalam kamus, maka tambahkan kedua karakter tersebut ke dalam kamus. Maka yang akan diambil sebagai outputnya adalah adalah karakter pertama, sedangkan karakter kedua dijadikan karakter pertama pada proses berikutnya. d. Proses tersebut akan berlanjut sampai karakter terkahir dari berkas diproses.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
54 Gambar3.11 merupakan flowchart dari proses kompresi dengan algoritma LZW
Gambar 3.11 Flowchart kompresi LZW M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
55 Setelah dilakukan proses kompresi, untuk dapat memanfaatkan kembali berkas yang telah dikompresi tersebut, maka perlu proses deskripsi, yaitu proses pembalikan ukuran data kembali seperti semula. Berikut langkah-langkah yang dilakukan dalam proses deskripsi :
a. Proses pertama yaitu membaca string masukan terhadap berkas-berkas yang telah dikompresi. b. Proses berikutnya menginisialisasi isi dari kamus pertama dengan 256 karakter ASCII. c. Konversi teks ke dalam bentuk token. d. Kemudian baca token pertama selanjutnya disimpan pada variabel x. e. Ambil nilai elemen pada indeks x dari kamus simpan pada variabel word, element dan output. f. Selanjutnya baca satu token berikutnya dari teks, lalu simpan nilainya pada variabel x. g. Jika nilai x terdapat dalam kamus, maka ambil nilai elemen pada indeks x dari kamus simpan pada variabel element, akan tetapi jika nilai x tidak terdapat dalam kamus variabel element berisi word ditambahkan dengan karakter pertama dari word, kemudian tambahkan word dengan karakter pertama dari element ke dalam kamus. h. Proses selanjutnya yaitu tambahkan isi element ke dalam variabel output, dan kemudian pindahkan nilai variabel element ke word. Lakukan proses di atas sampai akhir dari berkas teks tersebut.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
56 Gambar 3.12 merupakan flowchart dari proses dekompresi dengan algoritma LZW.
Gambar 3.12 Flowchart dekompresi LZW M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
BAB 4
IMPLEMENTASI
4.1 Umum
Pada bab di jelaskan implementas dari sistem yang penulis rancang. Di sini seperti yang telah penulis bahwa secara menyeluruh penulis membagi sistem menjadi dua buah proses, yaitu proses enkripsi yang mana berfungsi mengubah plainteks menjadi chiperteks dan proses kompresi yang mana bertujuan agar memampatkan ukuran dari cipherteks yang terbentuk.
Pada implementasi sistem ini secara keseluruhan penulis membuat empat buah form, yang terdiri dari form utama yang berisikan tentang pilihan proses apa yang akan dilakukan. Bentuk antar muka form utama dapat dilihat dari Gambar 4.1.
Gambar 4.1 Antarmuka dari form utama M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
58
Dari gambar gambar di atas dapat dilihat bahwa di dalam form utama terdapat tiga buah menu. Menu tersebut yaitu menu file, menu kriptografi dan menu pemampatan. Pada menu file di dalamnya hanya terdapat menu exit, yang digunakan untuk keluar dari program. Pada menu kedua yaitu menu kriptografi terdapat tiga buah pilihan proses, yaitu pembangkitan kunci privat, proses enkripsi dan proses deskripsi. Sedangkan pada menu pemampatan terdapat dua proses yaitu proses kompresi dan proses dekompresi.
4.2 Proses pembagkitan kunci
Proses pembangkitan kunci terdapat dalam menu kriptografi, dimana seperti penulis jelaskan sebelumnya bahwa pembagkitan kunci ini merupakan pembangkitan kunci untuk algoritma RSA. Disini secara default akan tertera nilai 0 terlebih dahulu pada masing-masing masukan. Variabel yang menjadi masukannya adalah variabel p,q dan nilai dari kunci publik. Antar muka dari proses tersebut dapat dilihat pada Gambar 4.2.
Gambar 4.2 Antarmuka proses enkripsi secara default
Jika nilai p = 47, q = 71 dan kunci publik (e) = 79, maka hasilnya dapat dilihat pada Gambar 4.3.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
59
Gambar 4.3 Antarmuka hasil pembangkitan pasangan kunci
Syarat dari nilai p dan q adalah keduanya harus merupakan
bilangan prima.
Sedangkan masukan untuk kunci pubik(e) harus relatif prima terhadap φ(n). φ(n) = (p1)(q-1).
Setelah didapat pasangan kunci publik (e dan n), dan pasangan kunci privat (d dan n), maka tahap selanjutnya proses enkripsi dan deskripsi dapat dilakukan.
4.3 Proses Enkripsi
Proses enkripsi yaitu proses dimana perubahan informasi yang dapat kita baca (palainteks) menjadi informasi yang tidak dapat kita mengerti (cipherteks). Pada sistem ini proses enkripsi yang penulis lakukan menggunakan dua buah algoritma kriptografi yaitu algoritma RSA dan algoritma DES. Proses pertama yang penulis lakukan adalah mengenkripsi pesan tersebut dengan menggunakan algoritma RSA, sedangkan selanjutnya hasil enkripsi dengan menggunakan RSA akan dienkripsi kembali dengan menggunakan algoritma DES.
Pada proses enkripsi ini yang kita perlu masukan adalah kunci untuk algoritma RSA, sedangkan untuk algoritma DES penulis telah langsung menginputkan kuncinya kedalam listing program yang penulis buat. Gambar 4.4 merupakan antarmuka dari proses enkripsi.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
60
Gambar 4.4 Antarmuka proses enkripsi
Setelah kita memasukkan kunci publik, nilai n, file input, dan file output maka klik tombol enkripsi. Nilai kunci publik adalah nilai kunci publik yang kita bangkitkan pada proses pembangkitan kunci sebelumnya. Nilai n juga kita dapat dari hasil pembangkitan kunci publik. File input merupakan sumber berkas yang akan kita enkripsi, sedangkan file output adalah memasukkan lokasi dimana kita akan menyimpan hasil dari enkripsi kita. Setelah kita mengklik tombol enkripsi maka akan muncul pesan seperti pada Gambar 4.5.
Gambar 4.5 Antarmuka informasi bahwa enkripsi sukses
Setelah pesan tersebut keluar, maka berkas yang anda masukan tadi telah dienkripsi.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
61 4.4 Proses Deskripsi
Deskripsi merupakan proses pengembalian berkas cipherteks menjadi berkas plainteks. Jadi secara umum proses deskripsi merupakan kebalikan dari proses enkripsi. Jika sebelumnya pada proses enkripsi menggunakan algoritma RSA terlebih dahulu dan kemudian diikuti dengan algoritma DES, maka pada proses deskripsi merupakan kebalikannya, yaitu langkah pertama yang dilakukan adalah mendeskripsi cipherteks menggunakan algoritma DES dan baru diikuti dengan deskripsi menggunakan algoritma RSA.
Gambar 4.6 merupakan antar muka dari proses deskripsi.
Gambar 4.6 Antarmuka proses deskripsi
Setelah kita memasukkan kunci privat, nilai n, file input, dan file output maka klik tombol enkripsi. Nilai kunci privat adalah nilai kunci publik yang kita bangkitkan pada proses pembangkitan kunci sebelumnya. Nilai n juga kita dapat dari hasil pembangkitan kunci publik. File input merupakan sumber berkas yang akan kita deskripsi, sedangkan file output adalah memasukkan lokasi dimana kita akan menyimpan hasil dari deskripsi kita. Setelah kita mengklik tombol enkripsi maka akan muncul pesan seperti pada Gambar 4.7.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
62
Gambar 4.7 Antarmuka informasi bahwa deskripsi sukses
Setelah pesan tersebut keluar, maka berkas yang anda masukan tadi telah dideskripsi.
4.5 Proses Kompresi
Kompresi yaitu proses pemampatan atau pengukuran ukuran dari sebuah data ataupun informasi. Hal ini berguna sebagai penyimpanan dalam media berkapasitas rendah. Dan juga dapat mempercepat proses pengiriman data melalui media telekomunikasi. Gambar 4.8 merupakan antar muka dari proses kompresi.
\ Gambar 4.8 Antarmuka kompresi ketika membuka berkas
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
63
Gambar 4.9 merupakan antar muka penyimpanan berkas yang akan dikompresi.
Gambar 4.9 Antarmuka proses kompresi ketika menyimpan berkas
Dari dua gambar di atas gambar pertama merupakan proses membuka berkas yang akan dikompresi, sedangkan gambar kedua adalah dimana kita akan menyimpan berkas hasil kompresi. Setelah itu, kemudian tekan tombol save dan proses kompresi akan berhasil dengan tanda akan keluar kotak seperti Gambar 4.10.
Gambar 4.10 Antarmuka informasi bahwa kompresi sukses
4.6 Proses Dekompresi
Proses dekompresi yaitu proses pengembalian berkas yang telah dimampatkan tadi ke ukuran semula. Tujuannya adalah agar berkas tersebut bisa dideskripsi kembali dan bisa menjadi informasi yang berguna kembali oleh pihak yang berkepentingan. Gambar 4.11 merupakan antarmuka dari proses deskripsi. M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
64
Gambar 4.11 Antarmuka proses dekompresi saat membuka berkas
Gambar 4.12 merupakan antarmuka penyimpanan berkas proses dekompresi.
Gambar 4.12 Antarmuka proses dekompresi saat menyimpan berkas
Dari dua gambar di atas gambar pertama merupakan proses membuka berkas yang akan didekompresi, sedangkan gambar kedua adalah dimana kita akan menyimpan berkas hasil dekompresi. Setelah itu, kemudian tekan tombol save dan proses kompresi akan berhasil dengan tanda akan keluar kotak Gambar 4.13. M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
65
Gambar 4.13 Antarmuka bahwa informasi bahwa dekompresi sukses
Gambar 4.14 merupakan berkas awal sebelum proses encoding.
Gambar 4.14 Antarmuka berkas yang belum dilakukan proses encoding
Gambar 4.15 merupakan berkas yang telah dilakukan proses decoding.
Gambar 4.15 Antarmuka berkas yang telah mengalami proses encoding
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
66 Proses encoding dapat menyebabkan terjadinya perubahan dari ukuran berkas. Ukuran berkas setelah proses enkripsi akan menjadi lebih besar daripada berkas awalnya. Perbandingan ukuran berkas sebelum proses enkripsi dan deskripsi akan diperlihatkan pada Gambar 4.16 dan Gambar 4.17.
Gambar 4.16 Ukuran berkas sebelum proses enkripsi
Gambar 4.17 Ukuran berkas setelah proses enkripsi
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
67 Berikut merupakan contoh kedua perbandingan ukuran berkas sebelum dienkripsi dan sesudah dienkripsi, yang akan diperlihatkan oleh Gambar 4.18 dan Gambar 4.19.
Gambar 4.18 Ukuran berkas sebelum proses enkripsi (contoh 2)
Gambar 4.19 Ukuran berkas setelah proses enkripsi (contoh 2)
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
68 Dari kedua contoh di atas dapat dilihat bahwa ukuran berkas akan menjadi lebih besar setelah dilakukan proses enkripsi, hal ini disebabkan karena pada algoritma RSA akan dilakukan proses perpangkatan pada nilai-nilai dari setiap karakter yang akan dienkripsi.
Perubahan juga terjadi pada proses kompresi. Ukuran berkas sebelum dan sesudah proses kompresi dapat dilihat pada Gambar 4.20 dan Gambar 4.21.
Gambar 4.20 Ukuran berkas sebelum proses kompresi
Gambar 4.21 Ukuran berkas setelah proses kompresi
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
69 Dari gambar 4.22 dan 4.23 di atas dapat dilihat pengurangan ukuran berkas. Berkas yang awalnya berukuran 3,98 KB akan mengalami pengurangan menjadi 3,81 KB setelah dilakukan proses kompresi. Dapat disimpulkan bahwa proses kompresi dapat dilakukan pada berkas cipherteks, akan tetapi pengurangan ukuran tidaklah maksimal, hal
ini disebabkan karena untuk melakukan proses enkripsi pada
cipherteks memerlukan ukuran kamus yang besar.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
BAB 5
PENUTUP
5.1 Kesimpulan
Berdasarkan pembahasan dan evaluasi dari bab – bab terdahulu, maka dapat ditarik kesimpulan sebagai berikut :
1. Proses enkripsi dapat dilakukan dengan menggunakan dua buah algoritma kriptografi yang berbeda yaitu algoritma kriptografi simetri dan algoritma asimetri.
2. Penggunaan dua buah algoritma kriptografi akan membuat berkas cipherteks semakin susah untuk dipecahkan. Karena seorang kriptanalis tidak akan mengetahui algoritma apa yang digunakan pada berkas teks tersebut.
3. Penggunaan algoritma RSA akan memudahkan bagi orang yang berkomunikasi untuk mendistribusikan kunci. Hal ini disebabkan karena untuk melakukan proses enkripsi dan deskripsi menggunakan kunci yang berbeda.
4. Penggunaan algoritma kriptografi asimetri dalam hal ini menggunakan algoritma RSA menyebabkan ukuran berkas teks semakin besar.
5. Proses kompresi juga dapat dilakukan pada chiperteks, namun proses kompresi yang dilakukan tidaklah maksimal. Hal ini disebabkan karena penggunaan bilangan ASCII yang begitu banyak akan membuat isi kamus akan semakin besar.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
71
5.2 Saran
Berikut adalah saran – saran untuk pengembangan lebih lanjut terhadap penelitian skripsi ini :
1. Untuk kedepannya diharapkan dapat dilakukan perbaikan-perbaikan terhadap sistem yang penulis buat, terutama dalam kompresi berkas akan dapat lebih maksimal dalam memampatkan berkas teks tersebut.
2. Secara umum metode dictionary yang pada sistem ini diwakilkan oleh algoritma kompresi LZW tidak cocok digunakan untuk memampatkan data yang bersifat cipherteks, karena berkas cipherteks akan membutuhkan kamus yang besar dalam proses kompresi. Karena ukuran kamus yang besar, maka hasil kompresi yang didapat tidaklah seperti yang diharapkan.
3. Untuk kedepannya agar sistem yang penulis buat dapat berkembang tidak hanya dalam penggunaan berkas teks, melainkan juga dapat digunakan untuk berkasberkas seperti gambar, video, dan lain-lain.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.
72 DAFTAR PUSTAKA
Ariyus, Dony. 2006. Computer Security. Yogyakarta: ANDI
Ariyus, Dony.2008.Pengantar Ilmu Kriptografi : teori, analisis dan implementasi. Yogyakarta : ANDI.
Chandra, A. J. 2006. Analisa perbandingan kinerja algoritma kompresi huffman, LZW (Lempe-Ziv-Welch) dan DMC (Dynamic Markov Compresions). Universitas Kristen Petra. Skripsi tidak diterbitkan.
Kurniawan, Yusuf. 2004. Kriptografi Keamanan Internet dan Jaringan Komunikasi. Cetakan Pertama. Bandung : Informatika Bandung.
Linawati dan Panggabean, H.P. 2004. Perbandingan Kinerja Algoritma Kompresi Huffman, LZW, dan DMC pada Berbagai Tipe File. Integral Vol. 9 No. 1: hal. 7-16.
Munir, Rinaldi. 2006. Kriptografi. Cetakan Pertama. Bandung : Informatika Bandung.
Pu, Ida Mengyi. 2006. Fundamental Data Compression. London: ButterworthHeinemann.
Astrianto Stefanus. www.informatika.org/~rinaldi/Kriptografi/2007-2008/Makalah1/ MakalahIF5054-2007-A-062.pdf. Diakses pada tanggal 12 Mei 2009
http://id.wikipedia.org/wiki/Kunci_(kriptografi). Diakses pada tanggal 12 Mei 2009.
M. Yuli Andri : Implementasi Algoritma Kriptografi Des, Rsa Dan Algoritma Kompresi LZW Pada Berkas Digital, 2009.