AES-256-GCM とは?
AES-256-GCM は、256 ビット鍵の Advanced Encryption Standard と Galois/Counter Mode を組み合わせた対称暗号アルゴリズムで、1 回の処理でデータの機密性と完全性の検証を同時に提供します。
別名: AES, AES-256, Advanced Encryption Standard, Galois/Counter Mode
AES(Advanced Encryption Standard)は世界で最も広く使われている対称暗号アルゴリズムです。NIST が承認しており、政府機関、金融機関、セキュリティが重要なアプリケーションで世界中に採用されています。「256」は鍵長(ビット数)を表し、ブルートフォース攻撃で攻撃者が試みるべき鍵の候補数を決定します。2^256 通りという数は、観測可能な宇宙の原子数を上回ります。
GCM(Galois/Counter Mode)は認証付き暗号化モードで、AES が提供する機密性に加えて完全性検証を追加します。CBC や ECB のような単純なモードとは異なり、GCM は暗号文と共に認証タグを生成します。このタグにより、受信者は保存中や転送中に暗号化データが改ざんされていないかを確認できます。暗号文の 1 ビットでも変更されると、不正な出力を生成する代わりに復号が完全に失敗します。
AES-256 と GCM の組み合わせは、利用可能な認証付き暗号化設定の中で最も強力なものの一つとされています。ハードウェアアクセラレーションにより、ブラウザやモバイルデバイスで動作するほど効率的であり、機密情報の保護に求められるセキュリティマージンを提供します。暗号化操作ごとにランダムな初期化ベクトル(IV)を使用することで、同じ平文を 2 回暗号化しても異なる暗号文が生成されます。
Tamper with ciphertext — GCM catches it
AES-256-GCM ships with a built-in 128-bit authentication tag. Flip one character of the ciphertext below, then decrypt: GCM refuses to return any plaintext at all.
This is the defining property of GCM versus older modes like CBC: any bit-flip in the ciphertext — accidental corruption or active attack — is detected during decryption. No silently-garbled plaintext, no padding-oracle leakage.
Vaulted における AES-256-GCM の使われ方
Vaulted は、Web Crypto API を通じてブラウザ内で完全に実行される唯一の暗号アルゴリズムとして AES-256-GCM を使用しています。シークレットを作成すると、ランダムな 256 ビット鍵と 12 バイトの IV がクライアント側で生成されます。平文は AES-256-GCM で暗号化され、暗号文と認証タグが生成されます。サーバーに送信されるのは暗号文と IV のみで、鍵は URL フラグメントに残り、デバイスから外に出ることはありません。受信側では、認証タグによってサーバーへの保存中に暗号文が改ざんされていないことを確認します。