-
DES - 1Cryptography - Security/Dreamhack - Basic 2023. 5. 8. 09:24
DES란?
미국의 국가안보국 (NSA)에서 IBM의 루시퍼 알고리즘을 개량하여 만든 대칭키 암호이다
DES는 키 길이를 56비트로 한다
DES는 8바이트(64비트)를 한 블록으로 하는 블록암호이며, 초기순열, 최종순열, 페이스텔 구조의 16라운드, 키생성함수로 구성되어 있다
순열, 치환, 곱암호
치환과 순열을 여러 번 교차하여 적용하면 혼돈과 확산의 성질을 모두 만족하게 된다
왼쪽의 그림과 같이 치환, 순열로 1개의 라운드를 구성하고 각 라운드를 여러번 반복하는 것을 곱암호라고 한다
페이스텔 구조
DES의 라운드 함수는 아래와 같이 페이스텔 구조를 이루고 있다
1. 입력으로 들어온 블록을 동일한 길이의 왼쪽블록 L과 오른쪽 블록 R로 나눈다
L0=P[:len(P)/2]
R0=P[len(P)/2:]2. 각 라운드마다 오른쪽 블록은 다음 라운드의 왼쪽 블록으로 입력된다
Ln+1=Rn3. 왼쪽 블록은 오른쪽 블록에 라운드 함수 F를 적용한 결과와 xor되어 다음라운드의 오른쪽 블록으로 입력된다
Rn+1=Ln⊕F(Rn,Kn)페이스텔 암호의 특징
블록암호는 평문을 복호화 할 수 있어야 한다
따라서 암호화를 구성하는 함수들에 역함수가 존재한다하지만 페이스텔 구조를 사용하면 F가 복호화 과정에서 XOR로 상쇄되므로 역함수가 존재하지 않아도 된다
그리고 암호화와 복호화의 구조가 동일해 암호화에 사용된 라운드 키를 역순으로 입력하면 복호화가 이루어 진다마지막으로 오른쪽 블록은 다음 라운드의 왼쪽 블록으로 어떠한 처리과정도 없이 그대로 입력이 된다
Dreamhack - Cryptography 공부내용 정리
관련된 문제는 사이트에 수록되어 있습니다
728x90'Cryptography - Security > Dreamhack - Basic' 카테고리의 다른 글
DES - 3 (0) 2023.05.08 DES - 2 (0) 2023.05.08 AES - 2 (0) 2023.05.02 AES - 1 (0) 2023.05.01 현대암호 - 2 (0) 2023.04.07