Obscura Photo Vault
Obscura Photo Vault
iPhone용 암호화 사진 보관함
← 뒤로
한국어 ko

AES-256-GCM과 PBKDF2 600,000회 반복 쉽게 이해하기

사진 금고 기능 목록에 적힌 숫자가 실제로 무엇을 뜻하는지, 그리고 그 숫자로도 막지 못하는 부분을 솔직하게 설명합니다.

2026년 9월 2일 업데이트 · 작성: Orlio Inc

간단한 답

AES-256-GCM은 256비트 키를 쓰는 AES 암호화 방식을 GCM이라는 방식으로 사용하는 것입니다. GCM 부분은 눈여겨볼 만합니다. 데이터를 뒤섞을 뿐 아니라 검사도 하므로, 변조된 파일은 조용히 잘못된 채로 돌아오는 대신 아예 열리지 않습니다. PBKDF2 600,000회 반복은 비밀번호를 일부러 느리게 키로 바꾸므로, 공격자의 추측 하나하나에 600,000회의 작업이 듭니다. 이 숫자는 저희가 아니라 OWASP가 공개적으로 권장하는 값입니다.

이 중 어느 것도 금고가 열려 있는 동안 해킹된 휴대폰이나, 다른 사람이 아는 비밀번호로부터는 지켜 주지 못합니다. 자세한 내용과 한계는 아래에 있습니다.

사진 금고의 기능 목록은 AES-256, GCM, 600,000회, PBKDF2 같은 숫자로 가득합니다. 마치 그것으로 모든 것이 해결된다는 듯 적혀 있고, 대부분의 독자는 당연히 건너뜁니다. 10분만 투자할 가치가 있습니다. 각각이 무엇을 하는지 알면 구체적인 주장과 그럴듯하게 들리기만 하는 주장을 구별할 수 있습니다. 이 페이지는 각 용어를 쉬운 말로 설명합니다. 그리고 8번 섹션에서 암호화가 막지 못하는 것을 정리합니다. 결정을 바꾸는 것은 그 두 번째 부분입니다.

1. 짧게 정리하면

용어 하는 일
AES암호화 방식. 키로 데이터를 뒤섞는 공개 표준입니다.
256비트 단위의 키 크기. 모든 키를 시도하는 것이 현실적이지 않을 만큼 큽니다.
GCM변조도 검사하는 AES 사용 방식. 변조된 데이터는 조용히 받아들여지지 않고 잡힙니다.
논스(Nonce)암호화할 때마다 한 번만 쓰는 숫자. 같은 키로 절대 반복되면 안 됩니다.
PBKDF2비밀번호를 일부러 느리게 키로 바꾸는 과정입니다.
600,000회 반복얼마나 느린지. 공격자의 추측 하나하나에 600,000회의 작업이 듭니다.
솔트(Salt)섞어 넣는 무작위 데이터. 공격자가 답을 미리 준비해 여러 사용자에게 재사용할 수 없게 합니다.

2. AES-256이란

AES는 Advanced Encryption Standard(고급 암호화 표준)의 약자입니다. 미국 국립표준기술연구소(NIST)가 몇 년에 걸친 공개 경쟁을 거쳐 2001년에 발표한 암호화 방식입니다. 비밀이 아니며 누구의 소유도 아닙니다. 설계는 공개되어 있습니다. 대학과 업계의 전문가들이 20년 넘게 연구했지만 전체 방식을 깨는 실용적인 방법은 찾지 못했습니다.

256은 비트 단위의 키 크기입니다. 이 크기의 키를 모두 시도하려면 2의 256제곱 가지 경우를 찾아야 합니다. 더 빠른 컴퓨터를 기다리면 되는 문제가 아닙니다. 일반적인 컴퓨터가 도달할 수 있는 범위를 훨씬 넘어섭니다. 실제로 방식 자체가 실패하는 부분이 되는 일이 거의 없는 이유가 여기에 있습니다.

바로 그래서 ‘AES-256을 사용합니다’라는 말은 보기보다 알려 주는 것이 적습니다. 최소한에 가까운 말입니다. 흥미로운 질문은 무엇이 암호화되는지, 어떻게 쓰이는지, 키를 어떻게 만드는지입니다.

3. GCM이 더해 주는 것

암호화만으로는 데이터를 비밀로 지킬 뿐입니다. 키 없이는 읽을 수 없습니다. 하지만 그것만으로는 데이터가 온전하다고 약속하지 않습니다. 지금 여는 것이 넣었던 것과 같다고 알려 주지 못합니다.

이 빈틈은 실제로 존재합니다. 검사하지 않는 방식에서는 저장된 파일을 바꿀 수 있는 사람이 뒤섞인 데이터를 변조할 수 있습니다. 그 파일을 열면 오류 없이 다른, 잘못된 데이터가 나옵니다. 데이터는 돌아오지만 넣었던 데이터가 아니며, 아무것도 그 사실을 알려 주지 않습니다.

