Как стать автором
Обновить

Комментарии 96

Было бы интересно узнать плюсы этого алгоритма. А так не ясно чем он лучше широко известных.
Все плюсы-минусы будут в заключении, а оно только в 5-й статье.
НЛО прилетело и опубликовало эту надпись здесь
Можно отметить, что в России этот шифр единственный, допустимый для защиты информации, содержащей государственную тайну.
НЛО прилетело и опубликовало эту надпись здесь
а какие еще есть?
это гос. тайна :)
какой смысл засекречивать шифры?
Если они используются для защиты гос.тайны, смысл есть, поверьте.
Этот алгоритм много быстрее DES-подобных (при равной криптостойкости) из-за отсутствия неэффективных на обычной архитектуре операций перестановки битов. Кстати, пост здорово напоминает статью из журнала Монитор бородатых годов.
основные достоинства:
-бесперспективность силовой атаки (XSL-атаки в учёт не в счёт, ибо их эффективность на данный момент полностью не доказана);
-эффективность реализации и соответственно высокое быстродействие на современных компьютерах;
-наличие защиты от навязывания ложных данных (выработка имитовставки) и одинаковый цикл шифрования во всех четырех алгоритмах ГОСТа.
А что, другими блочными шифрами имитовставку не вычислить?
Это же совершенно не связанный с обеспечением основной задачи (конфиденциальности) алгоритм.
Обеспечение целостности — тоже основная задача.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
>в сравнении с современным AES'ом ГОСТ медленнее.

голословное утверждение: в ГОСТе на каждом цикле выполняется подстановка, сдвиг, и сложение с ключом по мод 2^32.

В AES — подстановка, циклический сдвиг, умножение на матрицу, поразрядное сложение с ключом по мод 2.

ГОСТ как минимум не медленнее AES.
НЛО прилетело и опубликовало эту надпись здесь
зато в AES для подстановки требуется искать обратный элемент в поле F256 и выполнять умножение на матрицу. А потом еще на матрицу умножать для перемешивания столбцов и строк. Цикл ключей там готовится сложнее чем в ГОСТе. Вообще я сегодня специально спросил у человека, имеющего докторскую в этой области и огромный опыт за плечами. Он мне сказал именно то, что ГОСТ не хуже AES по времени работы. Я честно вообще не понимаю откуда вы берете цифру 200. Давайте считать по максимуму. Вот у нас есть открытый текст, лежащий в памяти и занимающий 8 байтов. Кладем в регистры ключ и последние 4 байта и суммируем их. Это три такта. Далее работаем с однобайтовыми регистрами в каждом из них выделяем по старшей и младшей части и применяем перестановку это 3*8 = 24 итерации. Выполняем сдвиг — еще одна итерация. Далее меняем местами блоки это еще парочка. получилось около 30. Откуда взялось 200??? На аппаратной реализации ГОСТа за один такт шифруется один цикл.
1) давайте всё таки примем, что ни в AES ни в ГОСТ никто не собирается умножать на матрицы или подставлять 4х4 — в случае реализации на современной технике все операции кешируются в подстановки 8х8, а в случае AES есть и еще более быстрый вариант — 8х32, так что считаем, что битовых операций нет ни в том ни в другом

2) скорость реализации циклического сдвига на 11 зависит исключительно от особенностей процессора — на младших 80х86 такой сдвиг занимал тактов пропорционально величине сдвига, сейчас к счастью это не так

3) количество действий, размером в машинное слово, выполняемых в AES — 8 операций в раунде х 14 раундов = 112, у ГОСТ — 7 операций в раунде х 32 раунда = 224, это объективно

4) аппаратная реализация ГОСТ и AES — один раунд на такт, в AES — 14 раундов, в ГОСТ — 32, это тоже объективно

На мой взгляд разность в скорости в 2-2.5 раза совершенно некритично при условии, что со стойкостью у шифра всё в порядке. В «морально устаревшие по скорости» уходят шифры, отстающие от современных в десятки и более раз, да и то не всегда.
интересно, а как это умножение на матрицу можно превратить в подстановку? подстановка, я напомню, выполняется за O(1). Т.е. нам нужно перечислить все варианты перехода 256 бит во что-то, то есть надо будет закэшировать 2^256.

