Домой / Социальные сети / Хэш шифрование гост 3411 на c

Хэш шифрование гост 3411 на c

Размер хеша - 256 или 512 бит; размер блока входных данных - 512 бит.

Стандарт определяет алгоритм и процедуру вычисления хеш-функции для последовательности символов. Этот стандарт разработан и введён в качестве замены устаревшему стандарту ГОСТ Р 34.11-94 :

Необходимость разработки <…> вызвана потребностью в создании хеш-функции, соответствующей современным требованиям к криптографической стойкости и требованиям стандарта ГОСТ Р 34.10-2012 на электронную цифровую подпись .

Текст стандарта. Введение.

Концепции построения хеш-функции «Стрибог»

В соответствии с требованиями высказанными на конференции РусКрипто-2010, в работе, посвящённой новой хеш-функции :

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

В той же работе вводятся «универсальные» требования, касающиеся трудоемкости атак на хеш-функцию:

Сравнение ГОСТ Р 34.11-2012 и ГОСТ Р 34.11-94

  • В ГОСТ Р 34.11-2012 размер блоков сообщения и внутреннего состояния хеш-функции составляет 512 бит против 256 бит в ГОСТ Р 34.11-94.
  • Новый стандарт определяет две функции хеширования с длинами хеш-кода 256 и 512 бит, в то время как в старом стандарте длина хеш-кода может быть только 256 бит. Возможность вариации выходного хеша может быть полезна в случае встроенных реализаций с ограниченными ресурсами или наличия каких-то дополнительных требований в области криптографии.
  • Основное отличие современной хеш-функции от старой - функция сжатия. В ГОСТ Р 34.11-2012 используется функции сжатия, в основе которой лежат три преобразования: нелинейное биективное преобразование (обозначается S), перестановка байт (обозначается P), линейное преобразование (обозначается L). В ГОСТ Р 34.11-94 используется функция сжатия, основанная на симметричном блочном шифре ГОСТ Р 28147-89, также эта функция использует операции перемешивания.
  • При вычислении новой хеш-функции, если размер сообщения не кратен размеру обрабатываемого блока (для современного стандарта - 512 бит, для старого стандарта - 256 бит), то такой блок дополняется вектором (00 … 01). При вычислении старой хеш-функции неполный блок дополняется значением (00 … 0). Считается [кем? ] , что дополнение (00 … 01) лучше, чем (00 … 0), с криптографической точки зрения.
  • Еще одно отличие состоит в том, что стандарт ГОСТ Р 34.11-94 не определял значение инициализационного вектора, в то время как в стандарте ГОСТ Р 34.11-2012 значение инициализационного вектора фиксировано и определено в стандарте: для хеш-функции с размером выходного хеша 512 бит это вектор (00 … 0), для хеш-функции с размером выходного хеш-кода 256 бит - (000000010 … 100000001) (все байты равны 1).

Функция сжатия

В хеш-функции важным элементом является функция сжатия. В ГОСТ Р 34.11-2012 функция сжатия основана на конструкции Миагучи-Пренеля (Miyaguchi-Preneel). Ниже приведена схема конструкции Миагучи-Пренеля : h, m - вектора поступающие на вход функции сжатия; g(h, m) - результат функции сжатия; E - блочный шифр с длиной блока и ключа 512 бит. В качестве блочного шифра в хеш-функции ГОСТ Р 34.11-2012 взят XSPL-шифр. Этот шифр состоит из следующих преобразований:

  • сложение по модулю 2;
  • преобразование замены или подстановки. Обозначается S-преобразование;
  • преобразование перестановки. Обозначается P-преобразование;
  • линейное преобразование. Обозначается L-преобразование.

Преобразования используемые в новой хеш-функции должны быть хорошо изучены. Поэтому в блочном шифре E используются преобразования X, S, P, L, которые хорошо изучены.

Важным параметром блочного шифра является то, как выбирается ключ, который будет использовать на каждом раунде. В блочном шифре, используемом в ГОСТ Р 34.11-2012, ключи K_{1}, K_{2}, … , K_{13} для каждого из 13 раундов генерируются с помощью самой функции шифрования.

C_{1}, C_{2}, … , C_{12} - итерационные константы, которые являются 512 битовыми векторам. Их значения указаны в соответствующем разделе стандарта.

Описание

В основу хеш-функции положена итерационная конструкция Меркла-Дамгарда с использованием MD-усиления. Под MD-усилением понимается дополнение неполного блока при вычислении хеш-функции до полного путём добавления вектора (0 … 01) такой длины, чтобы получился полный блок. Из дополнительных элементов нужно отметить следующие:

  • завершающее преобразование, которое заключается в том, что функция сжатия применяется к контрольной сумме всех блоков сообщения по модулю 2 512 ;
  • при вычислении хеш-кода на каждой итерации применяются разные функции сжатия. Можно сказать, что функция сжатия зависит от номера итерации.

Описанные выше решения позволяют противостоять многим известным атакам.

Кратко описание хеш-функции ГОСТ Р 34.11-2012 можно представить следующим образом. На вход хеш-функции подается сообщение произвольного размера. Далее сообщение разбивается на блоки по 512 бит, если размер сообщения не кратен 512, то оно дополняется необходимым количеством бит. Потом итерационно используется функции сжатия, в результате действия которой обновляется внутреннее состояние хеш-функции. Также вычисляется контрольная сумма блоков и число обработанных бит. Когда обработаны все блоки исходного сообщения, производятся еще два вычисления, которые завершают вычисление хеш-функции:

  • обработка функцией сжатия блока с общей длиной сообщения.
  • обработка функцией сжатия блока с контрольной суммой.

В работе Александра Казимирова и Валентины Казимировой приведена графическая иллюстрация вычисления хеш-функции.

Анализ

Криптостойкость

Криптоанализ старого стандарта выявил некоторые его слабые стороны с теоретической точки зрения. Так в одной из работ , посвящённых криптоанализу ГОСТ Р 34.11-94, было выявлено, что сложность алгоритма построения прообраза оценивается в 2 192 вычислений функций сжатия, коллизии 2 105 , что меньше «универсальных» оценок, которые для ГОСТ Р 34.11-94 равны 2 256 и 2 128 . Хотя по состоянию на 2013 год нет большого числа работ, посвящённых криптостойкости новой хеш-функции, исходя из конструкции новой хеш-функции, можно сделать некоторые выводы о её криптостойкости и предположить, что её криптостойкость будет выше, чем у ГОСТ Р 34.11-94:

  • в разделе «Описание» из схемы видно, что все блоки сообщения суммируются по модулю 2 512 и уже результат суммирования всех блоков подается на вход завершающего этапа (stage3). Благодаря тому, что здесь суммирование - это не побитовое сложение, получается защита от следующих атак:
  • построение мультиколлизий;
  • удлинение прообраза;
  • дифференциальный криптоанализ;
  • в функции сжатия используется конструкция Миагучи-Пренели, это обеспечивает защиту от атаки, основанную на фиксированных точках, так как для конструкции Миагучи-Пренели не найдено способов (легких) для поиска фиксированных точек;
  • на каждой итерации при вычислении хеш-кода используются различные константы. Это затрудняет атаки на основе связанных и разностных связанных ключей, атаки скольжения и отражения.

