암호화(暗號化, encryption)는 평문(plaintext)을 특정 알고리즘과 키(key)를 사용해 제3자가 읽을 수 없는 암호문(ciphertext)으로 변환하는 과정이다. 반대로 암호문을 다시 원래 평문으로 되돌리는 과정은 복호화(decryption)라고 한다. 암호화는 정보 보안의 핵심 수단으로, 저장된 데이터의 기밀성 유지, 네트워크 전송 중 도청 방지, 신원 인증, 디지털 서명 등에 폭넓게 활용된다.[1] 현대에는 대칭키·비대칭키 암호화가 상호 보완적으로 사용되고 있으며, 양자 컴퓨터 위협에 대응한 양자 내성 암호 표준도 2024년 8월 확정되었다.[7]
1. 역사
암호화 기술의 역사는 고대로 거슬러 올라간다. 기원전 스파르타에서는 스키테일(scytale)이라는 나무 막대기에 가죽끈을 감아 글자를 배열하는 전치 암호를 군사 통신에 사용했다. 로마의 율리우스 카이사르는 각 글자를 알파벳 상에서 일정한 칸 수만큼 옮기는 치환 암호(시저 암호)를 고안했으며, 이처럼 고대 암호는 주로 단순한 규칙에 의존한 고전 암호(classical cipher)에 해당한다.[3]
근대에는 전기·기계 장치를 활용한 암호가 등장했다. 제2차 세계대전에서 독일군이 사용한 에니그마(Enigma)는 회전자(rotor) 조합으로 알파벳을 치환하는 기계식 암호기였으며, 앨런 튜링(Alan Turing)이 이끄는 연합군 팀이 1940년대에 개발한 '봄(Bombe)' 장치로 해독에 성공했다.[3]
컴퓨터 시대에 들어서면서 암호화는 수학적 기반 위에 재정립되었다. 1977년 IBM이 개발하고 미국 국가표준으로 채택된 DES(Data Encryption Standard)는 56비트 키를 사용하는 블록 암호로, 약 30년간 표준으로 자리했다. 그러나 컴퓨팅 성능 향상으로 DES의 키 길이가 너무 짧다는 문제가 부각되면서 2001년 NIST는 128비트 블록 암호인 AES(Advanced Encryption Standard)를 새 표준으로 채택했다.[3] 같은 시기인 1976년에는 디피(Diffie)와 헬만(Hellman)이 공개키 암호 개념을 처음 제안했고, 1978년 RSA 알고리즘이 발표되면서 현대 암호학의 두 축이 완성되었다. 이 시기 개발된 Linux 기반 오픈소스 암호화 라이브러리(OpenSSL 등)가 이후 인터넷 보안 인프라의 기반이 됐다.[5]
2. 대칭키 암호화
대칭키 암호화(symmetric-key encryption)는 암호화와 복호화에 동일한 키를 사용하는 방식이다.[3] 키를 공유하는 양측이 같은 비밀 키를 보유해야 하므로, 사전에 안전한 방법으로 키를 교환해야 한다는 전제가 필요하다. 안드로이드를 비롯한 현대 운영체제는 내부 스토리지 암호화에 AES 대칭키 방식을 기본 채택하고 있다.
대표적인 알고리즘으로는 AES가 있다. AES는 128비트 블록 크기에 128·192·256비트 키를 지원하며, 높은 보안성과 빠른 처리 속도로 파일 암호화, 디스크 암호화, 네트워크 세션 데이터 암호화 등 광범위하게 쓰인다. DES의 후계자인 3DES(Triple DES)는 DES를 세 번 반복 적용해 보안을 높이려 했으나 현재는 AES로 대체되었고, 2023년 NIST는 3DES의 신규 사용을 중단할 것을 권고했다.[3]
대칭키 암호화는 연산 속도가 빠르다는 장점이 있어 대량의 데이터를 암호화하는 데 적합하다. 반면 키 배포 문제(key distribution problem)가 단점으로 꼽힌다. 이 문제를 해결하기 위해 비대칭키 암호화와 결합하는 하이브리드 방식이 널리 쓰인다.
3. 비대칭키 암호화 (공개키 암호화)
비대칭키 암호화(asymmetric-key encryption), 또는 공개키 암호화(public-key encryption)는 수학적으로 연관된 두 키, 즉 공개키(public key)와 개인키(private key)를 쌍으로 생성해 사용하는 방식이다.[5] 공개키는 누구에게나 공개할 수 있고, 개인키는 소유자만 보관한다. iOS의 Secure Enclave와 같은 하드웨어 보안 모듈은 이 개인키를 안전하게 격리 보관하기 위해 설계되었다.
핵심 원리는 방향성 비대칭이다. 공개키로 암호화한 메시지는 오직 대응하는 개인키로만 복호화할 수 있다. 반대로 개인키로 서명한 데이터는 공개키로 검증할 수 있어 디지털 서명에도 활용된다. 이 비대칭성은 수학적으로 "일방향 함수(one-way function)"에 기반한다.
- RSA: 1978년 발표된 가장 널리 알려진 공개키 알고리즘. 두 큰 소수의 곱을 공개하고, 소인수 분해의 어려움에 안전성을 의존한다. 현재 2048비트 이상의 키 길이가 권장된다.[5]
- ECC(타원 곡선 암호): 타원 곡선 이산 로그 문제에 기반하며, RSA보다 짧은 키 길이로 동등 수준의 보안을 제공한다. 모바일 환경처럼 연산 자원이 제한된 경우에 유리하다.
- 디피-헬만 키 교환(Diffie-Hellman): 두 당사자가 공개 채널을 통해 안전하게 공유 비밀을 생성할 수 있는 프로토콜로, TLS 핸드셰이크의 핵심 요소다.[6]
비대칭키 암호화는 키 배포 문제를 해결하지만 연산 비용이 대칭키 방식보다 크다. 그래서 실제 시스템에서는 비대칭키로 키 교환을 수행한 뒤, 이후 통신은 대칭키로 암호화하는 하이브리드 방식이 표준적으로 쓰인다.
4. TLS/SSL과 네트워크 암호화
TLS(Transport Layer Security)는 인터넷 통신에서 데이터 기밀성, 무결성, 인증을 보장하는 암호화 프로토콜이다.[6] 이전 버전인 SSL(Secure Sockets Layer)의 이름을 따라 오늘날도 "SSL"이라는 표현이 관습적으로 쓰이지만, SSL은 사실상 폐기되었으며 현재는 TLS가 표준이다.
TLS는 웹 브라우저와 서버 사이의 HTTPS 통신을 비롯해, 이메일(SMTP/IMAP), VPN, API 통신 등 광범위한 네트워크 계층에 적용된다. TLS가 적용된 연결 여부는 브라우저 주소창의 자물쇠 아이콘과 https:// 접두사로 확인할 수 있다. Verified Boot처럼 부트 체인의 무결성을 검증하는 메커니즘도 유사한 신뢰 체인 원칙을 따른다.
TLS 핸드셰이크 과정은 다음과 같이 요약된다.
1. 클라이언트 헬로: 클라이언트가 지원하는 TLS 버전, 암호화 스위트 목록, 무작위 값을 서버에 전송한다. 2. 서버 헬로: 서버가 암호화 스위트를 선택하고, 디지털 인증서(서버의 공개키 포함)와 무작위 값을 응답한다. 3. 인증서 검증: 클라이언트가 서버 인증서를 신뢰할 수 있는 인증기관(CA)을 통해 검증한다. 4. 키 교환: 디피-헬만 또는 RSA 방식으로 세션 키 생성에 필요한 정보를 교환한다. 5. 세션 키 생성 및 암호화 통신 시작: 양측이 동일한 세션 키를 도출해 이후 모든 데이터를 대칭키 암호화로 주고받는다.[6]
TLS 1.3은 2018년 표준화되었으며, 핸드셰이크 왕복 횟수를 줄여 성능을 높이고 취약한 암호화 스위트를 제거해 보안을 강화했다. 2025년 3월 현재 주요 브라우저와 서버는 TLS 1.2 및 1.3을 기본 지원한다.[6]
5. 디스크 및 파일 암호화
디스크 암호화는 저장 장치에 기록되는 데이터를 자동으로 암호화해, 기기를 물리적으로 탈취하거나 저장 매체를 직접 읽더라도 내용을 볼 수 없도록 보호하는 기술이다.
전체 디스크 암호화(FDE, Full Disk Encryption)는 파티션 또는 드라이브 전체를 한 단위로 암호화한다. Windows의 BitLocker, macOS의 FileVault, Linux의 LUKS 등이 대표적이다. 부팅 시 PIN·비밀번호·복구 키를 입력해야 볼륨이 마운트되어 접근 가능해진다.
파일 기반 암호화(FBE, File-Based Encryption)는 파일과 디렉터리 단위로 서로 다른 키를 적용해 암호화한다. FDE보다 세밀한 접근 제어가 가능하고, 기기 잠금 상태에서도 일부 기능(알람, 긴급 전화 등)을 허용하는 부팅 전 접근 경계를 설정할 수 있다는 장점이 있다.[4]
Android는 Linux kernel 위에서 dm-crypt 및 fscrypt를 활용해 디스크 암호화를 구현한다. 버전 7(Nougat, 2016)부터 FBE로 전환을 시작했고, Android 10(2019)부터는 모든 신규 기기에 FBE가 필수가 되었다. iOS는 출시 초기부터 하드웨어 기반의 파일 암호화를 적용해 왔으며, Secure Enclave 칩이 키 관리에 관여한다.[4]
6. 모바일 암호화: Android와 iOS
스마트폰은 개인 사진, 메시지, 금융 정보, 건강 데이터 등 민감한 정보를 집약적으로 담고 있어 모바일 암호화는 현대 정보 보안의 핵심 영역으로 자리잡았다.[4]
Android는 안드로이드 (운영체제) 문서에서 설명하듯 다층 보안 구조를 채택하고 있으며, Verified Boot, SELinux, Application Sandbox와 함께 저장소 암호화가 핵심 축을 이룬다. Android의 FBE는 두 가지 저장 영역을 구분한다.
- CE(Credential Encrypted) 저장소: 사용자가 잠금 해제 후에만 접근 가능한 영역으로, 이메일·메시지·앱 데이터 등 사용자 특정 데이터를 보관한다.
- DE(Device Encrypted) 저장소: 부팅 직후 잠금 해제 전에도 접근 가능한 영역으로, 알람·긴급 전화 같은 필수 기능을 위한 데이터가 저장된다.[4]
iOS는 iOS 출시 초기부터 하드웨어 암호화를 기본 적용해 왔다. 각 파일은 파일 고유 키로 암호화되며, 이 파일 키는 다시 클래스 키(잠금 해제 여부에 따라 접근 클래스가 결정)로 감싸진다. iOS의 Secure Enclave 프로세서는 암호화 키 생성·저장·파기를 전담하는 독립 보안 서브시스템으로, 메인 CPU에서 키 소재에 직접 접근할 수 없도록 설계되어 있다.[4]
두 플랫폼 모두 장치 잠금 암호(PIN, 패스워드, 생체 인증)가 암호화 키 체인의 최상위에 위치한다. 따라서 강력한 잠금 암호 설정이 모바일 암호화의 실질적 보안 수준을 결정하는 핵심 요소다.
7. 양자 내성 암호
기존 공개키 암호(RSA, ECC, 디피-헬만 등)는 대규모 양자 컴퓨터가 실현될 경우 Shor 알고리즘에 의해 해독 가능하다는 이론적 위협을 받고 있다. 이에 대응해 NIST는 2016년부터 양자 내성(post-quantum) 암호 알고리즘 표준화 작업을 진행해 왔다.[7]
2024년 8월 13일, NIST는 최초의 양자 내성 암호 표준 3종을 공식 발표했다.[7]
- FIPS 203 (ML-KEM): CRYSTALS-Kyber를 기반으로 한 키 캡슐화 메커니즘(KEM). 키 교환과 세션 키 확립에 사용된다.
- FIPS 204 (ML-DSA): CRYSTALS-Dilithium을 기반으로 한 디지털 서명 알고리즘.
- FIPS 205 (SLH-DSA): SPHINCS+를 기반으로 한 해시 기반 디지털 서명 알고리즘.
추가로 2025년 3월 NIST는 HQC(Hamming Quasi-Cyclic)를 네 번째 양자 내성 알고리즘으로 선정했으며, FALCON 기반의 FIPS 206도 개발 중이다.[7]
NIST는 기존 RSA·ECC 기반 시스템의 전환 목표 시점을 2035년으로 제시하고 있으며, 금융·의료·통신 인프라 운영자들은 장기 데이터 보호를 위해 지금부터 마이그레이션 계획을 수립할 것을 권고받고 있다.[7] "지금 수집해 나중에 해독(harvest now, decrypt later)" 공격, 즉 현재 암호화된 트래픽을 저장해두었다가 미래 양자 컴퓨터로 해독하는 시나리오에도 대비해야 하기 때문이다.
9. 인용 및 각주
[1] KISA 암호이용활성화 - 소개 - 암호기술의 정의, 한국인터넷진흥원, seed.kisa.or.kr(새 탭에서 열림)
[2] NIST Computer Security Resource Center, Public-Key Cryptography, csrc.nist.gov(새 탭에서 열림)
[3] KISA 암호이용활성화 - 암호기술의 역사, 한국인터넷진흥원, seed.kisa.or.kr(새 탭에서 열림)
[4] Encrypting iOS and Android devices, ManageEngine MDM, www.manageengine.com(새 탭에서 열림)
[5] NIST Computer Security Resource Center, Public-Key Cryptography, csrc.nist.gov(새 탭에서 열림)
[6] TLS(Transport Layer Security), 토스페이먼츠 개발자센터, docs.tosspayments.com(새 탭에서 열림)
[7] NIST Releases First 3 Finalized Post-Quantum Encryption Standards, NIST, 2024-08-13, www.nist.gov(새 탭에서 열림)