Откуда у AES 8 операций? там при алгоритм Евклида надо применять в поле F256 для нахождения обратного элемента. И еще я не представляю, как это можно за один такт реализовать.
Вы читали авторский документ по Rijndael, который был подан на конкурс AES в 1998 году?
Например, вот здесь — home.arcor.de/arne.schlosser/dls/Rijndael.pdf
На странице 15 третья формула сверху это то, о чем Вы говорите, что это невозможно. Размер кэша, требуемый для реализации формулы — 4 килобайта.

Пожалуй, немного исправлю свои оценки (забыл про индекс у e[j]):
AES — 32 операций в раунде х 14 раундов = 448
ГОСТ — 10 операций в раунде х 32 раунда = 320

Всё равно получаем величины одного порядка. Более детальные модели скорости обработки уже должны будут учитывать кол-во тактов на ту или иную операцию на разных процессорах и скорость доступа к кэшу табличных подстановок.
Так откуда там 4 Кб-то? S(а) — это 4 байта. Соответственно возможных вариантов S(a) — 2^32. Учитывая, что T всего 4 штуки и занимают они по 16 байт это 2^40. то есть где-то гиг памяти.

Ну вот вы оптимизировали операцию премешивания, использовав до фига памяти, но с S-box на AES такая же штука не прокатит — там матрица не 4 на 4 байта а 8 на 8. И к тому же еще обратный элемент надо искать.
Про 4 килобайта написал не я, а авторы Rijndael-а. Вы и им не доверяете в расчетах?
что значит я не доверяю, я просто привык не просто читать какие-то выводы, а понимать как они получаются. В общем я понял свою ошибку — я считал что под S-box подразумевается замена сразу 4 байтов, а оказывается только одного. В любом случае, такая же оптимизация не пройдет для формирования таблицы замен. Там действительно придется перемножать матрицу на вектор и еще вдобавок считать обратное число (вы это прибавили к количеству итераций?). Перемножение циркулярной матрцы с 5 единицами в каждой строке на вектор и сложение результата с вектором это 8 * 5 итераций, не учитывая вычисление мультипликативно обратного числа.
прошу прощения не гиг, а терабайт
НЛО прилетело и опубликовало эту надпись здесь
недостатки:
-нельзя определить криптостойкость алгоритма, не зная заранее таблицы замен;
-реализации алгоритма от различных производителей могут использовать разные таблицы замен и могут быть несовместимы между собой;
-возможность преднамеренного предоставления слабых таблиц замен лицензирующими органами РФ;
-потенциальная возможность (отсутствие запрета в стандарте) использования таблиц замены, в которых узлы не являются перестановками, что может привести к чрезвычайному снижению стойкости шифра.
Масленников в своей книге «Криптография и свобода» отзывался не очень лестно об этой системе шифрования.
хм, какие же были его аргументы?
Переделанный американский DES под старую элементную базу.
Говорить, что этот алгоритм, который пока еще не взломали, это переделанный дырявый DES, это по меньшей мере не разумно. Вот подпись наша действительно переделанная американская, вкратце — плюс на минус заменили
«Мопед не мой»

Книга, кстати, не сколько про криптографию, сколько про советских (и российских) криптографов.
основные отличия от DES: увеличенное количество циклов преобразования (32 против 16), бОльшая длина ключа (256 бит против 56) и более высокая скорость работы (на порядок?)
Никто DES не переделывал. Его взяли за основу и модернизировали с расчетом на будущее.
Нечто похожее говорил и Ruptor (Marcus) — специалист по криптографии из разряда «толковые» (в науке [любой] всегда есть мафия, лупни и толковые. мафия — кто сдерживает движение, но ни хрена не понимает, лупни — кто саппортит мафию и тоже ни хрена не понимает и толковые — кто понимает чуток совсем, но пытается двигаться).

