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
반응형
'암호학 > 암호학 둘러보기' 카테고리의 다른 글
[암호학 둘러보기](6)[AES] (2) | 2025.01.22 |
---|---|
[암호학 둘러보기](5)[DES 3] (0) | 2025.01.21 |
[암호학 둘러보기](4)[DES 2] (1) | 2025.01.20 |
[암호학 둘러보기](2)[과거의 암호 2] (3) | 2025.01.13 |
[암호학 둘러보기](1)[과거의 암호 1] (2) | 2025.01.10 |