n方公钥密码学

Teo*_*gul 5 c# security encryption rsa public-key-encryption

虽然在.net框架中很好地规划了双方公钥加密,但是n-party对我很关注.例如,保护两方视频会议.沟通很容易:

1)每一方生成会话特定的RSA密钥对,并获得由受信任的机构(即可信服务器)签名的公钥.2)每个派对交换密钥使用ECDiffieHellmanCng连接现在都是真实和安全的(认为他们使用Vista/W7).

现在为此通信添加第三个参与者将无法工作,因为密钥交换算法旨在仅从2个公钥导出共享密钥(特别是使用.NET和BouncyCastle).所以问题是,你将如何实现一个仍然是真实的(即在中间攻击中对人有抵抗)和安全(即安全的窃听)的n方公钥加密模式.

编辑:目前的想法如下,我将继续实施最流行的一个作为NBusy.Communicator库的一部分:

  • 使用双方通信方案,其中一方充当联合服务器.
  • 启动双方通信,让一方对第三方进行身份验证并共享密钥/对称密钥.
  • 使用多方密钥协议方案.

编辑2:我将使用"n-Party Diffie Hellman"算法,类似于此处描述的算法,但有一些修改:http://www.codeproject.com/KB/cs/diffy_helman.aspx

Teo*_*gul 1

在我看来,“多方密钥协商方案”也是可能的,但目前使用 .net/c# 的实际实现似乎并不多。来自 Giuseppe Atenies (IEEE) 的非常简洁的学术(但很难实现)想法:经过身份验证的多方密钥协议

我还在 CodeProject 上看到了一篇关于 3 层 Diffie Hellman 的非常简洁的文章,它可能扩展到 n 方,就像我的例子一样:http ://www.codeproject.com/KB/cs/diffy_helman.aspx