45046

MD5 (message digest algorithm)

Контрольная

Информатика, кибернетика и программирование

Обробка одного 512 бітового блока Кожний раунд приймає на вхід 512 бітовий блок Yq та 128 бітове значення буферу BCD. Елементарна операція Кожний раунд в обробці одного 512 бітового блока складається із послідовності 16 кроків кожен з яких є наступною операцією над BCD буфером: = b gb c d X[k] T[i] s де s є операцією циклічного зсуву вліво на s біт X[k] = M[q 16 k] kте 32 бітове слово в qому 512 бітовому блоці вхідного повідомлення. При надходження бітів до 2 3 та 4 раундів використовуються наступні перестановки:...

Украинкский

2013-11-15

81.5 KB

0 чел.

MD5 (message digest algorithm)

Алгоритм генерації дайджеста за вхідним повідомленням (MD5 – RFC 1321) був розроблений Роном Ріверстом в MIT. За останні роки MD5 зарекомендував себе як надійна хеш функція.

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

Рисунок 1. Генерація короткого повідомлення (дайджеста)

1. Поширення повідомлення. Повідомлення довжиною K біт поширюється так щоб його довжина L в бітах стала конгруентною 448 mod 512 (L º 448 mod 512). Якщо довжина повідомлення вже така, то додається 512 біт. Інформація, що додається, складається з одиниці та слідуючих за ній нулів (тобто 100..0). Додаватися може від 1 до 512 біт.

2. Додавання довжини. До поширеного повідомлення додається довжина вихідного повідомлення (число K) як 64 бітове число. Якщо довжина вихідного повідомлення більша за 264, то додається число K mod 264.

3. Ініціалізація MD буферу. 128 бітовий буфер використовується для зберігання проміжних та кінцевих результатів хеш функції. Буфер являє собою чотири 32 бітових регістри A, B, C, D. Регістри ініціюються наступними значеннями:

A = 67452301

B = EFCDAB89

C = 98BADCFE

D = 10325476

4. Обробка 512 бітового повідомлення. Структура модуля HMD5 зображена на рисунку 2. Функція стиснення HMD5 складається з чотирьох раундів подібної структури, але кожний з яких має свою власну логічну функцію – F, G, H та I.

Рисунок 2. Обробка одного 512 бітового блока

Кожний раунд приймає на вхід 512 бітовий блок Yq та 128 бітове значення буферу ABCD. Кожний раунд також використовує четверту частину 64 елементної таблиці T[1..64], яка побудована за допомогою функції сінуса (T[i] дорівнює цілій частині значення 232 * abs(sin(i)), де значення i задається в радіанах). Оскільки значення abs(sin(i)) лежить в проміжку від 0 до 1, то кожний елемент таблиці T є 32 бітовим числом.

Резудьтат четвертого раунду додається до входу першого раунда (CVq), в результаті чого отримується CVq+1. Додавання здійснюється за модулем 232.

5. Формування результату. Після обробки всіх L 512 бітових блоків, результатом алгоритму MD5 (128 бітовим коротким повідомленням або дайджестом) виступає вихід L – го блоку.

Раунд

Примітивна функція g

g(b, c, d)

1

F(b, c, d)

(b and c) or ((not b) and d)

2

G(b, c, d)

(b and d) or (c and (not d))

3

H(b, c, d)

b xor c xor d

4

I(b, c, d)

c xor (b or (not d))

b

c

d

F

G

H

I

0

0

0

0

0

0

1

0

0

1

1

0

1

0

0

1

0

0

1

1

0

0

1

1

1

0

0

1

1

0

0

0

0

1

1

1

0

1

0

1

0

1

1

1

0

1

1

0

0

1

1

1

1

1

1

0

Рисунок 3. Елементарна операція

Кожний раунд в обробці одного 512 бітового блока складається із послідовності 16 кроків, кожен з яких є наступною операцією над ABCD буфером:

a = b + ((a + g(b, c, d) + X[k] + T[i]) <<< s),

де <<< s є операцією циклічного зсуву вліво на s біт,