В 2013 году на сайте «Cryptology ePrint Archive: Listing for 2013» было опубликовано две статьи, посвящённых криптоанализу новой хеш-функции. В статье «Rebound attack on Stribog» исследуется устойчивость хеш-функции по отношению к атаке, называемой «The Rebound attack»; в основе этой атаки лежит «rotation cryptanalysis» и дифференциальный криптоанализ . Криптоаналитики при поиске уязвимостей использовали метод, называемый «free-start». Это означает, что при вычислении хеш-кода фиксируется некоторое состояние хеш-функции и дальше вычисления могут идти как в сторону вычисления хеш-кода, так и в сторону вычисления сообщения. Криптоаналитики сумели добиться коллизии за 5 раундов и была получена так называемая «near collision» (это означает, что были найдены два сообщения, хеш-коды которых отличны в малом количестве бит) при использовании 7,75 раундов. Также было установлено, что схема, по которой выбираются ключи для каждого раунда, добавляет устойчивости функции сжатия. Однако было показано, что коллизия возможна за 7,75 раундов, а «near collision» - за 8,75 и 9,75, соответственно.

В статье «Integral Distinguishers for Reduced-round Stribog» рассматривается стойкость хеш-функции (с уменьшенным количеством раундов) по отношению к интегральному криптоанализу . Авторами при исследовании функции сжатия удалось найти дифференциал за 4 раунда при вычислении в прямом направлении и за 3,5 раунда при вычислении в обратном направлении. Также было выяснено, что атака нахождения дифференциала на хеш-функцию с числом раундов 6 и 7 требует 2 64 и 2 120 среднераундовых значений, соответственно.

Для изучения криптостойкости новой хеш-функции компания «ИнфоТеКС» в ноябре 2013 года объявила о старте конкурса ; он завершился в мае 2015 года . Победителем стала работа «The Usage of Counter Revisited: Second-Preimage Attack on New Russian Standardized Hash Function», в которой авторы представили атаку нахождения второго прообраза для хеш-функции «Стрибог-512», требующую 2 266 вызовов функции сжатия для сообщений длиннее 2 259 блоков .

Быстродействие

На сайте, посвящённом VI Международной конференции «Параллельные вычисления и задачи управления» (PACO’2012) представлена статья П. А. Лебедева «Сравнение старого и нового стандартов РФ на криптографическую хэш-функцию на ЦП и графических процессорах NVIDIA», в которой проводится сравнение быстродействия семейства криптографических хеш-функций ГОСТ Р 34.11-94 и ГОСТ Р 34.11-2012 на процессорах архитектуры x86_64 и видеокартах NVIDIA с поддержкой технологии CUDA .

Для сравнения быстродействия на процессоре архитектуры x86_64 были взяты 4 разных реализации хеш-функций:

Использовался процессор Intel Core i7-920 CPU, разогнанный до 2,67 ГГц. Результаты производительности:

Сравнение быстродействия старого и нового стандартов хеш-функций на GPU проводилось между реализациями П. А. Лебедева. Использовалась видеокарта NVIDIA GTX 580. Результаты производительности (8192 потока данных по 16 КБ):

ГОСТ Р 34.11-1994 ГОСТ Р 34.11-2012
МБ/с Тактов/байт МБ/с Тактов/байт
1697 - 608 -

На основании этих результатов сделан вывод, что хеш-функция ГОСТ Р 34.11-2012 может быть в два раза быстрее хеш-функции ГОСТ Р 34.11-94 на современных процессорах, но медленнее на графических картах и системах с ограниченными ресурсами.

Такие результаты производительности можно объяснить тем, что при вычислении новой хеш-функции используются только сложения по модулю 2 и инструкции пересылки данных. Старая хеш-функции содержит много инструкций перемешивания, которые не лучшим образом отображаются на набор команд ЦП. Но увеличенный размер состояний и таблиц подстановки хеш-функции ГОСТ Р 34.11-2012 делает её медленней на высокопараллельных вычислительных средствах, таких как графические процессоры.

Также исследование производительности новой хеш-функции было проведено её разработчиками на 64-битном процессоре Intel Xeon E5335 2 ГГц. Использовалось одно ядро. Производительность хеш-функции ГОСТ Р 34.11-2012 составила 51 такт процессора на 1 байт хешируемых данных (примерно 40 MБ/с). Полученный результат на 20 % лучше, чем у старой хеш-функции ГОСТ Р 34.11-94.

  • В конце текста стандарта приведены примеры пошагового вычисления хеша для нескольких исходных значений. Одно из таких значений - шестнадцатеричное число M 2 длины 576 байт из примера 2. На ЭВМ архитектуры x86 используется метод Little endian , и подобное число в памяти будет представлено в «перевёрнутом» виде. Если преобразовать этот массив байт в текст по правилам кодировки Windows-1251 , то получится: «Се ветри, Стрибожи внуци, веютъ с моря стрелами на храбрыя плъкы Игоревы», что является немного изменённой строчкой из Слова о полку Игореве .

Напишите отзыв о статье "ГОСТ Р 34.11-2012"

Примечания

Ссылки

  • , 2013

Отрывок, характеризующий ГОСТ Р 34.11-2012

– Votre nom? [Ваше имя?] – повторил Даву.
– Besouhof. [Безухов.]
– Qu"est ce qui me prouvera que vous ne mentez pas? [Кто мне докажет, что вы не лжете?]
– Monseigneur! [Ваше высочество!] – вскрикнул Пьер не обиженным, но умоляющим голосом.
Даву поднял глаза и пристально посмотрел на Пьера. Несколько секунд они смотрели друг на друга, и этот взгляд спас Пьера. В этом взгляде, помимо всех условий войны и суда, между этими двумя людьми установились человеческие отношения. Оба они в эту одну минуту смутно перечувствовали бесчисленное количество вещей и поняли, что они оба дети человечества, что они братья.
В первом взгляде для Даву, приподнявшего только голову от своего списка, где людские дела и жизнь назывались нумерами, Пьер был только обстоятельство; и, не взяв на совесть дурного поступка, Даву застрелил бы его; но теперь уже он видел в нем человека. Он задумался на мгновение.
– Comment me prouverez vous la verite de ce que vous me dites? [Чем вы докажете мне справедливость ваших слов?] – сказал Даву холодно.
Пьер вспомнил Рамбаля и назвал его полк, и фамилию, и улицу, на которой был дом.
– Vous n"etes pas ce que vous dites, [Вы не то, что вы говорите.] – опять сказал Даву.
Пьер дрожащим, прерывающимся голосом стал приводить доказательства справедливости своего показания.
Но в это время вошел адъютант и что то доложил Даву.
Даву вдруг просиял при известии, сообщенном адъютантом, и стал застегиваться. Он, видимо, совсем забыл о Пьере.
Когда адъютант напомнил ему о пленном, он, нахмурившись, кивнул в сторону Пьера и сказал, чтобы его вели. Но куда должны были его вести – Пьер не знал: назад в балаган или на приготовленное место казни, которое, проходя по Девичьему полю, ему показывали товарищи.
Он обернул голову и видел, что адъютант переспрашивал что то.
– Oui, sans doute! [Да, разумеется!] – сказал Даву, но что «да», Пьер не знал.
Пьер не помнил, как, долго ли он шел и куда. Он, в состоянии совершенного бессмыслия и отупления, ничего не видя вокруг себя, передвигал ногами вместе с другими до тех пор, пока все остановились, и он остановился. Одна мысль за все это время была в голове Пьера. Это была мысль о том: кто, кто же, наконец, приговорил его к казни. Это были не те люди, которые допрашивали его в комиссии: из них ни один не хотел и, очевидно, не мог этого сделать. Это был не Даву, который так человечески посмотрел на него. Еще бы одна минута, и Даву понял бы, что они делают дурно, но этой минуте помешал адъютант, который вошел. И адъютант этот, очевидно, не хотел ничего худого, но он мог бы не войти. Кто же это, наконец, казнил, убивал, лишал жизни его – Пьера со всеми его воспоминаниями, стремлениями, надеждами, мыслями? Кто делал это? И Пьер чувствовал, что это был никто.
Это был порядок, склад обстоятельств.
Порядок какой то убивал его – Пьера, лишал его жизни, всего, уничтожал его.

