현대 암호학

[현대 암호학] 05-5. CTR 모드

Uggjjini 2021. 6. 23. 13:25

5. CTR 모드

 

CTR(CounTeR) 모드

  • CTR 모드는 1씩 증가해 가는 카운터를 암호화해서 키 스트림을 만들어 내는 스트림 암호
  • 블록을 암호화할 때마다 1씩 증가해가는 카운터를 암호화해서 키 스트림을 만든다.

 

카운터(CounTeR) 만드는 법

 

카운터 초기값

  • 암호화 때마다 다른 값(Nonce, 비표)을 기초로 해서 작성
  • nonce + block number

"평문 블록1"의 카운터(초기값)

66 1F 98 CD 37 A3 8B 4B 00 00 00 00 00 00 00 01

 

"평문 블록2"의 카운터

66 1F 98 CD 37 A3 8B 4B 00 00 00 00 00 00 00 02

 

"평문 블록3"의 카운터

66 1F 98 CD 37 A3 8B 4B 00 00 00 00 00 00 00 03

 

"평문 블록4"의 카운터

66 1F 98 CD 37 A3 8B 4B 00 00 00 00 00 00 00 04

 

 

CTR 모드 암호화

 

CTR 모드 복호화

 

OFB 모드와 CTR 모드의 비교

 

 

CTR 모드의 특징

  • CTR 모드의 암호화의 복호화는 완전히 같은 구조
  • 프로그램으로 구현하는 것이 매우 간단
  • OFB 모드와 같은 스트림 암호의 특징
  • CTR 모드에서는 블록을 임의의 순서로 암호화/복호화 할 수 있다.
  • 병렬 처리가 가능한 시스템에서는 CTR 모드를 이용하여 자료를 고속으로 처리

 

오류와 기밀성

 

CTR 모드의 암호문 블록에서 1비트의 반전이 발생한다고 가정

==> 복호화를 수행하면, 반전된 비트에 대응하는 평문 블록의 1비트만이 반전 되고, 오류는 확대되지 않는다.

 

OFB 모드에서는 키 스트림의 1블록을 암호화한 결과가, 암호전의 결과와 우연히 같아졌다고 하면, 그 이후 키 스트림은 완전히 같은 값이 반복된다.

==> CTR 모드에서는 그런 걱정은 없음

 

 

각 모드의 비교표

모드 이름 장점 단점
ECB Electric CodeBook
Mode
전자 부호표 모드
간단
고속
병렬처리 가능(암호화/복호화 양쪽)


평문 속의 반복이 암호문에 반영된다.
암호문 블록의 삭제나 교체에 의한 평문의 조작이 가능
비트 단위의 에러가 있는 암호문을 복호화하면 대응하는 블록이 에러가 된다.
재전송 공격이 가능
X
CBC Cipher Block Chaining
암호 블록 연쇄 모드
평문의 반복은 암호문에 반영되지 않는다.
병렬처리 가능(복호화만)
임의의 암호문 블록을 복호화할 수 있다.
비트 단위의 에러가 있는 암호문을 복호화하면, 1블록 전체와 다음 블록의 대응하는 비트가 에러가 된다.
암호화에서는 병렬 처리를 할 수 없다.
O
CFB Cipher-FeedBack
암호 피드백 모드
패딩이 필요 없다.
병렬처리 가능(복호화만)
임의의 암호문 블록을 복호화 할 수 있다.
암호화에서는 병렬처리를 할 수 없다.
비트 단위의 에러가 있는 암호문을 복호화하면, 1블록 전체와 다음 블록의 대응하는 비트가 에러가 된다.
재전송 공격이 가능
X
OFB Output-FeedBack
출력 피드백 모드
패딩이 필요 없다.
암호화/복호화의 사전 준비를 할 수 있다.
암호화와 복호화가 같은 구조를 하고 있다.
비트 단위의 에러가 있는 암호문을 복호화하면, 평문의 대응하는 비트만 에러가 된다.
병렬 처리를 할 수 없다.
적극적 공격자가 암호문 블록을 비트 반전시키면 대응하는 평문 블록이 비트 반전된다.



X
CTR CounTeR
카운터 모드
패딩이 필요 없다.
암호화/복호화의 사전 준비를 할 수 있다.
암호화와 복호화가 같은 구조를 하고 있다.
비트 단위의 에러가 있는 암호문을 복호화하면, 평문의 대응하는 비트만 에러가 된다.
병렬처리 기능(암호화/복호화 양쪽)
적극적 공격자가 암호문 블록을 비트 반전시키면, 대응하는 평문 블록이 비트 반전된다.





O

0: 권장, X: 사용안함

 

[참고] CFB 모드는 현재는 사용 안함, CTR 모드를 사용하는 편이 좋음
[참고] OFB 모드는 CTR 모드를 사용하는 편이 좋음

 

