AES暗号化・復号化ツール

6つのモードと5つのパディングオプションを備えたプロフェッショナルAES

暗号化設定

入力内容
文字数: 0
バイト数: 0
変換結果
文字数: 0
バイト数: 0

AES暗号化とは?

AES(Advanced Encryption Standard)は現在世界中で最も広く使用されている対称暗号化アルゴリズムで、NSAによって最高機密情報の保護に承認されています。AESはベルギーの暗号学者Joan DaemenとVincent Rijmenが設計したRijndael暗号から発展し、2001年にNISTによって正式に発行され、安全性が低下したDESアルゴリズムの代替となりました。 AESは固定ブロックサイズ128ビット(16バイト)のブロック暗号化を使用し、128、192、256ビットの3つのキー長をサポートし、AES-128、AES-192、AES-256の3つのセキュリティレベルに対応します。キーが長くなるほどセキュリティは高くなりますが、暗号化・復号化の速度はわずかに低下します。対称暗号化アルゴリズムとして、AESは暗号化と復号化に同じキーを使用するため、非対称暗号化アルゴリズムよりはるかに効率的です。 AESの応用範囲は非常に広く、ネットワークセキュリティではTLS/SSLプロトコルがWeb閲覧とメール転送を保護するためにAESを使用し、ストレージセキュリティではBitLocker、FileVaultなどのディスク暗号化ツールがユーザーデータの暗号化にAESを採用し、データベースセキュリティでは多くのシステムがAES列レベル暗号化をサポートし、IoTではデバイス間の安全な通信に広く使用されています。このツールはAESの全6つの暗号化モード(ECB、CBC、CFB、OFB、CTR、GCM)と5つのパディング方式をサポートし、さまざまな暗号化ニーズに対応します。

使い方

基本操作

  1. 暗号化モードを選択(GCM推奨、暗号化+完全性検証を提供)
  2. パディング方式を選択(GCM/CFB/OFB/CTRモードは自動的にパディングなし)
  3. キー長を選択(256ビットが最高セキュリティ、128ビットが最高性能)
  4. キーを入力または「ランダムキー生成」をクリックして自動作成
  5. IVが必要なモードでは、初期化ベクトルを入力または生成
  6. 左側入力ボックスに平文(暗号化)または暗号文(復号化)を入力
  7. 右側に暗号化または復号化結果が自動表示
  8. 「コピー」ボタンで結果をコピー、「スワップ」ボタンで入出力を交換

暗号化モード

GCMGalois/Counter Mode、推奨。暗号化と認証の二重保護を提供、パディング不要、並列処理対応、ネットワーク伝送とTLSプロトコルに最適
CBCCipher Block Chaining、クラシックモード。各平文ブロックを前の暗号文ブロックとXORしてから暗号化、パディングとIV必要、良好なセキュリティだが並列非対応
CFBCipher Feedback、フィードバックモード。ブロック暗号をストリーム暗号に変換、パディング不要、ストリーミングデータに適用、リアルタイム暗号化対応
OFBOutput Feedback、出力フィードバックモード。CFBと類似だがエラーが伝播しない、ノイズチャネルに適用、パディング不要
CTRCounter、カウンターモード。インクリメントカウンターでキーストリーム生成、パディング不要、完全並列暗号化対応、優れた性能
ECBElectronic Codebook、非推奨。同じ平文が同じ暗号文を生成、データパターンを漏洩、単一データブロックの暗号化のみに適用

パディング方式

PKCS7PKCS#7パディング、最も一般的で推奨。値NのNバイトを自動パディング、復号化時に正確に除去可能、曖昧さなし
ZeroPaddingゼロパディング。不足部分を0x00バイトでパディング、シンプルだがデータ末尾がゼロバイトの場合曖昧さが生じる可能性
NoPaddingパディングなし。データ長が16バイトの整数倍である必要、ストリームモードまたは既知長データに適用
ISO7859ISO/IEC 7816-4パディング。最初のパディングバイトが0x80、後続は0x00、スマートカードや金融分野で広く使用
ANSIX923ANSI X.923パディング。パディングバイトはすべて0x00、最後のバイトがパディング長を示す、金融データ交換で一般的

使用のヒント

  • キーは暗号学的に安全な乱数生成を使用し、推測しやすい文字列は避ける
  • 暗号化ごとに異なるランダムIVを使用し、IVの再利用は厳禁
  • GCMモードのIVは12バイト(96ビット)推奨、性能とセキュリティの最適バランス
  • 大量データの暗号化では、CTRとGCMモードが並列処理に対応し高速
  • キーとIVは16進数、テキスト、Base64形式で入力可能
  • 16進数キー長:128ビット=32文字、192ビット=48文字、256ビット=64文字

使用例

基本暗号化

CBCモードでテキストを暗号化

平文:Hello, World!
キー:0123456789abcdef0123456789abcdef
IV:fedcba9876543210fedcba9876543210
モード:CBC / PKCS#7 / 128ビット
暗号文(16進数):7a8b9c0d1e2f...

GCM認証暗号化

推奨のGCMモードで暗号化+完全性保護

平文:機密データ
キー:ランダム生成256ビットキー
IV:ランダム生成12バイト
モード:GCM / パディングなし / 256ビット
暗号文:IVが自動的に先頭に付加

ファイル内容の暗号化

設定ファイルや機密データを暗号化

ファイル内容を入力ボックスに貼り付け
AES-256-CBCモードを選択
キーとIVを生成して保存
暗号化された内容を安全に保存または転送

