AES-256 암호화, 과장 없이 쉽게 이해하기
‘AES-256 암호화’는 거의 모든 개인정보 보호 앱의 기능 목록에 등장합니다. 실제로 의미 있는 표현이지만, 시스템 전체에서 가장 실패할 가능성이 낮은 부분이기도 합니다. 이 가이드에서는 AES-256이 무엇을 하는지, GCM 같은 추가 글자가 무슨 뜻인지, 그리고 패턴이나 비밀번호를 키로 바꾸는 단계에 왜 더 주목해야 하는지 설명합니다.
AES란 무엇인가
AES(Advanced Encryption Standard)는 대칭키 블록 암호입니다. 같은 비밀 키로 암호화와 복호화를 하며, 데이터를 128비트 블록 단위로 처리합니다. 미국 국립표준기술연구소(NIST)가 수년에 걸친 공개 경쟁을 거쳐 2001년에 선정했으며, 우승한 설계인 Rijndael은 벨기에 암호학자 두 명이 만들었습니다.
오늘날 AES는 HTTPS 연결, Wi-Fi, 디스크 암호화, 최신 iPhone의 하드웨어까지 어디에나 쓰입니다. 이렇게 널리 쓰인다는 점이 장점입니다. 20년 넘게 암호학자들이 연구해 왔고, 많은 프로세서가 하드웨어로 가속합니다.
키 길이
AES에는 세 가지 키 길이가 있습니다.
| 종류 | 키 길이 | 라운드 | 가능한 키의 수 |
|---|---|---|---|
| AES-128 | 128비트 | 10 | 약 3.4 × 10³⁸ |
| AES-192 | 192비트 | 12 | 약 6.3 × 10⁵⁷ |
| AES-256 | 256비트 | 14 | 약 1.2 × 10⁷⁷ |
AES-256의 숫자를 실감해 보면, 관측 가능한 우주의 원자 수에 대한 흔한 추정치와 크게 다르지 않습니다. 모든 키를 시도하는 것은 컴퓨터가 빨라진다고 해결되는 문제가 아니라, 물리적으로 불가능한 일입니다.
운용 모드: ‘GCM’이 중요한 이유
블록 암호만으로는 16바이트 블록 하나를 뒤섞을 뿐입니다. 운용 모드는 파일 전체를 안전하게 암호화하는 방법을 정합니다. 예전 모드들은 기밀성만 제공했기 때문에, 공격자가 암호문의 비트를 뒤집어 복호화된 데이터에 예측 가능한 변화를 일으킬 수 있는 경우가 있었습니다.
GCM(Galois/Counter Mode)은 인증 암호화 모드입니다. 데이터를 암호화하고, 그 데이터에 대한 인증 태그도 계산합니다. 복호화할 때 태그를 먼저 확인합니다. 파일이 변조되었거나 손상되었다면, 바뀐 내용을 돌려주는 대신 복호화가 깔끔하게 실패합니다.
GCM에는 엄격한 규칙이 하나 있습니다. 같은 키로 논스(한 번만 쓰는 숫자)를 절대 반복해서는 안 됩니다. 잘 설계된 시스템은 예를 들어 파일마다 별도의 키를 주는 식으로 구조적으로 이 위험을 피합니다.
실제로 보안을 결정하는 부분: 키 파생
잠금으로 보호되는 앱의 ‘AES-256’에 관한 불편한 진실이 있습니다. 아무도 256비트 키를 직접 공격하지 않습니다. 공격 대상은 내가 기억하는 그것입니다.
패턴, PIN, 비밀번호는 짧습니다. **키 파생 함수(KDF)**는 이 짧은 비밀을 전체 길이의 키로 바꾸는 과정입니다. KDF가 빠르면, 암호화된 데이터를 복사한 공격자가 수십억 번의 추측을 시험할 수 있습니다. 일부러 느리게 만들면 추측 한 번마다 실제 시간과 연산 능력이 듭니다.
PBKDF2가 공격자를 늦추는 방법
PBKDF2(Password-Based Key Derivation Function 2)는 널리 쓰이는 표준 KDF입니다. 비밀을 키 기반 해시 함수(HMAC)에 수천에서 수십만 번 통과시키고, 솔트를 섞습니다. 솔트는 다른 사람이 같은 비밀을 골랐더라도 파생된 키가 고유해지도록 하는 무작위 값입니다.
- 반복 횟수는 추측 한 번의 비용을 몇 배로 늘립니다. 수십만 번 반복하면 1마이크로초 걸릴 추측이 눈에 띄는 시간(1초의 상당 부분)이 걸립니다.
- 솔트는 미리 계산된 표를 무력화합니다. 공격자가 ‘패턴 → 키’의 거대한 목록 하나를 만들어 여러 기기에 재사용할 수 없습니다.
그렇더라도 공격자가 가장 먼저 시도할 수천 개 안에 드는 비밀은 어떤 KDF도 구할 수 없습니다. 그래서 패턴 vs PIN vs Face ID 가이드에서 다루는 강력한 비밀 고르기가 암호만큼 중요합니다. 비슷한 모양(실제 패턴은 절대 아님)을 패턴 강도 검사기로 테스트해 보세요.
양자 컴퓨터 문제
양자 컴퓨터는 어떤 암호에는 심각한 위협이지만, 다른 암호에는 가벼운 위협일 뿐입니다.
- RSA나 타원 곡선 암호 같은 공개키 알고리즘은 충분히 큰 양자 컴퓨터에서 쇼어 알고리즘으로 깨질 수 있습니다. 그래서 업계 전반에 양자 내성 키 교환이 도입되고 있습니다.
- AES 같은 대칭키 암호는 무차별 대입 탐색을 제곱근 수준으로 빠르게 하는 그로버 알고리즘을 마주합니다. 실제로는 실효 키 길이가 대략 절반이 되어, AES-256은 양자 공격자에 대해 약 128비트 보안을 제공하게 됩니다.
128비트 보안은 여전히 강력하다고 평가됩니다. 오랫동안 기밀을 유지해야 하는 데이터에 AES-256이 권장되는 이유 중 하나입니다.
흔한 오해
- 기능 목록의 최상급 표현에는 의미가 있다. 그렇지 않습니다. AES는 은행, 브라우저, 메신저 앱이 모두 쓰는 공개 표준이며, 그 앞에 붙은 화려한 형용사는 마케팅입니다.
- AES-256이면 앱이 안전하다. AES-256이 안전하게 만드는 것은 암호화된 바이트입니다. 시스템 전체가 안전한지는 키 관리, KDF, 잠금 해제 설계, 백업, 다른 곳에 남은 사본이 결정합니다.
- 키가 길면 약한 비밀번호를 보완한다. 그렇지 않습니다. ‘1234’에서 파생된 256비트 키는 ‘1234’만큼만 강합니다.
Velcrypt가 AES-256을 쓰는 방식
Velcrypt의 설계는 위 원칙을 따릅니다. 강력한 암호, 신중한 키 관리, 느린 파생입니다.
- 암호: Apple CryptoKit을 통한 AES-256-GCM으로, 모든 파일이 암호화되고 인증됩니다.
- 키 파생: 패턴은 최소 600,000회 반복의 PBKDF2-HMAC-SHA512로 처리되며, iOS 키체인에 저장된 기기별 무작위 솔트를 사용합니다.
- 키 계층: 금고마다 고유한 무작위 256비트 마스터 키가 있고, 파일별 키는 HKDF로 그 키에서 파생됩니다. 파일별 키가 따로 있으면 GCM의 논스 규칙도 지키기 쉬워집니다.
- 추가 계층: Velcrypt 자체 암호화 위에 iOS 데이터 보호(완전 보호 등급)가 파일에 적용됩니다.
- 기기 내 전용: 계정도 서버도 없으므로, 키의 사본이 다른 어디에도 없습니다.
암호화 기능 페이지에서 이를 요약하며, 보안 개요에서는 누군가 패턴 그리는 모습을 지켜보거나 금고가 열린 채 휴대폰을 건네는 경우처럼 암호화가 막을 수 없는 것을 분명히 밝힙니다.
자주 묻는 질문
AES-256은 해독될 수 있나요?
무차별 대입보다 빠르게 AES-256 키를 알아내는 실용적인 공격은 알려져 있지 않으며, 256비트 키를 무차별 대입하는 것은 상상할 수 있는 어떤 컴퓨터로도 불가능합니다. 실제 유출 사고는 AES 자체가 아니라 약한 비밀번호, 도난당한 키, 암호 주변의 버그에서 발생합니다.
AES-128과 AES-256의 차이는 무엇인가요?
둘 다 같은 알고리즘을 쓰며 키 길이와 라운드 수만 다릅니다. 128비트 키에 10라운드, 256비트 키에 14라운드입니다. AES-128도 이미 안전하다고 평가되며, AES-256은 향후 양자 공격을 포함해 훨씬 큰 여유를 더합니다.
AES-256-GCM에서 GCM은 무슨 뜻인가요?
GCM(Galois/Counter Mode)은 데이터를 암호화하는 동시에 인증 태그를 만드는 운용 모드입니다. 암호화된 파일이 단 1비트라도 바뀌면, 손상되거나 조작된 데이터를 돌려주는 대신 복호화가 실패합니다.
AES-256은 양자 컴퓨터에 안전한가요?
일반적으로 양자 내성이 있다고 봅니다. 그로버 알고리즘은 이론상 실효 키 강도를 약 128비트로 절반 낮추지만, 이는 여전히 안전한 수준으로 평가됩니다. 양자 컴퓨터는 AES보다 RSA 같은 공개키 알고리즘에 더 큰 위협입니다.
AES-256을 쓰는 앱인데도 왜 강력한 비밀번호나 패턴이 필요한가요?
공격자는 256비트 키를 추측하지 않고, 그 키가 파생되는 짧은 비밀을 추측하기 때문입니다. 내 비밀이 흔한 선택지 수천 개 중 하나라면, 느린 키 파생도 제한된 시간만 벌어 줄 뿐입니다.