CTF(CaptureTheFlag)密码学中级

信息安全不简单鸭 2024-09-07 01:32:33

DES(Data Encryption Standard)和AES(Advanced Encryption Standard)都是对称加密算法。它们都属于块密码,即按照固定大小(称为块大小)将数据分成块,并对每个块进行加密。

DES使用56位密钥(实际上是64位,但有8位用于校验,因此只有56位被用于加密),块大小:64位(8字节),使用Feistel网络结构进行加密,对每个64位的数据块进行16次迭代。

AES支持三种密钥长度:128位、192位和256位。块大小:128位(16字节),使用替代的迭代式子密钥算法,对128位数据块进行不同轮数的迭代操作(轮数取决于密钥长度)。

ailx10

网络安全优秀回答者

网络安全硕士

去咨询

1、简单的DES

采用Unix系统的口令加密

soulslayer:2aBl6E94IuUfo

直接通过 john 命令获得明文

echo soulslayer:2aBl6E94IuUfo > ailx10.txtjohn ailx10.txtjohn --show ailx10.txt

2、DES解密

找遍了所有地方没有发现秘钥。据说给出的东西足够解出秘密了。U2FsdGVkX18fll8vjD2eBsbj7n77+YDHfY8mA9/B5fV7B6huFdkqlH4yqzAU/hCiHaOLt3kKgCuBMv+9nzN5Eg==答案格式:flag{xxx}

直接在线工具[1]走一波,不要输入密钥,不知道这个是咋做到的,DES是对称加密啊,无语

3、DES CBC模式

DES CBC模式,IV为全0,key是abcd,请解密0e97589c250e4ef717e9f9f74f3b7ea422c5b50d31ae9c62d8d6248700440aab4ff00d9e6787b7af

可以找在线工具[2]

也可以python3编程

# -*- coding: utf-8 -*-from Crypto.Cipher import DESimport binascii# 要解密的密文和密钥ciphertext = binascii.unhexlify('0e97589c250e4ef717e9f9f74f3b7ea422c5b50d31ae9c62d8d6248700440aab4ff00d9e6787b7af')key = b'61626364' # 8字节的密钥iv = b'\x00' * 8 # IV是全0# 创建DES解密器cipher = DES.new(key, DES.MODE_CBC, iv)# 解密密文decrypted = cipher.decrypt(ciphertext)# 去除填充plaintext = decrypted.rstrip(b"\0")print("解密后的消息:", plaintext.decode())#解密后的消息: flag{5353503c67017fcfec0c6518611025f7}

4、简单的AES

Tips:啥都不用密文:U2FsdGVkX19PuxOY5/W+kfD11dhgSbz51GoOSb9pJJIGbW75qXuivEkf5fr5R03Q

直接找在线工具[3]

5、AES ECB模式

Encrypted with AES in ECB mode. All values base64 encodedciphertext = rW4q3swEuIOEy8RTIp/DCMdNPtdYopSRXKSLYnX9NQe8z+LMsZ6Mx/x8pwGwofdZkey = 6v3TyEgjUcQRnWuIhjdTBA==

可以找在线工具[4],注意这里要先将key转化为hex

echo "6v3TyEgjUcQRnWuIhjdTBA==" | base64 -d | xxd -peafdd3c8482351c4119d6b8886375304

也可以python3编程

# -*- coding: utf-8 -*-import base64from Crypto.Cipher import AES# 加密的密文和密钥(以base64编码形式提供)ciphertext = base64.b64decode("rW4q3swEuIOEy8RTIp/DCMdNPtdYopSRXKSLYnX9NQe8z+LMsZ6Mx/x8pwGwofdZ")key = base64.b64decode("6v3TyEgjUcQRnWuIhjdTBA==")# 创建AES解密器cipher = AES.new(key, AES.MODE_ECB)# 解密密文decrypted = cipher.decrypt(ciphertext)print("解密后的消息:", decrypted.decode())# 解密后的消息: flag{do_not_let_machines_win_983e8a2d}__________

6、AES解密

结果的密文旁贴着thisiskey你能够解密吗:U2FsdGVkX18QHsWL7fpO0q4NJs/cpkj2oT00FjOwvifW5I8/cMJMZCrcwl0rB7+IhufjnuqjRkjTG/u9taDObg==答案格式:flag{xxx}

可以找在线工具[3]

参考^DES https://www.sojson.com/encrypt_des.html^DES https://devtoolcafe.com/tools/des^abAES https://www.sojson.com/encrypt_aes.html^AES https://the-x.cn/cryptography/Aes.aspx
0 阅读:0