От дома князя Щербатова пленных повели прямо вниз по Девичьему полю, левее Девичьего монастыря и подвели к огороду, на котором стоял столб. За столбом была вырыта большая яма с свежевыкопанной землей, и около ямы и столба полукругом стояла большая толпа народа. Толпа состояла из малого числа русских и большого числа наполеоновских войск вне строя: немцев, итальянцев и французов в разнородных мундирах. Справа и слева столба стояли фронты французских войск в синих мундирах с красными эполетами, в штиблетах и киверах.
Преступников расставили по известному порядку, который был в списке (Пьер стоял шестым), и подвели к столбу. Несколько барабанов вдруг ударили с двух сторон, и Пьер почувствовал, что с этим звуком как будто оторвалась часть его души. Он потерял способность думать и соображать. Он только мог видеть и слышать. И только одно желание было у него – желание, чтобы поскорее сделалось что то страшное, что должно было быть сделано. Пьер оглядывался на своих товарищей и рассматривал их.
Два человека с края были бритые острожные. Один высокий, худой; другой черный, мохнатый, мускулистый, с приплюснутым носом. Третий был дворовый, лет сорока пяти, с седеющими волосами и полным, хорошо откормленным телом. Четвертый был мужик, очень красивый, с окладистой русой бородой и черными глазами. Пятый был фабричный, желтый, худой малый, лет восемнадцати, в халате.
Пьер слышал, что французы совещались, как стрелять – по одному или по два? «По два», – холодно спокойно отвечал старший офицер. Сделалось передвижение в рядах солдат, и заметно было, что все торопились, – и торопились не так, как торопятся, чтобы сделать понятное для всех дело, но так, как торопятся, чтобы окончить необходимое, но неприятное и непостижимое дело.
Чиновник француз в шарфе подошел к правой стороне шеренги преступников в прочел по русски и по французски приговор.
Потом две пары французов подошли к преступникам и взяли, по указанию офицера, двух острожных, стоявших с края. Острожные, подойдя к столбу, остановились и, пока принесли мешки, молча смотрели вокруг себя, как смотрит подбитый зверь на подходящего охотника. Один все крестился, другой чесал спину и делал губами движение, подобное улыбке. Солдаты, торопясь руками, стали завязывать им глаза, надевать мешки и привязывать к столбу.
Двенадцать человек стрелков с ружьями мерным, твердым шагом вышли из за рядов и остановились в восьми шагах от столба. Пьер отвернулся, чтобы не видать того, что будет. Вдруг послышался треск и грохот, показавшиеся Пьеру громче самых страшных ударов грома, и он оглянулся. Был дым, и французы с бледными лицами и дрожащими руками что то делали у ямы. Повели других двух. Так же, такими же глазами и эти двое смотрели на всех, тщетно, одними глазами, молча, прося защиты и, видимо, не понимая и не веря тому, что будет. Они не могли верить, потому что они одни знали, что такое была для них их жизнь, и потому не понимали и не верили, чтобы можно было отнять ее.
Пьер хотел не смотреть и опять отвернулся; но опять как будто ужасный взрыв поразил его слух, и вместе с этими звуками он увидал дым, чью то кровь и бледные испуганные лица французов, опять что то делавших у столба, дрожащими руками толкая друг друга. Пьер, тяжело дыша, оглядывался вокруг себя, как будто спрашивая: что это такое? Тот же вопрос был и во всех взглядах, которые встречались со взглядом Пьера.
На всех лицах русских, на лицах французских солдат, офицеров, всех без исключения, он читал такой же испуг, ужас и борьбу, какие были в его сердце. «Да кто жо это делает наконец? Они все страдают так же, как и я. Кто же? Кто же?» – на секунду блеснуло в душе Пьера.
– Tirailleurs du 86 me, en avant! [Стрелки 86 го, вперед!] – прокричал кто то. Повели пятого, стоявшего рядом с Пьером, – одного. Пьер не понял того, что он спасен, что он и все остальные были приведены сюда только для присутствия при казни. Он со все возраставшим ужасом, не ощущая ни радости, ни успокоения, смотрел на то, что делалось. Пятый был фабричный в халате. Только что до него дотронулись, как он в ужасе отпрыгнул и схватился за Пьера (Пьер вздрогнул и оторвался от него). Фабричный не мог идти. Его тащили под мышки, и он что то кричал. Когда его подвели к столбу, он вдруг замолк. Он как будто вдруг что то понял. То ли он понял, что напрасно кричать, или то, что невозможно, чтобы его убили люди, но он стал у столба, ожидая повязки вместе с другими и, как подстреленный зверь, оглядываясь вокруг себя блестящими глазами.
Пьер уже не мог взять на себя отвернуться и закрыть глаза. Любопытство и волнение его и всей толпы при этом пятом убийстве дошло до высшей степени. Так же как и другие, этот пятый казался спокоен: он запахивал халат и почесывал одной босой ногой о другую.
Когда ему стали завязывать глаза, он поправил сам узел на затылке, который резал ему; потом, когда прислонили его к окровавленному столбу, он завалился назад, и, так как ему в этом положении было неловко, он поправился и, ровно поставив ноги, покойно прислонился. Пьер не сводил с него глаз, не упуская ни малейшего движения.
Должно быть, послышалась команда, должно быть, после команды раздались выстрелы восьми ружей. Но Пьер, сколько он ни старался вспомнить потом, не слыхал ни малейшего звука от выстрелов. Он видел только, как почему то вдруг опустился на веревках фабричный, как показалась кровь в двух местах и как самые веревки, от тяжести повисшего тела, распустились и фабричный, неестественно опустив голову и подвернув ногу, сел. Пьер подбежал к столбу. Никто не удерживал его. Вокруг фабричного что то делали испуганные, бледные люди. У одного старого усатого француза тряслась нижняя челюсть, когда он отвязывал веревки. Тело спустилось. Солдаты неловко и торопливо потащили его за столб и стали сталкивать в яму.
Все, очевидно, несомненно знали, что они были преступники, которым надо было скорее скрыть следы своего преступления.
Пьер заглянул в яму и увидел, что фабричный лежал там коленами кверху, близко к голове, одно плечо выше другого. И это плечо судорожно, равномерно опускалось и поднималось. Но уже лопатины земли сыпались на все тело. Один из солдат сердито, злобно и болезненно крикнул на Пьера, чтобы он вернулся. Но Пьер не понял его и стоял у столба, и никто не отгонял его.
Когда уже яма была вся засыпана, послышалась команда. Пьера отвели на его место, и французские войска, стоявшие фронтами по обеим сторонам столба, сделали полуоборот и стали проходить мерным шагом мимо столба. Двадцать четыре человека стрелков с разряженными ружьями, стоявшие в середине круга, примыкали бегом к своим местам, в то время как роты проходили мимо них.
Пьер смотрел теперь бессмысленными глазами на этих стрелков, которые попарно выбегали из круга. Все, кроме одного, присоединились к ротам. Молодой солдат с мертво бледным лицом, в кивере, свалившемся назад, спустив ружье, все еще стоял против ямы на том месте, с которого он стрелял. Он, как пьяный, шатался, делая то вперед, то назад несколько шагов, чтобы поддержать свое падающее тело. Старый солдат, унтер офицер, выбежал из рядов и, схватив за плечо молодого солдата, втащил его в роту. Толпа русских и французов стала расходиться. Все шли молча, с опущенными головами.
– Ca leur apprendra a incendier, [Это их научит поджигать.] – сказал кто то из французов. Пьер оглянулся на говорившего и увидал, что это был солдат, который хотел утешиться чем нибудь в том, что было сделано, но не мог. Не договорив начатого, он махнул рукою и пошел прочь.

