数字签名和数字证书有什么区别?

时间:2010-05-21 13:36:52

标签: digital-signature digital-certificate

我一直在谷歌数字签名和数字证书(非对称加密)之间的区别 看起来他们是一样的。我想澄清它们是否相同?非常感谢!!!

11 个答案:

答案 0 :(得分:72)

数字签名用于验证邮件。它基本上是消息的加密散列(由发送者的私钥加密)。收件人可以通过散列收到的邮件并将此值与解密的签名进行比较来检查邮件是否被篡改。

要解密签名,需要相应的公钥。 数字证书用于将公钥绑定到个人或其他实体。如果没有证书,签名很容易被伪造,因为收件人无法检查公钥是否属于发件人。

证书本身由受信任的第三方签署,如VeriSign的证书颁发机构

答案 1 :(得分:61)

让我扩展阿什利的解释。与加密所有内容一样,假设Alice(发件人)想要向Bob(收件人)发送安全邮件

这里要解决两个问题。

  1. 如何加密邮件,以便只有Bob可以解密它。
  2. 鲍勃如何确保消息首先来自Alice,而不是被传输中的人修改。
  3. 这两个问题都可以通过公钥加密解决。对于(1),Alice用Bob的公钥加密消息。当bob收到消息时,他可以用他的私钥安全地解密它。所以使用Bob的公钥加密并使用Bob的私钥进行解密(这是公钥加密中的基本内容)

    为解决(2),Alice还发送数字签名和加密消息。这样做如下:

    • 通过哈希函数(例如sha-1)传递原始邮件,以获取邮件摘要
    • 使用Alice的私钥加密此邮件摘要(请注意,这与使用Bob的公钥加密原始邮件的方式相反)

    当Bob收到消息+数字签名时,他将:

    • 使用此私钥解密邮件,然后计算其邮件摘要。让我们称之为摘要M1。
    • 使用Alice的公钥解密签名以获取消息摘要。让我们称之为M2。
    • 如果M1和M2相同,Bob可以确定该消息在传输过程中未被修改,而且确实来自Alice。

    对于数字证书,请注意Alice依赖于使用Bob的公钥加密原始邮件,而Bob依赖Alice的公钥来解密签名。他们两个如何确定彼此的公钥?这就是数字证书的用途。它允许受信任的第三方验证/说“Alice的公钥是xyz”。

答案 2 :(得分:21)

最清楚的解释可以在RSA实验室获得:

  

数字签名:假设Alice想要发送签名   鲍勃的文件或信息。首先   步骤一般是应用哈希   功能到消息,创造什么   被称为消息摘要。该   消息摘要通常很大   比原始邮件短。在   事实上,哈希函数的工作是   接受任意长度的消息   并将其缩小到固定长度。   创建一个数字签名   通常签署(加密)消息   消化而不是消息   本身。

     

...

     

Alice向Bob发送加密消息   消化和消息,她可能   或者可能不加密。为了鲍勃   验证他必须签名   应用与Alice相同的哈希函数   对她发给他的消息,解密   使用加密的消息摘要   爱丽丝的公钥和比较   二。如果他们两个是相同的   成功通过认证   签名。如果两者不匹配   有一些可能的解释。   有人试图这样做   模仿爱丽丝,消息本身   自爱丽丝签名以来一直在改变   或者在期间发生错误   传输。

     

...

     

数字证书:此外,有人可能会假装   是爱丽丝,用钥匙签署文件   他声称对是爱丽丝的。避免   像这样的场景,有   数字文件称为证书   将一个人与一个人联系起来   具体的公钥。

这些引用来自http://www.rsa.com/rsalabs/node.asp?id=2182http://www.rsa.com/rsalabs/node.asp?id=2277

的RSA实验室

答案 3 :(得分:16)

来自维基百科(强调我的):

  

digital signature或数字签名方案是用于演示数字邮件或文档的真实性的数学方案。有效的数字签名使收件人有理由相信邮件已创建由一个已知​​的发件人,并在运输过程中没有改变。数字签名通常用于软件分发,金融交易,以及在检测伪造和篡改很重要的其他情况下。

  

在密码学中,公钥证书(也称为digital certificate或身份证书)是一种电子文档,它使用数字签名将公钥与身份绑定在一起 - 信息,例如个人或组织的名称,地址等。证书可用于验证公钥是否属于个人。

因此,如果我理解上述内容,数字签名只能证明文件没有被篡改,而数字证书证明文件实际上来自你。

答案 4 :(得分:9)

从概念上讲,它们是一种对立面。使用数字证书可以使用公钥加密并使用私钥解密,这样您就可以确保只有拥有私钥的人才能读取您的文本。使用数字签名,您使用私钥加密并使用公钥解密,这样任何人都可以解密,但只有拥有私钥的人才能加密,因此您知道该消息来自具有私钥的人。

答案 5 :(得分:4)

@ numan的回答提供了对确保机密性,完整性和身份验证的必要过程的良好解释。但这并没有回答一个真正的问题。

数字签名的目标是提供这些基本服务,

  • 真实性:发件人已根据其声明签署了数据(数据必须使用发件人的私钥加密)。

  • 完整性:保证数据自签名之日起未发生变化。

  • 不可否认:接收方可以将数据提供给某些可以接受数字签名的第三方作为数据的证明 交换确实发生了。此外,发件人(签约方)不能 拒绝签署数据。

它具有确保真实性和完整性的属性,例如,

签名不可伪造:提供签名者,而不是其他人签署文件的证据。

签名不可否认:这意味着,出于法律目的,签名和文档被视为物理内容。签名者后来不能声称他们没有签名。

