对数字签名的认识

数字签名一般由如下几个步骤组成:

1. 使用Hash算法(如MD, SHA等)对明文进行Hash编码生成数字摘要。

    其中Hash算法必须有5大特性:

    a. 单向性,即过程不可逆可以有Hash(m)得到c,但是几乎不可能从c得到m。

    b. 快速性,即通过Hash(m)能够很快获得c。

    c. 抗碰撞性,即保证几乎不可能存在m1和m2,使得Hash(m1)=Hash(m2)

    d. 雪崩性,即改变m中的一个bit使得得到的c至少一半发生变化。

    e. 对于m,没有长度限制,但对于c,总是能得到长度固定的c。

    另外用户可以使用含有密钥的Hash算法来生成数字摘要,这样可以增加安全性。

2. 使用自己的私钥加密数字摘要得到数字签名。(这个步骤是基于非对称加密的,由于非对称加密安全性高于对称加密,所以一般使用非对称加密来加密数字摘要;非对称加密算法有RSA,DSA和ECC[椭圆曲线加密算法]等)

3. 使用对称加密算法(如DES,RC等)加密明文(使用对称加密算法加密明文比使用自己私钥加密明文安全性高,但比使用对方公钥加密明文安全性低,不过由于现在公钥加密不是很成熟,使用公钥加密的话速度很慢,特别是当明文很长的时候。)

4. 如果数字签名不是很长,可以用对方的公钥进行加密;如果很长,则用对称加密算法进行加密。

5. 使用对方的公钥加密对称加密的密钥,Hash算法的密钥(如果有的话)以及自己的公钥(如果需要传送的话)。

6. 将加密后的明文,数字签名,各种密钥打包发给对方。

7. 对方收到后,解密各种密钥,明文和数字签名。

8. 使用发送方的公钥解密数字签名得到数字摘要。

9. 使用相同的Hash算法对收到的明文进行编码获得用来验证的数字摘要(如果需要使用Hash密钥请使用它)。

10. 比较收到的数字摘要和自己生成的用来验证的数字摘要,从而得到结果。

 

数字签名保证了文件的保密性,完整性和不可否认性。

 

数字签名在实际应用中的问题:

1. 签名的文件可能被接收方重复使用,解决的办法是另外再加上一些特殊的凭证,如时间戳。

2. 密钥的长度,如果密钥变得越来越长将不利于使用和管理,如RSA的密钥。

 

转载于:https://www.cnblogs.com/loofywang/archive/2010/08/04/MyUnderstandingOfDigitalSignature.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值