我对PKI,证书和所有相关内容都比较陌生。
据我所知,在公钥加密中,一个用公钥加密并用私钥解密。只有一个私钥可以对应任何公钥,但反之则不然。这是对的吗?或者是一对一的映射?
因此,数字签名的工作方式是对证书的内容进行哈希处理,然后使用私钥“签名”。然后使用相应的公钥验证签名。
所以,这是我感到困惑的地方。使用公钥加密邮件和使用私钥签名邮件摘要有什么区别?
答案 0 :(得分:25)
我认为信息安全目标对于实现消息加密和签名之间的区别至关重要。定义一些目标:
邮件加密提供机密性。
邮件签名将邮件来源的标识绑定到此邮件。它确保数据完整性,消息身份验证和不可否认完全。
我发现第四个目标,不可否认性,我觉得它有所区别所以请允许我详细说明。 Alice可能会在某个时间点拒绝签署消息,或者Bob可能会错误地声称Alice已生成消息签名。数字签名允许无偏见的可信第三方(事先同意)解决争议,而无需访问签名者的秘密信息(私钥)。
您在问题中提到的数字签名系统称为来自可逆公钥加密的数字签名。总而言之,任何数字签名方案都应具有以下属性:
对于加密系统,Kerckhoffs定义了一系列要求,这些要求在大多数情况下仍然有用。请阅读wiki。
关于用于密钥生成和加密/解密的函数类型,让我们再给出一些定义:
f: X -> Y
中的每个元素都是{{1}中最多一个元素的图像,则函数Y
是一对一的1}}。X
中的每个元素都是f: X -> Y
中至少一个元素的图像,则会显示函数Y
。X
易于为f: X -> Y
中的所有元素计算,但对于所有元素f(x)
,则函数X
是单向的{1}} y
Y
x
f(x) = y
f: X -> Y
y
。{/}
Y
,其中有额外信息(陷门信息)的知识,可以找到任何{{1} } x
中X
f(x) = y
(e,n)
{/ 1}}。{/ li>
醇>
双向投射用作加密消息的工具,反向双射用于解密。
陷门单向函数用于公钥密码系统和数字签名方案中的密钥对生成。
Trapdoor具体示例
在RSA中,公钥为n =pq
,其中p
和q
以及e
是两个较大的不同素数。在1 < e < (p - 1)(q - 1)
范围内随机选择(p - 1)(q - 1)
。鉴于d
的知识,唯一私钥d
是通过应用扩展欧几里德算法获得的。它是一个陷门单向函数,使我们能够从(e,n)
获取(p - 1)(q - 1)
。
如果您不知道d
但仍想发现n
,则需要考虑因素p
。如果q
和n
很大且经过仔细选择,则因子n
应该是难以处理的。这是RSA问题(RSAP)。
但陷门在哪里?您可能已经注意到,陷门是d
的因素。如果您了解这些因素,则可以轻松反转单向函数并显示{{1}}。
答案 1 :(得分:5)
邮件加密使整个邮件对除了相应私钥的所有者之外的任何人都不可读。
当您对邮件进行签名时,它会创建类似于邮件内容的校验和以及来自密钥的数据,可以根据公钥进行验证。 这不会使任何人无法阅读邮件,但可以验证邮件是否真正来自发件人,并且自那时起未被更改。
当然,这需要您信任公钥,但这是另一个故事。
关于你的第一个问题:AFAIK理论上可以创建公钥冲突,但不太可能。
答案 2 :(得分:5)
公钥加密,私钥解密用于加密和数字签名,这是相反的。
提示:想象一下公钥作为挂锁和私钥作为打开挂锁的钥匙。
public key cryptography or asymmetric cryptography的两个最着名的用途是数字签名和公钥加密。在非对称密钥加密方案中,任何人都可以使用公钥加密消息,但只有配对私钥的持有者才能解密。安全性取决于私钥的保密性。
要使用数字签名或公钥加密,我们必须拥有数字身份证或数字证书或公钥证书或身份证书。它是用于证明公钥所有权的电子文档。
数字签名,其中使用发件人的私钥对邮件进行签名,并且可以由有权访问发件人公钥的任何人验证。此验证证明发件人可以访问私钥,因此很可能是与公钥相关联的人。这也确保了消息没有被篡改,因为签名在数学上与它最初制作的消息绑定,并且对于几乎任何其他消息,无论与原始消息有多么相似,验证都将失败。数字签名的类比是用个人蜡封密封信封。任何人都可以打开该消息,但是唯一封条的存在会对发件人进行身份验证。
公钥加密,其中使用收件人的公钥加密邮件。任何没有匹配私钥的人都不能解密该消息,因此推测该密钥是该密钥的所有者和与该公钥相关联的人。这用于确保机密性。公钥加密的类比是带有邮件插槽的锁定邮箱的类比。邮件插槽是公开的 - 公众可以访问 - 它的位置(街道地址)本质上是公钥。任何知道街道地址的人都可以上门并通过插槽发送书面信息。但是,只有拥有密钥的人才能打开邮箱并阅读邮件。
img src
R 注册 A uthority( RA ), C ertificate A uthority( CA )和 V alidation A uthority( VA )
DES( D ata E ncryption S 标准)和Triple DES(DES的更强变体),AES(< strong> A 高级 E ncryption S 标准)是对称密钥加密系统。它使用相同的密钥进行加密和解密。
DSA( D 数字 S 点燃 A 算法)和RSA(Ron R ivest, Adi S hamir和Leonard A dleman)是公钥密码系统,广泛用于安全数据传输。 DSA仅提供数字签名,RSA提供数字签名和加密。
答案 3 :(得分:2)
任何私钥都有一个公钥,任何公钥都有一个私钥,它始终是一对一的映射。
签名邮件只是为邮件创建一个指纹,只是为了确保内容没有被更改,但它对自己的邮件没有影响,邮件永远不会被加密。
加密邮件时会进行加密。您可以加密邮件并同时签名。
答案 4 :(得分:1)
正如其他答案中已经提到的,公钥和私钥是相互耦合的。实际上,在许多加密上下文中,您有一对具有某些属性的数字,并且可以选择要将其用作私有和哪些作为公钥。因此,这里存在一定程度的独特性。 (细节可能因所讨论的算法而异。)
在讨论PKI时,您通常不会考虑公钥,而是证书,它们本质上是一组公开信息(发行人,主题,有效期,使用限制......)键。在创建证书时,您当然可以为同一个公钥构建不同的证书。
因此,虽然私钥和公钥基本上是一对一的,但私钥和证书可能是一对多的。
也许这是你一对一混淆的原因。