{701D08A0-0077-4C50-A3D2-CE51346E0DC8}
关于这一题,需要根据p,q,e的位数确定k的位数,,然后再进行循环,这个循环以k为参,从215到216,得到p,q后就好算了。
{0B5130E8-C7BB-4196-B304-C0655236C5F8}
{C78F69E6-5951-4518-9962-8F62E8080D19}
这题给了两个文件,读出了n,e,c,但是要用专业的RSA进行计算,不然就是一堆乱数据。
{B16AE9F5-343B-47D5-9F15-6FA9D818F3A9}
这一题又考上我的高数了,而且一开始没读懂z的含义。弄懂之后发现也就是p,q的事。
{5568AE7D-8EDA-4E68-BDDC-AB79CFE36C68}
关于这一题,我主要在那个m的表示上有点问题。第一次知道这个还能b"BJD"*32
[INSHack2017]rsa16m
1关于这题我又不知道为什么没有办法直接用题解了,那个代码我用不了,最后会出错,当然做法是很简单的,但就是最后找那个n有问题,因为前后都是乱码,但还是把这个做法看了一下。
image
还要再具体就看我的notion吧。
额,又忘了保存。不写了,看notion。
{0E88B7AD-3C39-4E82-97BA-6051613C598C}
关于这一题,好神奇,毕竟第一次碰到,要用伪加密,notion有具体实现过程,这要要用到第三方软件。
{053A16B9-4F1E-4D6F-9FE8-68553E76D7BB}
大概就是这样,还要用到java,再具体就是notion了
[MRCTF2020]Easy_RSA
{22CDB0BF-21C6-482A-887B-6217D1877F7E}
{17FB0239-E24F-4D56-A0FD-CAB81FAA4E77}
{C0785DDF-5C4A-4BDF-B573-71988B90CEB9}

主要在求q的时候要考虑到那个函数里面的p,q偏大,然后phi就是直接约等于n,
[MRCTF2020]babyRSA
{DCB2EAD0-F85F-4A8D-B2B3-AC4F98FFD846}
{E91177A9-26EA-4E06-8339-8BC288B6D09E}
{DD42EBC4-B0F5-4D46-9334-ACBE383F5736}
看了那么久,看到题解,感觉自己像小丑。
事到如今我只能说一句6,真正意识到了,phi不一定只能由(p-1)(q-1)组成,还可以有很多数。还有就是注意一下一个和两个的区别。
[NPUCTF2020]EzRSA
1关于这题,嗯好高级,首先是那个p,q怎么解的问题,因为又学到了一个新的公式gcd(n-1,lcm)=gcd(p-1,q-1).666
然后是这一题它的e是个偶数,与p-1,q-1不互质,然后就需要将e进行转换,这题要转换成e/2
2,高级~~~
{779F6B31-C4FB-455E-902B-7CEF5F74905D}
f=lambda m,e,n,c:pow(m,e,n)==c

定义一个叫f的小函数,输入4个数字,输出True或False.

assert(sum(map(f,[p]4,[4]4,n,c))==4)

[p]*4:将p重复4次

为什么这么写:

因为n,c为一组,p,4也得成为一组。

map(f,……):将后面的4个列表,一组一组丢进f里计算。

sum(……):在python里面True=1,False=0,就是说四次都是True,才可以使最后结果是4。

最重要的第四部分,也是最难的:

始终在强调这个e和phi是互质的,然后那个中国剩余定理的形式是公共的x是大的那一方,怎么说就是模数究竟在哪一边,然后转换需要注意什么。直接把notion的传上来了,因为确实难,这题什么都考了。nb