【网络安全 Crypto】初识RSA XSCTF

打开附件:

在这里插入图片描述

简要来说:将 flag 转换为一个长整数 m,然后生成两个 1024 位的大素数 pq。使用公钥 (e, n)m 进行加密得到密文 c,最后,分别计算 pqqp

思路:计算欧拉函数 phi,使用 inverse 函数计算出私钥 d,使用私钥对密文 c 进行解密,使用 long_to_bytes 函数将解密结果转换为字节数组。

from Crypto.Util.number import inverse,long_to_bytes

c=8722269075970644434253339592758512788160408912707387632591552130175707843950684315083250494010055435391879036285103810263591951437829414438640307561645721347859659807138051841516634704123100270651976676182059252251162982609391666023674158274992400910869692389001622774140191223807887675081808561012755545464977015973615407965906513878979919700065923364884766974187303774330319143647840846354404070430118235352622445115153298578370521811697710289716188726587743282814946239856766713516166990341116198180068191759095913957606379780234116317390622824096667107736103270907349927467971817639795094030622157581511033950777
n=10466186506773626671397261081802640650185744558208505628349249045496105597268556020207175016523119333667851114848452038431498926527983706092607207796937431312520131882751891731564121558651246025754915145600686076505962750195353958781726515647847167067621799990588328894365930423844435964506372428647802381074584935050067254029262890188260006596141011807724688556673520261743199388391094490191001701011230322653422314758778116196105077883955436582364267530633358016652912054880813710531145973799193443828969535902856467548523653920307742364119002349899553478815101092655897400295925170383678499125295006364960124859003
pq=10466186506773626671397261081802640650185744558208505628349249045496105597268556020207175016523119333667851114848452038431498926527983706092607207796937431312520131882751891731564121558651246025754915145600686076505962750195353958781726515647847167067621799990588328894365930423844435964506372428647802381074488896197029704465200125337817646702009123916866455067019234171839614862660036737875747177391796376553159880972782837853473250804807544086701088829096838316550146794766718580877976153967582795248676367265069623900208276878140709691073369415161936376086988069213820933152601453587292943483693378833664901178324
qp=10466186506773626671397261081802640650185744558208505628349249045496105597268556020207175016523119333667851114848452038431498926527983706092607207796937431312520131882751891731564121558651246025754915145600686076505962750195353958781726515647847167067621799990588328894365930423844435964506372428647802381074475956379708898904933143429835002718457573266164923043251954374464149976302585916538814746811455883837138715445492053610047383292461097590195481556557381952895539341802954749542143253491617052100969586396996063822508764438280468492894012685918249843558593322831683872737943676955669923498182824352081785243246
e = 65537

phi = pq\*qp//n
print(phi)
d = inverse(e,phi)
m = pow(c,d,n)
print(long_to_bytes(m))

结果如图:

在这里插入图片描述

flag{719014b3-c4e1-4f81-a7be-b4f0d65c9e10}
## 最后

**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**

![img](https://img-blog.csdnimg.cn/img_convert/526a2b82d8f4734aa8ef5ec464a561be.png)

![img](https://img-blog.csdnimg.cn/img_convert/7473a5e704ccf274474d2b2113cb76eb.png)

![img](https://img-blog.csdnimg.cn/img_convert/9a4237e0ca388fcaf5d941c0a53ef78c.png)

![img](https://img-blog.csdnimg.cn/img_convert/35be233414101e0c7186f2a7ca74caf7.png)

![img](https://img-blog.csdnimg.cn/img_convert/a633335b32da2bf29f974cede66e9f51.png)

 

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!**

[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618653875)

**由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**

于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**

### 回答1: buuctf crypto rsarsa 是一个密码学竞赛中的题目,涉及到 RSA 加密算法。RSA 是一种非对称加密算法,常用于数据加密和数字签名。在该题目中,可能需要对 RSA 加密算法的原理和实现进行深入的研究和分析,以解决加密和解密的问题。 ### 回答2: BUUCTF是一个针对计算机安全领域的技能竞赛,旨在提高选手的安全防护意识和技术能力。其中涉及的加密算法RSA在密码学中属于非对称加密算法,其加密过程中需要用到两个密钥,一个是公钥,一个是私钥。在加密过程中,公钥用于加密明文,而私钥则用于解密密文。因此,RSA算法的安全性取决于私钥的保护,若私钥泄漏,则加密数据不再安全。 在BUUCTF的RSA题目中,选手需要利用给定的RSA公钥、密文等信息来解密出原始明文。首先,选手需要对给定的公钥进行分解,以求出两个大质数p和q,并计算出n=p*q。然后选手需要求出一个整数e,使得e与(p-1)*(q-1)互质。选手需要利用扩展欧几里得算法求出一个整数d,使得d*e mod (p-1)*(q-1)=1。最后,选手就可以利用求得的d,将密文解密为原始明文。 在针对RSA算法的攻击方法中,通过枚举计算或利用数学上的漏洞,攻击者可以猜测出素数p和q的值,推导出解密私钥,并进一步利用私钥进行加密和签名等操作,从而窃取数据和获得系统控制权。因此,选手需要具备RSA算法的基本理论知识和常用攻击方法,并掌握实际应用中的RSA加密、解密及签名等操作。只有建立起一个扎实的RSA算法基础,才能在BUUCTF竞赛中成功击败其他选手。 ### 回答3: buuctf crypto rsarsa是一个密码学竞赛中的一个题目,旨在测试参赛者对于RSA算法的理解和应用能力。 RSA算法是目前最为常用的公钥加密算法之一,它的安全性基于质因数分解问题。在加密时,通过选择两个足够大的质数p和q,将它们相乘得到一个大的合数n,然后选择一个整数e作为公开密钥,满足e和(p-1)(q-1)互质。接着,选取一个整数d作为私有密钥,使得e*d mod (p-1)(q-1) = 1。然后,任何人都可以通过公开密钥(e,n)将明文m进行加密,得到密文c = m^e mod n。而只有知道私有密钥(d,n)的人才能够将密文c进行解密,得到明文m = c^d mod n。 在这道buuctf crypto rsarsa题目中,我们需要破解一个RSA加密过的密文,得到原始明文。题目给出了一个密文c和公钥(e,n),但是并没有给出私钥d。首先,我们需要对n进行质因数分解,求出p和q。这里我们可以使用Pollard-Rho算法或是其他的质因数分解算法。一旦我们求出了p和q,我们就能够计算出(p-1)(q-1),并通过扩展欧几里得算法求出私钥d。然后,我们就可以使用私钥d来解密密文得到明文了。 需要注意的是,在实际应用中,RSA算法需要保证选择的质数p和q足够大,才能够抵御当前已知的攻击手段。同时,在实现中还需要注意一些常见的安全漏洞,例如使用相同的公开指数e等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值