치환 암호(Substitution Cipher) |
문자 매핑에 관한 테이블이 주어지는 암호 방식이다.
입력 문자에 대해 테이블 매핑을 그대로 적용하여 암호화를 진행한다.
복호화는 이 테이블을 거꾸로 적용한 것이다.
테이블을 어떻게 만들어 내느냐에 따라 다양한 값이 만들어진다.
알파벳의 경우 a는 a~z까지 26가지 값을 매핑할 수 있고, b는 a가 매핑된 값을 제외한 25가지, c는 24가지...
그래서 $26!$의 키가 존재하게 된다.
단순하게는 시저 암호(Ceasar Cipher)를 예로 들 수 있다. 키가 단순한 덧셈 형태로 이루어져있어 a의 경우는 +3한 d에 매핑되는 방식이다.
치환 암호는 어떻게 파훼할 수 있을까?
빈도 분석을 사용해서 암호를 깰 수 있다.
시저 암호의 경우 같은 테이블을 이용한다면 한 문자는 언제나 같은 문자에 대응된다.
암호문에서 가장 많이 사용된 문자는 원문에서도 가장 많이 사용되었을 것이다.
알파벳의 경우에는 E가 가장 많이 사용되는 편이므로, 만약 E가 B와 대응되고 암호문에서 B가 가장 많이 사용되었다면 그 알파벳은 원래 E였다고 추측할 수 있다.
비즈네르 암호(Vigener Cipher)는 키 값이 여러 개 주어진다. 다시 말하자면 키워드가 주어진다.
원문이 NICE DAY이고, 키워드가 SUNNY라면
N | I | C | E | D | A | Y |
S | U | N | N | Y | S | U |
F | C | P | R | B | T | S |
이런 식으로 암호화할 수 있다.
빈도 분석을 통한 공격이 가능하지만, 키의 반복주기를 모르고, 원 문자는 다르지만 암호화된 문자가 같은 경우가 있을 수 있어서 쉽지 않다.
로터 머신(Rotor Machine) |
문자를 입력하면 회전판이 돌어가며 매번 다른 키가 적용되는 암호 방식이다.
에니그마(Enigma)가 가장 유명하다. Rotor가 세 개나 다섯 개 정도 사용되었고, 키의 크기가 $2^{18}$ 정도였다.
현대 암호 |
평문: 암호화 되기 전 입력 메시지
암호문: 암호하 된 메시지
키: 암호화, 복호화를 위해 사용되는 정보
기밀성: 허락되지 않은 사용자 또는 객체가 정보의 내용을 알 수 없도록 하는 것.
One Time Pad(OTP) |
평문과 키가 2진수로 나타나면, 각 비트를 XOR 연산하여 암호문을 구한다.
암호문을 키 값으로 XOR하면 복호화할 수 있다.
아주 빠른 암호화가 가능하다는 장점이 있지만, 키의 길이가 최소한 원문과 같아야 한다는 문제가 있다.
암호의 보안성 |
공격자가 암호문만 볼 수 있는 경우(CT only attack)
1.공격자가 암호문으로부터 키 값을 만들지 못하면 안전하다.
평문을 보내는 경우엔 암호화가 되지 않았으므로 키 값을 찾아낼 수 없다. 그렇다고 평문=암호문일 때 이 알고리즘이 안전하다고 이야기하지는 않는다.
2.공격자가 암호문으로부터 원래 평문을 만들어낼 수 없으면 안전하다.
알고리즘이 평문의 반만 암호화했다 하자. 원래 평문은 아니지만 반쪽만 암호화되어 있으므로 안전하다고 볼 수는 없다.
->암호문으로부터 평문에 관련된 어떤 정보도 찾아낼 수 없으면 안전하다고 볼 수 있다.
안정성을 보장하려면 키와 메시지의 길이가 동일해야 한다고 증명되어 있다. 따라서 OTP는 가장 안전한 알고리즘이다.
하지만 키의 길이가 너무 길어 키를 전달하는 것 자체에 어려움이 있다.
Stream Cipher |
OTP에서 사용되는 random key를 pseudorandom(유사난수)으로 배치하는 것이다.
pseudorandom은 비트가 정말 우연히 만들어졌는지, 함수를 통해 만들어졌는지 구별하기 어려운 경우를 말한다.
Stream Cipher는 pseudorandom generator를 정의하고 이 제너레이터를 통해 암호화를 진행한다.
참고
매치업 - 블록체인을 위한 암호학과 보안성
'보안 > 블록체인' 카테고리의 다른 글
비대칭 암호화 (0) | 2020.11.20 |
---|---|
블록체인 암호학 - 블록 암호 (0) | 2020.11.16 |
블록체인 암호학 - 전자 서명 2 (0) | 2020.10.06 |
블록체인 암호학- 전자서명 (0) | 2020.09.22 |
블록체인 암호학 - 작업 증명(PoW), 양자 안정성, 머클 해시 트리 (0) | 2020.09.15 |