티스토리 뷰

728x90
반응형

[정보보안기사] 암호학


대칭 구조 기반의 암호 알고리즘 종류


  • DES 방식

대칭키 블럭 암호64비트 블록 단위로 전치 방식(P박스) 치환 방식(S박스)을 혼용해 16회(라운드) 암호화 한다.

비밀 열쇠의 크기는 64비트이지만 실제 크기로는 56비트이다.

페이스텔 기반 구조이며, 암호화 과정과 복호화 과정이 동일하므로 복호화 시 역순을 사용한다.

취약점으로는 키의 크기(56bit)가 작아 문제가 된다.


  • AES 방식

128비트 블록 단위로 암호화 한다.

비밀 열쇠의 크기는 128비트(AES-128)192비트(AES-192) 256비트(AES-256)로 구성하기 때문에 라운드 횟수도 이에 맞춰 가변적으로 이루워진다.

SPN 기반 구조이며, 암호화 과정과 복호화 과정이 상이하다.

키 크기에 관계 없이 평문과 암호문의 크기는 128비트 이다.


페이스텔(Feistel)과 SPN 구조


 구분

 설명

 페이스텔

입력을 좌우 블록으로 분할하여 한 블록을 라운드 함수에 적용시킨 후의 출력 값을 다른 블록에 적용하는 과정을 좌우블록에 대해 반복적으로 시행하는 방식이다.

3라운드 이상이며, 짝수 라운드로 구성된다.

또한 암호화 과정과 복호화 광정은 동일시하며, 강도를 결정짓는 요소는 평문 블록의 길이, 키의 길이, 라운드의 수 이다.

 SPN

S박스의 출력은 P박스로 전치하는 과정을 반복하는 방식이며, 병렬성을 제공한다.


  • SEED 방

일종의 한국형 DES 방식이다.

128비트 블록 단위로 16회(라운드) 암호화 한다.

128비트 크기의 비밀 열쇠를 이용한다.


  • ARIA 방식

일종의 한국형 AES 방식으로 블록 단위와 열쇠의 크기가 동일하다.


  • IDEA 방식

128비트의 비밀 열쇠를 이용해 64비트 블록 단위8회(라운드) 암호화 한다.

SPN 구조이고 PGP, VPN 기법 등에서 사용한다.


  • RC4 방식

비트 크기의 비밀 열쇠 기반으로 WEP 방식 등에서 사용하는 스트림 암호이다.


주요 대칭키 알고리즘

 구분

 키

 블록

 라운드수

 구조

 특징

DES

56

64 

16 

Feistel 

안정성은 S박스에 의존, 16개의 48비트 라운드키

3DES

2개:112, 3개:168

64 

48 

 

DES-EDE2, DES-EDE3 

Rijndael

128, 192, 256

128

10, 12, 14 

SPN 

AES 최종 우승, 경쟁방식

SEED

128

128 

16 

Feistel 

KISA+암호전문가 

ARIA

128, 192, 256

128

12, 14, 16

SPN 

한국, 경량환경, 하드웨어 구현에 최적화

IDEA

128 

64 

 

유럽형(스위스)



위협 요소

  • 차분 공격
두 개의 평문 블록의 비트 차이에 대응되는 암호문 블록의 비트 차이를 이용 암호키를 찾는 방식이며, 입력 값의 변화에 따른 출력 값의 변화를 이용하는 일종의 선택 평문 공격이다

  • 선형 공
알고리즘 내부의 비 선형 구조를 선형화 시켜 키를 찾는 방식이며, 비선형 구조를 선형 구조로 변형하는 일종의 기지 평문 공격이다.

  • 전수 공격
암호화 할 때 일어 날 수 있는 모든 경우의 수를 조사하여 키를 찾는 방식으로 일종의 암호문 단독 공격이다.



블록 단위 기반에서 운영 모드의 종류


  • ECB 모드

64 비트 블록 단위의 평문과 암호문이 각각 일대일 관계를 형성하기 때문에 평문과 암호문이 동일하다.

데이터베이스 분야 등에서 사용하며, 보안에 취약하다.


  • CBC 모드

초기 벡터(IV)라고 불리는 허구의 블록을 송신자와 수신자 사이에 사전에 미리 공유해야 된다. 즉, 송신자와 수신자가 사전에 공유한 IV를 첫 번째 블록을 암호화하기 전에는 암호문 블록이 존재하지 않으므로 대신 사용한다.

IPSec 기법과 커버로스 시스템 등에서 사용한다.

평문 안의 한 비트에서 발생한 오류는 다음 블록의 암호문에 영향을 준다.(각 블록에 동일한 키 사용)

암호화 완성된 결과물을 다음 암호화 수행에 반영을 한다. 

즉, 중간의 블럭만 암호화가 불가하며, 이전 모든 블럭이 필요하고 복호화 시 1개의 블록이 파손이 되었을 때 에는 2개의 블럭에 영향이 준다.


  • CFB 모드

스트림 암호 방식과 호환이 되며, 암호화 과정에서는 특정 입력이 영향을 주지만 복호화 과정에서는 영향을 주지 않는다.

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


  • OFB 모드

스트림 암호 방식과 호환이 되며, CBC 또는 CFB 모드의 오류 전파 속성을 제거한 것이다.

초기치가 바뀌면 암호문은 모두 바뀌며 암호 알고리즘의 출력은 평문과 무관하다.

암호문에서 비트 손실이 발생하면 그 다음에 오는 평문은 모두 에러가 발생하기 때문에 동기를 새로 맞추어야 한다.


  • CTR 모드

스트림 암호 방식과 호환이 되며, 64 비트 블록마다 카운터를 가진 난수를 생성하고 CBC 또는 CFB 모드의 오류 전파 속성을 제거한 것이다.

728x90
반응형
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today