본문 바로가기

카테고리 없음

암호학 기초

반응형
참조 : http://www.hackerschool.org/HS_Boards/data/Lib_encrypt/crypt.txt

암호학 :
일반적인 정보를 평문(plaintext) 이라고 하고, 이 평문의 내용을 숨기는 방법을 암호화(encryption) 라고 한다.
암호화된 평문을 암호문(ciphertext)아 하며, 암호문을 다시 평문으로 바꾸는 방법을 복호화 라고 한다.

공개키 알고리즘과 비밀 키 알고리즘

암호알고리즘은 키를 기반으로 두가지로 나누어 지는데, 하나는 대칭 키(symmetric-key) 알고리즘 이고,
다른 하나는 공개키(public-key) 알고리즘 이다.
대칭 키 알고리즘은 암호화 키와 복호화 키가 같은 것을 말한다. 이 키는 노출되면 안되기 때문에 비밀 키(secret-key)
알고리즘 이라고도 한다.
공개키 알고리즘은 암호화와 복호화에 서로 다른 키를 사용하는 알고리즘이다. 제 3자는 암호화 키를 알고있더라도 암호문을
복호화 할 수 없다. 복호화 키를 가진 사람만이 암호문을 복호화 할 수 있다. 이러한 특징 때문에 암호화 키를 공개하고, 복호화 키는 숨긴다.
암호화 키를 공개키(public-key), 복호화 키를 개인키(private-key)라고 한다.

암호해독(cryptanalysis)

암호해독은 키가 없는 상태에서 암호문을 복호화 시키는 방법이다. 암호해독을 위한 시도를 공격법(attack) 이라고 한다.
각 공격의 목적은 사용되는 키를 찾거나 평문을 찾는 것이다.
이러한 공격방법은 그 조건에 따라 여러 가지 다른 수준의 차이가 있다. 다음 공격의 네가지 수준은 공격의 강도가 큰 순서로 열거되어 있다.
Ciphertext-only attack
⇒ 적이 암호문을 입수하고 있다.
Known plaintext attack
⇒ 적이 평문 와 대응하는 암호문 를 입수하고 있다.
Chosen Plaintext attack
⇒ 적이 암호기기에 일시적 접근을 할 수 있다. 그러므로 적당한 평문 를 선택할 수 있고 대응하는 암호문 를 만들 수 있다.
Chosen cipher text attack
⇒ 적이 복호기기에 일시적 접근을 할 수 있다. 그러므로 적당한 암호문 를 선택할 수 있고 대응하는 평문 를 만들 수 있다.

고전 암호학(Classical Cryptography)
암호알고리즘은 문자기반
문자의 치환(substitute) 또는 전위(transposition) , 이들 합성한 방법
 
현대암호학
현대 암호 알고리즘은 크게 공개키 방식과 비밀키 방식으로 나누어 진다.
비밀키 방식은 암호문을 전달하기 전에 먼저 안전한 통로를 사용하여 비밀키를 전달해야 하는 약점이 있다.
그러나 공개키 방식의 경우 키의 전달이 필요없이 암호문을 전달할 수 있다. 그러면 자기만의 개인키를 사용하여 암호문을 해독할 수 있다.
이런 공개키계의 생각은 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)는 공개키 알고리즘으로 전자서명에만 사용된다.

전자서명(digital signatures)
전자서명은 전자적 형태로 저장된 메시지를 서명하는 방법이다. 서명된 메시지는 공개된 증명알고리즘을 사용하여 확인할 수 있으며
따라서 어떠한 사람도 전자서명을 확인할 수 있다. 안전한 서명기법의 사용은 날조가능성을 예방할 수 있다.
전자서명은 서명알고리즘(a signing algorithm)과 증명 알고리즘(a verification algorithm)으로 구성된다. 송신자는 비밀의 서명 알고리즘을
사용하여 메시지 를 사인할 수 있다. 그 결과로 생기는 서명 는 공개된 증명알고리즘 를 사용하여 증명할 수 있다. DSS(The Digital Signature Standard, DSS)는
엘가말 서명기법의 변형으로 1994년에 표준으로 채택되었다.

키 분배 프로토콜
비밀 키 암호시스템에서는 사용자가 X 명일 때, X 개의 키를 분배해 놓아야 한다. 이러한 많은 키들은 관리는 키의 노출을 쉽게 한다.
이를 극복하기 위해 공개키 암호시스템에서는 각 사용자가 자신의 개인 키를 가지며, 보내려는 메시지는 수신자의 공개키로 암호화하여 보내고,
받은 메시지는 자신의 개인키로 복호화 하면 된다.
그러나 공개키 알고리즘은 일반적으로 비밀 키 알고리즘에 비해 훨씬 느리다. 따라서 실제 사용에 있어서는 송신자는 자료의 암호화는 비밀 키
암호알고리즘을 사용하여 하고, 이 비밀키는 다시 수신자의 공개키로 암호화 하여 암호문과, 암호화된 비밀 키를 보낸다. 그러면 수신자는 자신의
개인 키를 사용하여 비밀 키를 복호화 하고, 이 비밀 키를 사용하여 암호문을 복호화 한다.
공개키 암호 시스템에서 각 사용자는 다른 사용자의 공개 키들을 관리해야 하는데, 네트웍에 등록된 모든 사용자에 대한 관리가 이루어져야
하기 때문에 현실적으로 힘들다. 이를 위해 모든 키들을 관리해주는 키 분배센터(Key Distribution Center)라는 서버가 필요하다. 키 분배센터는
모든 사용자들의 키를 관리한다. 통신하려는 사용자들이 키를 요청하면 키 분배 센터는 키를 암호화 하여 요청한 사용자들에게 나누어 주게 된다.
키 분배센터는 전체 보안체제에 큰 영향을 미치기 때문에 안전성을 보장 받아야 한다.

반응형