dsa数字签名c语言编程,实验三DSA数字签名算法

《实验三DSA数字签名算法》由会员分享,可在线阅读,更多相关《实验三DSA数字签名算法(8页珍藏版)》请在人人文库网上搜索。

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

2、算速度的只要因素是大数的模指数运算。2. DSA签名中的参数参数描述:Digital Signature Algorithm (DSA)是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSS(DigitalSignature Standard)。算法中应用了下述参数: p:L bits长的素数。L是64的倍数,范围是512到1024; q:p - 1的160bits的素因子; g:g = h(p-1)/q) mod p,h满足h 1; x:x #include #include BigInt.h#include sha1.h#include time.hint shas1(c。

3、onst unsigned int x, unsigned char digest20)SHA1_CTX context;unsigned char buffer16384; /,digest20;/FILE *file; SHA1Init(&context);SHA1Update(&context, buffer, 1);SHA1Final(digest, &context);return 0;CBigInt sha(CBigInt y)SHA1_CTX context;CBigInt X;unsigned char buffer16384,digest20;CString str;char。

4、 *t=0123456789ABCDEF;if(y.m_nLength=1)&(y.m_ulValue0=0)str=0;X.Mov(0);return X;str=;int a;char ch=0;str.Insert(0,ch);X.Mov(y);while(X.m_ulValueX.m_nLength-10)a=X.Mod(16);ch=ta;str.Insert(0,ch);X.Mov(X.Div(16);int i=0;while (stri0) i+;for (a=i,i=0;i=0)&(digesti=A)&(digesti=a)&(digesti0)if (y%2=0) q.M。

5、ov(q.Mul(q); y /= 2 ; else p.Mov(p.Mul(q); y -= 1; return p;CBigInt pow3(CBigInt x, CBigInt y, CBigInt m)CBigInt p,t;p.Mov(1);t.Mov(0);while (y.Cmp(t)0)if (y.m_ulValue0&0x1=0) x.Mov(x.Mul(x); x.Mov(x.Mod(m); x.Mov(x.Div(2); else p.Mov(p.Mul(x); p.Mov(p.Mod(m); y.Mov(y.Sub(1); return p;4. 过程及结果截图描述开始运行选择512位密钥长度,点击公开参数,如下图随便选择一个你要签名的文件,然后选择算法点击数字签名然后点击签名验证(注:文档可能无法思考全面,请浏览后下载,供参考。可复制、编制,期待你的好评与关注。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值