Twofish暗号化・復号ツール
AESの最終候補だったTwofishで、テキストを暗号化・復号します。
復号するときにも必要です。入力した内容がこのページの外に出ることはありません。
OpenSSLの既定値は10,000です。任意の回数を指定でき、多いほどパスワードの推測に時間がかかるようになります。復号には同じ回数が必要です。
OpenSSLで一般的な選択です。IVが必要で、ブロック単位にパディングします。
OpenSSLにはTwofish暗号がありません。
Twofishは、Bruce Schneierのチームが設計した暗号で、AESコンペティションの最終候補5つのうちの1つであり、Blowfishの後継でもあります。16バイトのブロックを128・192・256ビットの鍵で暗号化し、実用的な攻撃は知られていません。暗号化ソフトではAESの代わりとして提供されており、このページでもTwofishでテキストを暗号化・復号できます。初期設定はTwofish-256(128・192も選択可能)で、モードはCBC・ECB・CTR・CFB・OFBです。パスワードを使う場合は、ランダムなソルトとPBKDF2-HMAC-SHA256で鍵とIVを導出し、openssl enc -pbkdf2のSalted__形式で出力します。hexで鍵とIVを直接指定することもできます。すべてブラウザ内で動作するため、テキストも鍵も端末の外に出ることはありません。無料で登録も不要です。
Twofishでテキストを暗号化する方法
- 「暗号化」か「復号」を選びます。暗号化するテキストを入力するか、復号するBase64またはhexのテキストを貼り付けます。形式は自動で判別されます。
- パスワードを入力するか(「生成」で強力なパスワードを作れます)、「鍵とIV(hex)」に切り替えて、鍵と32桁のIVを入力または生成します(ECBにはIVがありません)。
- 鍵長(初期値は256ビット)とモード(初期値はCBC)を選びます。復号するときは、暗号化に使ったのと同じ設定を指定します。
- 結果をコピーまたはダウンロードするか、「入れ替え」を押して結果を入力欄に移し、処理の向きを切り替えます。
主な機能
- 128・192・256ビット鍵のTwofish(初期値は256ビット)
- CBC・ECB・CTR・CFB・OFBモード、PKCS#7パディングまたはパディングなし
- PBKDF2-HMAC-SHA256と、openssl enc -pbkdf2のSalted__ヘッダーを使うパスワード方式
- PBKDF2の反復回数は1〜1,000万回、初期値は10,000回
- ほかのTwofishソフトとデータをやり取りするための「鍵とIV」方式:hexの鍵と32桁のIVを入力または生成
- Base64・hexで入出力。結果はコピー、ダウンロード、入れ替えが可能
プライバシーは守られますか?
はい。Twofishはブラウザ内のWebAssemblyで動作するため、テキスト、パスワード、鍵がアップロードや保存されることはありません。ブラウザのストレージにも保存されません。
よくある質問
TwofishはAESより安全ですか?
どちらかが弱いとは知られていません。完全なTwofishにもAESにも実用的な攻撃はなく、どちらも16バイトのブロックと最大256ビットの鍵を使います。コンペティションに勝ったのはAESなので、ハードウェアの支援があり、ほぼどこでも使えます。データをやり取りするプログラムや相手がTwofishを使っている場合に、Twofishを選んでください。
OpenSSLでTwofishを復号できますか?
いいえ。OpenSSLにはTwofishが含まれていないため、この出力を読めるopensslコマンドはありません。「鍵とIV」方式を使い、Bouncy Castle、Botan、libgcryptなどTwofishに対応したライブラリに、同じ鍵、IV、モードを渡してください。CBCとECBではPKCS#7パディングを指定します。
Twofishにはどんな鍵とIVが必要ですか?
16・24・32バイトの鍵(Twofish-128・192・256では、それぞれhexで32・48・64桁)と、32桁のhexで表す16バイトのIVです。ただしECBではIVを使いません。鍵を貼り付けると、鍵長はその長さに合わせて変わります。パスワード方式では、どちらもパスワードとソルトから導出され、ソルトは出力のSalted__のあとに含まれます。
TwofishとBlowfish、どちらを使えばいいですか?
Twofishです。同じ設計者によるBlowfishの後継で、16バイトのブロックによってBlowfishの8バイトブロックが抱えるSweet32の弱点を避けられ、鍵も最大256ビットまで使えます。Blowfishは、Blowfishで作られたデータを読む場合にだけ使ってください。