GCM은 검사를 더합니다. 뒤섞인 데이터와 함께 검사값을 만들고, 데이터를 열 때마다 그 값을 확인합니다. 저희 보안 문서에서 인용합니다.

Obscura Photo Vault 보안 문서

“디스크에서 바이트 하나가 바뀌면 미묘하게 잘못된 평문을 돌려주는 대신 복호화가 분명하게 실패합니다. 그래서 ‘복호화되었다’는 것은 ‘암호화된 이후 변경되지 않았다’는 것과 같은 뜻이 됩니다.”

기능 목록에서 찾아볼 가장 쓸모 있는 단 하나의 항목입니다. 정확성이 드러나는 곳이기 때문입니다. ‘AES-256’은 방식을 밝힙니다. ‘AES-256-GCM’은 방식과 사용 방법을 함께 밝히며, 변조 검사가 있는지 없는지가 바로 거기서 갈립니다.

4. 논스, 그리고 전형적인 실수

GCM 시스템의 모든 암호화에는 논스, 즉 한 번만 쓰는 숫자가 사용됩니다. 비밀일 필요는 없습니다. 주어진 키에 대해 고유하기만 하면 됩니다.

같은 키로 논스를 반복하면 GCM의 보호가 심각하게 무너집니다. 드문 예외 상황이 아닙니다. GCM을 쓰는 실제 시스템이 깨진 가장 흔한 경로이며, AES의 약점이 아니라 구현 과정의 지름길에서 비롯됩니다.

반복되지 않게 하는 확실한 방법은 두 가지입니다. 하나는 암호화할 때마다 새 무작위 숫자를 쓰는 것입니다. Obscura Photo Vault는 단일 파일에 이 방법을 씁니다. 매번 새로운 96비트 무작위 숫자와 128비트 검사값을 사용합니다. 다른 하나는 절대 반복되지 않는다는 것이 증명된 카운터입니다. 큰 동영상을 위한 저희 형식이 이 방법을 씁니다. 파일마다 고른 무작위 숫자와 조각 번호를 결합하므로, 어떤 파일에서도 두 조각이 같은 논스를 공유하지 않습니다.

어느 쪽이 더 옳은 것은 아닙니다. 중요한 것은 앱이 의도적으로 하나를 골랐다는 점입니다. 공개된 설계 문서는 이런 것을 보여 주고, 기능 목록은 보여 주지 못합니다.

5. 비밀번호가 가장 약한 고리입니다

256비트 키에는 256비트의 무작위성이 있습니다. 비밀번호에는 없습니다. 좋은 비밀 문구라도 60~80비트 정도이고, 일반적인 비밀번호는 그보다 훨씬 적습니다. 비밀번호를 그대로 키로 쓴다면 큰 키 크기는 의미가 없습니다. 공격자는 키가 아니라 비밀번호를 추측할 것입니다.

비밀번호를 키로 바꾸는 과정이 그 다리입니다. PBKDF2는 비밀번호와 솔트를 받아 정해진 횟수만큼 뒤섞는 함수에 반복해서 통과시켜 키를 만듭니다. 반복의 목적은 비용입니다. 나는 잠금을 해제할 때마다 키를 한 번 만들고, 그 1초 정도의 시간은 거의 느끼지 못합니다. 수백만 개의 추측을 시험하는 공격자는 그 비용을 추측마다 치릅니다.

찾아볼 숫자가 바로 이것이며, 가장 자주 빠지는 숫자이기도 합니다. 비밀번호를 한 단계 만에 키로 바꾸면서도 AES-256을 쓴다고 거짓 없이 말하는 앱이 있을 수 있습니다. 그런 앱은 이 과정이 막으려는 바로 그 오프라인 추측 공격에 노출됩니다.

6. 왜 600,000회인가

이 숫자는 임의로 정한 것이 아니며, 저희가 정한 것도 아닙니다. OWASP Password Storage Cheat Sheet는 이 분야에서 가장 널리 쓰이는 공개 참고 자료입니다. 이 자료는 HMAC-SHA-256을 쓰는 PBKDF2를 600,000회 이상 반복하도록 권장합니다. Obscura Photo Vault가 금고 비밀번호에 쓰는 숫자가 이것입니다.

여기에는 솔직하게 덧붙일 단서가 두 가지 있습니다.

기준은 계속 움직입니다. 권장 반복 횟수는 하드웨어가 빨라질수록 올라갑니다. 현재 숫자는 오늘날의 그래픽 칩으로 시험한 결과에서 나왔습니다. 몇 년 전에는 괜찮던 숫자가 지금은 괜찮지 않으며, 오늘의 숫자도 영원히 괜찮지는 않을 것입니다. 공개된 반복 횟수는 날짜가 붙은 주장으로 보세요.

