CoderTools

AES暗号化・復号化ツール | CoderTools

CBC、ECBなど複数のモードをサポートするオンラインAES暗号化・復号化ツール。テキストとファイルの暗号化に対応。

AES暗号化について

AES(Advanced Encryption Standard、高度暗号化標準)は、2001年にNISTによって発表された対称鍵暗号アルゴリズムです。AESは最も広く使用されている暗号化アルゴリズムの1つであり、米国連邦政府によって暗号化標準として採用されています。

AESは128、192、256ビットの鍵長をサポートし、異なるレベルのセキュリティを提供します。AES-256は最も安全とされ、現在最も強力なコンピュータを使用しても合理的な時間内に解読することはできません。

暗号化モードの説明

  • CBC: CBC(Cipher Block Chaining):各平文ブロックは、暗号化前に前の暗号文ブロックとXOR演算されます。IVが必要で、より安全、推奨されます。
  • ECB: ECB(Electronic Codebook):平文を固定サイズのブロックに分割し、各ブロックを独立して暗号化します。IVは不要ですが、セキュリティが低く、機密データの暗号化には推奨されません。
  • CTR: CTR(Counter):カウンタを増分してキーストリームを生成することで、ブロック暗号をストリーム暗号に変換します。IVが必要で、並列暗号化が可能、高性能シナリオに適しています。
  • CFB: CFB(Cipher Feedback):前の暗号文ブロックを次のブロックの入力として使用し、ブロック暗号をストリーム暗号に変換します。IVが必要です。
  • OFB: OFB(Output Feedback):暗号化アルゴリズムの出力を入力端にフィードバックし、ブロック暗号をストリーム暗号に変換します。IVが必要です。

暗号化モード比較

モード セキュリティ 速度 並列処理 エラー伝播 推奨事項
CBC 中速 復号化のみ 隣接ブロックに限定 最も広く使用され、一般的な暗号化ニーズに適しています
ECB 高速 完全対応 伝播なし 推奨されません - セキュリティ上の脆弱性があります
CTR 高速 完全対応 伝播なし 高性能シナリオに適し、ストリーミングをサポート
CFB 中速 復号化のみ 隣接ブロックに限定 ストリーム暗号化シナリオに適しています
OFB 中速 非対応 伝播なし エラー許容が必要なシナリオに適しています

セキュリティの推奨事項

  • 1. 強力なキーを使用:キーはランダムに生成され、最低128ビット、256ビット推奨。
  • 2. キーを保護:キーは暗号化セキュリティの鍵であり、適切に保管し、安全でないチャネルで送信しないでください。
  • 3. 安全なモードを使用:CBCまたはCTRモードを推奨、ECBモードは避けてください。
  • 4. 定期的にキーを交換:長期使用システムでは、暗号化キーを定期的に交換してください。
  • 5. 一意のIVを使用:同じキーを使用する場合でも、暗号化ごとに異なるIVを使用してください。

鍵長セキュリティ比較

鍵長 バイト数 可能な鍵の組み合わせ 総当たり攻撃時間の推定 パフォーマンス 使用推奨
128-bit 16 bytes 2128 ≈ 3.4×1038 数十億年(現在の技術で、毎秒10^18回試行を想定) 最速
基準値(100%)
ほとんどの商業アプリケーションに適しており、十分なセキュリティを提供
192-bit 24 bytes 2192 ≈ 6.3×1057 宇宙の年齢をはるかに超える(理論的に不可能) 中速
AES-128の約80%
まれに使用され、128ビットよりも高いセキュリティを提供
256-bit 32 bytes 2256 ≈ 1.1×1077 天文学的に不可能(宇宙のすべてのエネルギーを使っても) やや遅い
AES-128の約60-70% (AES-NI使用時)
高度に機密性の高いデータ、政府/軍事アプリケーションに適しています

セキュリティに関する注意:

AES-128はすでに既知のすべての攻撃に対して十分に安全であると考えられています。鍵長の選択は、セキュリティ要件とパフォーマンスのバランスを取る必要があります。ほとんどのアプリケーションでは、AES-128で十分なセキュリティが提供されますが、高度に機密性の高いデータにはAES-256が推奨されます。ハードウェアアクセラレーション(AES-NI)使用時にパフォーマンス差がより顕著になります。

パフォーマンスベンチマーク(ハードウェアAES-NI有効)

暗号化速度 (現代のCPU、典型値)
AES-128
~500 MB/s
AES-192
~425 MB/s
AES-256
~350 MB/s
復号化速度 (現代のCPU、典型値)
AES-128
~520 MB/s
AES-192
~447 MB/s
AES-256
~369 MB/s

注意:実際のパフォーマンスは、ハードウェア、実装方法、データサイズによって異なります。グラフに表示されている値は、AES-NI命令セットをサポートする現代のCPUでの典型的なベンチマーク値です。ハードウェアアクセラレーションがない場合、パフォーマンスは10-20倍低下する可能性があります。

使用シナリオ

  • データ転送の暗号化:ネットワーク転送中の機密データを保護
  • ファイル暗号化:ディスクに保存された機密ファイルを暗号化
  • データベース暗号化:データベース内の機密フィールドを暗号化
  • パスワード保護:ユーザーパスワードおよびその他の認証情報を暗号化
  • 通信暗号化:インスタントメッセージングおよび電子メールコンテンツを暗号化

参考資料