본문 바로가기

Computer/ETC

DES 암호화 알고리즘

반응형

DES 암호

DES는 64비트의 평문을 46비트의 암호문으로 만드는 블록 암호 시스템으로 64비트의 키를 사용한다. 64비트의 키(외부 키) 중 56비트는 실제의 키(내부 키)가 되고 나머지 8비트는 거사용 비트로 사용한다. 또한 DES의 안전성을 증가시키기 위하여 키의 길이를 2배, 즉 128비트, 십진수 16개를 키로 선택한 변형된 알고리즘을 일반적으로 사용한다.

DES는 16라운드(Round)의 반복적인 암호화 과정을 갖고 있으며, 각 라운드마다 전치(Transposition) 및 대치(Substitution)의 과정을 거친 평문과 56비트의 내부키에서 나온 48비트의 키가 섞여 암호문을 만든다. 복호화는 암호화 과정과 동일하나 사용되는 키만 역순으로 작용하는 것이다. 현재 DES는 안전하지 않다.

DES는 현재 취약한 것으로 알려져 있다. 56비트의 키 길이는 현재 컴퓨터 환경에 비해 너무 짧다는 것이 하나의 원인이며, DES에 백도어가 포함되어 있어 특수한 방법을 사용하면 정부 기관에서 쉽게 해독할 수 있을 것이라는 주장도 제기되었다. 1998년에 전자 프론티어 재단(EFF)에서는 56시간 안에 암호를 해독하는 무차별 대입 공격 하드웨어를 만들었으며, 1999년에는 22시간 15분 안에 해독하는 하드웨어를 만들었다.

EFF에서 제작한 DES  무차별 대입 공격  하드웨어.

DES는 컴퓨터 성능의 발달에 힘입어 보안성이 약화되어 2, 3 DES를 사용하고 있다. 매 5년마다 안전성을 검증하다가 97년에 NIST는 AES를 제시했고 2000년에 Rijndeal을 AES로 선택했다. (AES 최종선택이 2001년인가, 2000년인가..)

용어정리

암호화 : 평문을 암호화 키를 이용하여 암호문으로 바꾸는 과정
복호화 : 암호문을 복호화 키를 이용하여 평문으로 바꾸는 과정
치환(substitution) : 비트, 문자 혹은 블록을 다른 비트, 문자, 블록으로 대체
전치(transposition) : 비트, 문자, 블록이 원래 의미를 감치도록 재배열
블록암호 : 특정 비트 수의 집합을 한번에 처리하는 암호 알고리즘
스트림암호 : 한번에 1Bit 혹은 1Byte의 데이터 스트림을 순차적으로 처리해가는 암호 알고리즘
대칭키암호 : 암호화키와 복호화키가 동일한 암호 알고리즘
비대칭키암호 : 암호화키와 복호화키가 서로 다른 암호 알고리즘, 송신자와 수신자가 각각 한 쌍의 키를 가짐


구조

암호화과정은 두개의 전치(P-박스)와 16개의 Feistel 라운드 함수로 구성된다. 여기서 사용된 두개의 P-박스 중 하나는 초기 전치(initial permutation), 다른 하나는 최종 전치(final permutation)라고 한다.
각 라운드는 라운드 키 생성기에 의해 암호키로부터 생성된 48비트 라운드 키를 사용한다.

DES의 일반적 구조

DES의 키는 7비트마다 오류검출을 위한 정보가 1비트씩 들어가기 때문에 실질적으로는 56비트

DES는 16번의 라운드 함수를 사용한다. DES의 각 라운드 함수는 Feistel 암호로 되어 있다.
(최종전치는 서로 역의 관계에 있는 단순 P-박스, 최종전치는 DES에 있어서 암호학적으로 중요하지 않다.)

라운드 함수의 경우는 이전 라운드 함수(또는 초기전치 박스)의 출력 값 Li-1Ri-1을 입력으로 받아, 다음 라운드(또는 최종 전치 박스)에 입력으로 전송될 Li와 Ri를 생성한다.

각 라운드에는 혼합기(mixer)와 교환기(swapper)라는 2개의 암호요소가 있다. 이런 요소들은 역연산이 가능하다. 교환기는 명백하게 역연산이 가능하다.

DES함수란, DES 라운드 함수에 사용된 f(Ri-1, Ki)를 가리킨다. DES 함수는 32비트 출력값을 산출하기 위하여 가장 오른쪽의 32비트(Ri-1)에 48비트 키를 적용한다.
DES함수는 확장 P-박스, 키 XOR, 8개의 S-박스 그리고 단순 P-박스의 4개 부분으로 구성되어 있다.

DES 함수

DES 분석

S-박스
S-박스는 각 라운드에서부터 그 다음 라운드까지 혼돈을 만족하도록 설계되었다.
S-박스는 비선형 함수이다.
입력값의 한 비트를 바꾼다면, 출력값에서는 두 비트 이상이 바뀐다.

P-박스
32비트에서 32비트로 가는 하나의 단순 P-박스와 32비트에서 48비트로 가는 하나의 확장 P-박스가 있다. 이런 2개의 P-박스는 비트들을 동시에 확산 시킨다.

 


2022.06.09 - [Computer/ETC] - Feistel 암호

반응형

BLOG Version/ 1.1.2.1 _22.05.26
Copyright © 2002-2020 EIGHTBOX. All Rights Reserved.
Behold the fowls of the air: for they sow not, neither do they reap, nor gather into barns; yet your heavenly Father feedeth them. Are you not much better than they?