数字签名基本概念

1. 概念:数字签名是一种以电子形式存在于数据信息之中的,或作为其附件或逻辑上有联系的数据,可用于辨别数据签署人的身份,并表名签署人对数据信息中包含的信息的认可技术

2. 一个完善的数字签名应该包含以下三个机制

a) 签名者事后不能抵赖自己的签名

b) 其他任何人不能伪造签名

c) 如果当事人双方关于签名的真伪发生争执,能够在公正的仲裁者面前通过验证签名来认其真伪

3. 数字签名是通过密码技术来实现的,其安全性取决于密码体制的安全程度

4. 目前主要采用基于非对称密码体制的数字签名,包括普通数字签名和特殊数字签名

a) 普通数字签名算法有RSA, ElGamal,椭圆曲线数字签名算法等

b) 特殊数字签名有盲签名,代理签名,群签名,不可否认签名,具有消息恢复功能的签名

5. 为了实现数字签名,应成立相关的管理机构并制定规章制度,统一负责签名及验证,用户的登记注册,纠纷和仲裁等问题。用户A和用户B利用公开密钥密码进行数字签名时,首先要将各自的公开密钥Ke公开登记并存入管理中心的公开密钥数据库,依次作为对方及仲裁者验证签名的数据之一

6. 签名验证过程

a) 签名过程:A用自己保密的密钥Kd对明文数据进行签名(执行的为非对称密码体制下的解密运算)得到Sa即为A对明文M 的签名,如果不需要保密则A将Sa直接发送给B,如果需要保密,则A查阅PKDB,查到加密密钥来将其加密,再将其发送给B,并将签名留底

b) 验证签名过程:B收到后查阅PKDB中的公钥,然后进行签名的验证,执行的为非对称密码体制下的加密运算,这样得到的就相当于是明文了,反向过程调用了加密算法,如果是加密通信的话,则先进行解密然后在调用以上的算法

7. 安全性分析

a) 因为整个过程中只有A才拥有私钥Kd,公开的Ke在计算上不能求出保密的Kd,所以签名操作只有A能进行,对此A不能抵赖,其他人不能伪造

b) 事后如果AB双方发生纠纷,可以向公正的仲裁者初始留底的签名数据,由仲裁者验证签名,解决纠纷

8. 应用问题

a) 验证签名的过程就是恢复明文的过程,如果B能够恢复出明文M,那么B怎么判断这个明文M就是正确的

b) 怎样阻止B或A用A以前发给B的签名数据,或用A发给其他人的签名数据来冒充A发给B的签名数据

c) 对于以上的两个问题可以通过合理地设计明文的数据格式来解决,一种可行的明文数据格式:发送方标识符,接收方标识符,报文序号,时间,数据正文,纠错码

9. 在实际的应用中为了缩短签名的长度,提高签名的速度,常对信息的摘要(MD5)进行签名,用M的哈希值来代替M

首发于我的个人网站: 点击打开链接

你可能感兴趣的:(数字签名基本概念)