Encryption I';我正在寻找一种密码结构,它允许客户端对消息进行解码,但不进行编码

Encryption I';我正在寻找一种密码结构,它允许客户端对消息进行解码,但不进行编码,encryption,cryptography,privacy,Encryption,Cryptography,Privacy,假设A和B是两个想要交换消息的人,yada yada 我想构建一个允许A向B发送加密消息的东西;B能够解码消息,但不能对另一条有效消息进行编码 有点与非对称方案的工作原理相反 这样的结构存在吗?注意:我在这里做一些简化,这在密码学中是危险的。我所说的RSA是正确的,但在使用任何密码系统之前,尤其是在设计任何新的密码系统使用方法之前,您确实必须做一些研究。非常小的误用会导致完全不安全的系统。正如@almosnow所指出的,以这种方式使用ElGamal将被打破。正如@CodesInChaos所指出的

假设A和B是两个想要交换消息的人,yada yada

我想构建一个允许A向B发送加密消息的东西;B能够解码消息,但不能对另一条有效消息进行编码

有点与非对称方案的工作原理相反

这样的结构存在吗?

注意:我在这里做一些简化,这在密码学中是危险的。我所说的RSA是正确的,但在使用任何密码系统之前,尤其是在设计任何新的密码系统使用方法之前,您确实必须做一些研究。非常小的误用会导致完全不安全的系统。正如@almosnow所指出的,以这种方式使用ElGamal将被打破。正如@CodesInChaos所指出的,签名并不完全是“用私钥加密”(这是他们的心脏,但还有其他重要的部分)。RSA很可能是这项特定工作的正确工具,但您必须正确使用它,不幸的是,我不知道任何简短的“以下是正确实现它所需知道的内容”简短的内容,这很好,但既不简短也不简单

RSA就是这样工作的

  • A有一个可以加密消息的密钥。我们称之为私钥
  • B(可能还有其他人)有一个密钥,可以解密用a加密的消息。我们称之为公钥

的确,密钥B可以用来生成只能由a解密的消息,但是对于给定的协议,如果您需要的话,可以很容易地声明“不是消息”。B不能加密B在任何情况下都可以解密的消息,而且因为只有a有私钥,这应该正是您所描述的。

我非常确定公钥会加密,私钥会解密。此外,我认为公钥可以从私钥中推断出来,因此共享私钥和保留公钥并不能解决我的问题:c“public”和“private”只是我们分配给它们的名称。要么可以加密,要么可以解密。一个不能从另一个中推断出来。具体来说,当我们使用公钥加密时,我们称之为“签名”。只有私钥才能解密,我们称之为“验证”。@RobNapier:我指的是你的第一条评论,而不是第二条。在ElGamal中,不使用私钥直接“加密”(意味着保密)。此外,给定私钥,一个人可以轻松地重构公钥,也就是说,一个人确实可以从另一个人那里推断出来。不要将签名称为“用私钥加密”。签名不同于加密,特别是它使用哈希和专门的填充模式。使用非对称签名方案而不是非对称加密方案。