Достаточно наглядно, там рядом будут методики анализа и прочие радости.

Сильно переживал и болел за его EnRUPT, но он не прошел SHA Competition, был скомпрометирован русским товарищем ;)
В Вашей «схеме науки» отсутствуют люди, понимающие предмет «средне» и «хорошо». Нужно улучшать модель…
Схема не моя, просто вспомнилось и то не дословно. Не скажу, что целиком и полностью с ней согласен, но криптография наука молодая и, возможно, сей тезис к ней наиболее применим.

Мне бы не хотелось кого либо обидеть, упаси, но на моей памяти эта схема практически везде успешно существовала и продолжает существовать, к сожалению. Воспринимайте ее чуть более «относительно», возможно и знакомый вам уклад в нее уложится.
ну да, молодая, всего пара-тройка тысяч лет
К оригинальному звучанию на немецком всё-таки ближе «Файштель»
НЛО прилетело и опубликовало эту надпись здесь
Хорошо бы ещё ссылки на источники давать.
На ГОСТ что-ли? Тут без К.О. и не обойдёшься.
За основу взят конспект с лекциями по криптографии. Может быть, лекция бралась с этого ресурса.
В таком случае, честнее будет «откомпилировал лекцию/статью/гост», а не «написал статью».
тут все зависет от того какую таблицу замены выбрать, официально рекомендуемых нет, есть только те что когда то сбербанк использовал) поэтому тут палка на двух концах, шифр хорош, но мир не пытался его взломать, поэтому так такового криптоанализа нет
это откуда у вас такие данные, что мир не пытался его взломать? публикаций по этому поводу достаточно много, не так много как по DES, но DES и более распространен. Факт в том, что это шифр стойкость которого падает очень медленно.
публикации друг у друга копируют все))) если нет то киньте мне 5 разных статей криптоанализа ГОСТА
кидать не буду — вбейте в гугле 28147-89 cryptoanalysis там на первой странице беглым взглядом видно 3, на сверху еще одна. Плюс судя по вики в россии тоже занимались этой проблемой. Еще я уверен были работы например, по линейному криптоанализу.
Есть еще узлы замен в ГОСТ 34.11-1994
Так ведь он использует режим простой замены ГОСТа 28147-89, конечно же есть.
Позвольте добавить схематичное изображение описанного Вами материала в зарубежной нотации. Я очень уважаю отечественных математиков-криптографов, но для понимания графические схемы, используемые за рубежом, всё таки удобнее:



Материал ключа используется в следующей очередности
k[0]… k[31] = { K[0], K[1], ..., K[7], K[0], K[1], ..., K[7], K[0], K[1], ..., K[7], K[7], K[6], ..., K[0] }
т.е., последние 8 раундов ключ подается в обратном порядке,
K (большое) — 32-разрядные элементы исходного 256-битного ключа.

Функция F(k[i]) имеет вид:



Для впервые встречающихся с нотацией: плюс в кружке — это XOR, плюс в квадрате — сложение, три угловые скобки — циклический сдвиг влево, квадрат с буквой S — табличная подстановка (S-Box), косая черта уточняет разрядность потока данных в битах
Отсутствие бэкдоров доказано?
Их наличие/отсутствие зависит исключительно от стойкости узлов замен (S-Box-ов), а они не опубликованы, и более того выдаются для разных случаев разные.

Возьмите в качестве узлов замен S[i]=i и этот шифр будет взламываем на персоналке.

