首页
社区
课程
招聘
[讨论]DSA中k的猜测
发表于: 2021-2-8 16:53 12021

[讨论]DSA中k的猜测

2021-2-8 16:53
12021

一、DSA的简介

DSA(Digital Signature Algorithm)是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSS(DigitalSignature Standard)。 DSA是基于整数有限域离散对数难题的。

DSA是一种更高级的验证方式。一般用于数字签名和认证。DSA 不单单只有公钥、私钥,还有数字签名。私钥加密生成数字签名,公钥验证数据及签名。在DSA数字签名和认证中,发送者使用自己的私钥对文件或消息进行签名,接受者收到消息后使用发送者的公钥来验证签名的真实性。如果数据和签名不匹配则认为验证失败!数字签名的作用就是校验数据在传输过程中不被修改。数字签名,是单向加密的升级!

二、DSA加密算法的安全性

DSA加密算法主要依赖于整数有限域离散对数难题,素数P必须足够大,且p-1至少包含一个大素数因子以抵抗Pohlig &Hellman算法的攻击。M一般都应采用信息的HASH值。DSA加密算法的安全性主要依赖于p和g,若选取不当则签名容易伪造,应保证g对于p-1的大素数因子不可约。

算术中运用的参数

DSA算法中应用了下述参数:

p:L bits长的素数。L是64的倍数,范围是512到1024;

q:p – 1的160bits的素因子;

g:g = h^((p-1)/q) mod p,h满足h < p – 1, h^((p-1)/q) mod p > 1;

x:x < q,x为私钥 ;

y:y = g^x mod p ,( p, q, g, y )为公钥;

H( x ):One-Way Hash函数。DSS中选用SHA( Secure Hash Algorithm )。

p, q, g可由一组用户共享,但在实际应用中,使用公共模数可能会带来一定的威胁。

签名及验证协议

P产生随机数k,k < q;P计算 r = ( g^k mod p ) mod q

s = ( k^(-1) (H(m) + xr)) mod q

签名结果是( m, r, s )。

验证时计算 w = s^(-1)mod q

u1 = ( H( m ) * w ) mod q

u2 = ( r * w ) mod q

v = (( g^u1 * y^u2 ) mod p ) mod q

若v = r,则认为签名有效。


以上内容摘自(https://blog.csdn.net/happen_if/article/details/85219306)

三、DSA攻击

查过一些资料(https://blog.csdn.net/jenscrazy/article/details/109724489),只能等待出现两个使用相同k值生成的签名,否则TLE。



[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2021-2-16 00:00 被方向感编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 1478
活跃值: (4017)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2

网上找到一个pdf文档,Pollard-rho算法详解

上传的附件:
2021-2-14 13:24
0
雪    币: 1478
活跃值: (4017)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
查过一些资料,只能等待出现两个使用相同k值生成的签名,否则TLE。
就算收集上万个签名,也无济于事。
2021-2-16 00:01
0
雪    币: 10014
活跃值: (2012)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
4
DSA加密效率低,速度慢。建议DSA和对称加密联合使用,此时可使用小质数对,这样速度可大为提高,而加密强度则由对称加密负责,这样即具有公钥加密私钥解密的特性,加密强度和速度又是很高的。
2021-2-21 09:26
0
雪    币: 1478
活跃值: (4017)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
sjdkx DSA加密效率低,速度慢。建议DSA和对称加密联合使用,此时可使用小质数对,这样速度可大为提高,而加密强度则由对称加密负责,这样即具有公钥加密私钥解密的特性,加密强度和速度又是很高的。
我是尝试找到k值,恢复私钥的x,目前只能等待出现相同的r,再计算k或x
2021-2-22 15:32
0
游客
登录 | 注册 方可回帖
返回
//