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

Технології захисту інформації - копия

.pdf
Скачиваний:
258
Добавлен:
17.03.2016
Размер:
6.65 Mб
Скачать

Третій показник n3 (x1, x2, y1, y2 ) характеризує кількість правил гешування, при яких для заданих x1, x2 A , x1 x2 , y1, y2 B виконується рівність (6.3), тобто кількість ключів, при яких для двох вхідних послідовностей x1 та x2 відповідні їм значення геш-кодів y1 і y2 не змінюються.

Оскільки кількість ключів, при яких можуть виконуватися рівності (6.1 – 6.3), не повинне перевершувати відповідних їм Ркол H , H / B та Pкол H / B , то необхідно знати максимальну кількість таких ключів для

кожного з розглянутого набору елементів.

Треба обмежитися вивченням статистичних характеристик максимумів цих величин, а потім порівняти отримані результати з числом Ркол H (для першого критерію), з числом H / B (для другого критерію) і числом Pкол H / B (для третього критерію).

Таким чином, в якості статистичних показників оцінки колізійних властивостей, за якими будемо проводити експериментальні дослідження, пропонується використовувати:

математичні очікування m(n1 ) m(n2 ) та m(n3 ) максимумів кількості правил гешування, при яких виконуються рівності (6.1 – 6.3), відповідно;

дисперсії D(n1 ), D(n2 ) та D(n3 ) , що характеризують розсіювання значень кількості правил гешування, при яких виконуються рівності (6.1 – 6.3), щодо їх математичних сподівань, m(n1), m(n2 ) та m(n3 ) відповідно.

Оцінку колізійних властивостей за наведеними критеріями необхідно виробляти в середньостатистичному сенсі. Іншими словами, при постановці експерименту треба використовувати обмежений набір елементів x1, x2 A , x1 x2 , і відповідних їм геш-образів y1, y2 B, розглядаючи відповідні результати як вибірку з генеральної сукупності.

Природною оцінкою для математичного сподівання m випадкової величини Х є середнє арифметичне її значень Xi (або статистичне середнє).

~

1

N

m

 

 

Xi,

 

 

 

N i 1

де N – кількість реалізацій випадкової величини Х.

Оцінка дисперсії випадкової величини Х визначається виразом:

~

1

N

~ 2

D

 

(Xi m) .

 

 

N 1i 1

 

201

У силу центральної граничної теореми теорії ймовірностей при великих значеннях кількості реалізацій N середнє арифметичне буде мати розподіл, близький до нормального з математичним очікуванням:

~ ~

m m m

і середнім квадратичним відхиленням:

~

 

 

N ,

 

m

(6.4)

де – середнє квадратичне відхилення оцінюваного параметру.

При цьому вірогідність того, що оцінка відхилиться від свого математичного сподівання менше, ніж на (довірча ймовірність), дорівнює:

 

~

 

 

 

 

 

 

 

 

 

 

 

 

 

P(

m m

 

) 2Ф

 

,

(6.5)

 

~

 

 

 

 

m

 

 

 

 

 

де Ф(x) – функція Лапласа, визначається виразом:

 

 

1

 

x

 

t 2

 

Ф(x)

 

 

e

2 dt .

 

 

 

 

 

 

2 0

 

 

 

Таким чином, при проведенні експериментальних досліджень колізійних властивостей треба використовувати методи статистичної перевірки гіпотез і математичної статистики.

1. З генеральної сукупності випадкової величини X сформуємо вибірку обсягу N: X1, X2, ..., XN:

для середньостатистичної оцінки математичного сподівання m(n1)і

дисперсії

D(n1 ) в

якості випадкової величини

виступає максимум

n1 (x1, x2 )

за всіма

h(x1) h(x2 ) для заданих x1

і x2 , а отже, вибірку

сформуємо відбором з N пар елементів, x1, x2 A ,

x1 x2 ;

для середньостатистичної оцінки математичного сподівання m(n2 ) і

дисперсії D(n2 ) в якості випадкової величини виступає максимум за всіма

y1

h(x1),

а отже, вибірку сформуємо відбором з N пар елементів x1 A ,

y1

B;

 

 

 

 

для середньостатистичної оцінки математичного сподівання m(n3 ) і

дисперсії

D(n3 )

в якості випадкової величини виступає максимум

n3

(x1, x2, y1, y2 ) за

всіма парами y1 h(x1)та y2 h(x2 ),

а отже, вибірку

сформуємо відбором з N четвірок елементів x1, x2 A , x1

x2 , y1, y2 B .

202

