Triple DES(3DES)暗号化
Triple DES(DES-EDE3)でテキストを暗号化。OpenSSL des-ede3-cbc 形式のパスフレーズ、または 16/24 バイトの 16 進鍵と IV を使えます。CBC・CFB・OFB・ECB に対応。
出力は Base64 の OpenSSL「Salted__」形式です(8 バイトのランダムなソルト+暗号文)。鍵と IV はパスフレーズとソルトから導出されるため、同じテキストでも毎回結果が変わります。同等のコマンド:
openssl enc -des-ede3-cbc -md md5 -a -A -k '…'すべてブラウザ内で実行されます。データがアップロードされることはありません。
Triple DES 暗号化とは?
DES を 2 本または 3 本の独立した鍵で 3 回適用(暗号化・復号・暗号化)する Triple DES でデータを暗号化します。決済システム、古い VPN、企業向けソフトウェアで今も使われているため、互換性のあるデータを作成するのに役立ちます。
Triple DES 暗号化の使い方
- 鍵の指定方法 を パスフレーズ(OpenSSL 互換) のままにして パスフレーズ を入力するか、生の鍵 + IV(16 進) に切り替えて 16 進の鍵と IV を正確に入力します。
- モード と パディング を選びます(OpenSSL の既定は PKCS#7 付きの CBC)。
- 平文 を入力または貼り付けます(バイナリデータなら入力のエンコーディングを Hex に切り替えます)。
- 暗号化 をクリックし、出力のエンコーディング で Base64 か Hex を選んで暗号文をコピーします。
例
Raw key 0123456789abcdeffedcba987654321089abcdef01234567, IV 1234567890abcdef, CBC, PKCS#7, plaintext "Triple DES test message"
w46mmLXKZ7SF3YdvRaW9PUPLk/6OeJll
Base64 出力。OpenSSL/Node の des-ede3-cbc と同一です。
Triple DES 暗号化を使うべき場面
取引先のシステムや規格が今も 3DES を求める場合(一部の EMV/決済 HSM ワークフロー、レガシーな SOAP サービスなど)や、テストベクターの作成に使ってください。新しい設計には AES-GCM を使います。
Triple DES 暗号化の仕組み
3DES は 8 バイトの各ブロックを E(K3, D(K2, E(K1, block))) で暗号化します。24 バイトの鍵なら 3 本の独立した鍵(鍵オプション 1)になり、16 バイトの鍵なら K3 = K1(2 鍵 3DES)になります。パスフレーズモードでは 24 バイトの鍵と 8 バイトの IV を導出して OpenSSL の Salted__ 形式で出力し、openssl enc -des-ede3-cbc や CryptoJS.TripleDES.encrypt と互換です。生の鍵モードでは 16 進の鍵と IV を使い、CBC/ECB は PKCS#7 でパディングされます。
一般的な使用例
- 3DES-CBC しか受け付けないレガシーシステム向けのデータを作成する
-
CryptoJS.TripleDES.encrypt(text, passphrase)の出力を再現する - 2 鍵・3 鍵の 3DES テストベクターを作成する
- 自分の実装を OpenSSL の des-ede3-cbc と比較する
セキュリティ注意事項
Triple DES は非推奨です。NIST は 2023 年以降の暗号化での使用を認めておらず、64 ビットブロックのため長いセッションは Sweet32 誕生日攻撃に弱くなります。互換性のためだけに使ってください。
よくある質問
鍵は 16 バイトと 24 バイトのどちらですか?
24 バイトなら 3 本の独立した DES 鍵になります(実効的な強度は約 112 ビット)。16 バイトの鍵は、3 本目の鍵が 1 本目と同じ 2 鍵 3DES です(約 80 ビット)。
出力は OpenSSL と互換性がありますか?
はい。パスフレーズモードの結果は openssl enc -des-ede3-cbc -md md5 -a -A -k <passphrase>(MD5 による EVP_BytesToKey)と同じで、PBKDF2-HMAC-SHA256 を選んだ場合は -pbkdf2 -iter N と同じです。復号には -d を付けます。対応するコマンドはパスフレーズ欄の下に表示されます。
Triple DES はまだ安全ですか?
完全に破られたわけではありませんが、低速で、64 ビットブロック(Sweet32)の問題があり、NIST も使用を廃止しました。レガシー用途だけと考えてください。