Advertisement

【BUUCTF】 RSA2(dp泄露)

阅读量:

首先需要知道dp/dq的含义:

dp=d%(p-1)
dq=d%(q-1)

2.因此关于dp的数学知识:
在这里插入图片描述

3.遍历X(e+1种可能),求出(p-1)得到p且能被n整除;接下来就是常规RSA的解法得到d:

复制代码
    for i in range(1,e):
    if (dp*e-1)%i == 0:
        if n%(((dp*e-1)/i)+1)==0:
            p=((dp*e-1)/i)+1
            q=n/(((dp*e-1)/i)+1)
            phi = (p-1)*(q-1)
            d = gmpy2.invert(e,phi)%phi
    
    
    
      
      
      
      
      
      
      
      
    

4.exp:

复制代码
    import gmpy2 as gp
    
    e = 65537
    n = 248254007851526241177721526698901802985832766176221609612258877371620580060433101538328030305219918697643619814200930679612109885533801335348445023751670478437073055544724280684733298051599167660303645183146161497485358633681492129668802402065797789905550489547645118787266601929429724133167768465309665906113
    dp = 905074498052346904643025132879518330691925174573054004621877253318682675055421970943552016695528560364834446303196939207056642927148093290374440210503657
    
    c = 140423670976252696807533673586209400575664282100684119784203527124521188996403826597436883766041879067494280957410201958935737360380801845453829293997433414188838725751796261702622028587211560353362847191060306578510511380965162133472698713063592621028959167072781482562673683090590521214218071160287665180751
    
    for i in range(1, e):  # 在范围(1,e)之间进行遍历
    if (dp * e - 1) % i == 0:
        if n % (((dp * e - 1) // i) + 1) == 0:  # 存在p,使得n能被p整除
            p = ((dp * e - 1) // i) + 1
            q = n // (((dp * e - 1) // i) + 1)
            phi = (q - 1) * (p - 1)  # 欧拉定理
            d = gp.invert(e, phi)  # 求模逆
            m = pow(c, d, n)  # 快速求幂取模运算
    
    print(m)  # 10进制明文
    print('------------')
    print(hex(m)[2:])  # 16进制明文
    print('------------')
    print(bytes.fromhex(hex(m)[2:]))  # 16进制转文本
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    

flag{wow_leaking_dp_breaks_rsa?_98924743502}

参考:https://www.freesion.com/article/26551439803/
https://www.it610.com/article/1289100237083844608.htm

全部评论 (0)

还没有任何评论哟~