Analisis DES PERANCANGAN ALGORITMA

26

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. Sandi DES mengawali prosesnya dengan derifasi kunci, yaitu suatu proses penurunan sebuah kunci 56 bit menjadi 16 subkunci yang panjangnya masing- masing 48 bit. Setiap subkunci akan digunakan pada setiap ronde yang sesuai pada iterasi Feistel. Pada prakteknya, ke 56 bit kunci ini seringkali diminta dari pengguna sebagai kunci 8 karakter, yang apabila diubah ke dalam biner maka akan menjadi kunci 64 bit. Dengan mengabaikan membuang kunci di bit ke 8, 16, 24, 32, 40, 48, 56 dan 64 maka sebagai hasil akhir akan dihasilkan kunci 56 bit. 27 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: L i = R i-1, R i = L i-1 ⊕ f R i-1 , K i , dengan: f R i-1 , Ki = P[S{ER i-1 + K i }]. 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. Proses substitusi yang mengacu pada Tabel Sbox sendiri ternyata melibatkan operasi bit yang cukup rumit, seperti memecah rangkaian bit hasil ekspansi ke dalam 16 kelompok 6 bit, dimana pada setiap kelompok, bit 1 dan bit 6 disatukan dan dilihat nilai desimalnya, begitupun dengan menyatukan bit ke-2 hingga ke-5 guna melihat nilai desimalnya. Terakhir kedua nilai desimal yang diperoleh inilah yang dijadikan acuan guna melihat Tabel Sbox. 28 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 On, 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 3 KB 5 KB 7 KB 9 KB y = 3E-05x + 4E-05 R 2 = 0.9594 0.00002 0.00004 0.00006 0.00008 0.0001 0.00012 0.00014 0.00016 0.00018 0.0002 1 2 3 4 5 6 Gambar 7 Waktu eksekusi DES terhadap ukuran plainteks Dari arah kecenderungan grafik di atas terbukti bahwa peningkatan waktu eksekusi berbanding lurus terhadap besarnya plainteks dengan tingkat kepercayaan sangat tinggi 0,9. 29

4.2. Peluang perbaikan Algoritma DES