AES-256暗号化とは?誇張なしでわかりやすく解説
「AES-256で暗号化」という言葉は、ほとんどのプライバシーアプリの機能一覧に載っています。これは本当に意味のある主張ですが、同時にシステムの中で最も壊れにくい部分でもあります。このガイドでは、AES-256が何をするのか、GCMのような追加の文字が何を意味するのか、そしてパターンやパスワードを鍵に変える工程にこそ注目すべき理由を説明します。
AESとは
AES(Advanced Encryption Standard)とは、暗号化と復号に同じ秘密鍵を使い、データを128ビットのブロック単位で処理する共通鍵ブロック暗号です。米国国立標準技術研究所(NIST)が数年にわたる公開コンペを経て2001年に選定したもので、採用された設計「Rijndael」はベルギーの2人の暗号研究者によるものです。
現在、AESはHTTPS通信、Wi-Fi、ディスク暗号化、そして最近のすべてのiPhoneのハードウェアなど、あらゆる場所で使われています。この普及ぶりは強みです。20年以上にわたって暗号研究者に分析されてきましたし、多くのプロセッサがハードウェアで高速化しています。
鍵の長さ
AESには3つの鍵長があります。
| 種類 | 鍵長 | ラウンド数 | 鍵の組み合わせ |
|---|---|---|---|
| AES-128 | 128ビット | 10 | 約3.4 × 10³⁸ |
| AES-192 | 192ビット | 12 | 約6.3 × 10⁵⁷ |
| AES-256 | 256ビット | 14 | 約1.2 × 10⁷⁷ |
AES-256の数字がどれほど大きいかというと、観測可能な宇宙にある原子の数のよく知られた推定値に近い規模です。すべての鍵を試すことは、コンピュータが速くなれば解決する問題ではなく、物理的に手が届かないのです。
利用モード:「GCM」が重要な理由
ブロック暗号は、それだけでは16バイトのブロック1つを変換するにすぎません。ファイル全体を安全に暗号化する方法を定めるのが利用モードです。古いモードは秘匿性しか提供しなかったため、攻撃者が暗号文のビットを反転させて、復号後のデータに予測どおりの変化を起こせる場合がありました。
GCM(Galois/Counter Mode)は認証付き暗号のモードです。 データを暗号化すると同時に、そのデータに対する認証タグを計算します。復号するときは最初にタグを検証し、ファイルが改ざんされていたり壊れていたりすれば、変更された内容を返すのではなく、復号がきちんと失敗します。
GCMには厳格なルールが1つあります。同じ鍵のもとでノンス(一度だけ使う数値)を絶対に繰り返してはいけません。よく設計されたシステムは、ファイルごとに別の鍵を使うなど、構造的にこのリスクを避けています。
本当に安全性を決める部分:鍵導出
ロック付きアプリの「AES-256」について、あまり語られない事実があります。256ビットの鍵を直接攻撃する人はいません。狙われるのは、あなたが覚えているほうです。
パターン、PIN、パスワードは短いものです。**鍵導出関数(KDF)**とは、その短い秘密を十分な長さの鍵に変換する処理です。KDFが高速なら、暗号化データをコピーした攻撃者は数十億回の推測を試せます。意図的に低速にしてあれば、推測1回ごとに実際の時間と計算資源がかかります。
PBKDF2が攻撃者を遅らせる仕組み
PBKDF2(Password-Based Key Derivation Function 2)は、広く使われている標準化されたKDFです。秘密を鍵付きハッシュ関数(HMAC)に何十万回も通し、さらにソルトを混ぜ込みます。ソルトとはランダムな値で、ほかの人が同じ秘密を選んでいても、導出される鍵を一人ひとり異なるものにします。
- 反復回数は、推測1回あたりのコストを何倍にもします。数十万回の反復なら、1マイクロ秒で済むはずの推測に、体感できるほどの時間がかかります。
- ソルトは事前計算テーブルを無効にします。攻撃者は「パターン → 鍵」の巨大な一覧を1つ作って複数のデバイスで使い回すことができません。
それでも、攻撃者が最初に試す数千通りに入っている秘密は、どんなKDFでも救えません。だからこそ、パターン、PIN、Face IDの比較ガイドで解説している強い秘密の選び方は、暗号方式と同じくらい重要です。パターン強度チェッカーでは、似た形のパターン(本物は絶対に入力しないでください)を試せます。
量子コンピュータの問題
量子コンピュータは、ある種の暗号には深刻な脅威となりますが、別の種類の暗号への影響はわずかです。
- RSAや楕円曲線暗号のような公開鍵暗号は、十分に大きな量子コンピュータがあればShorのアルゴリズムで破られる可能性があります。業界全体でポスト量子の鍵交換が導入されつつあるのはそのためです。
- AESのような共通鍵暗号に関係するのは、総当たり探索を2乗の速さにするGroverのアルゴリズムです。実際には実効的な鍵長がほぼ半分になり、量子攻撃に対するAES-256の安全性は約128ビット相当になります。
128ビットの安全性は今でも強力とされています。長期間にわたって機密を保つ必要があるデータにAES-256が推奨される理由のひとつです。
よくある誤解
- 機能一覧の最上級の表現には意味がある。 ありません。AESは銀行、ブラウザ、メッセージアプリが共通して使う公開の標準です。その前に付く大げさな形容詞はマーケティングにすぎません。
- AES-256を使っていればアプリは安全。 安全になるのは暗号化されたバイト列です。システム全体が安全かどうかは、鍵の扱い、KDF、ロック解除の設計、バックアップ、ほかの場所に残ったコピーで決まります。
- 鍵を長くすれば弱いパスワードを補える。 補えません。「1234」から導出した256ビットの鍵は、「1234」と同じ強さしかありません。
VelcryptでのAES-256の使い方
Velcryptの設計は、上で説明した原則に従っています。強い暗号方式、慎重な鍵の扱い、低速な鍵導出です。
- 暗号方式: Apple CryptoKitによるAES-256-GCM。すべてのファイルが暗号化され、認証されます。
- 鍵導出: パターンは、60万回以上の反復と、iOSのキーチェーンに保存されたデバイスごとのランダムなソルトを使い、PBKDF2-HMAC-SHA512で処理されます。
- 鍵の階層: 保管庫ごとにランダムな256ビットのマスター鍵があり、ファイルごとの鍵はそこからHKDFで導出されます。ファイルごとに鍵を分けることで、GCMのノンスのルールも守りやすくなります。
- 追加の層: Velcrypt独自の暗号化に加えて、iOSのデータ保護(完全な保護クラス)がファイルに適用されます。
- 端末内のみ: アカウントもサーバーもないため、あなたの鍵のコピーはほかのどこにも存在しません。
暗号化の機能ページではこの内容をまとめており、セキュリティの概要では、パターンを描くところを見られる場合や、保管庫を開いたままiPhoneを渡してしまう場合など、暗号化では守れないことを明確に説明しています。
よくある質問
AES-256は解読されることがありますか?
総当たりより速くAES-256の鍵を取り出せる実用的な攻撃は知られておらず、256ビットの鍵を総当たりするのは想像しうるどんなコンピュータでも不可能です。現実の情報漏えいは、弱いパスワード、盗まれた鍵、暗号の周辺のバグが原因で、AESそのものではありません。
AES-128とAES-256の違いは何ですか?
同じアルゴリズムで、鍵の長さとラウンド数が違います。128ビットの鍵で10ラウンド、256ビットの鍵で14ラウンドです。AES-128もすでに安全とされていますが、AES-256は将来の量子攻撃も含めて大きな余裕を持たせます。
AES-256-GCMのGCMとはどういう意味ですか?
GCM(Galois/Counter Mode)は、データの暗号化と同時に認証タグを生成する利用モードです。暗号化されたファイルが1ビットでも変更されると、壊れたデータや改ざんされたデータを返す代わりに、復号そのものが失敗します。
AES-256は量子コンピュータに耐えられますか?
一般に量子耐性があると考えられています。理論上、Groverのアルゴリズムは実効的な鍵の強さを約128ビットまで半減させますが、それでも安全とみなされています。量子コンピュータが大きな脅威となるのは、AESよりもRSAのような公開鍵暗号のほうです。
AES-256を使うアプリでも、強いパスワードやパターンが必要なのはなぜですか?
攻撃者は256ビットの鍵を推測するのではなく、鍵の元になる短い秘密を推測するからです。その秘密がよく使われる数千通りのひとつなら、低速な鍵導出でも稼げる時間は限られます。