2

2 つのソフトウェア コンポーネント (Alice と Bob) 間で Diffie-Hellman 鍵交換を実行するために、bouncycastle を使用したいと考えています。Alice と Bob は、同じ CA から発行された独自のキー ペアを持っています。ただし、Alice は Java になり、Bob は C# になります。

各言語で交換を実行する方法の例を検索して見つけました。しかし、私が見つけた例には2つの問題があります:

  1. 例は、サンプル コードの同じブロックで Alice と Bob 間の交換を実装することで単純化しすぎています。SSL ストリームを介して実際に中間値 (g^a mod p と g^b mod p) を交換する必要がある場合、Alice と Bob がどのように見えるかを理解するのに苦労しています。
  2. 例は、常に同じ言語で記述されたソフトウェア コンポーネント用です。Diffie-Hellman 鍵交換ライブラリは、中間値を生成するためにいくつかの内部定数を使用することがよくあることを他の場所で読みました。DH がどのように機能するかについての私の知識に基づいて、どのような種類の定数が必要になるかはわかりませんが、私は専門家ではありません。

これら 2 つの問題に基づいて、2 つの質問があります。

  1. 両側のコードを別々に示すコード例を知っている人はいますか?
  2. java コンポーネントと .net コンポーネントの両方に bouncycastle API を使用する場合、コンポーネントが同じ秘密対称鍵に同意できない理由を誰か知っていますか?
4

0 に答える 0