认证篇——数字签名

目录

数字签名

1.签名的生成和验证

2.公钥密码与数字签名

1)公钥密码

2)数字签名

数字签名的方法

1)直接对消息签名的方法

2)对消息的散列值签名的方法

注意:

数字签名的应用:

1)安全信息公告

2)软件下载

3)公钥证书

4)SSL/TSL

数字签名的算法

对数字签名的攻击:

消息认证码与数字签名对比

数字签名无法解决的问题:


之前提到过由于消息认证码无法防止否认。之所以无法否认,是因为收发双方共享一个密钥;由于密钥共享,所以能计算出正确MAC值的不只有发送者,接收者也可以计算出,对于第三方而言,无法判断出消息的出处。因此需要使用数字签名

 

数字签名

数字签名(又称公钥数字签名、电子签章等)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。


1.签名的生成和验证

1)生成消息签名:该行为由发送者来完成,生成签名就是根据消息内容计算数字签名的值,隐含”签名人认可消息内容“

2)生成数字签名:该行为由接收者来完成,也可能由验证的第三方来完成,验证签名就是检查消息是否真的来自发送方

一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证;发送方使用签名密钥来生成消息的签名;接收方(第三方)使用验证密钥来验证消息的签名

注:签名密钥只能签名人持有,而验证密钥是需要验证的人都可以持有


2.公钥密码与数字签名

1)公钥密码

公钥密码包括有公钥和私钥组成的密码对,公钥用于加密,私钥用于解密

2)数字签名

同公钥密码一样,数字签名也使用公钥和私钥组成的密钥对,但其用法与公钥密码相反;私钥加密相当于生成签名,公钥解密相当于验证签名

所以说,在公钥密码中,人人都可以使用公钥进行加密;在数字签名中,人人都可以使用验证密钥来验证签名

 

数字签名的方法

1)直接对消息签名的方法

1.发送者使用自己的密钥对消息进行加密(只有发送者才能持有,除发送者外,其他人是无法生成相同签名的)

2.将签名和消息发送给接收方

3.接收方使用公钥对签名进行解密

4.发送方将解密的消息与发送方发送的消息进行比对

 

2)对消息的散列值签名的方法

1.发送方使用单向散列函数计算消息散列值

2.发送方使用私钥对散列值进行加密

3.将消息和签名发送给接收方

4.接收方使用公钥对签名进行解密

5.接收方将解密后的散列值与发送方发过来的散列值进行对比

 

注意:

1)数字签名使用私钥进行加密来产生认证符号

2)数字签名并不用于保证机密性

3)签名所代表的是签名人对该消息进行的签名,复制签名不会改变签名者和消息的内容

4)在签名之后对消息进行修改是毫无意义的,数字签名的作用为识别修改

5)数字签名会根据消息内容的改变而改变,所以签名是不会重复使用的

6)想要使一份数字签名作废,需要再创建一份声明该签名已作废并附上数字签名的文书

7)在数字签名中,能生成签名的只有发送者,能验证签名的只有接收者;因此可以防止否认

 

数字签名的应用:

1)安全信息公告

此类消息是为了让更多人知道,因此没有加密的必要,只用在消息中加上数字签名(对明文施加的签名称为明文签名

2)软件下载

用于检测所下载的软件是否被篡改

3)公钥证书

将公钥当作信息,对其加上数字签名

4)SSL/TSL

在认证服务器身份是与否合法时所使用的服务器证书(加上签名的服务器公钥)

 

数字签名的算法

1)RSA

2)EIGamel

3)DSA

4)Rabin

 

对数字签名的攻击:

1)中间人攻击

2)对单向散列函数进行攻击

3)利用数字签名攻击公钥密码

4)其他攻击

 

消息认证码与数字签名对比

 

数字签名无法解决的问题:

验证签名的公钥必须属于真正的发送者,为了确认自己得到的公钥是否合法,我们需要证书(将公钥当成一条消息,由可信任的第三方对其签名后得到的公钥)

 

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值