Back to IF4033 Keamanan Siber

Kriptografi Simetris - DES, 3DES, dan AES

Questions/Cues

  • Apa saja algoritma simetris yang dikenal?
  • Bagaimana DES bekerja dan mengapa dianggap tidak aman lagi?
  • Bagaimana 3DES memperkuat DES?
  • Bagaimana struktur dan ronde AES?
  • Mengapa AES lebih aman daripada DES?

Reference Points

  • IF4033 Cryptography (Slides 17-29)

Algoritma Simetris

DES (mode ECB, CBC, CFB, OFB), 3DES, AES, IDEA, Blowfish, RC4, RC5, CAST, SAFER, Twofish.

DES (Data Encryption Standard)

  • Standar enkripsi AS (NIST 1993): kunci 56-bit, input plaintext 64-bit, block cipher.
  • Alur: initial permutation, 16 ronde identik (tiap ronde memakai 48 bit subkey), lalu final permutation. Strukturnya Feistel.
  • Keamanan: DES Challenge memecahkan frasa ber-kunci 56-bit dengan brute force kurang dari sehari; tidak ada serangan analitik yang baik.
  • Penguatan: 3DES, yaitu enkripsi 3 kali dengan 3 kunci berbeda (sebenarnya encrypt-decrypt-encrypt).

Block Cipher Iteratif

Block cipher dibangun dengan mengiterasi round function R(k, m) memakai key expansion; 3DES memakai n=48 ronde dan AES-128 memakai n=10.

AES (Advanced Encryption Standard)

NIST (Januari 1997) meminta algoritma yang tidak rahasia, terbuka, bebas royalti, simetris, blok 128-bit, dan kunci 128/192/256-bit. Pemenang Rijndael ditetapkan standar pada November 2001, menggantikan DES.

  • Blok 128 bit, kunci 128/192/256 bit.
  • Berbeda dari DES, AES adalah jaringan substitusi-permutasi (SP network), bukan Feistel.
  • Brute force yang memakan 1 detik pada DES butuh ±149 triliun tahun pada AES.
flowchart TB
    IN["Input 16 byte + k0"] --> R["Ronde 1-9:<br/>ByteSub, ShiftRow, MixColumn, AddRoundKey"]
    R --> L["Ronde 10:<br/>ByteSub, ShiftRow, AddRoundKey"]
    L --> OUT["Output"]

AES-128 memakai 10 ronde; key expansion mengubah 16 byte menjadi 176 byte. Fungsi ronde: ByteSub (S-box 1 byte, tabel 256 byte), ShiftRows, dan MixColumns.

Trade-off Implementasi

Pra-hitung seluruh round function (24KB/4KB) memberi performa tertinggi (table lookup + XOR); hanya S-box (256 byte) memberi kompromi; tanpa pra-hitung kode paling kecil tetapi paling lambat (mis. library AES JavaScript SJCL 6,4KB). Pada hardware, instruksi AES-NI (aesenc, aesenclast, aeskeygenassist) memberi percepatan sekitar 14x dibanding OpenSSL software.

Summary

DES (kunci 56-bit, blok 64-bit, 16 ronde Feistel) sudah dapat dibobol brute force sehingga diperkuat menjadi 3DES (E-D-E dengan tiga kunci). AES/Rijndael (standar 2001) memakai blok 128-bit, kunci 128/192/256-bit, jaringan substitusi-permutasi dengan 10 ronde (AES-128: ByteSub, ShiftRows, MixColumns, AddRoundKey), dan sangat tahan brute force. Implementasi AES dapat dioptimalkan dengan tabel pra-hitung atau instruksi hardware AES-NI.