После казни Пьера отделили от других подсудимых и оставили одного в небольшой, разоренной и загаженной церкви.
Перед вечером караульный унтер офицер с двумя солдатами вошел в церковь и объявил Пьеру, что он прощен и поступает теперь в бараки военнопленных. Не понимая того, что ему говорили, Пьер встал и пошел с солдатами. Его привели к построенным вверху поля из обгорелых досок, бревен и тесу балаганам и ввели в один из них. В темноте человек двадцать различных людей окружили Пьера. Пьер смотрел на них, не понимая, кто такие эти люди, зачем они и чего хотят от него. Он слышал слова, которые ему говорили, но не делал из них никакого вывода и приложения: не понимал их значения. Он сам отвечал на то, что у него спрашивали, но не соображал того, кто слушает его и как поймут его ответы. Он смотрел на лица и фигуры, и все они казались ему одинаково бессмысленны.
С той минуты, как Пьер увидал это страшное убийство, совершенное людьми, не хотевшими этого делать, в душе его как будто вдруг выдернута была та пружина, на которой все держалось и представлялось живым, и все завалилось в кучу бессмысленного сора. В нем, хотя он и не отдавал себе отчета, уничтожилась вера и в благоустройство мира, и в человеческую, и в свою душу, и в бога. Это состояние было испытываемо Пьером прежде, но никогда с такою силой, как теперь. Прежде, когда на Пьера находили такого рода сомнения, – сомнения эти имели источником собственную вину. И в самой глубине души Пьер тогда чувствовал, что от того отчаяния и тех сомнений было спасение в самом себе. Но теперь он чувствовал, что не его вина была причиной того, что мир завалился в его глазах и остались одни бессмысленные развалины. Он чувствовал, что возвратиться к вере в жизнь – не в его власти.
Вокруг него в темноте стояли люди: верно, что то их очень занимало в нем. Ему рассказывали что то, расспрашивали о чем то, потом повели куда то, и он, наконец, очутился в углу балагана рядом с какими то людьми, переговаривавшимися с разных сторон, смеявшимися.
– И вот, братцы мои… тот самый принц, который (с особенным ударением на слове который)… – говорил чей то голос в противуположном углу балагана.
Молча и неподвижно сидя у стены на соломе, Пьер то открывал, то закрывал глаза. Но только что он закрывал глаза, он видел пред собой то же страшное, в особенности страшное своей простотой, лицо фабричного и еще более страшные своим беспокойством лица невольных убийц. И он опять открывал глаза и бессмысленно смотрел в темноте вокруг себя.
Рядом с ним сидел, согнувшись, какой то маленький человек, присутствие которого Пьер заметил сначала по крепкому запаху пота, который отделялся от него при всяком его движении. Человек этот что то делал в темноте с своими ногами, и, несмотря на то, что Пьер не видал его лица, он чувствовал, что человек этот беспрестанно взглядывал на него. Присмотревшись в темноте, Пьер понял, что человек этот разувался. И то, каким образом он это делал, заинтересовало Пьера.
Размотав бечевки, которыми была завязана одна нога, он аккуратно свернул бечевки и тотчас принялся за другую ногу, взглядывая на Пьера. Пока одна рука вешала бечевку, другая уже принималась разматывать другую ногу. Таким образом аккуратно, круглыми, спорыми, без замедления следовавшими одно за другим движеньями, разувшись, человек развесил свою обувь на колышки, вбитые у него над головами, достал ножик, обрезал что то, сложил ножик, положил под изголовье и, получше усевшись, обнял свои поднятые колени обеими руками и прямо уставился на Пьера. Пьеру чувствовалось что то приятное, успокоительное и круглое в этих спорых движениях, в этом благоустроенном в углу его хозяйстве, в запахе даже этого человека, и он, не спуская глаз, смотрел на него.
– А много вы нужды увидали, барин? А? – сказал вдруг маленький человек. И такое выражение ласки и простоты было в певучем голосе человека, что Пьер хотел отвечать, но у него задрожала челюсть, и он почувствовал слезы. Маленький человек в ту же секунду, не давая Пьеру времени выказать свое смущение, заговорил тем же приятным голосом.

ГОСТ Р ИСО 3411-99

ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

МАШИНЫ ЗЕМЛЕРОЙНЫЕ

Антропометрические данные операторов
и минимальное рабочее пространство вокруг оператора

ГОССТАНДАРТ РОССИИ

Москва

Предисловие

1 РАЗРАБОТАН И ВНЕСЕН Техническим комитетом по стандартизации ТК 295 «Машины землеройные»

2 ПРИНЯТ И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Госстандарта России от 30 ноября 1999 г. № 460-ст

3 Настоящий стандарт представляет собой полный аутентичный текст международного стандарта ИСО 3411-95 «Машины землеройные. Антропометрические данные операторов и минимальное рабочее пространство вокруг оператора»

4 ВВЕДЕН ВПЕРВЫЕ

ГОСТ Р ИСО 3411-99

ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

МАШИНЫ ЗЕМЛЕРОЙНЫЕ

Антропометрические данные операторов и минимальное рабочее пространство вокруг оператора

Earth-moving machinery. Human physical dimensions of operators and minimum operator space envelope

Дата введения 2000-07-01

1 Область применения

Настоящий стандарт устанавливает антропометрические данные операторов землеройных машин и минимальное рабочее пространство вокруг оператора, ограниченное внутренними размерами кабин и устройствами ROPS , FOPS , применяемыми на землеройных машинах.

Стандарт распространяется на землеройные машины по ГОСТ Р ИСО 6165 .

Требования настоящего стандарта являются обязательными.

2 Нормативные ссылки

В настоящем стандарте использованы ссылки на следующие стандарты.

ГОСТ 27258-87 (ИСО 6682-86) Машины землеройные. Зоны комфорта и досягаемости для органов управления

ГОСТ 27715-88 (ИСО 5353-95) Машины землеройные, тракторы и машины для сельскохозяйственных работ и лесоводства. Контрольная точка сиденья

3) Размеры ширины головы даны без учета ушей.

4) Размеры головы:

в каске: длина » 310 мм, ширина » 270 мм;

в шлеме: длина » 280 мм, ширина » 230 мм.

Таблица 2

В миллиметрах

Условное обозначение

Параметры оператора

Рост оператора

низкий

средний

высокий

высокий (в арктической одежде)

Высота в положении сидя 1), 2)

Высота расположения глаз в положении сидя 2)

Высота расположения плеч

3D

Высота расположения локтя

Высота расположения горизонтальной поверхности сиденья

3 F

Толщина бедра

3 G

Удаленность икры от вертикали

Удаленность колена от вертикали

3 I

Высота колена

3 J

Длина кисти руки с предплечьем

Предел досягаемости вытянутой вперед руки

3 L

Уменьшение предела досягаемости за счет сжатия кисти руки

Длина кисти руки

3 N

Ширина кисти руки 3)

3 O

Толщина кисти руки 4)

Удаленность SIP от вертикали

3 R

Высота расположения SIP от горизонтальной поверхности сиденья

Ширина плеч

Ширина по прижатым локтям

Ширина по бедрам в положении сидя

1) Прибавить примерно 50 мм на защитную каску или шлем, если требуется, кроме операторов высокого роста (в арктической одежде).

2) См. .

3) Ширина кисти руки приведена без учета большого пальца руки.

4) Толщина кисти руки дана по основанию пальцев и соответствует толщине ладони.

4.3 Выпрямленное положение

