- 대칭암호 : 암호화와 복호화 과정에 동일한 키를 사용하는 암호 시스템.
- 대칭 암호는 비밀키와 암호화 알고리즘을 사용하여 평문을 암호문으로 바꾼다. 또한 동일한 키와 복호화 알고리즘을 사용하여 암호문으로부터 평문을 얻는다.
- 암호 알고리즘의 두가지 공격혀애
1. 암호 알고리즘의 특성에 기반을 둔 암호 분석학
2. 모든 가능한 키 값을 사용하는 전사적 공격
- 회전자 기계 : 치환 기법을 사용하는 정교하게 미리 계산된 하드웨어 장치
- 스테가노 그래파 : 어떤 규모가 큰 대상에 비밀 메시지를 숨기는 기법
* 대칭 암호 방식의 구성 요소
- 평문( Plaintext )
- 암호 알고리즘( Encryption algorithm )
- 비밀키( Secret key)
- 암호문( Ciphertext )
- 복호 알고리즘( Decryption algorithm )
* 암호문 Y, 메시지( 평문 ) X, 암호키 K 일때:
* 암호 시스템의 특성
- 평문을 암호문으로 변환하는데 사용되는 동작
- 치환
- 전치
- 사용한 키의 수
- Single key : 대칭키/비밀키 암호, 관용 암호
- Two-key : 비대칭키/공개키 암호
- 평문이 처리되는 방법
- 블록 암호
- 스트림 암호
* 암호 해독 및 전사적 공격
- 암호 해독
암호 알고리즘 본질에 대한 공격
평문-암호문쌍에 대한 지식 등을 활용한 평문 혹은 키 값 추론 공격
- 전사적 공격
특정 암호문에 대해 이해할 수 있는 평문으로 전환될 때까지 모든 키에 대해 시도함
* 절대 안전성 vs 계산상 안전성
- 절대 안전성
해당 암호 기법으로 생성된 암호문을 아무리 많이 사용하더라도 해당 암호문에 평문을 알아낼 수 있는 충분한 정보를 포함하지 않을 경우
One-time pad
- 계산상 안전성
아래 두 가지 조건을 만족할 경우
1. 암호 해독 비용이 암호화된 정보의 가치 초과
2. 암호 해독 시간이 정보의 유효 기간 초과
* 치환 기법
- 치환 기법과 전치는 모든 암호 기술의 기초
- 치환 암호 방식
평문의 문자( 비트열 )를 다른 문자( 비트열 ), 숫자 혹은 심벌로 바꿈
Caesar 암호가 대표적
* Caesar 암호
- 각 알파뱃 문자를 두 문자 건너의 알파뱃 문자로 치환
- 각 문자에 대해 아래와 같은 숫자 배정
- caesar 함호의 암호화 알고리즘은 다음 수식으로 표현 가능
C = E(3,p) = (p + 3)mod 26
- 키 값을 일반화 하면 다음과 같음
C = E(k,p) = (p + k)mod 26 1 ≤ k ≤ 25
- 복호화 알고리즘
p = D(k,C) = (C - k)mod 26
- 암호화 및 복호화 알고리즘을 알고 있다.
- 가능한 키는 25개뿐이다.
- 평문의 언어를 알고 있으며 쉽게 인식 가능 --> 전사적 키 해독 기법에 취약
* 단일 문자 치환 암호 기법
- 각 평문 문자를 임의의 문자로 치환하는 경우
- 총 가능한 키의 수: 26!
* 단일 문자 치환 암호 기법에 대한 공격
- 평문의 특성( 언어의 규칙성 )을 사용한 공격 기법
* Playfair 암호
- 다중문자 치환 암호 기법
- 단일 문자가 아닌 다중 문자를 암호화 함으로써 안전도 높임
- 특정 키워드를 기반으로 하여 5X5 matrix 만듦
- 해당 키워드를 사용하여 matrix를 채우고 해당 키워드를 구성하는 문자가 아닌 다른 문자로 나머지 matrix 공간을 채움
- Ex) 키워드가 MONARCHY 인 경우
* Playfair 암호화 방법
1. 평문을 2개의 알파뱃 묶음으로 나눈다.
2. 묶어진 두개의 알파뱃을 위에 만든 행렬로 치환한다.
- 묶인 두 개의 알파뱃이 같은 행에 있을 경우, 오른쪽으로 한칸씩 shift한다.
- 묶인 두 개의 알파뱃이 사각형을 그릴 경우, 그 사각형을 기준으로 왼쪽과 오른쪽에 있는 알파뱃으로 치환한다.
- 묶인 두 개의 알파뱃이 같은 열에 있을 경우, 아래쪽으로 한칸씩 shift한다.
* Playfair 암호 분석
- 보안수준 : 26 X 26 = 676
- 단일 문자 암호보다 상대적으로 공격하기 어려움
* Hill 암호
- 동작 원리
m개의 평문을 m개의 암호문으로 치환한다.
이때, m개의 선형 방정식에 의해 치환된다.
m = 3인 경우 다음과 같은 선형 방정식을 생각할 수 있다.
이를 matrix로 표현하면 다음과 같다. 즉, C = PK mod 26
* 다중 문자 암호
- 평문에 대해 서로 다른 방식의 단일 문자 치환 기법 사용
- Ex: Vigenere 암호 기법
예 : keyword deceptive
* Vernam 암호
- 암호학적 공격에 안전하기 위해선 평문과 동일한 길이의 키를 가져야 하며, 평문과 통계적 연관성이 없어야 한다.
* One Time Pad 암호
- J.Mauborgne는 random한 key 값을 사용하면서 메시지 길이와 동일한 key를 가정한다.
- One Time Pad는 perfect security를 제공하지만 다음과 같은 문제점을 갖는다.
1. 대용량의 random한 key를 다루기 어렵다.
2. key 분배 및 보호의 문제가 발생한다.
* 전치 기법
* Rail fence 기법
- 평문을 대각선으로 쓰고 열로 읽음
* Row Transposition 기법
- 열 순으로 읽으면서, 열의 순서를 바꿈 ( 열의 순서 : 키 )
'NCS보안3기 > 암호' 카테고리의 다른 글
[Encryption] 해쉬 함수 (0) | 2017.03.28 |
---|---|
[Encryption] 블록암호와 DES (0) | 2017.03.27 |
[Encryption] 컴퓨터 보안과 암호 (0) | 2017.03.27 |