Solution——BIP032

Private Key Recovery Combination Attacks2
i231i\geq2^{31}时,我们称之为硬化子秘钥衍生,如下图:
Private Key Recovery Combination Attacks2
对于solution1,如果我们知道扩展私钥k1k_1,并且知道该私钥的相对位置,那么我们可以通过K,xcK,xc(链码)计算得到y1y2y_1、y_2,由于:y1kmodq=k1y_1*k \, mod \, q=k_1,所以我们可以解出kk,进而可以计算出:y2kmodq=y2y_2*k\, mod \,q=y_2,依次类推进而计算出所有的私钥。同理可证solution2。

攻击

如果攻击者知道ExtendedPublicKeyKxcExtended\:Public\:Key\:K||xc并且相同的随机数被处在同一层中的两个用户使用了,知道他们的相对路径,那么可以计算出对应的:yLy_L,我们假设用户1对应的是:y1y_1,用户2对应的是:y2y_2所以两个对应的私钥就是:ky1ky2ky_1、ky_2,得到:
as1=(H(m1)+rky1)modqas_1=(H(m1)+rky_1)\,mod\,q
as2=(H(m2)+rky2)modqas_2=(H(m2)+rky_2)\,mod\,q
将第一个等式中的aa表示出来带入第二个等式得到:
k=H(m2)s1H(m1)s2ry1s2ry2s1modqk=\frac{H(m2)s_1-H(m1)s_2}{ry_1s_2-ry_2s_1}mod\:q
这样我们就可以解得私钥的值。


如果攻击者知道两个不同层次的:K,xcK,xc以及用户的相对位置,并且随机数aba、b都各自使用了一次,一共有四个用户。
对于solution1因为我们知道用户的相对位置,我们可以计算出:ky1ky2ky3ky4ky_1,k'y_2,ky_3,k'y_4并且得到如下几个式子:

as1=(H(m1)+raky1)modqas_1=(H(m1)+r_aky_1)\,mod\,q
as2=(H(m2)+raky2)modqas_2=(H(m2)+r_ak'y_2)\,mod\,q
bs3=(H(m3)+rbky3)modqbs_3=(H(m3)+r_bky_3)\,mod\,q
bs4=(H(m4)+rbky1)modqbs_4=(H(m4)+r_bky'_1)\,mod\,q
ky1s2ky2s2=H(m2)s1+H(m1)s2ramodqky_1s_2-k'y_2s_2=\frac{H(m_2)s_1+H(m1)s_2}{r_a}mod\,q
ky3s4ky4s3=H(m4)s3+H(m3)s4rbmodqky_3s_4-k'y_4s_3=\frac{H(m_4)s_3+H(m3)s_4}{r_b}mod\,q
两个方程可以解出kkkk',与之前类似的方法即可解出所有私钥。solution2同理。

相关文章:

  • 2022-12-23
  • 2021-04-06
  • 2022-01-04
  • 2021-04-03
  • 2022-12-23
  • 2022-12-23
  • 2021-11-02
  • 2022-12-23
猜你喜欢
  • 2022-02-09
  • 2021-08-17
  • 2022-12-23
  • 2021-12-30
  • 2021-12-30
  • 2022-12-23
  • 2021-05-26
相关资源
相似解决方案