BUUCTF中Crypto的RSAROLL

.
.
照例下载附件,两个 txt 文件:
RSA roll!roll!roll!
Only number and a-z
(don’t use editor
which MS provide)
{920139713,19}
704796792
752211152
274704164
18414022
368270835
483295235
263072905
459788476
483295235
459788476
663551792
475206804
459788476
428313374
475206804
459788476
425392137
704796792
458265677
341524652
483295235
534149509
425392137
428313374
425392137
341524652
458265677
263072905
483295235
828509797
341524652
425392137
475206804
428313374
483295235
475206804
459788476
306220148
.
.
说实话一开始我没看懂考啥,后来才发现这些数字中前面两个是n,e,后面是拆分的密文 c。原来题目的 roll 是滚动拼接 flag 的意思。想了想,这种多 RSA 参数的题,有点类似于我做过的 2022 年HGAME中CRYPTO的Easy RSA。
那直接套用脚本如下:
import libnum
from Crypto.Util.number import long_to_bytes
list1=[704796792,
752211152,
274704164,
18414022,
368270835,
483295235,
263072905,
459788476,
483295235,
459788476,
663551792,
475206804,
459788476,
428313374,
475206804,
459788476,
425392137,
704796792,
458265677,
341524652,
483295235,
534149509,
425392137,
428313374,
425392137,
341524652,
458265677,
263072905,
483295235,
828509797,
341524652,
425392137,
475206804,
428313374,
483295235,
475206804,
459788476,
306220148]
flag=""
n=920139713
q=18443
p=49891
e=19
for i in list1:
	c=i
	d = libnum.invmod(e, (p - 1) * (q - 1)) 		#invmod(a, n) - 求a对于n的模逆,这里逆向加密过程中计算ψ(n)=(p-1)(q-1),对ψ(n)保密,也就是对应根据ed=1modψ(n),求出d
	m = pow(c, d, n)  						# pow(x, y[, z])--函数是计算 x 的 y 次方,如果 z 在存在,则再对结果进行取模,其结果等效于 pow(x,y) %z,对应前面解密算法中M=D(C)=C^d(mod n)
#print(m) #明文的十进制格式
	string = long_to_bytes(m)  				# m明文,用长字节划范围
	flag+=string.decode()
print(flag)

.
.
解毕!
敬礼!
 
                   
                   
                   
                   
                            
 
                             本文详细介绍了如何解决一个CTF比赛中的RSA加密问题。通过分析给出的数字,确定了它们分别代表RSA加密的n、e和密文c。使用Python的libnum库和Crypto.Util.number模块,通过逆向RSA加密过程,将多个密文片段解密并拼接成最终的Flag。整个过程展示了对RSA加密原理和Python编程的运用。
本文详细介绍了如何解决一个CTF比赛中的RSA加密问题。通过分析给出的数字,确定了它们分别代表RSA加密的n、e和密文c。使用Python的libnum库和Crypto.Util.number模块,通过逆向RSA加密过程,将多个密文片段解密并拼接成最终的Flag。整个过程展示了对RSA加密原理和Python编程的运用。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
                     
              
             
                   241
					241
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
					 
					 
					


 
            