問題タブ [diffie-hellman]
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.
openssl - エフェメラル ディフィー ヘルマンはどのように機能しますか?
一時的な Diffie ヘルマン アルゴリズム (TLS_DHE_RSA_DES_256_CBC) がどのように機能するかを明確に説明するリンクを提供してください。
java - オプションのパーティを使用した鍵交換アルゴリズム
複数の当事者の同意を得て秘密鍵 (またはパスワード) を生成する必要がありますが、そのうちのいくつかの当事者はオプションです。
たとえば、A さん、B さん、C さん、D さんは合意を行うことができるメンバーであり、シークレットを生成するには少なくとも 2 つの合意が必要です。ただし、シークレットは、そのようなすべてのキー アグリーメントで同じにする必要があります。
Diffie-Hellman アルゴリズムを使用しましたが、すべてのキーが必要です。基本的に、私が見ているのは、1 つの秘密鍵と n 種類の公開鍵の鍵交換アルゴリズムです。
この動作を行うアルゴリズムをいくつか提案してください。
security - クライアントベースのオンライン暗号化は実用的ですか?
クライアント間の暗号化を可能にするメカニズムが存在するかどうか疑問に思っています。たとえば、有効にすると、1 つのクライアントで入力された情報は、特定のキーを使用してのみ復号化できます。
通常の公開鍵トランザクションの仕組みと似ていますが、サーバーに依存しません。
ユースケース:
私の Facebook プロフィールはすべて暗号化されており、誰もその情報を見ることができません (Facebook でさえも)。私が鍵を与えたユーザーは、その情報を復号化できます。
これにより、オンラインで保存されたデータを完全に制御できます。
同じ考え方は、インターネットにアップロードされた写真にも適用できます。
私が考える問題の 1 つは、キーを管理するための実用的なメカニズムと、キーを他のユーザーに安全に配布する方法を用意することです。
誰かが前にこのようなことをしたことがありますか?
node.js - 秘密が両方の当事者で同じでないのはなぜですか?
私は diffie hellman 鍵交換がどのように機能するかを理解しようとしており、簡単な node.js プログラムを作成してテストを行いました。
このウィキペディアの記事の正しいグラフィックを正しく理解していれば、両方の秘密は同じであるはずです。しかし、決してそうではありません。なぜですか?
openid - OpenId 2.0: session type vs. association type
The OpenID 2.0 specification says very little about the relation between the session type and association type in OpenID association requests. My questions: (1) Is a combination of session type "DH-SHA1" and association type "HMAC-SHA256" valid? (2) How about the reverse, i.e. "DH-SHA256" and "HMAC-SHA1"?
I don't think these mixed combinations are explicitly forbidden by the spec, but section 8.2.3 describes the process of encrypting the MAC key for transport as follows:
Does this imply that the MAC key length must be 20 bytes for session type DH-SHA1 and 32 byte for session type DH-SHA256? Section 6.2 of the spec states
Does this then imply that DH-SHA1 always must be paired with HMAC-SHA1 and the same for the ...256 versions?
Another data point: the OpenId provider at https://me.yahoo.com/ seems to accept association requests with session type DH-SHA1 and association type HMAC-SHA256, returning a 20 byte MAC key.
java - Diffie Hellman 鍵交換
私は現在、Java 暗号化ライブラリを使用して diffie hellman 鍵交換を行おうとしています。安全な素数とその生成器を見つけることに成功しました。ただし、見つけた値を使用して DH キーを作成するのに問題があるようです。それは私に次の例外を与えます
スレッド「メイン」での例外 java.security.InvalidAlgorithmParameterException: プライム サイズは 64 の倍数である必要があり、com.sun.crypto.provider.DHKeyPairGenerator.initialize(DHKeyPairGenerator.java:120) で 512 から 1024 (両端を含む) の範囲のみにすることができますjava.security.KeyPairGenerator$Delegate.initialize (未知のソース) で java.security.KeyPairGenerator.initialize (未知のソース) で DH.createSpecificKey (DH.java:35) で DH.main (DH.java:166) で
ご存知のように、暗号では素数を小さくすることはできません。安全な素数とジェネレーターを DH ライブラリの基準に適合させるにはどうすればよいですか?
以下は私のソースコードです
皆さんがこれで私を助けてくれることを願っています。前もって感謝します!
java - Java XpowYmodN 関数、DiffieHellman
関数 XpowYmodN を作成するには、Diffie Hellman プロトコルが必要です。次の関数をオンラインで見つけました。
この例の場合: XpowYmodN(29,83,53) 結果は 43 です。デバイス計算の製造元によると、結果は 50 になるはずです。間違っているところを教えてもらえますか? この例では、Math.pow(X,Y) % N を試してみましたが、結果は 28 になりました。ありがとうございました。