PyCryptodome パッケージを使用して、Python の DES アルゴリズムで CTR モードを使用したいと考えています。この投稿の最後に提示された私のコード。ただし、「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)
どうもありがとう。