Все размеры, приведенные в таблицах - , указаны для операторов в выпрямленном положении. В нормальном положении тело человека как бы дает осадку и результаты измерений в этом случае будут несколько заниженными: значения роста () и предела досягаемости с поднятой рукой (2 A ) будут занижены приблизительно на 15 мм, а высота в положении сидя () и высота расположения глаз () в положении сидя будут занижены примерно на 25 мм.

Таблица 3

В миллиметрах

Условное обозначение

Параметры оператора

Рост оператора

низкий

средний

высокий

А

Высота лодыжки (с обувью)

В

Длина голени

С

Длина бедра

D

Расстояние (по вертикали) от точки бедра до ягодицы 1)

E

Расстояние (продольное) от точки бедра до ягодицы

F

Длина туловища

G

Расстояние от точки бедра до точки поворота шеи 1)

Н

Длина верхней части руки

I

Расстояние от запястья до точки сжатия

J

Длина предплечья

К

Расстояние от глаз до осевой линии туловища

L

Рост (с учетом обуви)

1550

1715

1880

М

Расстояние от уровня глаз до точки поворота шеи

N

Ширина по точкам поворота плеч

O

Ширина по точкам поворота бедер

Р

Расстояние от лодыжки до точки приложения усилия к педали

1) Для оператора в положении сидя.

Примечани е - Размеры соответствуют требованиям приложения А ГОСТ 27258 .

Таблица 4

В миллиметрах

Условное обозначение

Параметр

d 1

Зазор между кабиной, устройствами ROPS, FOPS и органами управления при их ближайшем положении к стенке кабины и устройствам ROPS, FOPS

Не менее 50

R 1

Расстояние от SIP до потолка кабины, устройств ROPS, FOPS в поперечной плоскости:

оператор в защитном шлеме; сиденье имеет регулировку и подвеску; мощность двигателя 150 кВт

Не менее 1050

оператор без защитного шлема; сиденье имеет регулировку и подвеску; мощность двигателя от 30 до 150 кВт

Не менее 1000

оператор без защитного шлема, сиденье не имеет регулировки и подвески, мощность двигателя менее 30 кВт

Не менее 920

R 2

Радиус закругления в месте соединения внутренних стенок кабины и устройств ROPS, FOPS друг с другом и с потолком

Не более 250

R 3

Расстояние до задней стенки кабины, устройств ROPS, FOPS

Примечание 1

h 1

Расстояние по вертикали от SIP до нижней границы верхней части боковых стенок кабины, устройств ROPS, FOPS

Не более 150

h 2

Расстояние по вертикали от SIP до нижней границы верхней части задней стенки кабины, устройств ROPS, FOPS

Примечание 2

l 1

Ширина пространства для ног

Не менее 560

L 1

Зазор для предплечья руки в верхнем боковом пространстве кабины, устройств ROPS, FOPS

Не менее 500

L 2

Зазор между кабиной и устройствами ROPS, FOPS и арктической обувью оператора для любого положения педали и ножного органа управления

Не менее 30

Примечания

1 Не менее b + 400 мм, где b равно половине размера регулирования сиденья по горизонтали, см. .

2 Данный размер должен быть равен расстоянию по вертикали от SIP до верхней части спинки сиденья, установленного в самое нижнее положение.

5 Минимальное рабочее пространство вокруг оператора

5.1 Минимальное рекомендованное рабочее пространство вокруг оператора в спецодежде, ограниченное внутренними размерами кабины и устройствами ROPS , FOPS , приведено на рисунке для оператора в положении сидя и на рисунке для оператора в положении стоя. Размеры приведены относительно контрольной точки сиденья ( SIP ) согласно требованиям ГОСТ 27715 .

1 ) SIP - контрольная точка сиденья.

Рисунок 5 - Минимальное рабочее пространство вокруг оператора в спецодежде для работы в положении сидя, ограниченное внутренними размерами кабины и устройствами ROPS , FOPS

Примечани е - Размеры - по таблице .

Рисунок 6 - Минимальное рабочее пространство вокруг оператора в спецодежде для работы в положении стоя, ограниченное внутренними размерами кабины и устройствами ROPS , FOPS

Примечани е - Размеры d 1 и R 2 - по таблице . Размеры рабочего пространства по ширине и зазор для ножных органов управления соответствуют указанным на рисунке .

Очертание рабочего пространства не определяет форму кабины и устройств ROPS , FOPS . Допускаются изменения минимального рабочего пространства вокруг оператора для конкретных машин.

5.2 Минимальное рабочее пространство вокруг оператора указано с учетом антропометрических данных оператора высокого роста, приведенных на рисунках и , и измеряется по внутренней поверхности кабины и устройств ROPS , FOPS , не имеющих видимых следов деформации.

5.3 Минимальное рабочее пространство вокруг оператора может быть меньше указанного на рисунках и , если установлено, что уменьшение рабочего пространства вокруг оператора при работе на конкретных землеройных машинах повышает эффективность его работы.

Возможные изменения рабочего пространства вокруг оператора приведены ниже:

5.3.1 Минимальная высота рабочего пространства вокруг оператора, равная 1050 мм относительно SIP , рекомендуется для размещения широко используемых сидений и обеспечения зазора для защитного шлема оператора. Минимальная высота ограждения вокруг рабочего пространства может быть уменьшена до 1000 мм относительно SIP в случаях, когда оператор не пользуется защитным шлемом (ГОСТ 27715 ).

5.3.2 Высота рабочего пространства может быть изменена для следующих разновидностей конструкций сидений:

для сиденья без вертикальной подвески - уменьшена на 40 мм;

для сиденья без вертикального регулирования высоты - уменьшена на 40 мм;

для сиденья с регулируемой спинкой - регулировкой спинки на угол более 15°.

5.4 Положение оператора может быть смещено от осевой линии рабочего пространства в направлении прямой видимости боковой поверхности землеройной машины при условии, что минимальное расстояние от SIP до внутренней боковой поверхности составляет не менее 335 мм.

5.5 В конструкции некоторых типов землеройных машин может быть предусмотрена возможность использования рабочего пространства меньшего размера, чем установлено в настоящем стандарте. Для таких машин минимальная ширина внутреннего пространства может быть уменьшена до 650 мм. При минимальной ширине пространства должно быть предусмотрено расположение органов управления, обеспечивающее эффективную работу и комфорт оператора.

5.6 Если оператор при работе с органами рулевого управления или для доступа к органам управления, расположенным сзади SIP , наклоняется вперед, минимальный зазор между задней стенкой и оператором может быть уменьшен до 250 мм плюс 1/2 значения продольной регулировки сиденья.

5.7 Расположение органов управления - по ГОСТ 27258 .

Примечани е - В некоторых районах мира более чем у 5 % операторов длина ног меньше значений, указанных для операторов низкого роста. Это следует учитывать при корректировке расположения зон комфорта и досягаемости для органов ножного управления согласно ГОСТ 27258.

Ключевые слова: машины землеройные, операторы машин, размеры операторов, рабочее пространство

Стандарт ГОСТ 34.11-2012 пришел на смену ГОСТ 34.11-94, который к настоящему времени уже считается потенциально уязвимым (хотя до 2018 года ГОСТ 1994 года выпуска все же применять не возбраняется). Отечественные стандарты хеширования обязательны к применению в продуктах, которые будут крутиться в ответственных и критических сферах и для которых обязательно прохождение сертификации в уполномоченных органах (ФСТЭК, ФСБ и подобных). ГОСТ 34.11-2012 был разработан Центром защиты информации и специальной связи ФСБ России с участием открытого акционерного общества «Информационные технологии и коммуникационные системы» (ИнфоТеКС). В основу стандарта 2012 года была положена функция хеширования под названием «Стрибог» (если что, такое имя носил бог ветра в древнеславянской мифологии).


