RU2747517C1 - Способ хеширования информации - Google Patents

Способ хеширования информации Download PDF

Info

Publication number
RU2747517C1
RU2747517C1 RU2020109725A RU2020109725A RU2747517C1 RU 2747517 C1 RU2747517 C1 RU 2747517C1 RU 2020109725 A RU2020109725 A RU 2020109725A RU 2020109725 A RU2020109725 A RU 2020109725A RU 2747517 C1 RU2747517 C1 RU 2747517C1
Authority
RU
Russia
Prior art keywords
result
iteration
input
information
iterations
Prior art date
Application number
RU2020109725A
Other languages
English (en)
Inventor
Михаил Александрович Иванов
Евгений Александрович Саликов
Original Assignee
федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) filed Critical федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ)
Priority to RU2020109725A priority Critical patent/RU2747517C1/ru
Application granted granted Critical
Publication of RU2747517C1 publication Critical patent/RU2747517C1/ru

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

Изобретение относится к способу хеширования информации. Техническим результатом является повышение криптостойкости хеширования. Способ включает в себя разбиение входной строки М на n r-разрядных блоков фиксированной длины М1, М2, … Mn; дополнение в случае необходимости последнего блока Mn до длины, кратной разрядности блоков; выполнение n итераций ввода информации с использованием нелинейной функции F(Fi-1, Mi), где i=1, 2, 3, …, n; F0=F(IV), IV - вектор инициализации; выполнение d≥0 итераций обработки информации Fj=F(F(j-1)); где j=1, 2, 3, …, d; F0 - результат последней итерации ввода; выполнение k≥0 итераций вывода информации
Figure 00000026
t=1, 2, 3, …, k; где Fr(t-1) и Fc(t-1) - соответственно r младших и с старших разрядов результата (t-1)-й итерации обработки информации, Fr0 и Fc0 - соответственно r младших и с старших разрядов результата последней итерации обработки информации, после чего конкатенация r младших разрядов результата последней итерации обработки информации и r младших разрядов результатов всех итераций вывода информации
Figure 00000027
объявляется результатом хеширования, т.е. хеш-образом строки М. При выполнении каждой i-й итерации ввода информации используется блок трехвходового многораундового стохастического преобразования данных R(A, В, С), где А - преобразуемый блок данных, В - параметр преобразования, С - параметр раундовых преобразований, при этом итерация ввода осуществляется по формуле
Figure 00000028
где Fr(i-1) - r младших разрядов результата предыдущей (i-1)-й итерации, Fc(i-1) - с старших разрядов результата предыдущей (i-1)-й итерации,
Figure 00000029
IV - вектор инициализации,
Figure 00000030
- операция конкатенации. 6 ил.

Description

