DES

블록암호의 일종으로, 미국 NBS (National Bureau of Standards, 현재  NIST)에서 국가 표준으로 정한 암호이다. DES는 대칭키암호이며, 56비트의 키를 사용한다.

64비트 블럭 암호 알고리즘. 56비트 키를 사용(64비트 중 8비트는 parity check로 사용)

라운드 수 : 16


DES 심플버전

IP(Initial Permutation) : 초기 전치

fk : 전위나 전치, 치환 (키 의존적)

SW : 데이터의 두 절반을 상호 교환하는 함수

암호화와 복호화 프로세스는 아래와 같다.




키생성 과정



가운데 키 생성과정 보자. 예를들어 여기서 1 0 0 1 0 0 1 1 1 0 의 10bit 키 입력이 들어가게 되면,


P10


P10에 의해서 0 0 0 1 1  0 1 1 1 0 가 출력된다. 이를 반씩 나누어 0 0 0 1 1 / 0 1 1 1 0 가 되고

P8

P8을 통해 1 1 1 1 1 0 0 0 의 8bit 키 K1이 생성된다.

K2 생성도 이와 같다.

8bit의 평문은 IP를 거치게되는데,



IP



이 과정을 예를 들면, 1 0 1 0 1 1 0 0 이 입력 0 1 1 1 0 0 1 0 가 출력되는 것이다.

fk의 내부는 아래와 같다.




E/P에서는 4bit입력에 대한 8bit출력으로  확장과 치환이 일어난다.

 

여기까지 DES의 심플 버전이었다.

DES의 심플버전은 8비트로 2단계처리 밖에 안하지만, 실제 DES는 64비트, 16단계 처리를 한다. F함수또한 4비트가아닌 32비트연산이다.

'좌뇌 > 보안' 카테고리의 다른 글

블록 암호 기법(Block cipher)  (0) 2018.04.09
AES(고급 암호화 표준)  (0) 2018.04.09

+ Recent posts