python crypto:DES CTR解密

时间:2012-11-23 11:43:37

标签: python cryptography counter des

我在这里找到了atomicinf的以下代码:atomicinf's code!代码是:

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

key = "0123456789ABCDEF" # 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的操作呢?我知道它有较小的计数器,但我如何定义它?

1 个答案:

答案 0 :(得分:1)

CTR模式的解密与加密的工作方式相同,即要解密你应该第二次调用'encrypt'。 这是因为在CTR模式下,IV会针对每个下一个块递增并使用AES算法进行加密,结果比使用明文进行加密。再次测量它会返回明文。