問題タブ [tripledes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cryptography - トリプルデスって公開鍵だけで復号化できるの?
RSA では、データを暗号化および復号化する方法がいくつかあることを知っています。つまり、公開鍵または秘密鍵 (またはその両方) で暗号化でき、秘密鍵または公開鍵のみ、またはその両方で復号化することもできます。
Triple Des では、復号化に key と iv の両方が必要ですか? それとも、キーだけでどうにかできますか?(公開鍵?)
c# - CFB モードの TripleDES、C# と Crypto++ は異なる
ここに私の問題があります: 私は C++ (crypto++ v5.6.1 を使用) でレガシー コードを持っており、C# (System.Security.Cryptography を使用して .NET 3.5) で新しいコードを開発しています。C++ コードを変更することはできませんが、以前に暗号化されたデータを復号化できる必要があり、以前のアプリケーションは、新しい C# コードで暗号化するデータを復号化できる必要があります。
使用されるアルゴリズムは、どちらの場合も CFB 暗号モードの TripleDES ですが、最終的に、暗号化されたデータは同じではなく、バイト数と最初のバイトは同じですが、それ以外のすべてのバイトは異なります。
パディングは、C++ コードで手動で (ゼロを追加して) 行われます。そこで、PaddingValue を PaddingMode.Zeros に設定しました。(C#コードで手動で最後にゼロを追加しようとしましたが、何も変わりませんでした)。
別の System.Text.Encoding を使用してみましたが、結果は同じです (実際、テストされた文字は「純粋な」ASCII (つまり、0 と 126 の間) です)。
C++ コードの MandatoryBlockSize() の値は 8 なので、FeedbackSize も 8 に設定します。しかし、私がそれを理解していれば、それは実際には私のIVのサイズですよね?
キーのサイズは 24 バイト (3 つの異なるキー) で、IV の長さは 8 バイトです。2 つのコードではどちらも同じです。
どちらの場合も代わりに CBC モードを使用すると、結果は同じになります (ただし、前述のように、レガシー コードを変更することはできません ...)、OFB & CTS モードは例外をスローします (一方は使用できず、他方は互換性がありません)。私の .NET アプリケーションでは、結果を比較できません。
.Net バージョン 3.5 および 4.0 で Mono を使用するか、.Net 3.5 または 4.0 でビジュアルを使用してみましたが、4 つの暗号化された結果は同じですが、元の結果とは異なります。
今、何をテストすればよいか本当にわかりません...Crypto++をC++/CLIプロジェクトにラップして、System.Security.Cryptographyの代わりに使用したくありません。
誰かがアドバイスを持っているか、私が間違っていることを教えてくれますか?
C++ コードは次のとおりです。
C# コードは次のとおりです。
EDIT:ストリームを使用する代わりに、Encryptorを直接使用しようとしましたが、同じ問題が発生しました。
c# - C# バイト配列から文字列へ
これについていくつかの記事を読みましたが、ここでは考慮していない変数があると思います。
トリプルデス暗号化を実装している他の誰かのコードを調べています。キーと iv が文字列としてどこかに保存されていません。バイト配列としてのみ。
これと同じ暗号化/復号化呼び出しを C# の外で行う必要があるため、使用されているキーを見つけようとしています。
私が試したこと:
これらのいずれかの結果は正しいかもしれませんが、それをエンコードするために別の変換を行う必要がありますか?
問題がある場合は、これらのキーを ruby または node.js を介して openssl で使用しようとしています。
価値があるので、ルビーでバイトの配列を作成してパックを実行しようとしましたが、それでも間違った結果のようです。
java - cipher.getInstance() の DESede と TripleDES の違い
Java で動作する TripleDES 暗号化を取得しようとしています。の下にあるウィキペディアの記事から、Keying Optionsオプション 1 を使用したいと思いますAll three keys are independent。
Cipher docsから、参照ガイド hereに移動するように指示されていますが、それでも私には明確ではありません。
私はサンプルの実行に取り組んでおり、異なるプロジェクトでこれらの行の両方を使用しています:
どちらも問題なくコンパイルできますが、違いは何ですか? どちらか一方を使用する必要がありますか?これらは両方とも、3 つの個別のキーを使用する場合に機能しますか?
testing - Triple DES の ECB、CBC、CFB、および OFB モードのテスト ベクトル
Triple DES の CBC、CFB、および OFB モードのテスト ベクトルはどこで入手できますか?
お願い助けて。
java - 暗号化の例外: Java Cryptography Extension (JCE) がインストールされていません
エラー: 暗号化の例外: この Java 仮想マシンに Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files がインストールされていません
これを解決するには、local_policy、US_export_policy jar をダウンロードし、jre\lib\security フォルダーに配置する必要があることを読みました。すでに存在するものも上書きしました。しかし、エラーはまだ表示されています。VMware を再起動し、アプリを再デプロイし、再公開し、クリーンにしましたが、役に立ちませんでした。私のJava SEは1.7バージョンであるため、どこかで示唆されているように、依存関係はありません。
私がすでに試したもの以外に、これを解決するのに役立つかもしれない提案はありますか?
ありがとう。
c# - C# で対称キーと IV をラップする方法
Triple DES Key Wrap を実行するための既存の .NET API はありますか?
ドキュメンテーションはこちら。
192 ビットの対称キー + 64 ビットの初期化ベクトル (IV) を合計 256 ビット生成しました。
現在、私のコードは次のように対称キーのみを暗号化します。
暗号化アルゴリズムとしてhttp://www.w3.org/2001/04/xmlenc#tripledes-cbcを使用しています。
SAML 応答に署名するためのアルゴリズム - http://www.w3.org/2000/09/xmldsig#rsa-sha1
暗号化キーの転送 - http://www.w3.org/2001/04/xmlenc#rsa-1_5
サービス プロバイダーは、対称キーでラップされた IV を取得するまで、ダイジェスト値を復号化できません。
助けてくれてありがとう!
-キャリー