Ich ist versucht, den Klartext 6d65737361676531
(die in hexadezimal) zu verschlüsseln mit den Tasten 0000000000000000
und 0000000000000001
(beide hexadezimal) die DES-Chiffre in EZB mit Modus von Crypto.Cipher. Aber aus irgendeinem Grund sind sowohl ciphertext1_hex
als auch ciphertext2_hex
gleich 3bd2ac43547a7961
, d. H. Sie ergeben denselben Chiffretext. Hat jemand eine Idee, warum das so ist?Python: DES-Verschlüsselung EZB mit zwei verschiedenen Schlüsseln führt in dem gleichen verschlüsselten Text
from Crypto.Cipher import DES
key1_hex = "0000000000000000"
key2_hex = "0000000000000001"
key1 = key1_hex.decode("hex")
key2 = key2_hex.decode("hex")
des1 = DES.new(key1, DES.MODE_ECB)
des2 = DES.new(key2, DES.MODE_ECB)
plaintext_hex = "6d65737361676531"
plaintext = plaintext_hex.decode("hex")
ciphertext1 = des1.encrypt(plaintext)
ciphertext2 = des2.encrypt(plaintext)
ciphertext1_hex = ciphertext1.encode("hex")
ciphertext2_hex = ciphertext2.encode("hex")
Natürlich sollte man weder DES noch im ECB-Modus verwenden, wenn Sicherheit das Ziel ist. – zaph
Beachten Sie, dass hex '000000000000000000' und' 0000000000000001' [schwache DES-Schlüssel] (http://crypto.stackexchange.com/a/32456/4747) sind wie viele andere und sollten nicht verwendet werden. – zaph