← Академия

Модул 2 · безплатно

Еднопосочни функции (хешове)

Защо SHA-256 не може да се обърне, какво е колизия и как работят Rainbow таблиците.

Еднопосочност

SHA-256 смачква вход с произволна дължина до точно 256 бита. Информация се губи, затова обратният път не съществува математически — единственото, което нападателят може, е да опитва входове, докато не съвпадне резултатът.

Ефект на лавината: смяна на един символ променя целия хеш до неузнаваемост. Опитайте го в полето по-долу.

Колизии

Колизия значи два различни входа с един и същ хеш. За SHA-256 такава не е намирана и на практика се смята за невъзможна (около 2¹²⁸ опита). За стария MD5 колизии се правят за секунди на лаптоп.

Rainbow таблици

Ако паролите се хешират без сол, нападателят предварително смята хешовете на милиарди често срещани думи и после само търси в таблицата. Затова brain wallet-и с обикновени думи се изпразват за минути.

Лавинен ефект

Промяна на един-единствен бит във входа променя средно половината бита в изхода на SHA-256. Така от два почти еднакви входа не може да се съди, че хешовете ще си приличат.

Сол и разтягане на ключа

Солта е случайна стойност, добавяна към паролата преди хеширане. Тя прави rainbow таблиците безполезни, защото всяка сол изисква нова таблица.

Функции като PBKDF2, scrypt и Argon2 повтарят хеширането хиляди пъти или изискват много памет, за да направят всеки опит за отгатване скъп. BIP39 използва PBKDF2 с 2048 итерации.

Библиография

Източници и допълнително четене

Проверими стандарти, книги, научни публикации и архиви зад този урок.

  1. 1Стандарт2015
    FIPS PUB 180-4 — Secure Hash Standard

    NIST

    Официалната спецификация на SHA-256.

  2. 2Стандарт2011
    RFC 6234 — US Secure Hash Algorithms

    D. Eastlake 3rd & T. Hansen, IETF

    Спецификация и референтна реализация на SHA-256 на ниво алгоритъм.

  3. 3Научна публикацияCRYPTO 2003
    Making a Faster Cryptanalytic Time-Memory Trade-Off

    Philippe Oechslin

    Оригиналната рецензирана публикация, която въвежда rainbow таблиците.

  4. 4Научна публикация2008
    Bitcoin: A Peer-to-Peer Electronic Cash System

    Satoshi Nakamoto

    Първоизточник за употребата на хеш функции в Bitcoin и proof-of-work.

Проверка на знанията

Какво прави ефектът на лавината?
Защо brain wallet с проста дума е опасен?
Какво е лавинен ефект?
Срещу какво защитава солта?
Колко итерации PBKDF2 използва BIP39?
Каква е дължината на SHA-256 хеш?
Следващ модул →