Добавил:
Да поможет вам Котельников Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

8 Лекция - Криптографические функции хеширования

.pdf
Скачиваний:
2
Добавлен:
23.06.2024
Размер:
676.67 Кб
Скачать

21

2.

Определить w0 0||...||0 Vn .

 

3.

Для всех i

 

 

1,r 1 вычислить wi E k,ai wi 1

4.

Вычислить wr E k,ar* wr 1 , где ar* ar

||1||0||...||0

 

 

 

 

 

n len ar 1

5.Определить MAC k,a E k,wr k1 Iv .

Взавершение данного раздела отметим, что все ключевые функции хеширования, построенные на основе блочных алгоритмов шифрования, вырабатывает код целостности, длина которого совпадает с длиной блока алгоритма шифрования. Для шифров с маленькой длиной блока, скажем п = 64, в силу парадокса «дней рождений» данный класс алгоритмов становится уязвим к атакам на построение коллизий. С другой стороны, у отечественного блочного шифра «Кузнечик» длина блока n равна 128, что является приемлемым для применения шифра «Кузнечик» в режиме выработки имитовставки.

Универсальные функции хеширования

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

Определение. Пусть k K. Отображение h k,x :K V* Vn

называют ε-почти универсальной функцией хеширования (ε-almost universal, ε-AU),

если найдется действительное число ε такое, что 0<ε≤1, и для любых двух различных элементов x, y V* выполнена оценка

k K :h k,x h k, y K .

Если выполнено равенство ε=2-n, то отображение h(k,x) называют универсальной функцией хеширования.

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

Определение. Пусть, как и ранее, k K. Отображение h(k,x) называют ε-почти строго универсальным (ε-almost strong universal, ε-ASU), если выполнены следующие условия

1. для любых x V* и h Vn выполнено равенство

k K :h k,x h 2 n K .

2. Для любых различных x, y V* и для любых h,t Vn выполнена оценка

k K :h k,x h,h k, y t 2 n K

Если выполнено равенство ε=2-n, то отображение h(k,x) называют строго универсальной функцией хеширования.

Для ε-ASU функций хеширования значение ε задает величину условной вероятности появления события h(k,y) = b при выполнении события h(k,x) = а. Можно показать, что всякая функция, удовлетворяющая второму определению, также удовлетворяет и первому.

Приведем несколько универсальных функций, для которых доказано, что они являются ε-ASU функциями при некоторых значениях ε. Будем считать, что множества K и V* совпадают, а для каждого сообщения x V* используемый ключ k удовлетворяет равенству len x = len k Для сообщений х и ключей k мы будем использовать запись

x x1,...,xt ,k k1,...,kt ,,

при некотором натуральном t. Тогда, ε-ASU являются следующие функции:

22

1. MMH. Определим p=232+15 – простое число, тогда

 

t

 

 

mod232

,

h k,x

kixi mod264

mod p

 

i 1

 

 

 

 

где xi,ki 232

2.Square Hash. Пусть w ≥ 2 - натуральное число, p - наибольшее простое число меньшее, чем 2w. Определим

 

 

t

2

 

 

h k,x

ki xi

mod p ,

 

 

i 1

 

 

 

где xi,ki 2w

 

 

3.

NMH. Пусть t 2l,l и p=232+15 – простое число. Определим

 

 

l

 

 

 

h k,x

k2i 1 x2i 1 k2i x2i mod p mod232 ,

 

i 1

 

 

 

где xi,ki 232 .

 

 

4.

NH (алгоритм UMAC). Пусть w ,w 2,t 2l,l . Определим

 

 

l

 

 

 

h k,x z2i 1z2i mod22w ,

 

 

i 1

 

 

 

где zi xi

ki mod2w ,xi ,ki 22w и h k,x 22w .

 

5.

Badger. Пусть t 4l,l . Определим

 

 

 

l

vi mod264 ,

 

 

h k,x z4i 3z4i 2

 

 

i 1

 

 

 

где zi xi

ki mod232 ,vi x4i 1 232 x4i ,xi ,ki 232

и h k,x 264 .