Так что и да и нет…
Против узлов замен для ГОСТ 28147-89, опубликованных в ГОСТ 34.11-94, пока что в мире успешных атак не создано. Это многого стоит.
Я вот к чему. Насколько мне известно, для создания криптосистем в этой стране необходима лицензия. Есть предположение, что необходимым условием получения такой лицензии является создание уязвимостей и открытие из определённым структурам (но не опубликование информации о них). Аналогия — для получения лицензии на услуги связи надо согласовать вопрос с СОРМ. Было бы странным, если бы ГОСТ на шифрование не имел таких бэкдоров.
странное предположение, вот допустим я создал криптосистему, работающую по какому-то алгоритму. по-моему все что мне нужно — это сертифицировать ее на предмет соответствия этому алгоритму, еще каких-то заявленных требований и на отсутствие скрытых возможностей.
Не совсем так. Как я понимаю, система сертификации «добровльно-принудительная». То есть, вы можете просто изобрести шифр и все — ничего больше не делать. (можно ли им пользоваться для себя — отдельный вопрос и регулируется отдельно). Вы даже можете его продавать для использования хоть в соседний ларек, хоть в ФСБ.

Вы можете (если хотите!) получить сертификат на соответствие, на отсутствие бэкдоров, да хоть даже на экологическую безопасность по выхлопам CO2. Это добровольно.

Но вот лицо, принимающее решение о закупке имеет свои должностные и законные требования. Например, для использования вашего алгоритма для охраны гостайны нужны какие-нибудь сертификаты/лицензии (на алгоритмы, конкретные программно-аппаратный продукт и даже на свою компанию) A,B и С, а для использования в банковской сфере — A, D и E. При этом сертификат B например может быть сертификат о соответствии гостовскому алгоритму шифрования, который в случае вашего собственного алгоритма явно не может быть соблюден, так как у вас другой алгоритм. Так что иметь на складе коробки с вашим шифровальным ПО вы можете, и продавать можете, но покупать их у вас и внедрять их уже не могут :-))
Ох, вы с госорганами не работали.

Есть такой указ № 351 document.kremlin.ru/doc.asp?ID=044662

И всё. Кроме систем, сертифицированных ФСТЕКом — ничего нельзя. И рад бы я OpenVPN использовать, но есть только дерьмовипнет, жутко неудобный в использовании, имеющий вопросы с безопасностью, сделанный для распила бабла…
про то и говорю — если вы купите любой VPN, который не подходит под эти требования, продавцу ничего не будет — он имеет право продавать. Будет тому, кто купил и внедрил то, что ему не разрешено использовать.
Программный комплекс LIRVPN – это реализация комплекса OpenVPN с использованием российской криптографии и со встроенным межсетевым экраном.
В случае с ГОСТ-ом Вы как разработчик криптосистемы, если соберетесь пойти по правильному пути, должны будете получить в ФАПСИ/ФСБ узлы замен. А уж от того, какие Вам узлы замен выдадут, может зависеть ответ на Ваш вопрос.
Это в теории.
А на практике — я лично не верю, что соответствующему ведомству есть смысл выдавать узлы замен, заведомо ослабленные по какому-то известному только им принципу.

Явных бэкдоров, аналогичных СОРМ-у, или более близкая аналогия — SkipJack/Clipper-у — в ГОСТе нет. Если уж есть какая-то серьезная необходимость, по-моему проще обязать клиентов депонировать ключи после создания организационными мерами.
Не ФАПСИ, а ФСО, но эта структура таблицы замен не выдает. Ключами занимается ФСБ и ФСТЭК.
Криптография в нашей стране на гос.уровне контролировалась ФАПСИ, функции которого в области шифрования после расформирования были переданы соответствующему Управлению ФСБ, что я и написал выше.

Откуда взялись в Вашем посте ФСО и ФСТЭК мне неясно.
ТЬфу, про ФСТЭК беру слова обратно. Это я затупил.

А про ФАПСИ я сказал, что упразднили эту структуру. Вместо нее сейчас ФСО.
НЛО прилетело и опубликовало эту надпись здесь
я уже упоминал выше, что существуют критерии для проверки подстановки на уязвимости к дифференциальному и линейному криптоанализу. Поэтому данные нам S-boxы мы всегда можем оценить.
НЛО прилетело и опубликовало эту надпись здесь
строим таблицу дифференциалов, вероятности дифференциалов должны быть не больше чем 1/2^(n-2), где n — разрядность подстановки. Для дифференциалов веса 2 1/2^(n-3). Для линейного к/а линейное преобладание должны быть не больше 1/2^(n-2), а линейные суммы веса 2 должны иметь преобладание не больше чем 1/2^(n-3).
Эти критерии создают условия, делающие дифференциальный и линейный к/а хуже перебора.
Читал про trapdoor в S-Box, абсолютно согласен с Вашим мнением про «верю/не верю».

