4.1.2. AES in f8-mode (f8 モードの AES)
4.1.2. AES in f8-mode (f8 モードの AES)
UMTS (Universal Mobile Telecommunications System, 汎用移動体通信システム, つまり 3G ネットワーク) データを暗号化するために, f8 アルゴリズムとして知られるソリューション ([f8-a] [f8-b] を参照) が開発されました。高レベルでは, 提案されたスキームは Output Feedback Mode (OFB) [HAC] の変形であり, より精巧な初期化およびフィードバック関数を備えています。通常の OFB と同様に, コアはブロック暗号で構成されます。ここでは, "f8 動作モード" RTP 暗号化と呼ぶものに使用されるブロック暗号として AES の使用も定義します。AES f8 モードは, AES カウンタモードと同じデフォルトのセッション鍵とソルトのサイズを使用しなければなりません。
図 4 は, f8 モードで動作するブロック暗号 E の構造を示しています。
IV
|
v
+------+
| |
+--->| E |
| +------+
| |
m -> (*) +-----------+-------------+-- ... ------+
| IV' | | | |
| | j=1 -> (*) j=2 -> (*) ... j=L-1 ->(*)
| | | | |
| | +-> (*) +-> (*) ... +-> (*)
| | | | | | | |
| v | v | v | v
| +------+ | +------+ | +------+ | +------+
k_e ---+--->| E | | | E | | | E | | | E |
| | | | | | | | | | |
+------+ | +------+ | +------+ | +------+
| | | | | | |
+------+ +--------+ +-- ... ----+ |
| | | |
v v v v
S(0) S(1) S(2) . . . S(L-1)
図 4. f8 動作モード (アスタリスク (*) はビット単位の XOR を示す)。この図は, AES-f8 が使用される場合の図 3 の KG を表しています。
4.1.2.1. f8 鍵ストリーム生成
初期化ベクトル (Initialization Vector, IV) は, セクション 4.1.2.2 (および SRTCP の場合はセクション 4.1.2.3) で説明されているように決定されなければなりません。
IV', S(j), および m を n_b ビットブロックとします。N ビットメッセージの鍵ストリーム S(0) ||... || S(L-1) は, IV' = E(k_e XOR m, IV) および S(-1) = 00..0 を設定することによって定義されなければなりません。j = 0,1,..,L-1 に対して, ここで L = N/n_b (すでに整数でない場合は最も近い整数に切り上げ) である場合, 次を計算します
S(j) = E(k_e, IV' XOR j XOR S(j-1))
IV は直接使用されないことに注意してください。代わりに, 攻撃者が既知の入力/出力ペアを取得するのを防ぐために, 別の鍵の下で E を通して供給され, 内部の "マスクされた" 値 (IV' として示される) を生成します。
内部カウンタ j の役割は, 短い鍵ストリームサイクルを防ぐことです。鍵マスク m の値は次のようでなければなりません
m = k_s || 0x555..5,
つまり, セッションソルト鍵に, 望ましい鍵サイズ n_e 全体を埋めるためのバイナリパターン 0101.. を追加したものです。
送信者は 2^32 ブロックを超えて生成すべきではありません。これは 2^39 ビットの鍵ストリームを生成するのに十分です。カウンタモードとは異なり, f8 が安全でない (安全である) ことが保証される絶対的な閾値はありません。上記の境界は, f8 鍵ストリーム生成における退化的な動作の確率を十分なセキュリティマージンで制限するために選択されました。
4.1.2.2. f8 SRTP IV 形成
以下の IV 形成の目的は, 暗黙的ヘッダ認証 (implicit header authentication, IHA) と呼ばれる機能を提供することです。セクション 9.5 を参照してください。
128 ビットブロック AES-f8 の SRTP IV は, 次の方法で形成されなければなりません:
IV = 0x00 || M || PT || SEQ || TS || SSRC || ROC
M, PT, SEQ, TS, SSRC は RTP ヘッダから取得されなければなりません。ROC は暗号コンテキストからのものです。
IV の一部としての SSRC の存在により, 同じ RTP セッション内の複数のストリーム間でマスター鍵が共有される場合に AES-f8 を使用できます。セクション 9.1 を参照してください。
4.1.2.3. f8 SRTCP IV 形成
128 ビットブロック AES-f8 の SRTCP IV は, 次の方法で形成されなければなりません:
IV= 0..0 || E || SRTCP index || V || P || RC || PT || length || SSRC
ここで, V, P, RC, PT, length, SSRC は RTCP 複合パケットの最初のヘッダから取得されなければなりません。E と SRTCP index は, パケットに追加された 1 ビットと 31 ビットのフィールドです。