Хеш-функция «Стрибог» может иметь две реализации с результирующим значением длиной 256 или 512 бит. На вход функции подается сообщение, для которого необходимо вычислить хеш-сумму. Если длина сообщения больше 512 бит (или 64 байт), то оно делится на блоки по 512 бит, а оставшийся кусочек дополняется нулями с одной единичкой до 512 бит (или до 64 байт). Если длина сообщения меньше 512 бит, то оно сразу дополняется нулями с единичкой до полных 512 бит.

Немного теории

Основу хеш-функции «Стрибог» составляет функция сжатия (g-функция), построенная на блочном шифре, построенном с помощью конструкции Миягучи - Пренеля, признанной одной из наиболее стойких.

В целом хеширование производится в три этапа. Первый этап - инициализация всех нужных параметров, второй этап представляет собой так называемую итерационную конструкцию Меркла - Дамгорда с процедурой МД-усиления, третий этап - завершающее преобразование: функция сжатия применяется к сумме всех блоков сообщения и дополнительно хешируется длина сообщения и его контрольная сумма.


WARNING

При чтении ГОСТа учти, что во всех 64-байтовых массивах (в том числе и в массивах значений итерационных констант C1 - C12) нулевой байт находится в конце массива, а шестьдесят третий, соответственно, в начале.

Итак, после краткого и небольшого погружения в теорию начинаем кодить...

Базовые функции стандарта

Поскольку при вычислении хеша мы имеем дело с 64-байтовыми блоками (в стандарте они представлены 512-разрядными двоичными векторами), для начала определим этот самый двоичный вектор:

#define BLOCK_SIZE 64 // Размер блока - 64 байта... typedef uint8_t vect; // Определяем тип vect как 64-байтовый массив

Сложение двух двоичных векторов по модулю 2

Здесь все предельно просто. Каждый байт первого вектора ксорится с соответствующим байтом второго вектора, и результат пишется в третий (выходной) вектор:

Static void GOSTHashX(const uint8_t *a, const uint8_t *b, uint8_t *c) { int i; for (i = 0; i < 64; i++) c[i] = a[i]^b[i]; }

Побитовое исключающее ИЛИ над 512-битными блоками

В тексте ГОСТа название данной операции звучит как сложение в кольце вычетов по модулю 2 в степени n. Такая фраза кого угодно может вогнать в уныние, но на самом деле ничего сложного и страшного в ней нет. Два исходных 64-байтовых вектора представляются как два больших числа, далее они складываются, и переполнение, если оно появляется, отбрасывается:

Static void GOSTHashAdd512(const uint8_t *a, const uint8_t *b, uint8_t *c) { int i; int internal = 0; for (i = 0; i < 64; i++) { internal = a[i] + b[i] + (internal >> 8); c[i] = internal & 0xff; } }

Нелинейное биективное преобразование (преобразование S)

При биективном отображении каждому элементу одного множества соответствует ровно один элемент другого множества (более подробно про биекцию можешь почитать в Википедии). То есть это просто банальная подстановка байтов в исходном векторе по определенному правилу. В данном случае правило задается массивом из 256 значений:

Static const unsigned char Pi = { 252, 238, 221, ... 99, 182 };

Здесь для экономии места показаны не все значения, определенные в стандарте, а только три первых и два последних. Когда будешь писать код, не забудь про остальные.

Итак, если в исходном векторе у нас встречается какой-либо байт со значением, например, 23 (в десятичном выражении), то вместо него мы пишем байт из массива Pi, имеющий порядковый номер 23, и так далее. В общем, код функции преобразования S получается такой:

Static void GOSTHashS(uint8_t *state) { int i; vect internal; for (i = 63; i >= 0; i--) internal[i] = Pi]; memcpy(state, internal, BLOCK_SIZE); }

Перестановка байтов (преобразование P)

Преобразование P - простая перестановка байтов в исходном массиве в соответствии с правилом, определяемым массивом Tau размером в 64 байта:

Static const unsigned char Tau = { 0, 8, 16, 24, 32, ... 55, 63 };

Здесь, так же как и в предыдущем случае, для экономии места показаны не все значения массива Tau.

Перестановка выполняется следующим образом: сначала идет нулевой элемент исходного вектора, далее - восьмой, потом - шестнадцатый и так далее до последнего элемента. Код функции напишем так:

Static void GOSTHashP(uint8_t *state) { int i; vect internal; for (i = 63; i >= 0; i--) internal[i] = state]; memcpy(state, internal, BLOCK_SIZE); }

Линейное преобразование (преобразование L)

Это преобразование носит название «умножение справа на матрицу A над полем Галуа GF(2)» и по сравнению с первыми двумя будет немного посложнее (по крайней мере, вкурить всю суть от и до с первого прочтения стандарта удается далеко не всем). Итак, есть матрица линейного преобразования A, состоящая из 64 восьмибайтовых чисел (здесь приведена не в полном объеме):

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «сайт», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score!

Хеш-функция, без сомнения, – уникальный объект в криптографии: сама по себе она не реализует никакой криптографической функции безопасности (конфиденциальности, аутентификации, подтверждения подлинности и др.), но в то же время без нее невозможно представить функционирования подавляющего большинства современных алгоритмов и протоколов: выработки случайных чисел, вычисления кода аутентификации сообщения, формирования и проверки электронной подписи. Недаром многие специалисты называют хеш-функцию “рабочей лошадкой современной криптографии".

Александр
Бондаренко

Эксперт технического комитета по стандартизации ТК 26

Григорий
Маршалко

Эксперт технического комитета по стандартизации ТК 26, эксперт ISO/IEC JTC1/SC 27

Василий
Шишкин

К.ф-м.н., эксперт технического комитета по стандартизации ТК 26, эксперт ISO/IEC JTC1/SC 27

С первого января 2013 г. в России действует национальный стандарт ГОСТ Р 34.11– 2012 г. , определяющий алгоритм и процедуру вычисления двух функций хеширования (с различными длинами хеш-кодов) семейства "Стрибог", первоначально представленных на конференции Рускрипто в 2010 г. Три года – это уже значительный срок, по прошествии которого можно подвести некоторые промежуточные итоги.

Принципы синтеза

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

Дополнительные условия для криптографических хеш - функций

Должно быть вычислительно сложно:

  • Найти два различных входных сообщения, которые бы давали один и тот же хеш-код – т.н. стойкость к нахождению коллизии. Для стойкой функции с длиной хеш-кода, равной n битам, для нахождения коллизии требуется порядка 2n/2 операций вычисления хеш-кода. Эта характеристика важна, например, при использовании хеш-функции в алгоритмах электронной подписи.

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

  • По значению хеш-кода найти исходное сообщение – т.н. стойкость к нахождению прообраза. Для стойкой функции с длиной хеш-кода, равной n битам, для нахождения прообраза требуется порядка 2n операций вычисления хеш-кода. Эта характеристика важна, например, при использовании хеш-функции в алгоритмах хеширования паролей.
  • По сообщению, соответствующему значению хеш-кода, найти какое-либо другое сообщение, дающее такой же хеш-код, – т.н. стойкость к нахождению прообраза. Для стойкой функции с длиной хеш-кода, равной n битам, для нахождения прообраза требуется порядка 2n/m операций вычисления хеш-кода, где m – длина первого сообщения. Эта характеристика также важна при использовании хеш-функции в алгоритмах хеширования паролей.
  • По значению хеш-кода, значению длины исходного сообщения дополнить исходное сообщение так, чтобы найти хеш-код нового (дополненного) сообщения, – т.н. стойкость к дополнению сообщения. Для стойкой функции с длиной хеш-кода, равной n битам, для решения задачи дополнения сообщения требуется порядка 2n операций вычисления хеш-кода. Эта характеристика важна при использовании хеш-функции в алгоритмах вычисления кодов аутентификации сообщений (MAC).

