Toolonit
  1. ホーム
  2. 暗号化
  3. 暗号化 / 復号
  4. Twofish

Twofish暗号化・復号ツール

AESの最終候補だったTwofishで、テキストを暗号化・復号します。

暗号化の方式

復号するときにも必要です。入力した内容がこのページの外に出ることはありません。

PBKDF2の反復回数

OpenSSLの既定値は10,000です。任意の回数を指定でき、多いほどパスワードの推測に時間がかかるようになります。復号には同じ回数が必要です。

モード

OpenSSLで一般的な選択です。IVが必要で、ブロック単位にパディングします。

鍵長
出力形式
OpenSSLで同じ処理

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でテキストを暗号化する方法

  1. 「暗号化」か「復号」を選びます。暗号化するテキストを入力するか、復号するBase64またはhexのテキストを貼り付けます。形式は自動で判別されます。
  2. パスワードを入力するか(「生成」で強力なパスワードを作れます)、「鍵とIV(hex)」に切り替えて、鍵と32桁のIVを入力または生成します(ECBにはIVがありません)。
  3. 鍵長(初期値は256ビット)とモード(初期値はCBC)を選びます。復号するときは、暗号化に使ったのと同じ設定を指定します。
  4. 結果をコピーまたはダウンロードするか、「入れ替え」を押して結果を入力欄に移し、処理の向きを切り替えます。

主な機能

  • 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で作られたデータを読む場合にだけ使ってください。

関連ツール