2. При експериментальних дослідженнях колізійних властивостей

гешування:

 

 

за першим критерієм будемо

оцінювати

середнє арифметичне

~

 

~

m(n1) спостережуваних значень максимумів n1(x1, x2 ) і дисперсію D(n1 );

за другим критерієм будемо

оцінювати

середнє арифметичне

~

 

~

m(n2 )спостережуваних значень максимумів n2 (x1, y1) і дисперсію D(n2 ) ;

 

 

~

за третім критерієм будемо оцінювати середнє арифметичне m(n3 )

 

 

~

спостережуваних значень максимумів n3 (x1, x2, y1, y2 ) і дисперсію D(n3 ) .

3. Обґрунтуємо достовірність

отриманих

середньостатистичних

оцінок. Для цього зафіксуємо точність і розрахуємо значення функції Лапласа, яка, відповідно до виразу (6.5), дає відповідні довірчі ймовірності:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

~

 

 

 

 

 

 

 

 

 

 

 

~

 

 

 

~

 

D(n1)

 

 

 

 

P(

m(n1 ) m(n1 )

) 2Ф

 

 

, m(n1)

 

 

 

 

 

 

 

 

 

 

;

 

~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m(n1 )

 

 

 

 

 

N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

~

 

 

 

 

 

 

 

 

 

~

 

 

 

~

 

 

D(n2 )

 

P(

m(n2 ) m(n2 )

) 2Ф

 

 

 

, m(n2 )

 

 

 

 

 

 

 

 

 

 

 

 

 

;

 

~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m(n2 )

 

 

 

 

 

 

N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

~

 

 

 

 

 

 

 

 

 

~

 

 

 

~

 

 

 

 

D(n3 )

 

P(

m(n3 ) m(n3 )

) 2Ф

 

 

, m(n3 )

 

 

 

 

 

 

 

 

 

 

 

 

 

.

~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N

 

 

 

 

 

 

 

 

m(n3 )

 

 

 

 

 

 

 

 

 

 

 

При зворотній постановці завдання, тобто для фіксованої довірчої ймовірності Pд при обсязі вибірки N довірчий інтервал визначимо таким чином:

 

 

 

~

~

~

~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m t m m m t m ,

 

 

 

 

 

 

 

 

 

 

 

 

де t – корінь рівняння 2Ф t Pд .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Іншими словами, в цьому випадку межі довірчого інтервалу будуть

відповідати

заданій довірчій ймовірності

Pд , а точність

оцінок визна-

 

 

 

~

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

чається як t m .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для випадку, який розглядається,

при заданій імовірності Pд маємо:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

~

 

 

 

 

 

 

 

 

 

 

~

 

 

 

 

 

 

 

 

 

 

 

~

 

 

 

 

 

 

 

 

 

~

 

 

 

D(n1 )

~

 

 

D(n1 )

 

 

 

 

 

D(n1)

 

 

 

 

m(n1 ) t

 

 

 

 

 

 

 

 

 

 

m(n1 ) m(n1 )

t

 

 

 

 

 

 

 

 

 

 

 

, t

 

 

 

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N

 

 

 

 

N

 

 

 

N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

~

 

 

 

 

 

 

 

 

 

 

 

 

~

 

 

 

 

 

 

 

 

 

 

~

 

 

 

 

 

 

 

 

~

 

 

 

D(n2 )

~

 

 

 

 

D(n2 )

 

 

 

 

 

 

D(n2 )

 

m(n2 ) t

 

 

 

 

 

 

 

 

 

 

 

m(n2 ) m(n2 ) t

 

 

 

 

 

 

 

 

 

 

 

 

, t

 

 

 

 

 

 

 

 

 

 

 

 

 

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N

 

 

 

 

 

 

N

 

 

 

 

N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

~

 

 

 

 

 

 

 

 

 

 

 

 

 

~

 

 

 

 

 

 

 

 

 

 

~

 

 

 

 

 

 

 

 

~

 

 

 

D(n3 )

~

 

 

 

 

 

D(n3 )

 

 

 

 

 

D(n3 )

 

m(n3 ) t

 

 

 

 

 

 

 

 

 

 

 

m(n3 ) m(n3 ) t

 

 

 

 

 

 

 

 

 

 

 

 

, t

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N

 

 

 

 

 

 

N

 

 

 

 

 

N

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

203

На основі описаної методики будуть проводитися дослідження статистичної безпеки ключових геш-функцій. Визначені рекомендації вибору параметрів геш-кодів використовуються в процедурі гешування повідомлення в ЕЦП для забезпечення необхідного рівня цілісності й автентичності даних.

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

