Современные информационные технологии/4.Информационная безопасность.

к.т.н. Пархоменко І.І., Столяр Д. В.

Національний авіаційний університет, Україна.

БЕЗПЕЧНЕ ГЕШУВАННЯ ЗА ДОПОМОГОЮ КРИПТОГРАФІЧНОЇ ОДНОНАПРАВЛЕНОЇ ГЕШ-ФУНКЦІЇ SHA-256

Геш-функція  – це функція, що перетворює вхідні дані будь-якого (як правило великого) розміру в дані фіксованого розміру. Гешування (англ. hashing) – перетворення вхідного масиву даних довільної довжини у вихідний бітовий рядок фіксованої довжини. Такі перетворення також називаються геш-функціями або функціями згортки, а їх результати називають хешем, хеш-кодом або дайджестом повідомлення (англ. message digest) [2].

До найбільш популярних геш-алгоритмів можна віднести:

-       Алгоритми CRC16/32 – контрольна сума (не криптографічне перетворення).

-       Алгоритми MD2/4/5/6. Є творінням Рона Райвест, одного з авторів алгоритму RSA.

Алгоритм MD5 мав колись велику популярність, але перші передумови злому з'явилися ще наприкінці 1990-х рр., і зараз його популярність стрімко падає.

Алгоритм MD6 – дуже цікавий з конструктивної точки зору алгоритм. Він висувався на конкурс SHA-3, але, на жаль, автори не встигли довести його до кондиції, і в списку кандидатів, що пройшли в другий раунд цей алгоритм відсутня [3].

-       Алгоритми лінійки SHA – широко розповсюджені зараз алгоритми. Відбувається активний перехід від SHA-1 до стандартів версії SHA-2. SHA-2 – збірна назва алгоритмів SHA224, SHA256, SHA384 і SHA512. SHA224 і SHA384 є по суті аналогами SHA256 і SHA512 відповідно, тільки після розрахунку згортки частина інформації в ній відкидається. Використовувати їх варто лише для забезпечення сумісності з обладнанням старих моделей.

Геш-функції SHA(Secure Hash Algorithm – захищений геш-алгоритм) розроблені Агентством національної безпеки США і опубліковані Національним інститутом стандартів і технологій в якості Федерального стандарту обробки інформації FIPS PUB 180-2 у 2002 році. В цей стандарт також було включено геш-функцію SHA-1, розроблену ще в 1995 році. Всі геш-функції запатентовано. Агентство національної безпеки від лиця держави випустило патент під ліцензією Royalty Free [4].

Цей стандарт включає в себе 5 захищених геш-алгоритмів:

-                    SHA-1

-                    SHA-224

-                    SHA-256

-                    SHA-384

-                    SHA512

Кожен алгоритм складається з двох етапів:

-                    первинна обробка

-                    обчислення гешу

SHA-256 Функції і константи

SHA-256 використовує послідовність 64-х 32-х бітних констант, . Ці константи представляють собою перші 32 біти дробової частини кубічного кореня перших 64-х простих чисел.

428a2f98

71374491

b5c0fbcf

e9b5dba5

3956c25b

59f111f1

923f82a4

ab1c5ed5

d807aa98

12835b01

243185be

550c7dc3

72be5d74

80deb1fe

9bdc06a7

c19bf174

e49b69c1

efbe4786

0fc19dc6

240ca1cc

2de92c6f

4a7484aa

5cb0a9dc

76f988da

983e5152

a831c66d

b00327c8

bf597fc7

c6e00bf3

d5a79147

06ca6351

14292967

27b70a85

2e1b2138

4d2c6dfc

53380d13

650a7354

766a0abb

81c2c92e

92722c85

a2bfe8a1

a81a664b

c24b8b70

c76c51a3

d192e819

d6990624

f40e3585

106aa070

19a4c116

1e376c08

2748774c

34b0bcb5

391c0cb3

4ed8aa4a

5b9cca4f

682e6ff3

748f82ee

78a5636f

84c87814

8cc70208

90befffa

a4506ceb

bef9a3f7

c67178f2

 

Початковий вектор – перші 32 біти дробових частин квадратних коренів перших 8-ми простих чисел.

H[0] = 6A09E667
H[1] = BB67AE85
H[2] = C6EF372
H[3] = A54FF53A
H[4] = 510E527F
H[5] = 9B05688C
H[6] = 1F83D9AB
H[7] = 5BE0CD19
Для вихідного повідомлення l довжина ділить на 512, В кінець повідомлення додається «1», після чого додається така мінімальна кількість нулів k, щоб виконувалась рівність l+1+k=448 mod 512. В останні 64 біти заноситься довжина повідомлення [1].
Таким чином, повідомлення перетворюється, і далі його розбивають на N 512 бітних блоки.
Нижче приведена схема знаходження гешу алгоритму SHA-256.

 

Для зручності блок Б1 представлено наступною схемою:

Вектор W[64] знаходиться за наступною формулою:

 

В блоці Б1, змінні Т1 і Т2 розраховується за представленими нижче формулами:

Список використаних  джерел

1.                 А. П. Алфёров, А.Ю. Зубов, А.С. Кузьмин, А.В. Черёмушкин «Основы Криптографии», 2-е издание – Москва, 2002.

2.                 Хеш-функція [Електронний ресурс] // Вікіпедія: [веб-сайт]. – Режим https://uk.wikipedia.org/wiki/Хеш-функція. – Назва з екрану.

3.   Хэш-алгоритмы [Електронний ресурс] / авт.  Braindamagedman //  Хабрахабр: [веб-сайт].– Режим доступу: http://habrahabr.ru/post/93226/. – Назва з екрану.

4.                 Federal Information Processing Standards (FIPS) Publication 180-2, Secure Hash Standard (SHS), U.S. DoC/NIST, August 1, 2002.