Современные информационные
технологии/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] = 6A09E667H[1] = BB67AE85H[2] = C6EF372H[3] = A54FF53AH[4] = 510E527FH[5] = 9B05688CH[6] = 1F83D9ABH[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.