RSALib-cve漏洞-[GKCTF2020]Backdoor
RSALib-cve漏洞-[GKCTF2020]Backdoor
题目提示:p=k*M+(65537**a %M)
打开后发现一个算法.py文件,flag.enc和一个pub.pem
查看算法,发现就是最普通的rsa,大意是用pub里的公钥n和e对flag进行了加密,加密后的结果进行base63后存在flag.enc中。
打开flag.enc解密,得到
02142af7ce70fe0ddae116bb7e96260274ee9252a8cb528e7fdd29809c2a6032727c05526133ae4610ed944572ff1abfcd0b17aa22ef44a2
#这是密文c
然后根据python脚本,读取公钥n和e:
with open('./pub.pem' ,'r') as f:key = RSA.import_key(f.read())e = key.en = key.n
#e=65535
#n=15518961041625074876182404585394098781487141059285455927024321276783831122168745076359780343078011216480587575072479784829258678691739
看了一下也没有别的额外信息了,于是只能对n进行暴力分解,如果能得到p/q,自然所有的都能求出来。结果发现n有160多位。跑不出来。回过头才注意到,题目有文字描述:p=k*M+(65537**a %M)
啥玩意儿啊,我只知道m是明文,可是即使m是明文这里也有两个未知数。而且计算还很复杂,我的水平没法联立方程解出来。
然后google了一下,发现是一个cve漏洞复现:
这个网站讲的可太清楚了:https://asecuritysite.com/encryption/copper
[Back] With the ROCA (Return of the Coppersmith Attack) vulnerability an RSA private key can be recovered from the knowledge of the public key [article]. It has the CVE identifier of CVE-2017-15361. The vulnerability related to the Infineon RSA library on the Infineon Trusted Platform Module (TPM) firmware. It affected BitLocker with TPM 1.2 and YubiKey 4. In this case we calculate the prime number with Prime=k×M+(65537amodM):
The library uses the value of 39 (1…167) for the number of primes used to generate M for key sizes of 512 to 960-bits, then 71, 126 and 225 values are used for the key intervals 992–1952 bits; 1984–3936 bits; and 3968–4096 bits, respectively.
大意就是rsalib的素数生成有漏洞,不够随机,实际上的生成方式是用p=k*M+(65537**a %M)生成的,其中M为前x个素数乘积。
对于512 to 960-bits的key,M的值为39个素数乘积。上面那个网站甚至给了相关的代码:
于是M确定了值,a和k理论上也不会太大,暴力碰撞一下,秒出。
from Crypto.Util import number
from gmpy2 import *vals=39
M=1
n = mpz(15518961041625074876182404585394098781487141059285455927024321276783831122168745076359780343078011216480587575072479784829258678691739)
primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277,
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
