공부 기록

[정보보안] Data Encryption Standard (DES)

by 너나나

Block cipher : guiyum.tistory.com/78

avalanche effect : plaintext나 key의 작은 변화가 ciphertext의 큰 변화를 일으키는것

DES has a strong avalanche effect.

Data Encryption Standard (DES)

64비트의 block cipher -> 64-bit block이 생성

  • Plaintext : 64bit
  • Key : 56bit + 8bit (parity)

16 라운드를 반복하게 된다!!

암호화 복호화 과정이 똑같은데 키만 반대순으로 사용한다.

 

DES processing step

  1. Initial Permutation (IP) step
  2. Repetition of plaintext processing using 16 round Feistel structure
  3. Substitution step
  4. Inverse Initial Permutation (IIP) step

Data Encryption Standard (DES)

Basic Structure

2개의 전치(Initial Permutation, Inverse Initial Permutation), 16개의 Feistel 라운드 함수로 구성된다.

56비트의 Cipher Key로부터 16개의 sub key가 만들어지고 이 sub key가 각 라운드의 키로 사용된다.

 

이제 자세하게 구조를 살펴보자!!

먼저 permutation과정을 보자!!!

처음 64비트의 plaintext가 들어왔을 때와 마지막 64비트 ciphertext가 생성되기 직전에 permutation과정이 수행된다.

비트가 규칙에 따라 swapping 되는데 이 initial permutation(IP), inverse initial permutation(IIP) 과정은 테이블에 의해 이루어진다. plaintext와 ciphertext의 통계적 성질을 감추기 위해 사용한다!!

IP Table

이 테이블에 보면 첫번째 자리에 58이 들어가있는데 즉 plaintext의 58번째에 있는 숫자를 ciphertext의 첫번째 글자로 쓰라는 뜻이다!!

IIP Table

DES round 과정을 보면

BtoW는 64비트 블럭을 32비트로 나누는 함수이다. 이거는 block cipher와 같으니까 생략하고(맨 위 링크 참고) DES의 핵심인 DES function f에 대해서 알아보자!!

DES function (f)

DES 함수는 오른쪽 부분인 R_i-1에 48비트 라운드 키 K_i를 적용하는데 R_i-1은 32비트이므로 R_i-1을 48비트로 확장한 후에 라운드 키 48비트와 xor연산을 한다.

이런 규칙으로 확장한다!!

1~4비트가 확장되는 6비트의 2~5비트가 되고 6비트의 첫번째 부분은 그 이전 섹션의 4번째 비트가 복사돼서 오고 6비트의 마지막 부분은 그 다음 섹션의 첫번째 비트가 복사돼서 온다.

그럼 32비트가 이렇게 48비트로 확장된다

이렇게 확장된 후 키 값과 xor연산을 한 후  S-BOX를 통해 입력비트를 치환하는데 DES는 각각 6비트 입력값과 4비트 출력값을 갖는 8개의 S-박스를 사용한다. 이 S-박스의 6비트 입력중에 1, 6번째 비트는 행을 결정하고 2~5 비트는 열을 결정한다.

이 다음 다시 P-Box에서 permutation을 수행해준다!!

P-Box

이제 키 생성 과정에 대해 알아보자!!

key generation

DES에서 사용하는 56비트의 키를 이용해 16개의 48비트 sub key를 생성해야 한다!!

먼저 주어진 키는 64비트(56비트 + 8개의 parity 비트)기 때문에 parity Drop을 통해 56비트로 만든다. 

그런 다음 56비트를 오른쪽/왼쪽 28비트씩 나눠 shift left를 하는데 이때 1, 2, 9, 16 라운드 에서는 1bit shift left를 하고 얘네를 제외한 나머지는 2bit shift를 한다. 마지막으로 PC-2 테이블에 따라 56비트를 48비트로 줄인다!!

PC-2 Table

이렇게 열심히 암호화하는 DES도 컴퓨터의 발전에 따라 취약해져 3-DES(Triple DES)가 나왔다..!!!! 3-DES는 DES를 3번 반복하여 암호화 하는 것이다!! 2개의 key를 이용한 3DES도 있고 3개의 key를 이용한 3DES도 있다.

Triple DES with two keys
Triple DES with three keys

 

블로그의 정보

공부 기록

너나나

활동하기