实验三DSA数字签名算法.doc

实验三DSA数字签名算法.doc

ID:55704538

大小:747.50 KB

页数:7页

时间:2020-05-25

实验三DSA数字签名算法.doc_第1页
实验三DSA数字签名算法.doc_第2页
实验三DSA数字签名算法.doc_第3页
实验三DSA数字签名算法.doc_第4页
实验三DSA数字签名算法.doc_第5页
资源描述:

《实验三DSA数字签名算法.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验三DSA数字签名算法姓名:学号:学院:信息工程学院指导老师:郑明辉1.DSA算法原理数字签名是数据在公开行信道中传输的安全保障,能够实现数据的公开、公正、不可抵赖等特点的方法,只能公开的密钥、密码签名算法。国际供认的公开密钥签字算法主要有RSA算法、ElGAMAL算法或者其变形的签名算法。DSA(DigiteSignatureArithmotic)是Schnore和ElGamal算法的变型。美国国家标准技术研究所(NIST)1994年5月19日公布了数字签名标准的(DSS),标准采用的算法便是DSA,密钥长度为512~1024位。密钥长度愈长,签名速度愈慢,制约运算速度的

2、只要因素是大数的模指数运算。2.DSA签名中的参数参数描述:DigitalSignatureAlgorithm(DSA)是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSS(DigitalSignatureStandard)。算法中应用了下述参数:  p:Lbits长的素数。L是64的倍数,范围是512到1024;  q:p-1的160bits的素因子;  g:g=h^((p-1)/q)modp,h满足h1;  x:x

3、Hash函数。DSS中选用SHA(SecureHashAlgorithm)。  p,q,g可由一组用户共享,但在实际应用中,使用公共模数可能会带来一定的威胁。签名及验证协议如下:  1.P产生随机数k,k

4、。DSA的一个重要特点是两个素数公开,这样,当使用别人的p和q时,即使不知道私钥,你也能确认它们是否是随机产生的,还是作了手脚。RSA算法却做不到。3.源码描述#include"stdafx.h"#include#include#include"BigInt.h"#include"sha1.h"#include"time.h"intshas1(constunsignedintx[],unsignedchardigest[20]){SHA1_CTXcontext;unsignedcharbuffer[16384];//,digest[20]

5、;//FILE*file;SHA1Init(&context);SHA1Update(&context,buffer,1);SHA1Final(digest,&context);return0;}CBigIntsha(CBigInty){SHA1_CTXcontext;CBigIntX;unsignedcharbuffer[16384],digest[20];CStringstr;char*t="ABCDEF";if((y.m_nLength==1)&&(y.m_ulValue[0]==0)){str="0";X.Mov(0);returnX;}str="";inta;cha

6、rch='';str.Insert(0,ch);X.Mov(y);while(X.m_ulValue[X.m_nLength-1]>0){a=X.Mod(16);ch=t[a];str.Insert(0,ch);X.Mov(X.Div(16));}inti=0;while(str[i]>0)i++;for(a=i,i=0;i

7、text);intlen=str.GetLength(),k;X.Mov(0);for(i=0;i<20;i++){X.Mov(X.Mul(256));//if((digest[i]>='0')&&(digest[i]<='9'))k=digest[i];//elseif((digest[i]>='A')&&(digest[i]<='F'))k=digest[i]-55;//elseif((digest[i]>='a')&&(digest[i]<='f'))k=digest[i]-87;//elsek=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。