본문으로 건너뛰기
뒤로 가기

Block encryption

· 약 2분

Electronic Code Book

블록을 고정 단위로 나누어 같은 암호키로 암호화합니다. 같은 크기로 나누어야하기에 패딩이 필요합니다.

ECB 문제점

  1. 같은 입력은 항상 같은 출력이 나옴
    1. 반복되는 데이터 구조가 숨겨지지 않음
  2. cut-and-paste attack이 가능함

Cipher Block Chaining

ECB의 문제점을 보완하기 위해 이전 암호문 블록과 XOR한 뒤 암호화합니다. 첫번째 블록은 이전이 없기에 IV(Initialization Vector)가 필요합니다.

ECB 문제점을 해결한 점

같은 입력은 항상 같은 출력이 나온다는 문제점이 해결되었습니다. CBC의 문제점은 무결성을 보장하지 않습니다. 그리고 이전 블록이 필요하기 때문에 복호화 시에 병렬처리가 안됩니다.

Cipher Feedback

Block마다 암호가 아닌 스트림 암호를 사용 가능합니다. 다른 구조는 CBC와 비슷하게 이전 암호문으로 XOR을 합니다. 즉 패딩이 필요없습니다. CBC의 문제점인 무결성 문제는 동일하며 오류가 전파되는 문제가 있습니다.

Output Feedback

CFB와 비슷하지만 이전 키스트림 값으로 XOR을 합니다. IV 재사용에 취약하다는 단점이 있습니다.

Counter

증가하는 카운터와 nonce로 키스트림을 만들고 XOR을 합니다. 장점으로 병렬처리가 가능하고 같은 카운터를 사용하면 유출된다는 단점이 있습니다.

Galois/Counter

무결성을 보장하는 카운터 방식입니다. CTR 기법까지는 같고 그 이후에 추가인증데이터 AAD와 암호문들로 태그를 생성합니다. 복호화 시에 태그 계산을 해서 다른 값이 나오면 조작되었다는 뜻입니다.


공유하기:

이전 글
새싹 보안 엔지니어 2일차 교육
다음 글
HTTP