Изобретение относится к вычислительной технике и электросвязи, предназначено для решения задач защиты компьютерной информации. Наиболее предпочтительной областью использования изобретения является реализация стохастических методов защиты информации.
В совокупности признаков заявленного изобретения используются следующие термины:
Стохастическое преобразование (Stochastic Transformation) - непредсказуемое преобразование данных; примером стохастического преобразования может являться криптографическое преобразование;
Генератор псевдослучайных чисел (ГПСЧ) (PRNG, Pseudo-Random Number Generator) - генератор последовательности чисел, статистически не отличимой от последовательности случайных чисел с равномерным законом распределения; наиболее жесткие требования предъявляются к ГПСЧ, ориентированным на решение задач защиты информации;
Ключ (Key) - секретный параметр стохастического преобразования, представляет собой двоичную информацию, известную только законному пользователю;
Двоичный вектор - некоторая последовательность нулевых и единичных бит, например (01101010), двоичный вектор разрядности n может быть интерпретирован как элемент конечного поля GF(2n);
Замена (Substitution) - операция, выполняемая над двоичным вектором i∈GF(2n), при этом результат операции равен содержимому ячейки с индексом i таблицы замен размерности n×2n;
Перемешивание (Mix) - операция, выполняемая над двоичным вектором разрядности n, результат разрядности n которой зависит от всех входных бит и от их взаимного расположения.
Стохастическими методами защиты информации (ЗИ) принято называть методы, основанные на внесении непредсказуемости в работу средств и объектов защиты. Термин «стохастический» применительно к задачам ЗИ впервые стал применяться С.А. Осмоловским при построении кодов, обнаруживающих и исправляющих ошибки, возникающие при передаче данных по каналам связи [С.А. Осмоловский. Стохастические методы передачи данных. - М.: Радио и связь, 1991]. Примеры использования стохастических методов ЗИ приведены в следующих источниках информации:
- С.А. Осмоловский С.А. Стохастические методы защиты информации. - М.: Радио и связь, 2003.
- V. Мао. Modern Cryptography. Theory and Practice. - Prentice Hall PTR, 2003.
- M. Bellare, P. Rogaway. Optimal asymmetric encryption. In A. de Santis, editor, Advances in Cryptology - Proceedings of EUROCRYPT'94, Lecture Notes in Computer Science 950, pp. 92-111. Springer-Verlag, 1995 и др.
Только с использованием стохастических методов можно защититься от активного противника. Эффективность стохастических методов защиты определяется качеством используемых генераторов псевдослучайных чисел (ГПСЧ) и хеш-функций. Тенденцией последних лет стало массовое появление 2D и 3D стохастических преобразований:
- Barreto, V. Rijmen. The WHIRLPOOL Hashing Function. http://cryptospecs.googlecode.com/svn/trunk/hash/specs/whirlpool.pdf
- G. Bertoni, J. Daemen, M. Peeters, G. Van Assche. Keccak specifications. http://keccak.noekeon.org/Keccak-specifications-2.pdf
- Benadjila, R., Billet, O., Gilbert, H., Macario-Rat, G., Peyrin, Т., Robshaw, M., Seurin, Y. SHA-3 proposal: ECHO. Submission to NIST (updated) (2009). http://crypto.rd.francetelecom.com/echo/doc/echo_description_1-5.pdf
- P. Gauravaram, L.R. Knudsen, K. Matusiewicz, F. Mendel, C. Rechberger, M. Schlaffer, and S.S. Thomsen.
Figure 00000001
- a SHA-3 candidate. Submission to NIST (Round 3), 2011. http://www.groestl.info.
- Информационная технология. Криптографическая защита информации. Функция хеширования. ГОСТ R 34.11-2012. - Москва, Стандартинформ, 2012.
Хеш-функция h(x) - это функция, принимающая на входе в качестве аргумента информационную последовательность (прообраз) М произвольной длины и дающая на выходе в качестве результата h(M) информационную последовательность (хеш-образ) фиксированной длины. Дадим формальное определение хеш-функции. Пусть {0, 1}m - множество всех двоичных строк длины m, {0, 1}* - множество всех двоичных строк конечной длины. Тогда хеш-функцией h называется преобразование вида h: {0, 1}*→{0, 1}m, где m - разрядность хеш-образа.
Хеширование являются важным видом криптографического преобразования. Область применения хеш-функций чрезвычайно широка, они успешно решают практически все задачи защиты компьютерной информации от обеспечения аутентичности субъектов и объектов информационного взаимодействия до внесения неопределенности в работу средств и объектов защиты.
Процесс получения хеш-функции можно рассматривать как наложение псевдослучайной последовательности (ПСП) с выхода ГПСЧ на входную преобразуемую последовательность. Наиболее явно справедливость этого утверждения следует из анализа новой конструкции хеширования, получившей название Sponge.
Любая криптографическая хеш-функция h(x) должна удовлетворять следующим требованиям:
- Хеш-образ h(M) должен зависеть от всех бит прообраза М и от их взаимного расположения;
- При любом изменении М хеш-образ должен изменяться непредсказуемо, иначе говоря, в среднем должна измениться половина бит h(M);
- Хеш-функция должна быть односторонней (one-way), иначе говоря для произвольной n-разрядной строки y∈{0,1}n вычислительно сложно найти х∈{0,1}*, такое, что h(x)=y(pre-image resistance);
- Хеш-функция должна быть стойкой в смысле нахождения второго прообраза, иначе говоря, для заданной m-разрядной строки х∈{0,1}m вычислительно сложно найти произвольную строку х'∈{0,1}*, x'≠x, такую, что h(x')=h(x) (second pre-image resistance);
- Хеш-функция должна быть стойкой в смысле нахождения коллизий, иначе говоря, вычислительно сложно найти две произвольные строки х', х''∈{0,1}*, х'≠х'', такие, что h(x')=h(x'') (collision resistance).
Существует два подхода к проектированию криптографической хеш-функции: проектирование «с нуля» и построение функции хеширования на основе использования функции зашифрования блочного шифра. Примером реализации первого подхода может являться хеш-функция MD5 - многолетний неофициальный мировой стандарт на функцию хеширования. Примером реализации второго подхода может являться хеш-функция Whirlpool, построенная на основе блочного шифра W [Barreto, V. Rijmen. The WHIRLPOOL Hashing Function. http://cryptospecs.googlecode.com/svn/trunk/hash/specs/whirlpool.pdf].
Известен традиционный способ хеширования информации [Hash function using a quasi-group operation, US 2011/0179281, фиг. 1 или "Информационная технология. Криптографическая защита информации. Функция хеширования. ГОСТ R 34.11-2012". Москва, Стандартинформ, 2012)], включающий
разбиение входного сообщения М на n блоков фиксированной длины М1, М2, … Mn;
дополнение в случае необходимости последнего блока сообщения Mn до длины, кратной разрядности блоков;
выполнение n итераций хеширования hi=g(hi-1, Mi), i=1, 2, 3, …, n; с использованием функции сжатия g(hi-1, Mi), где h0=IV - вектор инициализации (Initialization Vector); после чего результат последней итерации объявляется результатом преобразования, т.е. хеш-образом сообщения.
В некоторых случаях после n-й итерации выполняется от одного до трех финальных шагов преобразования.
Уравнение работы при хешировании сообщения М=М1 М2 М3 … Mn, дополненного до длины, кратной разрядности блоков, имеет вид
hi=g(hi-1, Mi), i=1, 2, 3, …, n; h0=IV; hn=h(M);
где g(hi-1, Mi) - итерационная функция сжатия, n - число блоков сообщения М, IV - вектор инициализации.
Уравнение работы функции сжатия для одного из наиболее распространенных вариантов использования функции зашифрования Е(K, Mi):{0, 1}k × {0, 1}m → {0, 1}m блочного шифра имеет вид
g(hi-1, Mi)=E(hi-1, Mi)⊕mi⊕hi-1,
где k - разрядность ключа K, m - разрядность блока данных Mi.
Недостатком традиционного способа хеширования является низкая криптостойкость.
Начиная с 2005 года, положение в области криптографических хеш-функций стало напоминать кризисное, и по этой причине в 2007 году НИСТ США объявил открытый международный конкурс по выбору нового стандарта хеширования SHA-3. Конкурс был ответом НИСТ на последние достижения в области криптоанализа алгоритмов хеширования. Среди функций, представленных на конкурс, помимо тех, которые имели традиционную конструкцию, были представлены функции, имевшие новые конструкции, наиболее интересной из которых является Sponge.
На всех этапах конкурса в его работе активно участвовало мировое криптографическое сообщество. Основываясь на открытых комментариях, результатах криптоанализа, особенностей аппаратной и программной реализации, в октябре 2012 года НИСТ объявил 3D алгоритм Keccak победителем, завершив пятилетний конкурс. Таким образом, в качестве основы для нового стандарта SHA-3 была выбрана хеш-функция Keccak, построенная с использованием конструкции под названием Sponge (губка), конструкция которой показана на фиг. 1, где 1.1, 1.2, …, 1.n - входы, на которые поступают блоки входного сообщения; 2 - вход для вектора инициализации; 3.1, 3.2, 3.3 - выходы, с которого снимается результат преобразования, т.е. хеш-образ; 4 - итерационная нелинейная функция (псевдослучайная перестановка по терминологии авторов хеш-функции Keccak); 5 - многоразрядные блоки сложения по модулю два (XOR). Схема Sponge имеет внутреннее состояние S разрядностью b, b=r+с, значение r называется rate (определяет скорость преобразования), а значение с (параметр безопасности) - capacity. Пусть RL(Resistance Level) - уровень безопасности, тогда справедливо соотношение с≥2RL (иначе говоря, Sponge гарантирует нижнюю границу сложности 2с/2 любой атаки). Состояние делится на две части: S1 разрядностью r и S2 разрядностью с.
Процесс хеширования состоит из двух многораундовых этапов: ввод (absorbing, впитывание) и вывод (squeezing, выжимание). Особенностью этапа ввода информации является в том, что на каждом раунде блок сообщения складывается по модулю 2 только с частью состояния, а функция F производит преобразование всего состояния и делает его зависимым от всего сообщения М. На этапе вывода информации результат длины b, полученный на этапе впитывания, вновь подается на вход функции F. При этом с выхода этой функции считываются первые r бит. Этот процесс повторяется конечное число раз, при этом над r битами, считанными на каждом этапе, производится операция конкатенации (сцепления блоков). Повторение происходит до тех пор, пока не получим результат, т.е. хеш-образ, нужной длины.
Важно отметить, что функциональные возможности схемы Sponge значительно шире, чем только хеширование данных. На фиг. 2 показаны два других варианта применения схемы Sponge.
На фиг. 2,a показана схема хеширования с солью (salt) и с замедлением, что целесообразно при организации парольных систем разграничения доступа и, в частности, для противодействия атакам с использованием радужных таблиц (rainbow tables). Замедление обеспечивается за счет выполнения многораундового этапа обработки информации между этапами ввода и вывода информации.
На фиг. 2,b показано преобразование входной последовательности произвольной длины в выходную последовательность произвольной длины. Использование входа и выхода переменной длины в схеме Sponge может применяться, например, для генерации симметричных ключей из паролей.
Таким образом, наиболее близким по своей технической сущности к заявленному способу хеширования информации является способ, принятый за прототип и предполагающий использование конструкции Sponge (HASH VALUE GENERATING DEVICE, US 2016/0013932, фиг. 1A или G. Bertoni, J. Daemen, M. Peeters, G. Van Assche. Sponge functions. Ecrypt Hash Workshop, Barcelona, Spain, May 2007. http://sponge.noekeon.org/). Этот способ включает
разбиение входного сообщения М на n r-разрядных блоков фиксированной длины M1, М2, … Mn;
дополнение в случае необходимости последнего блока сообщения Mn до длины, кратной разрядности блоков;
выполнение n итераций ввода информации:
Figure 00000002
i=1, 2, 3, …, n; где Fr(i-1) - r младших разрядов результата предыдущей (i-1)-й итерации, Fc(i-1) - с старших разрядов результата предыдущей (i-1)-й итерации, с использованием нелинейной функции F(Fi-1; Mi),
Figure 00000003
IV - вектор инициализации (Initialization Vector);
выполнение d≥0 итераций обработки информации Fj=F(F(j-1)); j=1, 2, 3, …, d; где F0 - результат последней итерации ввода;
выполнение k≥0 итераций вывода информации
Figure 00000004
t=1, 2, 3, …, k; где Frt и Fct - соответственно r младших и с старших разрядов результата t-ой итерации обработки информации, Fr0 и Fc0 - соответственно r младших и с старших разрядов результата последней итерации обработки информации, после чего конкатенация r младших разрядов результата последней итерации обработки информации и r младших разрядов результатов всех итераций вывода информации
Figure 00000005
объявляется результатом хеширования, т.е. хеш-образом сообщения.
Недостатком известного решения является низкая криптостойкость. К причинам, препятствующим достижению указанного ниже результата является использование линейной операции XOR при выполнении итераций ввода информации.
Техническим результатом изобретения является повышение криптостойкости хеширования за счет использования непредсказуемого многораундового стохастического преобразования, существенно затрудняющего проведение атак, актуальных для известных конструкций хеширования.
Заявленный технический результат достигается тем, что при выполнении операции хеширования, включающей разбиение входного сообщения М на n r-разрядных блоков М1, М2, … Mn;
Figure 00000006
дополнение в случае необходимости последнего блока сообщения Mn до длины, кратной разрядности блоков;
выполнение n итераций ввода информации с использованием нелинейной функции F(Fi-1; Mi), где i=1, 2, 3, …, n; F0=F(IV), IV - вектор инициализации (Initialization Vector);
выполнение d≥0 итераций обработки информации Fj=F(F(j-1)); где j=1, 2, 3, …, d; F0 - результат последней итерации ввода;
выполнение k≥0 итераций вывода информации
Figure 00000007
t=1, 2, 3, …, k; где Frt и Fct - соответственно r младших и с старших разрядов результата t-ой итерации обработки информации, Fr0 и Fc0 - соответственно r младших и с старших разрядов результата последней итерации обработки информации, после чего конкатенация r младших разрядов результата последней итерации обработки информации и r младших разрядов результатов всех итераций вывода информации
Figure 00000008
объявляется результатом хеширования, т.е. хеш-образом сообщения;
дополнительно при выполнении каждой i-й итерации ввода информации используется блок трехвходового многораундового стохастического преобразования данных R(A, В, С), где А - преобразуемый блок данных, В - параметр преобразования, С - параметр раундовых преобразований, при этом итерация ввода осуществляется по формуле
Figure 00000009
где Fr(j-1) - r младших разрядов результата предыдущей (i-1)-й итерации, Fc(i-1) - с старших разрядов результата предыдущей (i-1)-й итерации, где i=1, 2, 3, …, n;
Figure 00000010
IV - вектор инициализации.
Суть предлагаемого способа хеширования иллюстрируют фиг. 3-7.
На фиг. 3 показаны блоки 1.1, 1.2, …, 1.n входного сообщения М=М1 М2 … Mn; вектор 2 инициализации; блоки 3.0, 3.1, 3.2 результата хеширования (хеш-образа входного сообщения); блоки 4 выполнения нелинейной функции F, число которых в общем случае равно n+d+k+1, где n - число итераций ввода, d - число итераций обработки и k - число итераций вывода информации; блоки 6 многораундового стохастического преобразования данных R(A, В, С), число которых равно числу n итераций ввода. В общем случае число блоков 3 равно k+1. На фиг. 3 показан случай k=2.
Преобразование хеширования выполняется следующим образом. Входное сообщение М разбивается на n r-разрядных блоков фиксированной длины M1, М2, … Mn. В случае необходимости последний блок сообщения Mn дополняется до длины, кратной разрядности блоков. Для получения результата хеширования выполняются n итераций ввода информации с использованием нелинейной функции F(Fi-1, Mi), где i=1, 2, 3, …, n; F0=F(IV), IV - вектор инициализации (Initialization Vector), n - число блоков входного сообщения; затем выполняются d≥0 итераций обработки информации Ft=F(F(t-1)); где t=1, 2, 3, …, d; F0 - результат последней итерации ввода; и, наконец, выполняются k≥0 итераций вывода информации
Figure 00000011
t=1, 2, 3, …, k; где Frt и Fct - соответственно r младших и с старших разрядов результата t-ой итерации обработки информации, Fr0 и Fc0 - соответственно r младших и с старших разрядов результата последней итерации обработки информации, после чего конкатенация r младших разрядов результата последней итерации обработки информации и r младших разрядов результатов всех итераций вывода информации
Figure 00000012
объявляется результатом преобразования, т.е. хеш-образом сообщения. При выполнении каждой i-й итерации ввода информации используется блок трехвходового многораундового стохастического преобразования данных R(A, В, С), где А - преобразуемый блок данных, В - параметр преобразования, С - параметр раундовых преобразований, при этом итерация ввода осуществляется по формуле
Figure 00000013
где Fr(i-1) - r младших разрядов результата предыдущей (i-1)-й итерации ввода, Fc(i-1) - с старших разрядов результата предыдущей (i-1)-й итерации ввода, где i=1, 2, 3, …, n;
Figure 00000014
IV - вектор инициализации,
Figure 00000015
- операция конкатенации.
На фиг. 4 показана схема одной итерации ввода информации при использовании блока 6, построенного на основе 512-разрядного стохастического преобразования DOZEN+.
На фиг. 5 показан пример реализации предлагаемого способа хеширования. На фиг. 5 помимо блока 1.i входного сообщения М, вектора 2 инициализации, блока 3.j результата преобразования (хеш-образа сообщения М), блока 4 выполнения нелинейной функции F и блока 6 стохастического преобразования R показаны мультиплексор 7, регистр 8 разрядностью (r+с), вход 9 тактовых импульсов и вход 10 режима, который равен нулю при выполнении итераций ввода информации и равен единице при выполнении итераций обработки и вывода информации. Устройство работает следующим образом. Перед началом работы в регистр 8 записывается вектор 2 инициализации. Цепь установки в исходное состояние на рис. 5 не показана. В режиме ввода информации (сигнал на управляющем входе 10 мультиплексора равен нулю) синхронно с блоками 1 сообщения М на вход 9 поступают тактовые импульсы, по которым в регистр 8 записывается результат очередной итерации с выхода блока 6 стохастического преобразования R и выхода 4.2 блока 4 выполнения нелинейной функции F. В режиме обработки информации (сигнал на управляющем входе 10 мультиплексора равен единице) в регистр 8 при поступлении тактового импульса на его вход 9 записывается результат очередной итерации обработки информации с выходов 4.1 и 4.2 блока 4 выполнения нелинейной функции F. В режиме вывода информации (сигнал на управляющем входе 10 мультиплексора равен единице) на выходе 3 устройства синхронно с тактовыми импульсами на входе 9 появляются блоки 3.j результата преобразования.
На фиг. 6 показан пример реализации блока 6 стохастического преобнразования R на основе 3D преобразования DOZEN+. На рис. 6 показан вход 1.i блока 6, на который поступают блоки исходного сообщения М; входы 4.1 и 4.2, на которые поступают данные соответственно с r младших и с старших выходов блока 4; 128-разрядные блоки 11 сложения по модулю два (XOR), блоки 12 замены (операция SubBytes - замена байтов), блоки 13 выполнения линейной операции L (MixSquareState - перемешивание квадрата состояния), 512-разрядный блок 14 сложения по модулю два (XOR). Результат преобразования R (Mi, K1i, K2i) с выхода блока 6 поступает на вход мультиплексора 7.
Хеширование осуществляется следующим образом. Входное сообщения М разбивается на n r-разрядных блоков М1, М2, … Mn. В случае необходимости последний блок сообщения Mn дополняется до длины r. После этого выполняются n итераций ввода информации с использованием нелинейной функции F(Fi-1, Mi), где i=1, 2, 3, …, n; F0=F(IV), IV - вектор инициализации. Затем выполняются d≥0 итераций обработки информации Fj=F(F(j-1)); где j=1, 2, 3, …, d; F0 - результат последней итерации ввода. Наконец, выполняются k≥0 итераций вывода информации
Figure 00000016
t=1, 2, 3, …, k; где Frt и Fct - соответственно r младших и с старших разрядов результата t-ой итерации обработки информации, Fr0 и Fc0 - соответственно r младших и с старших разрядов результата последней итерации обработки информации, после чего конкатенация r младших разрядов результата последней итерации обработки информации и r младших разрядов результатов всех итераций вывода информации
Figure 00000017
объявляется результатом преобразования, т.е. хеш-образом сообщения.
При выполнении каждой i-й итерации ввода информации используется блок трехвходового многораундового стохастического преобразования данных R(A, В, С), где А - преобразуемый блок данных, В - параметр преобразования, С - параметр раундовых преобразований, при этом итерация ввода осуществляется по формуле
Figure 00000018
где Fr(i-1) - r младших разрядов результата предыдущей (i-1)-й итерации, Fc(i-1) - с старших разрядов результата предыдущей (i-1)-й итерации, где i=1, 2, 3, …, n;
Figure 00000019
IV - вектор инициализации,
Figure 00000020
- операция конкатенации.
Таким образом, предложенный способ хеширования имеет повышенную криптостойкость за счет использование непредсказуемого многораундового стохастического преобразования, существенно затрудняющего проведение атак, актуальных для традиционной конструкции хеширования. Кроме того, использование в качестве стохастического преобразования 3D алгоритмов, например, алгоритмов семейства DOZEN, главное достоинство которых - высокая степень параллелизма на уровне элементарных операций, позволяет при реализации преобразования использовать не только конвейерный, но и параллельный принцип выполнения операций, обеспечивая тем самым быстродействие, приемлемое для большинства приложений.
3D преобразования семейства DOZEN описаны в следующих источниках информации:
- RU 2503994, Способ нелинейного трехмерного многораундового преобразования данных DOZEN.
- RU 2591015, Способ нелинейного трехмерного многораундового преобразования данных RDOZEN.
- Три новых способа стохастического преобразования данных / М.А. Иванов, А.А. Скитев, И.В. Матвейчиков и др. - Proceedings of The Radio-Electronic Devices and Systems for the Infocommunication Technologies (REDS-2016), Moscow, Russia, May 25-26, pp. 351-355.
Важнейшим требованием к стохастическому преобразованию информации является непредсказуемость. Дополнительным преимуществом предлагаемого способа хеширования является повышение криптостойкости стохастического преобразования, используемого при реализации блока 6. Так, например, использование алгоритма DOZEN+ в составе предлагаемой конструкции хеширования, обеспечивает большую непредсказуемость результата преобразования, чем базовая схема, в которой параметры K2i раундовых преобразований зависят от параметров K1i
K2i=KeyExpansion(K1i),
где KeyExpansion - традиционное название для процедуры формирования параметров раундовых преобразований. При использовании же алгоритма DOZEN+ в составе предлагаемой конструкции K1i и K2i - это значения на выходах соответственно 4.1 и 4.2 блока 4 (см. фиг. 4), не зависящие друг от друга.

Claims (7)

  1. Способ хеширования информации, включающий
  2. разбиение входного сообщения М на n r-разрядных блоков фиксированной длины M1, М2, … Мn;
  3. дополнение в случае необходимости последнего блока сообщения Мn до длины, кратной разрядности блоков;
  4. выполнение n итераций ввода информации с использованием нелинейной функции F(Fi-1, Mi), где i=1, 2, 3, …, n; F0=F(IV), IV - вектор инициализации (Initialization Vector);
  5. выполнение d≥0 итераций обработки информации Fj=F(F(j-1)); где j=1, 2, 3, …, d; F0 - результат последней итерации ввода;
  6. выполнение k≥0 итераций вывода информации
    Figure 00000021
    t=1, 2, 3, …, k; где Fr(t-1) и Fc(t-1) - соответственно r младших и с старших разрядов результата (t-1)-й итерации обработки информации, Fr0 и Fc0 - соответственно r младших и с старших разрядов результата последней итерации обработки информации, после чего конкатенация r младших разрядов результата последней итерации обработки информации и r младших разрядов результатов всех итераций вывода информации
    Figure 00000022
    объявляется результатом хеширования, т.е. хеш-образом сообщения;
  7. отличающийся тем, что при выполнении каждой i-й итерации ввода информации используется блок трехвходового многораундового стохастического преобразования данных R(A, В, С), где А - преобразуемый блок данных, В - параметр преобразования, С - параметр раундовых преобразований, при этом итерация ввода осуществляется по формуле
    Figure 00000023
    где Fr(i-1) - r младших разрядов результата предыдущей (i-1)-й итерации, Fc(i-1) - с старших разрядов результата предыдущей (i-1)-й итерации, где
    Figure 00000024
    IV - вектор инициализации,
    Figure 00000025
    - операция конкатенации.
RU2020109725A 2020-03-05 2020-03-05 Способ хеширования информации RU2747517C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2020109725A RU2747517C1 (ru) 2020-03-05 2020-03-05 Способ хеширования информации

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2020109725A RU2747517C1 (ru) 2020-03-05 2020-03-05 Способ хеширования информации

Publications (1)

Publication Number Publication Date
RU2747517C1 true RU2747517C1 (ru) 2021-05-06

Family

ID=75850998

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2020109725A RU2747517C1 (ru) 2020-03-05 2020-03-05 Способ хеширования информации

Country Status (1)

Country Link
RU (1) RU2747517C1 (ru)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110179281A1 (en) * 2010-01-20 2011-07-21 Apple Inc. Hash function using a quasi-group operation
RU2503994C1 (ru) * 2012-07-17 2014-01-10 федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Способ нелинейного трехмерного многораундового преобразования данных dozen
RU2504911C1 (ru) * 2012-07-17 2014-01-20 федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Способ итеративного криптографического преобразования данных
RU2519004C2 (ru) * 2012-07-17 2014-06-10 федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Способ трехмерного нелинейного преобразования замены
US20160013932A1 (en) * 2013-03-07 2016-01-14 Canon Kabushiki Kaisha Hash value generating device
RU2591015C1 (ru) * 2015-12-28 2016-07-10 федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Способ нелинейного трехмерного многораундового преобразования данных rdozen
RU2683689C1 (ru) * 2017-12-05 2019-04-01 федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Способ нелинейного трехмерного многораундового преобразования данных
WO2019190411A1 (en) * 2018-03-29 2019-10-03 Agency For Science, Technology And Research Method and system for generating a keccak message authentication code (kmac) based on white-box implementation

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110179281A1 (en) * 2010-01-20 2011-07-21 Apple Inc. Hash function using a quasi-group operation
RU2503994C1 (ru) * 2012-07-17 2014-01-10 федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Способ нелинейного трехмерного многораундового преобразования данных dozen
RU2504911C1 (ru) * 2012-07-17 2014-01-20 федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Способ итеративного криптографического преобразования данных
RU2519004C2 (ru) * 2012-07-17 2014-06-10 федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Способ трехмерного нелинейного преобразования замены
US20160013932A1 (en) * 2013-03-07 2016-01-14 Canon Kabushiki Kaisha Hash value generating device
RU2591015C1 (ru) * 2015-12-28 2016-07-10 федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Способ нелинейного трехмерного многораундового преобразования данных rdozen
RU2683689C1 (ru) * 2017-12-05 2019-04-01 федеральное государственное автономное образовательное учреждение высшего образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) Способ нелинейного трехмерного многораундового преобразования данных
WO2019190411A1 (en) * 2018-03-29 2019-10-03 Agency For Science, Technology And Research Method and system for generating a keccak message authentication code (kmac) based on white-box implementation

Similar Documents

Publication Publication Date Title
Biryukov et al. Argon2: new generation of memory-hard functions for password hashing and other applications
Liu et al. Image encryption algorithm based on hyper-chaotic system and dynamic S-box
Bertoni et al. Farfalle: parallel permutation-based cryptography
Ibrahim et al. Efficient key-dependent dynamic S-boxes based on permutated elliptic curves
EP1583278B1 (en) Stream Cipher Design with Revolving Buffers
CN110572255B (zh) 基于轻量级分组密码算法Shadow的加密方法、装置及计算机可读介质
Kanso et al. A structure-based chaotic hashing scheme
RU2591015C1 (ru) Способ нелинейного трехмерного многораундового преобразования данных rdozen
Courtois et al. Combined algebraic and truncated differential cryptanalysis on reduced-round simon
Kumaresan et al. An analytical study of cellular automata and its applications in cryptography
ITGE20110091A1 (it) Metodo di cifratura e decifratura
Zhen et al. A survey of chaos-based cryptography
RU2747517C1 (ru) Способ хеширования информации
Jamil et al. A new cryptographic hash function based on cellular automata rules 30, 134 and omega-flip network
Belfedhal et al. Building secure and fast cryptographic hash functions using programmable cellular automata
Dutta et al. Lightweight polymorphic encryption for the data associated with constrained internet of things devices
Alshawi et al. Improved Salsa20 stream cipher diffusion based on random chaotic maps
Reyad et al. Pseudo-random sequence generation from elliptic curves over a finite field of characteristic 2
Rastaghi An efficient CCA2-secure variant of the McEliece cryptosystem in the standard model
Ye et al. Hern & heron: Lightweight aead and hash constructions based on thin sponge (v1)
Kumar et al. Evaluation of Cryptographically Secure Pseudo Random Number Generators for Post Quantum Era
RU2683689C1 (ru) Способ нелинейного трехмерного многораундового преобразования данных
Chugunkov et al. Hash functions are based on three-dimensional stochastic transformations
Jungk et al. On FPGA-based implementations of Gr\{o} stl
Belfedhal et al. Fast and efficient design of a pca-based hash function