본문으로 바로가기

S-DES

category IT Tech/Security 2019. 3. 5. 03:22
1.개요
S-DES 는 Simple-Data Encryption Standard의 약자로 쉽게 말해 DES(데이터 암호화 표준)를 간단하게 표기한 것이다.
실질적으로 사용가능한 암호화 알고리즘이라기 보단 DES를 쉽게 설명하기 위한 용도라고 생각하는게 더 좋겠다.
DES와는 비트수만 다를뿐 암호화 방법이 같으므로 이 글을 이해하면 DES는 쉽게 이해하리라 본다.
DES는 전형적인 페이스텔 암호구조를 따른다.
 
2.DES와 S-DES의 차이점
DES는 64bit의 블록을 암호화하고 S-DES는 8bit의 블록을 암호화한다.
DES의 키는 56bit의 키를 사용하고 S-DES는 10bit의 키를 사용한다.
비트수의 차이에 따라 S-DES는 작은 S-boxes와 P-box, 순열을 이용한다.
DES는 16회전을 하고 S-DES는 2회전만 실시한다.
 
3. S-DES의 키 생성
S-DES는 2회전을 실시하기 위하여 주어진 10비트의 Original key 로부터 8비트의 Sub key 2개를 생성한다.
절차는 다음과 같다.
 



 

1) 10bit의 키를 P10의 순열로 치환한다.
2) 재 정렬된 값을 좌우 5bit씩 나눈 후 각각 LS(Left Shift)-1bit를 수행한다.
3) '2)'의 결과를 합쳐서 P8의 순열로 치환하여 8bit의 K1을 생성한다.
4) '2)'의 결과를 다시 각각 LS(Left Shift)-2bit를 수행한다.
5) '4)'의 결과를 합쳐서 P8의 순열로 치환하여 8bit의 K2를 생성한다.
 
키 생성 Example
Original key       : 10100 00010
1) P10(key)결과 : 10000 01100
2) LS-1 결과     : 00001 11000
3) P8('2)') 결과  : 10100100   -> K1
4) LS-2 결과     : 00100 00011
5) P8('4)')결과   : 01000011   -> K2
 
4. S-DES의 암호화 절차



초기순열 IP(Initial Permutation)에 주어진 평문을 넣어 치환하는 것으로 모든 과정을 시작한다.
IP-1은 IP의 역순열을 의미한다. IP-1에 값을 집어넣으면 IP로 치환되기 이전의 값을 얻을 수 있다.
IP-1은 암호화의 마지막 순서이지만 비교를 위하여 IP와 같이 기술하였다.


 
확장순열 E/P(Expansion Permutation)에는 IP(plain text) 의 R(오른쪽 4bit)의 값을 입력하여 8bit의 값으로 확장한다.


S박스에는 확장순열과 키를 XOR연산한 결과값을 입력하는데 다시 한번 좌우 4비트씩 나눈다.
좌측 4bit는 S0, 우측 4bit는 S1에 입력한다.
입력하는 방법은 4bit의 값에서 첫번째와 네번째 bit의 값을 행번호로 두번째와 세번째 bit의 값을 열번호로 해서 값을 찾으면 된다.
예를 들어 좌측 4bit의 값이 0110이라고 가정하면 행번호는 00, 열번호는 11이다.
따라서 행번호 00에 해당하는 0행, 열번호 11에 해당하는 3열을 S0에서 찾으면 2이므로 결과값은 10이다.


S-boxes의 결과를 붙이면 다시 4bit가 된다. 그 결과를 P4(P-box)에 입력하여 치환한다.
그리고 결과를 처음의 초기순열의 L(좌측 4bit)와 XOR 연산을 수행하여 최종적으로 L값을 만든다.
 
스위치함수(SW)는 위의 연산을 수행해서 얻은 L값과 초기순열의 R값의 위치를 바꾸어서 다음 라운드에 입력할 값을 생성한다.
 
함수의 연산 과정이 정리되었으므로 최종적으로 S-DES 암호화 절차를 정리하면 다음과 같다.
1) 평문 8bit를 IP의 순서로 치환한다.
2) '1)'의 결과를 좌우 4bit씩 L과 R로 나눈다.
3) R을 E/P에 입력하여 8bit로 확장한다.
4) '3)'의 결과를 K1과 XOR 연산한다.
5) '4)'의 결과를 S-boxes에 입력하여 4bit의 결과를 생성한다.
6) '5)'의 결과를 P-box(P4)에 입력하여 치환한다.
7) '6)'의 결과를 '2)'의 L과 XOR 연산한다.
8) '7)'의 결과와 '2)'의 R을 이어붙인다
9) '8)'의 결과를 SW(스위치함수)에 입력한다.
10) '9)'의 결과를 가지고 2라운드를 1라운드( '2)'~'8)'의 과정 )와 동일하게 수행하는데 K1을 K2로 교체하면 된다.
11) '10)'의 결과를 IP-1에 입력하여 최종 암호문을 생성한다.
 
4. S-DES의 복호화
DES는 대칭키 암호이므로 복호화 절차는 암호화의 반대순으로 하면된다. 
그러나 그냥 반대로 수행하라고만 하면 순서의 혼란이 생길 수 있으므로 난 말을 조금 바꾸겠다.
암호문을 가지고 암호화 절차를 똑같이 따라가면 된다.
다만 key의 사용순서만 역순으로 바꾼다. 쉽게말해 1라운드에서 K2를 사용하고 2라운드에서 K1을 사용한다.
[출처] S-DES|작성자 Nine


'IT Tech > Security' 카테고리의 다른 글

How to Hack Wi-Fi: Get Anyone's Wi-Fi Password Without Cracking Using Wifiphisher  (0) 2019.03.05
RC4 알고리즘  (0) 2019.03.05
대칭키알고리즘  (0) 2019.03.05
RSA  (0) 2019.03.05
앨리스와 밥  (0) 2019.03.04