정보보호론 – 암호학 개념, 암호 알고리즘 유형 및 활용사례 (2)

암호학 개념은 제삼자로부터 데이터를 보호하기 위해 평문을 이해할 수 없는 형태로 암호화하는 것을 말합니다. 암호화 대상에 따라 파일을 암호화하는 블록 암호화 그리고 전송데이터에 대한 스트림 암호화 알고리즘 등으로 구분합니다.

암호학 개념

암호화 알고리즘의 원리는 크게 혼돈(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 방식
  • 커널 방식

> DB 암호화기술 4가지 유형 특징 및 장단점 비교

3. 공인인증서 및 전자계약 솔루션

비대칭 암호화 기술의 특징인 부인방지 및 키 관리 용이성 특징을 활용하여 공인인증서를 통한 인증이나 전자계약 시 부인방지에 활용됩니다. 전자서명 및 전자계약에 대한 기술적인 정보는 다음을 참고 바랍니다.


이상으로 정보보호론 중에서 암호학의 세부내용에 대해서 살펴보았습니다.

Leave a Comment