前言
AES即高级加密标准(Advanced Encryption Standard),是一种对称密钥加密算法。它采用128、192和256位密钥,并且对明文进行分块加密。AES算法使用替换、置换、XOR和线性运算等基本加密算法,在加密和解密时都使用相同的密钥。
AES算法主要分为四个步骤:密钥扩展、初始轮、重复轮和最终轮。密钥扩展将一次性密钥扩展成多个轮密钥,重复轮将轮密钥用于执行加密或解密操作,最终轮是一个特殊的加密轮,用于处理最后一个分组的加密或解密操作。
AES算法应用广泛,特别是在安全领域。例如,AES加密可以用于保护数据传输和存储过程中的机密信息,如支付信息、个人身份信息、密码等。同时,由于AES算法具有高强度、高效率、可靠性等优点,因此还适用于网络安全、金融、电子商务等领域。
一、AES加密
1.打开题目
2.解题
下载后发现是.xz结尾
xz -d 1.py.xz
#!/usr/bin/env python3
import base64
from Crypto.Cipher import AES # pip3 install pycrypto
def main(data):
c = AES.new(b'Hello, World...!')
plain_text = bytes.fromhex(input('What is your plain text? '))
if c.encrypt(plain_text) != b'Good Plain Text!':
print('Bad plain text')
exit()
c2 = AES.new(plain_text[::-1], mode=AES.MODE_CBC, IV=b'1234567887654321')
decrypted = c2.decrypt(data)
with open('output.jpg', 'wb') as fout:
fout.write(decrypted)
main(base64.b64decode('.......'))
1.第一轮密钥为b'Hello, World...!'
2.第一轮密文为b'Good Plain Text!'
3.解密即可得到plain_text
4.第二轮密钥为plain_text
5.直接解密输出图片即可
代码如下:
import base64
from Crypto.Cipher import AES
c = AES.new(b'Hello, World...!', AES.MODE_ECB)
plain_text = c.decrypt(b'Good Plain Text!')
c2 = AES.new(plain_text[::-1], mode=AES.MODE_CBC, IV=b'1234567887654321')
data = base64.b64decode(r'.......')
decrypted = c2.decrypt(data)
with open('output.jpg', 'wb') as fout:
fout.write(decrypted)
得到flag:I can encrypt aes