用語集 — セキュリティ

AES-GCM暗号化とは

AES-GCMは暗号化と改ざんの検証を組み合わせる方式です。nonce・認証タグの役割、他の方式との違い、アプリでの保護範囲を解説し、ブラウザで検証失敗を試せます。

AES-GCMは、文章を暗号化すると同時に、鍵を使って改ざんを検証する方式です。鍵・nonce・認証タグを正しく扱うことが前提です。暗号方式の名前だけでは、メールの送信先やバックアップまで含めた保護範囲は決まりません。

更新:2026年9月9日。NIST・IETF・Appleの一次資料と、シンプルメモ公開版5.8.26の実装を確認しました。筆者はシンプルメモの開発者です。

暗号文・nonce・タグは何をする?

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が必要です。

実行するたびに新しい256ビット鍵とnonceを作ります。デモは鍵や結果の保存・送信を行いません。タブを再読み込みすると結果はリセットされます。仕組み:Web Cryptography APIのAES-GCM

AES-CBC・ChaCha20-Poly1305との違い

方式の違いは次のとおりです。速度は端末や実装で変わり、この表は実測ランキングではありません。CBCを使っているという情報だけで、認証を組み合わせた製品全体の安全性は判断できません。

項目AES-GCMAES-CBCChaCha20-Poly1305
暗号化と認証一体型(AEAD)CBC単体は暗号化のみ一体型(AEAD)
AESの使用使用する使用する使用しない
設計で確認すること鍵・nonce・タグ・利用量の上限認証との組み合わせ・IV・パディング処理鍵・nonce・タグ・利用量の上限

TLS 1.3はAES-GCMだけの規格ではありません。RFC 8446 §9.1はAES-128-GCMの実装を必須とし、AES-256-GCMとChaCha20-Poly1305も推奨しています。ChaCha20-Poly1305の仕様はRFC 8439を参照してください。

シンプルメモでは、どのデータを守る?

確認した公開版のローカル保存処理は、AppleのCryptoKitによるAES-GCMとKeychain管理の鍵を使います。新規に生成する鍵は256ビットです。Outboxは送信待ちデータの保管場所であり、この暗号化を根拠に「メールも送信先までE2E暗号化される」とは言えません。

この実装は対称鍵をKeychainから読み出して使います。Keychainに保存した鍵と、Secure Enclave内で生成・利用する秘密鍵は同じ説明ではありません。AppleのCryptoKit鍵の保存Secure Enclaveの鍵が、使い分けを説明しています。

メール送信ではアプリの中継処理と配送事業者を経由し、受信側にもコピーが残ります。暗号化方式と合わせて、プライバシーポリシー宛先設定と到着確認、端末・メールアカウントの管理を確認してください。Outboxから項目が消えることと、あらゆるコピーの完全消去は別です。

よくある質問

AES-256-GCMの「256」は何ですか?

AESの鍵の長さが256ビットという意味です。nonceや認証タグの長さ、端末全体の安全性を表す数字ではありません。

nonceは秘密にする必要がありますか?

nonceは秘密鍵とは異なり、暗号文に添えて保存できます。重要なのは、同じ鍵で暗号化するときにnonceを再利用しないことです。

タグの検証に失敗したら、本文を表示してよいですか?

検証に失敗した結果を正しい平文として使ってはいけません。破損・違う鍵・変更されたデータなどを切り分け、認証エラーを扱います。

AES-GCMを使えばE2E暗号化になりますか?

方式名だけでは決まりません。誰が鍵を持ち、どこで復号されるかを含むシステム全体の設計が必要です。端末内のOutbox暗号化と、メールの配送・受信先での保存は別の範囲です。

Keychain保存なら鍵はSecure Enclaveから出ませんか?

そうとは限りません。このアプリの確認した実装は、Keychainから対称鍵のデータを読み出して使います。Secure Enclave内で秘密鍵の演算をするAPIと同じものではありません。

送り先を決めて、文字メモを残す
シンプルメモはiPhoneで書いた文字を、設定したメール宛先やObsidianへ残すアプリです。連携と保存先の設定を確認して始められます。
App Store からダウンロード

関連ページ