Алгоритм формирования хэш-функции ГОСТ Р 34.11-94
Хэш-функция - математический расчет, результатом которого является последовательность битов (цифровой код). Имея этот результат, невозможно восстановить исходные данные, использованные для расчета.
Хэш - последовательность битов, полученная в результате расчета хэш-функции.
ГОСТ Р34.11-94 - российский криптографический стандарт вычисления хэш-функции. Был введен 23 мая 1994 года. Размер хэша 256 бит. Размер блока входных данных 256 бит. Алгоритм был разработан ГУБС ФАПСИ и ВНИИС.
Стандарт определяет алгоритм и процедуру вычисления хэш-функции для последовательности символов. Этот стандарт является обязательным для применения в качестве алгоритма хэширования в государственных организациях РФ и ряде коммерческих организаций.
ЦБ РФ требует использовать ГОСТ Р 34.11-94 для электронной подписи предоставляемых ему документов.
Особенностями ГОСТ Р 34.11-94 являются:
При обработке блоков используются преобразования по алгоритму ГОСТ 28147-89;
Обрабатывается блок длиной 256 бит, и выходное значение тоже имеет длину 256 бит;
Применены меры борьбы против поиска коллизий, основанном на неполноте последнего блока;
Обработка блоков происходит по алгоритму шифрования ГОСТ 28147-89, который содержит преобразования на S-блоках, что существенно осложняет применение метода дифференциального криптоанализа к поиску коллизий.
Функция используется при реализации систем цифровой подписи на базе асимметричного криптоалгоритма по стандарту ГОСТ Р 34.10-2001. Сообщество российских разработчиков СКЗИ согласовало используемые в Интернет параметры ГОСТ Р 34.11-94:
Использование в сертификатах открытых ключей;
Использование для защиты сообщений в S/MIME (Cryptographic Message Syntax, PKCS#7);
Использование для защиты соединений в TLS (SSL, HTTPS, WEB);
Использование для защиты сообщений в XML Signature (XML Encryption);
Защита целостности Интернет адресов и имён (DNSSEC).
В 2008 году командой экспертов из Австрии и Польши была обнаружена техническая уязвимость, сокращающая поиск коллизий в 223 раз. Количество операций, необходимое для нахождения коллизии, таким образом, составляет 2105, что, однако, на данный момент практически не реализуемо. Проведение коллизионной атаки на практике имеет смысл только в случае цифровой подписи документов, причём если взломщик может изменять неподписанный оригинал.
Алгоритм формирования ЭЦП ГОСТ Р 34.10-2001
Электронно-цифровая подпись (ЭЦП) - аналог собственноручной подписи - для придания электронному документу юридической силы, равной бумажному документу, подписанному собственноручной подписью правомочного лица и/или скрепленного печатью.
Электронная цифровая подпись, или ЭЦП, становится всё более распространённым способом удостоверить документ. В некоторых случаях цифровая отметка не имеет альтернатив. К примеру, при проведении электронных торгов или участии в аукционах, проводимых в Интернете. В таком случае, наличие ЭЦП регламентируется законодательством. В соответствии с Федеральным законом 1-ФЗ от 10.01.2002 года «Об электронной цифровой подписи», ЭЦП в электронном документе является аналогом собственноручной подписи в бумажном документе. Благодаря наличию таковой, электронный документ приобретает юридическую значимость. Наличие ЭЦП гарантирует его подлинность и защищает от подделки, а также помогает идентифицировать владельца сертификата цифровой подписи и предотвратить искажения в документе.
Электронная подпись формируется в результате криптографического преобразования данных и представляет собой уникальную последовательность символов, известную только ее владельцу. Такие свойства ЭЦП как уникальность и надежность делают ее незаменимым атрибутом документов при организации юридически-значимого электронного документооборота.
Цифровая подпись предназначена для аутентификации лица, подписавшего электронный документ. Кроме этого, использование цифровой подписи позволяет осуществить:
Контроль целостности передаваемого документа: при любом случайном или преднамеренном изменении документа подпись станет недействительной, потому что вычислена она на основании исходного состояния документа и соответствует лишь ему;
Защиту от изменений (подделки) документа: гарантия выявления подделки при контроле целостности делает подделывание нецелесообразным в большинстве случаев;
Доказательное подтверждение авторства документа: Так как создать корректную подпись можно, лишь зная закрытый ключ, а он должен быть известен только владельцу, то владелец пары ключей может доказать своё авторство подписи под документом. В зависимости от деталей определения документа могут быть подписаны такие поля, как «автор», «внесённые изменения», «метка времени» и т. д.
Все эти свойства ЭЦП позволяют использовать её для следующих целей:
Декларирование товаров и услуг (таможенные декларации);
Регистрация сделок по объектам недвижимости;
Использование в банковских системах;
Электронная торговля и госзаказы;
Контроль исполнения государственного бюджета;
В системах обращения к органам власти;
Для обязательной отчетности перед государственными учреждениями;
Организация юридически значимого электронного документооборота;
В расчетных и трейдинговых системах.
ГОСТ Р 34.10-2001 алгоритм разработан главным управлением безопасности связи Федерального агентства правительственной связи и информации при Президенте Российской Федерации при участии Всероссийского научно-исследовательского института стандартизации. Разрабатывался взамен ГОСТ Р 34.10-94 для обеспечения большей стойкости алгоритма.
ГОСТ Р 34.10-2001 основан на эллиптических кривых. Его стойкость основывается на сложности вычисления дискретного логарифма в группе точек эллиптической кривой, а также на стойкости хэш-функции по ГОСТ Р 34.11-94. Принцип подписания электронного документа заключается в шифровании по ГОСТ Р 34.10-2001 полученного хэш алгоритма ГОСТ Р 34.11-94 закрытым ключом на передающей стороне. Проверка подписи на приемной стороне осуществляется путем получения хэш от сообщения и расшифрование открытым ключом зашифрованного значения хэш переданного вместе с сообщением, если эти хэши равны, то подпись верна (рисунок 2.1).
Рисунок 2.1 - Процесс подписания и проверки электронно-цифровой подписи
После подписывания сообщения к нему дописывается цифровая подпись размером 512 бит и текстовое поле. В текстовом поле могут содержаться, например, дата и время отправки или различные данные об отправителе.
Анализ программного криптопровайдера «КриптоПро CSP» показал его эффективность при использовании криптографических алгоритмов шифрования, хэш-функции, электронной цифровой подписи, которые соответствуют стандарту ГОСТ и прошли сертификацию в ФСБ.
Использование на основе криптопровайдера «КриптоПро CSP» приложения позволит автоматизировать процессы: шифрования, электронно-цифровой подписи сразу нескольких документов из пакета программного обеспечения Microsoft Office 2007-2010 Word, Excel, проверки подписи. Это значительно повысит эффективность работы и снизит процент ошибок в процессе обработки электронных документов. Использование шифрования с ГОСТ 28147-89 алгоритмом позволяет передавать по открытым каналам связи информацию содержащую коммерческую тайну, так же возможно сокрытия в зашифрованные архивы особо важную информацию, тем самым ограничив доступ к ней строго определенному кругу лиц.
ГОСТ Р ИСО 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
В миллиметрах
Параметры оператора |
Рост оператора |
||||
низкий |
средний |
высокий |
высокий (в арктической одежде) |
||
3А |
Высота в положении сидя 1), 2) |
||||
3В |
Высота расположения глаз в положении сидя 2) |
||||
3С |
Высота расположения плеч |
||||
3D |
Высота расположения локтя |
||||
3Е |
Высота расположения горизонтальной поверхности сиденья |
||||
3 F |
Толщина бедра |
||||
3 G |
Удаленность икры от вертикали |
||||
3Н |
Удаленность колена от вертикали |
||||
3 I |
Высота колена |
||||
3 J |
Длина кисти руки с предплечьем |
||||
3К |
Предел досягаемости вытянутой вперед руки |
||||
3 L |
Уменьшение предела досягаемости за счет сжатия кисти руки |
||||
3М |
Длина кисти руки |
||||
3 N |
Ширина кисти руки 3) |
||||
3 O |
Толщина кисти руки 4) |
||||
3Р |
Удаленность SIP от вертикали |
||||
3 R |
Высота расположения SIP от горизонтальной поверхности сиденья |
||||
4А |
Ширина плеч |
||||
4В |
Ширина по прижатым локтям |
||||
4С |
Ширина по бедрам в положении сидя |
||||
1) Прибавить примерно 50 мм на защитную каску или шлем, если требуется, кроме операторов высокого роста (в арктической одежде). 2) См. . 3) Ширина кисти руки приведена без учета большого пальца руки. 4) Толщина кисти руки дана по основанию пальцев и соответствует толщине ладони. |
4.3 Выпрямленное положение
Все размеры, приведенные в таблицах - , указаны для операторов в выпрямленном положении. В нормальном положении тело человека как бы дает осадку и результаты измерений в этом случае будут несколько заниженными: значения роста (1А ) и предела досягаемости с поднятой рукой (2 A ) будут занижены приблизительно на 15 мм, а высота в положении сидя (3А ) и высота расположения глаз (3В ) в положении сидя будут занижены примерно на 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.
Ключевые слова: машины землеройные, операторы машин, размеры операторов, рабочее пространство
Алгоритм ГОСТ 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 блок обрабатывается справа налево следующим образом:
Последний блок М"обрабатывается следующим образом:
Значением функции хэширования является Н.
Что требуется
Так как алгоритм отечественного производства, необходимо установить программные продукты КриптоПро CSP и КриптоПро CADESCOM. После установки программных продуктов КриптоПро будет доступен COM-объект HasheData с ProgID - CAdESCOM.HashedData . Этот объект предоставляет свойства и методы для вычисления хэш-суммы данных.Реализация
Объект HashedData имеет метод Hash , в который передаются данные для вычисления хэш-суммы. Свойство Value содержит результат вычисления. Напишем функцию, которая принимает строку и возвращает хэш-сумму. Незабываем, что строки в разных кодировках имеют различные хэш-суммы, поэтому строку следует привести к кодировке UTF-8.
// Функция вычисляет хэш-сумму по алгоритму ГОСТ 34.11-94
// Параметры
// Строка - Строка - исходная строка.
// Возвращаемое значение:
// Строка - хэш-сумма в виде 64-х символьной строке в шестнадцатеричном формате.
Функция ВычислитьХэшСуммуПоГОСТ_3411(Строка) Экспорт
CADESCOM_HASH_ALGORITHM_CP_GOST_3411 = 100;
HashedData = Новый COMОбъект("CAdESCOM.HashedData");
// Указываем алгоритм хэширования.
HashedData.Algorithm = CADESCOM_HASH_ALGORITHM_CP_GOST_3411;
// Передаем данные, строку кодируем в последовательность байтов UTF-8.
UTF8Encoding = Новый COMОбъект("System.Text.UTF8Encoding");
HashedData.Hash(UTF8Encoding.GetBytes_4(Строка));
// Возвращаем вычисленную хэш-сумму.
Возврат HashedData.Value;
КонецФункции // ВычислитьХэшСуммуПоГОСТ_3411()
Результат работу функции:
Обработку можно скачать по этой
Хеш-функция, без сомнения, – уникальный объект в криптографии: сама по себе она не реализует никакой криптографической функции безопасности (конфиденциальности, аутентификации, подтверждения подлинности и др.), но в то же время без нее невозможно представить функционирования подавляющего большинства современных алгоритмов и протоколов: выработки случайных чисел, вычисления кода аутентификации сообщения, формирования и проверки электронной подписи. Недаром многие специалисты называют хеш-функцию “рабочей лошадкой современной криптографии".
Александр
Бондаренко
Эксперт технического комитета по стандартизации ТК 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.
Специалистами университета Люксембурга найдено компактное представление для нелинейного преобразования, используемого в функции сжатия. Оно позволяет существенно оптимизировать аппаратные реализации отечественной хеш-функции.
Литература
- ГОСТ Р 34.11–2012. Информационная технология. Криптографическая защита информации. Функция хеширования.
- 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.
- Damgård I. A Design Principle for Hash Functions. In: Brassard, G. (ed.) CRYPTO 1989, LNCS. – Vol. 435. – P. 416–427, Springer, Heidelberg, 1989.
- Merkle R.C. Secrecy, authentication, and public key systems. Stanford Ph.D. thesis 1979.
- Biham E., Dunkelman O. A framework for iterative hash functions – HAIFA . Доступ через https://eprint.iacr.org/2007/278.pdf .
- Открытый конкурс научно-исследовательских работ, посвященных анализу криптографических качеств хеш-функции ГОСТ Р 34.11–2012 . Доступ через http://www.stree-bog.info .
- Лавриков И.В. Обзор результатов анализа хеш-функций ГОСТ Р 34.11–2012. Проблемы информационной безопасности / И.В. Лавриков, Г.Б. Маршалко, В.И. Рудской, С.В. Смышляев, В.А. Шишкин // Компьютерные системы. – 2015. – № 4. (презентация: .
- 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.
- 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.
- 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.
- 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.
- AlTawy R., Youssef A.M. Integral distinguishers for reduced-round Stribog. Information Processing Letters 114, 8 (2014), P. 426–431.
- AlTawy R., Youssef A.M. Watch your Constants: Malicious Streebog . Доступ через http://eprint.iacr.org/2014/879.pdf.
- 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.
- Рудской В.И. Об алгоритме выработки констант хеш-функции "Стрибог" . Доступ через https://www.tc26.ru/ISO_IEC/Streebog/streebog_constants_rus.pdf .
- Седов Г. Стойкость ГОСТ Р 34.11–2012 к атаке на прообраз и атаке поиска коллизий // Матем. вопр. криптогр. – 2015. –№ 6:2. – С. 79–98.
- 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.
- Borodin M., Rybkin A., Urivskiy A. High-Speed Software Implementation of the Prospective 128-bit Block Cipher and Streebog Hash-Function. – CTCrypt, 2014.
- 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.
- Казимиров А., Смышляев С. О создании эффективных программных реализаций отечественных криптографических стандартов. – Рускрипто, 2013 . Доступ через .
- Бородин М., Рыбкин А. Эффективная реализация базовых криптографических конструкций: перспективного алгоритма блочного шифрования с длиной блока 128 бит, функции хеширования ГОСТ Р 34.11– 2012 и ЭЦП ГОСТ Р 34.10– 2012. – Рускрипто, 2014 . Доступ через .
- Biryukov A., Perrin L., Udovenko A. Reverse-Engineering the S-Box of Streebog, Kuznyechik and STRIBOBr1 . Доступ через http://eprint.iacr.org/2015/812 .
- Saarinen M.-J. O. StriBob: authenticated encryption from GOST R 34.11–2012 LPS permutation // Математические вопросы криптографии. – 2015. – № 6:2. – С. 67–78.
- Bussi K., MGR hash function / K. Bussi, D. Dey, P.R. Mishra, B.K. Bass / . Доступ через