데이터 암호화는 평문을 제삼자가 이해할 수 없는 형태로 변형하는 것으로 데이터의 저장 및 전송시, 블록/스트림 알고리즘을 통해 암호화됩니다. 이 문서에서는 데이터 암호화 기술의 유형 및 특징에 대해 자세히 알아보겠습니다.
데이터 암호화 기술
악의적인 목적을 가진 공격자에 의해 데이터가 유출되거나 내부자에 의해 기업 내 고객 정보가 유출될 경우 암호화를 통해 그 피해를 최소화할 수 있습니다.
데이터 암호화 기술은 적용 대상에 따라 파일에 사용되는 블록 암호화와 전송시 사용되는 스트림 암호화로 구분할 수 있습니다.
블록 암호화 | 스트림 암호화 |
평문을 블록단위로 나누어 순차적으로 암호화하는 방식으로 완성된 암호문의 추가 변경이 어려우며, 암호화 속도는 상대적으로 느린 편이다. | 평문 데이터를 이진(binary) 메시지로 즉시 암호화 스트림을 생성하는 형태로 속도가 빠른 것이 장점이다. |
DES, AES, SEED, LEA 알고리즘 등 | RC4, LFSR, SEA 알고리즘 등 |
1. 블록암호화
고정된 크기의 데이터를 역시 고정된 크기로 출력하여 변화하는 알고리즘 으로 저장된 형태의 데이터를 암호화하는 경우 많이 사용합니다.
위와 같이 블록암호화는 n-bit의 평문을 k-bit 키를 이용해 동일한 n-bit의 암호문으로 변환하는 개념을 나타내고 있습니다. 블록 암호화의 형태는 크게 Feistel 구조와 SPN 구조로 구분할 수 있습니다.
Feistel 구조
암/복호화 과정에서 역함수가 필요 없다는 것이 장점이지만, 암호화 시 스왑처리 영향으로 연산량이 많이 소모됩니다. 대표적으로 3-DES 알고리즘이 이 방식을 사용합니다.
SPN 구조
중간 비트의 이동이 필요없어 Feistel 구조에 비해 효율적인 설계가 가능하며, 대표적으로 많이 사용하는 AES 알고리즘이 이 방식을 사용합니다.
2. 스트림 암호화
비트 단위로 유사 난수를 연속적으로 생성하여 암호화 하는 방식입니다. 아래 그림과 같이 입력되는 데이터를 XOR 하여 즉시 암호문 수열을 생성하므로 속도가 빠른 것이 장점입니다.
Stream 암호화의 특징은 음성이나 오디오 및 비디오 스트리밍 같은 실시간 전송 데이터에서 많이 사용하며, 속도가 빠르다는 것이 장점이지만 낮은 확산과 낮은 암호화 강도를 갖는 단점이 있습니다.
3. 해시암호화
앞서 설명해 드린 2가지는 평문과 암호문의 양방향 암호화가 가능한 방법입니다. 반면에 해시암호화는 단반향 암호화 기술로 임의의 데이터를 고정된 크기의 암호화 문자열로 변환하는데 사용합니다.
해시함수가 사용되는 대표적인 사례는 데이터 무결성 체크입니다. 가령, 수십 GB의 파일을 온라인으로 지사에 전송하는 경우를 가정해보겠습니다.
- 우선 MD5 해시함수로 변화해주는 유틸리티를 다운로드 합니다.
- 다운로드후 실행하여 지금 다운로드한 winmd5free.zip 파일의 MD5 변환합니다.
- 홈페이지의 MD5 문자열과 프로그램의 비교해봅니다.
위의 경우 두 값이 보면 동일함을 알 수 있습니다. 만약 파일이 1bit 라도 변조되었거나 전송이나 저장중 깨졌다면 값이 달라지므로 이를 사전에 인지할 수 있습니다.
클라우드 데이터 암호화
기업에서도 저렴한 비용 및 관리의 효율성으로 클라우드 마이그레이션을 진행합니다. 일반적으로 많이 사용하는 구글과 AWS의 데이터 암호화 방식을 간단히 살펴보겠습니다.
구글 클라우드
Google Cloud에 저장된 Data 보호를 위해 여러 암호화 레이어를 사용합니다. 가령 파일 저장장치에 AES 암호화를 비롯하여 데이터베이스 DB 및 분산 파일 시스템에도 블록 암호화를 각 계층별로 적용하고 있습니다.
AWS 클라우드
AWS 서비스의 경우 Key management Service 등을 통해 암호화 키를 관리하는 서비스를 제공하고 있습니다. 또한 가상 머신 인스턴스의 하드웨어 모듈에 AES-256 을 이용하여 파일저장 시 암호화를 하거나, 네트워크 전송 트래픽 및 인스턴스 간 통신에도 암호화를 적용하고 있습니다.
이와 같이 클라우드 서비스를 이용하면 업체에서 기본적으로 Data를 보호할 수 있는 프로세스와 암호화 기술이 적용되므로 보다 간편하게 데이터 보안을 적용할 수 있습니다.
개인 및 기업용 암호화 솔루션
클라우드 서비스를 이용하지 않는 기업이나 소규모 업체 그리고 개인의 경우에도 간단한 유, 무료 솔루션을 통해 로컬 저장장치의 데이터를 암호화할 수 있습니다.
- 베라크립트 암호화 프로그램 (오픈소스, 무료)
- 7-zip 암호화 프로그램
이 외에도 이전 글에서 다양한 유료/무료 암호화 솔루션에 대해서 설명드렸습니다. 만약 DB 암호화를 고려중이신 경우라면 아래 글을 참고 바랍니다.
> DB 암호화 기술 4가지 유형 및 상용솔루션 알아보기
이상으로 데이터 암호화 기술의 유형과 특징 그리고 다양한 암호화 솔루션에 대해서 알아보았습니다.