상세 컨텐츠

본문 제목

[블록 암호 모드] CTR 모드

정보보호 스터디

by 녕녕펀치 2024. 3. 5. 20:31

본문

1. CTR 모드

  • 1씩 증가해 가는 카운터를 암호화해서 키 스트림을 만들어 내는 스트림 암호
  • 카운터를 암호화한 비트열과 평문 블록과의 XOR을 취한 결과가 암호문 블록이 됨


2. 카운터 만드는 법

  • 카운터의 초기값은 암호화 때마다 다른 값(nonce, 비표)를 기초로 해서 만듦
  • 비표를 제외한 후반 비트들 ≒ 블록 번호
  • 블록 번호 부분을 카운트해서 하나씩 증가시켜가면 됨
  • 이런 식으로 카운터를 구성하면 카운터의 값은 매회 달라짐

3. OFB 모드와 CTR 모드의 비교

  • CTR 모드는 OFB 모드와 같은 스트림 암호의 일종
  • OFB 모드에서는 암호화의 출력을 입력으로 피드백하고 있음
  • CTR 모드에서는 카운터의 값이 암호화의 입력이 됨


4. CTR 모드 특징

  • 암호화와 복호화는 완전히 같은 구조가 되므로, 프로그램이 매우 간단 (OFB 모드와 같은 스트림 암호의 특징)
  • 블록을 임의의 순서로 암호화/복호화할 수 있음 (OFB 모드는 아님)
    • 암호화/복호화 때에 사용하는 카운터 는 비표와 블록 번호로부터 금방 구할 수 있기 때문 
  • 블록을 임의의 순서로 처리 가능 ≒ 처리를 병행할 수 있다는 것
    • 병렬 처리가 가능한 시스템에서는 CTR 모드를 이용하여 자료를 고속으로 처리할 수 있음

5. 오류와 기밀성

  • OFB 모드와 거의 같은 성질을 가지고 있음
  • 암호문 블록에서 1비트의 반전이 발생했다고 하고, 복호화를 수행하면, 반전된 비트에 대응하는 평문 블록의 1비트만이 반전되고, 오류는 확대되지 않음
  • 적극적 공격자 맬로리는 암호문 블록의 비트를 반전시키는 것으로 수신자가 암호 블록을 복호화했을 때 얻게 되는 평문 블록의 비트를 반전시킬 수 있음
  • OFB 모드에서는 키 스트림의 1블록을 암호화한 결과가, 암호화 전의 결과와 우연히 같아졌다고 하면 그 이후 키 스트림은 완전히 같은 값의 반복이 됨. 그러나 CTR 모드에서는 그런 걱정이 없음
<GCM 모드>
CTR 모드에 인증 기능을 추가한 GCM 모드가 있음.
CTR 모드가 암호문을 생성함과 동시에 '이 암호문은 올바른 암호화를 거쳐 만들어진 것'이라는 것을 인증하는 정보를 만들어내는 구조.
이 구조를 사용하면 적극적 공격자가 암호문을 위조하여 배포해도 '이것은 위조된 암호문이다'라고 간파할 수 있음.

6. 모드 선택

관련글 더보기