数字证书:加密和签名之间有什么区别

问题描述 投票:11回答:5

我对PKI,证书和所有相关的东西都比较新。

据我所知,在公钥加密中,用公钥加密并用私钥解密。只有一个私钥可以对应任何公钥,但反之则不然。这是对的吗?或者是一对一的映射?

因此,数字签名的工作方式是对证书的内容进行哈希处理,然后使用私钥“签名”。然后使用相应的公钥验证签名。

所以,这是我感到困惑的地方。使用公钥加密邮件和使用私钥签名邮件摘要有什么区别?

digital-signature digital-certificate pki
5个回答
25
投票

消息加密和签名之间的区别

我认为信息安全目标对于实现消息加密和签名之间的区别至关重要。定义一些目标:

  1. 机密性:保护信息不被未经授权的各方保密。
  2. 数据完整性:确保未经授权的方式改变信息。
  3. 消息认证(数据源认证):确认信息源。
  4. 不可否认性:防止否认以前的行为。

消息加密提供机密性。

邮件签名将邮件源的标识绑定到此邮件。它确保数据完整性,消息身份验证和不可否认性。

我发现第四个目标,不可否认性,我觉得它有所区别所以请允许我详细说明。 Alice可能会在某个时间点拒绝签署消息,或者Bob可能会错误地声称Alice已生成消息签名。数字签名允许无偏见的可信第三方(事先商定)解决争议,而无需访问签名者的秘密信息(私钥)。

您在问题中提到的数字签名系统称为可逆公钥加密的数字签名。总而言之,任何数字签名方案都应具有以下属性:

  1. 签名者很容易计算。
  2. 任何人都很容易验证。
  3. 在不再需要(签名寿命)之前,它是安全的。

至于加密系统,Kerckhoffs定义了一系列要求,这些要求在大多数情况下仍然有用。请阅读wiki

密码学中使用的函数类型

关于用于密钥生成和加密/解密的函数类型,让我们再给出一些定义:

  1. 一对一功能:如果f: X -> Y中的每个元素都是Y中最多一个元素的图像,则函数X是一对一的。
  2. 在函数上:如果f: X -> Y中的每个元素都是Y中至少一个元素的图像,则函数X
  3. 双射功能:双射是一对一的。
  4. 单向函数:如果f: X -> Y很容易计算f(x)中的所有元素,则函数X是单向函数但是对于y中的所有元素Y,在x中找到任何f(x) = y计算上是不可行的。
  5. Trapdoor单向函数:它是一个单向函数f: X -> Y,其中额外信息(陷门信息)的知识使得可以找到y中的任何Yx中的X,使f(x) = y

双射用作加密消息的工具,反向双射用于解密。

陷门单向函数用于公钥密码系统和数字签名方案中的密钥对生成。

Trapdoor具体实例

在RSA中,公钥是(e,n),其中n =pqpq是两个大的,不同的素数。 e是在1 < e < (p - 1)(q - 1)范围内随机选择的。鉴于(p - 1)(q - 1)的知识,唯一的私钥d是通过应用扩展的欧几里德算法获得的。它是一个陷门单向函数,使我们能够从d获得(e,n)

如果你不知道(p - 1)(q - 1)并且仍然想发现d,那么你需要考虑n。如果pq很大并且经过精心挑选,那么n因子应该是难以处理的。这是RSA问题(RSAP)。

但陷阱在哪里?你可能已经注意到,陷门是n的因素。如果您了解这些因素,您可以轻松地反转单向函数并显示d


5
投票

消息加密使整个消息对除了相应私钥的所有者之外的任何人都不可读。

当您对消息进行签名时,它会创建类似于消息内容的校验和以及来自密钥的数据,可以根据公钥进行验证。这不会使消息对任何人都不可读,但可以验证消息确实来自发件人并且自那以后没有被更改。

当然,这要求您信任公钥,但这是另一个故事。

对于您的第一个问题:AFAIK理论上可以创建公钥冲突,但不太可能。


5
投票

公钥加密,私钥解密加密和数字签名,这是相反的。 提示:想象一下公钥作为挂锁和私钥作为打开挂锁的钥匙。

public key cryptography or asymmetric cryptography的两个最着名的用途是数字签名和公钥加密。在非对称密钥加密方案中,任何人都可以使用公钥加密消息,但只有配对私钥的持有者才能解密。安全性取决于私钥的保密性。

要使用数字签名或公钥加密,我们必须拥有数字身份证或数字证书或公钥证书或身份证书。它是用于证明公钥所有权的电子文档。

  • 数字签名,其中邮件使用发件人的私钥进行签名,并且可以由有权访问发件人公钥的任何人进行验证。此验证证明发件人可以访问私钥,因此很可能是与公钥相关联的人。这也确保了消息没有被篡改,因为签名在数学上与它最初制作的消息绑定,并且对于几乎任何其他消息,无论与原始消息有多么相似,验证都将失败。数字签名的类比是用个人蜡封密封信封。任何人都可以打开该消息,但是唯一封条的存在会对发件人进行身份验证。
  • 公钥加密,其中使用收件人的公钥加密邮件。任何不具有匹配私钥的人都不能解密该消息,因此推测该密钥是该密钥的所有者和与该公钥相关联的人。这用于确保机密性。公钥加密的类比是带有邮件槽的锁定邮箱的类比。邮件插槽是公开的 - 公众可以访问 - 它的位置(街道地址)本质上是公钥。任何知道街道地址的人都可以上门并通过插槽发送书面信息。但是,只有拥有密钥的人才能打开邮箱并阅读邮件。

enter image description here img src

  • 公钥基础结构(PKI)是创建,管理,分发,使用,存储和撤销数字证书以及管理公钥加密所需的一组角色,策略和过程。

enter image description here img src 注册机构(RA),证书颁发机构(CA)和验证机构(VA)

  • DES(数据加密标准)和三重DES(DES的更强变体),AES(高级加密标准)是对称密钥密码系统。它使用相同的密钥进行加密和解密。
  • DSA(数字签名算法)和RSA(Ron Rivest,Adi Shamir和Leonard Adleman)是公钥密码系统,广泛用于安全数据传输。 DSA仅提供数字签名,RSA提供数字签名和加密。

2
投票

任何私钥都有一个公钥,任何公钥都有一个私钥,它始终是一对一的映射。

签名消息只是为消息创建一个指纹,只是为了确保内容没有被更改,但它对消息本身没有影响,消息永远不会被加密。

加密邮件时会进行加密。您可以加密邮件并同时签名。


1
投票

如在其他答案中已经提到的,公钥和私钥彼此耦合。实际上,在许多加密上下文中,您有一对具有某些属性的数字,并且可以选择要将其用作私有和哪些作为公钥。因此,这里存在一定程度的独特性。 (详情可能因所讨论的算法而异。)

但是,在谈论PKI时,您通常不会考虑公钥,而是基本上是使用公钥的信息包(发行者,主题,有效性间隔,使用限制......)的证书。创建证书时,您当然可以为同一个公钥构建不同的证书。

因此,虽然私钥和公钥基本上是一对一的,但私钥和证书可以是一对多的。

也许这是你一对一混淆的原因。

© www.soinside.com 2019 - 2024. All rights reserved.