1

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

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 呢?我知道它有较小的计数器,但我如何定义它?

4

1 回答 1

1

CTR 模式的解密与加密的工作方式相同,即要解密,您应该第二次调用“加密”。这是因为在 CTR 模式下,IV 为每个下一个块递增并使用 AES 算法加密,结果比明文异或。再次异或返回明文。

于 2012-12-12T21:28:51.937 回答