백인감자
[컴퓨터보안/암호학] 고전암호기법 종류 본문
Shift Cipher(Ceasar cipher)
Julius Caesar’s cryptosystem 이라서 caesar cipher 라고도 불린다.
key 값에 맞게 알파벳의 위치를 이동시켜 암호화 시키는 방식이다.
ex. key= 3 이면 a ->D , b->E, ... 와 같은 방식으로 된다.
*일반적으로 plaintext(평문) 는 소문자로 표기되고 ciphertext(암호문) 는 대문자로 표기된다.
plaintext 가 대문자로 구성되어있다면 아래와 같이 하면 된다. (65는 'A' 의 아스키코드이다.)
Enc: y=65 + (x -65 +κ) (mod 26)
Dec: x=65 + (y -65 -κ) (mod 26)
plaintext 가 소문자로 구성되어있다면 아래와 같이 하면 된다.(97은 'a' 의 아스키코드이다.)
Enc: y=65 + (x -97 +κ) (mod 26)
Dec: x=65 + (y -97 -κ) (mod 26)
ciphertext 는 대문자로 표기되기때문에 65를 더하는 것이다.
암호공격 종류
1. Ciphertext only - 공격자에게는 가장 불리한 방식. ciphertext 만을 통해서 key나 plaintext 를 찾아내는 방식이다.
ex. Ciphertext : ARLJEKN
Plaintext : ???????
2. Known plaintext - ciphertext 와 그에 해당하는 일부 plaintext 를 통해서 key 와 전체 plaintext 를 찾아내는 방식이다.
이메일을 보낼 때의 양식 등을 통해서 일부 plaintext 를 얻을 수 있다.
ex. Ciphertext : ARLJEKN
Plaintext : ??p????
3. Chosen plaintext - plaintext 를 선택하면 그에 해당하는 ciphertext 를 얻을 수 있는 상황에서의 공격방식이다.
ex. hello 라는 plaintext 를 암호머신에 넣은 결과가 zxnna 이라 하면 송/수신 자 가 주고받는 암호화 된 메시지에 zxnna 가 발견되었다면
hello 라는 메시지를 전달했다는 것을 알 수 있다.
4. Chosen ciphertext - ciphertext 를 선택하면 그에 해당하는 plaintext 를 얻을 수 있는 상황에서의 공격방식이다. 가장 강력하다.
3번의 예제와 반대라고 생각하면 된다. 송수신자가 주고받은 암호화 된 메시지에 zxnna 가 있는데 이것을 복호화 시키면 hello 가 나왔다.
강력함 순으로 나타내면 4-3-2-1 이다.
Monoalphabetic Substitution Ciphers(단일 대치 암호)
알파벳 하나를 다른 알파벳으로 치환하는 것
단점: key space 가 매우 크다 . (26!)
key space 가 크다고 안전도가 증가하는 것은 아니다. 영어에서 알파벳 빈도 수가 균등한 것이 아니기 때문이다.
빈도는 대략 아래 사진과 같다.
아래 사진은 특정 ciphertext 에서의 알파벳 빈도 수이다.
결과적으로 W라는 문자는 e 가 암호화 된 문자라는 것을 유추할 수 있기 때문에 안전도가 높다고 볼 순 없다. B -> t , R->a 등등으로 유추될 것이다.
Multiple-Letter Encryption(Playfair cipher)
넣어주면 된다.
한 번에 두개의 문자씩 암호화를 시켜준다.
예를 들어 1행에 있는 A, R 두 문자를 암호화시킬 때는 행을 좌측으로 한 칸씩 이동시킨다 생각하면 된다. 즉 AR --> RM 으로 암호화 된다.
같은 열에 있는 문자들의 경우 1열의 M, U 이면 위로 한칸씩 이동한다 생각하면 된다. 즉 MU --> CM 이 된다.
서로 다른 행, 열 에 존재하는 두 개의 문자 경우 H 와 S 라 하면 두 문자를 이어주는 사각형을 구성하는 같은 행의 문자들로 암호화된다.
H ,B, S, P 네 개의 문자가 사각형을 이루기 때문에 HS-->BP 가 되고 E 와 A 의 경우 IM 이나 JM 이 된다.(I/J 이므로).
특징 : 같은 문자(M) 이 있다 할지라도 행이 같은 문자와 암호화는지 열이 같은 문자와 암호화하는지, 행 열이 다른 문자와 함께 암호화 하느냐에 따라서 암호화 되는 문자가 달라진다.
Polyalphabetic cipher(Vigenere cipher)
vignere cipher(비즈네르 암호) : keyword 를 반복적으로 사용하여 암호화한다.
행은 key 를 의미하고 열은 plaintext 를 의미한다. w라는 pliantext 를 d 라는 key 로 암호화 하면 Z 라는 ciphertext 가 된다.
문자들의 위치를 바꿔서 암호화 하는 기법이다.
'컴퓨터보안' 카테고리의 다른 글
[컴퓨터보안] X.509 인증서 (0) | 2017.06.08 |
---|---|
[컴퓨터보안] MAC_Hash (0) | 2017.05.23 |
[컴퓨터보안]Key management & Other PKC (0) | 2017.04.26 |
Sage 이용한 Euclidean 알고리즘 (0) | 2017.03.09 |
Sage 환경구축 for Windows (0) | 2017.03.06 |