Penjadwalan kunci AES

Dari testwiki
Loncat ke navigasi Loncat ke pencarian

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 Templat:Mvar dalam heksadesimal
Templat:Mvar 1 2 3 4 5 6 7 8 9 10
Templat:Mvar 01 02 04 08 10 20 40 80 1B 36

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

rconi=[rci001600160016]

dengan Templat:Mvar adalah nilai 8 bit yang didefinisikan sebagai berikut:

rci={1jika i=12rci1jika i>1 dan rci1<8016(2rci1)11B16jika i>1 dan rci18016

dengan adalah operator XOR dan bilangan yang diakhiri angka 16 seperti Templat:Math dan Templat:Math adalah bilangan heksadesimal.

AES menggunakan hingga Templat:Math untuk AES-128 (karena butuh 11 kunci ronde), hingga Templat:Math untuk AES-192, dan hingga Templat:Math untuk AES-256.[catatan 3]

Penjadwalan kunci

Penjadwalan kunci AES untuk kunci 128 bit

Definisikan:

Definisikan pula Templat:Math sebagai suatu geseran melingkar kiri satu bita:Templat:Refn

RotWord([b0b1b2b3])=[b1b2b3b0]

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

SubWord([b0b1b2b3])=[S(b0)S(b1)S(b2)S(b3)]

Lalu, untuk i=04R1,

Wi={Kijika i<NWiNSubWord(RotWord(Wi1))rconi/Njika iN dan i0(modN)WiNSubWord(Wi1)jika iNN>6, dan i4(modN)WiNWi1lainnya.

Catatan kaki

  1. Variasi Rijndael non-AES membutuhkan kunci ronde hingga 256 bit per ronde.
  2. Dalam FIPS-197, nilai rci 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 Templat:Math untuk kunci 128 bit dan ukuran blok 256 bit (butuh 15 kunci ronde 256 bit). Tetapan-tetapan lain untuk Templat:Math 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 Templat:Math kunci ronde dengan Templat:Mvar adalah ukuran blok dalam kata
  5. Variasi Rijndael lain membutuhkan Templat:Math kata dari kunci yang telah diperluas dengan Templat:Mvar adalah ukuran blok dalam kata

Referensi

Templat:Reflist

Daftar pustaka

Pranala luar