22

Java で動作する TripleDES 暗号化を取得しようとしています。の下にあるウィキペディアの記事から、Keying Optionsオプション 1 を使用したいと思いますAll three keys are independent

Cipher docsから、参照ガイド hereに移動するように指示されていますが、それでも私には明確ではありません。

私はサンプルの実行に取り組んでおり、異なるプロジェクトでこれらの行の両方を使用しています:

Cipher c = Cipher.getInstance("DESede");

Cipher cipher = Cipher.getInstance("TripleDES/ECB/PKCS5Padding");

どちらも問題なくコンパイルできますが、違いは何ですか? どちらか一方を使用する必要がありますか?これらは両方とも、3 つの個別のキーを使用する場合に機能しますか?

4

1 に答える 1

38

「TripleDES」は、Sun JCE プロバイダの「DESede」の単なる別名です。どちらもまったく同じ暗号を返します。「DESede」は、すべての Java プラットフォームで動作するはずの標準的な名前ですが、実際には、「TripleDES」もおそらくかなり広くサポートされています。

このページによると、SunJCE Triple DES 実装はオプション #1 と #2 をサポートしています。

キーサイズは 112 または 168 にする必要があります。

キーサイズが 112 の場合、2 つの中間キーを持つトリプル DES キーが生成され、キーサイズが 168 の場合、3 つの中間キーを持つトリプル DES キーが生成されます。

意図を明確にするために暗号をインスタンス化するときは、常に操作モードとパディングを指定する必要があります。そうしないと、実装が自由に選択できるため、混乱する可能性があります。

于 2013-06-24T17:28:39.843 に答える