information security

정보보호 기초 2 - 암호화, 대칭키, DES

_data 2023. 4. 14. 10:57

암호 기초

- 암호학 (이론)

- 암호생산 (Crytography)

- 암호분석

 

위의 3가지를 통틀어 'Crypto' 라고 한다.

 

암호화와 복호화

- Plain Text(평문)을 Cipher Text(암호문)으로 변환하는 'e' 과정은 'Encode(암호화)'

- Cipher Text(암호문)을 Plain Text(평문)으로 변환하는 'd' 과정은 'Decode(복호화)'

Image from ResearchaGate

암호체계

- 암호화 알고리즘 :  비밀이 없으며, 암호화 또는 복호화 할 때 알고리즘을 이해하고 기억해야 함.

- 암호화 키 : 약속한 규칙이 있음.

커코호프 원칙
암호화 알고리즘은 비밀이 아니고 오로지 'Key'만이 유일한 비밀이다. 왜냐하면, 알고리즘은 언젠가 공개되기 때문이다.

고전암호

- Transposition(전치법)

    - 예) banana라는 평문이 있을 때, 앞에서 두 글자씩 바꾸면 abanan로 됨.

- Substitution(대치법)

    - 예) 카이사르 암호가 있음. banana라는 평문이 있을 때, 각 단어에서 세 번 점프한 알파벳으로 대치하면 edqdqd로 됨.

 

Image from cheap SSL

대칭키

대칭키

- 암호화 하는 키와 복호화 하는 키가 같은 경우

- 암호화 키와 복호화 키는 절대 공개되어선 안됨.

 

대칭키 종류

- Stream Code

    - 이진화된 평문 스트림과 이진 키 스트림을 XOR 연산을 하여 암호화

    - 예) 평문 : 0 1 1 0 , Key : 1 0 1 0 을 XOR 연산하면 1 1 0 0이 되며 또 Key : 1 0 1 0을 XOR 연산을 하면 0 1 1 0이 됨

    - Stream Code는 간단하고 신속하여 실시간 데이터 암호화에 적합함.

- Block Code

    - 고정된 크기의 블록

 

    - 예) DES, 3DES...

 

DES
Block Code의 예인 DES를 이해하는 것은 중요하다.
- 64비트 블록 길이
- 56비트 키 길이 (2의 56승)
- 16회전 (Feistel 구조이며 복호화하는 것을 더욱 어렵게 함.)
DES에서의 안정성은 주로 'S-BOX'에 의존하게 됨.
- S-BOX 과정을 보면 32 bit -> 48 bit -> 32 bit로 변환이 되는데 이 과정을 이해하는 것이 중요함.
https://somuchthings.tistory.com/122
 

[정보보안] 7. 블록 암호 - DES

평문을 암호문으로 바꾸기 위해 암호 알고리즘이 적용된다. 암호 알고리즘은 암호화 과정과 복호화 과정을 위해 어떤 키를 사용하는지에 따라 여러 방법들이 제안되고 있다. 중요사항 암호화

somuchthings.tistory.com

 

3DES
- 3중 DES
- 56비트의 암호화 키 두 개를 가지고 있어 112비트의 키 (2의 112승)

- 만약 key2를 key1으로 바꾸면 plain text가 됨.
- 중요한 건, 암호화->복호화->암호화 하는 과정은 DES와의 호환성을 고려할 수 있는 방법임.

- 앞서 말한 DES, 3DES는 강도가 약해, AES(128비트의 블록암호)로 넘어감

 

비대칭키

- 암호화 하는 키와 복호화 하는 키가 다른 경우

- 누구에게나 공개되어 있는 키를 '공개키'라고 하며 소유자만 알고 있는 키를 '비밀키'라고 함

- 대응 되는 키를 가진 사람이 풀 수 있음

RSA

- 공개키, 비밀키의 한 예

- 정수론, 소수(素數)를 사용함.

    - 소수의 소인수 분해는 어렵다는 것에 의존하여 만듦

- 암호화와 전자서명이 가능한 알고리즘

 

기능

- 기밀성(개인만 풀 수 있는)- 부인방지(전자서명)