Wprowadzenie
Avalanche Effect (Efekt Lawinowy) to jedna z najważniejszych pożądanych właściwości w kryptografii. Mówi, że nawet bardzo mała zmiana (np. jednego bitu) w danych wejściowych lub kluczu powinna powodować radykalną, nieprzewidywalną zmianę w wyniku (szyfrogramie lub hashu).
Idea Claude’a Shannona
Koncepcja pochodzi od Claude’a Shannona (ojca teorii informacji). Efekt lawinowy jest realizacją zasady diffusion (rozproszenie) – jedna z dwóch kluczowych zasad projektowania bezpiecznych szyfrów (druga to confusion – zamieszanie).
Idealny Avalanche Effect
Przy zmianie jednego bitu na wejściu powinno zmienić się średnio 50% bitów na wyjściu. Ta właściwość nazywana jest Strict Avalanche Criterion (SAC).
Przykłady algorytmów
- AES – doskonały efekt lawinowy
- SHA-256 / SHA-3 – bardzo silny Avalanche Effect
- ChaCha20 – jeden z najlepszych w swojej klasie
- DES – słaby efekt lawinowy (dlatego został zastąpiony)
Znaczenie praktyczne
- Zapobiega atakom różnicowym (differential cryptanalysis)
- Zwiększa bezpieczeństwo haseł – podobne hasła dają całkowicie różne hashe
- Zapewnia integralność danych (nawet mała zmiana jest natychmiast widoczna)
- Jest kluczowy w funkcjach skrótu i algorytmach blokowych
Testowanie
Kryptografowie testują algorytm, zmieniając po jednym bicie tysiące razy i analizując statystyczny rozkład zmian na wyjściu. Dobry algorytm powinien być bardzo bliski ideału 50%.
Powiązane pojęcia
Diffusion • Confusion • Strict Avalanche Criterion (SAC) • AES • SHA-256 • Cryptographic Hash Function • Kerckhoffs’s Principle • Differential Cryptanalysis