Serpent暗号化・復号ツール
AESの最終候補だったSerpentで、テキストを暗号化・復号します。
復号するときにも必要です。入力した内容がこのページの外に出ることはありません。
OpenSSLの既定値は10,000です。任意の回数を指定でき、多いほどパスワードの推測に時間がかかるようになります。復号には同じ回数が必要です。
OpenSSLで一般的な選択です。IVが必要で、ブロック単位にパディングします。
OpenSSLにはSerpent暗号がありません。
Serpentは、Ross Anderson、Eli Biham、Lars Knudsenが設計した暗号で、AESコンペティションで2位になりました。16バイトのブロックを128・192・256ビットの鍵で32ラウンドかけて暗号化します。意図的に大きく取った安全マージンのため、優勝してAESとなったRijndaelより速度では劣りましたが、実用的な攻撃は知られていません。ここでは初期設定のSerpent-256(128・192も選択可能)で、CBC・ECB・CTR・CFB・OFBモードを使ってテキストを暗号化・復号できます。パスワードを使う場合は、PBKDF2-HMAC-SHA256とランダムなソルトで鍵とIVを導出し、openssl enc -pbkdf2のSalted__形式で出力します。hexで鍵とIVを直接指定することもできます。テキストも鍵も端末の外に出ることはありません。ブラウザ内で動作し、無料で登録も不要です。
Serpentでテキストを暗号化する方法
- 「暗号化」か「復号」を選びます。暗号化するテキストを入力するか、復号するBase64またはhexのテキストを貼り付けます。形式は自動で判別されます。
- パスワードを入力するか(「生成」で強力なパスワードを作れます)、「鍵とIV(hex)」に切り替えて、鍵と32桁のIVを入力または生成します(ECBにはIVがありません)。
- 鍵長(初期値は256ビット)とモード(初期値はCBC)を選びます。復号するときは、暗号化に使ったのと同じ設定を指定します。
- 結果をコピーまたはダウンロードするか、「入れ替え」を押して結果を入力欄に移し、処理の向きを切り替えます。
主な機能
- 128・192・256ビット鍵のSerpent、32ラウンドすべてを実行
- CBC・ECB・CTR・CFB・OFBモード、PKCS#7パディングまたはパディングなし
- NESSIEのテストベクターと同じ、標準のバイト順
- PBKDF2-HMAC-SHA256と、openssl enc -pbkdf2のSalted__ヘッダーを使うパスワード方式
- 「鍵とIV」方式:hexの鍵とIVを自分で指定するか、生成して使用
- Base64・hexで入出力。結果はコピー、ダウンロード、入れ替えが可能
プライバシーは守られますか?
はい。Serpentはブラウザ内のWebAssemblyで動作します。テキスト、パスワード、鍵がサーバーに送信されたり、ブラウザに保存されたりすることはありません。
よくある質問
Serpentは安全ですか?
はい。32ラウンドすべてを行うSerpentに対する実用的な攻撃は知られていません。速度を犠牲にしてでも、攻撃手法が進歩しても安全であり続けるよう設計されています。一般的なサイズのテキストなら、速度の差は気になりません。ほぼどこでも対応しているのはAESなので、データをやり取りするシステムがSerpentを使っている場合に選んでください。
OpenSSLでSerpentを復号できますか?
いいえ。OpenSSLにはSerpentが含まれていないため、この出力を読めるopensslコマンドはありません。ほかのプログラムでデータを使うには、「鍵とIV」方式を選び、そのプログラムに同じ鍵、IV、モード、パディング(CBCとECBではPKCS#7)を渡してください。
ほかのプログラムで作ったSerpentのデータが復号できないのはなぜですか?
鍵、IV、モードが正しければ、原因はおそらくバイト順です。実装によってはSerpentの入出力のバイトを逆順に書き込むものがあり、Bouncy Castleではこの変種をTnepresと呼んでいます。このページはNESSIEのテストベクターと同じ標準の順序を使うため、Tnepres実装のデータはここでは復号できません。
Serpentで暗号化したVeraCryptのボリュームを開けますか?
いいえ。VeraCryptは独自のヘッダーを付けたうえで、ディスク全体やコンテナファイルをXTSモードのSerpentで暗号化します。このページが暗号化・復号するのはテキストです。VeraCryptのボリュームはVeraCryptで開いてください。ファイルを1つだけブラウザでロックしたい場合は、「ファイル暗号化」を使ってください。