암호학 개념은 제삼자로부터 데이터를 보호하기 위해 평문을 이해할 수 없는 형태로 암호화하는 것을 말합니다. 암호화 대상에 따라 파일을 암호화하는 블록 암호화 그리고 전송데이터에 대한 스트림 암호화 알고리즘 등으로 구분합니다.
암호학 개념
암호화 알고리즘의 원리는 크게 혼돈(confusion)과 확산(diffusion)으로 구분합니다. 각 방식의 특징은 다음과 같습니다.
혼돈(confusion) | 확산(diffusion) |
평문과 암호문의 상관관계를 숨겨서 외부에서 해독하려고 해도 암호문과 암호키 간의 관계를 이해하기 어렵게 합니다. 예) 치환 방식 | 평문의 통계적 특성을 암호문 전반에 확산시켜 암호문과 평문 사이의 상관관계를 알기 어렵게 합니다. 예) 대치 방식 |
예를 들면 “ABCD…” 라는 문자열을 “BCAD…”로 바꾸는 치환방식은 ‘혼돈’의 특성을 말하며, 무의미한 문자열을 사이에 추가하여 평문의 추정이 어렵게 하는 방법은 ‘대치’ 방식의 한 예입니다. 그리고, 일반적으로 좋은 암호화 알고리즘의 다음의 특징을 가집니다.
- 견고성: 외부의 해독에 충분히 견딜 수 있도록 튼튼해야 한다.
- 안정성: 해독 시 분석이 가능한 구조이어야 한다.
- 효율성: 암호 및 복호화 시 SW 및 HW 리소스를 많이 사용하지 않으며 빨라야 한다.
- 활용성: 여러 다른 보안시스템에 적용이 쉬워야 한다.
암호 알고리즘 유형
디지털 데이터의 유형은 파일과 전송데이터로 구분할 수 있습니다. 두 데이터 유형에 따라 각각 블록 및 스트림 암호화 알고리즘을 적용합니다.
블록암호화 vs 스트림암호화
1. 블록암호화: 파일 데이터
평문을 일정한 사이즈의 Block으로 나누어 고정된 사이즈의 블록마다 암호화를 하는 방법입니다. 주로 저장된 파일의 암호화 시 사용합니다.
- 알고리즘 종류: DES, AES, SEED, LEA
- 장점: 해독이 어려우며 완성된 암호문의 내용 추가 변경이 어렵다.
- 단점: 암호화 속도가 상대적으로 느리며 암호에러 발생 시 영향범위가 크다. (타 블록도 재 암호화 필요)
2. 스트림 암호화: 전송 데이터
평문과 같은 길이의 키 스트림을 생성하여 이를 bit 단위로 XOR 이진연산을 통해 암호문을 생성하는 방식입니다. 블록 암호화에 비해 경량이며 속도가 빠른 장점이 있습니다.
위의 그림은 간단한 스트림 암호화의 예입니다. XOR (배타적 논리합) 연산이란 평문과 키 스트림의 값이 다를 때만 1, 같으면 0을 출력하는 것이며 아래와 같습니다.
- 0 XOR 0 = 0
- 1 XOR 1 = 0
- 1 XOR 0 = 1
- 0 XOR 1 = 1
이를 복호화하는 방식도 동일하며 위의 그림과 같이 암호문과 평문이 그대로 복구되는 것을 알 수 있습니다. 단, 키 스트림이 유출되면 암호해독이 가능하므로 키 관리가 중요합니다. 스트림 암호화 알고리즘 유형 및 장단점은 다음과 같습니다.
- 알고리즘 유형: RC4, LFSR, SEA
- 장점: 암호화 속도가 블록 암호화 대비 빠르며, 에러 파급효과가 적습니다.
- 평문의 특성이 암호문에도 반영되어 외부 공격에 취약한 단점이 있습니다. (키 관리 어려움)
대칭키 vs 비대칭키
1. 대칭키 암호화
암호화 키와 복호화 키가 서로 같은 알고리즘입니다. 암호화 속도가 빠르며 암/복호화 키가 동일하여 사용이 간편하다는 장점이 있습니다. 하지만 상대방에게 암호화키(비밀키) 전송이 필요하므로 키 관리는 복잡한 단점이 있습니다.
2. 비대칭키 암호화
암호화 키와 복호화 키가 서로 다른 알고리즘으로 복호화를 위해 상대방에서 비밀키를 전송해야하는 부담이 없으므로 키 관리가 간단합니다.
두 암호화 방식의 특징 및 알고리즘 유형을 표로 정리해보겠습니다.
대칭키 알고리즘 | 비대칭키 알고리즘 |
알고리즘: 3DES, SEED, AES, IDEA, HIGHT, ARIA (블록암호화, 스트림 암호화 알고리즘) | 알고리즘: RSA, ECC, DSA(소인수분해, 이산대수 암호 알고리즘) |
키관리가 어려우며 안전한 인증이 어렵다는 단점이 있다. 하지만 암호화 속도가 빨라 경제성이 좋다. 일반적으로 많이 사용하는 알고리즘 | 암호키 복호화키가 구분되어 키관리가 쉽다는 장점이 있지만, 속도가 상대적으로 느려 경제성은 떨어진다. 부인방지 기능이 있어 공인인증서, 전자인증 솔루션에서 활용된다. |
암호 알고리즘 활용사례
1. 파일 암호화
PC 등에서 사용하는 파일 및 폴더를 암호화 할 때 블록암호화(AES) 방식을 이용해 빠른 속도로 암호화할 수 있습니다. 무료 오픈소스 툴을 이용해 간단히 암호화가 가능합니다.
2. DB 암호화 기술
데이터베이스를 암호화하기 위한 기술로 활용되며 주로 블록 암호화 알고리즘을 이용하여 다음 4가지 유형의 데이터베이스 암호화에 적용됩니다.
- 플러그인 방식
- API 방식
- Secure Proxy 방식
- 커널 방식
3. 공인인증서 및 전자계약 솔루션
비대칭 암호화 기술의 특징인 부인방지 및 키 관리 용이성 특징을 활용하여 공인인증서를 통한 인증이나 전자계약 시 부인방지에 활용됩니다. 전자서명 및 전자계약에 대한 기술적인 정보는 다음을 참고 바랍니다.
이상으로 정보보호론 중에서 암호학의 세부내용에 대해서 살펴보았습니다.