問題タブ [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.
security - SSL鍵交換暗号化技術
Anonymous DH、Ephermal DH、fixed DH の 3 つの鍵交換アルゴリズムの違いは何ですか?
java - 暗号鍵交換のピアレビュー
ここ数日、Bouncy Castle (java) をいじっていて、Diffie-Hellman 交換で秘密鍵を安全に交換できると確信できるところまで来ました。
暗号交換を適切に実装することの難しさを強調する多くの投稿を読んだので、私の仕事について率直な意見をお願いします. 基礎となるすべての暗号操作は Bouncy Castle に基づいているため、信頼できると見なされる場合があります。
この交換は安全と見なすことができますか? ハードワークを台無しにするのは痛いですが、SSL Sockets を使い続ける必要がありますか? ご意見をお寄せいただきありがとうございます。
(ちなみに、私の Bouncy-Castle-Wrapping-Library は完全にオープンソースなので、リポジトリの URL が必要な場合はお知らせください。)
cryptography - DiffieHellmanアルゴリズムでpを法とする原始根であるというジェネレータGの要件
検索したところ、DiffieHellmanアルゴリズムでPとGを使用していることに混乱しました。Pが素数であり、GがPの原始根であるという要件があります。
セキュリティは、2つの非常に大きな素数の結果を因数分解することの難しさに基づいていることを理解しているので、問題はありません。ただし、GがPの原始根である目的については、入手可能な情報がほとんどないようです。この要件が存在する理由を誰かが答えることができますか(可能な場合は参照してください)。セキュリティを強化するだけですか?共有キーは明らかにpとgの任意の組み合わせで作成できることを考えると、素数でないものであっても、これは興味深いと思います。それは確かにセキュリティのためだけである可能性がありますか?もしそうなら、それはどのようにそれを増やしますか?
前もって感謝します
ダニエル
c# - Bouncy Castle ECDH と .net4 ネイティブ ECDiffieHellmanCNG の違い
.net4 で ECDiffieHellmanCNG を使用して秘密鍵を生成できました。また、Bouncy Castle C# ライブラリを使用して秘密鍵を正常に生成しました。.net 4 バージョンが char のバイト配列を生成し、Bouncy Castle の ECDHBasicAgreement が BigInteger (手動で実装) の型を生成する理由を知りたいです。これらのライブラリを互換的に使用できるようにしたいと考えています。ありがとう!
c++ - Diffie Hellman の C++ チュートリアル
OpenSSL を使用した Diffie Hellman 鍵交換の C++ チュートリアルはありますか? 探し続けていますが、何も見つかりません。チュートリアルを知っている場合は、そのリンクに感謝します。ありがとうございました。
php - 鍵交換による iPhone と php ページ間の暗号化
iPhoneアプリケーションからphpページとの間でデータを送受信する必要がありますが、最初に正しく行うためにいくつかの質問があり、最良の結果が得られます:)
データの転送から始めましょう。PHPページからデータを取得する最良の方法はどれですか?
オプション 1: バックグラウンド スレッドで NSString を使用する
またはオプション 2: デリゲートで NSURLConnection を使用しますか?
次に、暗号化部分があります。私はグーグルを少し持っていますが、あまり見つけていません。両側 (iPhone アプリと php ページの両方) で暗号化と復号化ができる必要があります。これに最適な暗号化は何ですか? 適切な暗号化の実装はありますか?
最後に鍵交換です。大きな素数を「必要とする」diffie-hellman の使用を考えています。そのようなものを (iPhone と php ページの両方で) 生成する簡単な方法はありますか?
c# - BlowFish/DH に使用できる最適なライブラリは何ですか?
BlowFish/DH に使用できる最適なライブラリは何ですか。BouncyCastle を使用していたのですが、目的の機能がないように見えるため、使用できる別のライブラリがあるかどうか疑問に思っていたので、CFB/ DH? ありがとう
そして、ここに私のBouncyCastleクラスがあります:
cryptography - EC 公開鍵の標準化された固定長エンコーディングはありますか?
素体 (192, 224, 256 、384および521)。
java - 秘密鍵の決定 (Diffie-Hellman)
私は課題を与えられました。それは、友人の暗号化プロセスをテストすることに関係しています。
これは Diffie-Hellman 交換プロセスであり、既知の変数/定数は次のとおりです。
P
、G
- 生成された秘密鍵 (変数)
- 私の生成した公開鍵(変数)
- 受信者の公開鍵 (定数)。
私の秘密鍵を見ると、P
両方G
ともその中にあります。たとえば、最初の「x」バイトは何の関係もないように見えますが、次の「y」バイトはP
、次の 2 バイトは静的、次の「z」バイトはG
、残りは可変です。
プロセスは、ファイルを暗号化し、それをデバイスに送信することです。デバイスはそれを復号化します-私の攻撃のアイデアは次のとおりです。
秘密共有鍵の複製を試みます。ここでの問題は、生成された秘密鍵を知っている限りは問題ありませんが、その場合、彼が私に与えたファイルは知りません。
受信者の秘密鍵を見つけてみてください。ここでは、強引に侵入することができましたが、何らかのスーパーコンピューターがなければ、永遠に時間がかかります.
これを攻撃しようとするときに他に検討すべきオプションはありますか?
java - SSLハンドシェイクで「DHキーペアを生成できませんでした」という例外が発生するのはなぜですか?
一部のIRCサーバーとSSL接続を行うと(他のサーバーではなく、おそらくサーバーの優先暗号化方式が原因で)、次の例外が発生します。
最終的な原因:
この問題を示すサーバーの例は、apture.esper.net:6697(これはIRCサーバーです)です。問題を示さないサーバーの例は、kornbluth.freenode.net:6697です。[当然のことながら、各ネットワーク上のすべてのサーバーは同じ動作を共有します。]
私のコード(前述のように、一部のSSLサーバーに接続するときに機能します)は次のとおりです。
例外をスローするのは、最後のstartHandshakeです。そして、はい、「trustAllCerts」で起こっているいくつかの魔法があります。そのコードはSSLシステムに証明書を検証しないように強制します。(つまり、証明書の問題ではありません。)
明らかに1つの可能性は、esperのサーバーが正しく構成されていないことですが、esperのSSLポートに問題がある人への参照を検索しても見つかりませんでした。また、「openssl」がそれに接続します(以下を参照)。ですから、これがJavaのデフォルトのSSLサポートの制限なのか、それとも何かなのか疑問に思います。助言がありますか?
コマンドラインから「openssl」を使用してapture.esper.net6697に接続すると、次のようになります。
すでに述べたように、その後は正常に接続されます。これは、私のJavaアプリで言うことができる以上のことです。
関連する場合は、OS X 10.6.8、Javaバージョン1.6.0_26を使用しています。