要約
- RFC 5297 の SIV は nonce が重複しても偽造耐性を維持する。ただし、同じ鍵・nonce・関連データの下で同じ平文が再び暗号化されたことは観測可能になる。
- 誤用耐性は障害時の封じ込めであり、nonce 一意性、AD の構造、検証前平文の隔離、アプリケーション受理を省略する根拠ではない。
「壊れなかった」の内訳
一般的な nonce 型 AEAD では、同一の鍵と nonce を異なるメッセージに使うと、機密性や完全性が深刻に失われる場合がある。SIV は順序を変える。まず S2V が CMAC を使い、複数の関連データと平文から 128 ビットの合成 IV を作る。その後に AES-CTR が平文を変換する。出力は合成 IV と暗号文である。
nonce が一意なら、RFC 5297 が述べる通常の機密性と真正性が得られる。重複した場合も、攻撃者が FAIL 以外になる新しい入力を作ることは困難なままだ。一方、平文と関連データまで同じなら、出力の一致がその再現を知らせる。
この漏えいは小さいが、ゼロではない。二値の承認、定型的な制御命令、変化の少ない権限、短い状態、繰り返し包まれる鍵では、「同じものが出た」だけで行動やタイミングを推定できる。真正性が残ったという記録と、機密性への影響評価は分けなければならない。
確定的処理と nonce 型処理
nonce 型では、nonce は S2V ベクトルのうち平文直前の最後の関連データ要素になる。他の要素はアプリケーションが定める。乱数なら 128 ビット以上、かつ 128 ビット以上のエントロピーを持つプールが推奨される。カウンタや時刻も使えるが、対応する一意性の管理が必要だ。
確定的モードには nonce がない。典型例は、攻撃者に予測できない暗号鍵を認証付きで包む処理である。受信者、用途、アルゴリズム、世代などを関連データに含めることはできる。
同じ実装が両方を提供しても、選択権限まで同じとは限らない。nonce を省くことが正しい鍵ラップと、nonce 状態を持ちたくないために予測可能な業務データを確定的に処理することは別である。監査はモード名だけでなく、適用プロファイルと許可理由を残す必要がある。
AD の順序は意味の順序
S2V は可変長文字列のベクトルを直接処理する。テナント、オブジェクト種別、バージョン、宛先という各要素の境界と順序が認証対象になる。フィールドを入れ替えたり、欠落させたり、別の境界で連結したりすれば、保護している主張が変わる。
RFC 5116 のインターフェースは AD を一つしか受け取らない。そこを通す場合、ベクトルは曖昧さのない一つの文字列へ符号化される必要がある。長さ、型、スキーマ世代がなければ、ab と c が a と bc に化ける。タグ成功は同じバイト列を処理した証拠であって、送受信側が同じ意味で分割した証拠ではない。
要素数にも境界がある。S2V は全体で 127 要素以下、平文が一つを占めるので AD は 126 要素以下である。上限に合わせてアダプターが黙って結合や削除を行えば、互換性ではなく意味が変わる。
復号途中の平文を外へ出さない
受信側は合成 IV を使って CTR を実行し、候補平文を得る。その候補と同じ AD から S2V を再計算し、受信 IV と一致したときだけ平文を返す。一致しなければ FAIL である。
候補がメモリに存在することと、利用してよいことは同じではない。比較前にログ、パーサー、キャッシュ、ポリシー評価へ渡すと、後で失敗しても副作用は残る。暗号コアの正しさだけでは、ラッパーの解放規則を証明できない。
必要なイベントは、復号開始、候補隔離、認証比較、認証成功、平文解放、構文受理、権限判断、最終効果である。これらを一つの成功フラグにまとめると、どの境界で何が確定したのかが消える。
登録番号と実行証跡
IANA は AES-SIV-CMAC の三つの鍵長に 15、16、17 を割り当てている。番号は語彙を共有するが、実行されたコード、鍵分割、選択モード、nonce 一意性、AD スキーマ、検証前隔離を観測しない。
また、RFC 5297 は同一鍵での異なる SIV 呼び出しを慎重に制限し、CMAC の例に倣って 2^48 を挙げる。呼び出し予算と nonce の重複は別の計器だ。どちらか一方が正常でも他方の正常を証明しない。
非秘密の証跡には、アルゴリズムとビルド、鍵世代、モード、AD 要素名とダイジェスト、nonce の生成源と一意性判定、オブジェクト識別、合成 IV のダイジェスト、比較結果、解放判断、重複分類、同一性漏えい評価、下流受理、鍵ごとの予算を結ぶ。
Sources
- https://www.rfc-editor.org/rfc/rfc5297.html
- https://www.rfc-editor.org/rfc/rfc5297.txt
- https://www.rfc-editor.org/info/rfc5297/
- https://datatracker.ietf.org/doc/rfc5297/
- https://datatracker.ietf.org/doc/rfc5297/history/
- https://datatracker.ietf.org/doc/rfc5297/references/
- https://datatracker.ietf.org/doc/rfc5297/referencedby/
- https://www.rfc-editor.org/errata/rfc5297
- https://www.rfc-editor.org/rfc/rfc5116.html
- https://www.rfc-editor.org/rfc/rfc3610.html
- https://www.rfc-editor.org/rfc/rfc3394.html
- https://www.rfc-editor.org/rfc/rfc3217.html
- https://www.rfc-editor.org/rfc/rfc3686.html
- https://www.rfc-editor.org/rfc/rfc4493.html
- https://www.rfc-editor.org/rfc/rfc8452.html
- https://www.rfc-editor.org/rfc/rfc8915.html
- https://www.rfc-editor.org/rfc/rfc7253.html
- https://www.iana.org/assignments/aead-parameters/aead-parameters.xhtml
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
- https://heng.lu/on-reality-layers-symbolic-power-and-why-clarity-feels-so-hostile/
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加
