id: Гость   вход   регистрация
текущее время 05:19 19/04/2024
Автор темы: Гость, тема открыта 28/08/2010 18:49 Печать
Категории: криптография, симметричное шифрование, случайные числа
https://www.pgpru.com/Форум/Криптография/ПодскажитеСпособыГенерацииS-boxИзКлюча
создать
просмотр
ссылки

Подскажите способы генерации S-box из ключа


Возьмем, к примеру ГОСТ, там есть таблица замен, состоящая из восьми узлов замен. Подстановка 4-в-4. Итого 512 бит.


Вопрос: какие есть возможности задания подстановки по ключу? Ну что-то вроде скрещения blowfish и DES.


[think] Кажется, такие разработки уже были с DES. Но там задавалась перестановка S-блоков.[/think]


[think] Слышал, что секретная таблица замен эквивалентна ключу в триста с чем-то бит. Вроде было в работе по взлому S-блоков ГОСТ с заданным ключом. [/think]


Слышал, что были предложения относительно построения S-блоков DES, когда рассуждали о черном ходе АНБ. Наверное, аналогичные рассуждения (и методики если есть) можно отнести и к ГОСТ, а потом и на другие S-блоки для современных блочных шифров.


 
На страницу: 1, 2, 3 След.
Комментарии
— Гость (28/08/2010 22:36)   <#>
Тема весьма и весьма нетривиальная. Бесплатных хороших паперов с теорией я не смог найти.
— хс7 (28/08/2010 23:57)   <#>
Вопрос, который оброс более выдумками, чем теорией.

В ДЕС S-боксы были созданы для устойчивости диф.анализу. По определенным правилам.
И они были статичны, так как в то время микросхемы не позволили создать их динамическими.

В наше же время динамические блоки весьмя и весма перспективны.

(Хотите верте, хотите нет. Дело ваше.)
— unknown (29/08/2010 00:09, исправлен 29/08/2010 00:12)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Подскажите способы генерации S-box

Тема переименована в
Подскажите способы генерации S-box из ключа


В наше же время динамические блоки весьмя и весма перспективны.

А вот не верим и считаем тему как раз неактуальной последние лет 10-15. Такие шифры сыграли свою историческую роль (Blowfish, Twofish) и больше не нужны. При разработке новых шифров этот метод следует исключить из проектирования как теоретически необоснованный.

— unknown (29/08/2010 01:00, исправлен 29/08/2010 01:14)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Что такое блочный шифр вообще? Некая функция f = Y = (k, X), где k — ключ, X — открытый текст, Y — шифртекст. Вообще, кратко такие элементарные понятия рассмотрены в разделе Криптография: общие вопросы, но рассмотрим подробнее в контексте.


Модель идеального блочного шифра (ICM) — это частный случай модели случайного оракула (ROM). Пусть все возможные варианты (k, X, Y) для некоего идеального шифра заполнены в виде трёхмерного массива; k и X заполнены по счётчику от "все биты нули" {00 ... 0} до все биты единицы {11 ...1}, а Y подобраны с помощью идеального генератора случайных чисел, так, чтобы для каждого k все возможные пары X и Y создавали псевдослучайную перестановку всех возможных вариантов открытого текста в шифртексты, неотличимую от идеально случайной. Иначе говоря, Y это биективное отображение множества X в некотором случайном порядке.


Возьмём реальный шифр C. Если можно найти отличие между ним и идеальным шифром f быстрее, чем за 2k или в ряде случаев за 2b, где b — размер блока X и Y, то C — нестойкий. И, грубо говоря, наплевать какое отличие вы найдёте и как. При этом, можете также в вежливой форме наплевать на негодование криптографов старой школы (включая известных израильских), которые не считают такие различители за атаки. Конкурс SHA-3 (хотя там про хэши, а не шифры) показывает (IMHO), что они неправы.


