数字签名(Digital Signature)技术
来源:互联网 发布:风中有朵雨做的云 知乎 编辑:程序博客网 时间:2024/05/03 10:14
数字签名类似于物理上的签名,通过一些技术手段保证了数据的不可仿造性与不可否认性
一个数字签名方案至少应满足以下三个条件:
1、签名者时候不能否认自己的签名 即不可否认性
2、接受者能验证签名,其他任何人都不能伪造签名 即不可仿造性
3、当双方关于签名的真伪发生争执时,第三方能够解决双方之间的争执
根据DSS(Digital Signature Standard,数字签名标准),数字签名的步骤一般分为以下几步:
1、发送方用一个Hash函数对消息进行处理,形成一个固定长度的信息摘要(如MD5)
2、发送方将自己的私人密钥sk和信息摘要进行DSA算法计算,产生数字签名
3、将数字签名和消息一起发送出去.
4、接收方用同样的Hash函数对消息进行计算,产生消息摘要
5、接收方用DSA算法对消息摘要和发送方的公开密钥进行计算,产生数字签名1,同时,从接收到的消息中得到数字签名2。
若1=2则数字签名得到验证,否则验证失败
在实际应用中,如在网页中,信息是公开的,但是必须保证信息不被伪造,则可以利用数字签名技术保证信息的完整性及不可伪造性。
但如果信息是像E-mail,电子商务等需要保密的场合,则不仅要保证上述几点,还需要保证保密性。此时需要将数字签名技术与加密技术结合使用
大致步骤如下:
1、发送方A形成信息摘要M,然后用私钥加密成Cm
2、对想要发送的信息P与加密后的摘要M一起用对称密钥加密(对称密钥是随机产生的)
3、用接收方的公开密钥加密对称密钥,形成Ck
4、将2、3步得到的结果发送给接收方B
5、B收到信息后用自己的私钥解密信息,得到对称密钥Ck
6、B用得到的对称密钥Ck解密剩下的信息,得到信息P与Cm
7、B用同样的Hash函数对P进行加密得到M',并用A的公开密钥解密Cm得到M,如果M' = M ,则验证成功
- 数字签名(Digital Signature)技术
- 图解数字签名Digital Signature
- What is a Digital Signature? 数字签名
- What is a Digital Signature? (数字签名是什么?)
- 图文并茂的描述数字签名(digital signature)和数字证书(digital certificate)
- "数字签名"(digital signature)和"数字证书"(digital certificate)
- "数字签名"(digital signature)和"数字证书"(digital certificate)
- "数字签名"(digital signature)和"数字证书"(digital certificate)
- Java 数字签名(Digital Signature)的批处理文件制作
- 为什么需要对applet进行数字签名(digital signature)
- 图解数字签名Digital Signature 和数字证书Public-key certificate
- 图解数字签名Digital Signature 和数字证书Public-key certificate
- Digital Signature
- "数字签名"(digital signature)和"数字证书"(digital certificate)到底是什么
- 错误:文件被数字签名策略拒绝(File was rejected by digital signature policy)
- 文件被数字签名策略拒绝(File was rejected by digital signature policy)
- Turn off digital signature [Windows 64bit OS test driver数字签名出错的解法]
- Bitcoin学习篇之---Elliptic Curve Digital Signature Algorithm(椭圆曲线数字签名算法)
- HOJ 1005 ZOJ 1196 Fast food
- Perl技巧 两个数组的取交集,并集与补集
- Python开发环境(Eclipse +Pydev+Python)
- DataGridView中DataGridViewComboBoxCell列,下拉框事件的处理【完美解决】
- Matlab 提取矩阵 某一行 或者 某一列 的方法
- 数字签名(Digital Signature)技术
- vector+结构体
- linux awk命令详解
- Mysql数据库备份和还原常用的命令
- ONE源代码分析——Report2之MessageDelayReport
- 时间比较
- Use Hibernate Validator4.x(JSR303 )
- http和socket之长连接和短连接区别
- cocos2d-x项目101次相遇-安装和环境搭建 -xcode