Jakarta Aktual
Jakarta Aktual

Berita Aktual dan Faktual

Jakarta Aktual
Jakarta Aktual© 2026
Jakarta Aktual
Jakarta Aktual

Berita Aktual dan Faktual

BerandaWikiPenjadwalan kunci AES
Artikel Wikipedia

Penjadwalan kunci AES

AES menggunakan penjadwalan kunci untuk memperluas sebuah kunci pendek menjadi beberapa kunci ronde. Tiga variasi AES memiliki jumlah ronde yang berbeda. Tiap variasi membutuhkan kunci ronde 128 bit untuk tiap ronde ditambah satu. Penjadwalan kunci ini menghasilkan kunci-kunci ronde yang dibutuhkan dari kunci asal.

penjadwalan kunci yang dipakai untuk memperluas kunci menjadi tiap kunci ronde dalam AES
Diperbarui 6 Agustus 2021

Sumber: Lihat artikel asli di Wikipedia

AES menggunakan penjadwalan kunci untuk memperluas sebuah kunci pendek menjadi beberapa kunci ronde. Tiga variasi AES memiliki jumlah ronde yang berbeda. Tiap variasi membutuhkan kunci ronde 128 bit untuk tiap ronde ditambah satu.[catatan 1] Penjadwalan kunci ini menghasilkan kunci-kunci ronde yang dibutuhkan dari kunci asal.

Tetapan ronde

Nilai rci dalam heksadesimal
i 12345678910
rci 01020408102040801B36

Tetapan ronde rconi untuk ronde ke-i perluasan kunci adalah kata (word) 32 bit berikut:[catatan 2]

r c o n i = [ r c i 00 16 00 16 00 16 ] {\displaystyle rcon_{i}={\begin{bmatrix}rc_{i}&00_{16}&00_{16}&00_{16}\end{bmatrix}}} {\displaystyle rcon_{i}={\begin{bmatrix}rc_{i}&00_{16}&00_{16}&00_{16}\end{bmatrix}}}

dengan rci adalah nilai 8 bit yang didefinisikan sebagai berikut:

