首页 > 其他分享 >d泄露攻击

d泄露攻击

时间:2024-04-17 22:47:33浏览次数:26  
标签:gmpy2 gcd 攻击 ed varphi therefore 泄露 mod

d泄露可谓十分的有意思首先当 d泄露之后,我们自然可以解密所有加密的消息。但更让有趣的是,我们甚至可以通过d来暴力分解n!
让我们先做一些概念学习:

非平凡因子:"非平凡因子"指的是一个数的除了 1 和其自身之外的因子。
在RSA加密中,对于公钥n来说,p和q便是n的非平凡因子。

phi_n:我们熟知 phi_n = (p - 1)* (q - 1),因为p,q都是素数的前提下,
phi_n 一定是偶数

现在我们来推导一下!(markdown)

点击查看代码
d泄露攻击
$$
\\\because ed \equiv 1 \mod(\varphi (n))
\\\therefore ed -1 = k*\varphi (n)
\\\because \varphi(n)定为偶数,则k*\varphi (n)也定为偶数
\\\therefore k*\varphi (n) = 2^s*t,t为奇数
\\ ed-1=2^s*t
\\\
\\ 现在取a\in (1,n),且gcd(a,n)互素
\\ 在RSA中,对a加密后再解密的结果一定是a本身
\\\therefore  [a^emod(n)]^d\mod(n)=a^{ed} = a
\\ \therefore a^{ed}\equiv a \mod (n),即a^{ed-1}\equiv 1 \mod(n)
\\\
\\ 存在i\in[1,s]
\\满足a^{2^{i-1}*t} \ne 1 mod(n)
\\a^{2^{i}*t} \equiv 1 \mod(n)
\\\therefore gcd(a^{2^{i}*t} -1,n) 就是n的一个非平凡因子
\\ 如果其值存在,则即为p或q
$$
这应该是全网最细的推导过程了QAQ 话不多说,附脚本
点击查看代码
import random
import gmpy2

