DSA数字签名算法.doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
DSA数字签名算法 DSA数字签名算法是数字签名标准的一部分,它使用公开密钥算法,不能用作加密,只用作数字签名。DSA算法的安全性基于解离散对数的困难性,这类签字标准具有较大的兼容性和适用性,成为网络安全体系的基本构件之一。 数字签名是通过一个单向函数对要传送的信息进行处理得到的用以认证信息来源并核实信息在传送过程中是否发生变化的一个字母数字串。数字签名提供了对信息来源的确定并能检测信息是否被篡改。 数字签名要实现的功能是我们平常的手写签名要实现功能的扩展。平常在书面文件上签名的主要作用有两点,一是因为对自己的签名本人难以否认,从而确定了文件已被自己签署这一事实;二是因为自己的签名不易被别人模仿,从而确定了文件是真的这一事实。采用数字签名,也能完成这些功能: (1)确认信息是由签名者发送的; (2)确认信息自签名后到收到为止,未被修改过; 签名者无法否认信息是由自己发送的。 数字签名和手签的区别是:手签是模拟的,易伪造,而数字签名是基于数学原理的,更难伪造。 数字签名的技术基础是公钥密码技术。密钥必须以某种安全的方式告诉解密方。大家熟悉的 DES 加密标准就是一种对称加密技术。1976 年,Diffie 和 Hellman 在一篇名叫“New Direction in Cryptography(密码学的新方向)”一文中提出了一个新的思想,即:不仅加密算法本身可以公开,就是加密用的密钥本身也可以公开。这就是公钥密码体制。其中使用的密钥被分解为一对:一把公钥和一把私钥。只要私钥保密就可以了,公钥可以发到因特网(如网站的黄页)等公开地方供别人查询和下载。 数字签名的原理如图 1 所示。处理过程:(采用双重加密) (1)使用 SHA 编码将发送文件加密产生 128bit 的数字摘要; (2)发送方用自己的专用密钥对摘要再加密,形成数字签名; (3)将原文和加密的摘要同时传给对方; (4)接受方用发送方的公共密钥对摘要解密,同时对收到的文件用 SHA 编码加密产生同一摘要; (5)将解密后的摘要和收到的文件在接受方重新加密产生的摘要相互对比,如果两者一致,则说明在传送过程中信息没有破坏和篡改。否则,则说明信息已经失去安全性和保密性。 数字签名方案有很多,如 RSA 数字签名系统、Hash 签名等。RSA 算法中数字签名技术实际上是通过一个哈希函数来实现的。数字签名的特点是它代表了文件的特征,文件如果发生改变,数字签名的值也将发生变化。不同的文件将得到不同的数字签名。用 RSA 或其它公开密钥密码算法的最大方便是没有密钥分配问题。 Hash 签名是最主要的数字签名方法,也称之为数字摘要法(Digital Digest)或数字指纹法(Digital Finger Print)。它与 RSA 数字签名是单独的签名不同,该数字签名方法是将数字签名与要发送的信息紧密联系在一起,它更适合于电子商务活动。将一个商务合同的个体内容与签名结合在一起,比合同和签名分开传递,更增加了可信度和安全性。 Hash 函数满足以下几个条件: ①H 可以作用于一个任意长度的数据块; ②H 产生一个固定长度的输出; ③H(x) 对任意给定的 x 计算相对容易,无论是软件还是硬件实现; ④ 对任意给定码 h,找到 x 满足 H(x)=h 具有计算不可行性; ⑤ 对任意给定的数据块 x,找到满足 H(y)=H(x) 的 y≠x 具有计算不可行性; ⑥ 找到任意数据对(x,y),满足 H(x) = H(y) 是计算不可行的。 用 Hash 函数实验签名的方案如下: 发送方 X:准备消息 M,计算其散列码 H(M),用 X 的私钥对散列值构成签名。
剩余14页未读,继续阅读
- 粉丝: 92
- 资源: 2万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Swift语言教程:从基础语法到高级特性的全面讲解
- 常用工具合集(包括汉字转拼音工具、常用数据格式相互转换工具、尺寸相关的工具类).zip
- Delphi编程教程:从入门到精通Windows应用程序开发
- 视觉化编程入门指南:Visual Basic语言教程及其应用领域
- 纯代码实现的3d爱心.zip学习资料语言
- 儿童编程教育中Scratch语言的基础教学及实战示例
- 批量文件编码格式转换工具.zip学习资料
- 在不同操作系统下编译Android源码需要更改一些Android源码的配置项,脚本用于自动化更改配置项.zip
- 基于vue3的春节烟花许愿代码.zip学习资料
- Apache Kafka 的 Python 客户端.zip