[Crypto]overFlowBuf xp0int Posted on Oct 28 2018 # overFlowBuf <br> 一道简单的DES-OFB常识科普题。提供了密文、以及DES加密api的python代码。未知量为密钥,求解明文 ![图片标题](https://leanote.com/api/file/getImage?fileId=5bd44649ab64411fb8004aa4) <br> 密钥长度应该为8,每个长度的可能性是256种,显然不存在爆破的可能。那么上过密码学的同学应该会记得老师曾经会讲过关于weakkeys(弱键)的概念,在尝试google了一番的情况下,就会发现des-obf也存在弱键的情况,以下是在wiki上举例的四个弱键: ```python 0x0000000000000000 0xFFFFFFFFFFFFFFFF 0xE1E1E1E1F0F0F0F0 0x1E1E1E1E0F0F0F0F ``` <br> 因此我们可以尝试将这四个弱键都试一下,代码如下: ```python from Crypto.Cipher import DES f = open('cipher.txt', 'r') ciphertext = f.read() f.close() IV = 'Le3tc0de' KEY=b'\x00\x00\x00\x00\x00\x00\x00\x00' a = DES.new(KEY, DES.MODE_OFB, IV) plaintext = a.decrypt(ciphertext) print plaintext KEY=b'\x1E\x1E\x1E\x1E\x0F\x0F\x0F\x0F' a = DES.new(KEY, DES.MODE_OFB, IV) plaintext = a.decrypt(ciphertext) print plaintext KEY="\xE1\xE1\xE1\xE1\xF0\xF0\xF0\xF0" a = DES.new(KEY, DES.MODE_OFB, IV) plaintext = a.decrypt(ciphertext) print plaintext KEY="\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" a = DES.new(KEY, DES.MODE_OFB, IV) plaintext = a.decrypt(ciphertext) print plaintext ``` <br> 最后发现第三个弱键奏效,以下是结出来的明文: ![图片标题](https://leanote.com/api/file/getImage?fileId=5bd44649ab64411fb8004aa3) 打赏还是打残,这是个问题 赏 Wechat Pay Alipay [Misc]bitcoin_base [Misc]加密了吗
没有帐号? 立即注册