Digital certificates: What is the difference between encrypting and signing
我对PKI、证书和所有相关的东西都比较陌生。
据我所知,在公钥密码学中,用公钥加密,用私钥解密。只有一个私钥可以对应于任何一个公钥,但事实并非如此。这是正确的吗?还是一对一的映射?
因此,数字签名的工作方式是散列证书的内容,然后用私钥"签名"。然后用相应的公钥验证签名。
所以,这就是我困惑的地方。用公钥加密消息和用私钥签署消息摘要有什么区别?
消息加密和签名的区别
我认为信息安全目标对于实现消息加密和签名之间的区别至关重要。要定义几个目标:
消息加密提供机密性。
消息签名将消息源的标识绑定到此消息。它可以确保数据完整性、消息认证和不可否认性。
我发现第四个目标,不可否认,我发现它是有区别的,所以请允许我详细阐述。爱丽丝可能在某个时间点否认签署了一条消息,或者鲍勃可能错误地声称消息签名是爱丽丝制作的。数字签名允许无偏见的可信第三方(事先商定)解决争议,而无需访问签名者的秘密信息(私钥)。
您在问题中提到的数字签名系统称为可逆公钥加密的数字签名。总之,任何数字签名方案都应具有以下属性:
至于加密系统,Kerkhoff定义了一组需求,在大多数情况下,这些需求在今天仍然有用。请在维基上阅读。
密码学中使用的函数类型关于用于密钥生成和加密/解密的函数类型,让我们再次给出一些定义:
双射用作加密消息的工具,反向双射用于解密。
在公钥密码体制和数字签名方案中,采用了陷阱门单向函数来生成密钥对。
活板门具体实例
在RSA中,公钥是
如果你不知道
但是活动门在哪里?正如你可能已经注意到的,陷阱门是
public keys encrypt, private keys decrypt for encryption and for digital signatures, it is the reverse.
Tip: Imagine public key as padlock and private key as key which opens the padlock.
公钥加密或非对称加密的两个最著名的用途是数字签名和公钥加密。在非对称密钥加密方案中,任何人都可以使用公钥加密消息,但只有成对私钥的持有者才能解密。安全性取决于私钥的保密性。
要使用数字签名或公钥加密,我们必须具有数字标识或数字证书或公钥证书或身份证书。它是用来证明公钥所有权的电子文档。
一种数字签名,其中消息使用发送方的私钥进行签名,并且任何有权访问发送方的公钥的人都可以对其进行验证。此验证证明发送方可以访问私钥,因此很可能是与公钥关联的人。这也确保了消息没有被篡改,因为签名在数学上绑定到它最初所用的消息,并且无论与原始消息有多么相似,实际上任何其他消息的验证都将失败。数字签名的一个类比是用个人蜡封封住信封。消息可以由任何人打开,但唯一印章的存在会验证发送者的身份。
使用收件人的公钥对邮件进行加密的公钥加密。没有匹配私钥的任何人都无法解密消息,因此假定该私钥的所有者和与公钥关联的人是该私钥的所有者。这是为了确保机密性。与公钥加密类似的是一个带有邮件槽的锁定邮箱。邮件槽是公开的,公众可以访问,其位置(街道地址)本质上是公共密钥。任何知道街道地址的人都可以走到门口,通过投币口投下一条书面信息。但是,只有拥有密钥的人才能打开邮箱并阅读邮件。
IMG-SRC
- 公钥基础结构(PKI)是创建、管理、分发、使用、存储和吊销数字证书以及管理公钥加密所需的一组角色、策略和过程。
IMG-SRC注册机构(RA)、证书颁发机构(CA)和验证机构(VA)
DES(数据加密标准)和Triple DES(DES的一个更强大的变体)、AES(高级加密标准)是对称密钥密码系统。它使用相同的密钥进行加密和解密。
数字签名算法(DSA)和RSA(Ron Rivest、Adi Shamir和Leonard Adleman)是公钥密码体制,广泛应用于安全数据传输。DSA只提供数字签名,RSA同时提供数字签名和加密。
消息加密使除相应私钥所有者之外的任何人都无法读取整个消息。
当您签署一条消息时,它将结合来自密钥的数据创建类似于消息内容校验和的内容,这些数据可以通过公钥进行验证。这不会使任何人都无法阅读邮件,但可以验证邮件确实来自发件人,并且从那以后没有被更改。
当然,这需要您信任公钥,但这是另一回事。
第一个问题是:Afaik理论上可以创建公钥冲突,但可能性非常小。
任何私钥都有一个公钥,而任何公钥都有一个私钥,它总是一对一的映射。
签署消息只是为消息创建一个指纹,以确保内容没有被更改,但它对消息本身没有影响,消息将永远不会被加密。
加密消息时,将进行加密。您可以加密消息并同时对其签名。
正如其他答案中已经提到的,公钥和私钥是相互耦合的。实际上,在许多加密上下文中,您有一对具有特定属性的数字,可以选择要用作私钥的数字和要用作公钥的数字。因此,这里有一定程度的独特性。(细节可能因所讨论的算法而异。)
但是,在谈论pkis时,您通常不考虑公钥,而是考虑证书,证书本质上是带有公钥的信息包(颁发者、主题、有效期间隔、使用约束等)。创建证书时,当然可以为同一公钥构建不同的证书。
因此,虽然私钥和公钥本质上是一对一的,但是私钥和证书可能是一对多的。
也许这就是你一对一困惑的原因。