Увеличение распространения алгоритма шифрования AES-CBC в pycrypto для python

Когда шифрование выполняется с использованием алгоритма AES-CBC, шифрование можно рассматривать как цепочку зашифрованных текстов с предыдущими и IV. Однако, если он находится в режиме CBC, мы придаем нашему зашифрованному тексту свойства прямого распространения (то есть, если мы изменим только i в нашем шифре, открытый текст изменится для всех блоков после этого). Чтобы усложнить атаки на пластичность, можно связать зашифрованные тексты во время шифрования в обоих направлениях (или реализовать что-то подобное, как в статье о BitLocker).

Кто-нибудь знает, есть ли реализация pyCrypto, которая обеспечивает цепочку зашифрованных текстов с использованием обоих направлений?

Один из способов, который я придумал для решения этой проблемы, заключался в том, чтобы получить исходный зашифрованный текст, изменить его с помощью python и затем передать его pyCrypto. Однако это казалось немного грубой силой, потому что весь смысл pyCrypto заключается в том, чтобы воспользоваться преимуществами их реализации на уровне C (в то время как обращение строки приведет к очевидному неудачному удару по производительности).


person Charlie Parker    schedule 06.12.2013    source источник
comment
Если вы не являетесь экспертом в области криптографии, не пытайтесь реализовать это самостоятельно. Любой возможный (маловероятный) выигрыш в безопасности перевешивается вероятностью чего-то напортачить и создать зияющую дыру.   -  person user2357112 supports Monica    schedule 06.12.2013
comment
Чтобы еще больше усложнить гибкость (если не сделать ее невозможной), используйте режим аутентификации (например, CCM) или соедините CBC с MAC.   -  person SquareRootOfTwentyThree    schedule 08.12.2013
comment
biIGE в OpenSSL делает это.   -  person Maarten Bodewes    schedule 08.12.2013


Ответы (1)


Нет, насколько мне известно, существуют нет режимов в pyCrypto, которые делают это. Такое сильное распространение открытого текста после ошибки в зашифрованном тексте называется распространением ошибок. Распространение ошибок в настоящее время уже не считается таким важным; если вы хотите обеспечить целостность открытого текста, вы добавляете MAC (скажем, HMAC) вместо зашифрованного текста, или вы используете аутентифицированный шифр (который в основном обеспечивает целостность поверх конфиденциальности). К сожалению, я не видел аутентифицированных режимов шифрования в pyCrypto.

person Maarten Bodewes    schedule 02.10.2015