암호

암호 - Part 2

slcry 2022. 12. 13. 17:06

2장 비밀키 암호

 

1. 비밀키 암호의 원리
2. DES
3. DES의 작동 모드
4. 추가된 암호 알고리즘

 

 

1. 비밀키 암호의 원리

*같은 키를 사용한다. -> 사고나면 누가 잘못했는지 알수없다(책임추적성x)*

 

대칭키 방식 특징
 - 암호 알고리즘의 비도는 키의 *비밀성*에 의존
 - 관용 암호, 대칭키 암호, 공유키 암호등으로 불림

 

장점
 - 다양한 알고리즘 개발, 알고리즘 수행속도가 빠름

 

단점
 - 키 관리 및 키 분배의 어려움
 - 디지털 서명의 어려움

*64비트 의 키 길이?? 2의 64승개*

 

Feistel 암호
 - 별도의 복호화 과정이 불필요
 - 블록 암호의 대표적인 구조
 -  Li=Ri-1, Ri=Li-1 XOR  
    F(Ri-1)
 - 라운드 함수와 무관하게 복호화가 됨
 - 구조적인 취약점이 발견되지 않음
 - 취약한 라운드 함수를 반복적으로 사용함으로 강한 암호를 설계
 - 암호화와 복호화가 동일

 

*R i-1은 Li, Li-1은 Ri로 변환되며 R i-1은 Li은 암호화가 안되고 평문으로 변환되서

이 암호화는 짝수번을 해줘야한다.*

대칭키암호의 종류
 - DES, AES, IDEA, SEED, RC4, 등

 

 

2. DES (Data Encryption Standard)
IBM에서 Lucifer System을 개선하여 만듬
1977년 미 상무성의 국립 표준국(NBS)에서 표준 암호 알고리즘으로 채택
암호화 키(Encryption key) = 복호화 키(Decryption key)
대칭키 암호 시스템, 단일키 암호 시스템, 관용 암호 방식
혼합(confusion), 확산(Diffusion)을 이용 원문과 암호문 간에 통계적 연관을 감춘다.

 

64비트 블록 암호 알고리즘
 - 입력 메시지를 64비트씩 나누어 처리

 

56비트 키를 사용
 - 64비트 중 8비트는 parity check로 사용

 

기본 구조
 - round 수 : 16 round
 - 복호화는 암호화의 역순

 

* f함수가 중요하다. *

 

 

초기 전치

 

 

f 함수

 

 

*S-BOX에서 48비트를 32비트로 나눌때 48비트가 전부참여하고 6비트 8박스가 같은 방식으로 4비트로 변환해준다.*

 

 

확장순열

 

치환 선택

 

 

S-box

 

순열(P)

 

역 전치

 

DES - Key
64비트의 키를 이용
 - 64비트를 56비트로 축약하여 서브키를 생성
 - 8번째 비트마다 패리트비트를 포함하여 64비트를 키로 이용
 - 패리트비트를 제거하여 56비트로 이용

 

암호화 과정에 맞추어 16라운드를 실행
 - 각 라운드마다 서브키를 생성

 

PC-1

 

PC-2 (축약전치)

 

최측이동 횟수

1 1
2 1
3 2
4 2
5 2
6 2
7 2
8 2
9 1
10 2
11 2
12 2
13 2
14 2
15 2
16 1

 

 

DES – 작동 원리

 

 

DES의 작동 모드

ECB (Electronic Codebook) 모드

 

CBC (Cipher Block Chaining)

 

CFB (Cipher Feedback)

 

OFB (Output Feedback)

 

DES의 작동 모드-3중DES
DES의 brute-force공격에 대한 취약성을 보완
 - 새로운 알고리즘 개발 : IDEA (128 bit 키 사용)
 - DES의 응용 : 3중 DES, 2중 DES

 

3중 DES
 - 2개의 키를 사용
 - 암호화 : 암호화, 복호화, 암호화
 - 복호화 : 복호화, 암호화, 복호화
 - brute-force 공격에 DES보다 강함

 

암호화 복호화 과정

 

4. 추가된 암호 알고리즘
AES (Advanced Encryption Standard)
 - DES를 대체하기 위한 표준암호 알고리즘
 - 리인델(Rijndael), 투피쉬(Twofish), 서펀트(Serpent), MARS 등이 2차 선정 (2000)
 - 2000년 10월2일 리인델이 AES로 선정

 

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

 

IDEA (International Data Encryption Algorithm)
 - 국제 데이터 암호 알고리즘
 - 64비트 평문 블록에서 128비트 키를 이용 작동
 - 8라운드로 작동
 - PGP (Pretty Good Privacy) 의 메일 시스템에 이용
   - 필 짐머맴이 개발.. (덕분에 미국에서 실형 살고 유럽으로 이주(?))

 

RC5
 - 32,64,128비트 블록 사이즈를 이용
 - 0에서 255까지 다양한 라운드 사용
 - 0에서 2048비트까지의 키를 이용

 

SEED 
 - 한국 정보보호 센터에서 1999년 2월 개발
 - 128비트 평문 블록에서 128비트 키를 이용 작동
 - 16라운드로 작동
 - G 함수가 사용된다