1. 환자암호 (Substitution Cipher)
1.1 Playfair 암호
Wheatstone 과 Playfair에 의해 개발됨
두 글자씩 끊어서 암호화하는 방식
cf ) 만약 홀수이면 맨 마지막에 아무 영단어를 집어넣는다.
cf ) 만약 같은 글자가 반복되어 나왔다면 그 글자 사이에 아무 영단어를 집어넣는다.
5*5의 25칸의 행렬을 만든 뒤 키를 순서대로 넣는다.
만약 Key = float
F |
L |
O |
A |
T |
B |
C |
D |
E |
G |
H |
I |
K |
M |
N |
P |
Q |
R |
S |
U |
V |
W |
X |
Y |
Z |
키 값을 맨 앞에 입력해주고 A ~ Z 순서대로 넣어준다. 하지만 영단어는 26글자 이므로 I / J는 같은 곳에 넣는다.
그리고 다음과 같은 방식으로 암호화 하면 된다.
1. 두 글자가 같은 가로줄에 있다.
-> 가로 다음글자 (만약 BC이라면 CD)
2. 두 글자가 같은 세로줄에 있다.
-> 세로 다음글자(만약 DR이라면 KX)
3. 두 글자가 모두 다른줄에 있다.
-> 사각형을 만들고 그 꼭짓점(만약 FR이라면 OP)
2. 전치암호 (Transposition Cipher)
전치란?
평문의 글자 위치를 바꾼것 (재배치)
종류
-Scytale 암호 - 가장 오래된 암호로써 종이를 봉에감고 글씨를 세로로 썼다.
- 단순전치 암호
- Nihilist 암호
1.1 단순 전치 암호
일정간격으로 나눈 문자를 키의 재배열 순서에 따라 재배치한것.
KEY = 351642
M = INFORM
12345 6
INFORM
35164 2
FRIMON
복호화할때는 키를 유추하여 계산해야한다.
123456
351642
361524
이렇게 복호화 키가 유추된다.
그리고 복호화해보자
12345 6
FRIMON
36152 4
INFORM
1.2 Nihlist 암호
- 암호의 강도를 높이기 위해 사용된다.
- 행과 열에 대해 모두 전치하는 것을 이야기한다.
K = CAN
M = Your Books
우선 키를 행과 열에 적어본다. 그리고 알파벳 순으로 표에 순서를 지정해본다
그리고 세글자씩 나누어 행단위로 넣는다.
you rbo oks
|
C(2) |
A(1) |
N(3) |
C(2) |
o |
y |
u |
A(1) |
b |
r |
o |
N(3) |
k |
o |
s |
그 후 행의 순서에 따라 값을 꺼내온다.
bro oru kos
복호화의 순서는 반대로 진행하면 된다.
3. 적 암호(Product Cipher)
암호의 강도를 높이기 위하여 여러 암호를 섞어 사용된다.
- ADFGVX
- Feistel
- DES( Data Encryption Standard)
- Rijadael
- SEED