티스토리 뷰

Chapter 2 - Classical Encryption Techniques

 

   단원에서 배울 내용은 지금 현재 사용되는 암호학은 아니다. (과거에 사용되었고 현재는 다 풀려있기 때문)


- 암호학은 소설과 같은 이야기가 많이 등장한다.(에피소드)
- was the only type of encryption prior to the invention of public-key encryption in the 1970's
  1970년 이전의 암호들은 Symmetric Encryption이라 분류하기 모호하지만 19070이후에 분류하기 시작했다.

Basic Terminology

 모든 과목에서 처음배울때는 용어를 먼저 익숙하게 해야한다. 그래서 암호학을 처음 배울때 용어를 반드시 알고 가야한다.

 - plaintext : original message (암호화 되지 않은 원문)
 - ciphertext : coded message (암호화된 code)
 - key : info usde in cipher known only to sender/receiver (cipher를 풀기위한 key)
 - encrypt(encipher) : converting plaintext to ciphertext (암호화 하는 과정/동사형)
 - decrypt(decipher) : recovering plaintext from ciphertext (복호화 하는 과정/동사형)
 - cryptography : study of encryption principles/methods
 - cryptanalysis(codebreaking) : study of principles/methods of deciphering   
                                             ciphertext without knowing key
 - cryptology : field of both cryptography and cryptanalysis

 

 기본이니 만큼 용어들은 외우고 가야한다.
여기서 특이한것은cryptology

 cryptology = cryptography + cryptanalysis

이라하는데 보통은 암호학 하면 cryptography 라 부른다. 좀더 테크닉적인 말은 위에 말한 cryptology 가 맞는표현이다.

Symmetric Cipher Model

 기본적인 cipher 모델이다. 암호화 하는쪽은 암호화 알고리즘과 키를 이용하여 암호화 한다. receiver는 동일한 키를가지고 복화화 알고리즘을 통해 암호문을 복호화한다.

 Augugste Kerckhoffs in the late 19th century 는 이렇게 말한다. 알고리즘을 암호화 하는것은 의미가 없다고 한다.
왜냐하면 문을 예로들면 문에 열쇠장치를 만들때 잠금장치의 설계를 비밀로 한다고해서 얻는 효과보다 오히려 key를 암호화 하여 얻는 효과가 훨신 크기 때문에 굳이 알고리즘(열쇠 잠그장치)를 암호화하는것에 중점을 두지 않는것이 낫다.

- 요즘 암호학에서도 Encryption과 decryption은 공개적으로 배포(표준으로)한다. 중요한것은 key이다.

Attack Scenarios

 암호화된  문서를 푸는 방법은 무엇일까? 크게 두가지로 나눌수 있다

- Cryptanalytic attacks
    1)Ciphertext-only attack
    2)Known-plaintext attack (모든것은 아니지만 몇개의 plaintext를 알고 있는 경우)
    3)Chosen-plaintext attack
    4)Chosen-ciphertext attack

- Brute-force attacks : 예를들어 0 ~ 9999 자리인 암호를 0부터 9999까지 모두 입력해
                                
는 방식

 

Classical Substitution Ciphers

 기본적으로 ciphertext를 가지고 plaintext를 찾는 방법인데 단순하게 맵핑하여 찾는 방법이다.
Caesar Cipher 방법은 모두가 한번쯤은 들어봤들법한 방법인데 영어 알파벳을 일정한 숫자만큼(+3)Shift하여 암호화 하는 방법이다. 여기서는 Key가없이 무조건 3번 Shift한것을 Caesar Cipher 라 한다.

 
여기에 Key를 추가하면 +,-3대신 변수인 k를 넣으면 key가 된다. k의 변수가 2^88정도 되면 풀수가 없을 정도로 방대해진다 하지만
1:1방식으로 암호화 한것을 Monoalphabetic Ciphers라 하는데 이방법들은 현재 모두 암호 풀이법이 다 나와있는 상태이다.
영어에서 소설한페이지에 사용된 알파벳은 e가 제일 많으며 t 가 그다음 많이 사용되었다. 이런식으로 좁혀나가다 보면 암호는 언젠가는 풀린다.그래서 좀더 생각한것이 Polyalphabetic Ciphers 인데 이것또한 풀수있는 방법이 존재한다.
 맨처음 반복되는 암호문의 부분을 찾는다 그다음 그것을 이용해 key의 길이를 유추해 낸다(2의 배수 혹은 3의 배수) 그후 key의 글자수를 가정한후 맨앞글자를 모두 찾아네 Monoalphabetic풀이법을 적용한다. 이런식으로 한글자 한글자 모두 하다보면 암호는 풀리게 되어있다.

 

 

 

 

 - 2014/3/11 수업내용 - 복습

- 출처 : Cryptography & Network Security principles and Pracrice 5th - William Stallings

Comments