-
Crypto의 기본가정, 몇몇 알고리즘보안/컴퓨터보안 2019. 9. 14. 18:07
Symmetric Encryption(대칭형 암호)의 구성 요소
Symmetric Encryption : 암호화할때 키와 복호화할때 키가 같은 암호화 방식
Crypto의 기본 가정
- 시스템이 공개자에게 공개되어 있다.
- 키는 비공개이다.
- 알고리즘이 공개되어있다.
=>Kerckhoff's Principle
기본가정의 이유
알고리즘의 비공개는 영원할수 없다. 그렇기때문에 사전에 약점이 발견되는것이 낫다.
암호의 알고리즘은 일부러 공개하면 약점이 발견될수 있다. 그래서 보완할수 있다.
어차피 알고리즘을 알더라도 키를 모르면 복호화 할수 없다. 그렇기때문에 키와 알고리즘은 분리되어야 한다.
Simple substitution (key: 3 => Caesar's cipher)
알고리즘 : shift
키(shift를 몇번했는지) : n=3
Cipher text = VRRQJMDPP
Plain text = soongjamm
not-so-simple substitution
3번이 아닌, n(1~25)번 shift하는 방법. key=n.
Cryptanalysis의 방법 1:Try them all.
A simple substitution이 사용되고 있을때(n번 shift), 키가 26개로 한정되어 있으므로 모든 키를 시도해본다.
Exhaustive key search 혹은 brute force attack 라고 부른다.
Least-Simple Simple Substitution
Simple substitution은 꼭 shift가 될 필요 없이, 아무 알파벳을 치환해서 사용할수 있다.
이럴 경우 2^88개의 키가 나올수 있다. 그리고 이 경우 Ciphertext를 외우는 수밖에 없다.
Cryptanalysis의 방법 2:Be clever.
shift방식이 아닌 simple substituion에서 2^88개의 키가 나오는데 모두 시도해볼수는 없다.
그래서 자주 사용되는 알파벳 빈도 통계를 활용한다.
PBFPVYFBQXZTYFPBFEQJHDXXQVAPTPQJKTOYQWIPBVWLXTOXBTFXQWAXBVCXQWAXFQJVWL
EQNTOZQGGQLFXQWAKVWLXQWAEBIPBFXFQVXGTVJVWLBTPQWAEBFPBFHCVLXBQUFEV
WLXGDPEQVPQGVPPBFTIXPFHXZHVFAGFOTHFEFBQUFTDHZBQPOTHXTYFTODXQHFTDPTO
GHFQPBQWAQJJTODXQHFOQPWTBDHHIXQVAPBFZQHCFWPFHPBFIPBQWKFABVYYDZBOT
HPBQPQJTQOTOGHFQAPBFEQJHDXXQVAVXEBQPEFZBVFOJIWFFACFCCFHQWAUVWFLQHG
FXVAFXQHFUFHILTTAVWAFFAWTEVOITDHFHFQAITIXPFHXAFQHEFZQWGFLVWPTOFFA 를 아래 통계를 이용해서 분석해라..?Vigener cipher
Simple substituion에서 shift방식은 너무 쉽고, 규칙이 없는 방식은 외우기가 어렵다. 그래서 나온 방법이다.
글자마다 시프팅하는 수가 달라지고, 메세지에 키를 더한다.
알파벳을 숫자로 놓고 보았을때,
C=3, W=23이므로 23+3 = 26(Z) / R=18, H=8이므로 8+18=26(Z)
Double transposition
행렬에 메세지를 집어넣고 행렬의 순서를 바꾼다.
키는 바뀐 행렬의 순서가 된다.
다음 포스트에서 계속 (One-time Pad)