从消息认证码到数字签名

公众号屈磊
屈磊
数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。

数字签名相当于现实世界中的盖章、签字的功能,数字签名可以识别篡改、伪装、防止否认。

1、从消息认证码到数字签名

消息认证码:因为密钥是共享的,两方都可以知道。对于第三方来说,你无法确定是谁的

数字签名:

●生成消息签名的行为

发送者对消息进行签名(签名密钥)

●验证消息签名的行为

接收者验证签名(验证密钥)

以上两个行为,需要各自专用的密钥来完成。

验证密钥无法生成签名

●签名密钥只有签名的人才可持有。

验证密钥则可以任何验证的人都可持有。

●(这不是和第五章讲的公钥密码吗!)

简而言之,数字签名就是通过将公钥密码“反过来用”而实现的。

(这不是和第五章讲的公钥密码吗!)

简而言之,数字签名就是通过将公钥密码“反过来用”而实现的。

2、公钥密码与数字签名

反过来:两者是反过来的。数字签名:私钥加密(生成签名),公钥解密(验证签名)

●公钥密码中,任何人都可以加密

●数字签名中,任何人都可以验证

3、数字签名的方法

1、直接对消息签名的方法(一般不会用)

2、对消息的散列值签名的方法(一般都使用这种方法)

第一种需要对整个消息进行加密,非常耗时

(想到了单向散列函数)我们直接把消息转换成散列值,再加密

一些问题:

●数字签名的作用本来就不是保证机密性的。如果需要也可以直接加密后发送。关于密码和签名的组合方法,第十三章会讲到

●签名能不能被复制不重要,重要的是特定的签名者与特定的消息绑定在一起了这一事实

●如果拿着私钥的人说我的私钥被窃取了怎么办?第十章会进行讨论

4、数字签名的应用实例

●安全信息公告

●软件下载

●公钥证书

●SSL/TLS

5、对数字签名的攻击

1、中间人攻击

对公钥密码的攻击方式

对发送者伪装成接收者,对接收者伪装成发送者

防止:对公钥的认证。一般情况下是先计算出散列值,然后电话沟通。也可用后面要讲的“证书”

2、对单向散列函数的攻击

使用散列值的话,必须要有抗碰撞性

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

(签名的操作实际上是对消息的解密)绝对不要对意思不清楚的消息进行签名

解决方式:

对散列值进行签名比较安全

公钥密码和数字签名最好使用不同的密钥对

4、潜在伪造

对一个无意思的消息,没有私钥的情况下,能生成合法的数字签名

RSA-PASS

5、其他攻击

暴力破解、对RSA的N进行质因数分解等

6、各种密码技术的对比

7、数字签名无法解决的问题

●可以识别出篡改、伪装、防止否认

●前提:公钥必须属于真正的发送者

●我们需要使用“证书”。公钥基础设施(PKI)

原标题:密码笔记 | 数字签名

THEEND

最新评论(评论仅代表用户观点)

更多
暂无评论