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 모드의 경우 첫 번째 카운터는 무작위이어야하며 그렇지 않으면 nonce가 될 수 있습니까? 감사

1 Answers


Patrick K 07/31/2017.

AES-CTR 입력 블록의 요구 사항은 키 수명 동안 unique 해야한다는 것입니다. 대부분의 경우, 임의의 96 비트 논스는 0부터 시작하는 32 비트 카운터와 함께 사용됩니다. AES-CTR에 대한 동일한 입력 블록이 두 번 발생하면 AES-CTR은 더 이상 CPA를 안전하지 않습니다. 이 경우 $ 2 ^ {32} $ 블록 이후의 카운터 오버플로 또는 무작위로 선택된 96 비트 논스톱 (생일 파라독스 : $ \ sqrt {2 ^ {96}} $ 메시지 이후 50 % 기회로 인해 발생할 수 있습니다. 다음과 같은 경우를 고려하십시오.

두 개의 별개의 1- 블록 메시지 $ P $와 $ P '$는 동일한 키 $ K $ (미리 협의 될 수 있음)와 동일한 nonce $ N $로 전송됩니다. 공격자는 관련 암호문 $ C $ 및 $ C '$가 키 스트림 (nonce 및 카운터를 기반으로 함)과 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 '$

그는 두 개의 평문 사이에서 '거리'를 얻는다. 영어의 중복으로 인해 $ P $와 $ P $를 결정할 수 있습니다.

이 문제는 "two-time-pad"라고도합니다. 동일한 키 스트림이 일반 텍스트와 XOR 처리되면 문제가 발생합니다. 따라서 AES 암호화를위한 입력은 키 수명 동안 고유해야한다는 것이 중요합니다. 그것은 예측할 수없고, 단지 독특 할 필요는 없습니다.

5 comments
Evgeni Vaknin 07/31/2017
"2 ^ 32 메시지"라는 문구로 AES에서 16 바이트의 2 ^ 32 블록을 의미한다고 생각하십니까? 그렇다면 2 ^ 32 블록 시간보다 10 ^ 2 ^ 32 * 128 비트가 약 1 분입니다. 따라서 새 키와 논스를 설정하기 위해 1 분마다 키 교환 알고리즘을 실행해야합니다 ?
1 Patrick K 07/31/2017
네 말이 맞아. 나는 대답을 편집했다. 정적 넌스 (nonce)가 있다면이 경우 매분마다 키 교환을해야합니다. 그러나 nonce는 대개 모든 메시지와 함께 변경되기 때문에 $ 2 ^ {32} \ cdot128 $ 비트의 최대 길이의 메시지로 제한됩니다. 주어진 키 아래에서 보낼 수있는 최대 메시지 수는 생일 역설에 의해 제한됩니다. 모든 메시지에 대해 임의로 랜덤하게 96 비트 논스가 선택되면, q 메시지에 대해 nonce 충돌 가능성은 $ \ approx 0.5q ^ 2 / 2 ^ {96} $입니다. 이 용어를 최대 1 %로 만들려면 $ q_ {max} = 4 \ cdot10 ^ {13} $입니다.
Evgeni Vaknin 07/31/2017
랜덤 nonce를 사용하지 않으면 어떻게됩니까? nonce 초기 값에 임의의 값을 사용하고 각 패킷을 증가시키는 것보다 어떻게됩니까? 예를 들어, 각 패킷에 256 개 미만의 AES 블록 (각각 128 비트)이 포함되어 있고 AES-CTR에 대한 카운터가 키가 교환 될 때 무작위로 초기화되는 120 비트의 nonce와 패킷 8 비트 카운터는 128 비트 블록을 카운트하는 데 사용됩니다. 그리고 각각의 새로운 패킷 (다음 주석에서 계속)
Evgeni Vaknin 07/31/2017
논 스를 1 씩 증가시키고 8 비트 카운터를 지 웁니다. 이 경우, 생일의 역설은 관련이 없습니다. 충돌은 불가능합니다 (논스의 120 비트 카운터가 만료되기 전에 키를 대체한다고 가정)
1 Patrick K 08/01/2017
예, 키스톤 생성을 위해 동일한 (입력 블록, 키) 쌍을 결코 재사용하지 않는다는 것을 어떻게 든 확인하면 모든 것이 정상입니다. (물론 키가 비밀로 유지되고 무작위로부터 균등하게 선택된다고 가정 할 때)

Related questions

Hot questions

Language

Popular Tags