현대 암호학 기초

[ 암호학 ] 대칭 암호와 DES

ITsubin 2022. 5. 18. 22:13

부호화?

Encoding. 문자열을 비트열로 바꾸는 것 ( != 복호화 )


XOR?

eXclusive OR. 배타적 논리합. 그림도 마스크가 가능.

암호화, 복호화 순서와 매우 비슷하다.

(평문 A를 키B로 암호화 => AB(암호문) => B로 복호화 => ABB = A(평문)


일회용 패드?

전사 공격으로 키 공간을 모두 탐색해도 해독 불가.

평문과 랜덤한 비트열과의 XOR만을 취하는 단순한 암호지만,

복호화가 되어도 올바른 평문인지 알 수 없기 때문에 완전한 해독이 불가하다.


일회용 패드는 왜 사용되지 않았는가?

> 키 배송 : 키의 길이 = 통신문의 길이. 키를 안전하게 보낼 수 있는 방법이 있었다면 평문도 안전 전송이 가능

> 키 보존 : 키를 안전하게 보관할 수 있는 방법이 있었다면 평문도 안전 보관이 가능

> 키 재이용 : 과거에 사용한 랜덤한 비트열을 절대로 재이용하면 안 됨.

> 키 동기화 : 송,수신자 키 비트열이 1비트라도 어긋나면 안 됨.

> 키 생성 : 난수를 대량으로 생성해야 하며, 의사 난수가 아닌 실제 난수여야 함.


DES?

DES는 "콘테스트"를 통하여 만들어진 데이터 암호화 표준.

전사 공격으로 해독할 수 있는 수준.

블록 암호의 일종으로 대칭 키 암호이며,

56비트 길이의 키를 사용한다.

즉, 64비트 평문 P를 64비트 암호문 C로 암호화하는 대칭 알고리즘이다.


블록 암호란?

블록 단위로 처리하는 암호 알고리즘을 말한다.

(긴 비트 길이의 평문을 암호화하기 위해선 평문을 64비트 블록으로 나눈 후, 각각 DES로 암호화한다.)


DES의 구조

소프트웨어 대신 하드웨어에 암,복호화 기판 설치 (컴퓨터가 느린 시절, 소프트웨어로 보안은 무리였다.)

페이스텔 네트워크, 페이스텔 암호, 여러 개의 라운드로 구성(16라운드)

(DES는 대칭 블록 암호 알고리즘인 "페이스텔 암호"의 구조를 가진다.)


페이스텔 네트워크의 1라운드

1) 입력을 L / R로 나눈다.

2) R을 그대로 R로 보낸다.

3) R을 라운드 함수 F로 보낸다.

4) 라운드 함수 F는 R과 서브키 K1을 입력으로 사용하여 랜덤하게 보이는 비트열을 계산한다.

5) 얻어진 비트열과 L을 XOR 연산한다.

6) 5번의 결과를 다음 라운드의 L로 사용한다.

 

위 라운드를 반복할 경우, R은 암호화가 되지 않는다.

따라서, 페이스텔 네트워크에서는 1~3라운드에서 L과 R을 바꾸어 진행한다.

 

암호화, 복호화가 완벽하게 동일하다. (단, 키 순서도 반대로 K3 => K2 => K1이 된다.)


페이스텔 네트워크의 특징

> 원하는 만큼 라운드 수를 늘릴 수 있다.

> 라운드 함수 F에 어떤 함수를 사용해도 복호화가 가능하다. (단, 함수에 따라 암호의 강도가 좌우된다.)

> 암호화와 복호화를 완전히 동일한 구조로 실현이 가능하다.

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

[ 암호학 ] AES란?  (0) 2022.05.19
[ 암호학 ] Triple DES란?  (0) 2022.05.18
[ 암호학 ] 암호의 역사  (0) 2022.05.16
[ 암호학 ] 암호 보안 상식  (0) 2022.05.15
[ 암호학 ] 기타 암호 기술  (0) 2022.05.14