블록 암호화 모드 특징 ( ECB, CBC, GCM )

bsk·2020년 4월 13일
1

이 글을 이해하기 위해서는 블록 암호화 알고리즘에 대해 간단한 지식이 있어야 합니다.

가장 일반적으로 사용되는 블록 암호화 모드는 ECB, CBC, GCM 방식이 있다.

아주 간략하게 각 모드별 특징을 알아 보자면

ECB의 경우

가장 기본적인타입이다. A 를 암호화 하면 B 가 나온다.
A 를 암호화 하면 항상 B 가 나오기 때문에 역추적이 쉽다. 경우의 수가 많으면 많을수록 역산을 통해 암호화 키를 유추하여 알아낼 수 있는 가능성이 매우 높아진다. 보안에 취약하다.

CBC의 경우

ECB 의 단점을 보완했다. 암호화 키 에다가 IV (초기화 벡터) 라는 값을 추가하여 A 를 암호화 하면 항상 B 가 나오던 문제를 해결하여 역추적을 불가능하게 만들었다. 하지만 중간자 공격 취약점이 존재한다. 즉 A 를 암호화 하여 B가 나왔는데, 이게 진짜 A 를 암호화 해서 나온 값이 맞는지 검증하는 부분이 없다. 그러므로 HTTP 환경이나, 메모리 해킹등을 통하여 중간에 데이터를 가로챈뒤 가짜 데이터를 전달받을 경우 검증할 수 없다. ECB 보다는 훨씬 진보적인 방법이지만 취약점이 존재한다.

GCM의 경우

CBC 의 취약점을 보완했다. 데이터 값의 HASH 가 암호문에 포함되어 있어 복호화시 실제 그 데이터가 맞는지 검증하는 역할이 추가 되었다. 즉 중간자 공격을 통하여 데이터가 변조되었을 경우 알아낼 수 있다.

profile
웹에 관련된 모든 주제를 다룹니다.

0개의 댓글