6.2. Алгоритми сімейства MD

Спеціалізовані геш-функції (Customised hash functions або dedicated hash functions) спеціально розроблені тільки для цілей гешування й оптимізовані для виконання цієї задачі. Третя частина стандарту ISO/IEC 10118-3 визначає три спеціалізовані геш-функції, а саме функції RIPEMD-128, RIPEMD-160 і SHA-1. Дані геш-функції засновані на використанні принципів побудови, закладених у геш-функції сімейства MDх (MD2, MD4, MD5), які спеціально розроблялися для реалізації на 32-розрядних ЕОМ. Алгоритм MD4 був запропонований Р. Райвестом у 1990 році, а в 1991 той же автор запропонував модифіковану версію алгоритму – MD5. У даний час геш-функції MD4, MD5 є найбільш розповсюдженими в практичних додатках геш-функціями, однак Р. Райвест у 2010 році визнав її небезпечною і запропонував не використовувати при розроблені програмних продуків. Крім цього деякі їх недоліки не дозволили стандартизувати їх на міжнародному рівні.

Європейський консорціум RIPE, спираючись на свої дослідження властивостей цих алгоритмів, запропонував посилену версію MD4, що одержала назву RIPEMD. Геш-функція RIPEMD по суті складається з двох паралельно працюючих і модифікованих функцій MD4, тобто функція має дві лінії. Іншою альтернативою алгоритмам MDх є алгоритм SHA-1, розроблений спільно Агентством національної безпеки США і NIST і прийнятий як американський національний стандарт (FIPS 180-1).

MD4

MD4(Message Digest 4) – геш-функція, розроблена професором Массачусетського університету Рональдом Рівестом в 1990 році,

204

а вперше описана в RFC 1186. Для довільного вхідного повідомлення функція генерує 128-розрядне геш-значення, зване дайджестом повідомлення. Цей алгоритм використовується в протоколі автентифікації MSCHAP, розробленому корпорацією Майкрософт для виконання процедур перевірки достовірності віддалених робочих станцій Windows.

Гешування з MD4 складається з 48 операцій, згрупованих в 3 раунди по 16 операцій. F-нелінійна функція; в кожному раунді функція змінюється. Mi означає 32-бітний блок вхідного повідомлення, а Ki – 32бітова константа, різна для кожної операції. На рис. 6.6 наведено структуру раунда MD4.

Алгоритм MD4.

Передбачається, що на вхід подано повідомлення, що складається з біт, геш якого необхідно обчислити. Тут – довільне невід’ємне ціле число, воно може бути нулем, не повинно бути кратним восьми, і може бути як завгодно великим. Запишемо повідомлення побітова, а саме у вигляді: m0m1...mb 1 .

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

Крок 1. Додавання відсутніх бітів.

Повідомлення розширюється так, щоб його довжина в бітах за модулем 512 дорівнювала 448. Таким чином, у результаті розширення, повідомленням бракує 64 біти до довжини, кратної 512 бітам. Розширення проводиться завжди, навіть якщо повідомлення спочатку має потрібну довжину.

A

B

C

D

 

F

 

 

Mi

 

 

 

Ki

 

 

 

<<s<

 

 

 

A

B

C

D

Рис. 6.6. Структура раунда MD4

205

Розширення проводиться таким чином: один біт, що дорівнює 1, додається до повідомлення, а потім додаються біти, рівні 0, до тих пір, поки довжина повідомлення не стане рівною 448 за модулем 512. У результаті до повідомлення додається як мінімум 1 біт, і як максимум 512.

Крок 2. Додавання довжини повідомлення.

64-бітове уявлення b (довжини повідомлення перед додаванням набивальних бітів) додається до результату попереднього кроку. У

малоймовірному випадку, коли b більше, ніж 64 використовуються

2 ,

тільки 64 молодших біти. Ці біти додаються у вигляді двох 32-бітових слів, і першим додається слово, що містить молодші розряди.

На цьому етапі (після додавання бітів і довжини повідомлення) отримуємо повідомлення довжиною, кратною 512 бітам. Це еквівалентно тому, що це повідомлення має довжину, кратну 16-ти 32-бітовим словами. Кожне 32-бітове слово містить чотири 8-бітних, але йдуть вони не підряд, а навпаки (наприклад, з восьми 8-бітових слів (abcdefgh) отримуємо два 32-бітових слова (dcba hgfe)). Нехай M 0...N 1 означає масив слів отриманого повідомлення (тут N кратно 16).

Крок 3. Ініціалізація MD-буфера.

