IT관련/정보보안기사

[정보보안기사] Part2-4 대칭키암호2

어플읽는남자 2022. 3. 26.
반응형

AES(Advanced Encryption Standard)

(1) 개요

  • 1997년 미국 국립기술표준원은 DES를 대체하기 위해 AES 암고리즘을 공모하였다.
  • 1차 심사시 15개 응모작을 선택, 2차 심사시 5개(MARS, RC6, Rijndael, Serpent, Twofish)로 줄였고, NIST는 2001년 11월에 최종 선택안을 공표하였다.
  • AES알고리즘으로 선택한 것은 레인달(Rijndael), 레인달 개발자는 벨기에 암호학자 요안 대문(Joan Daemon)과 빈슨트 레이믄(Vincent Rijmen)이다.

 

(2) 선정기준

  • 미국 국립기술표준원에서 제시한 것은 안전성(Security), 비용(Cost), 구현 효율성(Implementation)이고, 레인달이 가장 잘 부합됨.

 

(3) 라운드(Rounds)

★★

  • 128비트 평문을 128비트 암호문으로 출력, Non-Feistel 알고리즘에 속함.
  • 10,12,14라운드를 사용한다.
  • 각 라운드 대응 키 크기는 128, 192, 256비트이다.
  • 키 크기에 따라 AES-128, AES-192, AES-256로 나뉘지만 키 확장 알고리즘으로부터 생성되는 라운드 키 크기는 평문과 암호문 크기와 동일한 128비트이다.

(4) 암호(Cipher)★★

1. DES에서는 페이스텔 네트워크가 기본 구조, 레인달은 SPN이라는 구조를 사용하고 있다.

  • SubBytes() 연산 : 비 선형성을 갖는 S-Box를 적용하여 바이트 단위로 치환을 수행
  • ShiftRows() 연산 : 행 단위로 순환 시프트(Cyclic shift)를 수행
  • MixColumns() 연산 : 높은 확산을 제공하기 위해 열 단위로 혼합
  • AddRoundKey() 연산 : 라운드 키와 state를 EX-OR연산을 수행

2. 암호화의 마지막 라운드에서는 MixColumns()연산을 수행하지 않는다.

 

SPN구조
라운드 함수가 역변환이 되어야 한다는 제약이 있으나 더 많은 병렬성(parallelism)을 제공하기 때문에 암,복호화 알고리즘의 고속화를 요구, 컴퓨터 프로세서(CPU)가 더 많은 병렬성을 지원하게 된 현 추세에 부응하는 방식
입력을 여러 개의 소블록으로 나누고 각 소블록을 S-box에 입력하여 치환, S-box의 출력을 P-box로 전치하는 과정을 반복한다.

 

Feistel과 SPN구조 알고리즘★★
Feistel : DES, LOKI, CAST, Blowfish, MISTY, RC5, RC6, CAST256, E2, Twofish, Mars
SPN : SAFER, SHARK, Square, CRYPTON, Rijndael, SAFER+, Serpent, PRESENT
구분 DES AES
년도 1976 1999
블록크기 64bits 128bits
키 길이 56bits 128, 192, 256bits
암호화 프리미티브 치환, 전치 치환, 시프트, 비트 혼합
암호학적 프리미티브 혼돈, 확산 혼돈, 확산
설계 공개 공개
설계 원칙 공개 공개
선택 과정 비밀 비밀, 공모
출처 IBM, NSA 벨기에 암호학자
기타 대칭키 암호 알고리즘

(1) 국제 암호 알고리즘

1) IDEA(International Data Encryption Algorithm)

  • DES를 대체하기 위해 스위스 연방기술 기관에서 개발한 알고리즘
  • 128비트 키, 64비트 블록 암호로 Feistel 구조를 변형함
  • 8라운드에 걸쳐 데이터를 변환, 마지막에 한 번 더 키를 작용시켜 64비트 암호문을 생성하기 때문에 8.5라운드라고 한다.
  • DES와 달리 S-box를 사용하지 않고, 대수적 구조가 다른 연산을 교대로 사용하여 암호학적 강도를 증가시켰다.
  • PGP(Pretty Good Privacy)의 데이터 암호 알고리즘으로 채택되어 사용되고 있다.
  • DES보다 2배 정도 빠르고, 무차별 공격에 더욱 효율적으로 대응

2) RC5

  • 1994년 미국 RSA 연구소의 라이베스트가 개발함.
  • 비교적 간단한 연산으로 빠른 암호화와 복호화 기능을 제공함.
  • 입출력, 키, 라운드 수가 가변인 블록 알고리즘이며 32/64/128 비트의 블록을 가지며, DES속도의 10배다.

 