X[k] = M[q * 16 + k] – k-те 32 бітове слово в q-ому 512 бітовому блоці вхідного повідомлення.

В кожному раунді значення X[i] використовується лише один раз. До першого раунда біти надходять в тому ж порядку як вони стоять на вході. При надходження бітів до 2, 3 та 4 раундів використовуються наступні перестановки:

r2(i) = (1 + 5i) mod 16

r3(i) = (5 + 3i) mod 16

r4(i) = 7i mod 16

/* обробити кожне 16 бітове слово 512 бітового блока */

for q = 0 to (N/16) – 1 do

/* скопіючати блок q в X */

for j = 0 to 15 do

 X[j] = M[q * 16 + j]

end /* циклу по j */

AA = A

BB = B

CC = C

DD = D

/* Раунд 1 */

/* [abcd k s i]  визначає операцію a = b + ((a + F(b, c, d) + X[k] + T[i]) <<< s) */

[ABCD 0 7 1]

[DABC 1 12 2]

[CDAB 2 17 3]

[BCDA 3 22 4]

[ABCD 4 7 5]

[DABC 5 12 6]

[CDAB 6 17 7]

[BCDA 7 22 8]

[ABCD 8 7 9]

[DABC 9 12 10]

[CDAB 10 17 11]

[BCDA 11 22 12]

[ABCD 12 7 13]

[DABC 13 12 14]

[CDAB 14 17 15]

[BCDA 15 22 16]

/* Раунд 2 */

/* [abcd k s i]  визначає операцію a = b + ((a +  G(b, c, d) + X[k] + T[i]) <<< s) */

[ABCD 1 5 17]

[DABC 6 9 18]

[CDAB 11 14 19]

[BCDA 0 20 20]

[ABCD 5 5 21]

[DABC 10 9 22]

[CDAB 15 14 23]

[BCDA 4 20 24]

[ABCD 9 5 25]

[DABC 14 9 26]

[CDAB 3 14 27]

[BCDA 8 20 28]

[ABCD 13 5 29]

[DABC 2 9 30]

[CDAB 7 14 31]

[BCDA 12 20 32]

/* Раунд 3 */

/* [abcd k s i]  визначає операцію a = b + ((a +  H(b, c, d) + X[k] + T[i]) <<< s) */

[ABCD 5 4 33]

[DABC 8 11 34]

[CDAB 11 16 35]

[BCDA 14 23 36]

[ABCD 1 4 37]

[DABC 4 11 38]

[CDAB 7 16 39]

[BCDA 10 23 40]

[ABCD 13 4 41]

[DABC 0 11 42]

[CDAB 3 16 43]

[BCDA 6 23 44]

[ABCD 9 4 45]

[DABC 12 11 46]

[CDAB 15 16 47]

[BCDA 2 23 48]

/* Раунд 4 */

/* [abcd k s i]  визначає операцію a = b + ((a +  I(b, c, d) + X[k] + T[i]) <<< s) */

[ABCD 0 6 49]

[DABC 7 10 50]

[CDAB 14 15 51]

[BCDA 5 21 52]

[ABCD 12 6 53]

[DABC 3 10 54]

[CDAB 10 15 55]

[BCDA 1 21 56]

[ABCD 8 6 57]

[DABC 15 10 58]

[CDAB 6 15 59]

[BCDA 13 21 60]

[ABCD 4 6 61]

[DABC 11 10 62]

[CDAB 2 15 63]

[BCDA 9 21 64]

A = A + AA

B = B + BB

C = C + CC

D = D + DD

end /* циклу по q */


CV
L-1

CV1

128

28

128

128

128

IV

512

512 біт

довжина повідомлення K mod 264

K біт

Повідомлення

10..0

додаток (1 – 512 біт)

L * 512  біт = N * 32 біти

Y0

Y1

512 біт

YL-1

512 біт

512

512

HMD5

HMD5

HMD5

128 бітовий дайджест

CV2

A

A

A

128

32

A

B

C

D

F, T[1…16], X[i]

