AESカウンタモードとCBCモードのセキュリティ

Evgeni Vaknin 09/05/2017. 1 answers, 401 views
aes cbc ctr nonce

AES-CBCがCPAで安全であるためには、使用されるIVがパケット毎にランダムに選択されなければならない。 IVが予測可能である場合、暗号化はCPAではない。 AES-CTRモードの場合も同じですか? つまり、AES-CTRモードの場合、最初のカウンタはランダムでなければならないか、ノンスである可能性がありますか? ありがとう

1 Answers


Patrick K 07/31/2017.

AES-CTR入力ブロックの要件は、キーの存続期間中にuniqueでなければならないということです。 ほとんどの場合、ランダムな96bitナンスが、0から始まる32ビットカウンタで使用されます.AES-CTRの同じ入力ブロックが2回発生すると、AES-CTRはCPAをそれ以上セキュアにしません。 この場合、これは、$ 2 ^ {32} $ブロック後のカウンタオーバーフロー、またはランダムに選択された96ビットナンス(誕生日パラドックス:$ \ sqrt {2 ^ {96}} $メッセージの後の50%次の場合を考えてみましょう。

2つの異なる1ブロックメッセージ$ P $と$ P '$は、同じ鍵$ K $(事前に交渉されている可能性がある)と同じnonce $ N $で送信されます。 攻撃者は、関連する暗号テキスト$ C $と$ C '$がキーストリーム(ノンスとカウンターに基づいています)とXOR計算されていることを知っています。

$ C = P \ oplus E_K(N、0)$

$ C '= P' \ oplus E_K(N、0)$

次に、攻撃者は単純に暗号テキストをxor

$ C \ oplus C '= P \ oplus E_K(N、0)\ oplus P' \ oplus E_K(N、0)= P \ oplus P '$

彼は2つのプレーンテキストの間の「距離」を取得する。 英語の冗長性のために、彼は$ P $と$ P '$を決定するかもしれません。

この問題は、「2時間パッド」とも呼ばれます。 同じキーストリームがプレーンテキストとXORされると、問題が発生します。 したがって、AES暗号化の入力は、キーの存続期間中に一意であることが重要です。 予測不能である必要はなく、ユニークなものです。

5 comments
Evgeni Vaknin 07/31/2017
ステートメント "2 ^ 32メッセージ"によって私はあなたがAESのそれぞれ16バイトの2 ^ 32ブロックを意味すると思いますか? そうであれば、2 ^ 32ブロックよりも時間は2 ^ 32 * 128ビットで10Gbpsで約1分です。新しいキーとナンスを設定するためには、1分ごとに鍵交換アルゴリズムを実行する必要があります?
1 Patrick K 07/31/2017
はい、あなたが正しい。 私は答えを編集しました。 スタティックなナンスがある場合は、この場合毎分鍵交換を行う必要があります。 しかしノンスは通常メッセージごとに変更されるので、$ 2 ^ {32} \ cdot128 $ビットの最大長のメッセージに限定されます。 特定のキーの下で送信できるメッセージの最大数は、誕生日パラドックスによって制限されます。 すべてのメッセージに対して96ビットのナンスがランダムに一様に選択されている場合、ノンスの衝突の確率はq個のメッセージに対して$ \ approx 0.5q ^ 2/2 ^ {96} $です。 この用語を1%以下にするには、$ q_ {max} = 4 \ cdot10 ^ {13} $です。
Evgeni Vaknin 07/31/2017
ランダムノンスを使用しない場合、ノンスの初期値にランダム値を使用し、各パケットをインクリメントするよりも何が起こりますか? 例えば、各パケットが256個未満のAESブロック(それぞれ128ビット)を含み、AES-CTR用のカウンタが120ビットのナンスで構成され、キーが交換されるとランダムに初期化され、パケット8ビットカウンタは、128ビットブロックをカウントするために使用されます。 そして、新しいパケットごとに(次のコメントに続く)
Evgeni Vaknin 07/31/2017
ナンスを1だけインクリメントし、8ビットカウンタをクリアします。 この場合、誕生日のパラドックスは意味がありません。衝突は不可能です(ノンスの120ビットカウンタが期限切れになる前にキーを置き換えていると仮定します)
1 Patrick K 08/01/2017
はい、何らかの形で、キーストリーミング世代に同じ(入力ブロック、キー)ペアを再利用しないことを確認したら、すべてうまくいきます。 (もちろん、鍵は秘密に保たれ、ランダムから一様に選択されると仮定します)

Related questions

Hot questions

Language

Popular Tags