Иными словами, функция хеширования должна максимально сильно перемешивать биты исходного сообщения так, чтобы в результате невозможно было получить никакой информации об исходном сообщении. Такое свойство, кстати, и натолкнуло на мысль дать ей имя древнего славянского бога ветра – Стрибога (рис. 1).


При разработке нового алгоритма использовались только хорошо изученные конструкции и преобразования, которые обеспечивают отсутствие свойств, позволяющих эффективно применять известные методы криптографического анализа. В результате появилась конструкция, не имеющая ничего лишнего, в которой каждый элемент решает определенную криптографическую задачу. Это, в свою очередь, позволило повысить быстродействие при заданных криптографических характеристиках.

Основой алгоритма является т.н. функция сжатия, представляющая собой блочный шифр, функционирующий в режиме Миягучи-Принеля (рис. 2), для которого обоснованы хорошие криптографические качества .


При хешировании исходное сообщение дополняется последовательностью битов специального вида, разбивается на блоки, которые последовательно подаются на вход функции сжатия. После того, как все блоки обработаны, происходит процедура финализации: дополнительно хешируется длина сообщения и его контрольная сумма. С учетом реализованных параметров общая конструкция хеш-функции "Стрибог" является дальнейшим развитием хорошо исследованной конструкции Меркля-Дамгорда с усилением и сходна с наиболее современной на настоящее время конструкцией HAIFA (Hash Iterative FrAmework) .

За прошедшие 5 лет хеш-функции семейства "Стрибог" стали объектом пристального внимания специалистов в области криптографии. Немалую роль в активизации этих исследований сыграл открытый конкурс научно-исследовательских работ по анализу разработанных хеш-функций. В целом все опубликованные результаты можно разделить на два основных направления: исследование свойств функции сжатия и исследование свойств конструкции хеш-функции в целом.

Результаты анализа

За прошедшие 5 лет хеш-функции семейства "Стрибог" стали объектом пристального внимания специалистов в области криптографии. Немалую роль в активизации этих исследований сыграл проведенный Российским техническим комитетом по стандартизации "Криптографическая защита информации" (ТК 26) при участии Академии криптографии Российской Федерации и при организационной и финансовой поддержке ОАО "ИнфоТеКС" открытый конкурс научно-исследовательских работ по анализу разработанных хеш-функций .


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

Исследования функции сжатия

К настоящему моменту исследована возможность применения большинства наиболее эффективных методов анализа к функции сжатия хеш-функции "Стрибог": метода встречи посередине , метода столкновений , метода, использующего супер S-блоки , интегрального криптоанализа . Во всех этих работах показана возможность эффективного применения методов только к редуцированным версиям функции сжатия (с уменьшенным числом итераций). Уже начиная с 8 итераций (из полных 12) ни один известный метод эффективно не применим.

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


В целом это направление исследований появилось на волне разоблачений Эдварда Сноудена и было связано с вопросом, можно ли выбирать значения структурных элементов криптографического алгоритма так, чтобы в каком-то смысле ослабить его. Первой работой в данном направлении была публикация известного криптографа Жана-Филиппа Омассона и др. которые показали, как указанным выше способом можно строить коллизию для хеш-функции SHA-1. Следует отметить, что подобные результаты носят чисто теоретический интерес, поскольку для построения очередной коллизии злоумышленнику необходимо подбирать каждый раз новый набор констант. В то же время, в работе показано, что константы в хеш-функциях "Стрибог" выбраны доказуемо псевдослучайным способом, поэтому указанный подход даже теоретически не может быть использован.

Исследования конструкции в целом

Несомненным достоинством хеш-функций "Стрибог" является наличие теоретического доказательства стойкости использованной конструкции к атакам поиска коллизии и прообраза , выполненного выпускником МГУ им. М.В. Ломоносова Георгием Седовым. Следует отметить, что далеко не для всех используемых в настоящее время функций хеширования такое доказательство было получено.

В работе , победившей на упомянутом ранее конкурсе научно-исследовательских работ, получено существенное продвижение в развитии методов построения второго прообраза для конструкций типа Меркля-Дамгорда, но и в этом случае для хеш-функций "Стрибог" авторам публикации не удалось предложить методов эффективнее общих методов анализа, что также является подтверждением правильности выбранных синтезных решений.

Вопросы реализации

Вопросам эффективной реализации хеш-функций "Стрибог" к настоящему моменту посвящено большое количество публикаций конференций Рускрипто и CTCrypt . В частности, в работе показано, что на процессорах общего пользования "Стрибог" оказывается быстрее своего предшественника, хеш-функции ГОСТ Р 34.11–94, и сопоставим со скоростью реализации нового американского стандарта SHA-3.


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

Отметим, что в настоящее время в сети Интернет доступны реализации алгоритмов, описанных в ГОСТ Р 34.11–2012, на различных языках программирования (таких, например, как C++, JavaScript, Java, Python, PHP, Verilog).

Потомки

Интересно, что к настоящему моменту на основе конструкций, использованных при синтезе "Стрибога", начинают разрабатывать и другие алгоритмы. Так, в 2014 г. финский специалист Маркку-Юхани Олави Сааринен на основе функции сжатия отечественного стандарта разработал алгоритм аутентифици-рованного шифрования STRI-BOBr1 для участия в организованном американским Национальным институтом стандартов (NIST) конкурсе. К настоящему моменту этот алгоритм успешно вышел во второй этап состязания.

В 2015 г. индийскими специалистами предложена новая функция MGR (Modified Gost R) , которая наследует общую структуру хеш-функции "Стрибог", но имеет другую функцию сжатия.

Выводы

За прошедшие 3 года хеш-функции "Стрибог", определяемые стандартом ГОСТ Р 34.11– 2012, зарекомендовали себя как стойкие и эффективно реализуемые синтезные решения, которые отвечают современным требованиям по безопасности, а многочисленные независимые исследования подтвердили правильный выбор подходов к их проектированию.

Вопросы реализации На процессорах общего пользования "Стрибог" оказывается быстрее своего предшественника хеш-функции ГОСТ Р 34.11-94, и сопоставим со скоростью реализации нового американского стандарта SHA-3.
Специалистами университета Люксембурга найдено компактное представление для нелинейного преобразования, используемого в функции сжатия. Оно позволяет существенно оптимизировать аппаратные реализации отечественной хеш-функции.

