необходимо решить задачу по применению pygost в python
Задание по расшифровке базового сообщения
Задача: Расшифруйте сообщение A3D9F1C8B0E5A3D9
(hex), зашифрованное по ГОСТ 28147-89 в режиме простой замены. Ключ: 4E921FA57B30C8D94E921FA57B30C8D9
(32 байта).
Теория: ГОСТ использует 64-битные блоки и 256-битные ключи. Дешифрование требует обратного порядка подключей.
Подсказки:
- Используйте библиотеку
pygost
. - Дополнение открытого текста — нулевые байты.
Решение:
from pygost import gost3412
key = bytes.fromhex("4E921FA57B30C8D94E921FA57B30C8D9")
ciphertext = bytes.fromhex("A3D9F1C8B0E5A3D9")
decrypted = gost3412.ECB(key).decrypt(ciphertext)
print(decrypted.decode()) # Ответ: HELLOW\x00\x00
Есть проблемы с нахождением и установкой нужной версии библиотеки (для выполнения использую версию с репозитория mosquito) и выборе метода. Преподаватель утверждает что код, метод (Магма из госта 3412), ключ и шифр являются верными и как минимум 3 человека смогли верно решить задачу. Были попытки подгонять ответы под разные стандарты, например:
- Поменять метод ECB(key) на GOST3412Magma(key) который есть в библиотеке. Ошибка
bytearray index out of range
- Импортировать ГОСТ 28147 для метода ECB, но в ECB надо передать еще один аргумент которого у нас нет.
Преподаватель требует для выполнения использовать метод Магма
и именно библиотеку pygost
. Как этого достичь преподаватель не объяснил и не объяснит.