PromleeBlog
sitemap
aboutMe

posting thumbnail
DES: 데이터 암호화 표준
DES: Data Encryption Standard

📅

🚀

파이스텔 암호 구조 (Feistel Cipher Structure) 🔗

입력: 길이가 2w2w 비트인 평문 블록과 키 KK
입력 평문을 두개의 ww 비트 블록으로 나눈다 -> L0,R0L_0, R_0
n 라운드를 거친 후 결합되어 암호문 블록을 생성한다
모든 라운드는 동일한 구조를 가짐

파이스텔 암호 한 라운드의 구조 (Feistel Cipher Round Structure) 🔗

240425-125848

🚀

DES (Data Encryption Standard) 🔗

평문: 64bit -> 2w2w = 64bits
키: 56bit -> KK = 56bits
라운드 수 = 16
각 라운드마다 48bit의 서브키 생성

🚀

DES: 초기 치환 (Initial Permutation) 🔗

64비트 평문을 입력받아 64비트 블록을 생성
64개의 비트를 테이블에 의해 치환, 마지막에 역순 테이블로 치환
예시) 테이블의 첫 번째 수가 58이면, 첫 번째 비트는 58번째 비트가 된다.
DES 알고리즘의 첫 번째와 마지막 단계에 해당
데이터에 더 많은 난독화 제공

🚀

DES: 치환 테이블 (Permutation Tables: E, P) 🔗

표 E(확장 치환): 32비트 입력을 48비트 출력으로 변환
확장 치환은 32비트 입력을 48비트 출력으로 변환하여 서브키와 XOR 연산을 수행하기 위해 사용
치환 테이블은 S 박스의 결과를 다시 배열하여 복잡한 데이터 구조 생성

🚀

DES: S 박스 (S-Boxes) 🔗

확장된 48비트 데이터는 XOR 연산을 거쳐 8개의 S-박스에 입력됨
각 S-박스는 6비트 입력을 4비트 출력으로 변환: {0,1}6{0,1}4{\{0, 1\}}^6 \rightarrow {\{0, 1\}}^4
a1a2a3a4a5a6a1a6:row,a2a3a4a5:cola_1a_2a_3a_4a_5a_6 \rightarrow a_1a_6 : row, a_2a_3a_4a_5 : col
S 박스의 행과 열은 0부터 시작, 결과에 해당하는 값을 다시 2진수로 바꾸면 4비트 출력이 나옴

🚀

DES: 키 스케줄링 (Key Schedule 1) 🔗

순열 선택 (Permutation Choice 1, PC-1): 56비트 키 K는 C0,D0C_0, D_0로 변환됨, 각각은 28비트
후속 단계에서 서브키를 생성하기 위한 기초가 된다.
DES가 사용하는 키 K는 64비트이지만 8개의 비트는 패리티 비트로 사용되어 56비트만 사용
패리티 비트: 오류 감지 역할

🚀

DES: 키 스케줄링 (Key Schedule 2) 🔗

Ci1,Di1C_{i-1}, D_{i-1}을 이용하여 Ci,DiC_i, D_i를 생성
각 라운드 별 정해진 shift 값에 따라 Ci,DiC_i, D_i를 왼쪽으로 shift
순열 선택 2 (Permutation Choice 2, PC-2)를 통해 이동 완료한 Ci,DiC_i, D_i를 재배열하여 48비트 서브키로 변환
예를 들어, 서브키의 첫 번째 비트는 C와 D의 k번째(on table) 비트가 됨

🚀

DES: 보안 분석 (Security Analysis) 🔗

모든 부분이 선형적이다. S-Box 제외
암호화 키의 길이가 짧다. 56비트 -> 무차별 공격에 취약
이제 사용하지 않는다. -> AES로 대체

🚀

3중 DES (Triple DES) 🔗

DES의 보안성을 높이기 위해 3번의 암호화를 수행
Enc(K=(K1,K2,K3),M)=Enc(K=K3,Dec(K=K2,Enc(K=K1,M)))Enc(K=(K_1, K_2, K_3), M)=Enc(K = K_3, Dec(K = K_2, Enc(K = K_1, M)))
Dec(K=(K1,K2,K3),C)=Dec(K=K1,Enc(K=K2,Dec(K=K3,C)))Dec(K=(K_1, K_2, K_3), C)=Dec(K = K_1, Enc(K = K_2, Dec(K = K_3, C)))

🚀

3중 DES의 특징 (Properties of Triple DES) 🔗

평문 크기 = 암호문 크기 : 64비트
키 크기 = 3*DES 키 :168비트
장점