고대암호부터 여러 기초적인 암호 시스템에 대해 알아보자
기초 암호 시스템
Simple Substitution Cipher(단일 치환 암호)
암호 알고리즘
알파벳 테이블과 키 테이블을 매칭시켜 평문을 알파벳 하나씩 치환하여 암호화 하는 암호체계이다. 키 테이블을 만드는 방법에 따라 여러가지 암호가 나올 수 있다.
Caesar's Cipher
시프트 연산을 통해 키 테이블을 만드는 방식. 키 테이블의 경우의 수가 26가지 이므로 해독이 쉽다
Atbash Cipher
카이사르의 키 테이블을 역순으로 재정렬하는 방식. 경우의 수가 카이사르 암호와 같아 해독이 쉽다.
Vigenere Cipher
키워드를 통해 비즈네르표에서 기준점을 설정하고 치환해나가는 방식. 단어빈도를 분석하여 키워드의 길이를 찾아내면 해독할 수 있다.
암호 분석
가능한 경우의 수가 너무나도 많기 때문에 빈도를 분석하여 치환하며 해독할 수 있다.
Double Transposition Cipher(이중 전위 암호)
대체와 치환 개념의 조합을 사용하는 알고리즘이다. "ILLBEBACK"의 문장을 암호화 하는 과정은 다음과 같다
|
col1 |
col2 |
col3 |
row1 |
I |
L |
L |
row2 |
B |
E |
B |
row3 |
A |
C |
K |
|
col3 |
col1 |
col2 |
row2 |
B |
B |
E |
row3 |
K |
A |
C |
row1 |
L |
I |
L |
이렇게 바뀐 표의 정보를 행과 열로 나타내면 (2,3,1)과 (3,1,2)가 되며, 이것이 키 값이다.
OTP : One-Time-Pad(일회용 암호)
XOR연산의 특징을 이용하여 평문에 크기가 동일한 키를 XOR연산하여 암호문을 만들어내고, 암호문에 키를 XOR연산하여 평문을 도출해는 방식이다. 암호문에 평문을 XOR연산하면 키 값이 나온다. 암호문이 평문에 대한 정보를 담지 않으며, 키가 임의의 수로 한번만 사용하여 안정성이 있다. 그러나 암호문에 다른 평문을 XOR연산을 하게되면 잘못된 키(Fake key)를 얻을 수 있다. 이러한 잘못된 키를 이용하영 암호문을 해독하면 다른 평문을 받게되는 취약점이 존재한다.
Codebook(코드북 암호)
말 그대로 코드북을 이용하여 암호하는 방식이다. 코드북은 각 단어들을 치환한 코드워드들로 이루어져있다. 짐머맨 전보를 예로들 수 있다.
'Study > crypto' 카테고리의 다른 글
스트림 암호(Stream Cipher) #RC4 (2) | 2018.04.22 |
---|---|
스트림 암호(Stream Cipher) #A5/1 (0) | 2018.04.22 |
암호분석(Crytanalysis) (0) | 2018.04.22 |
암호체계(Crypto System) (0) | 2018.04.21 |
암호(Crypto) (0) | 2018.04.21 |