암호학/암호학 둘러보기

[암호학 둘러보기](3)[DES 1]

황올뱀 2025. 1. 14. 16:52

DES: 블록 암호 알고리즘 (평문을 블록단위로 쪼갠 후 암호화)

    S-box로 난수화: DES의 핵심, 입력에 따라 암호문 생성.
    (각 행은 0~행 길이-1의 무작위 수이며 같은 행엔 같은 숫자가 반복되지 않는다.)
    파이스텔 암호를 이용한다 (아래 simple DES 과정 참고)

 

simple DES: DES의 간단한 버전
(simple DES에서는 메세지 12비트, 키 9비트로 구현한다.)

  • S-box:
    S0(4x16행렬): 입력(6비트) -> S-box -> 출력(4비트)
    S1, 2(각각 1x8행렬): 입력(4비트) -> S-box -> 출력(3비트)
  • 파이스텔 암호과정
    평문 M을 각각 (Li, Ri) 두 부분으로 쪼갠다.
    함수 f를 통해 Ri의 비트를 확장한다.
    키 Ki는 마스터 키에서 i-1번째 비트를 제외하고 i-1칸 왼쪽 시프트 해 얻는다.
    키와 Ri를 XOR한다.
    이후 R으 또 쪼개 각각 S1, S2로 처리한다.
    L은 이전단계의 R이다.
    simple DES 예)
  • 조건
    평문 111111101010
    마스터 키 K0 = 001100111
    함수 f = 왼쪽 회전 시프트 1번 -> 마지막 비트 2개 추가
    S-box(S1) = 모든 열이 순방향 (000, 001, 010...)
    S-box(S2) = 모든 열이 역방향 (111, 110....)
  • 라운드 1
    L0 = 111111, R0 = 101010
    R0 = 010101 -> 01010111
    K1 = 01100111
    R0 xor K1 = 00110000
    R0-L = 0011, R0-R = 0000
    S1(R0-L) = 0번째 행의 011번째 열 = 011
    S2(R0-R) = 0번째 행의 000번째 열 = 111
    따라서 R1 = 011111이 된다.
    L1 = R0 = 010101
  • 라운드 n
    이전에 했던 방식으로 계속 반복...
728x90
반응형