ACTF新生赛2020 crypto-classic1

本文介绍了一次CTF竞赛中遇到的Vigenere密码解密过程,通过键盘码转换得到密码“circle”,并使用python脚本进行密钥破解和解密,最终得到了密文SRLU{LZPL_S_UASHKXUPD_NXYTFTJT}
部署运行你感兴趣的模型镜像

哇,这里有压缩包的密码哦,于是我低下了头,看向了我的双手,试图从中找到某些规律
xdfv ujko98 edft54 xdfv pok,.; wsdr43

键盘码,得到的密码为circle

密文为:SRLU{LZPL_S_UASHKXUPD_NXYTFTJT}

SRLU未加密前应为ACTF,编写脚本如下:

#破解key
s='ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
s1='ACTF' 
s2='SRLU' 
key =''
for i in range(len(s1)): 
    key+=s[(s.find(s2[i])-s.find(s1[i]))%26] 
print key


#解密
cipher = 'SRLU{LZPL_S_UASHKXUPD_NXYTFTJT}'
key = 'SP'
#decode
flag = ''
for i in range(0,len(cipher)):
	flag += table[(table.find(cipher[i])+26-table.find(key[i%len(key)]))%26]
print flag
#ACTFHWHATKAKCLASSICALKVIGENEREH

'''
cipher = SRLU{LZPL_S_UASHKXUPD_NXYTFTJT}
ACTF{WHAT_A_CLASSICAL_VIGENERE}
'''

 

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

### 关于2020 ACTF 新生 crypto-aes 的解题报告 #### 题目背景与目标 题目旨在考察参者对于AES加密算法的理解以及实际应用能力。通过给出一段经过特定方式处理后的密文和部分提示信息,要求选手能够逆向工程并还原原始明文。 #### 加密过程解析 在给定的Python脚本中可以看到,程序首先生成了一个随机长度为32字节(即两个16字节块)的秘密钥`key`[^2]: ```python key = os.urandom(2)*16 ``` 接着创建了一个初始化向量`iv`,同样也是由操作系统提供的安全随机数构成,大小固定为16字节: ```python iv = os.urandom(16) ``` 随后计算了`key`与`iv`之间按位异或的结果,并将其转换成整型数值输出作为公开线索之一: ```python print(bytes_to_long(key)^bytes_to_long(iv)) ``` 最后利用上述参数实例化了一个AES对象,在CBC模式下完成了对标志字符串`FLAG`的加密操作,并打印出了最终得到的密文形式: ```python aes = AES.new(key, AES.MODE_CBC, iv) enc_flag = aes.encrypt(FLAG) print(enc_flag) ``` #### 解密方法探讨 为了成功破解这道挑战题,需要根据已知条件反推出正确的解密流程。观察到官方发布的解答代码片段可以发现,这里采用了不同的策略来恢复原本用于加密封印的数据结构[^3]: - **提取密钥**: 由于之前已经公布了`key ^ iv`的形式,因此可以通过简单的数学运算重新获得完整的`key`值; ```python out = bytes_to_long(out) # 将公布的long类型数据转回bytearray key = out[:16]*2 # 构建完整的32-byte key ``` - **重建IV**: 同样基于相同的逻辑关系,可以从现有的材料里推导出最初的`iv`; ```python iv = (bytes_to_long(out[16:]) ^ bytes_to_long(key[16:])) iv = long_to_bytes(iv) ``` 完成以上准备工作之后,则可以直接调用标准库函数执行常规意义上的AES-CBC解码动作即可获取隐藏的信息内容。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值