找回密码
 立即注册
注册 登录
×
热搜: 活动 交友 discuz
查看: 102|回复: 0

数字签名了解

[复制链接]

1

主题

1

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2023-1-5 12:19:37 | 显示全部楼层 |阅读模式
简单理解:数字签名类似于挂号信,发送方用“信封”装好自己的“信”,接收方收到“信”后,对比哈希计算原文信息的原文摘要和解析数字签名得到的原文摘要,若一致,则表示原文未篡改。

  • ”信“是加密信息,解密后能得到信息原文和加密后得到的数字签名,且“信封”也是通过采用接收方的公钥加密过的,只有接收方用自己的私钥才能打开。
  • 接收方接收到“信”后,先用自己的私钥打开信,再用对称密钥解密加密信息,得到信息原文和加密后得到的数字签名,通过对比解密后的数字签名(用发送方公钥)得到的原文摘要和用哈希算法计算信息原文得到的原文摘要,若一致,则表示原文没被篡改。
数字签名 Digital signature

数字签名是一种用于验证数字消息或文档真实性的数学方案。 满足先决条件的有效数字签名使收件人非常相信消息是由已知发件人创建的(真实性),并且消息在传输过程中未被更改(完整性)。
数字证书

数字证书又叫“数字身份证”、“网络身份证”,是电子证书的集合,由证书认证中心CA发放,用于使用加密密钥(公钥和私钥)确认证书持有者的身份,包含公开密钥拥有者以及公开密钥相关信息的一种电子文件,可以用来证明数字证书持有者的真实身份。数字证书的格式一般采用X.509国际标准。
数字签名算法

数字签名算法依靠公钥加密技术完成,普通的数字签名算法包括三种算法:密码生成算法、标记算法、验证算法
数字签名技术大多基于哈希摘要和非对称密钥加密体制来实现。如果签名者想要对某个文件进行数字签名,他必须首先从可信的第三方机构(数字证书认证中心CA)取得私钥和公钥,这需要用到PKI技术
数字签名的过程

用户A将待发送的信息原文经散列函数运算生成摘要信息,并用自己的私有密钥对摘要信息进行加密,将形成的密文和原文传送给用户B。用户B接收到密文后,使用A的公开密钥验证密文,得到摘要信息,并按照约定的摘要算法对原文进行摘要运算,再将两个摘要值进行比对,一致则表明数据未被篡改。
数字签名实现了用户的身份认证,保证了数据在传输过程中的完整性、和交易的不可否认性;但是,任何拥有发送方公开密钥的人都可以验证数字签名的正确性,因此无法保证数据的机密性
加密的过程

加密:A首先要用B的公钥对信息原文进行加密,形成密文,发送给B;B在收到密文后用自己的私钥进行解密,将密文恢复为原文。该过程实现了信息的保密性以及对信息接收方B的认证
由于加密和数字签名都只保证了信息在传输过程中的完整性、保密性、不可否认性和真实性的一部分,只有将两者相结合才能实现所有安全特性
发送A和接收B信息传递的完整过程(签名+加密)


  • A的行为

    • A把信息原文进行哈希运算,得到信息的数字摘要
    • A用自己私钥,采用非对称加密算法,对数字摘要进行加密,得到数字签名
    • A用对称算法的密钥,采用对称算法,对信息原文和数字签名和A的公钥一起加密,得到加密信息
    • A用B的公钥,采用非对称算法,把对称密钥加密,形成信封。就像是对称密钥装到了B公钥加密的信封里面
    • A把加密信息和数字信封一起发给B

  • B的行为

    • B收到数字信息,用自己的私钥解密信封,拿到对称密钥
    • B用对称密钥,把加密信息解密,得到信息原文和数字签名和A的公钥
    • B用A的公钥解密数字签名,得到数字摘要1
    • B将原文用同样的哈希算法,得到数字摘要2
    • 将摘要1和摘要2对比。如果相等,则原文没有被修改,签名是真实的



数字签名两大特性

数字签名,每个人都有一对“钥匙”(数字身份),其中一个只有她/他本人知道(私钥),另一个公开的(公钥)。签名的时候用私钥,验证签名的时候用公钥。又因为任何人都可以落款声称她/他就是你,因此公钥必须向接受者信任的人(身份认证机构)来注册。注册后身份认证机构给你发一数字证书。对文件签名后,你把此数字证书连同文件及签名一起发给接受者,接受者向身份认证机构求证是否真地是用你的密钥签发的文件。

  • 不可伪造:其他人因为没有对应的私钥,所以没法生成公钥可以解密的密文,所以是不可伪造的(恶意方C不可伪造B来拆A的信,因为没有B的私钥。也不可伪造A给B写信,因为C没有A的私钥无法对内容进行加密,而B又会用A的公钥进行解密)。
  • 完整性:消息在传输的过程中无法被修改。
  • 不可抵赖:又因为公钥对应的私钥只有一个,所以只要能成功解密,那么发消息的一定是你,不会是其他人,所以是不可抵赖的。
数字签名与手写签名的区别


  • 信息与签名的独立关系:数字签名中的签名同信息是分开的,需要一种方法将签名与信息联系在一起,而在传统的手写签名中,签名与所签署之信息是一个整体、
  • 签名验证方式:在签名验证的方法上数字签名利用一种公开的方法对签名进行验证,任何人都可以对之进行检验,传统的手写签名的验证,是由经验丰富的接收者,通过同预留的签名样本相比较而作出判断的;
  • 复制签名的有效性:数字签名中,有效签名的复制同样是有效的签名,而在传统的手写签名的复制是无效的。
部分名词解释


  • 消息摘要:消息摘要就是将消息哈希转换成一个固定长度的值唯一的字符串,该过程不可逆,基本上做不到通过消息摘要转换成消息的。实际应用中,由于直接对原消息进行签名有安全性问题,而且原消息往往比较大,直接使用RSA算法进行签名速度会比较慢,所以我们一般对消息计算其摘要(使用SHA-256等安全的摘要算法),然后对摘要进行签名。只要使用的摘要算法是安全的(MD5、SHA-1已经不安全了),那么这种方式的数字签名就是安全的。
  • 非对称加密:在通信双方,如果使用非对称加密,遵循公钥加密,私钥解密的原则。如果通信双方需要互发消息,那么应该建立两套非对称加密的机制(即两对公私钥密钥对),发消息的一方使用对方的公钥进行加密,接收消息的一方使用自己的私钥解密。

参考资料:
[1] 博客:数字签名的过程详解
[2] Wikipedia: Digital signature
[3]百度百科:数字签名
[4] MBA智库:数字签名
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋| 黑客通

GMT+8, 2025-10-14 00:20 , Processed in 0.115568 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2020, LianLian.

快速回复 返回顶部 返回列表