Итак, я пытаюсь расшифровать соединение через SSH, используя pycryptodome.У меня есть ключ и IV, извлеченные из памяти (я работаю в виртуальной среде), которые на 100% правильные и использовались для шифрования данных.Теперь я хочу расшифровать вещи потом.Мой код выглядит следующим образом:
key="1A0A3EBF96277C6109632C5D96AC5AF890693AC829552F33769D6B1A4275EAE2"
iv="EB6444718D73887B1DF8E1D5E6C3ECFC"
key_hex=binascii_a2b_hex(key)
iv_hex=binascii_a2b_hex(iv)
ctr = Counter.new(128, prefix=iv_hex, initial_value = 0)
aes = AES.new(key, AES.MODE_CTR, counter = ctr)
decrypted = aes.decrypt(binascii.a2b_hex(cipher).rstrip())
print(decrypted)
Проблема заключается в том, что счетчик слишком велик (32 байта) для размера блока, равного 16 байтам в AES.Тем не менее, я обнаружил, что вам нужен IV как префикс в вашем счетчике, если вы хотите расшифровать AES-CTR плюс initial_value, установленный в 0. Поэтому у меня уже есть 16 байт только с префиксом.Когда я знаю, хотите установить первое значение в объекте счетчика на 0, это не работает.Можно ли даже дешифровать AES-CTR с помощью 16-байтового IV с использованием пикриптодома?Или, может быть, кто-то из вас видит мою ошибку.Любая помощь приветствуется.Заранее спасибо!
Редактировать: Благодаря SquareRootOfTwentyThree я решил проблему с pycryptodome.К сожалению, расшифровка все еще не работает, поэтому я открыл новую тему. openssh / opensshportable, какой ключ я должен извлечь из памяти?