А теперь представьте, что вы разрабатываете не любительский шифр, а современный, с большой теоретической выкладкой. И вам нужно будем всеми способами продемонстрировать, что найти различитель между вашим C и f невозможно. Чем сильнее будет доказательство, тем лучше шифр будет противостоять любым атакам. Можете абстрагироваться от атак на поиск ключа, на раскрытие открытого текста и т.д. Нет их. Забудьте временно эти частные случаи. Используйте самую сильную модель стойкости (ICM).


Как взломали AES в связи с конкурсом SHA-3 из-за применения его в хэшах? Пусть пока и без серьёзных практических последствий для самого AES. Сначала нашли различитель в модели открытого ключа, затем вывели атаку на связанных ключах. А это уже что-то. Т.е. противник знает и шифртекст и открытый текст и может их подбирать как вздумается и он знает ключ, а не ищет его, как было принято в старой криптографической школе.
Значит он знает все выведенные S-блоки, подключи на каждом раунде и вообще всё внутреннее состояние шифра. Если даже при всём при этом он не сможет найти различитель, значит это стойкий шифр.


А выводимые из ключа S-блоки сразу смотрятся слабой уловкой в модели криптоанализа с открытым ключом. Они не дают почти никаких преимуществ в доказательстве стойкости.

— Гость (29/08/2010 13:44)   <#>
Если генерируемые узлы замен плохи для хеш функций, это не значит что они плохи и для блочных шифров.

[think] рассмотрение блочного шифра как криптопримитив подходящий для всех и вся, сравнивание его со случайным оракулом это как... сферический шифр в вакууме о_0. Это не троллинг если что. [/think]

К примеру, доказать для ГОСТ что практически любой псевдослучайный вектор размеро 512 бит это хорошая подстановка. Потом его генерировать при помощи ГПСЧ. Или шифровать на этом ключе константу при дефолтной таблице замен. Шанс выбрать линейную таблицу замен стремиться к нулю.
— unknown (29/08/2010 15:30)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Я понимаю о чём вы. Не все даже ведущие криптографы также как и вы соглашаются с такой позицией.
Считают, что нельзя идеализировать криптопримитив до такой степени.

Но на самом деле, кто знает как будет применяться шифр? Может он действительно будет использоваться как функция сжатия в хэше. Может он будет использоваться для генерации MAC. Может его будут использовать для какого-нибудь экзотического режима дискового шифрования. Или в режиме AoN-transform — преобразование "всё-или-ничего", антикодирования, где шифрования вообще не производится как такого.

И никто не знает, как неидеальность может быть использована для развития более сильных атак.

Если генерируемые узлы замен плохи для хеш функций, это не значит что они плохи и для блочных шифров.

Многие доказательства на конкурсе SHA-3 звучат примерно так: "если используемый в функции сжатия шифр является идеальным блочным шифром, то сконструированная хэш-функция является неразличимой от случайного оракула". И наоборот, для AES таким образом "случайно" доказали неидеальность и сняли все производные от него хэши с конкурса. Не верите в Ideal Cipher Model, ваше дело. Только скорее всего, если когда-нибудь будет новый конкурс вместо AES, то будут рассматривать кандидатов в рамках этой модели, независимо от хэшей.

К примеру, доказать для ГОСТ что практически любой псевдослучайный вектор размеро 512 бит это хорошая подстановка.

Может ему для начала ключевое расписание подправить? И в итоге вообще отказаться от ГОСТ, потому что все преимущества в его простоте потеряются.

Шанс выбрать линейную таблицу замен стремиться к нулю.

Такое известно для больших S-блоков (8x8) и использовалось в дизайне Twofish и Anubis. Кстати, в этих шифрах большие S-блоки для компактности "разворачиваются" из маленьких, что в обоих случаях давало подозрения в неидеальности результата, но до атак не дошли.
В Blowfish блоки 8x32 могут быть слабыми, но практически тоже шанс стремится к нулю.

В ГОСТ блоки маленькие, там фокус со случайной подстановкой не пройдёт. По крайней мере простого решения не видно.

IMHO, лучше при проектировании новых шифров доказать стойкость против всех атак, исходя из невозможности найти различитель в ICM и в модели открытого ключа, что легче сделать для простой структуры шифра, чем думать как сложная функция с изменением S-блоков повлияет на его свойства, пусть даже и отсекая на первый взгляд кучу практических атак.

