使用Bouncycastle在Java和.NET之间执行Diffie-Hellman密钥交换

时间:2011-11-08 22:10:44

标签: java .net cryptography bouncycastle diffie-hellman

我想使用bouncycastle来执行两个软件组件(Alice和Bob)之间的Diffie-Hellman密钥交换。 Alice和Bob拥有自己的密钥对,由同一个CA颁发。但是,Alice将是Java而Bob将是C#。

我搜索并找到了如何使用每种语言进行交换的示例。但我发现的例子有两个问题:

  1. 通过在同一个示例代码块中实现Alice和Bob之间的交换,这些示例过于简化。我很难理解Alice和Bob在实际上必须通过SSL流交换他们的中间值(g ^ a mod p和g ^ b mod p)时的样子。
  2. 示例总是用于使用相同语言编写的软件组件。我在其他地方读过,Diffie-Hellman密钥交换库经常使用一些内部常量来生成它们的中间值。根据我对DH如何工作的了解,我没有看到任何类型的常量是必要的,但我不是专家。
  3. 基于这两个问题,我有两个问题:

    1. 有没有人知道代码示例分别显示双方的代码,
    2. 如果我对java和.net组件使用bouncycastle API,是否有人知道组件无法就同一个秘密对称密钥达成一致的任何原因?

0 个答案:

没有答案