CCM
NIST SP 800-38C Recommendation for Block Cipher Modes of Operation: the CCM Mode for Authentication and Confidentiality RFC 3610 Counter with CBC-MAC (CCM) CTRとMACを組み合わせたりいろいろする
2. CCMモード仕様
汎用CCMモードでは2つのパラメータが選択できる。認証フィールドMのサイズ
table:Enc
Name Description 範囲 サイズ 符号化
M 認証フィールドのサイズ 4,6,8,10,12,14,16オクテット 通常16ぐらい 3 bits (M-2)/2
L 長さフィールド 2から8オクテット 3 bits L-1
2.1. 入力
メッセージを認証、暗号化するには次の情報が必要です。
必要な要素
table:req
Name Description サイズ
K ブロック暗号鍵 暗号依存
N nonce 15-L octets 7 から 13
m 認証と暗号に使うメッセージ l(m) octets
a 追加認証データ l(a) octets
2.2. 認証
認証フィールド T を計算すること
B_0, B_1, ... B_N のブロックのシーケンスを定義して、CBC-MAC を適用する。
最初のブロックB_0はヘッダ相当
table:B_0
バイト
0 flags
1 ... 15-L Nonce N
16-L ... 15 l(m)
table:flags
ビット位置
7 (Reserved: 予約)
6 Adata
5 ... 3 M' = (M-2)/2
2 ... 0 L' =
Adata bit は追加認証データの有無
0: なし l(a) = 0
1: あり l(a) > 0
M' は 認証フィールドのサイズ
L' は長さフィールドとnonceのサイズ分配