Back to IF4033 Keamanan Siber

Mode Operasi Cipher Blok pada AES

Questions/Cues

  • Apa yang terjadi jika data lebih besar dari satu blok 128-bit?
  • Bagaimana CBC bekerja dan apa peran IV?
  • Apa kelemahan ECB?
  • Apa kelebihan dan kekurangan CTR, OFB, CFB, GCM, CCM, dan XTS?

Reference Points

  • IF4033 Cryptography (Slides 29-35)

Masalah Data Lebih dari Satu Blok

Block cipher hanya mengenkripsi satu blok (128 bit pada AES). Untuk pesan lebih panjang dibutuhkan mode operasi yang mengatur bagaimana blok-blok digabungkan.

Cipher Block Chaining (CBC)

Enkripsi blok saat ini bergantung pada hasil blok sebelumnya:

  • Enkripsi: c[i] = E(k, m[i] XOR c[i-1])
  • Dekripsi: m[i] = D(k, c[i]) XOR c[i-1]

Blok pertama memerlukan Initialization Vector (IV) acak sebagai c[0]. IV tidak harus rahasia, tetapi harus berbeda untuk tiap pesan/sesi sehingga pesan sama yang dikirim berulang menghasilkan ciphertext yang selalu berbeda.

flowchart TD
    IV["IV"] --> X0["XOR m0"] --> E0["E(k)"] --> C0["c0"]
    C0 --> X1["XOR m1"] --> E1["E(k)"] --> C1["c1"]
    C1 --> X2["XOR m2"] --> E2["E(k)"] --> C2["c2"]

Perbandingan Mode AES

ModeCara kerjaKelebihanKekurangan
ECBTiap blok dienkripsi independenSederhanaTidak aman: plaintext sama menghasilkan ciphertext sama
CBCCiphertext sebelumnya di-XOR dengan plaintextLebih aman, ada keacakanRentan replay, error merambat, tidak paralel pada enkripsi
CTRNonce + counter menghasilkan keystreamEfisien, paralel, random accessKurang aman bila salah pakai (reuse nonce)
OFBOutput block cipher diumpan balik sebagai keystreamMirip CTRBisa kurang aman dari CTR bila salah pakai
CFBSebagian ciphertext diumpan balikEnkripsi/dekripsiKurang efisien dari CTR/OFB
GCMCTR + MAC (Galois)Confidentiality dan integrity, efisienImplementasi lebih kompleks
CCMCTR + CBC-MACMirip GCM, lebih sederhanaPotensial kurang efisien
XTS-AESMode “tweakable” untuk sektorCocok untuk enkripsi diskLebih kompleks

Summary

Karena block cipher hanya menangani satu blok, dipakai mode operasi. ECB tidak aman karena blok identik menghasilkan ciphertext identik. CBC merantaikan blok dengan IV acak (tidak rahasia, unik per pesan). CTR/OFB/CFB mengubah block cipher menjadi stream cipher. GCM dan CCM memberi authenticated encryption (confidentiality + integrity), sedangkan XTS untuk enkripsi disk. Untuk aplikasi web modern, AES-GCM adalah pilihan umum.