- 博客(5)
- 收藏
- 关注
原创 [多素数RSA]利用phi(n)分解n
然后我们去尝试每一个因式,看看能不能把p和q分解出来,如果每个因式都失败了,也没关系,因为这里a是任选的,所以我们只需要换一个a继续重复上述步骤就行。通过这样分解,就有可能把p和q分开到两个式子中,如果确实分开了,就可以利用。本文以n=pq为例,实际上这种方法可以使用到多素数的RSA系统。的整数倍,记为b,其中。
2024-08-23 13:05:44
141
原创 RSA4(p1-p11)
本题大致与P3一样,但是把e提高到了5,这样就不好再去展开一个5次多项式了,回顾P3的方法,其实我们就是在从题目中关于m的两个高次多项式中求出了他们的一个公因式,这个公因式是一次的,可以直接解出m。我们点击右上角的 New ,然后选择 sagemath,就可以写sage代码了,sage的语法与python一样,但sage多了一些东西我会在注释里说明。要注意这种方法要求我们已知的信息要大于。运行得flag:NSSCTF{76f8044e-7bf9-43cd-885f-22f611628b8b}
2024-07-16 11:23:21
1714
原创 RSA3(p1-p12)
这题也是用CRT把模数提高,然后直接开根,不过这里给的模数存在不互素的情况,所以要用到拓展的CRT算法,这个算法的主要思路就是把两个同余式等价转化为一个同余式,然后重复这个步骤,直到最后只剩一个同余式就完成了模数的提升。代码审计可以发现,这题的e与p-1是不互素的,甚至e可以整除p-1,这种情况我们就没办法求出逆元d,而是要采用有限域开根的算法(AMM算法)直接对。看作一个整体,所以就只需要开2次根即可,然后将开出来的两个根在进行开2次根,最后得出4个根,具体的开根方法可以以看我之前发的。
2024-07-15 13:39:22
1756
原创 RSA2(p1-p12)
运行得flag:NSSCTF{small}这题给的e只有3,说明c也比较小,但是对c不能直接开3次根,因为可能比n略大,故给c加上k倍的n,得到的这个新的c可能就是运行得flag:NSSCTF{i_think_small_e_is_not_safe_enough!这题给e只有2,但是没办法像P2一样开根。
2024-07-09 10:47:07
816
原创 RSA1(p1-p10)
并且他们有一个共同的素因子,因此可以用GCD(n1,n2)(欧几里得算法)求出这个最大公因数q,然后就可以按常规RSA解密。这里的n是由两个相邻的素数组成的,所以根号n往后的第一个素数即为n的一个素因子。这题直接给出了n,但是n是由两个256位的素数乘积得来的,不算太大(至少factordb能分解),放到。运行得flag:NSSCTF{factordb_is_useful}运行得到flag:NSSCTF{inverse_and_root}运行得flag:NSSCTF{no_share_number}
2024-07-07 11:21:19
1733
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人