単純な心構え

番号付きの改ざん防止シールが貼られた、施錠された輸送ケースを想像してください。暗号化は中身を隠し、認証はケースやそのラベルが変えられたかどうかを検出します。この比喩は完全ではありませんが、暗号化された保管庫が単にバイト列をかき混ぜるだけでなく、改変された記録を拒否すべき理由を説明しています。

重要な4つの要素

同じ鍵で GCM のノンスを再利用すると、安全性を大きく損なう可能性があります。したがって優れた暗号技術は、アルゴリズム名だけでなく、フォーマットの設計、乱数、鍵のライフサイクル、エラー処理、文脈の結び付けに依存します。

例:ある保管庫が、同一の写真2枚を異なるノンスで暗号化します。その暗号文は異なるはずです。攻撃者が一方のファイルのチャンクを他方へ入れ替えた場合、認証された文脈とタグによって、破損した平文を表示する代わりに、その記録が拒否されるはずです。

  • 鍵:暗号化と復号を承認する秘密の素材。
  • ノンス:ある鍵のもとで、暗号化のたびに一意でなければならない値。
  • 暗号文:ディスクやバックアップに保存される、保護された形式。
  • 認証タグ:復号結果を受け入れる前に検証される証拠。

ファイル名とサムネイルが重要な理由

元の画像のバイト列だけを暗号化しても、名前、日付、プレビュー、メモ、アルバムへの所属が分かってしまうことがあります。NullVault は、ファイルの内容、ファイル名、メタデータ、アプリが管理するプレビューを暗号化してから、アプリのプライベートストレージに保存するよう設計されています。

AES-256-GCM で解決できないこと

予測可能な人間のパターンを、ランダムな暗号鍵に変えることはできません。だからこそ鍵導出が重要になります。また、画面上で正当に開かれている間のコンテンツを守ることも、書き出したファイルを取り除くことも、侵害されたオペレーティングシステムを打ち負かすことも、端末紛失後の復旧を保証することもできません。

NullVault のより広い設計は「セキュリティアーキテクチャ」に文書化されています。人間側の秘密情報については、「NullVault がパターンに Argon2id を使う理由」へ進んでください。

標準に関する参照情報

GCM は NIST の SP 800-38D で標準化されています。アルゴリズムの名前は監査ではありません。実際の保護は、実装の詳細と周囲のシステムが決めます。

ガイド確認日:2026年8月28日。

Maya はまず、機微でないデータでテストします。「専門用語なしで理解する AES-256-GCM を検討するにあたり、まず機微でない項目を1つ使う」。次に Maya は2つ目の確認手順に従います。「該当するアプリまたは端末をロックし、新しいセッションから結果を確認する」。この架空のシナリオは判断の流れを示すものであり、製品テストの報告ではありません。

  • 「専門用語なしで理解する AES-256-GCM」で説明した結果は、エクスポート済み、共有済み、キャッシュ済み、クラウド同期済みのコピーを自動的には対象としません。
  • 認証情報の紛失、アプリコンテナの削除、端末の初期化、未検証のバックアップにより、保護されたデータが利用できなくなることがあります。

GCM の部分は、単なる AES に何を加えるのですか?

認証です。GCM は暗号文とあわせて認証タグを生成するため、アプリケーションは改変されたデータを検出して拒否でき、破損または改ざんされたコンテンツを復号せずに済みます。

ノンスはなぜ一意でなければならないのですか?

同じ鍵でノンスを再利用すると、そのモードが与える保証が損なわれ、暗号化されたメッセージ同士の関係が露出し得ます。暗号化ごとに一意の値を使うことは、推奨ではなく要件です。

このガイドの一次情報源