И всё таки, отталкиваюсь от того, что утечка информации о самой возможности генерировать дефектные S-Box-ы для ГОСТ-а стоит в денежном эквиваленте очень и очень дорого. Не вижу смысла именно рисковать такими вещами для какой-то коммерческой организации.

Как говорил мой учитель, даже если Вы знаете как взломать CAST/RC5/BlowFish/Rijndael, это можно будет сделать только один раз, а, значит, тратить знание на какую-то небольшую коммерческую сделку будет жалко, а крупная рыба может не прийти никогда.
НЛО прилетело и опубликовало эту надпись здесь
P.S. Там кстати, по SHA-1 уже нужно информацию обновлять — быстро криптоанализ вперед движется.
есть вроде рекомендации, которые делают почти невозможным линейный и дифференциальный к/а.
Хотелось бы узнать о скорости шифрования по сравнению с другими алгоритмами при аппаратной и программной реализации.
НЛО прилетело и опубликовало эту надпись здесь
вот уж скандалов интриг и расследований нам точно не надо. 16 байт из 37 гигабайт, тем более их сумма это вообще ни что. И ни чего из этих 16 байт восстановлено не будет, я могу вам чисто для примера дать сумму каких-то блоков по 8 байт из каких нибудь двух пакетов — вы из них ничего не вытянете. Никто не мешает менять ключ, тем более 37 гигабайт это все-таки большая выборка. Во-вторых у госта нет CBC если уж на то пошло, вы наверное перепутали с гаммированием и каждый сам может выбирать режим гаммирования, например с обратной связью взять.
НЛО прилетело и опубликовало эту надпись здесь
увы, но статистический к.а. к такой выборке почти неприменим, а следовательно маловероятно вы из него что-то вытянете. Я бы еще посмотрел, как вы будете сортировать 37 гигабайт данных, для поиска одинаковых блоков. И еще раз — вы путаете определения. Те формулы, которые вы описали — это не CBC (режим сцепления блоков), а гаммирование простое. В CBC Сi = E(C(i-1)+Pi,K).
Реализовывал этот алгоритм (в режиме выработки имитовставки) в коде в рамках курса «Методы и средства защиты информации» в этом семестре.

Кстати, вот в этой статье описано всё более чем понятно: www.enlight.ru/crypto/articles/vinokurov/gost_i.htm
Возможно кому-то пригодится.
Проверяли по тестовым векторам из ГОСТ 34.11-94? Сходится?
Не проверял, не знаю.
Это не им часом шифруют данные банки при работе банк-клиентов? InterPRO, например? Может, найдутся на Хабре добрые люди, которые реализуют алгоритм под Linux?
Да он уже сто лет как реализован, и под линукс тоже. Только вот не сертифицирован.

Интересная тема про это на нашем ЛУГе: lug.bryansk.ru/forum/viewtopic.php?f=12&t=1188
Почитал. ФСПУ-IP — дурацкая незащищённая штуковина. Работали, знаем. Ставить аппаратные средства шифрования — крайний вариант. Я имею в виду скорее даже не реализованный на любом ЯП алгоритм шифрования, а его продвижение в банковский сектор.
Опять же, без сертификатов решения использовать никто не разрешит.
Натыкаемся не на технические, а на административно-законодательные ограничения.
Он в девелоперской ванильной OpenSSL есть: openssl.org/news/changelog.html (поищите там по ключу GOST)
скажите, зачем вы это пишите? это изучают на третьем курсе любого вуза.
этих статей полно по инету.
затем, чтобы поведать общественности, которая с этим незнакома (поверьте, изучают это далеко не все). к тому же я предлагаю программную реализацию.
Не нравится — не читайте.
Кстати, спасибо за реализацию, но у меня своя.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории