CCM 모드
CCM modeCCM 모드(암호 블록 체인 메시지 인증 코드가 있는 카운터, CBC-MAC가 있는 카운터)는 암호 블록 암호에 대한 작동 모드다. 인증과 기밀성을 모두 제공하도록 설계된 인증된 암호화 알고리즘이다. CCM 모드는 블록 길이가 128비트인 블록 암호에 대해서만 정의된다.[1][2]
CCM의 비ce는 특정 키에 대해 두 번 이상 사용하지 않도록 주의 깊게 선택해야 한다. CCM은 CTR 모드의 파생이고 후자는 사실상 스트림 암호기 때문이다.[3]
암호화 및 인증
이름에서 알 수 있듯이 CCM 모드는 잘 알려진 CBC-MAC와 잘 알려진 카운터 모드 암호화를 결합한다. 이 두 개의 원시 요소는 "인증 후 암호화" 방식으로 적용된다. 즉, CBC-MAC는 태그 t를 얻기 위해 먼저 메시지에 대해 계산된다. 그런 다음 메시지 및 태그는 카운터 모드를 사용하여 암호화된다. 암호화에 사용되는 카운터 값이 인증에 사용되는 (사전)초기화 벡터와 충돌하지 않는 한, 두 가지 모두에 대해 동일한 암호화 키를 사용할 수 있다는 것이 주된 통찰이다. 기반 블록 암호의 보안에 기초하여 이 조합에 대한 보안[4] 증명서가 존재한다. 이 증빙은 모든 크기 블록 암호에 대한 CCM의 일반화 및 모든 크기 암호학적으로 강한 의사 무작위 기능에도 적용된다(카운터 모드와 CBC-MAC에서 모두 블록 암호는 한 방향으로만 사용된다).
CCM 모드는 러스 하우슬리, 더그 휘팅, 닐스 퍼거슨에 의해 설계되었다. CCM 모드가 개발될 당시 Russ Housley는 RSA 연구소에 고용되었다.
지그비 표준에는 CCM*이라고 불리는 CCM의 작은 변형이 사용된다. CCM*은 CCM의 모든 기능을 포함하며 암호화 전용 기능을 추가로 제공한다.[5]
퍼포먼스
CCM은 암호화되고 인증된 메시지의 각 블록에 대해 2개의 블록 암호 해독 작업과 관련 인증된 데이터의 각 블록에 대해 1개의 암호화를 요구한다.
Crypto++ 벤치마크에 따르면 AES CCM은 32비트 모드에서 인텔 코어 2 프로세서에서 바이트당 28.6 사이클이 필요하다.[6]
주목할 만한 비효율성:
- 메시지(및 관련 데이터)의 길이를 미리 알아야 한다는 점에서 CCM은 "온라인" AED가 아니다.
- MAC 구성에서, 관련 데이터의 길이는 가변 길이 인코딩을 가지고 있는데, 이것은 기계 워드 크기보다 짧을 수 있다. 이로 인해 관련 데이터가 길면(비례한 경우) MAC 성능이 비관적일 수 있다.
- 관련 데이터는 메시지 데이터 이후에 처리되므로 정적 관련 데이터의 상태를 사전 계산할 수 없다.
특허
CCM 모드 개발 촉매는 IEEE 802.11i 표준에 포함시키기 위한 OCB 모드 제출이었다. 알고리즘에 대한 특허 출원이 보류 중이기 때문에 OCB 모드를 포함시키는 것에 반대 목소리가 나왔다. 특허받은 알고리즘을 포함한다는 것은 표준 구현자에게 상당한 라이센스 복잡성을 의미했다.
OCB 모드의 포함은 이러한 지적 재산권 문제에 근거하여 논란이 되었지만, 인증된 암호화 시스템에 의해 제공되는 단순화가 바람직하다는 데 의견이 일치했다. 따라서 하우슬리 등은 CCM 모드를 특허의 제약을 받지 않는 잠재적 대안으로 개발했다.
CCM 모드는 OCB 모드에 비해 효율성이 떨어지지만 특허권 라이선스 문제로 복잡한 솔루션보다 특허프리 솔루션이 선호됐다. 따라서 CCM 모드는 IEEE 802.11i 표준의 필수 구성요소가 되었고 OCB 모드는 선택적 구성요소 상태로 강등되었다가 결국 완전히 제거되었다.
사용하다
CCM 모드는 IEEE 802.11i(WPA2의 암호화 알고리즘인 CCMP), IPsec,[7] TLS 1.2와 블루투스 [8]로우 에너지(Bluetooth 4.0 기준)[9]에서 사용된다. TLS 1.3에서는 사용할 수 있지만 OpenSSL에서는 기본적으로 실행되지 않는다.[10]
참고 항목
참조
- ^ Dworkin, Morris (May 2004). Recommendation for Block Cipher Modes of Operation: The CCM Mode for Authentication and Confidentiality (PDF) (Technical report). NIST Special Publications. NIST. doi:10.6028/NIST.SP.800-38C. 800-38C.
- ^ Whiting, D.; Housley, R.; Ferguson, N. (September 2003). Counter with CBC-MAC (CCM). IETF. doi:10.17487/RFC3610. RFC 3610.
- ^ "rfc4309". IETF. p. 3.
AES CCM employs counter mode for encryption. As with any stream cipher, reuse of the same IV value with the same key is catastrophic.
- ^ Jakob Jonsson, On CTR + CBC-MAC의 보안
- ^ "IEEE Standard for Local and metropolitan area networks--Part 15.4: Low-Rate Wireless Personal Area Networks (LR-WPANs)" (PDF). IEEE Standards. 2011-09-05. p. 229. Retrieved 2015-12-18.
- ^ "Crypto++ 5.6.0 Benchmarks". Crypto++. Retrieved 6 September 2015.
- ^ RFC 4309 IPsec Encapsulation Security Payload(ESP)와 함께 AES(Advanced Encryption Standard) CCM 모드 사용
- ^ RFC 6655 TLS(Transport Layer Security)용 AES-CCM 암호 스위트
- ^ "Bluetooth Low Energy Security". Archived from the original on 2016-04-02. Retrieved 2017-04-20.
- ^ Caswell, Matt (2017-05-04). "Using TLS1.3 With OpenSSL". OpenSSL blog. Retrieved 2018-12-29.