(2) 국내 암호 알고리즘

1) SEED

  • 1999년 한국인터넷진흥원과 국내 암호전문가들이 함께 개발한 알고리즘이다.
  • 인터넷, 전자상거래, 무선 통신 등에 공개될 경우 민감한 영향을 끼칠 수 있는 중요 정보 및 개인 정보를 보호하기 위한 대칭키 알고리즘이다.
  • 128비트 비밀키에서 생성된 16개의 64비트 라운드 키를 사용하여 총 16회의 라운드를 거쳐 128비트 평문 블록을 128비트 암호문 블록으로 암호화하여 출력하는 방식
  • SEED의 F함수는 수정도니 64비트 Feistel 형태로 구성된다.

2) ARIA(Academy Research Institue Agency)

  • 국가보안기술연구소(NSRI)주도로 학계, 국가정보원 등의 힘을 모아 개발한 국가 암호화 알고리즘
  • ISPN(Involutional SPN) 구조의 128비트 블록 암호로 128비트, 192비트, 256비트의 3종류의 키 사용을 제공한다.
  • 입출력 크기와 사용 가능한 키 크기는 미국 표준 블록암호인 AES와 동일하다.

 

3) HIGHT(HIGh security and light weigHT)

  • RFID, USN 등과 같이 저전력,경량화를 요구하는 컴퓨팅 환경에서 기밀성을 제공하기 위해 2005년 KISA 및 고려대 등이 공동으로 개발한 64비트 블록암호이다.
  • 2006년 12월 정보통신단체표준(TTA)으로 제정되었고, 2010년 ISO/IEC 국제 암호 표준으로 제정되었다.

 

4) LEA(Lightweight Encryption Algorithm)

  • 2012년 국가보안기술연구소가 개발한 128bit 경량 고속 블록 암호 알고리즘이다.
  • AES보다 1.5~2배 빠르다.
  • 사물 인터넷(IoT) 등 저전력 암호화에 널리 쓸 수 있다.
  • 특히 단시간에 배치작업을 완료해야 하는 금융 분야에 강하다.
구분 개발국가 개발년도 특징 블록크기 키의 길이 라운드 수
DES 미국 1972 NIST에서 표준으로 공표 64 56 16
IDEA 유럽 1990 PGP채택 64 128 8
Rijndael 벨기에 1998 AES알고리즘으로 선정 128 128,192,256 10,12,14
SEED 한국 1999 한국표준 블록암호 알고리즘 128 128,256 16,24
현대 대칭키 암호를 이용한 암호화 기법

(1) 블록 암호의 사용 방식

블록 암호를 다양한 응용에 사용하기 위해 NIST에서 5가지 운영 모드를 정의하였다.

이 모드는 DES나 AES를 포함한 어떤 대칭 블록 암호에도 적용할 수 있다.

 

ECB모드 : Electronic CodeBook mode(전자 부호표 모드)

CBC모드 : Cipher Block Chaining mode(암호 블록 연쇄 모드)

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

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

CTR모드 : CounTeR mode(카운터 모드)

 

1) ECB(Electronic CodeBook) 모드

(가) 개요

  • 가장 간단한 모드
  • 평문은 N개의 n비트 블록으로 분할된다.
  • 평문 크기가 블록 크기의 배수가 아니면, 평문의 마지막 블록에는 다른 블록들과 동일한 크기로 만들기 위해 Padding이 필요하다.
  • 각각의 블록을 암호화 혹은 복호화하기 위해 사용되는 키는 동일하다.

 

(나) 특징

  • ECB 모드의 장점은 블록 간의 독립성이다.
  • 블록에서 발생하는 오류가 다른 블록에 영향을 주지 않는다.
  • 평문의 블록 패턴과 암호문의 블록 패턴이 동일하게 유지되는 문제점을 안고 있다.
  • 동일한 키로 여러 블록의 평문을 암호화할 때에는 ECB방식의 사용을 권고하지 않는다.

 

(다) 응용

  • 매우 많은 데이터베이스를 암호화할때 병렬적으로 처리할 수 있다.
  • 다른 레코드에 영향을 주지 않고도 수정된 이후 레코드를 중간에서부터 암호화, 복호화할 수 있다.

 

2) Ciper Block Chaning(CBC) 모드

