암호학
암호학이란 평문을 다른 사람이 알아볼 수 없는 형태의 암호문으로 특정한 비밀키를 알고 있는 사람만이 다시 평문으로 복원시킬 수 있도록 하는 암호기술과 제 3자가 해독하는 방법을 분석하는 암호해독에 관하여 연구하는 학문이다.
송신자와 수신자는 암호를 이용하여 기밀성을 유지한다.
암호를 사용할 때 비밀 암호 알고리즘은 사용하지 않는 것이 좋다. 암호 알고리즘 자체를 비밀로 해서 기밀성을 유지하려고 하는 암호 시스템은 암호 알고리즘의 구조가 폭로되어 버리면 끝난다. 이렇게 알고리즘을 비밀로 해서 보안을 유지하려는 행위는 숨기는 것에 의한 보안(security by obscurity)이라 부르고 위험한 것으로 간주되고 있다.
암호기법
1) 치환 암호 (Substitution Cipher)
비트, 문자 또는 문자의 블록을 다른 비트, 문자 또는 블록으로 대체한다.
평문의 문자를 다른 문자로 교환하는 규칙이다. 이때 일대일 대응이 아니어도 상관없다. (앞으로 암호 기법을 자세하게 알아가려면 이해해두는 것이 좋다)
2) 전치 암호 (Transposition Cipher)
원문 자체를 이리저리 움직이게 해서 원래 의미를 감추도록 재배열한다.
문자 집합 내부에서 자리를 바꾸는 규칙이고, 일대일 대응 규칙을 갖는다.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
1) 블록 암호 (Block Cipher)
블록 암호는 평문을 일정한 크기의 블록으로 잘라 한 번에 처리하는 암호 알고리즘을 총칭한다. 블록의 크기는 8비트(ASCII), 16비트(Unicode)에 비례한다.
Round를 사용하여 반복적으로 암호화 과정을 통해 암호화 강도를 높인다.
2) 스트림 암호(Stream Cipher)
한 번에 1비트 혹은 1바이트의 데이터 흐름(stream)을 순차적으로 처리해가는 암호 알고리즘을 총칭한다.
암호화 방식은 평문과 키 스트림을 XOR하여 생성한다.
블록 암호는 블록 단위로 처리하므로 내부 상태를 가질 필요가 없지만, 스트림 암호는 데이터의 흐름을 순차적으로 처리해가기 때문에 내부 상태를 가지고 있다.
블록 암호와 스트림 암호의 장단점을 비교하면 서로 반대가 되는 것을 알 수 있다.
블록 암호는 높은 확산(암호문과 평문 사이의 관계를 감춤)이 장점인 대신에 느린 암호화와 에러를 전달하는 단점이 있고,
스트림 암호는 확산이 낮은 대신에 암호화 속도가 빠르며 에러 전파 현상이 없다.
암호 분석
암호 방식의 정규 참여자가 아닌 제3자가 암호문으로부터 평문을 찾으려는 시도를 암호 해독(분석)이라 한다.
암호학에서 암호 해독자는 현재 사용되고 있는 암호 방식을 알고 있다는 전제하에 암호 해독을 시도하는 것으로 간주한다.
이것을 케르히오프의 원리(Kerckhoff's principle)라 한다.
- 암호문 단독 공격(COA, Ciphertext Only Attack)
COA란 도청자가 어떤 암호문을 얻어서 대응되는 평문과 키를 찾는 것이다. 단지 암호문 C만을 가지고 평문 P나 키 K를 찾아내는 방법으로 가장 쉽게 적용될 수 있는 공격이나 해독자에게 가장 불리한 방법이다.
- 기지 평문 공격(KPA, Known Plaintext Attack)
KPA는 도청자가 해독하려는 암호문 외에 추가로 여러 개의 평문/암호문 쌍을 얻는다. 도청자는 이 쌍으로 부터 암호문과 평문의 관계를 찾아 키 K나 평문 P를 추정하여 해독할 수 있다.
- 선택 평문 공격(CPA, Chosen Plaintext Attack)
CPA는 KPA와 유사하다. 공격자에게 주어지는 평문/암호문 쌍을 공격자가 선택하는 공격이다. 암호기에 접근할 수 있는 상황에서의 공격으로 임의의 평문 P를 선택하여 대응하는 암호문을 얻는다. 역시 이로부터 키 K나 평문 P를 추정하여 해독할 수 있다.
COA나 KPA와 달리 CPA 모형의 공격자는 수동적으로 도청하는 것이 아니라 암호화 과정에 영향을 미친다는 점에서 능동적 공격자이다.
- 선택 암호문 공격(CCA, Chosen Ciphertext Attack)
CPA와 유사하다. 이번에는 공격자가 복호기에 접근할 수 있어 어떤 암호문을 선택하면 그에 대응하는 평문을 얻는다.
선택된 암호문을 복호화할 수 있는 능력을 갖추고 있는 기계를 일반적으로 복호 오라클(Decryption Oracle)이라 부른다.
CCA에 견딜 수 있는 암호 알고리즘은 강한 알고리즘이라고 말할 수 있다.
암호모듈 안전성 평가(CMVP)
암호모듈의 안전성 평가인 CMVP는 미국 NIST와 캐나다 주정부 CSE가 공동으로 개발한 암호 모듈의 안전성 검증을 위한 프로그램이다.
CMVP에서 요구하는 암호모듈의 안전성 평가는 크게 암호기술의 구현 적합성 평가, 암호키 운용 및 관리, 물리적 보안으로 나눌 수 있으며 각 항목에 대한 안전성 등급을 설정하여 기준을 마련하고 이에 대한 평가를 수행한다.
'정보보안기사' 카테고리의 다른 글
블록 암호 사용 방식 (0) | 2023.03.09 |
---|---|
스트림 암호, 대칭키 블록 암호(DES, AES 등) (0) | 2023.03.08 |
블록 암호 (0) | 2023.03.07 |
지적 재산권 보호 (0) | 2023.03.06 |
정보보호관리 (0) | 2023.03.04 |