美文网首页
RSA之拒绝套路(1)

RSA之拒绝套路(1)

作者: 蚁景科技 | 来源:发表于2018-08-29 09:31 被阅读96次
本文为原创文章,转载请注明出处!

前言

近期在复习数论和密码学的题目,于是先从RSA开始,做一些题目推导与证明希望知其然,知其所以然,而不是一味的跟着套路走

RSA大众套路

这里简单的概述总结一下:

· 1.e较大:Wiener攻击

· 2.e较小:直接开方

· 3.低加密指数广播攻击:相同低指数的e和多个相同的消息m

· 4.Coppersmith定理攻击:只有部分高位的p或q

· 5.共模攻击:相同n,相同m

........话不多说,下面从非套路的题目开始

题干

例如题目

e = 65537

n = 248254007851526241177721526698901802985832766176221609612258877371620580060433101538328030305219918697643619814200930679612109885533801335348445023751670478437073055544724280684733298051599167660303645183146161497485358633681492129668802402065797789905550489547645118787266601929429724133167768465309665906113

dp = 905074498052346904643025132879518330691925174573054004621877253318682675055421970943552016695528560364834446303196939207056642927148093290374440210503657

c = 140423670976252696807533673586209400575664282100684119784203527124521188996403826597436883766041879067494280957410201958935737360380801845453829293997433414188838725751796261702622028587211560353362847191060306578510511380965162133472698713063592621028959167072781482562673683090590521214218071160287665180751

注意,其中dp的意思为:

dpd mod (p−1)dp≡d mod (p−1)

公式推导

现在我们可以知道的是

cme mod nmcd mod (n)=(p−1)∗(q−1)de≡1 mod ϕ(n)dpd mod (p−1)c≡me mod nm≡cd mod nϕ(n)=(p−1)∗(q−1)d∗e≡1 mod ϕ(n)dp≡d mod (p−1)

由式5*e可以得到

dpede mod (p−1)dp∗e≡d∗e mod (p−1)

因此可以得到

de=k∗(p−1)+dpede≡1 mod ϕ(n)d∗e=k∗(p−1)+dp∗ed∗e≡1 mod ϕ(n)

我们将式1带入式2可以得到

k∗(p−1)+dpe≡1 mod (p−1)∗(q−1)k∗(p−1)+dp∗e≡1 mod (p−1)∗(q−1)

故此可以得到

k2∗(p−1)∗(q−1)+1=k1∗(p−1)+dpek2∗(p−1)∗(q−1)+1=k1∗(p−1)+dp∗e

变换一下

(p−1)∗[k2∗(q−1)−k1]+1=dpe(p−1)∗[k2∗(q−1)−k1]+1=dp∗e

因为

dp<p−1dp

可以得到

e>k2∗(q−1)−k1e>k2∗(q−1)−k1

我们假设

x=k2∗(q−1)−k1x=k2∗(q−1)−k1

可以得到x的范围为

(0,e)(0,e)

因此有

x∗(p−1)+1=dpex∗(p−1)+1=dp∗e

那么我们可以遍历

x∈(0,e)x∈(0,e)

求出p-1,求的方法也很简单,遍历65537种可能,其中肯定有一个p可以被n整除那么求出p和q,即可利用

ϕ(n)=(p−1)∗(q−1)de≡1 mod ϕ(n)ϕ(n)=(p−1)∗(q−1)d∗e≡1 mod ϕ(n)

推出

d≡1∗e−1 mod ϕ(n)d≡1∗e−1 mod ϕ(n)

注:这里的-1为逆元,不是倒数的那个-1

payload

写下如下脚本:

import gmpy2import libnume = 65537n = 248254007851526241177721526698901802985832766176221609612258877371620580060433101538328030305219918697643619814200930679612109885533801335348445023751670478437073055544724280684733298051599167660303645183146161497485358633681492129668802402065797789905550489547645118787266601929429724133167768465309665906113dp = 905074498052346904643025132879518330691925174573054004621877253318682675055421970943552016695528560364834446303196939207056642927148093290374440210503657c = 140423670976252696807533673586209400575664282100684119784203527124521188996403826597436883766041879067494280957410201958935737360380801845453829293997433414188838725751796261702622028587211560353362847191060306578510511380965162133472698713063592621028959167072781482562673683090590521214218071160287665180751

for i in range(1,65538):

    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

            print libnum.n2s(pow(c,d,n))

即可得到flag

flag{wow_leaking_dp_breaks_rsa?_98924743502}

反思

现在不难得出结论,RSA中,如果dp或者dq任意一个泄露都可以导致密文被破解因为上述的证明过程,没有用到任何特例情况。但是如果e较大的话,可能会比较困难一些,但是如果e过大,那就可以使用维纳攻击了XD


文章仅用于普及网络安全知识,提高小伙伴的安全意识的同时介绍常见漏洞的特征等,若读者因此做出危害网络安全的行为后果自负,与合天智汇以及原作者无关,特此声明。

相关文章

  • RSA之拒绝套路(1)

    前言 近期在复习数论和密码学的题目,于是先从RSA开始,做一些题目推导与证明希望知其然,知其所以然,而不是一味的跟...

  • RSA之拒绝套路(2)

    本文为原创文章,转载请注明出处! 前言 话不多说,继续探讨RSA的相关问题,上一期,我们讨论了,如果泄露了 (n,...

  • 拒绝套路

    近段时间群里突然流行拼多多砍价,可以0元拿走商品,而且某某人还砍价成功,听起来特别使人激动。 周五,小白在办公室对...

  • 拒绝套路

    小西红柿征文啦,我感觉他们越来越重视质量了,里面有一句话就是拒绝套路。看看征文画风要求。 小西红柿里面啥文火了就一...

  • C# RSA加解密和MD5加密

    1.RSA加密 2.RSA解密 3.RSA签名 RSA签名验签 4.MD5加密

  • 生成RSA私钥和公钥

    生成 RSA 私钥 生成 RSA 公钥 PKCS1 格式开头为-----BEGIN RSA PUBLIC KEY-...

  • 电脑多个RSA文件,被github登录拒绝

    使用ssh连接github时候,由于多个rsa文件存在,被github拒绝, ssh -T git@github....

  • 女生必看,男生最喜欢女生的套路揭秘

    女生必看,男生最喜欢骗女生的套路揭秘!拒绝套路,从现在开始!1、早晚问候,经常聊天每天对你说暧昧的情话,让你产生依...

  • SSH配置免密码登录堡垒机

    1、生成rsa、rsa.pub秘钥对命令:ssh-keygen -t rsa -C "$your_email"生成...

  • swift-RSA(五)-签名/验签

    RSA支持加解密,也支持签名/验签。使用rsa如何签名/验签呢? 1.rsa 签名 2.rsa 验签 3.调用

网友评论

      本文标题:RSA之拒绝套路(1)

      本文链接:https://www.haomeiwen.com/subject/uwchwftx.html