Хешування — це процес перетворення будь-яких даних (наприклад, тексту, паролів, файлів) в унікальний набір символів фіксованої довжини за допомогою спеціальної математичної функції, яку називають хеш-функцією. | |
Як це приблизно працює? | 1. Ви подаєте на вхід дані будь-якої довжини. 2. Хеш-функція обробляє ці дані і видає унікальний код (хеш), який має фіксовану довжину. 3. Навіть якщо змінити вхідні дані на один символ, хеш зміниться кардинально. 4. Зворотне відновлення вихідних даних із хешу зазвичай неможливе. |
Сфери використання
- Збереження паролів – замість збереження паролів у відкритому вигляді, системи зберігають лише їх хеші.
- Перевірка цілісності файлів – наприклад, коли ви завантажуєте файл і перевіряєте його контрольну суму (SHA-256).
- Швидкий пошук даних – у базах даних або структурах типу хеш-таблиць.
SHA-256
SHA-256 — це криптографічна хеш-функція, яка приймає на вхід довільні дані і повертає хеш (контрольну суму) фіксованої довжини — 256 біт. | |
Основні властивості SHA-256 | •Фіксована довжина – незалежно від розміру вхідних даних, вихід завжди 256 біт. •Односторонність – неможливо відновити вихідні дані за хешем. •Ефект лавини – навіть невелика зміна вхідних даних повністю змінює хеш. •Стійкість до колізій – дуже складно знайти два різні входи, які дають однаковий хеш. |
Як приблизно працює SHA-256? | 1. Розбиття даних на блоки по 512 біт – якщо дані менші, додається спеціальне доповнення (padding). 2. Ініціалізація внутрішніх змінних – використовується вісім 32-бітних початкових значень, визначених у стандарті. 3. Основний цикл (64 раунди обчислень) – виконується серія логічних операцій (зсуви, додавання, побітові операції) з використанням 64 унікальних констант. 4. Фінальне хешування – вихідні значення змішуються та формують 256-бітний підсумковий хеш. |
Приклад SHA-256 Вхід: “hello” SHA-256 хеш: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 Вхід: “Hello” (відрізняється лише однією великою літерою) SHA-256 хеш: 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969 |
Дуже короткий огляд хеш-функцій
Сімейство SHA | • SHA-1 (160-бітний хеш, вважається застарілим через вразливість до колізій). • SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512) — сучасний стандарт. • SHA-3 (SHA3-224, SHA3-256, SHA3-384, SHA3-512) — нове покоління, засноване на алгоритмі Keccak. |
Інші хеш-функції | • MD5 (128-бітний, швидка, але небезпечниа для криптографії). • RIPEMD-160 (схожа на SHA-1, але більш стійка). • BLAKE2, BLAKE3 (швидші за SHA-256, використовується в криптовалюті). • Whirlpool (512-бітний, використовується в деяких криптографічних системах). |
Хешування vs Шифрування
Характеристика | Шифрування | Хешування |
Призначення | Захист інформації від сторонніх | Генерація відбитка для перевірки даних |
Процес | Дані перетворюються у зашифрований текст. | Дані перетворюються у фіксований рядок за допомогою хеш-функції |
Зворотність | Зворотний процес можливий—дані можна розшифрувати за допомогою правильного ключа. | Неможливо відновити оригінальні дані за отриманим хешем. |
Застосування | Захист файлів, передача даних у мережах (HTTPS, VPN), шифрування жорстких дисків. | Перевірка цілісності файлів, зберігання паролів, цифрові підписи. |
Шифрування і хешування – це два різні методи обробки даних у сфері кібербезпеки.
Якщо потрібно приховати дані та згодом їх розшифрувати – використовуйте шифрування.
Якщо потрібно створити унікальний відбиток даних – використовуйте хешування.
В цьому відео поговоримо про:
00:00 Хешування
02:42 Сфери використання
03:15 SHA-256
08:46 Дуже короткий огляд хеш-функцій
11:37 Хешування vs Шифрування