Для обчислення гешу повідомлення використовується буфер, що складається з 4 слів (32-бітних регістрів): A,B,C,D . Ці регістри ініціалізувалися такими шістнадцятковим числами (молодші байти спочатку):

word А : 67 45 23 01; word B : ef cd ab 89; word С: 98 ba dc fe; word D : 10 32 54 76.

Крок 4. Обробка повідомлення блоками по 16 слів.

Для початку необхідно визначити три допоміжні функції, кожна з яких отримує на вхід три 32-бітових слова, і за ними обчислює одне 32бітове слово.

F(X, Y, Z) = XY;

F(X, Y, Z) = XY XZ;

G(X, Y,Z) = XY XZ YZ;

H(X, Y, Z) = XYZ.

На кожну бітову позицію F діє як умовний вираз: якщо X , то Y; інакше Z . Функція F могла б бути визначена з використанням замість

206

V, оскільки XY і XZ не можуть рівнятися 1 одночасно. G діє на кожну бітову позицію як функція максимального значення: якщо, щонайменше, в двох словах з X, Y, Z відповідні біти рівні 1, то G видасть 1 в цьому біті, а інакше G видасть біт, що дорівнює 0. Зазначимо, що якщо біти X, Y і Z статистично незалежні, то біти F(X,Y,Z) і G(X, Y,Z) будуть

також статистично незалежні. Функція H реалізує побітовий XOR , вона володіє такою же властивістю, як F і G.

Крок 5. Формування гешу.

Результат (геш-функція) виходить як ABCD. Тобто треба виписати 128 біт, починаючи з молодшого біта А, а закінчуючи старшим бітом D.

Реалізація алгоритму мовою С міститься в RFC 1320.

Порівняння з MD5.

MD4 використовує три цикли з 16 кроків кожен, в той час, як MD5 використовує чотири цикли з 16 кроків кожен.

У MD4 додаткова константа в першому циклі не застосовується. Аналогічна додаткова константа використовується для кожного з кроків у другому циклі. Інша додаткова константа використовується для кожного з кроків в третьому циклі. У MD5 різні додаткові константи, T i , застосовуються для кожного з 64 кроків.

MD5 використовує чотири елементарні логічні функції, по одній на кожному циклі, порівняно з трьома в MD4, по одній на кожному циклі.

У MD5 на кожному кроці поточний результат складається з результатом попереднього кроку. Наприклад, результатом першого кроку є зміненим словом A. Результат другого кроку зберігається в D і утворюється додаванням A до циклічно зрушеному вліво на певне число біт результату елементарної функції. Аналогічно, результат третього кроку зберігається в C і утворюється додаванням D до циклічно зрушеному вліво результату елементарної функції. MD4 це останнє додавання не включає.

Безпека.

Рівень безпеки, який закладався в MD4, був розрахований на створення досить стійких гібридних систем електронного цифрового підпису, заснованих на MD4 і криптосистеми з відкритим ключем. Рональд Рівест вважав, що алгоритм гешування MD4 можна використовувати і для систем, які потребують сильної криптостійкості. Але в той

207

же час він зазначав, що MD4 створювався передусім як дуже швидкий алгоритм гешування, тому він може бути поганий в плані криптостійкості. Як показали дослідження, він був правим, і для додатків, де важлива насамперед крипостійкість, став використовуватися алгоритм MD5.

Вразливості.

Вразливості в MD4 були продемонстровані у статті Берта ден Боєра і Антона Босселаріса в 1991 році. Перша колізія була знайдена Гансом Доббертіном в 1996 році.

MD2

MD2 (The MD2 Message Digest Algorithm) – геш-функція, розроб-

лена Рональдом Рівестом (RSA Laboratories) в 1989 році, і описана в RFC 1319. Розмір геша – 128 біт. Розмір блоку вхідних даних – 512 біт.

Алгоритм MD2.

Передбачається, що на вхід подано повідомлення, що складається з b байт, геш якого нам належить обчислити. Тут b – довільне невід’ємне ціле число, воно може бути нулем або яким завгодно великим. Запишемо повідомлення побайтово, у вигляді: m0m1...mb 1.

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

Крок 1. Додавання відсутніх біт.

Повідомлення розширюється так, щоб його довжина в байтах за модулем 16 дорівнювала 0. Таким чином, у результаті розширення довжина повідомлення стає кратною 16 байтам. Розширення проводиться завжди, навіть якщо повідомлення спочатку має потрібну довжину.

