CTF CRYPTO 对称密码

本文介绍了如何解决ACTF新生赛2020中的一道crypto-aes题目,涉及到AES加密模式CBC,以及字节翻转攻击的解题方法。通过分析代码,理解了key和iv的生成方式,以及利用异或恢复key的部分。最终通过异或操作和AES解密得到了原始flag。

[ACTF新生赛2020]crypto-aes

题目

aes.py
from Cryptodome.Cipher import AES
import os
import gmpy2
from flag import FLAG
from Cryptodome.Util.number import *

def main():
    key=os.urandom(2)*16
    iv=os.urandom(16)
    print(bytes_to_long(key)^bytes_to_long(iv))
    aes=AES.new(key,AES.MODE_CBC,iv)
    enc_flag = aes.encrypt(FLAG)
    print(enc_flag)
if __name__=="__main__":
    main()
output:
91144196586662942563895769614300232343026691029427747065707381728622849079757
b'\x8c-\xcd\xde\xa7\xe9\x7f.b\x8aKs\xf1\xba\xc75\xc4d\x13\x07\xac\xa4&\xd6\x91\xfe\xf3\x14\x10|\xf8p'

解题思路

也是头一次做AES的题,光了解原理还是不会做题,不如直接题目入手。

[CTF]AES-CBC字节翻转攻击_aes cbc ctf_pandarking的博客-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值