1-1 암호학 소개
암호학 cryptology : 암호학은 보안시스템의 가장 중요한 부분이지만 그 자체로는 쓸모가 없다.
▶웹(web)의 취약점을 찾는 공격자는 암호를 공격하지 않고도 버퍼 오버플로우(buffer overflow)등을 이용하여 공격
▶즉 "A security system is only as strong as its weakest link"
암호학의 분류
암호기법(cryptography)
메시지의 기밀성을 제공하기 위하여 사용.
현재는 메시지를 공격자로부터 안전하게 보호하기 위하여 메시지를 변화하는 과학이나 기술을 의미
Key: uniformly distributed random string
Symmetric if k1=k2, Otherwise, asymmetric.
Kerckhoffs의 원리: 암호 알고리즘은 알고리즘의 모든 내용이 공개되어도 키가 노출되지 않으면 안전해야 한다.
1. 짧은 길이의 키를 안전하게 보관하는 것은 키보다 수천배의 사이즈인 암호 알고리즘 전체를 안전하게 보관하는 것보다 용이. 또한 암호시스템은 역공학 등으로도 노출될 수 있지만 키는 보통 난수이어서 역공학에 안전
2. 키가 노출되었을 때, 키를 변경하는 것이 새로운 암호시스템을 설계하는 것보다 훨씬 용이
3. 암호시스템은 보통 다수의 사용자를 위하여 운영되며, 모든 사용자는 동일한 암호 알고리즘을 사용.
이 경우 암호 통신을 하는 당사자들마다 상이한 암호시스템을 사용하는 것보다는 동일한 암호시스템을 사용하면서 키만 다르게 설절하는 것이 실용적
->표준화
4.내부자나 역공학에 의하여 암호시스템이 공개되면 새로운 암호알고리즘을 설계
유클리드 알고리즘
gcd(a,b)=gcd(b,r), where r is the remainder of dividing a by b
확장 유클리드 알고리즘
적어도 하나는 0이 아닌 두 정수 a와 b에 대하여 다음을 만족하는 s와 t가 존재한다.
s*a+t*b=gcd(a,b)
In modular arithmetic, an integer may or may not have a multiplicative inverse.
Number a has the mult. Inverse iff gcd(n,a) ≡ 1 (mod n)
s x a + t x b = gcd(a,b)
s x n + t x b = 1 (since gcd(n,b) ≡ 1 (mod n))
(s x n + t x b) mod n = 1 mod n
(t x b) mod n = 1 mod n
t is the inverse of b
고전암호
2가지 원칙: 치환(substitution)과 전치(transposition)
암호단위: 고전암호-문자, 현대암호-비트
※공격유형
-전사적공격(Brute Force Attack): 전수 키 탐색 공격
Exhaustive Key Search Attack 현대암호는 키의 길이가 길기 때문에 전사적 공격은 사실상 불가능
-빈도수분석(Frequency Analysis): 평문의 통계학적 특성이 암호문에 나타나는 성질을 이용하여 공격하는 방법
※치환암호
단일 문자 치환 암호: 평문의 한 문자와 암호문의 한문자는 언제나 일대일 관계
-시저암호: 평문의 한 문자가 오른쪽 세자리 뒤에 위치한 문자로 치환
암호화 : 𝑐≡𝑚+3 mod26, 𝑚∈ℤ26
복호화∶ 𝑚≡𝑐−3 mod26, 𝑐∈ℤ26,
-덧셈 암호(Additive Cipher)
암호화 : 𝑐≡𝑚+𝑘 mod26
복호화∶ 𝑚≡𝑐−3 mod26
치환암호의 경우 가능한 키의 개수는 26!->전사적 공격을 이용하여 공격자가 키를 찾는 것은 불가능
다중 문자 치환 암호
-비제네르 암호: 길이가 l인 키워드를 암호화 키로 사용
※전치 암호
공격유형
수동적공격-도청,트래픽분석
능동적공격-메시지변조,메시지삭제,위장공격,재전송공격
공격모델
암호문공격모델-암호문단독공격,알려진평문공격,선택평문공격,선택암호문공격
1.암호문단독공격(Ciphertext Only Attack, COA)
암호 공격자에게 가장 불리한 방법으로 오직 암호문만을 가지고 평문과 암호키를 찾아내야 하며,
통계적 성질과 문자의 특성등을 추적하여 해독하는 공격
2.알려진평문공격( Known Plaintext Attack, KPA)
공격자가 암호문에 해당한 평문을 일부 수집한 상태에서 암호문의 관계를 이용해 새로운 암호문을 해독하는 공격
3.선택평문공격(Chosen Plaintext Attack, CPA)
공격자가 한꺼번에 선택한 평문들에 대한 암호문이 주어진다는 가정 하에 복호화 키를 찾는 공격
(즉, 공격자는 암호화를 할 수 있는 상태)
4.선택암호문공격(Chosen Ciphertext Attack)
공격자가 한꺼번에 선택한 암호문들에 대한 평문이 주어진다는 가정하에 복호화 키를 찾는 공격
공격자는 복호화를 할 수 있는 상태이고, 공개키 암호시스템에서 사용
3대 정보보호서비스(NIST): 기밀성, 무결성, 가용성
인증(개체인증, 메시지인증), 부인방지, 접근제어