NSSCTF crypto [SWPUCTF 2021 新生赛]

1.[SWPUCTF 2021 新生赛]crypto1

题目:

from gmpy2 import *
from Crypto.Util.number import *
flag  = '****************************'
flag = {"asfajgfbiagbwe"}
p = getPrime(2048)
q = getPrime(2048)
m1 = bytes_to_long(bytes(flag.encode()))
e1e2 = 3087
n = p*q
print()
flag1 = pow(m1,e1,n)
flag2 = pow(m1,e2,n)
print('flag1= '+str(flag1))
print('flag2= '+str(flag2))
print('n= '+str(n))
#flag1= 。。。
#flag2= 。。。
#n= 。。。

题目以及网站上已经介绍这是小明文和共模攻击的RSA题目。

找代码:

运用爆破得到e1和e2;之后就是一个共模攻击的经典样式题目,得到最后结果为:

NSSCTF{d64dba66-b608-4255-b888-0b0f25c2f90e}。

改进:对代码进行进一步改进,改进循环,我们已知e1和e2为质数,我们放入质数分解网站(或yafu)进行分解,得到结果为:3*3*7*7*7.

我们可以将部分代码改进为:

factor = [3, 7, 3 * 3, 3 * 7, 7 * 7, 3 * 3 * 7, 3 * 7 * 7, 7 * 7 * 7, 3 * 7 * 7 * 7, 3 * 3 * 7 * 7];
for e1 in factor:

这样也可以运行得到最终结果。

2.[SWPUCTF 2021 新生赛]crypto2

题目:

题目已经给出是共模攻击的题目。

上脚本,改一下值,可得最终结果:

NSSCTF{xxxxx******xxxxx}

3. [SWPUCTF 2021 新生赛]crypto4

题目:

题目给出为素数分解类型题目,运用yafu进行n的分解得到p,q。

运用脚本进行解密:

得到最终答案:NSSCTF{no_why}

4. [SWPUCTF 2021 新生赛]crypto5

题目:flag= 。。。

n= 。。。

题目给出此题为小明文攻击类型题目,我们可以对e进行爆破,得到最后的结果。

脚本:

得到最终答案:NSSCTF{because_i_like}

5.[SWPUCTF 2021 新生赛]crypto6

题目:

var="************************************"
flag='NSSCTF{' + base64.b16encode(base64.b32encode(base64.b64encode(var.encode()))) + '}'
print(flag)

小明不小心泄露了源码,输出结果为:

4A5A4C564B36434E4B5241544B5432454E4E32465552324E47424758534D44594C4657564336534D4B5241584F574C4B4B463245365643424F35485649534C584A5A56454B4D4B5049354E47593D3D3D,你能还原出var的正确结果吗?

看代码可知,密文是将明文先后进行base64,base32,base16加密,则有两种解密方式:

1.用网站解密:https://ctf.bugku.com/tools

此网站包含很多古典密码的加密解密方式。

先后运用base16,base32,base64解密得到结果。

2.用python代码:

import base64
var = '4A5A4C564B36434E4B5241544B5432454E4E32465552324E47424758534D44594C4657564336534D4B5241584F574C4B4B463245365643424F35485649534C584A5A56454B4D4B5049354E47593D3D3D'
s = bytes(var,'utf-8')
flag = base64.b64decode(base64.b32decode(base64.b16decode(s.decode())))
print('NSSCTF{'+str(flag,'utf-8')+'}')

得到的明文为:

NSSCTF{5e110989-dc43-1bd3-00b4-9009206158fe}。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值