• Tidak ada hasil yang ditemukan

Perancangan Algoritma DES-Aku

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perancangan Algoritma DES-Aku"

Copied!
72
0
0

Teks penuh

(1)

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.

(2)

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.

(3)

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 benar-benar 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

(4)

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

(5)

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)

(6)

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

(7)

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

(8)

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.

(9)

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.

(10)

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<i<16), dengan mengikuti struktur Feistel:

Li = Ri-1, Ri = Li-1⊕ f (Ri-1, Ki).

4. Ki adalah kunci 48 bit yang terdiri atas 16 macam yang berbeda untuk setiap iterasi.

5. Hasil akhirnya kemudian dibalik, dan dioperasikan dengan inverse dari IP (IP-1(R16,L16).

2.2.4.2. Bagan alir Sandi DES

(11)

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.

(12)

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.

(13)

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 benar-benar 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

(14)

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

(15)

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)

(16)

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

(17)

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

(18)

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.

(19)

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.

(20)

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<i<16), dengan mengikuti struktur Feistel:

Li = Ri-1, Ri = Li-1⊕ f (Ri-1, Ki).

4. Ki adalah kunci 48 bit yang terdiri atas 16 macam yang berbeda untuk setiap iterasi.

5. Hasil akhirnya kemudian dibalik, dan dioperasikan dengan inverse dari IP (IP-1(R16,L16).

2.2.4.2. Bagan alir Sandi DES

(21)

Dari Gambar 3 terlihat jelas bahwa DES menggunakan pola fikir Feistel, hanya saja Feistel tidak pernah merinci setiap pointya seperti berapa banyak iterasi harus dilakukan, atau fungsi f apa yang digunakan.

2.2.4.3. Persiapan kunci

Beberapa urutan langkah yang dikerjakan oleh algoritma DES ketika mengolah sebuah kunci 64 bit menjadi 16 sub kunci dengan ukuran masing – masing 28 bit dijabarkan berikut ini.

1. Kunci asli yang digunakan adalah dalam bentuk biner 56 bit.

2. Kunci ini kemudian diperluas menjadi 64 bit dengan menambahkan bit pariti (parity) pada posisi ke 8, 16, 24, 32, 40, 48, 56, 64.

3. Kunci kemudian dikonveri-posisikan dengan menggunakan Tabel PC1, kembali menjadi 56 bit.

4. 28 bit pertama dari kunci dinotasikan sebagai C0 5. 28 bit berikutnya dari kunci dinotasikan sebagai D0 6. Untuk setiap iterasi (i) dari 1 - 16;

a. jika i ∈ {1,2,9,16} maka vi = 1, lainnya vi = 2.

b. C0 melakukan “geser ke kiri putar melingkar sejauh Vi” c. D0 melakukan “geser ke kiri putar melingkar sejauh Vi”

d. C0 dan D0 kemudian digabungkan dan dikonversi-posisikan dengan Tabel PC2 hingga diperoleh Ki dengan banyak komponen 48 bit.

e. Lakukan iterasi berikutnya, hingga diperoleh 16 sub kunci yang masing-masing berukuran 48 bit.

2.2.4.4. Fungsi f

Fungsi f yang ada pada setiap iterasi Feistel adalah suatu fungsi yang menggabungkan sisi kanan iterasi sebelumnya (Ri-1) terhadap sub kunci pada iterasi tersebut (Ki). Adapun persamaan matematika dari fungsi ini adalah:

(22)

Di lain pihak urutan pengerjaanya adalah:

1. E(Ri-1) atau pengembangan hasil sisi kanan dari iterasi sebelumnya, menggunakan Tabel ekspansi. Langkah ini akan mengubah Ri-1 yang semestinya 32 bit menjadi 48 bit.

2. E(Ri-1) ⊕ Ki, atau penggabungan hasil ekspansi dengan sub kunci spesifik pada setiap interasi. Penggabungan disini dengan menggunakan operator XOR, dan yang digabungkan adalah sesama data 48 bit. Hasilnya dinotasikan sebagai B.

3. S{E(Ri-1) ⊕ Ki}, atau substitusi guna menukar data B 48 bit menjadi data baru (A) yang berukuran 32 bit. Secara garis besar dapat dilihat pada Gambar 4, sedangkan langkah detilnya adalah:

a. Bagi data 48 bit menjadi 8 kelompok data dengan ukuran masing-masing 6 bit. Setiap kelompok data dinotasikan menjadi Bj: (B1, B2, … , B8).

b. Untuk setiap Bj, bit ke-1 dan ke-6 digabungkan dan didesimalkan, hasilnya dinotasikan sebagai EXT.

c. Untuk setiap Bj, bit ke-2 hingga ke-5 digabungkan dan didesimalkan, hasilnya dinotasikan sebagai MIDS.

d. Untuk setiap subblok yang berbeda, gunakan Tabel Sbox yang sesuai guna mendapatkan data Aj: (A1, A2, … , A8).

e. Aj kemudian merupakan data baru berukuran 4 bit, yang akan diproses oleh sebelah kanan dari iterasi Feistel berikutnya.

(23)

• P[S{E(Ri-1) ⊕ Ki}], atau permutasi Feistel, merupakan langkah terakhir yang dilakukan pada setiap iterasi.

2.2.4.5. Persiapan tabel konversi posisi

• Berikut adalah Tabel IP, digunakan sebagai acuan konversi posisi di langkah awal Sandi DES.

Tabel 1 Tabel IP pada DES 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7

• Tabel berikut adalah Tabel IP-1 atau inverse dari Tabel IP. Tabel ini digunakan sebagai langkah akhir sandi DES.

(24)

• Tabel PC1. Tabel ini tidak berpengaruh langsung pada bentuk siferteks yang dihasilkan, dikarenakan tabel ini berfungsi untuk mengubah urutan kunci yang dipergunakan.

Tabel 3 Tabel PC1 pada DES 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 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4

• Tabel PC2. Tabel ini juga tidak berpengaruh langsung pada bentuk siferteks yang dihasilkan, karena juga digunakan untuk permutasi kunci tahap 2.

Tabel 4 Tabel PC2 pada DES 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32

(25)

Tabel 5 Tabel ekspansi pada DES

32 1 2 3 4 5

4 5 6 7 8 9

8 9 10 11 12 13

12 13 14 15 16 17

16 17 18 19 20 21

20 21 22 23 24 25

24 25 26 27 28 29

28 29 30 31 32 1

• Tabel permutasi Feistel, merupakan penutup setiap langkah iterasi Feistel.

Tabel 6 Tabel permutasi Feistel pada DES 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25

• Tabel Sbox. Tabel ini pernah dirahasiakan oleh perancang DES.

Tabel 7 Tabel Sbox pada DES

MID: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Sub

Blok EXT:

0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7

1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8

2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0

S1

3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

0 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10

1 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5

2 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15

S2

(26)

Tabel 7 Tabel Sbox pada DES (lanjutan)

Algoritma ini dibuat guna menggantikan DES. NewDES tidak melakukan permutasi level bit dan seluruh operasinya dilakukan per byte dengan demikian mudah diimplementasikan dalam bahasa pemrograman apapun.

(27)

setiap ronde, setiap subkey akan di-XOR-kan dengan 1 byte data, dan hasilnya kemudian dikonversi-posisikan dengan Sbox, dan hasilnya kemudian di-XOR-kan dengan byte data berikutya, dengan demikian 8 kali operasi XOR dilakukan pada setiap rondenya.

Hasil pengujian kriptanalis (cryptanalyst) menunjukkan bahwa algoritma ini dapat dipecahkan cukup dengan 233 plainteks terpilih (Chosen plaintext) yang telah diketahui siferteksnya. Dengan demikian dapat disimpulkan bahwa NewDES tidaklah seaman DES.

2.2.6. GDES

GDES atau Generalized DES, adalah varian algoritma penyandian DES yang didesain dengan tujuan untuk meningkatkan kecepatan dan keamanannya. Algoritma ini diusulkan oleh Schaumuller Bichl pada tahun 1981.

GDES menggeneralisasi struktur network Feistel ke ukuran blok yang lebih besar. Pada setiap ronde, fungsi yang digunakan diterapkan pada 32 bit paling kanan dari subblok, hasilnya di-XOR-kan dengan seluruh bagian lainnya. Blok dirotasi 32 bit ke kanan.

Pada tahun 1990, Eli Biham dan Adi Shamir membuktikan bahwa GDES sangat rapuh terhadap kriptanalis diferensial (Differential Cryptanalyst), dan setiap variant dari GDES juga akan masih kurang aman dila dibandingkan dengan algoritma aslinya, DES.

2.2.7. DES-X

DES-X adalah juga varian dari algoritma penyandian DES yang didesain dengan tujuan untuk meningkatkan kompleksitas algoritma dengan menggunakan teknik key whitening, guna menghadapi serangan dengan mencoba semua kemungkinan kunci. Algoritma ini sudah diikutsertakan dalam library kriptografi RSA sejak tahun 1980 an.

(28)

key whitening. Algoritma lain yang juga menggunakan key whitening adalah MARS, RC6, dan Twofish.

Dalam prakteknya, DES-X cukup menambahkan 2 * 64 bit tambahan kunci yang mengiringi penggunaan 56 bit kunci DES biasa, dengan demikian total kunci 184 bit. Tambahan kunci ke-1 di-XOR-kan dengan plainteks tepat sebelum plainteks tersebut disandikan, dan tambahan kunci ke-2 akan di-XOR-kan dengan siferteks tepat setelah proses penyandian. Langkah ini dianggap cukup efektif untuk menambah jumlah kunci tanpa mengubah algoritma. Persamaan selengkapnya dari algoritma penyandian DES-X disajikan di bawah ini.

DES-X(M) = K2⊕ DESK(M ⊕ K1).

DES-X mampu meningkatkan kekuatan DES kriptanalis. Hasil perhitungan menunjukkan bahwa kriptanalis memerlukan 260 - 261 plainteks terpilih, untuk dapat memecahkan kode DES-X. Angka ini sudah lebih baik dari pada DES biasa yang hanya memerlukan 243 – 247 plainteks terpilih. Namun tipe serangan elementary codebook sudah dapat memecahkan kriptografi dengan tingkat keamanan 264 plainteks terpilih, hingga DES-X tetap belum dapat dikatakan aman.

2.2.8. 2DES

2DES adalah algoritma yang dipersiapkan menggantikan algoritma DES. 2DES memiliki panjang kunci 112 bit, panjang kunci ini dua kali lebih panjang dari kunci DES biasa.

Dalam prakteknya ke 112 bit kunci ini dimasukkan secara sekaligus; namun pada pengerjaannya, ke 112 bit kunci ini kemudian dipecah menjadi 2 buah kunci DES biasa yang panjang masing-masing hanyalah 56 bit. Prinsip kerja 2DES sendiri sesungguhnya adalah mengulang algoritma DES biasa sebanyak 2 kali berturut-turut dengan menggunakan dua kunci yang berbeda.

(29)

dengan menggunakan kunci yang disamakan pada kedua ujungnya. Bila hasil di tengahnya sama, maka itulah kunci yang digunakan untuk melakukan penyandian. Dengan demikian, maka proses penyerangan dapat dilakukan dengan otomatis tanpa pengawasan manusia, dengan demikian waktu penyerangannya akan menjadi jauh lebih cepat. Kesimpulannya 2DES menjadi tidak lebih aman dari DES.

2.2.9. 3DES

3DES adalah algoritma yang dibuat guna memperbaiki 2DES, algoritma ini sempat menjadi algoritma standar penyandian sementara sebelum akhirnya digantikan oleh AES. Dengan panjang kunci 168 bit, algoritma ini diharapkan lebih dari sekedar menutupi kelemahan DES yang memiliki panjang kunci hanya 56 bit. Namun demikian, struktur DES yang lahir dari pemikiran yang dalam tetap saja tidak dapat digantikan, dengan demikian beberapa penerus DES ini kemudian tetap menggunakan struktur DES.

3DES, algoritma yang sempat menjadi standar sementara pengganti DES sesungguhnya memiliki struktur yang sama persis dengan DES. Satu-satunya perbedaan adalah panjang kuncinya, dimana panjang kunci DES hanya 56 bit, di lain pihak panjang kunci 3DES adalah 168 bit. Prinsip kerja 3DES sesungguhnya adalah mengulang proses DES sebanyak tiga kali berturut-turut dengan menggunakan 3 buah kunci yang berbeda yang masing-masing kunci berukuran 56 bit, dengan demikian secara keseluruhan panjang kuncinya 168 bit.

(30)

Lahir dari pemikiran akan 2DES, 3DES juga mengulang operasi DES sebanyak 3 kali, hanya saja 3DES melakukan operasi penerjemahan putaran kedua hingga rumusnya menjadi DES(k3;DES-1(k2;DES(k1;M))). M disini adalah plainteks yang akan disandikan, di lain pihak k1, k2 dan k3 adalah tiga buah kunci yang berbeda. Bila ketiga kunci ini disamakan, maka 3DES akan sama dengan DES. Kelemahan utama dari 3DES adalah waktu pengerjaannya yang 3 kali lebih lama dari algoritma DES biasa.

2.2.10. AES

AES atau Advance Encryption Standard adalah standar penyandian yang menggantikan DES hingga kini. Ditetapkan oleh NIST (National Institute of Standards and Technology) sebagai spesifikasi standar penyandian data elektronik pada tanggal 2 Mei 2002. Standar ini dapat digunakan di berbagai bidang seperti perbankan, telekomunikasi atau pemerintahan. AES menggunakan kunci simetrik 128, atau 192 atau 256 bit, di lain pihak data yang disandikan atau diterjemahkan dilakukan per 128 bit. AES sendiri tersusun atas beberapa langkah permutasi dan substitusi.

AES diperkirakan memiliki tingkat keamanan yang lebih baik dari penyandian manapun. Dengan panjang kunci 256 bit, maka serangan mencoba semua kemungkinan kunci tetap akan memerlukan waktu bertahun-tahun. Peluang kemungkinan penyerangan pada AES hanyalah dengan menggunakan timing attack yang diikuti dengan serangan mencoba semua kemungkinan kunci. Penyerang menggunakan beberapa buah kunci yang diketahui untuk beberapa kali proses penyandian untuk mengukur waktu eksekusi yang dibutuhkan, dari informasi ini, maka ruang gerak serangan dengan mencoba semua kemungkinan kunci dapat dipersempit.

2.3 Serangan terhadap Kriptogafi

(31)

Setiap tipe serangan yang berbeda memiliki cara kerja yang berbeda pula. Beberapa tipe serangan terhadap penyandian yang diketahui adalah sebagai berikut:

• Serangan kamus (elementary code book attack)

• Serangan pola bahasa

• Serangan plainteks diketahui (known plaintext attack)

• Serangan plainteks terpilih (chosen plaintext attack)

• Serangan mencoba semua kemungkinan kunci (brute force attack)

• Serangan analisis diferensial (differential)

• Serangan analisis linear.

Serangan kamus adalah serangan dengan mencoba-coba kunci berdasarkan isi kamus, atau bisa juga berdasar jati diri penyandi seperti tanggal lahir, nama anak, dan lain lain. Di lain pihak serangan pola bahasa adalah serangan dengan menganalisis setiap karakter yang muncul di dalam siferteks. Dengan berpedoman pada tabel frekuensi kemunculan huruf, maka dapat diduga bentuk plainteksnya. Sebagai contoh Bahasa Indonesia sangat sering menggunakan huruf ‘a’, dengan demikian bila karakter yang paling sering muncul, dapat dianggap sebagai karakter ‘a’. Berikut disajikan contoh tabel peluang kemunculan suatu karakter di dalam Bahasa Inggris.

Tabel 8. Peluang kemunculan karakter dalam Bahasa Inggris Simbol Peluang Simbol Peluang Simbol Peluang

spasi 0.1859 I 0.0575 R 0.0484

A 0.0642 J 0.0008 S 0.0514

B 0.0127 K 0.0049 T 0.0796

C 0.0218 L 0.0321 U 0.0228

D 0.0317 M 0.0198 V 0.0083

E 0.1031 N 0.0547 W 0.0175

F 0.0208 O 0.0632 X 0.0175

G 0.0152 P 0.0152 Y 0.0164

H 0.0467 Q 0.0008 Z 0.0005

(32)

serangan ini adalah kunci yang tidak diketahui. Serangan plainteks terpilih menggunakan beberapa plainteks tertentu yang dapat diduga bentuk siferteks yang dihasilkannya. Serangan plainteks terpilih biasa menggunakan deretan karakter spesial, seperti kosong, atau deretan karakter sama. Tujuan dari serangan ini juga untuk mendapatkan kunci yang tidak diketahui. Baik serangan plainteks terpilih maupun serangan plainteks diketahui biasa ditujukan untuk menyerang suatu penyandian yang memiliki kunci tetap, untuk suatu keperluan.

(33)

BAB 3

METODOLOGI PENELITIAN

3.1 Kerangka Pemikiran

Berbagai algoritma telah dibuat guna memperbaiki atau menutupi kelemahan dari algoritma DES, seperti 2DES, 3DES, NewDES, DES-G dan DES-X, dan lain lain. Setiap algoritma memiliki pendekatan yang berbeda.beda. Di antara semua algoritma di atas, hanya 3DES-lah yang dianggap terbaik hingga sempat menggantikan posisi DES sebagai standar penyandian, hingga akhirnya digantikan oleh AES.

Penelitian ini dibuat dengan tujuan untuk memperbaiki memperbaiki atau menutupi kelemahan algoritma penyandian DES dengan menggunakan metoda atau pendekatan yang belum pernah dilakukan sebelumnya. Di lain pihak hasil akhir dari penelitian ini diharapkan dapat menghasilkan algoritma yang lebih baik dari algoritma perbaikan algoritma DES yang telah ada pada saat ini, seperti 3DES, 2DES atau algoritma DES turunan lainnya.

Di balik strukturnya yang kuat, ternyata masih terdapat celah yang dapat diperbaiki pada algoritma DES, yang belum dilakukan oleh algoritma perbaikan manapun. Beberapa celah ini di antaranya memperbesar ukuran tabel inntial permutation, mengganti komponen Sbox, atau mengganti rumus atau persamaan yang digunakan.

3.2 Bahan dan Alat

Peralatan yang digunakan dalam penelitian ini adalah dua buah PC (Personal Komputer), sebuah PC digunakan untuk pembuatan program (coding), di lain pihak lainnya digunakan untuk pengetesan program. Komputer yang digunakan untuk pembuatan program memiliki Prosesor Intel 2600 MHz, 512 Mb RAM, dan Sistem oOperasi Windows Xp.

(34)

yang digunakan dalam penelitian ini dibuat dengan menggunakan bahasa pemrograman Microsoft Visual Basic 6.

3.3 Waktu dan Tempat Penelitian

Penelitian ini dilakukan di Laboratorium Komputer S2 IPB. Mulai Maret hingga Mei 2007.

3.4 Prosedur Penelitian

Penelitian ini akan dimulai dengan menganalisis algoritma penyandian DES, guna memahami kekuatan dan kelemahannya. Pada tahap awal ini juga akan dicatat setiap peluang perbaikan algoritma yang mungkin dilakukan guna menutupi kelemahan utama algoritma penyandian DES. Bagan alir penelitian selengkapnya dituangkan dalam Gambar berikut.

Gambar 6 Bagan alir prosedur penelitian

Mulai

Analisis Permasalahan

Studi Literatur

Perancangan Algoritma

Perbaikan ?

Selesai Implementasi Program

Pengujian Program

Pembahasan Program Analisis pola tabel konversi posisi DES

Perancangan tabel konversi

(35)

Penelitian perbaikan kinerja DES ini sangat erat hubungannya dengan studi literatur terutama terhadap perbaikan DES yang telah ada pada saat ini. Berbagai analisis harus dilakukan guna mencari berbagai titik kelemahan dari perbaikan penyandian DES yang telah ada pada saat ini. Suatu perancangan program yang matang juga harus dilakukan agar dapat menghasilkan algoritma penyandian yang dapat memperbaiki keamanan DES, dan mampu memberikan kinerja yang lebih baik daripada algoritma perbaikan DES yang telah ada pada saat ini.

3.6. Parameter Pengukuran

(36)

BAB 4

PERANCANGAN ALGORITMA

Pada tahap ini akan dibahas secara detail prosedur pengerjaan tesis, mulai dari tahap persiapan, perancangan program, coding, hingga ke pengukuran parameter yang digunakan dalam tesis ini.

4.1. Analisis DES

DES adalah karya kriptografi yang paling terkenal dalam sejarah, walaupun kini DES sudah tidak lagi dipergunakan untuk melindungi data sensitif, namun prinsip kerja dan struktur algoritmanya yang hebat membuat DES tidak dapat dengan mudah dilupakan, dan malah telah menjadi sumber ide bagi lahirnya algoritma-algritma baru yang lebih baik seperti 3DES, atau AES.

Algoritma penyandian DES sendiri adalah hasil pengembangan dari Sandi Produk dan Sandi Feistel. Algoritma penyandian Sandi Produk bekerja dengan melakukan banyak transformasi pada komponennya guna mendapatkan siferteks yang aman. Beberapa transformasi yang digunakan oleh Sandi Produk adalah: konversi posisi dengan permutasi, substitusi dengan XOR, transformasi Linear dan Aritmatik modular.

Sandi Feistel sendiri adalah sandi teriterasi (sandi berulang) sebanyak 16 ronde, dimana setiap iterasi dilakukan transformasi blok kiri dan blok kanan dengan mengikuti suatu persamaan tertentu yang bisa melibatkan kunci di dalamnya.

(37)

Sandi DES akan mengolah pesan per 64 bit, penentuan panjang pengolahan pesan ini tentunya diperoleh dengan menyesuaikan panjang kunci yang digunakan. Langkah selanjutnya blok pesan ini dikonversi-posisikan dengan mengacu pada Tabel IP.

Langkah selanjutnya setiap blok pesan ini kemudian dipecah menjadi 2 bagian, kiri dan kanan. Kedua bagian ini kemudian dimasukkan ke dalam sandi Feistel 16 ronde, dimana pada setiap ronde blok pesan yang sama akan saling ditukar dan dihadapkan dengan sub kunci yang berbeda-beda. Adapun persamaan – persamaan yang terlibat dalam Sandi Feistel ini adalah:

Li = Ri-1,

Ri = Li-1 ⊕ f (Ri-1, Ki),

dengan:

f (Ri-1, Ki) = P[S{E(Ri-1) (+) Ki}].

Penukaran sisi kiri dan kanan dilakukan pada setiap ronde, dimana sisi kiri dari suatu ronde adalah sisi kanan dari ronde sebelumnya, dan sisi kanan dari suatu ronde adalah sisi kiri dari ronde sebelumnya yang di-XOR-kan dengan sisi kanan ronde yang sebelumnya di f-kan (fungsikan) dengan sub kunci yang spesifik untuk setiap ronde.

Fungsi f pada iterasi Feistel ini melibatkan banyak proses, di antaranya proses XOR dengan sub kunci, yang hasilnya diekspansi, dan kemudian disubstitusi dengan mengacu pada Tabel Sbox yang sempat dirahasiakan susunannya. Langkah terakhir pada setiap iterasi adalah dipermutasikannya sisi kanan ronde sebelumnya dengan mengacu pada tabel Feistel.

(38)

DES adalah algoritma penyandian yang telah disusun dengan matang. Beberapa langkah expanding (pengembangan) dan kompresi (penyempitan) blok pesan membuat algoritma DES sangat sulit untuk ditelusuri balik. Ditambah lagi keberadaan Sbox yang seolah acak namun sesungguhnya memiliki pola hingga tersusun dan terencana rapih. Sbox membuat seorang penyerang yang hanya memiliki siferteks dan mengetahui algoritma DES, namun tidak memiliki kunci akan mustahil untuk menelusuri balik jalannya algoritma hingga memperoleh plainteks.

DES adalah algoritma yang banyak mengundang decak kagum karena memiliki struktur yang sangat kuat. Kelebihan lain dari algoritma DES di balik kekuatan strukturnya adalah dapat dijalankan dengan kecepatan yang cukup tinggi. Hal ini karena kompleksitas algoritma dari algoritma DES adalah O(n), yang berarti bahwa cepat atau lambatnya waktu eksekusi hanya bergantung pada besar plainteks yang digunakan, dan keterkaitan antar kecepatan penyandian terhadap besarnya plainteks berbanding lurus. Hasil pengujian algoritma DES yang dilakukan oleh peneliti ketika menguji kecepatan algoritma DES terhadap beberapa plainteks yang berbeda ukuran, disajikan pada gambar berikut.

Waktu eksekusi DES terhadap ukuran plainteks

1 KB

Gambar 7 Waktu eksekusi DES terhadap ukuran plainteks

(39)

4.2. Peluang perbaikan Algoritma DES

DES adalah algoritma penyandian yang sangat baik, dan memiliki struktur yang sangat kuat, dan semestinya dapat bertahan hingga kapanpun. Namun sayang, panjang kunci DES yang relatif pendek membuat DES dapat diserang dengan cara menebak seluruh kemungkinan kunci. Serangan ini adalah mungkin dan telah dilakukan pada tahun 1992 meski kecepatan komputasi saat itu sangatlah jauh tertinggal bila dibandingkan dengan kecepatan komputasi pada saat ini.

Kemungkinan pertama untuk melestarikan algoritma DES agar dapat digunakan hingga kapanpun adalah dengan menambah panjang kunci yang digunakan, hingga akan lebih sesuai dengan perkembangan zaman yang memerlukan kunci penyandian yang lebih panjang.

Guna mewujudkan algoritma DES dengan kunci yang lebih panjang, maka beberapa pilihan langkah lanjutan yang mungkin harus dilakukan adalah sebagai berikut:

• Menjadikan kunci yang panjang sebagai gabungan beberapa kunci pendek, dengan demikian algoritma penyandian DES dapat dilakukan beberapa kali (periode) secara simultan, perioden akan menyandikan hasil penyandian hasil dari perioden-1. Hal ini dilakukan karena struktur algoritma DES memang tidak pernah dipersiapkan untuk menerima dan mengolah masukan kunci yang lebih panjang dari 56 bit

(40)

Sedemikian rumitnya perbaikan algoritma DES dengan pendekatan terakhir inilah kiranya yang membuat pendekatan ini belum pernah dilakukan hingga kini.

4.3. Perbaikan DES yang telah ada

Beberapa algoritma telah dibuat guna memperbaiki kinerja dan keamanan DES, dan beberapa algoritma itu di antaranya adalah 2DES, 3DES, NewDES, DES-G, dan DES-X. Kelak DES-Aku juga akan ikut dalam jajaran perbaikan algoritma DES ini.

2DES dan 3DES mengambil pendekatan memperpanjang kunci hingga beberapa kali lipatnya dengan maksud mengubah kunci yang panjang tadi ke dalam beberapa kunci yang pendek, hingga algoritma DES dilakukan beberapa periode secara simultan dimana penyandian DES pada periode ke-n akan menyandikan hasil penyandian dari proses penyandian DES di periode ke n-1. Hal ini dilakukan karena secara struktur, algoritma DES memang tidak dapat menerima aliran kunci di atas 56 bit, dengan demikian untuk mensimulasikan penggunaan kunci yang panjang, maka harus diperlakukan sebagai rentetan beberapa kunci yang pendek.

Pendekatan yang dilakukan oleh 2DES dan 3DES tentu saja efektif untuk memperkuat algoritma DES secara linear, hingga secara teoritis kekuatan nDES akan meningkat n-kali, karena dilakukan sebanyak n-periode. Namun pendekatan ini memiliki kelemahan yang cukup besar, yaitu dari waktu eksekusi yang akan menjadi semakin lambat juga secara linear. Algoritma nDES akan menghasilkan waktu keterlambatan yang juga n-kali bila dibandingkan dengan waktu eksekusi algoritma DES biasa.

(41)

Waktu eksekusi 2DES terhadap ukuran plainteks

Gambar 8 Waktu eksekusi 2DES terhadap ukuran plainteks

NewDES, GDES, dan DES-X adalah tiga buah algoritma yang juga dibuat dengan tujuan untuk memperbaiki kelemahan DES, namun semua itu telah terbukti kini secara definitif malah tidak lebih aman daripada algoritma DES yang asli. Namun demikian ide-ide yang dilahirkan oleh ketiga algoritma ini tetap dapat dihargai.

NewDES menyoroti kelemahan DES dari sisi kompeksitas algoritma yang mengolah data biner, pengolahan seperti ini tentu saja sulit diaplikasikan di beberapa bahasa pemrograman, di samping akan meningkatkan kompleksitas algoritma. NewDES mencoba untuk mengubah struktur algoritma DES hingga akhirnya bekerja dengan mengolah data karakter dan membuatnya lebih sederhana hingga mudah diaplikasikan dalam bahasa pemrograman apapun, dan memberikan kompleksitas algoritma yang lebih sederhana.

GDES mencoba untuk mengubah jaringan Feistel agar dapat mengolah pesan dengan ukuran blok yang lebih besar. Pada setiap ronde, fungsi DES diterapkan pada 32 bit subblok yang paling kanan. Hasilnya kemudian di-XOR-kan dengan bagian lainnya, dan di akhiri dengan pergeseran bit ke di-XOR-kanan sejauh 32 langkah.

(42)

untuk melakukan operasi XOR tepat sebelum dan sesudah dilakukan penyandian pada setiap rondenya.

4.4. Desain DES-Aku

DES-Aku atau Analisis Konversi posisi Unit untuk DES adalah perbaikan algoritma DES yang dibuat dalam penelitian ini. DES-Aku dibuat dengan pendekatan yang belum pernah dilakukan sebelumnya, yaitu dengan mengubah tabel konversi posisi DES agar dapat menerima dan mengolah kunci yang lebih panjang dari 56 bit.

DES-Aku memiliki panjang kunci 128 bit, 2 kali lebih panjang dari kunci asli yang dimiliki DES. DES-Aku memiliki panjang kunci yang sama dengan 2DES, hingga untuk pengujian program, DES-Aku kemudian dibandingkan dengan 2DES.

DES-Aku masih akan memanfaatkan algoritma Feistel sebagai komponen utama. DES-Aku juga masih akan menggunakan fungsi f yang sama di dalam setiap iterasinya, hingga seluruh tabel konversi yang terlibatpun masih diberi nama yang sama, karena memiliki fungsi yang sama dengan algoritma aslinya yaitu DES.

Satu-satunya perbedaan algoritma DES-Aku bila dibandingkan dengan algoritma aslinya adalah perbedaan ukuran kuncinya, yang berakibat pada perbedaan dimensi tabel konversi yang terlibat; seperti Tabel IP, Tabel ekspansi, tabel kompresi dan Tabel Sbox.

Tabel-tabel konversi posisi yang terlibat disini tidaklah dengan secara sembarang diubah dimensinya. Setiap angka yang dilibatkan dalam tabel konversi, disusun berdasarkan pola yang diperkirakan merupakan pola yang digunakan untuk membuat algoritma DES. Bagan alir selengkapnya dari algoritma DES-Aku ditampilkan pada Lampiran 1.

4.5. Prinsip DES-Aku

(43)

Mulai

Kunci 128 bit

prosedur derifikasi kunci menjadi 16 sub kunci

plain text

pembagian blok pesan untuk diolah per 128 bit

prosedur feistel

penggabungan cipher text yang sudah diolah

Blok pesan terakhir ?

Cipher text

Selesai Blok Pesan Berikutnya

N

Gambar 9 Bagan alir ringkas DES-Aku.

Adapun prinsip kerja dari sandi DES-Aku adalah sebagai berikut.

1. Persiapan kunci 128 bit, memecah-mecah kunci ke dalam 16 sub kunci berbeda dengan ukuran masing-masing sub kunci 96 bit.

2. Melakukan prosedur Feistel 16 iterasi, dengan menggunakan sub kunci yang telah disediakan, dan menggunakan tabel konversi yang juga telah ditentukan oleh algoritma DES-Aku.

4.6. Derifasi kunci

(44)

kunci di kompresi oleh PC1hingga menjadi 112 bit

56 bit Pertama

Iterasi i = 1

56 bit Berikutnya

Geser Kekiri putar melingkar Geser Kekiri putar melingkar

Digabungkan hingga kembali menjadi 112 bit

gabungan di kompresi kembali oleh PC2hingga menjadi 96 bit

diperoleh sub kunci ke - i [SK(i)] dg ukuran 96 bit

Iterasi = 16 ? Iterasi Berikutnya

N

Gambar 10 Bagan alir prosedur derifasi kunci

Adapun penjelasan dari Bagan alir di atas adalah:

1. Kunci asli yang digunakan adalah dalam bentuk biner 128 bit.

2. Kunci kemudian dipermutasikan dan dikompresi dengan Tabel PC1, menjadi 112 bit.

3. 56 bit pertama dari kunci dinotasikan sebagai C0 4. 56 bit berikutnya dari kunci dinotasikan sebagai D0 5. Untuk setiap iterasi (i) dari 1 - 16;

a. jika i => {1,2,9,16} maka vi = 1, lainnya vi = 2.

b. C0 melakukan “geser ke kiri putar melingkar sejauh Vi” c. D0 melakukan “geser ke kiri putar melingkar sejauh Vi”

d. C0 dan D0 kemudian digabungkan, dipermutasikan dan dikompres kembali dengan Tabel PC2, hingga diperoleh Ki sebanyak 96 bit.

(45)

4.7. Prosedur Feistel

Prosedur Feistel adalah langkah penting dari algoritma DES-Aku. Bagan alir selengkapnya dari prosedur Feistel disajikan pada gambar berikut.

di konversi posisikan dengan tabel IP, ukuran tetap 128 bit

Nilai L(i) dan R(i) digabungkan tukar nilai L(i) dan R(i)

L(0) : 64 bit Pertama R(0) : 64 bit Berikutnya

Iterasi i = 1

L(i) = R(i-1) R(i) = L(i-1) xor f[Ri-1,Ki]

Iterasi = 16 ?

di konversi posisikan dengan tabel IP-1, ukuran tetap 128 bit

Iterasi Berikutnya

Gambar 11 Bagan alir prosedur Feistel

Penjelasan dari bagan alir prosedur Feistel di atas adalah sebagai berikut.

1. Plainteks dikonversikan terlebih dahulu dalam biner, kemudian dibagi dan diproses per blok, dimana setiap blok terdiri atas 128 bit

2. Untuk setiap blok kemudian dikonversi posisi dengan berpedoman pada Tabel IP, hasilnya kemudian dibagi atas 2 bagian; 64 bit pada bagian kiri disebut Lo, dan 64 bit di kanan disebut R0.

3. Kedua bagian ini kemudian dilakukan iterasi fungsi f sebanyak 16 kali (LiRi, 1<i<16), dengan mengikuti struktur Feistel:

Li = Ri-1, Ri = Li-1⊕ f (Ri-1, Ki).

(46)

7. Hasil akhirnya kemudian di balik, dan dioperasikan dengan invers dari IP (IP-1(R16,L16)

4.8. Fungsi f

Fungsi f yang ada pada setiap iterasi Feistel adalah suatu fungsi yang menggabungkan sisi kanan iterasi sebelumnya (Ri-1) terhadap sub kunci pada iterasi tersebut (Ki). Adapun persamaan matematik dari fungsi ini adalah:

f (Ri-1, Ki) = P[S{E(Ri-1) ⊕ Ki}].

Di lain pihak urutan pengerjaanya adalah:

1. E(Ri-1) atau pengembangan hasil sisi kanan dari iterasi sebelumnya, menggunakan Tabel ekspansi. Langkah ini akan mengubah Ri-1 yang semestinya 64 bit menjadi 96 bit.

2. E(Ri-1) ⊕ Ki, atau penggabungan hasil ekspansi dengan sub kunci spesifik pada setiap interasi yang sama-sama berukuan 96 bit. Penggabungan disini dengan menggunakan operator XOR, hasilnya dinotasikan sebagai B. 3. S{E(Ri-1) ⊕ Ki}, atau substitusi guna menukar data B 96 bit menjadi data

baru (A) yang berukuran 64 bit. Adapun langkah-langkahnya adalah: a. Bagi data 96 bit menjadi 16 kelompok data dengan ukuran

masing-masing 6 bit. Setiap kelompok data dinotasikan menjadi Bj: (B1, B2, … , B16).

b. Untuk setiap Bj, bit ke-1 dan ke-6 digabungkan dan didesimalkan, hasilnya dinotasikan sebagai EXT.

c. Untuk setiap Bj, bit ke-2 hingga ke-5 digabungkan dan didesimalkan, hasilnya dinotasikan sebagai MIDS.

d. Untuk setiap subblok yang berbeda, gunakan Tabel Sbox yang sesuai guna mendapatkan data Aj: (A1, A2, … , A16).

(47)

4.9. Persiapan tabel

• Tabel IP sebagaimana yang dituangkan dalam tabel 10 digunakan pada langkah awal sandi DES-Aku. Pada DES tabel ini memiliki 64 komponen, di lain pihak pada pada DES-Aku tabel ini memiliki 128 komponen. Pembahasan lebih lanjut mengenai fungsi tabel ini dituliskan pada sub bab 5.2.4.

Tabel 10 Tabel IP pada DES-Aku.

122 114 106 98 90 82 74 66

58 50 42 34 26 18 10 2

124 116 108 100 92 84 76 68

60 52 44 36 28 20 12 4

126 118 110 102 94 86 78 70

62 54 46 38 30 22 14 6

128 120 112 104 96 88 80 72

64 56 48 40 32 24 16 8

121 113 105 97 89 81 73 65

57 49 41 33 25 17 9 1

123 115 107 99 91 83 75 67

59 51 43 35 27 19 11 3

125 117 109 101 93 85 77 69

61 53 45 37 29 21 13 5

127 119 111 103 95 87 79 71

63 55 47 39 31 23 15 7

(48)

Tabel 11 Tabel IP-1 pada DES-Aku.

80 16 96 32 112 48 128 64

79 15 95 31 111 47 127 63

78 14 94 30 110 46 126 62

77 13 93 29 109 45 125 61

76 12 92 28 108 44 124 60

75 11 91 27 107 43 123 59

74 10 90 26 106 42 122 58

73 9 89 25 105 41 121 57

72 8 88 24 104 40 120 56

71 7 87 23 103 39 119 55

70 6 86 22 102 38 118 54

69 5 85 21 101 37 117 53

68 4 84 20 100 36 116 52

67 3 83 19 99 35 115 51

66 2 82 18 98 34 114 50

65 1 81 17 97 33 113 49

(49)

Tabel 12 Tabel PC1 pada DES-Aku.

113 97 81 65 49 33 17 1 114 98 82 66 50 34 18 2 115 99 83 67 51 35 19 3 116 100 84 58 119 103 87 71 55 39 23

7 118 102 86 70 54 38

22 6 117 101 85 69 53 37 21 5 52 36 20 4 121 105 89 73 57 41 25

9 122 106 90 74 58 42

26 10 123 107 91 75 59

43 27 11 124 108 92 76

127 111 95 79 63 47 31 15 126 110 94 78 62 46 30 14 125 109 93 77 61 45 29 13 60 44 28 12

• Tabel PC2. Tabel ini juga berfungsi untuk mengecilkan ukuran kunci dalam suatu proses derifasi kunci. Pada DES tabel ini akan mengecilkan kunci 56 bit menjadi 48 bit, di lain pihak pada DES-Aku tabel ini akan mengecilkan kunci 112 bit menjadi 96 bit. Pembahasan lebih lanjut mengenai fungsi tabel ini dituliskan pada sub bab 5.2.6.

Tabel 13 Tabel PC2 pada DES-Aku 14 17 11 24 1 5 3 28

15 6 21 10 23 19 12 4

26 8 16 7 27 20 13 2

41 52 31 37 47 55 30 40

51 45 33 48 44 49 39 56

34 53 46 42 50 36 29 32

70 73 67 80 57 61 59 84

71 62 77 66 79 75 68 60

82 64 72 63 83 76 69 58

97 108 87 93 103 111 86 96 107 101 89 104 100 105 95 112

(50)

• Tabel ekspansi. Tabel ini digunakan di dalam fungsi f, yang berfungsi untuk mengubah data 64 bit menjdi 96 bit, dengan demikian memiliki ukuran yang sama dengan ukuran kunci dan dapat dioperasikan. Tabel ekspansi yang digunakan oleh algoritma penyandian DES-Aku disajikan pada Tabel 14, sedangkan pembahasan lebih lanjut mengenai fungsi tabel ini dituliskan pada sub bab 5.2.7.

Tabel 14 Tabel ekspansi pada DES-Aku

32 1 2 3 4 5

4 5 6 7 8 9 8 9 10 11 12 13

12 13 14 15 16 17

16 17 18 19 20 21

20 21 22 23 24 25

24 25 26 27 28 29

28 29 30 31 32 33

32 33 34 35 36 37

36 37 38 39 40 41

40 41 42 43 44 45

44 45 46 47 48 49

48 49 50 51 52 53

52 53 54 55 56 57

56 57 58 59 60 61

60 61 62 63 64 65

(51)

DES-Aku disajikan pada Tabel 15, sedangkan pembahasan lebih lanjut mengenai fungsi tabel ini dituliskan pada sub bab 5.2.9.

Tabel 15 Tabel permutasi Feistel pada DES-Aku 16 7 20 21 29 12 28 17

1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 48 39 52 53 61 44 60 49 33 47 55 58 37 50 63 42 34 40 56 46 64 59 35 41 51 45 62 38 54 43 36 57

• Tabel Sbox. Pada DES tabel ini memiliki 8 subblok, namun pada DES-Aku tabel ini memiliki 16 subblok. Penambahan subblok dilakukan guna menyesuaikan dengan panjang pengolahan pesan. Tabel Sbox yang digunakan oleh algoritma penyandian DES-Aku disajikan pada Tabel 16, sedangkan pembahasan lebih lanjut mengenai fungsi tabel ini dituliskan pada sub bab 5.2.8.

Tabel 16 Tabel Sbox pada DES-Aku

MID: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Sub

blok EXT:

0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7

1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8

2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0

S1

3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

0 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10

1 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5

2 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15

S2

3 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

0 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8

1 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1

2 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 S3

(52)
(53)

Tabel 16 Tabel Sbox pada DES-Aku (lanjutan)

MID: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Sub

blok EXT:

0 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15

1 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9

2 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 S12

3 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14

0 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9

1 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6

2 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14

S13

3 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3

0 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11

1 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8

2 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6

S14

3 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13

0 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1

1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6

2 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2

S15

3 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12

0 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7

1 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2

2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8

S16

(54)

BAB 5

HASIL UJI DAN PEMBAHASAN

Algoritma penyandian DES telah berhasil diimplementasikan dalam bentuk ekspansi yang dibuat dengan Microsoft Visual Basic 6.0. Adapun tujuan dari penyusunan kode dari algoritma ini adalah untuk memudahkan langkah-langkah selanjutnya. Sebagaimana diketahui algoritma penyandian DES-Aku akan dibandingkan cara kerjanya dengan algoritma penyandian 2DES, yang secara prinsipil merupakan pengulangan algoritma DES sebanyak dua kali.

Antarmuka aplikasi penyandian baik 2DES dan DES-Aku juga sudah dibuat, di lain pihak baris kode selengkapnya dapat dilihat pada lampiran. Agar dapat bekerja, aplikasi ini membutuhkan file library COMDLG32.OCX.

5.1. Implementasi algoritma penyandian 2DES.

Algoritma 2DES telah diimplementasikan dalam bentuk ekspansi, tujuannya adalah agar dapat dibandingkan kinerjanya dengan algoritma DES-Aku. Implementasi 2DES merupakan kelanjutan atau perbaikan program dari implementasi DES. 2DES juga diimplementasikan karena akan digunakan sebagai bahan pembanding kinerja terhadap algoritma DES-Aku yang dibuat di dalam penelitian ini.

Baik 2DES maupun DES-Aku sama-sama menggunakan kunci 128 bit. Untuk keperluan kuncinya, ekspansi ini juga telah dilengkapi dengan kotak dialog pemasukan password yang mengharuskan pengguna untuk memasukkan kunci sebanyak 16 karakter.

(55)

5.2. Implementasi Algoritma penyandian DES-Aku. 5.2.1. Implementasi Applikasi DES-Aku

DES-Aku sebagai algoritma yang dihasilkan oleh penelitian ini juga telah diimplementasikan dalam bentuk ekspansi. Gambar berikut ini adalah antarmuka yang secara sengaja dibuat sama dengan antarmuka 2DES.

Gambar 12 Tampilan antarmuka DES-Aku.

Untuk melaksanakan fungsinya, aplikasi penyandian DES-Aku ini memerlukan kunci 128 bit dan dalam prakteknya kunci ini diistilahkan oleh peneliti sebagai password 16 karakter, yang dapat diinputkan oleh pengguna pada setiap kali pengguna hendak melakukan penyandian. Sebagaimana telah digambarkan di awal, DES-Aku menggunakan kunci 128 bit atau 16 karakter. Berikut adalah gambar antarmuka masukan kunci pada aplikasi DES-Aku.

(56)

Aplikasi ini telah dicoba pada beberapa jenis file dan memberikan hasil terbaik ketika dicobakan pada file teks. Gambar berikut adalah contoh file teks yang telah dicoba dalam keadaan asli, atau sebelum diterjemahkan.

Gambar 14 Contoh plainteks.

Setelah disandikan, maka akan terbentuk file teks baru, yang isinya berubah sama sekali. Gambar berikut adalah tampilan pesan setelah disandikan.

Gambar 15 Siferteks yang dihasilkan.

Agar komunikasi antar pengguna dan aplikasi dapat berjalan dengan baik, maka tidak lupa peneliti membuat kotak dialog yang akan menjelaskan kepada pengguna apabila suatu pesan telah sukses disandikan atau diterjemahkan, berikut dengan waktu yang dibutuhkan untuk melakukannya. Gambar berikut adalah tampilan aplikasi ketika memberitahu pengguna bahwa proses penyandian atau penerjemahan telah berhasil dilakukan, sekaligus waktu yang dibutuhkan untuk melakukan penyandian atau penerjemahan.

(57)

5.2.2. Penentuan kunci DES-Aku

DES-Aku menggunakan kunci 128 bit, dua kali lebih panjang dari kunci asli yang digunakan oleh algoritma penyandian DES. Di dalam DES-Aku tidak dikenal adanya parity bit, dengan demikian 128 bit kunci yang digunakan adalah 128 bit kunci yang diinput oleh pengguna, meski dalam prakteknya 128 bit kunci ini dimasukkan oleh pengguna dalam bentuk 16 karakter.

DES-Aku menggunakan panjang kunci 128 bit. Panjang kunci ini dipilih karena cukup dengan 128 bit kunci, maka akan menghasilkan 2128 atau 340.282.366.920.938.463.463.374.607.431.770.000.000 kemungkinan kunci. Secara teoritis, kemungkinan kombinasi kunci ini sudah cukup jauh lebih besar dari kemungkinan kombinasi kunci DES yang hanya memiliki 56 bit kunci, yang hanya menghasilkan 256 atau 72.057.594.037.927.936 kemungkinan kunci.

Panjang kunci DES-Aku sama panjang dengan kunci 2DES yang juga menghasilkan 2128 atau 340.282.366.920.938.463.463.374.607.431.770.000.000 kemungkinan kunci. Dari sisi keamanan kunci DES-Aku sudah sama kuat dengan algoritma perbaikan DES yang telah ada ada saat ini yaitu 2DES.

Tujuan membuat kunci 128 bit adalah demi kenyamanan dari pengguna perangkat lunak DES-Aku. Dengan menggunakan kunci sepanjang 128 bit, maka pengguna cukup menghapalkan 16 karakter, di lain pihak bila menggunakan kunci sepanjang 192 bit atau lebih, maka pengguna harus menghapalkan kunci sekurang-kurangnya 24 karakter. Menghapalkan 16 karakter tentu saja akan jauh lebih mudah ketimbang menghapalkan 24 karakter, karena ada faktor human error yang dapat saja terjadi ketika pengguna menghapalkan atau menggunakan kunci penyandian.

(58)

5.2.3. Pembahasan Fungsi f

Fungsi f yang digunakan dalam DES-Aku sama dengan fungsi f yang digunakan dalam algoritma DES. Fungsi yang dijalankan pada setiap ronde dalam permutasi Feistel ini memiliki persamaan matematik sebagai berikut:

Li = f (Ri-1, Ki) = P[S{E(Ri-1) ⊕ Ki}].

Terlihat bahwa fungsi ini bertujuan untuk mengisi ruas kiri pada suatu ronde permutasi Feistel, yang merupakan hasil suatu fungsi yang melibatkan ruas kanan ronde sebelumnya dan sub kunci spesifik pada rode tersebut. Beberapa operasi yang telibat di dalam fungsi ini adalah permutasi, substitusi, ekspansi dan operasi XOR.

ekspansi adalah operasi di dalam fungsi f yang dilakukan paling awal. Operasi ini bertujuan untuk mempersiapkan blok data yang akan disandikan, karena blok data tesebut hanya berukuran 64 bit, di lain pihak sub kunci yang digunakan berukuran 96 bit. Operasi ini akan memperbesar ukuran blok data yang akan disandikan dari 64 bit menjadi 96 bit, dengan demikian sama dengan jumlah bit dari sub kunci yang digunakan.

Operasi berikutnya dalam struktur DES adalah operasi XOR, operasi ini akan menggabungkan blok data terekspansi yang terdapat pada sub kunci spesifik pada setiap ronde. Operasi XOR bekerja dengan cara “membenarkan” dua data yang berbeda, dan “menyalahkan” dua data yang sama. Operasi XOR adalah operator logika yang memiliki sifat reversible, dengan demikian sering digunakan dalam berbagai algoritma penyandian dan penerjemahan.

A XOR B Æ C, A XOR C Æ B, B XOR C Æ A.

(59)

data 96 bit menjadi 16 subblok yang masing-masing berukuran 6 bit. Setiap subblok kemudian disubstitusi terhadap Tabel Sbox hingga menjadi subblok data baru yang berukuran 4 bit. Pembahasan XOR sangat erat kaitannya dengan pembahasan Tabel Sbox sebagaimana yang dicantumkan pada beberapa sub-bahasan berikutnya.

Operasi terakhir dalam fungsi f adalah operasi permutasi Feistel. Langkah terkhir ini sesungguhnya hanyalah merupakan langkah mengubah urutan tabel (transposisi lokasi), dengan tujuan menambah kompleksitas algoritma penyandian dan semakin mengacak data. Tidak ada perubahan jumlah data dalam permutasi tabel ini.

5.2.4. Pembahasan Tabel IP dan IP-1

Tabel IP dan inversnya (IP-1) adalah adalah tabel konversi posisi yang digunakan oleh algoritma DES. Susunan angka pada Tabel IP sesungguhnya bisa bebas dikarang oleh siapapun dan tidak harus mengikuti yang disediakan oleh DES, hanya saja harus mengikuti dimensi yang sama, dan IP-1 nya harus diperoleh dari Tabel IP yang sesuai.

Pada algoritma DES, terlihatnya Tabel IP-1 lah yang dibuat terlebih dahulu, baru kemudian Tabel IP didefinisikan hal ini dapat dilihat dari pola yang yang lebih terlihat nyata pada tabel konversi posisi IP-1, ketimbang pola yang ditampakkan pada Tabel IP, sebagaimana yang ditampilkan dalam Gambar 17.

25

Gambar

Gambar 1 Penggolongan ilmu kriptografi (Menezes, 1996)
Gambar 3 Bagan alir sandi DES
Gambar 1 Penggolongan ilmu kriptografi (Menezes, 1996)
Gambar 2 Bagan alir Sandi Feistel.
+7

Referensi

Dokumen terkait

83 Lampiran 3 Hasil SPSS..

Penelitian ini bertujuan mendeskripsikan penerapan model pembelajaran Problem-Based Learning berbantuan media Flipchart pada materi penyajian dan pengolahan data

Pengharusan penerapan implementasi konvergensi IFRS di Indonesia juga diduga berdampak besar terhadap peraktik income smoothing karena laporan keuangan perusahaan

Untuk dapat memenuhi instrumen penelitian yang sifatnya adalah selalu dapat dipercaya (reliabel), maka digunakan uji reliabilitas, yaitu untuk mengetahui ketepatan

- semua karyawan dari Perusahaan yang Berpartisipasi dengan kantor terdaftarnya terletak di luar Prancis, yang bekerja di bawah kontrak kerja pada tanggal penyerahan

Maklumat yang diperuntukkan di sini mungkin tidak mengambil kira kesan disebabkan keperluan peraturan tambahan (contohnya, untuk bahan memenuhi definisi sesuatu buangan merbahaya

Analisis petrografi bertujuan untuk penamaan batu sedimen serta memperoleh data penunjang bagi Provenance agar dapat diketahui bagaimana kandungan persentase batuan baik

“ Pengaruh Pendapatan Asli Daerah (PAD) Dan Dana Alokasi Umum (DAU) Terhadap Belanja Daerah Pada Badan Pengelolaan Keuangan Daerah Kota Palembang .”. 1.2