- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
-
. z.
********************
本科生作业
********************
理工大学
计算机与通信学院
2017年春季学期
信息平安 课程
专 业: 物联网工程
**:
**:
授课教师:郭显
成绩:
DSA数字签名算法设计与实现
1数字签名概述
1.1数字签名描述
假设现在 Alice 向 Bob 传送数字信息,为了保证信息传送的性、真实性、完整性和不可否认性,需要对传送的信息进展数字加密和签名,其传送过程为:
1.Alice 准备好要传送的数字信息〔明文〕;
2.Alice 对数字信息进展哈希运算,得到一个信息摘要;
3.Alice 用自己的私钥对信息摘要进展加密得到 Alice 的数字签名,并将其附在数字信息上;
4.Alice 随机产生一个加密密钥,并用此密码对要发送的信息进展加密,形成密文;
5.Alice 用 Bob 的公钥对刚刚随机产生的加密密钥进展加密,将加密后的密钥连同密文一起传送给Bob;
6.Bob 收到 Alice 传送来的密文和加密过的密钥,先用自己的私钥对加密的密钥进展解密,得到 Alice随机产生的加密密钥;
7.Bob 然后用随钥对收到的密文进展解密,得到明文的数字信息,然后将随钥抛弃;
8.Bob 用 Alice 的公钥对 Alice 的数字签名进展解密,得到信息摘要;
9.Bob 用一样的哈希算法对收到的明文再进展一次哈希运算,得到一个新的信息摘要;
10.Bob 将收到的信息摘要和新产生的信息摘要进展比拟,如果一致,说明收到的信息没有被修改正。
1.2 DSA算法
DSA是建立在求离散对数之困难性以及ElGamal和Schnorr最初提出的方法之上的。数字签名保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。
数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息比照。如果一样,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改正,因此数字签名能够验证信息的完整性。
数字签名是个加密的过程,数字签名验证是个解密的过程。
1.3 DSA数字签名过程
全局公钥组成
为素数,其中,且是64的倍数,即的位长在512至1024之间并且其增量为64位。
为的素因子,其中,即位长为160位。
,其中是满足并且的任何整数。
用户的私钥
为随机或伪随机整数且
用户的公钥
与用户每条信息相关的秘密值
随机或伪随机整数且
签名
签名
验证
检验:〔假设等式成立,则签名有效〕
备注:为要签名的消息,为使用求得的的码,,,为接收到的
1.4 DSA签名算法的描述
从数字签名的过程中,我们可以看出,其中的三个公开参数为一组用户所共有。选择一个160位的素数;然后选择一个长度在512-1024之间且满足能整除的素数;最后选择形为的,其中是到之间的整数,使得大于。DSA的公开参数的选择与Schnorr签名方案完全一样。
选定这些参数以后,每个用户选择私钥并产生公钥。私钥必须是随机或伪随机选择的、位于到之间的数,由计算出公钥。由给定的计算比拟简单,而由给定确实定则在计算上是不可行的,因为这就是求的以为底的模的离散对数。
要进展签名,用户须计算两个量和。和是公钥、用户私钥、消息的码和附加整数的函数,其中是随机或伪随机产生的,且对每次签名是唯一的。
接收端用以上公式进展验证。接收方计算值、它是公钥、发送方公钥、接收到的消息的码的函数。假设与签名中的一样,则签名是有效的。
2 DSA数字签名实例
假设,并且取,用户A选择了作为自己的签名私钥,取试计算消息的签名并对签名验证。
计算
计算用户A的公钥
由于与互素,所以19在模23下的乘法逆元存在,利用欧几里得算法计算:
用户A计算消息M的数字签名
消息M的签名
用户B对签名进展验证,计算如下:
由于,故用户B认为是用户A的合法签名。
3 DSA程序代码设计
package Dsa.security;
import java.security.Key;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.Public
您可能关注的文档
最近下载
- 五粮液校园招聘历年真题.pdf
- 新教材 人教A版高中数学选择性必修第一册全册各章节 知识点考点汇总及解题方法提炼.pdf VIP
- 人教版五年级上册数学第五单元《等式的性质》(课件).pptx VIP
- 常作印老师讲授《乡愁》. - 永博明教育.ppt VIP
- 2025至2030彩色食品胶带行业产业运行态势及投资规划深度研究报告.docx
- 复合翼无人机飞行控制方法研究.pdf VIP
- 硬件工程师培训课件.pptx VIP
- 中小学教师职称评审网上申报部分填写示例.docx VIP
- 7588.2 GB/T7588.2-2020 电梯制造与安装安全规范 第2部分:电梯部件的设计原则、计算和检验.pdf
- [精品]朝花夕拾-名著导读练习学习及答案较全.doc VIP
文档评论(0)