BAB 1 PENDAHULUAN
1.1. Latar belakang Menurut kamus besar Bahasa Indonesia (1991), keamanan adalah bebas dari bahaya dengan demikian keamanan adalah suatu kondisi yang sangat sulit dicapai, dan dapat kita lakukan adalah berusaha seaman mungkin dengan menekan resiko bahaya atau ancaman. Kriptografi (cryptography) sendiri menurut definisi dari kamus besar Bahasa Indonesia (1991) adalah penyelidikan mengenai kode-kode rahasia. Dengan demikian ilmu kriptografi adalah teknik untuk menjaga kerahasiaan, atau keamanan informasi. Yang menjadi perhatian keamanan dari kriptografi sendiri biasanya adalah data atau layanan, dan bukan keamanan individu atau peralatannya. Pesan dalam bentuk yang dapat dimengerti isinya atau bentuk asli informasi dinamakan plaintext atau untuk selanjutnya ditulis sebagai plainteks, di lain pihak pesan dalam bentuk yang tidak dapat dimengerti isinya dinamakan ciphertext atau untuk selanjutnya disebut sebagai siferteks (Guritman, 2003). Proses perubahan plainteks menjadi siferteks dinamakan sebagai proses encryption atau selanjutnya disebut penyandian di lain pihak proses perubahan siferteks kembali ke dalam bentuk plainteks dinamakan sebagai proses decryption atau untuk selanjutnya disebut penerjemahan. Beragam algoritma penyandian telah dikembangkan, masing-masing memiliki kelebihan dan kekurangan. Beberapa algoritma yang lebih baru dibuat untuk memperbaiki berbagai kelemahan algoritma pendahulunya. DES (Data Encryption Standard) adalah algoritma yang pernah sangat terkenal dalam sejarah karena algoritma penyandian ini pernah dinyatakan aman oleh pemerintah Amerika dan digunakan sebagai standar enkripsi oleh NSA (National Security Agency) hingga dilarang menyebarkan informasinya ke luar negeri. Hanya saja popularitas algoritma ini segera menurun semenjak dibuktikan berhasil dipatahkan pada tahun 1998.
1
Kelemahan utama algoritma penyandian DES adalah panjang kuncinya yang terlalu pendek, hanya 56 bit. Dengan panjang kunci ini maka tipe serangan mencoba semua kemungkinan kunci (brute force attack) menjadi mungkin untuk dilakukan dalam waktu singkat. Fakta kelemahan kunci ini telah dibuktikan di tahun 1998, dan seluruh kunci DES dapat dicoba dalam waktu kurang dari 3 hari. Tapi DES adalah algoritma yang sangat menarik, lahir dari pemikiran yang matang, dan bila ditelusuri akan mengundang kekaguman. Itulah sebabnya mengapa begitu banyak orang yang menyayangkan kelemahan ini dan berusaha memperbaikinya dengan cara menambah panjang kunci yang digunakan. Beberapa algoritma lanjutan atau penyempurnaan DES kemudian lahir. Semua algoritma turunan ini membawa ide-ide baru guna memungkinkan penggunaan kunci yang lebih panjang dari 56 bit. Beberapa algoritma lanjutan DES ini adalah 2DES, 3DES, NewDES, DES-X, dan GDES. Di antara semua algoritma turunan DES ini, kiranya hanya 2DES dan 3DES-lah yang dianggap berhasil memperbaiki kelemahan DES. Meski baik DES, 2DES dan 3DES memiliki kompleksitas algoritma O(n), namun hasil uji coba menunjukkan bahwa 2DES memerlukan waktu eksekusi dua kali lebih lama dari DES, dan 3DES memerlukan waktu eksekusi yang tiga kali lebih lama dari DES. Kecuali NewDES, seluruh perbaikan DES tidak mengubah struktur asli algoritma DES sama sekali. Perbaikan algoritma DES dengan cara mengubah strukturnya sejauh ini baru dikerjakan oleh NewDES, meski kini telah dibuktikan bahwa cara ini hanya akan menghasilkan algoritma turunan baru yang tidak lebih aman dari algoritma aslinya, yaitu DES. 1.2. Permasalahan Panjang kunci 56 atau 64 bit telah terbukti tidak lagi layak untuk digunakan, di lain pihak algoritma penyandian DES tidak dapat mengolah pesan dengan panjang kunci selain 64 bit. DES telah diketahui tidak memiliki panjang kunci yang cukup untuk mengatasi serangan dengan mencoba semua kemungkinan kunci, di lain pihak algoritma-algoritma turunan DES yang telah ada pada saat ini meski telah dapat
2
mengatasi serangan dengan mencoba semua kemungkinan kunci, ternyata mengundang permasalahan-permasalahan baru, seperti 2DES dan 3DES yang memerlukan waktu eksekusi dua dan tiga kali lebih lama dari DES, dengan demikian dapat dikatakan bahwa belum ada turunan algoritma DES yang benarbenar memperbaiki kelemahan DES tanpa mengundang permasalahan baru. 1.3. Tujuan Penelitian
ini
bertujuan
untuk
mencari
cara
agar
DES
dapat
mempergunakan kunci dengan panjang di atas 64 bit, yaitu 128 bit. Penelitian ini juga dilakukan dengan maksud menjadi penuntun bagi pihak-pihak yang ingin menggunakan algoritma DES dengan panjang kunci yang lebih besar lagi. Penelitian ini juga bertujuan untuk mengungkap pola pembentukan tabel konversi posisi pada DES, dengan demikian akan membuka peluang untuk pembentukan algoritma turunan DES, dengan panjang kunci yang n kali 56 bit, tanpa harus mengalami waktu eksekusi yang n kali waktu eksekusi DES. 1.4. Ruang lingkup penelitian Penelitian ini hanya akan membahas mengenai algoritma DES beserta beberapa algoritma turunan DES, dan tidak akan membahas algoritma lainnya seperti AES. 1.5. Manfaat Penelitian Dengan adanya penelitian ini, maka pola pembentukan tabel konversi posisi DES akan diketahui, dengan demikian dapat membuka peluang tersusunnya algoritma-algoritma DES turunan baru yang memiliki panjang kunci n-kali dari DES, tanpa harus mengalami waktu eksekusi n-kali lebih lama dari waktu eksekusi DES.
3
BAB 2 TINJAUAN PUSTAKA
2.1. Kriptografi Kriptografi merupakan proses penyandian data ke dalam bentuk yang hanya dapat dibaca oleh sistem yang memiliki kunci untuk membaca data yang sesuai. Meski tidak semua paket data mengandung informasi yang perlu diamankan, metoda penyandian tetap diperlukan untuk menjaga kerahasiaan suatu data atau informasi dari pihak yang tidak berwenang. Sejarah mencatat bahwa kriptografi telah digunakan semenjak jaman Mesir Kuno. Kriptografi juga ternyata memegang peranan peranan penting selama Perang Dunia I dan Perang Dunia II. Meski kriptografi pada mulanya hanya digunakan untuk melindungi strategi dan rahasia negara, kini kriptografi telah merambah sektor swasta dan mengiringi pesatnya perkembangan komunikasi dan komputasi modern. Kini kriptografi tidak hanya berguna dalam mengamankan informasi saja, melainkan sudah dapat diterapkan dalam bidang lainnya. Beberapa manfaat atau tujuan keamanan dengan informasi dengan menggunakan kriptografi adalah: •
Kerahasiaan informasi
•
Menjaga integritas (integrities) data
•
Identifikasi (identification) suatu entitas (entities)
•
Autentisitas (authenticates) suatu entitas
•
Pemberian ciri tertentu pada suatu informasi
•
Kewenangan atau kesepakatan resmi
•
Validasi (validation) atau masa berlaku suatu informasi
•
Sertifikasi
•
Non repudiasi (repudiation) atau pencegahan pelanggaran kesepakatan
•
Kuitansi atau bukti suatu informasi telah diterima
•
Konfirmasi atau bukti bahwa informasi telah diberikan
4
Begitu banyak variasi kriptografi, dimana masing-masing memiliki kelebihan dan kekurangan. Pemilihan metoda yang baik, efisien dan handal tetap harus dilakukan. Dari cara kerjanya saja, algoritma penyandian dapat dibagi menjadi penyandian tanpa kunci, penyandian dengan kunci simetrik, dan penyandian dengan kunci publik. Masing-masing katagori masih dapat dibagi lagi ke dalam beberapa jenis algoritma berikutnya. Diagram selengkapnya mengenai jenis penyandian disajikan pada Gambar 1.
Gambar 1 Penggolongan ilmu kriptografi (Menezes, 1996)
Kriptografi tanpa kunci adalah suatu teknik mengubah isi suatu pesan ke dalam bentuk lain yang tidak dimengerti. Teknik kriptografi yang telibat disini sepenuhnya merupakan aplikasi teori matematika biasa, seperti bijeksi dan permutasi.
5
Kriptografi kunci simetrik adalah suatu teknik kriptografi yang dilengkapi dengan kunci. Kunci disini adalah suatu angka atau persamaan yang harus dilibatkan ketika melakukan proses penyandian atau penerjemahan. Kriptografi kunci simetrik biasa menggunakan kunci yang sama baik untuk proses penyandian maupun penerjemahan, atau dapat juga kunci penerjemahan dapat dengan mudah dihitung atau diketahui bila kunci penyandian diketahui, begitupun sebaliknya. Contoh dari algoritma penyandian kunci simetrik adalah DES, dan AES. Kelemahannya adalah kerahasiaan kunci harus benar-benar dijaga. Kriptografi dengan kunci publik adalah kriptografi yang kunci penyandiannya disebarkan pada umum (publik), di lain pihak kunci penerjemahan dirahasiakan oleh pemiliknya saja. Biasanya penyandian kunci publik digunakan untuk mengirimkan kunci penyandian simetrik ke lawan bicara. Contoh penyandian kunci publik adalah RSA. Tanda tangan digital (Digital signature) adalah bentuk penerapan secara terbalik dari teknik kriptografi kunci publik, karena di dalam keperluan ini justru kunci penyandian yang dirahasiakan, di lain pihak kunci penerjemahan dapat disebarluaskan ke publik. Tujuan dari tanda tangan digital adalah hanya orang tertentu saja yang dapat melakukan penyandian, namun setiap orang dapat melakukan penerjemahan. 2.2. Beberapa contoh kriptografi Tesis perancangan algoritma DES-Aku ini merupakan penelitian lanjutan dari serangkaian penelitian yang telah ada sebelumnya. Berikut ini adalah beberapa algoritma yang melandasi terbentuknya algoritma DES-Aku. 2.2.1. Sandi Caesar Teknik penyandian sandi Caesar adalah teknik kriptografi yang paling primitif, dengan demikian kerap digolongkan sebagai teknik penyandian klasik. Prinsip dari algoritma ini adalah dengan mengganti setiap huruf dari kalimat yang ingin disandikan dengan ‘k’ huruf di depannya, dan penukaran huruf ini bersifat melingkar, dengan demikian diberi julukan algoritma 'geser ke kiri putar
6
melingkar”. ‘k’ yang dimaksud disini adalah kunci yang digunakan yang bisa berupa konstanta atau persamaan aritmatika sederhana.
Algoritma Caesar dapat dituangkan dalam persamaan: C = E(p) = (p + k) mod (26),
dilain pihak persamaan penerjemahannya adalah: P = D(c) = (c – k) mod (26).
C adalah anggota himpunan berhingga yang beranggotakan string-string simbol dari definisi alfabet yang boleh berbeda dari definisi alfabet untuk P. Suatu anggota dari C disebut dengan siferteks. P adalah anggota himpunan berhingga yang beranggotakan string-string simbol dari definisi alfabet. anggota-anggota P bisa berupa string biner, teks bahasa Inggris, kode komputer, dan lain lain. Suatu anggota P disebut dengan pesan plainteks. E(p) adalah fungsi penyandian atau transformasi penyandian dari plainteks yang harus bersifat bijeksi. Jika proses diinverskan, akan diperolehkan tepat satu plainteks untuk setiap siferteks yang berbeda. D(c) adalah fungsi penerjemahan atau transformasi penerjemahan dari siferteks. Di lain pihak K adalah himpunan berhingga yang disebut ruang kunci. Suatu anggota dari K disebut dengan kunci. 2.2.2. Sandi Produk Sandi produk adalah suatu teknik kriptografi yang mengombinasikan beberapa transformasi, guna memperoleh siferteks yang lebih aman. Komponen penyusun sandi produk adalah: •
Konversi Posisi dengan permutasi
•
Substitusi dengan XOR
•
Transformasi Linear
•
Operasi Aritmatik Modular.
7
2.2.3. Sandi Feistel Sandi Feistel adalah sandi utama yang mendasari terbentuknya sandi DES. Sandi dini merupakan sandi teriterasi yang mentranformasikan blok plain teks [L0, R0] dengan ukuran masing-masing w bit. Kedua blok ini kemudian ditransformasikan sebanyak n ronde hingga menjadi [Ln, Rn]. Dengan demikian pemetaan ke-i, maka hasil pemetaannya menghasilkan:
Li = Ri-1, Ri = Li-1 ⊕ f(Ri-1,Ki).
Ki adalah subkunci yang diturunkan dari sandi K. Bagan alir sandi Feistel dapat dilihat pada Gambar 2.
Gambar 2 Bagan alir Sandi Feistel.
8
Sandi Feistel tidak pernah mengatur berapa banyak iterasi harus dilakukan, atau fungsi apa yang harus dikerjakan. Algoritma ini hanya memberikan ide pengolahan data yang menyerupai puntiran DNA, dan disisipi suatu fungsi didalamnya. Selain DES, algoritma ini juga dimanfaatkan oleh AES. 2.2.4. DES DES adalah sandi yang paling terkenal dalam sejarah. Dibuat oleh National Bureau of Standards pada tahun 1970 untuk NSA (National Security Agency). Tujuan dari penciptaan DES adalah untuk menjadi standar perlindungan data yang sensitif. Feistel dari IBM lah yang telah menciptakan draf awalnya dalam bentuk algoritma Lucifer. DES menjadi standar Federal pada bulan November 1976, mencapai puncak ketenaran pada tahun 1977 - 1990. Sandi ini mulai runtuh kejayaannya ketika berhasil ditembus keamanannya dengan pada tahun 1998. DES merupakan sandi blok dengan panjang blok 64 bit, dan panjang kunci input 56 bit. Panjang kunci input ini sendiri pada akhirnya akan dibuat 64 bit dengan menambahkan 8 bit paritas. DES sendiri merupakan hasil pengembangan dari sandi produk dan sandi Feistel. Kelemahan utama dari sandi DES adalah panjang kuncinya yang terlalu pendek, dengan demikian cukup dengan tipe serangan dengan mencoba semua kemungkinan kunci dan didukung dengan kecepatan komputasi yang memadai, maka kunci dari sandi DES dapat dengan mudah diperolehkan. Meski DES telah dinyatakan tidak aman, namun prinsip kerjanya telah melandasi lahirnya berbagai kriptografi modern seperti 3DES, NewDES, RC5, dan AES. 2.2.4.1. Prinsip Kerja Sandi DES Sandi DES adalah hasil pengembangan dari Sandi Feistel, dengan demikian wajar bila terdapat Sandi Feistel di dalamnya. Adapun prinsip kerja dari sandi DES adalah sebagai berikut. 1. Persiapan kunci, memecah kunci ke dalam 16 sub kunci. 2. Melakukan prosedur Feistel 16 iterasi, dengan menggunakan sub kunci yang telah disediakan, dan menggunakan fungsi yang telah ditentukan.
9
Secara detail, yang dikerjakan oleh sandi Feistel adalah: 1. Plainteks dikonversikan terlebih dahulu dalam biner, kemudian dibagi dan diproses per blok, dimana setiap blok terdiri atas 64 bit 2. Untuk setiap blok kemudian dilakukan koversi posisi terhadap Tabel IP (Initial Permutation), hasilnya kemudian dibagi atas 2 bagian; 32 bit pada bagian kiri disebut Lo, dan 32 bit di kanan disebut R0. 3. Kedua bagian ini kemudian dilakukan iterasi fungsi f sebanyak 16 kali (LiRi, 1
Gambar 3 Bagan alir sandi DES
10