【问题标题】:RSA Send A Message That Everyone Can VerifyRSA 发送每个人都可以验证的消息
【发布时间】:2017-04-02 17:48:17
【问题描述】:

我无法理解 RSA 加密算法。

假设我们有两个人 Alice 和 Bob,每个人都有自己的私钥和公钥。为了让 Alice 发送只有 Bob 可以阅读的消息,我们是否只需使用 Bob 的公钥发送加密消息?

同样,为了让 Alice 发送一条所有人都可以验证它来自她的消息,我们是否只需使用 Alice 的公钥发送一条加密消息?

谢谢!

【问题讨论】:

    标签: encryption rsa digital-signature public-key


    【解决方案1】:

    您需要了解的是公钥基础架构。此结构由每个“用户”2 个密钥组成,一个公共密钥,一个私有密钥。 PKI 使用的算法可以使用 User1 的公钥对消息进行加密,并且只有知道 User1 的私钥,才能解密此消息。以您的示例为例,任何人都可以使用 Alice 的公钥加密消息,但只有 Alice 可以解密它,因为 Alice 是唯一拥有私钥对应方的人。

    PKI 或非对称密码比对称密码慢,这就是为什么 PKI 仅用作对称密钥密码的先驱。如需更多信息,请参阅https://en.wikipedia.org/wiki/Public-key_cryptography

    【讨论】:

      【解决方案2】:

      假设我们有两个人 Alice 和 Bob,每个人都有自己的私钥和公钥。为了让 Alice 发送一条只有 Bob 可以阅读的消息,我们是否只需使用 Bob 的公钥发送一条加密消息?

      是的,消息用 Bob 的公钥加密,用私钥加密。 (注意消息的大小受 RSA 密钥大小的限制,所以对于大消息的加密,使用 RSA 加密来共享一个对称加密密钥)

      同样,为了让 Alice 发送一个所有人都可以验证它来自她的消息,我们是否只需使用 Alice 的公钥发送一个加密消息?

      这是不正确的。这种情况称为“数字签名”。消息使用 SHA 等散列算法进行消化,结果使用 Alice 的私钥加密。这是签名。 Bob 可以使用 Alice 的公钥验证消息和签名(解密签名并检查消息的哈希值是否与加密的哈希值相同)。如果验证成功,您就知道它是由 Alice 颁发的,因为她拥有私钥

      【讨论】:

        猜你喜欢
        • 2017-07-25
        • 2019-09-20
        • 1970-01-01
        • 2023-04-09
        • 1970-01-01
        • 2013-03-10
        • 2016-10-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多