首页 > 其他分享 >RSA之低指数攻击------2023.5.22

RSA之低指数攻击------2023.5.22

时间:2023-05-22 21:12:12浏览次数:38  
标签:22 iroot RSA 明文 python 三次方 2023.5 print import

1,e=3的小明文攻击:

特点:

  1. 当 e=3 时,如果明文过小,导致明文的三次方仍然小于n,那么通过直接对密文开三次方即可得到明文。

 

即:C=m^e mod n,如果e=3,且m^e<n,则C=m^e,m=c^(1/3)

 

2.如果明文的三次方比n大,但不是足够大,那么设k有: C=m^e+k∗n

 

爆破k,如果 C−k∗n 或者 C+k∗n 能开三次根式,那么就可以直接得到明文。

关键代码:

i=0
while 1:
    if(iroot(c+i*n,3)[1]==1):           #或者 iroot(c-i*n,3)
        print(iroot(c+i*n,3)[0])
        break
    i=i+1

例题:buuctf dangerous rsa
#n:  0x52d483c27cd806550fbe0e37a61af2e7cf5e0efb723dfc81174c918a27627779b21fa3c851e9e94188eaee3d5cd6f752406a43fbecb53e80836ff1e185d3ccd7782ea846c2e91a7b0808986666e0bdadbfb7bdd65670a589a4d2478e9adcafe97c6ee23614bcb2ecc23580f4d2e3cc1ecfec25c50da4bc754dde6c8bfd8d1fc16956c74d8e9196046a01dc9f3024e11461c294f29d7421140732fedacac97b8fe50999117d27943c953f18c4ff4f8c258d839764078d4b6ef6e8591e0ff5563b31a39e6374d0d41c8c46921c25e5904a817ef8e39e5c9b71225a83269693e0b7e3218fc5e5a1e8412ba16e588b3d6ac536dce39fcdfce81eec79979ea6872793L
#e:  0x3
#c:0x10652cdfaa6b63f6d7bd1109da08181e500e5643f5b240a9024bfa84d5f2cac9310562978347bb232d63e7289283871efab83d84ff5a7b64a94a79d34cfbd4ef121723ba1f663e514f83f6f01492b4e13e1bb4296d96ea5a353d3bf2edd2f449c03c4a3e995237985a596908adc741f32365
so,how to get the message?

解题脚本:
from libnum import*   #python第三方库
from gmpy2 import*    #python第三方库

n = 0x52d483c27cd806550fbe0e37a61af2e7cf5e0efb723dfc81174c918a27627779b21fa3c851e9e94188eaee3d5cd6f752406a43fbecb53e80836ff1e185d3ccd7782ea846c2e91a7b0808986666e0bdadbfb7bdd65670a589a4d2478e9adcafe97c6ee23614bcb2ecc23580f4d2e3cc1ecfec25c50da4bc754dde6c8bfd8d1fc16956c74d8e9196046a01dc9f3024e11461c294f29d7421140732fedacac97b8fe50999117d27943c953f18c4ff4f8c258d839764078d4b6ef6e8591e0ff5563b31a39e6374d0d41c8c46921c25e5904a817ef8e39e5c9b71225a83269693e0b7e3218fc5e5a1e8412ba16e588b3d6ac536dce39fcdfce81eec79979ea6872793
c = 0x10652cdfaa6b63f6d7bd1109da08181e500e5643f5b240a9024bfa84d5f2cac9310562978347bb232d63e7289283871efab83d84ff5a7b64a94a79d34cfbd4ef121723ba1f663e514f83f6f01492b4e13e1bb4296d96ea5a353d3bf2edd2f449c03c4a3e995237985a596908adc741f32365

i=0
while 1:
    if(iroot(c+i*n,3)[1]==1):           #或者 iroot(c-i*n,3)
        print(n2s(iroot(c+i*n,3)[0]))
        break
    i=i+1
2,e=2时的小明文攻击:
特点:

e=2时,直接将密文C开平方获得解

由于e只有2,相当于把明文m平方而已,得到的C也比n小很多。尝试直接将C开根号看能否得到明文。

关键代码:

from libnum import*   #python第三方库
from gmpy2 import*    #python第三方库