Розширення проводиться таким чином: i байт, рівних i , додається до повідомлення, так щоб його довжина в байтах стала рівною 0 по модулю 16. У результаті до повідомлення додається як мінімум 1 байт, і як максимум 16.

На цьому етапі (після додавання байт) повідомлення має довжину в точності кратну 16 байтам. Нехай M 0...N 1 означає байти отриманого повідомлення (N кратно 16).

Крок 2. Додавання контрольної суми.

16-байтним контрольна сума повідомлення додається до результату попереднього кроку.

208

Цей крок використовує 256-байтову "випадкову" перестановчу матрицю, що складається з цифр числа пі:

PI_SUBST [256] = {

41, 46, 67, 201, 162, 216, 124, 1, 61, 54, 84, 161, 236, 240, 6, 19, 98, 167, 5, 243, 192, 199, 115, 140, 152, 147, 43, 217, 188, 76, 130, 202, 30, 155, 87, 60, 253, 212, 224, 22, 103, 66, 111, 24, 138, 23, 229, 18,

190, 78, 196, 214, 218, 158, 222, 73, 160, 251, 245, 142, 187, 47, 238, 122, 169, 104, 121, 145, 21, 178, 7, 63, 148, 194, 16, 137, 11, 34, 95, 33, 128, 127, 93, 154, 90, 144, 50, 39, 53, 62, 204, 231, 191, 247, 151, 3, 255, 25, 48, 179, 72, 165, 181, 209, 215, 94, 146, 42, 172, 86, 170, 198,

79, 184, 56, 210, 150, 164, 125, 182, 118, 252, 107, 226, 156, 116, 4, 241, 69, 157, 112, 89, 100, 113, 135, 32, 134, 91, 207, 101, 230, 45, 168, 2, 27, 96, 37, 173, 174, 176, 185, 246, 28, 70, 97, 105, 52, 64, 126, 15, 85, 71, 163, 35, 221, 81, 175, 58, 195, 92, 249, 206, 186, 197, 234, 38, 44, 83, 13, 110, 133, 40, 132, 9, 211, 223, 205, 244, 65, 129, 77, 82, 106, 220, 55, 200, 108, 193, 171, 250, 36, 225, 123, 8, 12, 189, 177, 74, 120, 136, 149, 139, 227, 99, 232, 109, 233, 203, 213, 254, 59, 0, 29, 57,

242, 239, 183, 14, 102, 88, 208, 228, 166, 119, 114, 248, 235, 117, 75, 10, 49, 68, 80, 180, 143, 237, 31, 26, 219, 153, 141, 51, 159, 17, 131, 20};

Крок 3. Формування гешу.

Геш обчислюється як результат X 0...15 , на початку йде байт X 0 , а наприкінці X 15 .

На цьому завершується опис алгоритму MD2. В RFC 1319 можна знайти реалізацію алгоритму мовою C.

Безпека.

Роже і Шаво в 1997 році опублікували приклад колізій для MD2, хоча і не змогли представити алгоритм знаходження інших колізій.

У 2004 році було показано, що MD2 схильний атаці на знаходження колізій зі складністю, еквівалентній 2104 операцій гешування (Міллер, 2004). Міллер заявив: "MD2 не може більше розглядатися як криптостійкий алгоритм гешування".

MD5

MD5 – це поліпшена версія MD4 [16]. Хоча вона складніше MD4, їх схеми схожі, і результатом MD5 також є 128-бітове значення. На рис. 6.7 наведено структуру раунда MD5.

209

Розглянемо алгоритм отримання дайджеста повідомлення MD5 (RFC 1321), розроблений Роном Рівестом з MIT.

Логіка виконання MD5.

Алгоритм отримує на вході повідомлення довільної довжини і створює в якості виходу дайджест повідомлення довжиною 128 біт. Логіку виконання наведено на рис. 6.8.

Алгоритм складається з таких кроків: Крок 1: додавання відсутніх бітів.

Повідомлення доповнюється таким чином, щоб його довжина стала дорівнювати 448 за модулем 512 (довжина 448 mod 512). Це означає, що довжина доданого повідомлення на 64 біта менше, ніж число, кратне 512. Додавання виробляється завжди, навіть якщо повідомлення має потрібну довжину. Наприклад, якщо довжина повідомлення 448 бітів, воно доповнюється 512 бітами до 960 бітів. Таким чином, число біт, що додаються, знаходиться в діапазоні від 1 до 512.

A

B

C

D

 

F

 

 

Mi

 

 

 

Ki

 

 

 

<<<s

 

 

 

A

B

C

D

Рис. 6.7. Структура раунда MD5

 

210