🔑 암호분석
- 우리가 사용하는 암호가 얼마나 취약한지 측정하기 위해서 암호 분석을 해야한다.
🔑 암호분석 공격의 종류
∎ Ciphertext-only (암호문 단독 공격)
⦁ 단지 암호문과 알고리즘을 알고 복호화하는 공격
⦁ 전수조사 공격 : 가능한 모든 암호키를 사용해본다.
⦁ 통계적인 공격 : 평문의 특징을 찾아 해독한다.
⦁ 패턴 공격 : 평문의 특징은 아니지만 어떤 패턴을 보일 수 있다. 이것을 공격한다.
∎ Known-Plaintext Attack (알려진 평문 공격)
이미 공개된 과거의 평문/암호문 쌍을 이용하여 연관성을 이용해 공격한다.
∎ Chosen-Plaintext Attack (선택 평문 공격)
공격자가 대상의 컴퓨터에 접속해 평문을 선택하고 그에 대응하는 암호문을 얻는다.
∎ Chosen-Ciphertext Attack (선택 암호문 공격)
공격자가 대상의 컴퓨터에 접속해 암호문을 선택하고 그에 대응하는 평문을 얻는다.
🔑 고전암호의 종류
∎ 대치암호 : 하나의 기호를 다른 기호로 변경하여 암호문 생성
- 단일 문자 암호 :
하나의 문자는 항상 같은 어떠한 문자로 대치된다.
키 공간이 작기 때문에 전수조사 공격에 취약하다.- 덧셈 암호 = 시저 암호 = 이동 암호 :
- 암호화 ➜ 평문의 문자에 키를 더해 26으로 나눈 나머지의 문자로 대치한다.
- 복호화 ➜ 암호문의 문자에 키를 빼고 26으로 나눈 나머지의 문자를 반환한다.
- 암호화와 복호화가 역함수 관계 - 곱셈 암호 :
- 평문의 문자에 키를 곱해 26으로 나눈 나머지의 문자로 대치한다.
- 키는 1,3,5,7,9,11,15,17,19,21,23,25 중에 이루어져야 한다.
- 암호화와 복호화가 역함수 관계이다. - 아핀 암호 :
- 곱셈과 덧셈을 모두 사용하여 암호화 하고 키도 2개이다.
- 암호화 : 평문의 문자에 곱셈 키를 곱하고 덧셈키를 더해 26으로 나눈 나머지를 구한다. 그리고 그 수에 대응하는 문자를 반환한다.
- 복호화 : 암호문의 문자에 덧셈키를 빼고 곱셈 키로 나눈 수에 26으로 나눈 나머지를 구한다. 그리고 그 수에 대응하는 문자를 반환한다.
- 덧셈 암호 = 시저 암호 = 이동 암호 :
- 다중 문자 암호 :
하나의 문자는 여러가지 문자로 암호화 될 수 있다.
일대다 대응이 이루어진다.
해당 문자의 빈도수를 감출 수 있는 장점이 있다.- 자동키 암호 :
- 키수열을 생성한다.(초기 키값, 첫번째 평문자, 두번째 평문자, ...)로 이루어져 있다.
- 평문과 키수열을 각각 더하고 대응되는 문자로 반환한다. - 플레페어 암호 :
- 키를 5X5 행렬로 그린다.
- 평문을 두글자씩 자르고 만약 같은 문자가 연속된다면 중간에 가짜 문자를 삽입한다.
- 총 문자 개수가 홀수가 되면 맨 뒤에 가짜문자를 삽입한다.
- 짝이 된 두 글자를 키 행렬에서 찾고 같은 행에 있으면 각각의 오른쪽 문자를 반환한다.
- 같은 열에 있으면 각각의 아래 문자를 반환한다.
- 그렇지 않으면 두 글자의 행열이 만나는 곳의 문자를 반환한다. - Vigenere 암호 :
- 주어진 키수열을 반복하여 키수열을 만든다.
- 평문과 키수열을 더한다.
- 자동키 암호 :
∎ 전치암호 : 대치는 이루어지지 않고 위치만 바뀌는 암호기법
- 키가 없는 전치암호 :
- rail fence :
ABCDEFGHI 라는 평문을 암호화할 경우 두 열로 나누어 지그재그로 적어준 후, 첫번째부터 순서대로 읽는다.
암호화한 결과, ACEGIBDFH가 된다.
- rail fence :
- 키가 있는 전치암호 :
- 키를 주어진 블록의 크기로 블록을 나누어준 후, 키 표를 가지고 위치를 바꾸어준다.
- 두 가지를 결합! :
-
- 평문을 행렬로 재배열한다 (키가 없이 전치)
- 키 박스를 가지고 열을 기준으로 섞는다. (키를 사용)
- 열 순서대로 읽어 암호문을 만든다 (키가 없이 전치)
- 키 박스는 암호화, 복호화에서 2개의 키 역할을 하게 된다.
-
∎ 전치암호 공격
- 전수조사 공격 : 메시지의 길이가 20이면 열의 개수는 (1,2,4,5,10,20) 중 하나가 된다. 첫번째와 마지막열은 의미가 없기 때문에 나머지 숫자를 가지고 행렬을 만들어 분석해볼 수 있다.
∎ 이중 전치암호
- 전치암호의 과정을 두번 거쳐 패턴을 없앤다.