Contoh Algoritma DES: Cara Kerja dan Implementasi

Dalam dunia keamanan informasi, enkripsi memegang peranan krusial untuk melindungi data dari akses yang tidak berwenang. Salah satu algoritma enkripsi klasik yang pernah sangat populer adalah Data Encryption Standard (DES). Meskipun saat ini DES dianggap kurang aman untuk banyak aplikasi karena ukuran kuncinya yang kecil, memahami cara kerjanya memberikan wawasan fundamental tentang prinsip-prinsip kriptografi simetris. Artikel ini akan membahas contoh algoritma DES, mulai dari konsep dasar hingga tahapan-tahapannya.

Simbol representatif untuk enkripsi/dekripsi data.

Apa itu Algoritma DES?

DES (Data Encryption Standard) adalah algoritma enkripsi blok simetris yang dikembangkan pada awal tahun 1970-an. Algoritma ini mengenkripsi data dalam blok berukuran 64 bit. Kunci yang digunakan DES berukuran 56 bit efektif (meskipun disimpan dalam 64 bit, 8 bit terakhir digunakan sebagai parity bit). DES termasuk dalam kategori algoritma kriptografi kunci simetris, yang berarti kunci yang sama digunakan untuk proses enkripsi dan dekripsi.

Meskipun DES masih dapat ditemukan dalam beberapa sistem warisan, kekuatannya telah banyak dikritik karena ukuran kuncinya yang rentan terhadap serangan brute-force oleh komputer modern. Algoritma yang lebih kuat seperti AES (Advanced Encryption Standard) kini telah menggantikannya.

Cara Kerja Dasar Algoritma DES

DES beroperasi melalui serangkaian permutasi dan substitusi yang rumit yang diulang sebanyak 16 putaran (round). Setiap putaran melibatkan operasi matematika dan logika yang mengubah blok data secara progresif.

Tahapan utama dalam algoritma DES adalah:

  1. Initial Permutation (IP): Blok data 64 bit awal diacak berdasarkan tabel permutasi tertentu.
  2. Expansion (E) dan XOR dengan Sub-kunci: Blok data dibagi menjadi dua bagian: kiri (L) dan kanan (R), masing-masing 32 bit. Bagian kanan (R) diekspansi menjadi 48 bit, kemudian di-XOR-kan dengan sub-kunci (key schedule) yang dihasilkan dari kunci utama.
  3. Substitution Boxes (S-Boxes): Hasil XOR kemudian dimasukkan ke dalam S-Boxes. S-Boxes melakukan substitusi bit demi bit berdasarkan input 6 bit menjadi output 4 bit. Ini adalah inti non-linear dari algoritma DES yang memberikan kekuatan kriptografinya.
  4. Permutation (P-Box): Output dari S-Boxes (sebanyak 32 bit) kemudian diacak lagi menggunakan P-Box.
  5. XOR dengan Bagian Kiri: Hasil dari P-Box kemudian di-XOR-kan dengan bagian kiri blok data (L).
  6. Pertukaran (Swap): Bagian kiri dan kanan blok data ditukar posisinya. Bagian kanan baru adalah hasil operasi di atas, sedangkan bagian kiri baru adalah bagian kanan lama sebelum operasi.
  7. Pengulangan (16 Putaran): Proses ini diulang sebanyak 16 kali. Setiap putaran menggunakan sub-kunci yang berbeda, yang dihasilkan dari proses "key schedule".
  8. Final Permutation (FP): Setelah 16 putaran, blok data yang dihasilkan mengalami permutasi akhir yang merupakan kebalikan dari Initial Permutation.

Contoh Skematik Operasi Satu Putaran DES

Mari kita fokus pada detail satu putaran DES. Diasumsikan kita memiliki blok data 64 bit yang dibagi menjadi L0 (32 bit) dan R0 (32 bit).

Untuk putaran ke-i (dimana i dari 1 hingga 16):

  1. Ekspansi R(i-1): Bagian kanan dari putaran sebelumnya, R(i-1), diekspansi dari 32 bit menjadi 48 bit. Ekspansi ini menggandakan beberapa bit agar ukurannya sesuai untuk operasi selanjutnya.
  2. Key Schedule K(i): Kunci utama 64 bit diproses untuk menghasilkan sub-kunci K(i) berukuran 48 bit untuk putaran ke-i. Ini melibatkan permutasi dan pergeseran bit kunci.
  3. XOR 1: Hasil ekspansi dari R(i-1) di-XOR-kan dengan sub-kunci K(i).
  4. S-Boxes: Output dari XOR 1 (48 bit) dibagi menjadi 8 bagian masing-masing 6 bit. Setiap bagian 6 bit dimasukkan ke dalam salah satu dari 8 S-Boxes yang berbeda. Setiap S-Box menghasilkan output 4 bit. Total output dari semua S-Boxes adalah 32 bit.
  5. P-Box: Output gabungan dari S-Boxes (32 bit) kemudian diproses melalui P-Box, yang merupakan tabel permutasi standar.
  6. XOR 2: Hasil dari P-Box di-XOR-kan dengan bagian kiri dari putaran sebelumnya, L(i-1). Hasil ini menjadi bagian kanan untuk putaran selanjutnya, R(i).
  7. Swap: Bagian kiri untuk putaran selanjutnya, L(i), adalah bagian kanan dari putaran sebelumnya, yaitu R(i-1).

Secara visual, ini dapat digambarkan sebagai:

        L(i) = R(i-1)
        R(i) = L(i-1) XOR f(R(i-1), K(i))
        

Dimana `f` adalah fungsi yang melibatkan ekspansi, S-Boxes, dan P-Box.

Contoh Sederhana (Konseptual)

Meskipun implementasi penuh DES melibatkan tabel permutasi yang kompleks, mari kita bayangkan sebuah versi yang sangat disederhanakan untuk memahami konsep substitusi dan permutasi.

Misalkan kita punya blok data 8 bit dan kunci 8 bit, dan algoritma kita punya 1 putaran saja.

Data: 10110010

Kunci: 01101101

Langkah Sederhana (hanya ilustrasi, bukan DES sebenarnya):

Proses nyata DES jauh lebih kompleks dengan tabel yang spesifik dan jumlah putaran yang banyak.

Kesimpulan

Meskipun DES tidak lagi dianggap aman untuk penggunaan modern, contoh algoritma DES ini memberikan pemahaman mendalam tentang bagaimana algoritma enkripsi blok simetris bekerja. Struktur berulang, penggunaan substitusi (S-Boxes) untuk non-linearitas, dan permutasi bit adalah elemen kunci yang mendasari kekuatan banyak algoritma kriptografi hingga saat ini. Mempelajari DES membuka jalan untuk memahami algoritma yang lebih canggih seperti Triple DES (3DES) dan AES.

🏠 Homepage