공식적인 분석은 2011 년 필 Rogaway에 의해 수행되었습니다 여기에 . 1.6 절에는 필자가 굵은 글씨로 강조하면서 여기에 내용을 요약 한 내용이 나와 있습니다.
이들 중 대부분은 IV가 무작위 여야하므로 예측할 수 없으므로 암호화 보안으로 생성해야합니다. 그러나 일부는 "nonce"만 필요로하는데,이 속성은 해당 속성을 요구하지 않고 재사용하지 않아도됩니다. 따라서 nonce에 의존하는 디자인은 그렇지 않은 디자인보다 오류가 덜 발생합니다 (그리고 CBC가 적절한 IV 선택으로 구현되지 않은 경우가 많았습니다). Rogaway가 "IV가 nonce 일 때 기밀성이 달성되지 않았습니다"와 같은 내용을 굵게 표시 한 것을 볼 수 있습니다. 이는 IV를 암호로 안전하게 (예측할 수 없음) 선택하면 아무런 문제가 없음을 의미합니다. 그러나 그렇지 않으면 좋은 보안 속성을 잃게됩니다. 이러한 모드 에서 IV 를 재사용하지 마십시오 .
또한 메시지 무결성과 암호화의 차이점을 이해해야합니다. 암호화는 데이터를 숨기지 만 공격자는 암호화 된 데이터를 수정할 수 있으며 메시지 무결성을 확인하지 않으면 소프트웨어가 결과를 받아 들일 수 있습니다. 개발자는 "복구 된 후 수정 된 데이터가 가비지로 돌아옵니다"라고 말하지만, 훌륭한 보안 엔지니어는 가비지가 소프트웨어에서 악의적 인 행동을 유발할 가능성을 찾은 다음 해당 분석을 실제 공격으로 바꿉니다. 암호화가 사용되었지만 메시지 무결성이 실제로 암호화보다 더 필요한 많은 사례를 보았습니다. 필요한 것을 이해하십시오.
GCM에는 암호화와 메시지 무결성이 모두 있지만 매우 취약한 디자인입니다. IV를 다시 사용하면 망가져 공격자가 키를 복구 할 수 있습니다. 다른 디자인은 덜 취약하기 때문에 실제로 보았던 불량한 암호화 코드의 양에 따라 GCM을 추천하는 것이 개인적으로 두렵습니다.
메시지 무결성과 암호화가 모두 필요한 경우 두 가지 알고리즘을 결합 할 수 있습니다. 일반적으로 CBC와 HMAC가 표시되지만 CBC와 연계 할 이유는 없습니다. 알아야 할 중요한 사항은 먼저 암호화 한 다음 암호화 된 내용을 MAC 으로 지정하는 것입니다. 또한 IV는 MAC 계산의 일부 여야합니다.
IP 문제를 알지 못합니다.
이제로가 웨이 교수의 좋은 점들에 대해 :
암호화 모드, 메시지 무결성이 아닌 암호화 모드
ECB : 블록 암호, 모드는 각 n 비트 조각을 개별적으로 암호화하여 n 비트의 배수 인 메시지를 암호화합니다. 보안 속성이 약한데 ,이 방법은 블록 위치와 시간 모두에서 블록의 동등성을 유출합니다. 상당한 레거시 가치와 다른 체계의 빌딩 블록으로서 가치가 있지만,이 모드는 일반적으로 바람직한 보안 목표를 자체적으로 달성하지 못하므로 상당한주의를 기울여 사용해야합니다. ECB는 "일반 목적"기밀 모드로 간주되어서는 안됩니다 .
CBC : IV 기반 암호화 체계 인이 모드는 확률 적 암호화 체계로 안전하며 임의 IV를 가정하여 임의의 비트와 구분할 수 없습니다. IV가 단순히 nonce 이거나 표준에서 잘못 제안한대로 체계에서 사용하는 것과 동일한 키로 암호화 된 nonce 인 경우 기밀성이 유지되지 않습니다 . 암호문은 매우 가단성입니다. 선택한 암호문 공격 (CCA) 보안이 없습니다. 많은 패딩 방법에 대해 올바른 패딩 오라클이있는 경우 기밀성이 유지되지 않습니다. 암호화는 본질적으로 연속적이기 때문에 비효율적입니다. 널리 사용되는이 모드의 개인 정보 보호 전용 보안 속성은 자주 잘못 사용됩니다. CBC-MAC 알고리즘의 빌딩 블록으로 사용할 수 있습니다. CTR 모드에 비해 중요한 이점은 없습니다.
CFB : IV 기반 암호화 체계 인이 모드는 확률 적 암호화 체계로 안전하며 임의 IV를 가정하여 임의의 비트와 구분할 수 없습니다. IV가 예측 가능 하거나 표준이 잘못 제안한 것과 같이 체계가 사용하는 것과 동일한 키로 암호화 된 nonce에 의해 작성된 경우 기밀성이 유지되지 않습니다 . 암호문은 가단성입니다. CCA 보안이 없습니다. 암호화는 본질적으로 연속적이기 때문에 비효율적입니다. 체계는 매개 변수 s, 1 ≤ s ≤ n, 일반적으로 s = 1 또는 s = 8에 따라 달라집니다. s 비트 만 처리하기 위해 하나의 블록 암호 호출이 필요하지 않습니다. 이 모드는 흥미로운 "자기 동기화"속성을 달성합니다. 암호문에 임의의 수의 s 비트 문자를 삽입하거나 삭제하면 일시적으로 올바른 암호 해독이 중단됩니다.
OFB : IV 기반 암호화 체계 인이 모드는 확률 적 암호화 체계로 안전하며 임의 IV를 가정하여 임의의 비트와 구분할 수 없습니다. 고정 된 IV 시퀀스 (예 : 카운터)가 제대로 작동하지만 IV가 nonce 인 경우 기밀성이 유지되지 않습니다. 암호문은 매우 가단성입니다. CCA 보안이 없습니다. 암호화 및 암호 해독은 본질적으로 연속적이기 때문에 비효율적입니다. 모든 비트 길이의 문자열을 기본적으로 암호화합니다 (패딩 필요 없음). CTR 모드에 비해 중요한 이점은 없습니다.
CTR : IV 기반 암호화 체계 인이 모드는 nonce IV를 가정하여 임의의 비트와 구분할 수 없습니다. 안전한 nonce 기반 방식으로이 모드는 무작위 IV를 사용하는 확률 적 암호화 방식으로도 사용할 수 있습니다. nonce가 암호화 또는 암호 해독에 재사용되면 프라이버시가 완전히 실패합니다. 모드의 병렬성은 종종 다른 기밀 모드보다 훨씬 빠르며 일부 설정에서는 훨씬 빠릅니다. 인증 된 암호화 체계의 중요한 구성 요소입니다. 일반적으로 개인 정보 보호 전용 암호화를 달성하는 가장 좋고 현대적인 방법입니다.
XTS : IV 기반 암호화 체계 인이 모드는 각 n 비트 청크에 조정 가능한 블록 암호 (강력한 PRP로 보안)를 적용하여 작동합니다. 길이를 n으로 나눌 수없는 메시지의 경우 마지막 두 블록이 특별히 처리됩니다. 이 모드의 유일한 사용은 블록 구조 저장 장치에서 데이터를 암호화하는 것입니다. 기본 PRP의 폭이 좁고 최종 최종 블록의 열악한 처리가 문제입니다. (와이드 블록) PRP 보안 블록 암호보다 더 효율적이지만 덜 바람직합니다.
MAC (메시지 무결성이지만 암호화는 아님)
ALG1–6 : MAC의 모음으로 CBC-MAC를 기반으로합니다. 체계가 너무 많습니다. 일부는 VIL PRF로 안전하고 일부는 FIL PRF로 안전하고 일부는 확실한 보안이 없습니다. 일부 체계는 손상 공격을 허용합니다. 일부 모드는 날짜가 있습니다. 키 분리는 해당 모드에 적합하지 않습니다. 일괄 적으로 채택해서는 안되지만 선택적으로“최상의”계획을 선택할 수 있습니다. CMAC에 유리하게 이러한 모드 중 어느 것도 채택하지 않는 것이 좋습니다. 일부 ISO 9797-1 MAC은 특히 은행 업무에서 널리 표준화되고 사용됩니다. 표준 개정판 (ISO / IEC FDIS 9797-1 : 2010)이 곧 출시 될 예정입니다 [93].
CMAC : CBC-MAC를 기반으로하는 MAC 모드는 (VIL) PRF (기본 블록 암호가 PRP라고 가정)로 (생일 한도까지) 안전합니다. CBCMAC 기반 체계에 대한 최소한의 오버 헤드. 본질적으로 일부 응용 프로그램 도메인의 문제는 직렬 특성이며 64 비트 블록 암호와 함께 사용하면 가끔씩 키를 다시 입력해야합니다. ISO 9797-1 MAC 모음보다 깨끗합니다.
HMAC : 블록 암호 대신 암호 해시 기능을 기반으로하는 MAC (대부분의 암호 해시 기능은 자체적으로 블록 암호를 기반으로 함). 선호하는 가정이 아니라도 메커니즘은 강력한 보안 가능성을 누리고 있습니다. 문헌에서 다수의 밀접하게 관련된 변이체는 알려진 것을 이해하는 것을 복잡하게한다. 해로운 공격은 제안 된 적이 없습니다. 널리 표준화되고 사용됩니다.
GMAC : GCM의 특별한 경우 인 nonce 기반 MAC. GCM의 많은 장점과 단점을 상속합니다. 그러나 nonce-requirement는 MAC에 불필요하며 여기서는 별다른 이점이 없습니다. 태그가 ≤ 64 비트로 잘리고 해독 범위가 모니터링 및 축소되지 않은 경우 실제 공격. non-reuse에서 완전한 실패. GCM을 채택하면 어쨌든 사용이 암시됩니다. 별도의 표준화에는 권장되지 않습니다.
인증 된 암호화 (암호화 및 메시지 무결성)
CCM : CTR 모드 암호화와 원시 CBC-MAC를 결합한 nonce 기반 AEAD 체계. 본질적으로 직렬이며 일부 상황에서 속도를 제한합니다. 기본 블록 암호가 좋은 PRP라고 가정하면 좋은 경계로 안전하게 보호 할 수 있습니다. 명백히 그 일을하는 불건전 한 건축. GCM보다 구현이 간단합니다. nonce 기반 MAC으로 사용할 수 있습니다. 널리 표준화되고 사용됩니다.
GCM : CTR 모드 암호화와 GF (2128) 기반 범용 해시 함수를 결합한 nonce 기반 AEAD 방식입니다. 일부 구현 환경의 우수한 효율 특성. 태그 잘림을 최소화한다고 가정하면 보안 성이 뛰어납니다. 실질적인 태그 잘림이있는 경우 공격 및 취약한 보안 가능성 한계. nonce 기반 MAC으로 사용할 수 있으며이를 GMAC라고합니다. 96 비트 이외의 nonces를 허용하는 의심스러운 선택. nonces를 96 비트로 제한하고 태그를 96 비트 이상으로 제한하는 것이 좋습니다. 널리 표준화되고 사용됩니다.