05장 요점 정리

대칭키 암호
스트림 암호(ex: ARC4, ChaCha20, XChaCha20, Salsa20)
블록 암호(ex: DES/3DES, AES, SEED, ARIA)

스트림 암호

ChaCah20

XChaCha20

Salsa20

 

스트림 암호 + 인증

ChaCha20-Poly1305

XChaCha20-Poly1305

 

블록 암호 모드

ECB(Electric Codebook) Mode - 전자 부호표 모드

CBC(Cipher Block Chaning) Mode - 암호 블록 연쇄 모드=> IV, Padding=> IPsec, SSL/TLS

CFB(Cipher-FeedBack) Mode - 암호 피드백 모드

OFB(Output-FeedBack) Mode - 출력 피드백 모드

CTR(CounTeR) Mode - 카운터 모드=> IV(x), Padding=> Big Data

 

블록 암호 모드 + 인증(AE/AD)

EAX - NIST

GCM(Galois/Counter Mode)

CCM(Counter with CBC-MAC)

SIV(Synthetic Initialization Vector)

OCB(Offset CodeBook Mode)

OpenPGP

 

 

 

 

국산 암호 알고리즘

(https://seed.kisa.or.kr/kisa/algorithm/EgovSeedInfo.do)

종 류 설 명
SEED https://seed.kisa.or.kr/kisa/algorithm/EgovSeedInfo.do
(블록 암호) SEED는 전자상거래, 금융, 무선통신 등에서 전송되는 개인정보와 같은 중요한 정보를 보호하기 위해 19992월 한국인터넷진흥 원과 국내 암호전문가들이 순수 국내기술로 개발한 128비트 블록 암호 알고리즘입니다.
HIGHT https://seed.kisa.or.kr/kisa/algorithm/EgovHightInfo.do
(블록 암호) HIGHT 암호 알고리즘 HIGHT(HIGh security and light weigHT)RFID, USN 등과 같이 저전력경량화를 요구하는 컴퓨팅 환경에서 기밀성을 제공하기 위해 2005KISA, ETRI 부설연구소 및 고려대가 공동으로 개발한 64비트 블록암호 알고리즘입니다.
ARIA https://seed.kisa.or.kr/kisa/algorithm/EgovAriaInfo.do
(블록 암호) ARIA는 경량 환경 및 하드웨어 구현을 위해 최적화된, Involutional SPN 구조를 갖는 범용 블록 암호 알고리즘입니다. ARIA가 사용하는 대부분의 연산은 XOR과 같은 단순한 바이트 단위 연산으로 구성되어 있습니다. ARIA라는 이름은 Academy(학계), Research Institute(연구소), Agency(정부 기관)의 첫 글자들을 딴 것으로, ARIA 개발에 참여한 학··관의 공동 노력을 표현하고 있습니다.
LEA https://seed.kisa.or.kr/kisa/algorithm/EgovLeaInfo.do
(블록 암호) LEA(Lightweight Encryption Algorithm)는 빅데이터, 클라우드 등 고속 환경 및 모바일기기 등 경량 환경에서 기밀성을 제공하기 위해 개발된 128비트 블록암호 알고리즘입니다.
HAS-160 https://seed.kisa.or.kr/kisa/algorithm/EgovHASInfo.do
(해시 암호) HAS-160은 국내 표준 전자서명알고리즘인 KCDSA에 사용되는 160비트 암호학적 해시 함수입니다. SHA-1과 비슷한 구조를 갖고 있으며, 현재 해시 함수 안전성의 권고 기준인 112비트를 만족하지 않기 때문에 더 이상 사용하지 않는 것을 권고하고 있습니다.
LSH https://seed.kisa.or.kr/kisa/algorithm/EgovLSHInfo.do
(해시 암호) LSH는 메시지 인증, 사용자 인증, 전자서명 등 다양한 암호 응용 분야에 활용 가능한 암호학적 해시 함수입니다.
KCDSA
/
EC-KCDSA
https://seed.kisa.or.kr/kisa/algorithm/EgovKCDSAInfo.do
(공개키 서명 암호) KCDSAKISA에서 개발한 인증서 기반 부가형 전자서명 알고리즘으로, ElGamal 서명 방식의 변형으로 이산대수 문제에 안전성을 두고 있습니다.

 

'현대 암호학' 카테고리의 다른 글

[현대 암호학] 05. 실습(2)  (0) 2021.06.23
[현대 암호학] 05. 실습(1)  (0) 2021.06.23
[현대 암호학] 05-4. CFB 모드  (0) 2021.06.23
[현대 암호학] 05-3. CBC 모드  (0) 2021.06.23
[현대 암호학] 05 -2. ECB 모드  (0) 2021.06.23