Я хочу использовать режим CTR в алгоритме DES в python с помощью пакета PyCryptodome. Мой код представлен в конце этого поста. Однако я получил эту ошибку: «TypeError: невозможно создать безопасный одноразовый номер для коротких блоков». Стоит отметить, что этот код хорошо работает для алгоритма AES, но не работает для DES, DES3, Blowfish и т. д. (с размером блока 64). Насколько мне известно, режим CTR можно применять в алгоритмах 64-блочного шифрования.
from Crypto.Cipher import DES
from Crypto.Random import get_random_bytes
data = b'My plain text'
key = get_random_bytes(8)
cipher = DES.new(key, DES.MODE_CTR)
ct_bytes = cipher.encrypt(data)
nonce = cipher.nonce
cipher = DES.new(key, DES.MODE_CTR, nonce=nonce)
pt = cipher.decrypt(ct_bytes)
print("The message was: ", pt)
Большое спасибо.