상세 컨텐츠

본문 제목

Chapter02. 대칭 암호와 메시지 기밀성 - 대칭 암호 알고리즘(DES)

Network Security Essentials

by 메리_99 2022. 1. 5. 15:44

본문

반응형

DES(Data Encryption Standard)

DES 암호 알고리즘

DES 암호화 알고리즘

  • Feistel 네트워크의 변형된 형태
  • 평문 블록의 길이 : 64비트
  • 키의 길이 : 56비트
    • 1998년 7월에 "DES cracker"로 3일 안되는 시간에 키 크랙에 성공(전수 공격) 
  • 16라운드로 구성 -> 당연히 서브키도 16개
  • 복호과정은 암호과정과 근본적으로 동일
    • 암호문을 알고리즘의 입력으로 사용하고 서브키 순서를 뒤접어서 적용

DES 전치(Initial Permution & Final Permution)

  • 평문 64비트는 초기전치표에 의해 64비트로 변환된다.
  • 초기 전치표
    • e.g., 58번째 비트를 1번째 비트로, 50번째 비트를 2번째비트로
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
  • 최종 전치표
    • e.g., 40번째 비트를 1번째 비트로, 8번째 비트를 2번째비트로
40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25

 

DES 서브키 생성 알고리즘

서브키 생성 알고리즘

  • Permucation Choice 1 : 64비트 키 입력으로부터 패리티 비트를 제거하고 56비트로 줄임
    • 8비트째마다 패리티비트 하나씩
49 42 35 28 21 14 7
0 50 43 36 29 22 15
8 1 51 44 37 30 23
16 9 2 52 45 38 31
55 48 41 34 27 20 13
6 54 47 40 33 26 19
12 5 53 46 39 32 25
18 11 4 24 17 10 3
  • Shift 연산 : 매 라운드마다 서로 다른 키 값을 갖기 위해 좌측 시프트 연산, 연산시 비트 순환(여기서 i는 라운드 수)
i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
KS[i] 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1
  • Permucation Choice 2 : 각 단계에서 생성된 56비트 키를 자리바꿈하며 48비트로 출력
13 16 10 23 0 4
2 27 14 5 20 9
22 18 11 3 25 7
15 6 26 19 12 1
40 51 30 36 46 54
29 39 50 44 32 47
43 48 38 55 33 52
45 41 49 35 28 31

DES 라운드 함수

라운드 함수

  • 확장(Expantation) : 입력된 32비트 블록을 48비트로 확장
32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
  • XOR 연산 : 확장된 블록은 라운드키와 XOR 연산
  • 대체(Substitution)
    • XOR 연산의 결과로 나온 48비트는 6비트씩 잘려서 8개의 S-box에 대입
    • 각각 6비트는 S-box에 의해서 치환되면서 4비트로 축소
    • S-box를 행렬로 생각하여 위치에 해당하는 값으로 바꿔주면 4비트 값 도출
      • 첫번째와 마지막 비트를 붙인 값, 첫번째와 마지막 비트를 제외한 나머지 비트 값을 표에서 변환
  • 전치(Permutation)
16 7 20 21 29 12 28 17
1 15 23 26 5 18 31 10
2 8 24 14 32 27 3 9
19 13 30 6 22 11 4 25

위 글은 "Network Security Essentials William Stallings 저"을 공부하며 쓴 글입니다.
728x90

관련글 더보기

댓글 영역