AES-GCM 암호화란
이 페이지는 일본어 원문을 기계 번역한 것입니다. 일본어 원문 보기
AES-GCM은 암호화와 변조 검증을 결합한 방식입니다. Nonce·인증 태그의 역할, 다른 방식과의 차이점, 앱에서의 보호 범위를 설명하고, 브라우저에서 검증 실패를 시도할 수 있습니다.
업데이트: 2026년 9월 9일. NIST·IETF·Apple의 1차 자료와 SimpleMemo 공개 버전 5.8.26의 구현을 확인했습니다. 필자는 SimpleMemo의 개발자입니다.
암호문·논스·태그는 무엇을 하나요?
AES는 공통키 암호이며, GCM은 그 동작 모드입니다. AES-GCM은 암호화되는 본문과 암호화하지 않고 인증하는 추가 데이터(AAD)를 다루는 AEAD입니다. 예를 들어 본문을 숨기면서 형식의 버전 번호를 본문과 연결하여 검증할 수 있습니다. AAD 자체는 비밀이 되지 않습니다.
nonce(IV)는 암호화별 값이며, 동일한 키로 재사용되지 않도록 설계가 필요합니다. 비밀 열쇠는 역할이 다르며, 암호문과 함께 저장할 수 있습니다. 인증 태그는 복호 시 검증에 사용합니다. 검증에 실패한 데이터는 채택하지 않으며, 오류로 처리합니다.
방식의 정의:NIST SP 800-38D. 입력 및 nonce 조건: RFC 5116.
암호문을 바꾸면 어떻게 되나요?
이 페이지에 준비된 예문만 브라우저의 Web Crypto API로 처리합니다. 먼저 암호화한 뒤 원래대로 복구할 수 있는지 확인하고, 다음에는 암호문 사본의 1비트를 바꿔 검증합니다. 앱의 암호화 처리를 감사하는 데모가 아닙니다.
예문: Review the draft at 10:00.
첫 번째 버튼부터 시도할 수 있습니다.
처리 중...
검증 성공: 원본 예문으로 복호할 수 있었습니다.
검증 실패: 변경한 암호문이 거부되었으며, 평문은 반환되지 않았습니다.
처리를 완료할 수 없었습니다. 첫 번째 버튼부터 다시 할 수 있습니다.
이 환경에서는 데모를 실행할 수 없습니다. HTTPS 지원 브라우저와 JavaScript이 필요합니다.
- nonce(12바이트)
- 원본 암호문(16진수)
- 인증 태그(16바이트)
실행할 때마다 새로운 256 비트 키와 nonce를 생성합니다. 데모는 키나 결과를 저장·전송하지 않습니다. 탭을 다시 로드하면 결과가 초기화됩니다. 구조: Web Cryptography API의 AES-GCM.
AES-CBC·ChaCha20-Poly1305와의 차이
방식의 차이는 다음과 같습니다. 속도는 단말기와 구현에 따라 달라지며, 이 표는 실제 측정 순위가 아닙니다. CBC를 사용하고 있다는 정보만으로는 인증을 결합한 제품 전체의 안전성을 판단할 수 없습니다.
| 항목 | AES-GCM | AES-CBC | ChaCha20-Poly1305 |
|---|---|---|---|
| 암호화와 인증 | 일체형(AEAD) | CBC 단독은 암호화만 | 일체형(AEAD) |
| AES 사용 | 사용 | 사용 | 사용하지 않음 |
| 설계에서 확인하는 것 | 키·논스·태그·사용량 상한 | 인증과의 결합·IV·패딩 처리 | 키·논스·태그·사용량 상한 |
TLS 1.3은 AES-GCM만의 규격이 아닙니다. RFC 8446 §9.1는 AES-128-GCM의 구현을 필수로 하며, AES-256-GCM 및 ChaCha20-Poly1305도 권장하고 있습니다. ChaCha20-Poly1305의 사양은 RFC 8439를 참조하십시오.
SimpleMemo에서는 어떤 데이터를 보호합니까?
확인한 공개 버전의 로컬 저장 처리는 Apple의 CryptoKit에 의한 AES-GCM 및 Keychain 관리 키를 사용합니다. 새로 생성할 키는 256비트입니다. Outbox은 전송 대기 데이터의 보관 장소이며, 이 암호화를 근거로 “메일도 전송 대상까지 E2E 암호화된다”고 말할 수 없습니다.
이 구현은 대칭 키를 키체인에서 읽어 사용하여 사용합니다. Keychain에 저장한 키와 Secure Enclave 내에서 생성·이용하는 비밀키는 동일한 설명이 아닙니다. Apple의CryptoKit키 저장와Secure Enclave의 키가 사용 구분을 설명하고 있습니다.
메일 전송에서는 앱의 중계 처리와 배송 사업자를 거쳐 수신 측에도 복사본이 남습니다. 암호화 방식과 함께, 개인정보 보호정책, 수신인 설정 및 도착 확인, 단말기·메일 계정 관리를 확인해 주시기 바랍니다. Outbox에서 항목이 사라지는 것과 모든 복사본을 완전히 삭제하는 것은 별개입니다.
자주 묻는 질문
AES-256-GCM의 “256”은 무엇입니까?
AES의 키 길이가 256비트라는 의미입니다. Nonce나 인증 태그의 길이, 단말 전체의 안전성을 나타내는 숫자는 아닙니다.
nonce는 비밀로 해야 합니까?
nonce는 비밀키와 달리 암호문에 붙여 저장할 수 있습니다. 중요한 것은 같은 키로 암호화할 때 nonce를 재사용하지 않는 것입니다.
태그 검증에 실패하면 본문을 표시해도 될까요?
검증에 실패한 결과를 올바른 평문으로 사용해서는 안 됩니다. 손상·다른 키·변경된 데이터 등을 분리하여 인증 오류를 처리합니다.
AES-GCM을 사용하면 E2E 암호화가 되나요?
방식명만으로는 결정되지 않습니다. 키를 누가 가지고, 어디에서 복호되는지를 포함한 시스템 전체 설계가 필요합니다. 단말기 내 Outbox 암호화와 메일 전송·수신처에 저장하는 것은 별개의 범위입니다.
키체인 저장이라면 키가 Secure Enclave에서 나오지 않나요?
그렇다고는 할 수 없습니다. 이 앱에서 확인한 구현은 키체인에서 대칭키 데이터를 읽어 사용하여 사용합니다. Secure Enclave 내에서 비밀키 연산을 수행하는 API와 동일한 것이 아닙니다.