ЕДИНЫЙ ПОДХОД К УСОВЕРШЕНСТВОВАНИЮ ИЗВЕСТНЫХ ФУНКЦИЙ ХЭШИРОВАНИЯ Хасанов П.Ф., Ахмедова О.П.
Актуальность Функции хэширования имеют важнейшее значение в обеспечении стойкости алгоритмов электронной цифровой подписи и шифрования данных. Установление слабостей наиболее известных функций хэширования, как SHA-1, MD5, ГОСТ Р и др., продвинула в ряд актуальных проблем криптографии. В настоящее время сотрудниками Центра научно-технических и маркетинговых исследований УзАСИ разработан проект изменений к Oz DSt 1106:2006, на основе нелинейных функций алгебры параметров.
Базовые требования к криптографической хэш-функции на вход функции может подаваться сообщение любой длины; на выходе функции получается сообщение фиксированной длины; хэш-функция достаточно просто вычисляется для любого сообщения; хэш–функция – однонаправленная функция; зная сообщение М трудно определить, другое сообщение М, для которого H(M) = H(M).
АЛГЕБРА ПАРАМЕТРОВ В усовершенствованной функции хэшировании используется новая односторонняя функция модульной арифметики - возведение в отрицательную степень. Главные операции умножения, возведения в степень и обращения в односторонней функции названы умножением, возведением в степень и обращением с параметром. В функции хэшировании в качестве параметра используется тройка натуральных чисел (A, B, R).
Основные нелинейные преобразования Основными нелинейными преобразованиями являются: во-первых, преобразование Сцепление (M i, H i-1 ) (XOR (M i \-1, H i-1 \-1 )), в котором используется операция сложения по модулю 2 (XOR) над результатами обращения с параметром (A, B, R) - хэш- значения H i-1 (i-1)-го блока M i-1 входных данных и i-го блока M i входных данных, используемое взамен функции XOR в известных алгоритмах; во-вторых, преобразование Возведение в степень (состояние), используемые в процедуре хэширования, которое осуществляется над каждым байтом текущего массива состояние и заключается в возведении в отрицательную степень элементов на байтовом уровне по модулю p на основе операции возведения в степень с параметром (A, B, R). Если в известных алгоритмах данное преобразование отсутствует, то оно дополнительно включается в состав каждого раунда.
Главные операции Операция возведения основания a в степень x с параметром (A, B, R) по модулю p обозначается в виде: a\ x (mod p). (1) Например, для x = - 5 с параметром (A, B, R) имеем: a \-5 ((((a \-1 ) \-1 ) \-1 ) \-1 ) \-1 (mod p), (2) где: a \-2 (a \-1 ) \-1 (mod p), a \-3 (a \-2 ) \-1 (mod p), a \-4 (a \-3 ) \-1 (mod p), a \-5 (a \-4 ) \-1 (mod p). (3) Операция обращения переменной a с параметром (A, B, R) по модулю p, обозначается в виде: a \-1 и определяется как a \-1 - A* a х (B + R x a) -1 (mod p), (4) где: a a \-1 0 (mod p), a \-1 a 0 (mod p), 0 – единичный элемент алгебры параметров. Данное свойство операции обращения служит для обеспечения необратимости обращения. Операция умножения чисел a и b с параметром (A, B, R) по модулю p, определяется как a b A* a + (B + R х a) х b (mod p) (5).
Основными модернизированными являются следующие преобразования: 1) Преобразование QoshHolat(holatn,holat) В преобразовании QoshHolat(holatn,holat), где holatn = M i, holat = H i-1 сначала реализуются преобразования обращения Teskari(holat) и Teskari(holatn) с параметром (A, B, R): h [s,u] - A h * h[s,u]*(B h + R*h [s, u]) -1(mod р), hn [s,u] - A hn * hn [s,u]*(B hn + R* hn [s, u]) -1(mod р), для 0 s < 4, 0 u < 8; где: hn- элементы массива kirish (holatn), A h J h + 2* h [s,u]+ Δ (mod р), A hn J hn + 2* hn[s,u]+ Δ (mod р), B h K h - 2* h [s,u] (mod р), B hn K hn - 2* hn[s,u] (mod р), J h s=3,u=7 s=0,u=0 h [s,u] (mod р), J hn s=3,u=7 s=0,u=0 hn[s,u] (mod р), K h s=3,u=7 s=0,u=0 h [s,u] (mod р), K hn s=3,u=7 s=0,u=0 hn[s,u] (mod р).
2) Преобразование Daraja(holat) В преобразовании Daraja(holat), где holat = состояние, каждый байт массива holat заменяется его -3 (-5) степенью по модулю р на основе операции возведения в степень с параметром (A, B, R): h[s,u] \-1 - A 1 * h[s,u]*(B 1 + R*h[s, u]) \-1 (mod р), h[s,u] \-2 - A 2 * h[s,u] \-1 *(B 2 + R* h[s,u] \-1 ) -1(mod р), h[s,u] \-3 - A 2 * h[s,u] \-2 *(B 2 + R* h[s,u] \-2 ) -1(mod р), h[s,u] \-4 - A 2 * h[s,u] \-3 *(B 2 + R* h[s,u] \-3 ) -1(mod р), h[s,u] \-5 - A 2 *h[s,u] \-4 *(B 2 + R* h[s,u] \-4 ) -1(mod р), для 0 s < 4, 0 u < 8, где: R k [1], x= - 5, A 1 J 1 + 2* h [s,u]+ Δ (mod р), B 1 K 1 - 2* h [s,u] (mod р), J 1 s=3,u=7 s=0,u=0 h [s,u] (mod р), K 1 s=3,u=7 s=0,u=0 h [s,u] (mod р), A 2 J 1 + J 2 + 2* h[s,u] \-1 + Δ (mod р), B 2 K 1 * K 2 - 2* h[s,u] \-1 (mod р), J 2 s=3,u=7 s=0,u=0 h[s,u] \-1 (mod р), K 2 s=3,u=7 s=0,u=0 h[s,u] \-1 (mod р).
Заключение 1. В усовершенствованной функции хэшировании в качестве параметра используется тройка натуральных чисел (A, B, R) и нелинейная операция обращения алгебры параметров. Использование параметров А и В, как функции массива holat и входного массива является важным фактором повышения стойкости функции хэшировании. 2. Совместное использование операций сложения по модулю 2 (XOR) и обращения с параметром (A, B, R) в преобразовании QoshHolat(), повышает стойкость любой функции хэшировании. 3. Нелинейность преобразования Daraja() обеспечивает однонаправленность хэш-функции. Спасибо за внимание!!!