Есть ли 112-битная тройная реализация DES в Python?Есть ли 112-битная тройная реализация DES в Python?
Я нашел pydes
, но он работает только с 16 или 24 байтами для Triple DES.
Есть ли 112-битная тройная реализация DES в Python?Есть ли 112-битная тройная реализация DES в Python?
Я нашел pydes
, но он работает только с 16 или 24 байтами для Triple DES.
В ключах DES младший бит каждого байта используется для проверки на четность. Таким образом, в 16 байт имеется только 16 * 7 = 112 независимых бит. 112 бит широко известен как эффективный размер ключа/длина для TDEA (официальное название NIST для тройного DES) варианта # 2. 112-битные ключи для TDEA также известны как ключи DES ABA, так как 1-й и 3-й ключи идентичны в схеме.
Не могли бы вы объяснить это немного? Я играю с сетевым протоколом, который использует зашифрованные tcp-соединения. Используемое шифрование - это Triple-DES в режиме блокировки блоков внешнего шифрования (CBC), где ключи составляют 14 байтов (112 бит). Типичный ключ выглядит как 0102030405060708091011121314, это 14 байт, а не 16. Как заставить его работать с pydes, который хочет 16 байтов или какой-либо другой модуль python, которым он существует? –
Вы будете читать 7 бит за раз от ключа, сдвинуть влево и испустить байт. Если pydes проверяет бит четности, вам также нужно установить это. Я нашел достаточно ясную реализацию этого в http://code.google.com/p/passlib/source/browse/passlib/utils/des.py?name=release-1.5#574 Это для обычного DES, так что вы необходимо передать в 7 байт за раз. –