def divide_pq(e, d, n):
    k = e*d - 1
    while True:
        g = random.randint(2, n-1)
        t = k
        while True:
            if t % 2 != 0:
                break
            t //= 2
            x = pow(g, t, n)
            if x > 1 and gmpy2.gcd(x-1, n) > 1:
                p = gmpy2.gcd(x-1, n)
                return (p, n//p)
            
p, q = divide_pq(e, d, n)
print(f'p = {p}')
print(f'q = {q}')
脚本是lz佬的,因为本身d泄露的例题很少,有的话都比较难,这里自己写了一个很简单的题
点击查看代码
import random
import gmpy2


def divide_pq(e, d, n):
    k = e * d - 1
    while True:
        g = random.randint(2, n - 1)
        t = k
        while True:
            if t % 2 != 0:
                break
            t //= 2
            x = pow(g, t, n)
            if x > 1 and gmpy2.gcd(x - 1, n) > 1:
                p = gmpy2.gcd(x - 1, n)
                return (p, n // p)

# p = 6751788336718135611881440926631484238733538077377103183012544626346234262328435250389232211938937998065704308647916026301101523875116044195586310810923821
# q = 12402588751139524578452451938456304104001492173035282851387360863863313418150723173638115660331023967180020603500960295594170887264192001521378179502103171
e =65537
n = 83739654075055389419094040679499978317807032425743347244231335401408081087572348218356771927173166192623289416362919050555004087700693931417253044924154169325873978503942212803082126635050615297045103833859387741876837484185939701141609259298247415272215167890828753143376301351408280063326963058390963536391
d = 58798047844299004453948921524460236236790304883278630546680399791973933311058131253553314521151831617039930254249850404342426768142008829241920340697236698787582166056883284678344786130283168233001777772799171471649533660940060952103395560044866458057917980199108661955186270420330674674394267383356367158873
p, q = divide_pq(e, d, n)
print(f'p = {p}')
print(f'q = {q}')

运行后发现与给的p,q结果相同,说明脚本正确! 完毕!

标签:gmpy2,gcd,攻击,ed,varphi,therefore,泄露,mod
From: https://www.cnblogs.com/futihuanhuan/p/18141953

相关文章

  • Pass The hash攻击
    WindowsHash分类LMHashNTLMHashNet-NTLMHashWindowsHash简介window系统内部不保存用户的明文密码,只保存密码的Hash值本机用户的密码Hash是存放SAM文件中,文件路径为:C:\Windows\System32\config\sam域内用户的密码Hash是存在域控的NTDS.DIT文件中数据库文件夹:C:\w......
  • 视频汇聚/安防监控平台EasyCVR调试pprof接口信息泄露如何处理?
    EasyCVR视频融合平台基于云边端架构,可支持海量视频汇聚管理,能提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、智能分析等视频服务。平台兼容性强,支持多协议、多类型设备接入,包括:国标GB/T28181协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SD......
  • 网络攻击离你有多近?
    2024年4月15日是第九个全民国家安全教育日,今年的主题是“总体国家安全观·创新引领10周年”。这一主题旨在强调总体国家安全观的重要性,以及其在过去十年中对国家安全的创新引领作用。全民国家安全教育日的设立是为了提高全民对国家安全的认识和意识,增强国家安全责任感和使命感。......
  • 数据库SQL注入攻击以及解决方案
    数据库SQL注入攻击以及解决方案--数据库SQL注入攻击selectcount(*)from表whereLoginID='lqwvje'andpwd='123'--拿上面的一个经常用的用户登入实例正常情况下是没有问题count>0即可以登入成功--用户名一但输入了数据库特殊字符如一下一段代码那就可以正常登入......
  • 跨域攻击分析和防御(中)
    利用域信任密钥获取目标域权限 搭建符合条件域环境,域林内信任环境搭建情况如下,如图7-8所示。父域域控:dc.test.com(WindowsServer2008R2)子域域控:subdc.test.com(WindowsServer2012R2)子域内计算机:pc.sub.test.com(Windows7)子域内普通用户:sub\test 图7-8 ......
  • MD5哈希长度延展攻击(选做)
    任务描述:在一个使用MD5哈希算法的系统中,管理员使用了一个密钥k和命令cmd的组合来生成每个命令的签名:hash(k||cmd)。你已经获得了一个允许查看文件的命令cmd=viewfile和对应的签名h,但你希望通过哈希长度延展攻击,生成一个新的签名,该签名能够让你执行删除文件的命令(删除文件的命令为......
  • MD5哈希长度延展攻击(选做)
    MD5哈希长度延展攻击(选做)任务任务描述:在一个使用MD5哈希算法的系统中,管理员使用了一个密钥k和命令cmd的组合来生成每个命令的签名:hash(k||cmd)。你已经获得了一个允许查看文件的命令cmd=viewfile和对应的签名h,但你希望通过哈希长度延展攻击,生成一个新的签名,该签名能够让你执行......
  • MD5哈希长度延展攻击
    任务描述:在一个使用MD5哈希算法的系统中,管理员使用了一个密钥k和命令cmd的组合来生成每个命令的签名:hash(k||cmd)。你已经获得了一个允许查看文件的命令cmd=viewfile和对应的签名h,但你希望通过哈希长度延展攻击,生成一个新的签名,该签名能够让你执行删除文件的命令(删除文件的命令为......
  • MD5哈希长度延展攻击(选做)
    一、理解长度扩展攻击(lengthextensionattack),是指针对某些允许包含额外信息的加密散列函数的攻击手段。对于满足以下条件的散列函数,都可以作为攻击对象:①加密前将待加密的明文按一定规则填充到固定长度(例如512或1024比特)的倍数;②按照该固定长度,将明文分块加密,并用前一个......
  • MD5哈希长度延展攻击
    1.哈希长度延展攻击的机制哈希长度延展攻击利用的是哈希函数如MD5和SHA-1的特性。当计算哈希时,如果攻击者知道原始数据的哈希值但不知道原始数据内容,他们仍然可以在原始数据后添加一些数据,并且能计算出新数据串的哈希值,而不需要知道原始数据是什么。对于MD5哈希函数,攻击者利用......