AES (또는 대부분의 암호)를 사용할 때 주어진 키에 초기화 벡터 (IV)를 재사용하는 것은 바람직하지 않습니다. 예를 들어, CBC (Cipher Block Chaining) 모드를 사용하여 주어진 IV로 데이터 청크를 암호화한다고 가정합니다. 다음 데이터 청크의 경우 IV가 변경되어야합니다 (예 : nonce가 증가 할 수도 있음). 그렇긴하지만, 청크의 처음 4 바이트가 증가하는 것을 보장 할 수 있다면 같은 IV가 사용된다면 얼마나 많은 보안 위험이 있는지 궁금합니다. 즉, 두 개의 데이터 청크 암호화 할 생각입니다AES, 암호 블록 체인 모드, 정적 초기화 벡터 및 데이터 변경
같은 IV 데이터의 두 덩어리에 사용되는 경우0x00000000someotherdatafollowsforsomenumberofblocks
0x00000001someotherdatathatmaydifferormaynotfollows
, 얼마나 많은 정보가 유출 될 것인가?
입력 해 주셔서 감사합니다. 그리고 저는 "그렇게하지 마십시오"라는 정서에 분명히 동의합니다. 나는 좋은 아이디어처럼 보이지만 아무도 권장하지 않는 것을 이해하기 위해 암호화에 대해서만 알고 있습니다. 거의 확실하게 나쁜 생각입니다.사실, 현재 작업중인 프로젝트에는 CTR 모드가 필요합니다. CTR 모드는 새로운 IV가 필요하며 데이터 자체의 변경으로 인해 얻지 못할 것입니다. –
CBC 모드에서 IV에 대한 요구 사항은 고유성 * 및 * 예측 불가능 성을 모두 포함합니다. 예측 가능한 IV는 [선택된 평문 공격]을 허용합니다 (http://stackoverflow.com/a/3008544/99646). 이 특별한 경우에는 예측 가능한 IV가 있으므로 가장 확실하게 * 괜찮지는 않습니다. –