비밀번호의 강도를 몇 배로 늘려 줄 뿐, 비밀번호를 대신하지는 않습니다. 반복은 추측 하나하나의 비용을 크게 늘립니다. 필요한 추측의 수는 바꾸지 않습니다. 적은 선택지 중에서 고른 비밀번호는 600,000회를 반복해도 여전히 약합니다. 공격자는 그 적은 선택지만 차례로 시도하면 되기 때문입니다. 이 과정이 벌어 주는 시간은 비밀번호가 원래 얼마나 추측하기 어려웠는지에 비례합니다.

그래서 어떤 암호화 금고에든 해당하는 실용적인 조언은 따분하지만 옳습니다. 서로 관련 없는 단어로 된 긴 비밀 문구를 쓰고, 안전한 곳에 적어 두세요. 키가 정말로 비밀번호에서 만들어지는 앱이라면, 그 적어 둔 사본이 존재하는 유일한 사본입니다. 이것이 금고 비밀번호를 잊으면 어떻게 되는지에 대한 가이드의 주제입니다.

7. 솔트

솔트는 비밀번호가 키가 되기 전에 비밀번호와 섞는 무작위 데이터입니다. 암호화된 데이터 옆에 저장됩니다. 비밀이 아니며, 비밀일 필요도 없습니다.

솔트의 역할은 공격자가 미리 준비하지 못하게 하는 것입니다. 솔트가 없다면 공격자는 흔한 비밀번호 목록의 키를 한 번 계산해 두고, 그 목록을 앱의 모든 사용자에게 재사용할 수 있습니다. 금고마다 고유한 무작위 솔트가 있으면 그 작업을 대상마다 처음부터 다시 해야 합니다. 여러 사용자에 걸쳐 노력을 공유하는 것이 불가능해집니다.

Obscura Photo Vault는 금고마다 32바이트 무작위 솔트를 쓰며, 금고 파일 자체의 헤더에 저장합니다.

8. 이 모든 것이 막지 못하는 것

위의 모든 내용은 저장된 데이터, 즉 사용되지 않고 저장 공간에 있는 파일에 관한 것입니다. 실제로 쓸모 있는 보호입니다. 하지만 범위가 좁습니다. 저희 보안 문서의 11번 섹션에 그 범위 밖에 있는 것이 정리되어 있습니다. 쉬운 말로 하면 다음과 같습니다.

  • 금고가 열려 있는 동안 해킹된 휴대폰. 사진을 보여 주려면 앱이 사진을 복호화해야 합니다. 그래서 키와 읽을 수 있는 사진이 메모리에 있습니다. 그 순간 앱 안에서 실행되는 것은 무엇이든 둘 다에 접근할 수 있습니다. 앱 수준의 암호화로는 해킹된 휴대폰까지 막아 줄 수 없습니다.
  • 내 비밀번호를 가진 사람. 암호화는 주인과, 주인이 입력하는 것을 지켜본 사람이나 비밀번호를 전해 들은 사람을 구별하지 못합니다.
  • 스크린샷, 화면 기록, 어깨 너머로 보기. 화면에 있는 것은 이미 복호화된 것입니다. 암호화가 다루는 범위 밖입니다.
  • 다른 곳에 만든 사본. 카메라 롤에 아직 남은 원본, 메시지로 보낸 사본, 금고로 옮기기 전에 만들어진 클라우드 백업. 사본 하나를 암호화해도 나머지 사본에는 아무 영향이 없습니다.
  • 앱이 존재한다는 사실. 암호화는 내용을 숨깁니다. 숨길 것이 있다는 사실은 숨기지 않습니다.

구성 요소가 얼마나 좋은지를 다루는 페이지에서 굳이 이 이야기를 하는 이유는 이렇습니다. 실제 실패에서 잘못된 것이 암호화 방식인 경우는 거의 없습니다. 대개 위의 다섯 가지 중 하나입니다.

9. ‘군사급’이라는 말에 대해

이 표현에는 기술적인 의미가 없습니다. 보통 AES를 가리키는데, AES는 누구나 쓸 수 있는 공개 표준이며 군사용으로 따로 정해진 것이 아닙니다. 주요 운영 체제, 브라우저, 메신저 앱이 모두 AES를 씁니다.

문제는 이 표현이 거짓이라는 것이 아닙니다. 아무것도 약속하지 않는다는 것입니다. 방식도, 사용 방법도, 키 크기도, 비밀번호를 키로 바꾸는 과정도 밝히지 않습니다. 그래서 모든 파일을 암호화하는 앱도 거짓 없이 쓸 수 있고, 설정만 암호화하는 앱도 쓸 수 있습니다.

