一道 3DES 的暴力破解题

admin 2025年1月10日15:53:20评论3 views字数 721阅读2分24秒阅读模式

一道 3DES 的暴力破解题

mysterytwisterc3 的一道 LVII 的题, 很简单
brute_force_attack_on_triple_des_with_reduced_key_space

题目

key 的前几个字符给出了提示, 是在 2006 年发明用于攻击 DES 密文的暴力破解机器,这个机器攻击 DES key (56 Bit) 仅仅花费不到一周。

这个机器的名字就是 key 的前几位,后面还加上了 6 位数字。
然后将这个字符串 Hex 后, 作为 3DES 加密使用的 Key。

一番寻找后, 在 wiki 百科上找到了这个机器的名字:
COPACOBANA
剩下的就直接暴力好了

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from Crypto.Cipher import DES3
import re

with open('1.txt','rb') as fp:
data = ''.join(fp.read().split())

print len(data)
N = 0
for k in range(999999):
iv = str(k).zfill(6)
key = 'COPACOBANA'+iv
cipher = DES3.new(key, DES3.MODE_CBC, IV=('0'*16).decode('hex'))
m = cipher.decrypt(data.decode('hex')[:2352])
n = len(re.findall('[a-zA-Z]',m))
if N < n:
N = n
M = m
K = key

print 'The key is:',K
print 'The M is:',M
print '+'*50

结果

一道 3DES 的暴力破解题

坑点

在 PyCrypto 的官方文档里,关于 DES3 的示例有点问题。。。

- By:tr0y.wang

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月10日15:53:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一道 3DES 的暴力破解题https://cn-sec.com/archives/3616225.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息