id: Гость   вход   регистрация
текущее время 14:34 28/03/2024
Владелец: unknown (создано 05/03/2015 14:58), редакция от 05/03/2015 18:29 (автор: SATtva) Печать
Категории: криптография, алгоритмы, симметричное шифрование
https://www.pgpru.com/Новости/2015/СлучайнымНеизвестныйS-блокВAESСлабоУвеличиваетКриптостойкость
создать
просмотр
редакции
ссылки

05.03 // Случайный неизвестный S-блок в AES слабо увеличивает криптостойкость


Как известно, в старом российском стандарте блочного шифрования ГОСТ 28147-89 не были определены узлы замены (S-блоки). Это позволяло делать утверждения о том, что практика засекречивания S-блоков является эффективным способом повышения стойкости шифра. С практической т.з. это приводит к существенному увеличению размера ключа и сложностям с управлением распределения и периодической смены таких S-блоков.


В шифре AES/Rijndael используется один биективный 8-битный S-блок. Его параметры выбраны на основе эффективного алгебраического представления в целях компактности и эффективности аппаратной реализации. При этом, такой выбор параметров оптимизирован для максимального противодействия линейному и дифференциальному криптоанализу. Однако известно, что если 8-битный S-блок выбирать полностью случайно, то при таком размере он уже практически всегда окажется приемлемо стойким, а вероятности слабых и тривиальных перестановок пренебрежимо малы (хотя и не исключены полностью). Задание такого S-блока как дополнительного секретного параметра в ключе приведёт к увеличению секретной части ключа с 128-256 до 1812-1940 битов. Можно ли таким путём повысить стойкость и быстродействие, разменяв повышенный размер ключа на уменьшенное число раундов?


На примере одного из наиболее эффективных методов криптоанализа против байт-ориентированных шифров этот вопрос изучили Tyge Tiessen, Lars R. Knudsen, Stefan Kobl и Martin M. Lauridsen, кафедра прикладной математики и компьютерных наук DTU Compute, технический университет Дании.


Как оказалось, интегральный криптоанализ, что для стандартного AES, что для AES со случайными неизвестными S-блоками работает в обоих случаях до 6 раундов. Хотя разница в затратах на разные виды атак существенно растёт для AES со случайным блоком на каждый последующий раунд, результаты пока не позволяют признать такой метод защиты обоснованно-эффективным.

Cipher Rounds Time Data Memory
AES-128 (secret S-box) 4 217216216
AES-128 4 21429 -
AES-128 (secret S-box) 5 238240240
AES-128 5 238233-
AES-128 (secret S-box) 6 290264269
AES-128 6 244234236

Источник: Cryptology ePrint Archive.


 
— Гость (06/03/2015 10:49)   <#>

Как размер ключа связан с засекречиванием S-блока? Секретный S-блок ≠ рандомный ⇒ S-блок не выводится из ключа — так?


Таблица, которую вы привели, более оптимистичная в этом плане, чем ваше предложение.
— unknown (06/03/2015 11:05, исправлен 06/03/2015 11:10)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Здесь предполагается, что его меняют вместе с ключом и передают как часть ключа. Если передавать случайную перестановку полностью побайтово, то потребовалось бы 256 • 8 = 2048 бит, но у авторов — меньше. Наверное, подразумевается какой-то более компактный способ представления случайных перестановок, но у них в работе не указано.



Он передаётся как его часть, так что он рэндомный.



Сколько раундов AES стойко против интегрального криптоанализа? 6 раундов. А с секретным S-блоком? А столько же. А то, что там экспоненциальные расхождения, так это всё остаётся в рамках ответа на вопрос «быстрее перебора грубой силой или нет». Т.е. такая дикая перестраховка даёт такой скромный результат. Если нужна именно перестраховка, то наверное проще каскад, даже из одного AES, но с разными ключами — хотя бы число раундов искусственно возрастёт. А с т.з. «а возьмём как очень большой ключ, выделим его часть для задания S-блока, но уменьшим число раундов, чтобы выиграть на быстродействии» получается сомнительно и неоптимально.


Т.е. интегральный криптоанализ — самый эталонный против AES, но он не действует дальше 6 раундов, хоть с обычным S-блоком, хоть с секретным.

— Гость (06/03/2015 16:29)   <#>

А с чем нужно сравнивать эти показатели в степени? Сколько в них должно было бы быть, чтобы можно было сказать, что против 6-ти раундов криптоанализ не работает? 2128 вместо 290?
— unknown (06/03/2015 16:38)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Именно так.
— sentaus (06/03/2015 17:26)   профиль/связь   <#>
комментариев: 1060   документов: 16   редакций: 32
Если передавать случайную перестановку полностью побайтово, то потребовалось бы 256 • 8 = 2048 бит, но у авторов — меньше. Наверное, подразумевается какой-то более компактный способ представления случайных перестановок, но у них в работе не указано.


Да похоже просто оценили энтропию случайной перестановки из 256 уникальный элементов как log2(256!) – примерно 1684 бита. В совокупности с независимым от перестановки 128-256-битным ключом это как раз 1812-1940 бит.
— unknown (06/03/2015 23:13)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Точно! А компактно задать перестановку из этих 1684 бит можно через лексикографический алгоритм генерации в факториальной системе счисления.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3