이 표현 자체를 탓하려는 것이 아닙니다. 이 표현을 쓰면서도 쓸모 있는 정보를 알려 주는 설명이 있을 수 있습니다. 확인하려는 사람에게 주장을 쓸모 있게 만드는 것은 그 뒤에 오는 내용입니다. 방식, 모드, 키를 만드는 과정, 반복 횟수, 그리고 무엇이 암호화되는지입니다. 그 표현에서 멈추는 설명은 아무것도 약속하지 않은 것입니다. 이어서 이런 것들을 밝히는 설명은, 무엇으로 시작했든 확인할 수 있습니다.

10. 자주 묻는 질문

AES-256-GCM은 무슨 뜻인가요?

AES는 공개된 암호화 방식입니다. AES-256은 256비트 키를 쓰는 버전입니다. GCM은 데이터가 변조되지 않았는지도 함께 검사하는 사용 방식입니다. 일상에서 가장 중요한 것이 바로 이 검사입니다. 변조된 파일은 조용히 잘못된 데이터로 열리는 대신 아예 열리지 않습니다.

AES-256과 AES-256-GCM은 어떻게 다른가요?

두 번째는 방식뿐 아니라 그 방식을 어떻게 쓰는지까지 밝힌 것입니다. GCM은 변조 검사를 더하므로, 변조된 데이터는 조용히 잘못된 채로 돌아오는 대신 열 때 잡힙니다.

사진 금고 앱은 왜 PBKDF2를 600,000회 반복하나요?

비밀번호는 짧고 추측할 수 있습니다. 암호화 키는 그렇지 않습니다. 그래서 비밀번호는 일부러 느린 과정을 거쳐 키로 바뀌어야 합니다. 반복할 때마다 공격자의 추측 하나하나에 드는 작업이 늘어납니다. 600,000회는 OWASP Password Storage Cheat Sheet가 이 방식, 즉 HMAC-SHA-256을 쓰는 PBKDF2에 권장하는 횟수입니다.

AES-256 암호화는 안전한가요?

AES-256은 공개 표준입니다. 전문가들이 20년 넘게 연구했지만 전체 방식을 깨는 실용적인 방법은 찾지 못했습니다. 실제 앱에서 약점이 방식 자체인 경우는 드뭅니다. 사용 방식의 실수, 추측할 수 있는 비밀번호, 잠금 해제된 휴대폰에 누군가 접근하는 것이 더 일어나기 쉬운 문제입니다.

AES-256이 AES-128보다 나은가요?

키가 클수록 여유가 더 큽니다. 둘 다 오늘날의 방법과 하드웨어로 모든 키를 시도하는 공격에 대해 안전한 것으로 여겨집니다. 실제로 둘 중 무엇을 고르느냐가 앱이 버텨 내는지를 결정할 가능성은 매우 낮습니다.

‘군사급 암호화’는 무슨 뜻인가요?

기술적인 의미는 없습니다. 보통 AES를 가리키는데, AES는 누구나 쓸 수 있는 공개 표준이며 군사용으로 따로 정해진 것이 아닙니다. 이 표현은 방식도, 모드도, 키 크기도 밝히지 않으므로, 모든 것을 암호화하는 앱도 쓸 수 있고 거의 아무것도 암호화하지 않는 앱도 쓸 수 있습니다.

양자 컴퓨터는 AES-256을 깰 수 있나요?

알려진 양자 지름길인 그로버 알고리즘은 이런 키의 강도를 대략 절반으로 줄입니다. 256비트 키라면 그래도 매우 큰 여유가 남습니다. 256비트 키가 장기적으로 합리적인 선택으로 여겨지는 이유 중 하나입니다. 인터넷에서 키를 교환하는 데 쓰이는 종류의 암호화는 AES보다 훨씬 큰 양자 문제를 안고 있습니다.

600,000회 반복이면 잠금 해제가 느린가요?

최신 iPhone에서는 잠금을 해제할 때 한 번 실행되며, 1초 정도 걸립니다. 바로 그 불균형이 핵심입니다. 한 번 할 때는 거의 느껴지지 않지만, 수백만 번 하면 감당할 수 없게 됩니다.

반복 횟수가 많으면 더 약한 비밀번호를 써도 되나요?

아니요, 그리고 이것이 가장 흔한 오해입니다. 반복 횟수가 많으면 추측 하나하나의 비용이 커집니다. 약한 비밀번호에 필요한 추측의 수를 줄여 주지는 않습니다. 짧은 비밀번호는 여전히 약합니다.

출처

Obscura Photo Vault

iPhone용 암호화 사진 금고입니다. 사진과 동영상은 기기에서 AES-256-GCM으로 암호화됩니다. 계정도, 서버도, 분석 도구도 없으며, 네트워크 연결 없이 작동합니다. 비밀번호를 잊으면 저희를 포함해 누구도 내용을 복구할 수 없습니다.

App Store에서 보기 →