반응형
2) Multiplicative cipher
C = (P*k) mod 26
k = 5
P = 2
(2*5)=10
10 mod 26 =10 x= C
P = (C*k^-1(곱셈역)) mod 26
k가 될 수 있는 후보 : 곱셈역이 존재하는 k
Z_26 ⊂ {0,1,...,25}
0은 곱셈역이 존재 할 수 없으므로,
Z^*_26 = {1,3,5,7,9,11,15,17,19,21,23,25}
3) Affine cipher
C = (P*k₁ + k₂) mod 26
곱셈, 덧셈 동시 이용
(k1, k2)
P = ( (C-k₂) * k^-1₁) mod 26
mono alphabetic
2. Polyalphabetic cipher
하나의 문자가 일대다 관계로 변환될 수 있어서 monoalphabetic보다 해킹이 어렵다.
1) autokey cipher
ex)
P = attack is chipher
k = 12
a | t | t | a | c | k | i | s | ... |
0 | 19 | 19 | 0 | 2 | 10 | ... | ||
12 | 0 | 19 | 19 | 0 | 2 | 10 | ... | |
12 | 19 | 12 | ... | |||||
M | T | M | T | C | M | ... |
P = (P1 P2 P3 ...)
k = (k P1 P2 P3 ...)
= (k1 k2 k3 ...)
C = (c1, c2 ...)
Cn = (Pn + kn) mod 26
Pn = (Cn - kn) mod 26
2) Playfair Cipher
Playfair : 사람
핵심 key를 정하는 법
L | G | D | B | A |
Q | M | H | E | C |
U | R | N | I (or J) | F |
X | V | S | O | K |
Z | Y | W | T | P |
J가 빠진 25개의 문자가 random하게 섞여 있음
이 표 자체가 k (키)가 된다.
J는 I로 대체할 수 있다.
가령 juice는 암호화 후 복호화시에 iuice로 되는데 이는 사람이 문맥을 보고 juice로 변환할 수 있어서 이러한 방식을 채택했다.
이 표는 사전에 수신자와 동일하게 가지고 있다.
암호화를 더 복잡하게 하기위해 표를 여러개 서로 가지고 주기적으로 변경하거나 서로 표를 주기적으로 만드는 방식을 산정할 수 있다.
P : hello
두 문자씩 접근한다.
*두개가 중복되는 문자는 garbage 데이터로 취급하여 사전에 정의 한 문자로 치환
P : hello -> helxo
he
①두 문자가 같은 row에 있을때
각 문자들의 다음 row 칸 문자로 치환
EC
lx
②두 문자가 같은 column에 있음
각 문자들의 다음 column칸 문자로 치환
QZ
③기타
상대 칸 column으로 치환
C : ECQZBX
복호화는 같은 방식으로 복호화 하면 된다.
여러 문자를 블록 단위로 취급 하는 것을 블록 사이퍼라 하고 위의 방식은 block cipher의 일종이다.
3) Vigenere Cipher
P = she is listening
key = PASCAL
P- | s | h | e | i | s | l | i | s | t | ... |
key | p | a | s | c | a | l | p | a | s | ... |
C | H | H | W | ... |
C = (P+k)mod 26
4) Hill Cipher
P : code is ready
key가 행렬
9 | 7 | 11 | 13 |
4 | 7 | 5 | 6 |
2 | 21 | 14 | 9 |
3 | 23 | 21 | 8 |
위의 키가 되는 행렬을 가지고 암호화를 진행한다.
n = 4
P의 행렬
2(c) | 14(o) | 3(d) | 4(e) |
8(i) | 18 | 17 | 4 |
0 | 3 | 24 | 25 |
P*k = C
C의 행렬
14(O) | 7(H) | 10(K) | 13(N) |
8 | 7 | 6 | 11 |
11 | 8 | 18 | 18 |
* 항상 주어진 연산 후에 mod26을 한다
(영어문장으로 하기때문에 mod 26을 사용)
행렬곱 특성상 P의 row가 C의 원소를 구할때 4개씩 사용된다..
block size : 4
block 수: 3
P = C*K^-1
K의 역?
K*K^-1 = I
결국, K는 역행렬이 존재하는 행렬만 가능
반응형
'Information Security Theory' 카테고리의 다른 글
4. Data Encryption Standard (DES) (1) (0) | 2019.03.27 |
---|---|
3. Traditional symmetric key ciphers (3) (0) | 2019.03.26 |
3. Traditional symmetric key ciphers (1) (0) | 2019.03.20 |
2. Math of crpytography (3) (0) | 2019.03.20 |
2. Math of cryptography (2) (0) | 2019.03.20 |