★[암호학]★ 기초암호학 특별강의자료...읽어볼 내용들.,.
1. 개 요
현대 암호학은 개인의 프라이버시를 보호하고 국제적으로 범죄를 예방하거나 국가적 정보를 보호해주는 데 결정적인 역할을 한다. 암호학은 원래 군사와 외교적인 목적에서 주로 알려져 왔으나, 최근 컴퓨터 통신망과 관련된 범죄가 빈번하게 발생함에 따라 더욱 일반의 주목을 받게 되었다.
2. 암호학(cryptography)
1) 용어 소개
일반적인 정보를 평문(plaintext) 이라고 하고, 이 평문의 내용을 숨기는 방법을 암호화(encryption) 라고 한다. 암호화된 평문을 암호문(ciphertext)아 하며, 암호문을 다시 평문으로 바꾸는 방법을 복호화 라고 한다.
평문은 비트의 배열, 텍스트 파일, 전자음성, 전자 화상등이 될 수 있으며, 컴퓨터에 있어서 이들은 단순히 이진 데이터 이다. 암호문 또한 이진 데이터이며 그 크기는 평문의 크기와 같거나 때때로 크기도 하다. 평문을 P, 암호문을 C, 암호화 함수를 E 라고 하면, 수학적 표현으로 암호화 과정은 다음과 같다.
E(P)=C
반대의 방법으로 복호화 함수를 D라고 하면, 복호화 과정은 다음과 같다.
D(C)=P
암호화한 평문을 복호화하면 다시 평문이 나오므로 다음식도 항상 성립된다.
D(E(P))=P
암호 알고리즘은 암호화와 복호화에 쓰이는 수학적 함수이다. 현대 암호 알고리즘은 키를 사용한다. 키를 k라고 하면 위의 수식은 다음과 같이 된다.
- 암호화 키와 복호화 키가 같을 때 -
Ek(P)=C
Dk(C)=P
Dk(Ek(P))=P
- 암호화 키와 복호화 키가 다를 때,(암호화 키 k1, 복호화 키 k2) -
Ek1(P)=C
Dk2(C)=P
Dk2(Ek1(P))=P
2) 공개키 알고리즘과 비밀 키 알고리즘.
암호알고리즘은 키를 기반으로 두가지로 나누어 지는데, 하나는 대칭 키(symmetric-key) 알고리즘 이고, 다른 하나는 공개키(public-key) 알고리즘 이다.
대칭 키 알고리즘은 암호화 키와 복호화 키가 같은 것을 말한다. 이 키는 노출되면 안되기 때문에 비밀 키(secret-key) 알고리즘 이라고도 한다.
공개키 알고리즘은 암호화와 복호화에 서로 다른 키를 사용하는 알고리즘이다. 제 3자는 암호화 키를 알고있더라도 암호문을 복호화 할 수 없다. 복호화 키를 가진 사람만이 암호문을 복호화 할 수 있다. 이러한 특징 때문에 암호화 키를 공개하고, 복호화 키는 숨긴다. 암호화 키를 공개키(public-key), 복호화 키를 개인키(private-key)라고 한다.
3. 암호해독(cryptanalysis)
암호해독은 키가 없는 상태에서 암호문을 복호화 시키는 방법이다. 암호해독을 위한 시도를 공격법(attack) 이라고 한다. 각 공격의 목적은 사용되는 키를 찾거나 평문을 찾는 것이다.
이러한 공격방법은 그 조건에 따라 여러 가지 다른 수준의 차이가 있다. 다음 공격의 네가지 수준은 공격의 강도가 큰 순서로 열거되어 있다.
Ciphertext-only attack
⇒ 적이 암호문을 입수하고 있다.
Known plaintext attack
⇒ 적이 평문 와 대응하는 암호문 를 입수하고 있다.
Chosen Plaintext attack
⇒ 적이 암호기기에 일시적 접근을 할 수 있다. 그러므로 적당한 평문 를 선택할 수 있고 대응하는 암호문 를 만들 수 있다.
Chosen cipher text attack
⇒ 적이 복호기기에 일시적 접근을 할 수 있다. 그러므로 적당한 암호문 를 선택할 수 있고 대응하는 평문 를 만들 수 있다.
4. 암호학의 역사
1) 고전 암호학(Classical Cryptography)
컴퓨터가 생기기전 암호알고리즘은 문자를 기반으로 했다. 이러한 알고리즘들은 문자의 치환(substitute) 또는 전위(transposition) 그리고 이들을 합성한 방법들이었다.
현대의 암호 법들은 훨씬 복잡해지긴 했지만, 기본 사상은 똑같다. 바뀐 것은 문자대신 비트를 사용한다는 것이다. 혇대 암호알고리즘중 많은 것들이 치환과 전위를 합성해 놓은 형태들이다.
(1) 치환(substitution)암호방식
평문의 구성요소 순서는 변하지 않고 각 요소자체가 다른 형태의 요소로 대치되는 방법을 말한다.
유명한 Casesar Cipher 는 각각의 문자를 세 번째 오른쪽문자(즉, A는 D로, B는 E로, … , X는 A로, Y는 B로, Z는 C로)로 치환하는 간단한 치환암호다.
(2) 전위(transposition)암호방식
평문의 구성요소 자체를 변화시키지 않고 그 요소들의 위치만 바꾸어 암호문을 만드는 위치교환 방법을 말한다.
독일의 ADFGVX cipher는 1차 세계대전에 사용한 암호 알고리즘으로 전위 암호 방식이다.
예)
평 문: SECRET KEY
배열상태: 1 2 3
S E C
R E T
K E Y
암호화키: (3 1 2)
암 호 문: CSETREYKE
2) 현대암호학
현대 암호 알고리즘은 크게 공개키 방식과 비밀키 방식으로 나누어 진다.
비밀키 방식은 암호문을 전달하기 전에 먼저 안전한 통로를 사용하여 비밀키를 전달해야 하는 약점이 있다. 그러나 공개키 방식의 경우 키의 전달이 필요없이 암호문을 전달할 수 있다. 그러면 자기만의 개인키를 사용하여 암호문을 해독할 수 있다. 이런 공개키계의 생각은 1976년에 처음 발표된 후 1977년에 처음으로 RSA암호계가 실현되었다. 이후에 여러 공개키 암호계가 수학적 안전성을 기반으로 발표되었다.
일반적으로 많이 사용되는 알고리즘은 다음과 같다.
(1) DES(The Data Encryption Standard)는 IBM에서 LUCIFER를 수정하여 개발한 비밀키 알고리즘이다. DES는 길이 64인 비트문자열 암호문을 만들기 위하여, 길이 56비트문자열인 적당한 키를 사용하여 길이 64인 평문비트문자열을 암호화한다. DES에서 수행되는 유일한 산술은 비트문자열의 배타적 or이기 때문에 하드웨어적으로 또는 소프트웨어적으로 매우 효율적으로 실행할 수 있다. 하지만 키공간의 크기가 256 으로 너무 작아 전수조사(exhaustive search)로 공격할 수 있다.
(2) RSA(Rivest, Shamir, Adleman)는 1978년 MIT에서 개발된 공개키 알고리즘이다. 이 알고리즘은 큰 소수가 소인수분해하기 어렵다는 수학적 사실에 기반을 두고 있다. 주로 암호화와 전자서명에 사용된다.
(3)DSA(Digital Signature Algorithm)는 공개키 알고리즘으로 전자서명에만 사용된다.
5. 전자서명(digital signatures)
전자서명은 전자적 형태로 저장된 메시지를 서명하는 방법이다. 서명된 메시지는 공개된 증명알고리즘을 사용하여 확인할 수 있으며 따라서 어떠한 사람도 전자서명을 확인할 수 있다. 안전한 서명기법의 사용은 날조가능성을 예방할 수 있다.
전자서명은 서명알고리즘(a signing algorithm)과 증명 알고리즘(a verification algorithm)으로 구성된다. 송신자는 비밀의 서명 알고리즘을 사용하여 메시지 를 사인할 수 있다. 그 결과로 생기는 서명 는 공개된 증명알고리즘 를 사용하여 증명할 수 있다. DSS(The Digital Signature Standard, DSS)는 엘가말 서명기법의 변형으로 1994년에 표준으로 채택되었다.
6. 키 분배 프로토콜
비밀 키 암호시스템에서는 사용자가 X 명일 때, X 개의 키를 분배해 놓아야 한다. 이러한 많은 키들은 관리는 키의 노출을 쉽게 한다. 이를 극복하기 위해 공개키 암호시스템에서는 각 사용자가 자신의 개인 키를 가지며, 보내려는 메시지는 수신자의 공개키로 암호화하여 보내고, 받은 메시지는 자신의 개인키로 복호화 하면 된다.
그러나 공개키 알고리즘은 일반적으로 비밀 키 알고리즘에 비해 훨씬 느리다. 따라서 실제 사용에 있어서는 송신자는 자료의 암호화는 비밀 키 암호알고리즘을 사용하여 하고, 이 비밀키는 다시 수신자의 공개키로 암호화 하여 암호문과, 암호화된 비밀 키를 보낸다. 그러면 수신자는 자신의 개인 키를 사용하여 비밀 키를 복호화 하고, 이 비밀 키를 사용하여 암호문을 복호화 한다.
공개키 암호 시스템에서 각 사용자는 다른 사용자의 공개 키들을 관리해야 하는데, 네트웍에 등록된 모든 사용자에 대한 관리가 이루어져야 하기 때문에 현실적으로 힘들다. 이를 위해 모든 키들을 관리해주는 키 분배센터(Key Distribution Center)라는 서버가 필요하다. 키 분배센터는 모든 사용자들의 키를 관리한다. 통신하려는 사용자들이 키를 요청하면 키 분배 센터는 키를 암호화 하여 요청한 사용자들에게 나누어 주게 된다. 키 분배센터는 전체 보안체제에 큰 영향을 미치기 때문에 안전성을 보장 받아야 한다.
댓글 없음:
댓글 쓰기
국정원의 댓글 공작을 지탄합니다.