よくある質問

Q: どの暗号化モードを選ぶべき?

A: GCMモードを推奨。暗号化とデータ完全性検証をGHASH認証タグで提供し、暗号文の改ざんを防止。GCMはTLS 1.3のデフォルト暗号で、最も安全なAESモードと広く認識されています。完全性検証が不要な場合、CBCはクラシックな選択です。CTRは高性能並列暗号化に適しています。ECBは安全性が低くデータパターンを漏洩するため避けてください。

Q: ECBモードが安全ではない理由は?

A: ECBモードは同じ平文ブロックに対して同じ暗号文ブロックを生成するため、暗号化後もデータパターンが保持されます。最も有名な例はECBモードで暗号化された画像で、ピクセル値は暗号化されても画像の全体像が明確に見えることです。さらに、ECBモードはリプレイ攻撃やブロック置換攻撃に対して脆弱です。実践では常にCBC、GCMなどのより安全なモードを使用してください。

Q: キー長の選び方は?

A: AES-256は最高のセキュリティを提供し、NSAによって最高機密(TOP SECRET)情報の保護に承認されており、高セキュリティニーズに適しています。AES-192は中程度のセキュリティで機密情報に適用。AES-128は一般アプリケーションに十分安全で、わずかに高速。量子コンピュータ時代では、AES-256はGroverアルゴリズムの脅威に耐えると考えられ、推奨されます。

Q: IVとは何?なぜ必要?

A: IV(初期化ベクトル)は、同じ平文が異なる暗号化プロセスで完全に異なる暗号文を生成するための追加入力パラメータです。IVがなければ、同じ平文は常に同じ暗号文を生成し、攻撃者は暗号文パターンを観察して平文情報を推測できます。ECBを除く他のモードはすべてIVが必要です。CBC、CFB、OFBモードは16バイトIV、GCMは12バイト(96ビット)IV推奨。IVは秘密にする必要はありませんが、暗号化ごとに異なるランダムIVを使用する必要があります。

Q: キーの安全な保存・伝送方法は?

A: キーは暗号化システムの核心であり、厳格に保護する必要があります。保存:プロフェッショナルなKey Management System(KMS)またはHardware Security Module(HSM)の使用を推奨、コードへのハードコードや設定ファイルへの平文保存は避ける。伝送:安全チャネル(TLS/SSL)経由でキーを伝送、メール、チャットツールなどの安全でないチャネルは避ける。キーのローテーションも重要なセキュリティ実践で、定期的なキー交換によりキー漏洩リスクを低減します。

Q: 暗号化データが元のデータより長いのはなぜ?

A: 暗号文が平文より長い主な理由は3つ:1)パディング:ブロック暗号化モードではデータを16バイトの整数倍にパディングする必要があり、1バイトでも足りなければブロック全体が追加される;2)IV:CBC、GCMなどのモードではIVが暗号文の先頭に追加され、12〜16バイト増加;3)エンコーディング:出力形式(16進数またはBase64)がデータサイズを増加させ、16進数は2倍、Base64は約33%増加。

Q: このツールの暗号化は安全?

A: このツールはaes-jsライブラリを使用してブラウザで標準AESアルゴリズムを実行し、アルゴリズム実装は安全です。ただし、1)ブラウザ環境は専用暗号化デバイスより安全性が低い;2)キーはブラウザ拡張機能やコンソールを通じて漏洩する可能性;3)このツールは学習、テスト、一般的な用途に適しており、本番環境ではプロフェッショナルな暗号化サービスの使用を推奨。すべてのデータ処理はブラウザ内でローカルに実行され、サーバーにアップロードされません。

Q: GCMモードと他のモードの違いは?

A: GCM(Galois/Counter Mode)は認証暗号化モードで、他のモードとの主な違いは:1)GCMは暗号化とデータ完全性検証(認証)を同時提供、他のモードは暗号化のみ;2)GCMは12バイトIV使用、他のモードは通常16バイト;3)GCMは暗号化時に認証タグを暗号文末尾に追加、復号化時にタグを検証してデータ改ざんを確認;4)GCMは並列処理対応でCBCより高性能。このツールのGCM実装はIVを暗号文先頭に自動付加し、復号化時に自動抽出します。

Q: パディングが必要なのはどのような場合?

A: ブロック暗号化モード(ECB、CBC)ではデータ長が16バイトの整数倍である必要があるため、パディングが必要です。ストリームモード(CFB、OFB、CTR、GCM)はブロック暗号をストリーム暗号に変換するため、パディング不要です。ストリームモードを選択した場合、このツールは自動的にパディングなしに設定します。パディング方式の選択:PKCS#7は最も一般的で曖昧さのない方式、ISO 7816-4とANSI X.923は特定業界標準向け、ゼロパディングはシンプルだが曖昧さが生じる可能性。

Q: 暗号化結果の正しさを検証する方法は?

A: 暗号化結果を検証する最良の方法は、同じキーとIVで復号化し、元の平文を復元できるか確認することです。手順:1)暗号化時に使用したキー、IV、モード、パディング方式を記録;2)暗号文を入力ボックスに貼り付け、復号化モードに切り替え;3)まったく同じキー、IV、モード、パディング方式を使用;4)復号化結果が元の平文と一致すれば暗号化は正しい。GCMモードは追加の完全性検証を提供し、暗号文が改ざんされた場合は復号化が失敗します。