←講義のツボメニューへ
4共通鍵暗号系
【2001.11.06 】【第6回】
AES-Advanced Encryption Standardの略、National Institute of Standards and Technology(NIST)が募集
・1997.01 :NISTがAES選定計画発表
・1998.06.15:AES候補暗号 提出締め切り
・1998.8 ―2000.4.AES候補暗号締め切り
・2000.10.02:AES最終選定
AESの要件
・128ビット 平文、暗号文ブロック
・128、182、256 ビット鍵長
・ハード、ソフト(C/JAVA)両方の実現を考慮に入れること
・採用されたときには知的財産権行使を放棄すること
4.3 Rijndael
・RijndaelAES候補としてベルギーのDaemenとRijimenによって提案、2000.10にAES選定
・ブロック長、鍵長は独立に128,192,256ビットから選択できる
・暗号化アルゴリズム:暗号化部と鍵生成部の2つより構成される
・nビットの暗号化/復号入力、あるいは鍵入力を8ビット(=1バイト)毎に区切り、それを有限体GF(2)の元とみなすさらにn/8バイトを4行n列の格子状に配置する(N=4,6,8)下図は128ビット(N=6)のときの例
| | | | | |
| | | | | |
| | | | | |
| | | | | |
入力はの順に配置される
一つの列を構成する4バイトをワードと呼ぶ
●ラウンド数
| ブロック長 |
| 128 | 192 | 256 |
鍵長 | 128 | 10 | 12 | 14 |
192 | 12 | 12 | 14 |
256 | 14 | 14 | 14 |
暗号化部全体の構成図
AddRoundKey
・各バイトとラウンド鍵のビット毎の排他的論理輪をとる

Bytesub 非線形操作
・各バイトごとに以下の1,2を行う(1バイト単位で非線形な置換を行う)
1.有限体GF(2)の乗法にに関する逆元に置換する。ただし、'0'は'0'に置換する。GF(2)上の演算にはGF(2)上の既約多項式;
を用いる。
2.1バイトをGF(2)上の長さ8のベクトルとみなし、以下のアファン変換を行う。
ShiftRow
・各行を以下の行に示すバイトだけ左巡回シフトする。
| ブロック長 |
| 128 | 192 | 256 |
第0行 | 0 | 0 | 0 |
第1行 | 1 | 1 | 1 |
第2行 | 2 | 2 | 3 |
第3行 | 3 | 3 | 4 |
MixColumn
・各列をGF(2)の多項式とみなし、以下のGF(2)上の多項式c(x)を乗じて、xで割った剰余多項式をとる
ここで、'yy'は、GF(2)の元をGF(2)のベクトルで表したものの16進数表示
は互いに素である