2010-11-26 6 views
3

스트림 암호 (또는 AES CTR 모드)에서 키가 실제로 IV (또는 일반적으로 키 K에서 의사 랜덤 바이트를 생성 함)를 사용하여 암호화되고 있음을 이해합니다. 이 키를 사용하여 XOR을 사용하여 일반 텍스트를 암호화합니다.AES-CTR 모드 (스트리밍 형 암호화) 일반 텍스트의 1 비트 변경이 암호 텍스트의 1 비트 변경?

그러나 내가 이해하는 바에 따르면 동일한 키 K가 사용되고 있다고 가정하면 일반 텍스트의 한 비트를 변경하면 암호 텍스트가 1 비트 만 변경됩니다.

내가 맞습니까, 아니면 완전히 잘못 됐습니까?

내가 옳다면 CBC보다 덜 안전하지 않습니까? (CBC에서 일반 텍스트의 한 비트를 변경하면 암호문의 모든 비트가 변경된 시점에서 변경됩니다.)

감사합니다.

답변

3

평문의 비트를 변경하면 출력의 비트가 변경되므로 명백히 CTR 모드는 Shannon's diffusion principle을 위반합니다. 그러나 이것은 이야기의 일부일뿐입니다. 실제로 각 메시지의 IV도 변경해야합니다. 따라서 많은 비트가 평문의 단일 비트 만 변경하거나 메시지가 동일하게 유지되는 경우에도 다음 메시지에서 변경됩니다.

한편, 메시지의 악의적 인 수정에 관심이 있다면 CTR이나 CBC도 이러한 공격에 안전하지 않으며, CCM, GCM 또는 EAX과 같은 인증 된 암호화 모드를 사용해야합니다.

+0

CTR 모드는 블록 암호를 사용하여 스트림 암호 만 구현합니다. –

+0

@GregS 아니요, OFB (출력 피드백) 모드입니다. –

+2

아니면 CTR 모드를 사용하면 스트림 암호와 같은 블록 암호를 사용할 수 있지만 임의 액세스를 허용하기 때문에 모든 방법이 아닙니다. –

1

네, 맞습니다. 키가 암호화되는 것을 제외하고는 IV (카운터)가 키를 사용하여 암호화됩니다. 이 방법을 사용하면 암호화 된 스트림에 임의 액세스 할 수 있습니다 (카운터는 데이터의 각 부분에 대해 알려짐).

4

당신은 예 CCMGCM 모드에 대한 공통 모드 AEAD이라 모두 CTR 모드와 인증 데이터를 통합 모드가 존재하는 이유는 정확하다.

3

정확히 이유를해야 결코 반복 키 스트림의 일부 단지 스트림 암호와 마찬가지로, CTR 모드를 사용하여. 암호화 측에서 사용되는 카운터는 키가 변경 될 때까지 앞으로 만 진행해야합니다.