メディア

マイコンに搭載されているAESって何?Q&Aで学ぶマイコン講座(82)(4/6 ページ)

» 2023年07月07日 10時00分 公開

SubBytes

 1バイトの値をインデックスして、S-boxと呼ばれる256個の値を持つ変換テーブルから1バイトの値を取得します。

 例えば、インデックス値が16進数で”53”だった場合、S-Boxの行”5”と列”3”の値は、16進数で”ed”となり、16進数で”ed”に変換されます(図6

<strong>図6:SubBytes</strong>[クリックで拡大] 図6:SubBytes[クリックで拡大]

ShiftRows

 4バイト単位の行を左シフトします。行数ごとにシフト量が1つインクリメントされます(図7

<strong>図7:ShiftRows</strong>[クリックで拡大] 図7:ShiftRows[クリックで拡大]

MixColumns

 4バイトの列を行列演算によって別の4バイトに変換します。State配列を列ごとに操作し、各列を4項の多項式として扱います。列はガロア体GF(2^8)上の多項式で、

 で与えられる固定多項式を掛け合わせます。計算された値は、出力先のそれぞれの列に出力されます(図8

<strong>図8:MixColumns</strong>[クリックで拡大] 図8:MixColumns[クリックで拡大]

 出力結果の1列をs’(x)、入力の1列をs(x)とし、下記のように定義されます。

 これを列ごとに展開します。

 この乗算の結果、列中の4バイトは下記の通りとなります。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.