签名未经更改:签署文件后,无法更改。

签名不可重复使用:签名是文档的一部分,无法移动到其他文档。

另一方面,某些第三方证书颁发机构(CA)颁发了数字证书,以验证证书持有者的身份。它实际上包含从CA自己的私钥派生的证书颁发机构的数字签名

它还包含与数字证书所有者关联的公钥。

您可能想了解Digital Certificates是如何构建的。

答案 6 :(得分:4)

数字签名解释:

Sender   : Encrypt(hash(message), priv_key) = dig_sign 
Receiver : Decrypt(dig_sign, pub_key) => hash_of_message == hash(message) 

答案 7 :(得分:4)

数字签名是电子生成的,用于确保数据(例如电子邮件)的真实性和完整性。鉴于数字证书是一种证明网站所有者身份的媒介,并且可以防止访问者与发件人进行数据交换。

可以说,它类似于驾照或任何雇员身份证之类的其他人的身份证明。受信任的第三方颁发数字证书,以建立拥有证书的人的身份。这些发行数字证书的第三方称为证书颁发机构(CA)。简而言之,数字证书用于验证网站的可信度,数字签名用于验证信息的可信度。

通常,数字签名系统使用三种算法。首先-密钥生成算法用于生成公钥和私钥对。第二-签名算法用于生成签名,该签名在分发私钥和消息时使用。第三,最后,签名验证算法用于消息,签名和公钥的验证。这是应用数字签名的常见原因。

1。身份验证
2.诚信
3.不可否认性

“数字证书”使用数字签名将公钥附加到任何特定实体或个人。与数字证书一起携带的某些信息有:用于唯一标识每个证书的序列号,由证书标识的个人或实体以及用于创建签名的算法。除此之外,它还包含CA,该CA验证证书的所有信息,证书的验证和有效期。它还包含公钥和指纹,以确保不会修改证书。数字证书通常用于基于HTTPS的电子商务网站上,以赢得网站访问者的信任。

数字证书包含以下内容:

证书持有人名称
序列号
证书到期日期
证书持有者公钥的副本
证书颁发机构的数字签名

数字签名和数字证书的主要区别

数字签名

它验证文件的真实性
非对称密钥用于加密和解密文档。
它提供了身份验证,不可否认性和完整性。

数字证书

它可以创建身份并提高网站的可信度。
验证过程完成后,证书颁发机构将颁发证书。

阅读有关digital signatures and how they work和数字证书here的详细信息。

答案 8 :(得分:1)

我最近正在研究有关数字签名和数字证书的内容,并发现一个有趣的blog,这是基于该网页可能已损坏的事实,让我尝试在此处进行说明。

首先,让我们了解Wiki上的公钥加密

  

公钥密码学或非对称密码学是一种   使用成对密钥的密码系统:可能是   广泛传播,并且只有私钥才知道   所有者。此类密钥的生成取决于密码算法   根据数学问题产生单向函数。有效   安全仅需要将私钥保持私有;公钥   可以在不损害安全性的情况下公开分发。

公钥加密的一种常见用法是公钥加密,我用下面的序列图总结了常见的用法场景:

enter image description here

Bob具有公共密钥和私有密钥,他可以将公共密钥提供给多个消息发件人。对于那些发件人,他们可以在发送消息之前使用公共密钥对消息进行加密。只有Bob可以使用私钥解密邮件。对于其他接收者,他们不知道真正的信息是什么。

公钥加密的另一种常见用法是数字签名,请检查下图:

enter image description here

相反,鲍勃使用私钥对摘要进行加密以签名。 Pat知道Bob可以使用提供的公共密钥解密签名,因此该文档是由Bob发送的。通过将接收到的文档散列为摘要,他可以通过将其与解密摘要进行比较来检查文档是否已被修改。

但是,假设有一个叫道格的人假装鲍勃,想欺骗帕特。他可以以Bob的名义将公共密钥和数字签名发送给Pat,Pat如何知道密钥是否来自Bob?这就是导入数字证书的原因。

下面的检查图:

enter image description here

证书颁发机构充当受信任的第三方。这意味着数字证书可以由CA颁发(如果可以通过CA公钥解密)。解密后,pat将检查Bob的信誉是否良好,有关Bob身份的证书信息是否已更改。然后Pat会使用Bob的公钥进行与数字签名相关的身份验证,如上所述。

答案 9 :(得分:0)

如果签名/证书由同一个CA /可信实体签名,则没有区别。

如果签名数据包含由CA /可信实体签署的委托发送方(即信任链)的某些签名数据(例如发件人的公钥),则也没有差异(或者我们应该调用签名数据)证书?)。

换句话说,证书是一种签名用法。

答案 10 :(得分:0)

数字签名是一种用于验证消息,软件或数字文档的真实性和完整性的技术。作为手写签名或盖章的数字等同物,数字签名提供了更好的安全性,旨在解决数字通信中的篡改和假冒问题。

换句话说,数字签名是一种身份验证机制,它使消息的创建者可以附加充当签名的代码。

数字签名如何工作?

数字签名基于公钥加密,也称为。使用公钥算法,可以生成彼此链接的公钥和私钥。

数字签名之所以起作用,是因为公共密钥加密取决于两个相互认证的加密密钥。创建数字签名的个人使用自己的私钥来加密与签名相关的数据,而解密该数据的唯一方法是使用签名者的公钥。这就是数字签名的认证方式。

数字签名技术要求所有各方都相信创建签名的个人已经能够将自己的私钥保密。如果其他人有机会访问签名者的私钥,则他们可以以私钥持有者的名义创建欺诈性数字签名。

引用:http://learningsolo.com/implement-digital-signature/