(가) 개요

  • 각각의 평문 블록은 암호화되기 전에 이전 암호문 블록과 XOR된다.
  • 첫 번째 블록을 암호화할 때는 이전의 암호문 블록이 존재하지 않아, 초기벡터(IV)라고 불리는 허구의 블록이 사용된다.

 

(나) 초기벡터(IV)

  • IV는 반드시 송수진 양자 모두가 알고 있어야 하며, 제3자로부터 예측이 불가능해야 한다.

 

(다) 특징

  • 초기 평문에서 첫 번째 블록이 바뀌면 암호문 블록은 모두 바뀐다.
  • 암호문은 모든 평문의 영향을 받아 생성된다.
  • 암호문을 제대로 복호화하기 위해서는 평문이 순서대로 배열되어 있어야 한다.

 

(라) 암호화와 복호화

  • 1단계 전에 수행되어 결과로 출력된 암호문 블록에 평문 블록을 XOR하고 나서 암호화를 수행한다.
  • 복호화시 암호문 블록이 1개 파손된 경우, 암호문 블록의 길이가 바뀌지 않았다면 평문 블록에 미치는 영향은 2개 블록에 머문다.
  • 그러나 평문 블록의 한 비트 오류는 출력되는 모든 암호문에 영향을 미친다.

(마) CBC 모드 활용

  • 인터넷에서 보안을 제공하는 프로토콜 중 하나인 IPSec에서 통신의 기밀성을 지키기 위해 사용한다.
  • 3DES-CBC, AES-CBC 등이 여기에 해당한다.
  • 인증을 수행하는 대칭키 암호 시스템의 하나인 Kerberos version 5에서도 사용된다.

3) Cipher FeedBack(CFB) 모드

(가) 개요

  • 어떤 블록 암호도 스트림 암호로 바꿀 수 있다.
  • 스트림 암호의 경우 메시지 길이가 블록의 정수배가 되도록 Padding할 필요가 없다.

 

(나) 암호화와 복호화

  • 복호화 과정은 평문 블록과 암호문 블록의 역할만 바뀌었을 뿐 동일하다.
  • 암호 함수는 DES나 AES를 사용한다.
  • 복호화 시 복호화 함수가 아닌 암호화 함수 사용

(다) 스트림 암호로서의 CFB 모드

  • 키 스트림이 암호문에 의존하는 비동기식 스트림 암호이다.

 

4) Output FeedBack(OFB) 모드 

 

(가) 개요

  • ECB 모드의 단점과 CBC모드, CFB모드의 단점을 개선한 동작 모드이다.
  • 암호기의 출력과 평문을 EX-OR하여 암호문을 생성하고 있어서 오류 전파가 발생하지 않는다.
  • 전송중인 암호문의 비트 손실이나 삽입 등에 유의해야 하는 방식이다.
  • 초기화 벡터(IV)를 사용한다.

(나) 특징

  • 초기치가 바뀌면 암호문은 모두 바뀐다.
  • 암호 알고리즘의 출력은 평문과 무관하다.(동기식)
  • 전송 중의 비트 오류가 전파되지 않는다.

 

(다) 스트림 암호로서의 OFB 모드

  • 키스트림은 평문이나 암호문과는 독립적이므로 동기식 스트림 암호이다.

5)CounTeR(CTR) 모드

 

(가) 개요

  • 암호화 시 피드백이 존재하지 않는다.
  • 키 스트림의 의사난수성은 카운터를 사용함으로써 성취할 수 있다.
  • 서로 독립적인 n비트 암호문 블록을 생성한다.

(나) 카운터 만드는 법

  • 암호화 때마다 다른 값(비표)을 기초로 해서 만든다.
  • 블록 길이가 128비트인 경우 카운터의 초기값은 다음과 같다.
66 1F 98 CD 37 A3 8B 4B 00 00 00 00 00 00 00 01
비표(nonce) 블록 번호

 

(다) 스트림 암호로서의 CTR 모드

  • 동기식 스트림 암호화를 지원한다.
  • 피드백이 없으므로 병렬 처리가 가능하다.
  • OFB모드의 장점을 대부분 지원한다.

구분 ECB CBC CFB OFB CTR
병렬처리 암호화,복호화가능 복호화 가능 복호화 가능 X 암호화 ,복호화 가능
초기벡터 유무 X O O O O(카운터)
암호화 함수 
복호화 함수
암호화, 복호화 암호화, 복호화 암호화, 암호화 암호화, 암호화 암호화, 암호화
사용 연산 암호화 암호화, XOR XOR XOR XOR
결과 TYPE 블록 암호 블록 암호 스트림 암호 스트림 암호 스트림 암호

 

반응형

댓글