Литература

  1. ГОСТ Р 34.11–2012. Информационная технология. Криптографическая защита информации. Функция хеширования.
  2. Preneel B., Govaerts R. and Vandewalle J. Hash functions based on block ciphers: A synthetic approach. In: CRYPTO 1993, LNCS. – Vol. 773. – P. 368–378, Springer, London, 1994.
  3. Damgård I. A Design Principle for Hash Functions. In: Brassard, G. (ed.) CRYPTO 1989, LNCS. – Vol. 435. – P. 416–427, Springer, Heidelberg, 1989.
  4. Merkle R.C. Secrecy, authentication, and public key systems. Stanford Ph.D. thesis 1979.
  5. Biham E., Dunkelman O. A framework for iterative hash functions – HAIFA . Доступ через https://eprint.iacr.org/2007/278.pdf .
  6. Открытый конкурс научно-исследовательских работ, посвященных анализу криптографических качеств хеш-функции ГОСТ Р 34.11–2012 . Доступ через http://www.stree-bog.info .
  7. Лавриков И.В. Обзор результатов анализа хеш-функций ГОСТ Р 34.11–2012. Проблемы информационной безопасности / И.В. Лавриков, Г.Б. Маршалко, В.И. Рудской, С.В. Смышляев, В.А. Шишкин // Компьютерные системы. – 2015. – № 4. (презентация: .
  8. AlTawy R., Youssef A.M. Preimage Attacks on reduced-round Stribog, Preimage Attacks on Reduced-Round Stribog. In: Pointcheval, D., Vergnaud, D. (eds.) AFRICACRYPT 2014. LNCS. – Vol. 8469. – P. 109– 125. – Springer International Publishing, 2014.
  9. AlTawy R., Kircanski A., Youssef A.M. Rebound attacks on Stribog, In: Lee, H.S., Han, D.G. (eds.) ICISC 2013. LNCS. – Vol. 8565. – P. 175–188. – Springer International Publishing, 2014.
  10. Ma B., Li B., Hao R., Li X. Improved cryptanalysis of reduced-round GOST and Whirlpool hash function, n: Boureanu, I., Owesarski, P., Vaudenay, S. (eds.) ACNS 2014. LNCS. – Vol. 8479. – P. 289–307. – Springer International Publishing, 2014.
  11. Zou J., Wu W., Wu S. Cryptanalysis of the round-reduced GOST hash function, In: Lin, D., Xu, S., Yung, M. (eds.) Inscrypt 2013. LNCS. – Vol. 8567. – P. 309–322. Springer International Publishing, 2014.
  12. AlTawy R., Youssef A.M. Integral distinguishers for reduced-round Stribog. Information Processing Letters 114, 8 (2014), P. 426–431.
  13. AlTawy R., Youssef A.M. Watch your Constants: Malicious Streebog . Доступ через http://eprint.iacr.org/2014/879.pdf.
  14. Albertini A. Malicious Hashing: Eve"s Variant of SHA-1 / A. Albertini, J.-P. Aumasson, M. Eichlseder, F. Mendel, M. Schlaffer / In SAC (2014), A. Joux and A. Youssef, Eds. – Vol. 8781 of Lecture Notes in Computer Science, Springer.
  15. Рудской В.И. Об алгоритме выработки констант хеш-функции "Стрибог" . Доступ через https://www.tc26.ru/ISO_IEC/Streebog/streebog_constants_rus.pdf .
  16. Седов Г. Стойкость ГОСТ Р 34.11–2012 к атаке на прообраз и атаке поиска коллизий // Матем. вопр. криптогр. – 2015. –№ 6:2. – С. 79–98.
  17. Guo J., The Usage of Counter Revisited: Second-Preimage Attack on New Russian Standardized Hash Function / J. Guo, J. Jean, G. Leuren, T. Peyrin, L. Wang / In: Joux, A., Youssef, A. (eds.) SAC 2014, LNCS. – Vol. 8781. – P. 195–211. Springer International Publishing, 2014.
  18. Borodin M., Rybkin A., Urivskiy A. High-Speed Software Implementation of the Prospective 128-bit Block Cipher and Streebog Hash-Function. – CTCrypt, 2014.
  19. Lebedev P. A. Comparison of old and new cryptographic hash function standards of the Russian Federation on CPUs and NVIDIA GPUs // Математические вопросы криптографии. – 2013. – № 4:2. – С. 73–80.
  20. Казимиров А., Смышляев С. О создании эффективных программных реализаций отечественных криптографических стандартов. – Рускрипто, 2013 . Доступ через .
  21. Бородин М., Рыбкин А. Эффективная реализация базовых криптографических конструкций: перспективного алгоритма блочного шифрования с длиной блока 128 бит, функции хеширования ГОСТ Р 34.11– 2012 и ЭЦП ГОСТ Р 34.10– 2012. – Рускрипто, 2014 . Доступ через .
  22. Biryukov A., Perrin L., Udovenko A. Reverse-Engineering the S-Box of Streebog, Kuznyechik and STRIBOBr1 . Доступ через http://eprint.iacr.org/2015/812 .
  23. Saarinen M.-J. O. StriBob: authenticated encryption from GOST R 34.11–2012 LPS permutation // Математические вопросы криптографии. – 2015. – № 6:2. – С. 67–78.
  24. Bussi K., MGR hash function / K. Bussi, D. Dey, P.R. Mishra, B.K. Bass / . Доступ через

Алгоритм ГОСТ 3411 является отечественным стандартом для хэш-функций. Длина хэш-кода, 256 битам. Алгоритм разбивает сообщение на блоки, длина которых также равна 256 битам. Кроме того, параметром алгоритма является стартовый вектор хэширования Н - произвольное фиксированное значение длиной также 256 бит.

Сообщение обрабатывается блоками по 256 бит справа налево, каждый блок обрабатывается по следующему алгоритму.

    Генерация четырех ключей K j =1…4, длиной 256 бит путем перестановки и сдвига

    промежуточного значения хэш-кода Н длиной 256 бит;

    текущего обрабатываемого блока сообщения М длиной 256 бит;

    и некоторых констант С 2 , С 4 =0, С 3 = 1 8 0 8 1 16 0 24 1 16 0 8 (0 8 1 8) 2 1 8 0 8 (0 8 1 8) 4 (1 8 0 8) 4 , где степень обозначает количество повторений 0 или 1.и =0 длиной 256 бит.

а) Каждое 256-битное значение рассматривается как последовательность 32 8-битных значений, для которых осуществляется перестановка P формуле y = (x) , где x - порядковый номер 8-битного значения в исходной последовательности; y - порядковый номер 8-битного значения в результирующей последовательности.

y =(х) = 8i + k, где i = 0 ÷ 3, k = 1 ÷ 8

б)Сдвиг А определяется по формуле

A (x) = (x 1 x 2) & x 4 & x 3 & x 2, где x i - соответствующие 64 бита 256-битного значения х ,

с) Для определения ключа K 1 присваиваются следующие начальные значения:

K 1 = Р (H M )

Ключи K 2 , K 3 , K 4 вычисляются последовательно по следующему алгоритму:

K i = Р (A(H) С i ) A(A(M)).

2. Шифрование 64-битных значений промежуточного хэш-кода H на ключах K i (i = 1, 2, 3, 4) с использованием алгоритма ГОСТ 28147 в режиме простой замены.

а) Хэш-код Н рассматривается как последовательность 64-битных значений H = h 4 & h 3 & h 2 & h 1

б) Выполняется шифрование алгоритмом ГОСТ 28147

S j = E Ki [ h i ]

в) Результирующая последовательность S j , j = 1, 2, 3, 4 длиной 256 бит запоминается во временной переменной

S = s 1 & s 2 & s 3 & s 4

3.Перемешивание результата шифрования.

а) 256-битное значение рассматривается как последовательность шестнадцати 16-битных значений η 16 & η 15 & ...& η 1

б) Сдвиг обозначается Ψ и определяется следующим образом

η 1 η 2 η 3 η 4 η 13 η 16 & η 16 & ... & η 2

в) Результирующее значение хэш-кода определяется следующим образом:

Χ(M, H) = 61 (H (M 12 (S)))

где H - предыдущее значение хэш-кода, М - текущий обрабатываемый блок, Ψ i - i-ая степень преобразования Ψ .

Логика выполнения гост 3411

Входными параметрами алгоритма являются:

    исходное сообщение М произвольной длины;

    стартовый вектор хэширования Н, длиной 256 битам;

    контрольная сумма Z длиной 256 бит и начальным значением =0.

    переменная L=М.

Сообщение Мделится на блоки длиной 256 бит, каждый i блок обрабатывается справа налево следующим образом:

Последний блок М"обрабатывается следующим образом:

Значением функции хэширования является Н.