我听说您可以使用私钥加密数据作为数字签名的方法。换句话说,您可以使用私钥加密邮件。
在文本中,他们似乎总是说只有公钥可以加密,私钥可以解密文本。
我认为这是一个糟糕的选择。是一个密钥的单个实例只能做一个或另一个,但是哪个密钥是公共的还是私有的,这不是它的功能问题,而是它的分布或缺乏。
答案 0 :(得分:7)
对于初学者来说,术语令人困惑。 RSA可用于2种不同的加密功能:数据加密和数字签名。
对于数据加密,您 使用收件人的公钥加密数据; 他们 使用他们的私钥解密它。请注意,由于RSA的各种限制,加密和解密的“数据”通常只是对称算法的关键。
对于数字签名,使用您的私钥您 签署数据; 他们 使用您的公钥验证数据签名。同样,RSA的各种限制意味着RSA算法实际操作的内容通常是数据的安全散列。
有时签名操作称为“使用私钥加密”,验证操作称为“使用公钥解密”。我认为这只会让人感到困惑,所以我总是喜欢在这种情况下签署和验证的条款。此外,“加密”和“解密”对DSA和ECDSA等其他签名算法毫无意义。
答案 1 :(得分:2)
You CAN generate public key from private key.
您无法从公钥生成私钥(嗯,您可以,但这在计算上非常昂贵)。
这就是两者之间的区别。它们不可互换(因此,例如,您不应发布私钥,并保留公钥),因为算法的工作方式。
以RSA为例。算法基础是整数分解的问题。您选择两个大整数 p 和 q 并将它们相乘以得到 n = p * q 。然后创建公钥和私钥:
然后:
从私钥计算公钥很容易:
n = p * q
e = d ^( - 1)modφ(n),其中φ(n)=(p-1)(q-1)
答案 2 :(得分:0)
您向公众发布加密密钥,并将您的解密密钥保密。这样,任何人都可以向您发送只有您可以解密的加密数据。
如果你反过来这样做,那么你将是唯一一个能够加密你的数据的人,但是任何人都可以对它进行解密。这是没有意义的。如果每个人都可以解密您的邮件,您也可以不加密地发送邮件。没有必要对邮件进行加密,然后将解密密钥公开。
答案 3 :(得分:0)
有两种类型加密,一种是对称的,另一种是非对称的。在对称中,用于加密和解密的密钥是相同的。在非对称中,用于加密的密钥是公钥,解密是私钥..
所有工作都基于密钥的保密原则。在数字签名中,常用作SSL / TLS协议的一部分,使用非对称加密进行身份验证和共享,进一步用于加密通信线路