4. 5 (목) - 암호 (DES)

DES의 순서

M block(64) → 초기전치 → DES Round

-------------------------------------------------------------------------------------------------------------------------
DES Round 순서

L(i-1)(32) / R(i-1)(32) →  R(i-1)(32)를 F함수 연산 →

=========================================================
F함수 순서

R(i-1)(32) → 48비트로 확장(확장 순열) → Key(48)와 XOR 연산
→ S-box를 통한 치환선택 (48->32) → 순열

=========================================================
→ F함수의 결과와 L(i-1)(32) 를 XOR 연산 = R(i) → R(i-1)은 그대로 L(i)가 됨

-------------------------------------------------------------------------------------------------------------------------
→ 16라운드가 끝나면 역전치 → 암호문 C(64) 생성



◎ DES의 Key

 - 64비트를 56비트로 축약하여 서브키 생성
 - 8번째 비트마다 패리티 비트 포함시켜 64비트를 키로 사용
 - 사용시엔 패리티 비트 제거하여 56비트로 이용

 - 암호화 과정에 맞춰 16 Round 실행
 - 각 Round 별 서버키 생성

 - 64비트 키는 PC-1을 지나며 패리티 비트(8비트) 제거
 - 남은 56 비트 키는 C0(28개비트)비트로 양분할 됨.
 - Round별 정해진 Left-Shift를 적용하고, PC-2(순열/수축) 한 뒤 나온 C1(28개비트)
   둘(56개 비트) 중에서 48개의 비트를 선정해 키로 사용
 - 여기까지의 과정이 1개의 Round, 위 과정을 16번 수행


◎ DES의 작동 모드

 ▷ ECB (Electronic Codebook) 모드
   - 기존에 사용하던 모드
   - K를 입력하는 방법은 각양각색 (직접 생성, 난수 등등)
   - 대신 K는 안전하게 보관해야함.
   - K를 상대방에게 안전하게 주는 방법을 강구
   - 가장 안전한 방법 : 상면(face to face) 방법
   - 단점 : 동일한 P에 대응되는 C가 같다는 단점이 존재 (통계적인 추측이 가능)

 ▷ CBC (Cipher Block Chaining) 모드
   - ECB 방식의 단점을 보완, 입력된 P가 같은 평문이어도 순서에 따라 다른 결과가 나옴.
   - P1을 제외한 나머지 평문은 이전 평문의 암호문 C(i-1)과 XOR 연산되어
     DES 알고리즘이 적용된다.
   - 첫 평문인 P1은 미리 지정해둔 초기값과 XOR 연산된다.

 ▷ CFB (Cipher Feedback)
   - NASA에서 필요로 의해 64 비트보다 적은 비트 단위로 암호화할 필요성을 느껴 만들어짐
   - 암호 시스템 자체를 건드리지 않고 조정해야했음.
   - 링크 암호 기법 (H/W로 구현)
   - 64비트 레지스터를 사전에 준비 (64비트의 임의의 문자열) - 다른사람들은 모름
   - 64비트 레지스터를 메모리에 복사, 이를 DES 암호화 -> 64비트가 나옴,
   - 여기서 나온 64비트 중 8비트를 오른쪽에서 부터 뽑음
   - 이를 입력할 8비트 평문과 XOR 연산하여 암호문을 구함.
   - 처음 만들어진 C1을 메모리에 저장된 64비트 레지스터의 오른쪽에 패딩시킴,
   - 왼쪽으로 삐져나온 8비트는 버림 (레지스터가 바뀌도록->보안을 위해)
   - 특징 : 원문의 길이를 자신의 마음대로 조절할 수 있음 (but, 64비트보단 작은 단위로)
   - 현재는 사용하지 않음, 인공위성의 cpu 성능이 더 나아졌기 때문.

 ▷ OFB (Output Feedback)
   - CFB 형식과 구조는 같음
   - 차이점이라면, 다음 64비트 레지스터에 패딩되는 값이 이전의 암호문이 아닌,
     선택한 j비트가 패딩된다는 점.


◎ DES의 작동 모드 - 3중 DES

  - 배경 : DES의 K는 64비트길이, brute-force공격에 취약함.
  - 새로운 알고리즘의 개발 : IDEA (128bits 키 사용) - 전수조사가 2^64배 어려워짐
  - DES의 응용 : 3중 DES, 2중 DES

 ▷ 3중 DES
   - 2개의 키를 사용
   - 암호화 : 암호화(1번 키) - 복호화(2번 키) - 암호화(1번 키)
   - 복호화 : 복호화(1번 키) - 암호화(2번 키) - 복호화(1번 키)
   - brute-force 공격에 일반 DES 알고리즘보다 강하다.
   - 더 강해졌지만, 키가 하나 늘었기에 2배 강해졌을 뿐이다.


◎ 추가 암호 알고리즘

 ▷ AES (Advanced Encryption Standard)
   - DES를 대체하기 위한 표준암호 알고리즘
   - 리인델, 투피쉬, 서펀트, 마스 등이 2차 선정
   - 2000년 10월 2일에 리인델이 AES에 선정되었다.

 ▷ Rijndael Algorithm
   - 128, 192, 256 비트의 다양한 길이의 키를 사용
   - 알려진 모든 공격에 대응 가능하다
   - 스마트 카드 상의 컴팩트한 보조 프로세서 등에 이용가능
   - 문제 : 유럽에서의 불신

 ▷ IDEA (International Data Encryption Algorithm)
   - 유럽에서 정한 국제 데이터 암호 알고리즘
   - 현재 사용 불가
   - 64비트 평문 블록에서 128비트 키를 이용해 작동
   - 8 라운드
   - PGP의 메일 시스템에 이용

 ▷ RC5
   - 32, 64, 128 비트 블록 사이즈 이용
   - 0 ~ 255 까지의 다양한 라운드 사용
   - 0 ~ 2048 비트까지의 키를 이용
   - 돈내고 이용해야함.




댓글

이 블로그의 인기 게시물

Linux Server - FTP 실습 (2 / 2) : 사용자 제한 ( ftpuser / user_list )

전자서명 개념

4. 4 (수) - 암호 (DES 암호 / F함수 구조)