連載
マイコンに搭載されているAESって何?:Q&Aで学ぶマイコン講座(82)(4/6 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、上級者の方からよく質問される「マイコンに搭載されているAESって何?」についてです。
SubBytes
1バイトの値をインデックスして、S-boxと呼ばれる256個の値を持つ変換テーブルから1バイトの値を取得します。
例えば、インデックス値が16進数で”53”だった場合、S-Boxの行”5”と列”3”の値は、16進数で”ed”となり、16進数で”ed”に変換されます(図6)
ShiftRows
4バイト単位の行を左シフトします。行数ごとにシフト量が1つインクリメントされます(図7)
MixColumns
4バイトの列を行列演算によって別の4バイトに変換します。State配列を列ごとに操作し、各列を4項の多項式として扱います。列はガロア体GF(2^8)上の多項式で、
で与えられる固定多項式を掛け合わせます。計算された値は、出力先のそれぞれの列に出力されます(図8)
出力結果の1列をs’(x)、入力の1列をs(x)とし、下記のように定義されます。
これを列ごとに展開します。
この乗算の結果、列中の4バイトは下記の通りとなります。
Copyright © ITmedia, Inc. All Rights Reserved.