AES 暗号化ツール
AES 暗号化の知識
AES アルゴリズムの背景
- 2001年DESに代わる新暗号標準として制定
- NIST主導の公募でRijndaelアルゴリズムを選定
- 連邦情報処理標準FIPS 197
主な応用分野
- 政府/軍事通信の暗号化
- 金融取引データの保護
- 企業機密文書の保管
- SSL/TLS通信の暗号化
動作モード
モード比較表
モード | IV必要 | 並列処理 | 誤り伝播 |
---|---|---|---|
CBC | 必要 | 不可 | ブロック単位 |
CTR | カウンタ値 | 可能 | なし |
GCM | ナンス | 可能 | 認証失敗 |
パディング方式
方式 | 規格 | スキーム | 適用例 |
---|---|---|---|
PKCS#7 | RFC 5652 | nバイトの値nで埋める | 一般データ |
ZeroPadding | 業界標準 | 0x00バイトで埋める | バイナリデータ |
ISO/IEC 7816-4 | ISO規格 | 0x80の後ろに0x00を追加 | ICカード応用 |
鍵長設定
- 標準長: 128/192/256ビット
- 選択基準:
- 128ビット: 商業アプリケーション向け
- 256ビット: 政府/軍事レベル向け
- 準拠規格: NIST SP 800-131A
セキュリティ対策
- IV管理:
- CBCモードでは暗号学的に安全な乱数を使用
- CTRモードのカウンタ値は絶対に重複させない
- 鍵導出:
- PBKDF2-HMAC-SHA256を推奨
- 10,000回以上の反復処理を推奨
- 認証暗号:
- CBCよりGCMを優先使用
- ECBモードは使用避ける
参考資料
- [FIPS 197] 暗号規格 https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197.pdf
- [SP 800-38A] ブロック暗号モード https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38a.pdf
- [RFC 5652] PKCS #7仕様 https://tools.ietf.org/html/rfc5652