Crypto日记之DES-OFB加密模式的弱密钥问题

本文介绍了攻防世界的一道题目,涉及DES在OFB模式下的弱密钥问题。通过分析DES算法和安全性,揭示了解题关键在于利用DES的四个弱密钥尝试解密,而非穷举所有可能的密钥。最终,通过正确使用IV成功解密并得出明文。
摘要由CSDN通过智能技术生成

0x01 前言

攻防世界上的一道题,考查DES加密OFB模式下的弱密钥问题。题目名为easy_BlockCipher。

0x02 解题

题目给了一段代码和一个ciphertext的二进制加密文件,先看代码:

from Crypto.Cipher import DES

f = open('key.txt', 'r')
key_hex = f.readline()[:-1] # discard newline
f.close()
KEY = key_hex.decode("hex")
IV = '13245678'
a = DES.new(KEY, DES.MODE_OFB, IV)

f = open('plaintext', 'r')
plaintext = f.read()
f.close()

ciphertext = a.encrypt(plaintext)
f = open('ciphertext', 'w')
f.write(ciphertext)
f.close()

代码很简单,利用DES的OFB模式加密plaintext,给定了IV的值,为13245678,加密内容写进ciphertext,没有给KEY的值,但key是通过key.txt生成的十六进制值。

因此,已知IV,密文,只需要知道key的值就可以求出明文了。

简单看下DES加密,照搬《深入浅出密码学》里的笔记啦:

DES算法概述

DES是一种使用56位密钥对64位长分组进行加密的密码。DES是一种对称密码,加密和解密过程使用相同的密钥。DES也是一种

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值