2012-11-23 197 views
1

我通過atomicinf在這裏找到以下代碼:atomicinf's code!代碼是:python加密:DES CTR解密

import Crypto.Cipher.AES 
import Crypto.Util.Counter 

key = "ABCDEF" # replace this with a sensible value, preferably the output of a hash 
iv = "0000000000009001" # replace this with a RANDOMLY GENERATED VALUE, and send this with the ciphertext! 

plaintext = "Attack at dawn" # replace with your actual plaintext 

ctr = Crypto.Util.Counter.new(128, initial_value=long(iv.encode("hex"), 16)) 

cipher = Crypto.Cipher.AES.new(key, Crypto.Cipher.AES.MODE_CTR, counter=ctr) 
print cipher.encrypt(plaintext) 

我的問題是:解密是如何工作的? (顯然我必須手動導入計數器或將當前的計數器保存到某個地方),其次是DES?我知道它有較小的櫃檯,但我如何定義它?

+0

隨機的64位隨機數太短而無法可靠唯一。 (好吧,它並不重要,因爲DES對蠻力來說很便宜) – CodesInChaos

+0

我知道它的弱點,但我不在乎,我是一名學生,我不打算將它應用到任何地方。我剛剛在所有模式下製作了一個加密解密DES的程序,但我無法獲得點擊率正確...這個反面的東西令我很煩... –

回答

1

CTR模式的解密工作方式與加密相同,即解密您應該再次調用「加密」。 這是因爲在CTR模式下,IV對於每個下一個塊增加並且使用AES算法進行加密,並且結果比使用明文進行着色。 Xoring它再次返回明文。