r c i = { 1 jika  i = 1 2 ⋅ r c i − 1 jika  i > 1  dan  r c i − 1 < 80 16 ( 2 ⋅ r c i − 1 ) ⊕ 11B 16 jika  i > 1  dan  r c i − 1 ≥ 80 16 {\displaystyle rc_{i}={\begin{cases}1&{\text{jika }}i=1\\2\cdot rc_{i-1}&{\text{jika }}i>1{\text{ dan }}rc_{i-1}<80_{16}\\(2\cdot rc_{i-1})\oplus {\text{11B}}_{16}&{\text{jika }}i>1{\text{ dan }}rc_{i-1}\geq 80_{16}\end{cases}}} {\displaystyle rc_{i}={\begin{cases}1&{\text{jika }}i=1\\2\cdot rc_{i-1}&{\text{jika }}i>1{\text{ dan }}rc_{i-1}<80_{16}\\(2\cdot rc_{i-1})\oplus {\text{11B}}_{16}&{\text{jika }}i>1{\text{ dan }}rc_{i-1}\geq 80_{16}\end{cases}}}

dengan ⊕ {\displaystyle \oplus } {\displaystyle \oplus } adalah operator XOR dan bilangan yang diakhiri angka 16 seperti 0016 dan 11B16 adalah bilangan heksadesimal.

AES menggunakan hingga rcon10 untuk AES-128 (karena butuh 11 kunci ronde), hingga rcon8 untuk AES-192, dan hingga rcon7 untuk AES-256.[catatan 3]

Penjadwalan kunci

Penjadwalan kunci AES untuk kunci 128 bit

Definisikan:

  • N sebagai panjang kunci dalam kelompok kata (word) 32 bit: 4 kata untuk AES-128, 6 kata untuk AES-192, dan 8 kata untuk AES-256
  • K0, K1, ... KN-1 sebagai kelompok kata 32 bit dari kunci asli
  • R sebagai jumlah kunci ronde yang dibutuhkan: 11 kunci ronde untuk AES-128, 13 kunci ronde untuk AES-192, dan 15 kunci ronde untuk AES-256[catatan 4]
  • W0, W1, ... W4R-1 sebagai kelompok kata 32 bit dari kunci yang telah diperluas/kunci ronde[catatan 5]

Definisikan pula RotWord sebagai suatu geseran melingkar kiri satu bita:[catatan 6]

RotWord ⁡ ( [ b 0 b 1 b 2 b 3 ] ) = [ b 1 b 2 b 3 b 0 ] {\displaystyle \operatorname {RotWord} ({\begin{bmatrix}b_{0}&b_{1}&b_{2}&b_{3}\end{bmatrix}})={\begin{bmatrix}b_{1}&b_{2}&b_{3}&b_{0}\end{bmatrix}}} {\displaystyle \operatorname {RotWord} ({\begin{bmatrix}b_{0}&b_{1}&b_{2}&b_{3}\end{bmatrix}})={\begin{bmatrix}b_{1}&b_{2}&b_{3}&b_{0}\end{bmatrix}}}

dan SubWord sebagai penerapan kotak-S AES (substitusi) kepada tiap bita dari kata empat bita:

SubWord ⁡ ( [ b 0 b 1 b 2 b 3 ] ) = [ S ⁡ ( b 0 ) S ⁡ ( b 1 ) S ⁡ ( b 2 ) S ⁡ ( b 3 ) ] {\displaystyle \operatorname {SubWord} ({\begin{bmatrix}b_{0}&b_{1}&b_{2}&b_{3}\end{bmatrix}})={\begin{bmatrix}\operatorname {S} (b_{0})&\operatorname {S} (b_{1})&\operatorname {S} (b_{2})&\operatorname {S} (b_{3})\end{bmatrix}}} {\displaystyle \operatorname {SubWord} ({\begin{bmatrix}b_{0}&b_{1}&b_{2}&b_{3}\end{bmatrix}})={\begin{bmatrix}\operatorname {S} (b_{0})&\operatorname {S} (b_{1})&\operatorname {S} (b_{2})&\operatorname {S} (b_{3})\end{bmatrix}}}

Lalu, untuk i = 0 … 4 R − 1 {\displaystyle i=0\ldots 4R-1} {\displaystyle i=0\ldots 4R-1},

W i = { K i jika  i < N W i − N ⊕ SubWord ⁡ ( RotWord ⁡ ( W i − 1 ) ) ⊕ r c o n i / N jika  i ≥ N  dan  i ≡ 0 ( mod N ) W i − N ⊕ SubWord ⁡ ( W i − 1 ) jika  i ≥ N ,  N > 6 , dan  i ≡ 4 ( mod N ) W i − N ⊕ W i − 1 lainnya. {\displaystyle W_{i}={\begin{cases}K_{i}&{\text{jika }}i<N\\W_{i-N}\oplus \operatorname {SubWord} (\operatorname {RotWord} (W_{i-1}))\oplus rcon_{i/N}&{\text{jika }}i\geq N{\text{ dan }}i\equiv 0{\pmod {N}}\\W_{i-N}\oplus \operatorname {SubWord} (W_{i-1})&{\text{jika }}i\geq N{\text{, }}N>6{\text{, dan }}i\equiv 4{\pmod {N}}\\W_{i-N}\oplus W_{i-1}&{\text{lainnya.}}\\\end{cases}}} {\displaystyle W_{i}={\begin{cases}K_{i}&{\text{jika }}i<N\\W_{i-N}\oplus \operatorname {SubWord} (\operatorname {RotWord} (W_{i-1}))\oplus rcon_{i/N}&{\text{jika }}i\geq N{\text{ dan }}i\equiv 0{\pmod {N}}\\W_{i-N}\oplus \operatorname {SubWord} (W_{i-1})&{\text{jika }}i\geq N{\text{, }}N>6{\text{, dan }}i\equiv 4{\pmod {N}}\\W_{i-N}\oplus W_{i-1}&{\text{lainnya.}}\\\end{cases}}}

Catatan kaki

  1. ↑ Variasi Rijndael non-AES membutuhkan kunci ronde hingga 256 bit per ronde.
  2. ↑ Dalam FIPS-197, nilai r c i {\displaystyle rc_{i}} {\displaystyle rc_{i}} adalah bita dengan nilai tempat terkecil pada indeks ke-0
  3. ↑ Variasi-variasi Rijndael dengan ukuran blok besar membutuhkan lebih banyak tetapan-tetapan ini, yaitu hingga rcon29 untuk kunci 128 bit dan ukuran blok 256 bit (butuh 15 kunci ronde 256 bit). Tetapan-tetapan lain untuk i ≥ 11 adalah 6C, D8, AB, 4D, 9A, 2F, 5E, BC, 63, C6, 97, 35, 6A, D4, B3, 7D, FA, EF, dan C5.
  4. ↑ Variasi Rijndael lain membutuhkan max(N, B) + 7 kunci ronde dengan B adalah ukuran blok dalam kata
  5. ↑ Variasi Rijndael lain membutuhkan BR kata dari kunci yang telah diperluas dengan B adalah ukuran blok dalam kata
  6. ↑ Rotasi tersebut adalah kebalikan dari urutan bita. Alamat bita FIPS-197 dalam larik bertambah dari kiri ke kanan[1] dalam little endian sehingga rotasinya dari kanan ke kiri. Dalam AES-NI[2] dan dalam lib/crypto/aes.c kernel Linux,[3] alamat bitanya dalam larik bertambah dari kanan ke kiri dalam little endian sehingga rotasinya dari kiri ke kanan.

Referensi

  1. ↑ "Federal Information Processing Standards Publication 197 November 26, 2001 Announcing the ADVANCED ENCRYPTION STANDARD (AES)" (PDF). hlm. 8. Diakses tanggal 16 Juni 2020.
  2. ↑ "Intel® Advanced Encryption Standard (AES) New Instructions Set" (PDF). hlm. 13.
  3. ↑ "aes.c di GitHub". Diakses tanggal 15 Juni 2020.

Daftar pustaka

  • FIPS PUB 197: the official AES standard (PDF)

Pranala luar

  • (Inggris) Penjelasan penjadwalan kunci Rijndael
  • (Inggris) Bagan penjadwalan kunci untuk kunci 128 dan 256 bit serta kunci 160 bit di Cryptography Stack Exchange

Bagikan artikel ini

Share:

Daftar Isi

  1. Tetapan ronde
  2. Penjadwalan kunci
  3. Catatan kaki
  4. Referensi
  5. Daftar pustaka
  6. Pranala luar

Artikel Terkait

Standar Enkripsi Data

algoritme penyandian/enkripsi blok

Jakarta Aktual
Jakarta Aktual© 2026