Поиск подземных стуков в поточных шифрах
Sep. 7th, 2014 12:38 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Потратил пару вечеров на развлечение - поиск причины, почему криптоалгоритмы в питоне, php, c, openssl и C# выдают разные результаты: http://ru-root.livejournal.com/2759003.html
В итоге, оказалось что в python, php и либе mcrypt по умолчанию используется размер обратной связи в 8 бит, в C+openssl и C#+bouncycastle - 64 бита, а если запускать openssl из командной строки - он добивает ключ нулями до размера кратного блоку.
У питоновского крипто есть такой параметр, называется segment_size.
В php параметра нет, но то, что в php и mcrypt называется OFB или CFB - это на самом деле 8OFB и 8CFB, а для 64 бита (размер блока шифра) в них есть режимы nofb и ncfb, но для ncfb в питоне НЕТ константы типа MCRYPT_MODE_NCFB, а все остальные есть.
http://stackoverflow.com/questions/4052594/incorrect-key-size-in-php-mcrypt-when-porting-cryptopp-aes-encryption-to-phps-m/4054017#4054017
https://bugs.php.net/bug.php?id=51146
В итоге, оказалось что в python, php и либе mcrypt по умолчанию используется размер обратной связи в 8 бит, в C+openssl и C#+bouncycastle - 64 бита, а если запускать openssl из командной строки - он добивает ключ нулями до размера кратного блоку.
У питоновского крипто есть такой параметр, называется segment_size.
В php параметра нет, но то, что в php и mcrypt называется OFB или CFB - это на самом деле 8OFB и 8CFB, а для 64 бита (размер блока шифра) в них есть режимы nofb и ncfb, но для ncfb в питоне НЕТ константы типа MCRYPT_MODE_NCFB, а все остальные есть.
http://stackoverflow.com/questions/4052594/incorrect-key-size-in-php-mcrypt-when-porting-cryptopp-aes-encryption-to-phps-m/4054017#4054017
https://bugs.php.net/bug.php?id=51146
no subject
Date: 2014-09-07 09:44 am (UTC)no subject
Date: 2014-09-07 09:57 am (UTC)no subject
Date: 2014-09-07 02:51 pm (UTC)А вот внешняя угроза, по идее, должна остаться. Но там защита понадобится больше ментально-энергетическая, чем материальная. Галактическая Конфедерация может ослабить контроль за планетой, и надо будет выстраивать оборону своими силами. Хотя, конечно, слабо понятно, как они будут подключаться к информационным системам и зачем им это надо. Проще уже прямо в тонкие тела залезть и вести атаку оттуда.
no subject
Date: 2014-09-07 06:10 pm (UTC)no subject
Date: 2014-09-07 03:08 pm (UTC)no subject
Date: 2014-09-07 03:46 pm (UTC)no subject
Date: 2014-09-07 06:00 pm (UTC)я бы сказал что из полезных режимов сейчас GCM, CBC, CTR и XTS (по уменьшению кол-ва юзкейсов), а остальное носит только исследовательский характер.
no subject
Date: 2014-09-07 06:11 pm (UTC)А какая разница, какой режим превращения блокового фильтра в поточный?
no subject
Date: 2014-09-07 06:14 pm (UTC)Вообще говоря, от блочного режима зависит больше свойств итогового шифра, чем например от выбора между AES, Blowfish и, я не знаю, XTEA каким-нибудь, а также чем от варьирования ключа от 128 до 512 бит.
no subject
Date: 2014-09-08 12:34 pm (UTC)no subject
Date: 2014-09-08 01:21 pm (UTC)no subject
Date: 2014-09-08 01:41 pm (UTC)По-нормальному если, IV - это и есть начальное заполнение буфера обратной связи и его размер равен размеру блока.