+ ch1 내용
- 보안의 3요소(CIA) : Confidentiality, Integrity, and Availability
ⓐ 기밀성(Confidentiality) : 정보의 무단 열람을 방지(prevent unauthorized reading of information)
ⓑ 무결성(Integrity) : 정보의 무단 수정 방지(prevent unauthorized writing of information)
ⓒ 가용성(Availability) : 필요할 때 적시에 데이터를 사용할 수 있음
1. Crypto(암호 용어)
- Cryptology(암호 작성술) : 비밀 암호를 만들고 해독하는 기술과학
- Cryptography(암호학) : 비밀 암호를 만드는 학문
- Cryptanalysis(암호분석학) : 비밀 암호를 해독하는 학문
- Crypto(암호) : 모든걸 포함하는 학문
2. How to Speak Crypto(암호를 어떻게 설명하는가)
- 암호 또는 암호시스템은 주로 평문(plaintext)를 암호화하는데 쓰인다
- 암호화된 결과가 "암호문(ciphertext)"
- 암호문을 번역하면 평문이 된다
- 키(key)는 암호 시스템을 알아내는데 쓰인다
- 대칭키(symmetric key)는 암호화와 복호화하는데 똑같은 키를 사용한다.
- 공용키(public key)는 암호화하는데 쓰이고, 비밀키(private key)는 복호화하는데 쓰인다.
3. Crypto
1) 기본 가정
- 시스템은 공격자에게 완전히 알려져 있으며, 키는 감춰져 있다.
- 케르크호프스의 원리(Kerckhoffs Principle) : 키를 제외한 시스템의 다른 모든 것이 알려져도 암호체계는 안전해야 함
* 암호 알고리즘은 시크릿 하지 않지만 키는 시크릿함
2) 이러한 가정의 이유
- 전문가들은 비밀알고리즘이 노출되었을때 약해진다는 것을 보여왔음
- 비밀 알고리즘은 절대 비밀로 계속 유지되지 않음
- 미리 취약한 부분을 확인하는 걸 용이하게 하기위해
4. 단순 치환 암호(Simple Substitution)
- 평문 : fourscoreandsevenyearago
a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z |
D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C |
- 암호문 : IRXUVFRUHDAGVHYHABHDUVDIR
👉 방법 : "시저의 암호(Caesar's cipher)" 3번 shift
- 해독법 : 반대로 3번 shift하면 됨.
5. 덜 단순한 치환 암호(Not-so-Simple Substitution)
- shift 를 n번한다. (n={0,1,2,...,25})
- 그러면 평문을 알아내기 위해서는? -> 26번의 가능한 키들을 다 해보면 됨!(전수키 조사)
6. Even-less-Simple Substitution
- 키는 문자들의 순열로 되어있음
- shift가 필요하지 않음
a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z |
H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C | D | E | F | G |
- 그러면 나올수 있는 가짓수가 26! 키가 가능
- 1천년에 거쳐서 많이 쓰이고 있는 방법
7. 암호 분석학-Crptanalysis 2 : 더 똑똑하게
- 문장의 알파벳의 빈도수 때문에 해독이 쉬워짐 - Arabs이 발견
1) 용어
- 암호 시스템은 가장 좋은 공격을 위해 전수키 조사를 해야하면 안전함
- 지름길 공격(shortcut attack)으로 공격이 가능하면 안전하지 않음
* 이 정의에 따르면, 안전하지 않은 시스템은 보안 시스템보다 깨기가 더 어려울 수 있음
8. Double Transpositon
- 행과 열을 바꾸는 방식
- 평문 : attackxatxdawn
- 암호문 : xtawxnattxadakc
- 키 : 행렬크기(matrix size)과 순열(permutations)
9. 일회성 암호 - One-time Pad Encryption/Decryption
[ e=000 h=001 i=010 k=011 l=100 r=101 s=110 t=111 ]
- Encryption : 평문⊕키 = 암호문
- Decryption : 암호문⊕키 = 평문
👉 암호화와 복호화 방식이 같다
P | h | e | i | l | h | i | t | l | e | r |
001 | 000 | 010 | 100 | 001 | 010 | 111 | 100 | 000 | 101 | |
K | 111 | 101 | 110 | 101 | 111 | 100 | 000 | 101 | 110 | 000 |
C | 110 | 101 | 100 | 001 | 110 | 110 | 111 | 001 | 110 | 101 |
s | r | l | h | s | s | t | h | s | r |
> 특징
- 정확하게 사용되면 비교적 안전하다.
- 암호문은 평문에 대한 어떠한 안내도 재공하지 않는다.
- 패드는 랜덤이어야 하며, 한 번만 사용해야 한다.
- 패드는 발신자와 수신자만 알 수 있으며, 크기는 메시지와 같다.
- 메시지의 무결성을 보장하지 않는다.
* 실제로 1940년도 U.S의 VENONA 프로젝트에서 일회성 암호가 쓰였음
10. 코드북(Codebook)
- 코드북은 말 그대로, "Codeword"로 가득 찬 책이다.
- 현대 블록 암호는 코드북을 사용함 !
- Zimmerman Telegram 은 코드북을 통해 암호화했음
11. 1876년 선거에서 사용된 암호
원본 메시지에 코드북 적용
메시지를 5단어(총 길이, 10,15,20,25 또는 30단어) 여러 단어로 입력
각 길이에 대해 결과 메시지에 고정된 순열이 적용됨
같은 길이의 많은 메시지를 비교하여 찾은 순열
동일한 키가 지정된 길이의 모든 메시지에 적용됨
👉 키를 재사용해서 암호문이 들켰음 >키를 재사용하지 마라
12. 현대 암호 역사
- skip -
13. 암호화 요소
– Confusion : 평문의 내용을 짐작하기 어렵게 만들어야 한다.
– Diffusion : 알고리즘의 패턴을 추론하기 어렵게 만들어야 한다.
* one-time pad는 오직 confusion만 쓰이고, double transpoistion은 diffusion만 쓰인다.
14. 암호학의 분류
1) Symmetric Key(대칭키)
- 암호화와 복호화 하는데 키가 같음
- Stream ciphers, Block ciphers
2) Public Key(공개키)
- 암호화를 위한 키(public)와 복호화를 위한 키(private) 두개가 존재함
- 대칭키 암호와 비교될 수 없음.?
3) Hash algorithms
16. 암호분석학의 종류
- 암호문 공격 : 알고리즘과 암호문만 가능
- 알려진 평문 공격 : 몇개의 평문과 일치하는 암호문
- 선택된 평문 공격 : 암호시스템의 제한된 접근, 프로토콜은 선택된 글을 암호화 할 것임
- 적응적 선택된 평문 : 평문을 고르고, 암호문의 결과롤 본다. 그리고 암호문과 관련된 키로 평문을 관찰한다.
- 순방향 탐색 : 공개키 암호만 오직 가능(평문이 "yes" 또는 "no" 여야함)