Penerapan Metode Enkripsi Idea, Fungsi Hash MD5, dan Metode Kompresi Huffman untuk Keamanan dan Efisiensi Ruang Dokumen Raka Yusuf 1, Pesta Ferdinan Sitohang 2 Program Studi Teknik Informatika, Fakultas Ilmu Komputer, Universitas Mercu Buana Jl. Raya Meruya Selatan, Kembangan, Jakarta, 11650 E-mail : rakayusuf@mercubuana.ac.id 1, ferdinan.sitohang@gmail.com 2 Abstrak Penyimpanan data saat ini banyak berbentuk dokumen elektronik atau dalam kata lain file di dalam komputer. Masing-masing dokumen memuat informasi mulai dari yang bersifat umum, pribadi, hingga rahasia. Setiap dokumen memiliki isi yang berbeda-beda, semakin tinggi tingkat kerahasiaan sebuah dokumen, maka tingkat keamanan juga akan semakin tinggi. Banyak cara dilakukan untuk mengamankan dokumen, contohnya adalah dengan menggunakan teknologi enkripsi, dalam hal ini adalah teknologi enkripsi IDEA, dan fungsi hash MD5 yang berguna sebagai penanda keaslian sebuah dokumen. Semakin banyak dokumen, maka semakin besar pula kapasitas penyimpanan yang dibutuhkan. Kenyataannya terdapat hanya sedikit ruang untuk penyimpanan dokumen yang semakin banyak. Hal ini memaksa kita untuk menggunakan teknologi kompressi yang berfungsi untuk memadatkan dokumen-dokumen yang ada dengan menggunakan algoritma kompresi tertentu, sebagai contoh kita akan menggunakan teknik kompresi HUFFMAN. Hasil pengujian dari aplikasi ini adalah perangkat lunak dapat melakukan kompresi dan keamanan terhadap berbagai jenis file dan dengan ukuran yang lumayan besar, dapat dipergunakan untuk membantu pengamanan file dan penghematan ruang penyimpanan dokumen, dan juga dapat dipergunakan untuk melakukan verifikasi terhadap keabsahan sebuah dokumen. Kata kunci: Keamanan data, Enkripsi, Hash, Kompresi, Sandi I. PENDAHULUAN File merupakan hal yang tidak asing lagi bagi setiap orang. File yang merupakan media penyimpanan elektronik berkembang pesat sejak ditemukannya komputer. Komputer yang dulunya berukuran besar, sekarang telah berukuran kecil. Demikian juga halnya dengan file, semakin modern teknologi yang berkembang, maka jenis tipe file semakin beranekaragam. Berdasarkan sifat dari informasi yang dikandung oleh file, maka dapat dikategorikan kepada tiga bagian yaitu file yang menyimpan informasi yang umum, pribadi ataupun rahasia. Apabila ditinjau dari segi ukuran, maka file dibedakan menjadi file dengan ukuran kecil, sedang dan besar. Perkembangan teknologi yang berupa perangkat keras tidak bertumbuh sebanding dengan pertumbuhan data. Pertumbuhan data sangat cepat, tetapi pertumbuhan kapasitas penyimpanan data tidak dapat mengikuti pertumbuhan data tersebut. Teknologi komputer yang pada mulanya dapat dikatakan sebagai perangkat teknologi yang hanya berdiri sendiri, sekarang ini telah menjadi sebuah jaring laba-laba di mana masing-masing komputer yang saling terhubung membentuk jaringan yang bersifat lokal maupun internasional atau yang kita kenal dengan internet. Dengan kondisi tersebut, pertukaran data dan informasi terjadi sangat cepat. Kemajuan tersebut juga tidak dibarengi dengan perkembangan keamanan terhadap data dan informasi yang disimpan. Pertukaran informasi yang diberikan bisa sangat diragukan, karena kita tidak bisa menjamin apakah data yang diperoleh merupakan data asli dari si pengirim[2]. Apabila pada kondisi nyata, kita dapat mempergunakan tanda tangan ataupun penanda terhadap data atau informasi yang dikirimkan, bagaimana dengan data digital yang dimiliki[4]. II. ENKRIPSI IDEA DAN MD5 IDEA (International Data Encryption Algorithm) merupakan teknik enkripsi yang menggunakan secret key. IDEA dalam proses enkripsi memerlukan 128 bit kunci, dan menghasilkan 64 bit ciphertext. Dalam prosesnya IDEA membagi pesan 64 bit ke dalam 16 bit sub blok[3]. Proses IDEA adalah menggunakan operasi XOR, penjumlahan, dan perkalian. Terdapat delapan seri transformasi yang sama dan setengah transformasi keluaran pada IDEA. Operasi-operasi dasar tersebut dapat dilihat pada Gambar 1. Pada IDEA ada yang disebut dengan arsitektur dasar IDEA. Arsitektur dasar IDEA terdiri dari putaran IDEA, unit control dan penjadwalan kunci. Putaran IDEA terdapat tiga operasi dasar (perkalian, penjumlahan dan XOR) yang direpresentasikan dan dipetakan secara bersamaan[5]. Unit control adalah pengkondisian mesin dengan kondisi 1 dan 0. Penjadwalan kunci adalah berbanding lurus. Kunci masukan dari pengguna dibagi menjadi delapan kunci dengan masing-masing 16 bit. Kemudian kunci-kunci 380
ini akan dimasukkan ke secara logikan dan diputar oleh 25 bit dan dibagi lagi menjadi 8 kunci dengan masing-masing 16 bit. Arsitektur dasar IDEA dapat dilihat pada Gambar 2. MD5 dipergunakan untuk pengecekan keaslian dokumen dengan menghasilkan nilai hash ataupun penanda digital. Nilai yang dihasilkan untuk setiap dokumen adalah berbeda[7]. Sekalipun dokumen memiliki perbedaan yang tidak mencolok secara kasat mata, namun nilai hash yang dihasilkan akan berbeda. Satu operasi MD5 dapat dilihat pada Gambar 3. III. KOMPRESI HUFFMAN Metode kompresi Huffman adalah metode kompresi yang diperkenalkan oleh David A. Huffman ketika menjadi mahasiswa Ph. D. di MIT. Metode kompresi Huffman adalah dengan membentuk pohon biner ketika melakukan proses kompresi maupun dekompresi[1]. Kode Huffman menggunakan metode yang khusus untuk menentukan representasi setiap simbol, sebagai hasilnya adalah prefix code (terkadang disebut prefixtree code sistem kode, biasanya kode panjangvariabel dengan awalan properti ) (yang mana, kumpulan bit mewakili simbol tertentu tidak pernah menjadi awalan kumpulan bit yang mewakili simbol lain) mengekspresikan karakter yang umum menggunakan kumpulan bit-bit yang lebih pendek daripada penggunaan simbol-simbol yang tidak umum. Gambar 1. Proses Putaran IDEA. Gambar 3. Satu Operasi MD5 Gambar 2. Arsitektur Dasar IDEA. MD5 memproses pesan dengan panjang 512 bit dan dengan empat putaran. Masing-masing putaran terdiri dari enambelas operasi serupa. Operasi-operasi tersebut adalah logika XOR, AND, OR dan NOT. Keempat operasi ini dipergunakan dalam empat macam fungsi yaitu: F(X,Y,X) = (X Y) ( X Z) G(X,Y,Z) = (X Y) (Y Z) H(X,Y,Z) = X Y Z I(X,Y,Z) = Y (X Z),,, menunjukkan operasi logika XOR, AND, OR dan NOT. Dalam kompresi Huffman terdapat teknik dasar menciptakan sebuah pohon biner. Konstruksi algoritma termudah menggunakan antrian prioritas dimana titik dengan kemungkinan terkecil diberikan kesempatan tertinggi: 1. Ciptakan titik daun untuk setiap simbol dan tambahkan ke antrian prioritas. 2. Ketika terdapat lebih dari satu antrian: a. Hapuskan dua titik dengan prioritas tertinggi (kemungkinan terkecil) dari antrian. b. Ciptakan titik dalam baru dengan dua titik tersebut sebagai anak dan kemungkinan sama dengan jumlah kemungkinan kedua titik. c. Tambahkan titik baru ke dalam antrian. 3. Titik yang tersisa adalah akar dan pohon sudah lengkap. IV. PERANCANGAN SISTEM Dalam perancangan sistem terdapat DAD (Diagram Aliran Data), dan Flowchart. Gambar 4 adalah diagram konteks yang berisikan gambaran umum sistem. Sistem pemampatan dan 381
keamanan data menerima masukan yaitu pilihan, password, nama file dan password enkripsi/dekripsi. Hasil balikan dari sistem adalah file asli, pesan keabsahan, nilai hash dan file terenkripsi. Gambar 4 adalah diagram aliran data level satu. Sistem dijabarkan menjadi proses-proses yang lebih kecil. Proses dimulai dengan pemeriksaan pilihan, pengecekan file, melakukan proses hash, mengkompres file dan mengenkripsi file. Proses selanjutnya adalah proses penghilangan enkripsi (dekripsi), proses penghilangan kompresi (dekompres), melakukan proses hash dan pembandingan nilai hash untuk memperoleh status keabsahan. Pilihan Nama file Password Decrypt Operator Password Enkripsi File Asli Sistem Pemampatan dan Keamanan data Gambar 5. DAD Level 2 Proses MD5 Pesan Keabsahan Nilai Hash File Terenkripsi Gambar 4. Diagram Konteks Gambar 6. DAD Level 2 Proses Kompresi Gambar 4. DAD Level 1 Gambar 5 adalah diagram level dua proses MD5. Level ini terdiri dari proses pembagian pesan kedalam blok, penambahan bit-bit penyangga, menambahkan panjang pesan yang selanjutnya memproses pesan dengan penyangga. Gambar 6 adalah diagram level dua proses kompresi. Level ini terdiri dari proses pembacaan simbol, pembentukan pohon Huffman, pengurutan berdasarkan panjang kode, membentuk kode baru, mengurutkan berdasarkan panjang kode yang baru, serta pengkodean simbol dengan menggunakan kode yang baru. Gambar 7 adalah diagram level 2 proses enkripsi. Pada level ini proses proses yang terjadi yaitu membagi pesan kedalam 4 blok, membentuk kunci enkripsi, melakukan proses penjumlahan, melakukan proses perkalian, melakukan operasi XOR, melakukan operasi perkalian terakhir, melakukan operasi penjumlahan terakhir dan proses terakhir adalah menggabungkan blok-blok data hasil enkripsi. Gambar 7. DAD Level 2 Proses Enkripsi Gambar 8 merupakan gambaran flowchart sistem secara keseluruhan. V. PENGUJIAN Pengujian dilakukan untuk mengetahui apakah aplikasi yang dibangun sudah sesuai dengan fungsifungsi yang direncanakan, dan sesuai dengan metode yang dipilih. Proses pengujian dilakukan terhadap sebuah file teks seperti Gambar 9. 382
Berdasarkan file test Gambar 10 maka frekuensi a adalah 300, b adalah 300, c adalah 300, d adalah 100, { adalah 100 dan } adalah 100. Gambar 11 dan 12 memperlihatkan pengujian aplikasi pada fungsi MD5 dan kompresi Huffman. Dan Tabel 1 memperlihatkan tabel kode Huffman yg baru. Gambar 11. Pengujian MD5 Aplikasi Yang Dibangun Gambar 10. Pengujian MD5 dengan WinMD5[5] Tabel 1. Tabel Kode Huffman Baru. Gambar 8. Flowchart Sistem Pemampatan dan Keamanan {aaaaaaaaaa}{aaaaaaaaaa}{aaaaaaaaaa}{aaaaaaaa aa}{aaaaaaaaaa}{aaaaaaaaaa}{aaaaaaaaaa}{aaaaa aaaaa}{aaaaaaaaaa}{aaaaaaaaaa}{aaaaaaaaaa}{aa aaaaaaaa}{aaaaaaaaaa}{aaaaaaaaaa}{aaaaaaaaaa} {aaaaaaaaaa}{aaaaaaaaaa}{aaaaaaaaaa}{aaaaaaaa aa}{aaaaaaaaaa}{aaaaaaaaaa}{aaaaaaaaaa}{aaaaa aaaaa}{aaaaaaaaaa}{aaaaaaaaaa}{aaaaaaaaaa}{aa aaaaaaaa}{aaaaaaaaaa}{aaaaaaaaaa}{aaaaaaaaaa} {bbbbbbbbbb}{bbbbbbbbbb}{bbbbbbbbbb}{bbbbbbbb bb}{bbbbbbbbbb}{bbbbbbbbbb}{bbbbbbbbbb}{bbbbb bbbbb}{bbbbbbbbbb}{bbbbbbbbbb}{bbbbbbbbbb}{bb bbbbbbbb}{bbbbbbbbbb}{bbbbbbbbbb}{bbbbbbbbbb} {bbbbbbbbbb}{bbbbbbbbbb}{bbbbbbbbbb}{bbbbbbbb bb}{bbbbbbbbbb}{bbbbbbbbbb}{bbbbbbbbbb}{bbbbb bbbbb}{bbbbbbbbbb}{bbbbbbbbbb}{bbbbbbbbbb}{bb bbbbbbbb}{bbbbbbbbbb}{bbbbbbbbbb}{bbbbbbbbbb} {cccccccccc}{cccccccccc}{cccccccccc}{cccccccc cc}{cccccccccc}{cccccccccc}{cccccccccc}{ccccc ccccc}{cccccccccc}{cccccccccc}{cccccccccc}{cc cccccccc}{cccccccccc}{cccccccccc}{cccccccccc} {cccccccccc}{cccccccccc}{cccccccccc}{cccccccc cc}{cccccccccc}{cccccccccc}{cccccccccc}{ccccc ccccc}{cccccccccc}{cccccccccc}{cccccccccc}{cc cccccccc}{cccccccccc}{cccccccccc}{cccccccccc} {dddddddddd}{dddddddddd}{dddddddddd}{dddddddd dd}{dddddddddd}{dddddddddd}{dddddddddd}{ddddd ddddd}{dddddddddd}{dddddddddd} Gambar 9. File test 'yap.txt' Berdasarkan Tabel 1 jumlah bit yang diperlukan untuk meng-encode file test yap.txt adalah: 3 x (300 x 2) + 3 x (100 x 4) + 1 x (1 x 4) = 3004 bit. Char CodeLen Encoding 0x61 02 11 0x62 02 10 0x63 02 01 0x64 04 0011 0x7B 04 0010 0x7D 04 0001 EOF 04 0000 VI. KESIMPULAN Berdasarkan hasil analisa dan pengujian program maka dapat diambil beberapa kesimpulan sebagai berikut: 1. Perangkat lunak dapat melakukan kompresi dan keamanan terhadap berbagai jenis file dan dengan ukuran yang lumayan besar. 2. Perangkat dapat dipergunakan untuk membantu pengamanan file dan penghematan ruang penyimpanan dokumen. 3. Perangkat lunak dapat dipergunakan untuk melakukan verifikasi terhadap keabsahan sebuah dokumen. VII. DAFTAR PUSTAKA [1] Campos, Arturo, 1999. Cannonical Huffman. Dalam situs arturocampos.com. Dilihat pada tanggal 2 Oktober 2009. http://www.arturocampos.com/ac_canonical_huff man.html#pseudo%20code. [2] David, Kahn. 1967, The Codebreakers. ------------------1973. The Comprehensive History of Secret Communication from Ancient Times to the Internet. USA: The Macmillan Company. [3] Manezes, Alfred dkk. 1996. Handbook of Applied Cryptography. CRC Press. [4] Stamp, Mark. 2007. APPLIED CRYPTANALYSIS. USA: Jhon Wiley & Sons. 383
[5] Thomas Baignerer. 2006. A Classical Introduction to Cryptography. USA: Springer. [6] Van Tilborg, Henk. 2000. FUNDAMENTALS OF CRYPTOLOGY. USA: Kluwer Academic Publisher. [7] Yang, Herong. 2007. Message Digest - MD5 Algorithm. Dalam situs herongyang.com. Dilihat tanggal 22 Februari 2009. http://www.herongyang.com/crypto/message_dig est_md5.html. 384