c=......              #C的值
m=isqrt(c)            #开平方根
#m=iroot(c,2)[0]      #开C的二次方根

print(n2s(m))

3,e=1时的小明文攻击:
特点:

加密过程:

C≡m mod n ,明文与密文同模

所以有:m=C+n*k,爆破k

关键代码:

from libnum import*

n=....
c=....
max_num = 7   #设置遍历上限

for k in range(max_num):
    m = c + n*k
    print(n2s(m))    

 

标签:22,iroot,RSA,明文,python,三次方,2023.5,print,import
From: https://www.cnblogs.com/wlwl1234/p/17421742.html

相关文章

  • 5.22 3.1
    一、问题描述求某一范围内完数的个数。如果一个数等于它的因子之和,则称该数为“完数”(或“完全数”。例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。二、分析for(i=2;i<=n;i++){....for(j=l;j<i;j++){...}if(s==i)输出当前i是完数}三、代码#include<iostream>usingna......
  • 2023年5月22号
    今天讲了一下团队开发的总结,目前的项目得不到老师认可,我们也要学会反思。我想了一下情况,不一定保真,最后还是要和团队里其他人商量一下。 没有明确的目标和计划在团队开发过程中,没有为项目设定明确的目标和计划会导致混乱。这可能会使团队成员无法集中注意力,并且在项目的不同阶......
  • 在 Windows Server 2022 中,微软取消了一些以前的功能。以下是一些被取消的功能
    在WindowsServer2022中,微软取消了一些以前的功能。以下是一些被取消的功能:InternetStorageNameService(iSNS):iSNS是一个网络服务协议,为iSCSI设备提供自动发现和配置。在WindowsServer2022中,iSNS被取消了,建议使用其他的自动发现和配置方法。PeerNameResolu......
  • 5.22
    #include<stdio.h>main(){intm,n,temp,i;printf("Inputm&n:");scanf("%d%d",&m,&n);for(inti=1;;i++){if(i%m==0&&i%n==0){printf("%d",i);break;}}return0;}......
  • 算法基础上机实验——2023.5.21
    2.#include<cmath>#include<cstdio>#include<iostream>#include<algorithm>usingnamespacestd;intmain(){intn; cin>>n; n=n*100; intcock,hen,chicken; intcount=0; for(cock=0;cock<=n;c......
  • idea中jdk11用maven编译失败 Fatal error compiling: tools.jar not found: XX\Java
    ideamaven编译需要用到jdk的lib包里面的tools.jar文件,但是jdk1.8之后就没有tools.jar了。我这里用的是graalvm的jdk11,编译一直报错,网上也查不到。解决办法: 根据对应路径创建一个lib包,并把jdk1.8的lib下面的tools.jar复制一个放到这个包下面,让这个路径有这个包就行了。我......
  • 2018 ICPC Asia Qingdao (The 1st Universal Cup, Stage 9)
    E看完题想到二分答案直接一步步贪心,没多想直接和队友说了下,感觉贪心会有点问题,放了一会后冷静分析了一下,发现返回造成的浪费是不可避免的,就很对了!点击查看代码#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;constintN=2e5+5;intn;llm;lla[N]......
  • 云原生周刊:2023 年可观测性状态报告发布 | 2023.5.22
    Splunk与EnterpriseStrategyGroup合作发布了StateofObservability2023,这是一份年度全球研究报告,探讨了可观测性在管理当今日益复杂的技术环境中的作用。该报告将可观测性领导者定义为具有至少24个月的可观察性经验的组织。此外,领导者在以下五个因素中排名最高:跨所有可......
  • 5月22日打卡
    例具有静态数据、成员函数的Point类代码部分: #include<iostream>usingnamespacestd;classPoint{private:intx,y;staticintcount;public:Point(intx=0,inty=0):x(x),y(y){count++;}Point(Point&p){x=p......
  • 建民打卡日记5.22
    一、问题描述我们看到,把数字0-9翻倒,有的数字就认不出来了,比如2、3、4、5、7;有的数字看上去没什么大的变化,比如0、1、8;还有的数字变成了另一个数,比如6变成9,9变成6。给定一堆数字,请你判别每个数有没有可能是另一个数字翻倒形成的。二、流程设计对每个给定的数字,如果它......