by CodeJin19
1 min read

Categories

Tags

암호화

  • Crypto

    • Cyptology

      • 암호학
    • Cryptography

      • 암호화
    • Cryptanalysis

      • 복호화
    • Plaintext

      • 평문, 누구나 읽을 수 있는 글
    • Ciphertext

      • 암호문, 누구나 읽을 수 없는 글
    • Cypher

      • 암호화 알고리즘
    • CyptoSystem

      • 암호화 알고리즘
    • Encrypt

      • 암호화

      • 평문과 키, 2가지 데이터를 입력받아 암호문을 출력한다.

    • Decrypt

      • 복호화

      • 암호문과 키, 2가지 데이터를 입력받아 평문을 출력한다.


평문을 암호화하면 암호문이 되며, 암호문을 복호화하면 평문으로 돌아온다. 이 때 사용하는 암호화 알고리즘에서 Key가 매우 중요하며 이 키의 종류에 따라 암호화 방식이 다르다.


Symmetric Key Cryptosystem

대칭키 암호화는 암호화, 복호화에 하나의 키를 사용한다.


Public Key Cryptosystem

공개키 암호화는 암호화에는 공개키를 사용하고, 복호화에는 개인키를 사용한다.


Kerckhoff’s Principle

어떤 보안 회사에서 극비리에 완전히 새로운 암호화 알고리즘을 개발했다고 해보자. 언젠가는 공격자가 이 알고리즘을 알아낼 것이다. 이 암호화 알고리즘의 보안이 전적으로 알고리즘에만 의존한다면, 공격자가 알고리즘을 알아낸 순간, 보안은 무력화될 것이며, 새로운 암호화 알고리즘을 개발해야할 것이다.


따라서, 암호화의 보안성은 알고리즘에 의존하기보다는 암호화에 사용되는 키에 의존해야한다는 것이 케르크호프스의 원리이다.


Simple Substitution

단순 치환 방법은 아주 단순한 암호화 알고리즘으로, 시저가 사용했기 때문에 시저 암호(Ceasar’s Cipher)라고 부르기도 한다. 알파벳들을 적당히 밀어서 치환하는 방법이다. 예를 들어, 3칸을 민다고 가정하면

  • a -> d
  • b -> e
  • c -> f

  • z -> c

암호화가 어렵지 않은만큼 복호화도 어렵지 않다. 특히 알파벳이 26가지 밖에 되지 않기 때문에, 25번만 시도해보면 누구나 복호화를 할 수 있다는 취약점이 있다.


Least-Simple Simple Substitution

평문과 암호문의 알파벳 대응쌍을 섞으면 단순 치환 방법의 취약점을 보완할 수 있다. 예를 들어, 다음처럼 알파벳 순서쌍을 섞을 수 있을 것이다.

  • a -> j
  • b -> i
  • c -> c

  • z -> o

이렇게 순서쌍을 섞으면 전체 경우의 수가 26!로 단시간에 복호화할 수 없을 것이다. 하지만 여전히 알파벳이 1대1 대응을 하기때문에 알파벳의 출현 빈도를 비교, 분석하면 비교적 쉽게 복호화할 수 있다.