16 кроків

G, T[17…32], X[r2i]

16 кроків

B

C

D

CVq

B

C

D

H, T[33…48], X[r3i]

16 кроків

B

C

D

G, T[49…64], X[r4i]

16 кроків

512

Yq

+

+

+

+

128

A

B

C

D

+

g

+

CLSs

X[k]

T[i]

+

A

B

C

D


 

А также другие работы, которые могут Вас заинтересовать

52987. Компетентнісний підхід у викладанні фізики 105.5 KB
  Ключові компетенції включають в себе вміння виконувати цілісну ясну грамотну дію вирішувати реальну ситуацію задачу. У зв'язку з цим можна виділити навички та вміння які повинні виникнути у студентів: володіння інформаційними технологіями уміння їх застосовувати збір і обробка необхідної інформації; здатність вчитися все життя це основа безперервної підготовки в професійному плані а також в особистому і суспільному житті; вміння спілкуватися поважати один одного здатність жити з людьми інших культур мов і релігій. Це призводить...
52988. Методичні рекомендації з проведення навчального експерименту в системі вивчення фізики в середній школі 170.5 KB
  Методичні рекомендації з проведення навчального експерименту в системі вивчення фізики в середній школі м. Система шкільного експерименту з фізики. Роль експерименту в процесі вивчення фізики в школі.
52989. ФОРМУВАННЯ САМООСВІТНЬОЇ КОМПЕТЕНТНОСТІ УЧНІВ ЗАСОБАМИ ФІЗИКИ 103 KB
  Модель випускника готового до самоосвіти Засоби організації самоосвітньої діяльності учнів Памятки раціональної організації навчальної роботи школяра як розвязати задачу як здійснити перевірку розвязків задачі робота з підручником фізики складання плану відповіді з фізики як скласти конспект як готувати доповідь реферат як працювати з додатковою літературою як готувати домашнє завдання як виконувати письмову домашню роботу Зразки тестів та контрольних робіт для перевірки навчальних досягнень...
52990. Вивчати фізику цікаво 270 KB
  Серед безлічі шляхів формування у школярів пізнавального інтересу одним з найбільш ефективних є організація ігрової діяльності. Ігрові форми навчання дозволяють пожвавити навчальний процес, зробити його більш привабливим для учнів, підвищують інтерес до предмета в цілому, активізують мислення та творчу діяльність учнів.
52991. Використання моделей і моделювання в шкільному курсі фізики 230.5 KB
  Наводиться технологічний ланцюжок вирішення завдань на комп'ютері. Технологія моделювання вимагає від дослідника уміння ставити проблеми і завдання прогнозувати результати дослідження проводити розумні оцінки виділяти головні і другорядні чинники для побудови моделей вибирати аналогії і математичні формулювання вирішувати завдання з використанням комп'ютерних систем проводити аналіз комп'ютерних експериментів. Моделювання експерименту засобами ІКТ Сьогодні коли комп'ютер став основним інструментом дослідника різні види моделей можна...
52993. Найрозумніший (інтелект-шоу з фізики) 127.5 KB
  Стан механічної системи при якому дія на систему зовнішніх сил не викликає взаємного тиску частинок цієї системи називається: 1. Електричний струмом називається: 1 процес хаотичного руху заряджених частинок; 2 процес безперервного руху заряджених частинок; 3 процес напрямленого руху заряджених частинок. Фізична величина яка чисельно рівна добутку швидкості V руху на час t протягом якого він відбувався називається: 1 переміщенням; 2 траєкторією; 3 шляхом; 7. Пристрій який перетворює електричну енергію в енергію обертального руху...
52995. Физкультминутки на уроках русского языка в 5 – 9 классах 164.5 KB
  Когда эти буквы будут обозначать 1 звук вы поднимете голову вверх хлопнете над головой 3 раза и опустите руки вниз. Встаньте ровно руки опущены. Когда вы услышите синонимы поднимите руки вверх и хорошо потянитесь кверху. Когда услышите слово которое пишется с двумя н поднимите руки вверх.