Encryption RSA加密:是否可以在对等网络中撤销公钥/私钥对?

Encryption RSA加密:是否可以在对等网络中撤销公钥/私钥对?,encryption,cryptography,rsa,public-key-encryption,encryption-asymmetric,Encryption,Cryptography,Rsa,Public Key Encryption,Encryption Asymmetric,我正在创建一个应用程序(C#),它将在网络上发送一些消息。传出消息将由私钥签名,传入消息将由私钥解密 如果有人窃取私钥,我希望能够撤销它(向所有其他客户端发送撤销消息)。因为我是被盗私钥的所有者,只有我才能撤销它 我的问题:是否有可能创建一个公钥/私钥对,依赖于我以前创建的所谓“主公钥/私钥对”,用于我的应用程序,如果应用程序中的私钥被盗,我可以撤销它,因为使用主密钥我可以证明我是所有者 希望有人明白我的意思;-) 迈克 更新1: 我正在开发一个点对点应用程序,因此没有中央服务器/CA 我使用

我正在创建一个应用程序(C#),它将在网络上发送一些消息。传出消息将由私钥签名,传入消息将由私钥解密

如果有人窃取私钥,我希望能够撤销它(向所有其他客户端发送撤销消息)。因为我是被盗私钥的所有者,只有我才能撤销它

我的问题:是否有可能创建一个公钥/私钥对,依赖于我以前创建的所谓“主公钥/私钥对”,用于我的应用程序,如果应用程序中的私钥被盗,我可以撤销它,因为使用主密钥我可以证明我是所有者

希望有人明白我的意思;-)

迈克

更新1:


  • 我正在开发一个点对点应用程序,因此没有中央服务器/CA
  • 我使用C中的RSACryptServiceProvider类生成公钥/私钥#

您希望将密钥包装在X.509证书中。证书应具有支持OCSP(联机证书状态协议)的吊销机构。请参见

基本上,您将设计一个系统,其中每个客户端都可以接收由两个私钥签名的消息:如果它们接收到来自第二个私钥的消息,它将丢弃接收到的任何使用第一个密钥签名的消息

似乎很简单

< P> >,我想你的意思是你想“撤销”第一个公钥/私钥,这样你的系统会认为这对无效的独立于相同的处理,我的意思是,即使有人破解客户端,它将不能接受第一个妥协密钥对,因为不知何故,它们被第二个密钥对撤销。 是这样吗


如果是的话。。。不,没有某种服务器,我认为你不能“撤销”密钥对。撤销意味着让中央服务器告诉您哪些密钥是有效的,或者让您的应用程序在内部执行此检查(例如,从第二个密钥对接收消息并进行处理)

您不需要第二个密钥(如果需要,如果攻击者偷了该密钥怎么办?)只需定义一个“revocation”消息类型,该消息类型指示签署该消息的密钥已被撤销(不可撤销,原样)。如果您的密钥被盗,您只需使用被盗的密钥发送撤销消息,该密钥对攻击者就没有用处了


当然,如何分发撤销消息取决于您使用的系统,但我在这里假设您已经有了分发密钥的方法,因此撤销可以采用相同的方法。

您使用的是X.509、OpenPGP还是完全自定义的(为什么使用完全自定义的)?我正在开发一个点对点应用程序,因此不会有中央撤销权限。谢谢你的回答,你明白我的意思。生成公钥/私钥时是否可能“影响”公钥/私钥,我的意思是,我可以将另一公钥的哈希插入新公钥(作为公钥的一部分)中吗?这样的解决方案可以解决我的问题。@Mike:在RSA,我不这么认为。。。没有磁场、信号或类似的东西。我正在查看其他公钥/配对密钥,但我从未听说过类似的事情。谢谢您的评论。我想你给出了最后的答案-我的问题没有解决方案:-(我已经实现了你所描述的撤销。第二对(“主密钥”)是必要的,因为我需要一个永远不会更改的公钥。@Mike什么可以防止“主”密钥被泄露?主密钥的私钥密钥对受到特殊保护(加密),因为大多数时候我只需要它的公钥(作为GUID)。