ECDSA_SVP_Attack

ECDSA_SVP_Attack

badmonkey的博客
很有意思的一个点,之前做cryptoals的时候又遇到类似的点,但是只是简单了解了一下,没想到真的会有这样的漏洞,而且还是在2019年发现的,只能说太牛x了.
利用点,ECDSA中随机数k的选择不同,导致k的大小有差异,从而导致了在计算 sig中的 r 所用的时间也会不同,利用时间来判断k的位数,进而利用lattice进行分析和攻击.符号具体含义参考ECDSA实现过程

s ≡ k − 1 ( H ( m + d r ) m o d    p s \equiv k^{-1}( H(m + dr ) \mod p sk1(H(m+dr)modp

两边同时乘 s − 1 s^{-1} s1得到下面的式子

k ≡ s − 1 ⋅ H ( m ) ⏟ A + s − 1 ⋅ r ⏟ B ⋅ d m o d    p k \equiv \underbrace{s^{-1} \cdot H(m)}_{A} + \underbrace{s^{-1} \cdot r }_{B} \cdot d \mod p kA s1H(m)+B s1rdmodp

进一步得到

k = A + B ⋅ d + n ⋅ p , n ∈ Z k = A + B \cdot d + n \cdot p,n \in Z k=A+Bd+np,nZ

这样可以根据 A , B , p A,B,p A,B,p构造格子,使得 k k k在格子里,利用点在于如果 k k k很小,对格子适当扩展可以用LLL算法求出 k k k,进而求出 d d d,接下来就可以伪造签名了!构造的格子如下

lattice

t t t列其实是原始的格子,后面两列是用于攻击

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值