암호기법의 분류
치환 암호와 전치 암호
- 치환 암호
- 비트, 문자 또는 문자의 블록을 다른 비트, 문자 또는 블록으로 대체
- 평문의 문자를 다른 문자로
교환하는 규칙
(교환 규칙은 일대일 대응이 아니어도 상관 x)
- 전치 암호
- 비트, 문자 또는 블록이 원래의 의미를 감추도록 재배열
- 문자 집합 내부에서
자리를 바꾸는 규칙
(평문에 사용된 문자와 암호문에 사용된 문자가 일대일 대응 규칙을 가짐)
블록 암호와 스트림 암호
- 블록 암호
- 어느 특정 비트 수의 집합을 한 번에 처리하는 암호 알고리즘을 총칭
- 평문을 일정한 크기의 블록으로 잘라낸 후 암호화 알고리즘 적용(블록의 크기는 8비트 or 16비트에 비례)
- 스트림 암호와 다르게 Round 사용, 반복적으로 암호화 과정을 수행해 강도를 높임
- DES, AES, SEED, RC5 등
- 스트림 암호
- 한 번에 1비트 혹은 1바이트의 데이터 흐름(스트림)을 순차적으로 처리해가는 암호 알고리즘을 총칭
- 평문과 키 스트림을 XOR하여 생성
- 군사 및 외교용으로 널리 사용
주요 암호기술
- 대칭키 암호와 비대칭키 암호
- 대칭키 암호: 암호화할 때 사용하는 키와 복호화할 때 사용하는 키가 동일
- 비대칭키: 암호화할 때 사용하는 키와 복호화할 때 사용하는 키가 서로 다름
- 일방향 해시함수
- 해시값은 일방향 해시함수를 사용해 계산한 값
- 일방향 해시함수를 통해 확인할 수 있는 것은 무결성
- 메시지 인증코드
- 메시지가 생각했던 통신 상대로부터 온 것임을 확인하기 위함
- 무결성과 인증을 제공
- 전자서명
암호 분석(암호 해독)
개요
케르히호프의 원리
- 암호시스템의 안전성은 암호 알고리즘의 비밀을 지키는데 의존되어서는 안되고, 키의 비밀을 지키는데 의존되어야 한다는 원리(암호 해독자가 현재 사용되고 있는 암호 알고리즘을 알고있다고 전제)
암호 분석의 종류
- 암호문 단독 공격(COA)
- 도청자가 어떤 암호문을 얻어 대응되는 평문과 키를 찾는 것(도청자는 알고리즘을 알고 있고, 암호문을 가로챌 수 있다고 가정)
- 공격자는 암호문만 필요하므로 가장 쉽게 적용될 수 있는 공격
- 기지 평문 공격(KPA)
- 공격자는 해독하려는 암호문 외에 추가로 여러 개의 평문/암호문 쌍을 얻는다. 평문/암호문 쌍은 공격자에게 미리 주어진다.
- 암호문에 대응하는 일부 평문이 사용가능한 상황에서의 공격
- 선택 평문 공격(CPA)
- KPA와 비슷하지만 공격자에게 주어지는 평문/암호문 쌍을 공격자가 선택하는 공격
- 평문을 선택하면 대응하는 암호문을 얻을 수 있는 상황에서의 공격
- 선택 암호문 공격(CCA)
- 공격자가 어떤 암호문을 선택하고 그에 대응되는 암호문을 얻는다는 점을 제외하면 선택 평문 공격과 유사
- 암호문을 선택하면 대응하는 평문을 얻을 수 있는 상황에서의 공격
대칭키 암호
종류
- DES: 64비트 평문을 64비트 암호문으로 암호화하는 알고리즘(8비트는 오류 검출을 위해 사용)
- AES: 128비트 평문을 128비트 암호문으로 출력하는 알고리즘, non-Feistel 알고리즘에 속함.
- 국제 암호 알고리즘: IDEA, RC5
- 국내 암호 알고리즘: SEED, ARIA, HIGHT, LEA
비대칭키 암호
대칭키 암호를 사용하면 송신자와 수신자 모두가 동일한 키를 가지고 있어야하므로 키 배송 문제가 발생한다 이러한 문제를 해결하기 위한 방법에는 키의 사전 공유, 키 배포센터 활용, Diffie-Hellman 키 교환 그리고 공개키 암호(비대칭키)를 사용하는 것이 있다.
- 공개키 암호에서 암호화키와 복호화키는 서로 밀접한 관계(수학적 관계)를 가지고 있다. 따라서 공개키와 개인키를 각각 별개로 만들 수는 없다.
- 대칭키보다 느리기 때문에 메시지의 크기가 매우 큰 경우에는 대칭키 암호시스템의 역할이 매우 중요
- 비대칭키 암호시스템은 인증이나 전자서명, 대칭키 교환에 유용하게 사용되고 있다.
종류
- RSA: 인수분해 문제 해결의 높은 난이도를 이용한 가장 대표적인 공개키 알고리즘
- Rabin
- ElGamal
- ECC
해시함수와 응용
일방향 해시함수
메시지 인증코드(MAC)
- 무결성을 확인하고 메시지에 대한 인증을 하는 기술
- 송신자와 수신자가 키를 공유할 필요가 있다.(키 배송 문제와 같은 문제가 일어남)
- HMAC: 일방향 해시함수를 이용하여 메시지 인증코드를 구성하는 방법
- MAC에 대한 공격
단순한 MAC는 재전송 공격을 방지할 수 없음
- 순서번호, 타임스탬프, 비표, 시도/응답 등의 방법으로 재전송 공격을 막을 수 있음