티스토리 뷰


블록 암호란?

기밀성 있는 정보를 정해진 블록 단위로 암호화 하는 대칭키 암호 시스템입니다.

만약 암호화하려는 정보가 블록 길이보다 길 경우에는 특정한 운용 모드가 사용됩니다.(ECB, CBC, OFB, CFB, CTR) 운용 모드는 나중에 살펴보도록 하겠습니다.

 

장점

Block단위 암호화로 인해 기호를 삽입하거나 제거가 불가능하고 다양한 운영 방법에 의해 혼돈과 확산의 이론을 기반으로 설계될 수 있는 것이 장점.

 

단점

블록 단위로 암호화가 이루어지기 때문에 평문 비트들이 완전한 하나의 블록으로 구성한 다음에 암호화 되므로 암호화 과정이 블록의 크기에 따라 지연된다. (암호화 시간이 느리다는 이야기죠.)



대칭키 방식의 블록 암호의 암호화와 복호화를 그림을 통해 알아보죠.

 
그림 설명
t는 t번째라는 의미입니다.
즉 일정 비트가 되어 블록이 되면 Key와 암호화 함수를 이용하여 암호문 블록이 생성됩니다. 그리고 생성된 암호화 블록을 전송하고 이를 받은 측에서는 암호문 블럭을 다시 Key와 복호 함수를 사용하여 평문 블럭으로 만듭니다.

Ct Pt의 사이의 관계는 각각 Ct=E(Pt,K) Pt=D(Ct,K)입니다. 이해하시겠죠.
왼쪽이 암호화가 이루어지는 과정이고 오른쪽이 복호화가 이루어지는 과정입니다.
암호화와 복호화에 사용되는 열쇠는 K로 같습니다.

블록의 길이
(Pt)
블록의 길이(Pt가 해당)는 대표적으로 64비트와 128비트가 있습니다. 블록의 길이는 변수에 의해 지정 가능하고, 블록의 길이를 변경할 수 있는 것도 있습니다.

K(Key)

키의 길이는 40, 56, 64, 80, 128, 192, 256비트가 있습니다.


안전성

블록 암호는 N비트의 키 길이에 대해 2이상의 안정성을 가지지 않습니다. , 키의 전수 검색으로 반드시 해독이 가능합니다. 이것은 블록 암호를 정하는 경우, 매우 중요한 요소의 하나입니다. 그래서 최근에 짧은 키의 길이를 가지는 DES(56비트)가 채용되지 않는 이유 중에 하나입니다.
 

라운드 함수의 구성 방법에 따라 분류

Feistel : DES, 3DES

SPN   : AES

 

비트별 블록 암호 종류(이런 것이 있다고 알고 계시면 됩니다.)

64bit

TDEA-ISO/IEC_18033, CRYPTREC

MISTY1-ISO/IEC_18033, CRYPTREC, NESSIE

CAST-128-ISO/IEC_18033

CIPHERUNICORN-E – CRYPTREC

Hierocrypt-L1 –CRYPTREC

MULTI2-ARIB한정 수신 방식

KASUMI

 

128bit

 AES

 Camellia

 SEED우리나라에서 개발되었죠.^^

 CIPHERUNICORN-A-CRYPTREC

 Hierocrypt-3-CRYPTREC

 SC2000 – CRYPTREC

256bit

 SHACAL-2-NESSIE

 

다음 글에는 블록 암호 시스템의 'Feistel' 구조에 대해 알아보도록 하겠습니다.

 
<위키 백과 참조>