【发布时间】:2011-12-27 23:24:54
【问题描述】:
我是加密新手。
在公钥密码学中,我们有一对密钥——一个用于加密,一个用于解密。
如果 Alice 希望 Bob 发送她的秘密消息,她会公布她的加密密钥(称为公钥)并将解密密钥保密(称为私钥)。 Bob 使用 Alice 的公钥加密消息,Alice 使用她的私钥解密 Bob 的消息。
到目前为止,我认为我们都同意。
现在让我们看看签名会发生什么。 Alice 想向 Bob 发送一条消息并对其进行签名,以证明 Bob 该消息属于她的 Alice。签名旨在解决身份验证问题。使用公钥密码术,签名是用 Alice 私钥加密的消息摘要(例如校验和),并由 Bob 用 Alice 公钥解密。由于只有 Alice 知道它的私钥,Bob 可以确定消息来自 Alice。
这是如何解释签名here:
RSA 等一些非对称算法(公钥算法)允许 反方向工作的过程也是如此:一条消息可以 用私钥加密并用相应的密钥解密 公钥。如果收件人想用 Bob 的 公钥他/她必须知道消息来自 Bob,因为 没有其他人拥有发件人的私钥。数字签名工作这个 方式。
我很困惑的是,Alice 用来加密签名的私钥是什么? 因此,我们使用的签名:
- 相同组密钥,用于从 Bob 向 Alice 发送安全消息, 这意味着 Alice 用来解密从 Bob 收到的消息的同一私钥可以 用于加密消息摘要,由 Alice 发送回 Bob 或 ...
- 附加对用于签署 Alice 消息的加密/解密密钥,其中 Alice 发布该对的解密密钥。
【问题讨论】:
-
对于 RSA,加密和解密密钥在功能上是相同的。我们通常区分公共(加密/验证)和私有(解密/签名)密钥。公开的通常有点短,因为它使用一个小的标准指数。
标签: cryptography public-key-encryption