AES暗号化 / 復号

テキストとパスフレーズを貼り付けると、選択したPHP OpenSSL暗号方式でAES暗号化または復号をすばやく実行できます。AESはNISTがFIPS 197で標準化した共通鍵ブロック暗号で、TLS、WPA2、VPN、ディスク暗号化など多くのシステムで使われます。ただし、このページは低リスクのテキスト向けの簡易ツールであり、監査済みの秘密保管庫ではありません。機密ファイルや長期保存する秘密には、age、GnuPG、7-Zipなどのオフラインツールを使ってください。

AESでテキストを暗号化する方法

  1. 1

    OpenSSL暗号方式を選ぶ

    現在の選択肢にはCBC、CTR、GCMの各バリアントがあります。CBCとCTRの出力は認証されず、このツールはGCM認証タグを保存または検証しません。

  2. 2

    パスフレーズを入力

    パスフレーズはAES鍵を作るためにSHA-256で1回ハッシュされます。PBKDF2、salt、Argon2、作業係数はないため、長くランダムなパスフレーズを使ってください。

  3. 3

    低リスクのテキストを貼り付ける

    これはサーバー側のLivewire/PHP OpenSSLユーティリティです。このサイトに送信したくないパスワード、本番鍵、私的文書、秘密情報は貼り付けないでください。

  4. 4

    Base64結果をコピー

    暗号化時にはランダムなIVを作成し、未加工の暗号文の前に付けてから、結合したバイト列をBase64でエンコードします。復号には同じ暗号方式とパスフレーズが必要です。

このツールが実際に出力するもの

この実装はPHP OpenSSLを使います。暗号化時にはパスフレーズをSHA-256でハッシュし、選択した暗号方式に必要な長さのランダムなIVを生成し、テキストを暗号化して次を返します。

Base64(IV || 暗号文)

出力には、salt、PBKDF2パラメータ、HMAC、GCM認証タグは含まれません。Web Crypto、age、GnuPG、OpenSSLコマンドラインの一般的なレシピ、7-Zipが作る形式とは互換性がありません。

AESオプションの位置づけ

AESは固定128ビット(16バイト)のブロックサイズを持ち、標準の鍵長は128、192、256ビットです。ここで重要な安全性の違いは鍵長だけではなく、暗号化されたメッセージが認証されるかどうかです。

暗号方式オプション このツールで知っておくこと
AES-128-CBC / AES-192-CBC / AES-256-CBC ランダムIVとPKCS#7パディングを使う一般的なブロックモードです。改ざん検出にはHMAC-SHA-256などの別MACが必要です。
AES-256-CTR AESをストリーム風のモードとして使います。別途認証が必要で、同じ鍵で同じIV/counterを再利用してはいけません。
AES-128-GCM / AES-256-GCM GCMは通常AEADモードですが、認証タグを保存して検証する場合に限ります。このツールの出力にはそのタグがないため、認証付き暗号として信頼しないでください。

セキュリティ上の注意

OWASPの暗号化ストレージガイダンスでは、可能な場合は認証付き暗号、または暗号化と別MACの組み合わせが推奨されています。このツールでは次を意識してください。

  • これは共通鍵暗号です - 同じパスフレーズで復号します。パスフレーズは暗号文とは別の経路で共有してください。
  • 弱いパスフレーズはここでは弱い鍵になります - SHA-256は高速でsaltもないため、出力を入手した攻撃者は候補をすばやく試せます。
  • CBCとCTRには認証が必要です - HMACなどのMACがなければ、攻撃者が暗号文を改ざんしても検出できない場合があります。
  • 同じ鍵でIVやnonceを再利用しないでください - このツールは暗号化時に新しいランダムIVを作りますが、外部から貼り付けるデータも同じ規則に従う必要があります。
  • 本当の秘密には監査済みツールを使ってください - age、GnuPG、7-Zipはファイル形式、メタデータ、認証をより慎重に扱います。

よくある質問

現在のコンポーネントはパスフレーズをSHA-256でハッシュし、そのバイト列をOpenSSLの鍵材料として使います。PBKDF2、salt、scrypt、Argon2は使わないため、短いパスフレーズや使い回しは危険です。

いいえ。CBCとCTRにはHMAC-SHA-256などの別MACが必要です。GCMは通常AEAD認証を提供しますが、このツールはBase64出力内にGCMタグを保存または検証しません。

LivewireアクションがPHP OpenSSLを実行する際、サイトのサーバー上で処理されます。ブラウザ内だけで動くWeb Cryptoツールではないため、価値の高い秘密、秘密鍵、機密文書は貼り付けないでください。

Base64結果にはランダムIVと、その後ろに未加工の暗号文が入ります。CBCパディングでバイトが増えることがあり、Base64はバイナリデータを約3分の1大きくします。保存形式にsaltや認証タグはありません。

このツールはテキストのみを扱い、低リスクの短い内容に限って使うのが無難です。ファイルや重要な秘密には、age、GnuPG、7-Zipなど監査済みのオフライン暗号化ツールを使ってください。

関連ツール