Как видно из приведенных примеров, все функции обладают большим ключом, длина которого совпадает с длиной сообщения, для которого вычисляется код целостности. На практике ключи аутентификации имеют небольшую длину. В связи с этим, прямое использование универсальных функций хеширования затруднительно и требует описания дополнительного алгоритма развертки ключа. Наиболее известным алгоритмом, построенным на принципах универсальных функций хеширования, стал ориентированный на реализацию на 32-х битных процессорах алгоритм UMAC (Black J., Halevi S., Krawczyk H., Krovetz Т., Rogauay P. UMAC: Fast and Secure Message Authentication // Proceedings Of Crypto'99. — LNCS 1666. — Springcr-Verlag. — 1999. — pp.216-233).

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

Представим исходное сообщение а, для которого нужно вычислить код целостности, в виде

a a1 ||...||a2l;a1,...,a2l 232 ;l

Пусть k Vm — ключ аутентификации, а Е(k, ∙) - алгоритм зашифрования блочного

n

шифра с длиной блока n, кратной 32. Обозначим .s 32 тогда производным ключом

является последовательность значений k1,...,k2l 232 , вычисляемая по следующему правилу:

23

2l ksi 1 ||...|| ksi s ti E k,ti 1 ,i 0. 1,

s

в котором величина t0 1||0...0 .

После выработки производного ключа алгоритм UMAC определяет значение кода целостности равенством

l

MAC k,a z2i 1z2i mod264 ,

i 1

где zi xi ki mod232 ,xi ,ki 232 .

Режимы шифрования с возможностью аутентификации

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

EncMac k1,k2,a = c,s

EncMac k1,k2,a :Vm1 Vm2 V* V* Vn

где m1 — длина ключа зашифрования k1 m2 — длина ключа аутентификации k2 а n— длина кода целостности s.

Обратным к отображению EncMac k1,k2,a будет являться отображение

DecMac k1,k2,c,s = a,b

DecMac k1,k2,c,s :Vm1 Vm2 V* Vn V* 0,1 ,

где значение b V1 0,1 рассматривается как булева величина, являющаяся результатом

проверки совпадения полученного значения s с вычисленным значением МAC(k2, a) и принимающая значение 1, если значения совпадают, и 0 - иначе. Более того, для отображения DecMac k1,k2,c,s должно быть выполнено равенство

DecMac k1,k2,EncMac k1,k2,a = a,1 .

Отметим, что ключи k1 и k2, используемые в данных отображениях, могут совпадать

Поскольку отображения EncMac k1,k2,a

и DecMac k1,k2,c,s совмещают в себе

функции алгоритмов шифрования/расшифрования и одновременно алгоритма выработки кода целостности, то мы дадим следующее определение.

Определение. Мы будем называть отображения EncMac k1,k2,a и

DecMac k1,k2,c,s , определенные выше, режимом шифрования с возможностью

аутентификации (англ. authenticated encryption) или аутентифицированным шифрованием, если будут выполнены следующие условия.

1.При любом фиксированном значении ключа аутентификации k2 =k отображения EncMac k1,k,a и DecMac k1,k,c,s определяют симметричный шифр (для

блочных шифров необходимо выполнение условий, накладываемых определением из соответствующего раздела).

2.При любом фиксированном значении ключа зашифрования k1 = k0 отображение EncMac k0,k2,a удовлетворяет определению ключевой функции хеширования.

3.При любых фиксированных значениях ключей k1, k2 и известном наборе

сообщений a1,...,at V* и соответствующих им значений

c1,...,ct V*, где

24

 

EncMac k1,k2,ai ci ,si ,i 1,t , задача нахождения пары значений

a V* ,

s Vn таких, что

EncMac k1,k2,a = c,s ,s si,i 1,t,

должна являться трудноразрешимой для максимально возможного натурального значения t.

Следует отметить, что в настоящее время не существует стандартизированного решения, описывающего режим шифрования с возможностью аутентификации. До недавнего времени в рекомендациях NIST (NIST Special Publication 800-38D. Recommendation for Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC. - 2007) был описан режим, получивший название GMAC. Однако в 2012 году был предложен алгоритм построения коллизии для данного режима (Saarinen M.J.O. Cycling Attacks on GCM, GHASH and Other Polynomial MACs and Hashes. — 2012. http://eprint.iacr.org/2011/202.).

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

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

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

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

2.Подход на основе полиномиальных конструкций, примером которого может служить функция GMAC. Коротко данная функция может описана следующим образом.

Пусть n - длина блока алгоритма зашифрования, Iv Vn — синхропосылка.

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

ω0 = Е(k, Iv), i i 1 0 i , i

Рассмотрим сообщение a a1 ||...||ar,a1,...,ar Vn , и определим шифртекст c c1 ||...||cr равенствами

ci ai E k, i

 

 

 

i 1,r.

Тогда, значение кода целостности определяется равенством

MAC k,a E k,hr Iv , i 1,r, где hi ci hi 1 0 ,hi GF 2n ,h0 0.

3. Третий подход к построению режимов шифрования с аутентификацией основан на использовании универсальных функций хеширования. Впервые такой подход был предложен в работе (Лебедев П.А., Нестеренко А.Ю. Режим шифрования с возможностью аутентификации // Системы высокой доступности. — Том 9. — N 3. — 2013. — стр. 6-13) .

25

Пусть, как и ранее, n — длина блока алгоритма зашифрования Е, k1 – секретный ключ зашифрования, k2 — секретный ключ аутентификации, α — примитивный элемент

поля GF(2n) и Iv Vn — синхропосылка.

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

a a1 ||...||a2r , где

lenai n, i 1,2r 2

при r ≥ 2 и при любом r ≥ 1

0 lena2r 1 n,0 lena2r n

Данное представление означает, что исходное сообщение а дополняется нулями до тех пор, пока суммарная длина не станет равной 2rn для минимально возможного натурального числа r, то есть

a|| 0...0 a1 ||...||a2r .

2rn lena

Определим процедуру зашифрования сообщения а в режиме XTS следующими равенствами:

0 E k2,Iv ,

i 0 i,

i E k1,ai i ,

ci i i, i 1,r',

где

 

 

2r,if lena2r n

 

 

2r 1,if lena2r 1 n,0 lena2r

n

r'

2r 2,if

0 lena

n,lena

0

 

 

2r 1

2r

 

Тогда, шифртекст с определяется равенствами:

1.

c c1 ||...||c2r , если r' = 2r;

 

 

 

, если

 

 

 

 

 

 

 

 

2.

c c ||...||c

2r 1

||c*

||lsb lena

2r

,c

 

r' = 2r-1, где

c*

 

2r

 

2r

,

 

1

2r

 

 

2r 1

 

 

 

 

2r

 

 

 

 

2r E k1, 2r a2r ||msb n lena2r,c2r 1 , 2r

0 2r ;

 

 

 

 

 

 

3.

c c ||...||c

2r 2

||c*

 

||lsb lena

2r 1

,c

2r 2

,

если

r'

=

2r-2,

где

 

1

2r 1

 

 

 

 

 

 

 

 

 

 

 

 

 

c2*r 1 2r 1 2r 1,

 

2r 1 E k1, 2r 1 a2r 1 ||msb n lena2r 1,c2r 2 ,

2r 1 0 2r 1.

Сформулированные соотношения соответствуют равенствам для режима XTS, приведенным нами в соответствующем разделе. При этом для любого значения r' = r выполнено равенство len с = len a, то есть размер шифртекста совпадает с размером открытого текста

Для вычисления кода аутентичности сообщения а нам потребуются значения γ1,…,γ2r, определенные формулами, приведенными выше, при r' > 2r - 2. Если же

выполнено равенство r’ = 2r - 2, то мы определим величину 2r E k2, Iv , для некоторой константы Vn .

Теперь воспользуемся универсальной функцией NH, описанной нами ранее, и определим

26

r

hz2i 1z2i mod22n ,

i1

где zi ai i mod2n для всех i 1,2r и h 22w . Тогда значение кода аутентичности определяется равенством Mac k1,k2,a =E k1,t , где шифрование выполняется в режиме простой замены, а величина t определена равенством

t h l mod22n ,l lena||0...0||E k ,lena ,lenl 2n .

2

2n