Кстати, циклический сдвиг, зависящий от шифруемых данных (RC5, RC6) — из той же оперы и некоторые криптографы считают, что эти шифры себя не оправдали. Против атак с известным/подобранным открытым текстом такой трюк помогает не просто слабо, а даёт сравнительно более плохие результаты.

[think] рассмотрение блочного шифра как криптопримитив подходящий для всех и вся, сравнивание его со случайным оракулом это как... сферический шифр в вакууме о_0. Это не троллинг если что. [/think]


Есть консервативная израильская школа (Шамир там и др.), где как раз примерно так и считают, у них там была забавная работа, что нужно проектировать криптопримитивы и протоколы не исходя из идеализаций, а оценивать атаки в деньгах. Память, время, доступные тексты переводить в деньги и считать, во сколько 2n "мегагигатераэксапетабаксов" обойдётся взлом. И защищаться в первую очередь против дешёвых атак. По крайней мере оценивать важность теоретических работ в таком виртуально-денежном эквиваленте.
— Гость (29/08/2010 15:44)   <#>
Мне больше всего нравятся системы криптографической мысли, включающие в себя замену, перестановку и гамму (нелинейную замену). Логично и просто выглядит математика.
— unknown (29/08/2010 17:12, исправлен 29/08/2010 17:22)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Обычная SP-сеть (Substitution Permutation) — просто замены и перестановки:


  1. Разбили блок на размеры S-блоков или их алгебраических аналогов (обратимых подстановок — перестановок).
  2. Сложили с ключом раунда линейной операцией (XOR, ADD).
  3. Заменили каждый кусок через S-блок (его нелинейный аналог).
  4. Линейно равномерно перемешали весь большой блок (сдвиги, умножения на полиномы и др.).

и гамму (нелинейную замену)

Только п.3 — нелинейная операция, а что значит слово "гамма" при описании внутренней структуры блочного шифра?


При S-блоке, зависящем от ключа, всё как раз выглядит непросто. Простая схема должна хорошо работать и при статичном S-блоке.

— Гость (29/08/2010 17:32)   <#>
Думаю что вводить меру взлома в стоимости нелогично. Цены меняются. Существующие оценки в трудоемкости получше будут.
— unknown (29/08/2010 18:22, исправлен 29/08/2010 18:24)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Там учтено, включая закон Мура и тенденции изменения цен на железо (память, процы). Плюс при 128-битных величинах ошибка в несколько сотен раз некритична. И конечно, это впервую очередь для голосования по поводу того, чья работа лучше. Например, одни могут взломать за 220 операций, но за 2100 памяти, другие за 2100 операций, но за 220 памяти. Просто такие работы отражают тенденцию некоторых криптографов к практичности против чрезмерных теоретических идеализаций.

— Гость (29/08/2010 21:09)   <#>

Видимо не зря rsa.com отменил премии за нахождение сомножителей:
RSA Laboratories
Просто такие работы отражают тенденцию некоторых криптографов к практичности против чрезмерных теоретических идеализаций

В подобном контексте звучит немного двусмысленно :)
— Гость (30/08/2010 00:46)   <#>
что значит слово "гамма" при описании внутренней структуры блочного шифра?

Это от обозначения этапа преобразования греческой буквой.
— Гость (03/09/2010 20:19)   <#>
Не хочется открывать новую тему, чтобы сказать мысль.

Такое чувство, будто бы все блочные шифры созданы как "безопасность на запутывании". Подмешайте S-блоки, умножьте на таблицу, сложите с ключом. В построении блочных шифров какие-то туманные рекомендации и методы. Криптография снова стала как искусство.
— SATtva (03/09/2010 20:23)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Слишком толсто.
— Гость (03/09/2010 20:34)   <#>
Не хочется открывать новую тему, чтобы сказать мысль.
Мысль старая и уже многократно озвучивалась, см., например, от /comment18999 и ниже по треду (особенно, unknown'а). Также, man Коблитц.
На страницу: 1, 2, 3 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3