优秀的编程知识分享平台

网站首页 > 技术文章 正文

CTF(Capture The Flag)密码学中级

nanyue 2024-11-27 18:17:22 技术文章 6 ℃

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.txt
john ailx10.txt
john --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 DES
import 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 encoded
ciphertext = rW4q3swEuIOEy8RTIp/DCMdNPtdYopSRXKSLYnX9NQe8z+LMsZ6Mx/x8pwGwofdZ
key = 6v3TyEgjUcQRnWuIhjdTBA==

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

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

eafdd3c8482351c4119d6b8886375304

也可以python3编程

# -*- coding: utf-8 -*-
import base64
from 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]

参考

  1. ^DES https://www.sojson.com/encrypt_des.html
  2. ^DES https://devtoolcafe.com/tools/des
  3. ^abAES https://www.sojson.com/encrypt_aes.html
  4. ^AES https://the-x.cn/cryptography/Aes.aspx

Tags:

最近发表
标签列表