우선 CCM과 GCM은 MAC의 종류중 하나이기 때문에 MAC이 무엇인지 알아보도록 하자.
MAC(Message Authentication Code)은 메시지 인증에 사용하는 데이터이다.
MAC의 경우에는 기밀성을 제공하지 않기 때문에 메시지가 외부에 노출 될 수 있다. 하지만 MAC을 통해 무결성과 신뢰성을 보장할 수 있다.
다음으로 CTR이 무엇인지 알아야 한다.
CTR의 경우 데이터 블럭에 따라 IV를 만들고 암호화 키와 평문을 XOR를 통해 암호문을 만드는 것이다.
번외로 추가 설명을 하자면 CFB모드와 OFB모드도 있는데
CFB 모드의 경우에는 IV를 바탕으로 평문과 XOR해서 암호문을 만들고
이 암호문을 바탕으로 다음 블럭을 암호화 한다.
그렇기 때문에 중간에 암호화가 잘못되면 나머지 블럭들도 오류가 발생한다.
OFB모드의 경우에는 CFB모드와 반대로
IV를 바탕으로 평문과 XOR하여 암호화 하기전의 데이터를 이용해
다음블럭을 암호화 한다.
그렇기 때문에 이 경우에는 다음블럭에도 오류가 전파되지 않는다는 장점이 있다.
그럼 이제 부연설명이 끝났으므로 본론으로 돌아와 CCM과 GCM모드를 비교해보자.
아래는 CCM 모드의 Flow chart이다. 표시된 부분은 앞서 설명한 CTR과 동일한 부분이고
아래 하단부분이 CBC-MAC이다.
다음으로 아래 Flow chart는 GCM모드인데
마찬가지로 동일하게 CTR 모드가 적용되어있으며 하단에는 G-MAC이 적용되어있다.
둘의 차이점으로 본다면 MAC연산 시 GCM의 경우 암호화된 데이터를 활용하고
CCM의 경우는 암호화 되기 전의 데이터를 활용한다.
결론먼저 이야기 하자면 CCM은 거의 사용하지 않고 GCM을 주로 사용한다고 한다.
이유로는 CCM의 경우에는 복호화 후에 MAC 연산을 해야하는 번거로움이 있지만
GCM의 경우 MAC 연산을 하지 않아도 된다는 이유로 풀이된다.
'Crypto' 카테고리의 다른 글
TLS의 정의 및 이해와 TLS1.2과 TLS1.3의 차이 (0) | 2022.11.03 |
---|---|
HASH에 관하여 (0) | 2022.11.03 |
CBC와 ECB (0) | 2022.11.03 |
AES의 정의와 암호화 알고리즘 순서 (0) | 2022.11.02 |
ECDSA란? (0) | 2022.11.02 |