Wprowadzenie
Birthday Attack (atak urodzinowy) to kryptograficzny atak wykorzystujący paradoks urodzinowy. Polega na tym, że prawdopodobieństwo kolizji (znalezienia dwóch różnych danych dających ten sam hash) jest znacznie wyższe niż się intuicyjnie wydaje.
Paradoks urodzinowy
W grupie 23 osób prawdopodobieństwo, że przynajmniej dwie mają urodziny w tym samym dniu wynosi ponad 50%. W kryptografii oznacza to, że przy 128-bitowym hashu (np. MD5) wystarczy około 2^64 prób, aby znaleźć kolizję z wysokim prawdopodobieństwem.
Matematyczna zasada
Liczba prób potrzebna do kolizji ≈ √(2 × 2ⁿ × ln(2)) ≈ 1.177 × 2^(n/2)
Gdzie n to długość hashu w bitach.
Przykłady zastosowania
- Łamanie MD5 i SHA-1 (już praktycznie złamane)
- Ataki na certyfikaty SSL/TLS
- Generowanie kolizji w funkcjach haszujących
- Ataki na protokoły uwierzytelniania
Obrona przed Birthday Attack
- Używanie dłuższych hashów (SHA-256, SHA-3, BLAKE3)
- HMAC (Hash-based Message Authentication Code)
- Double Hashing
- Salting
Aktualny status (2026)
Birthday Attack nadal jest jedną z najważniejszych technik ataku na funkcje haszujące. Dlatego w nowoczesnej kryptografii używa się algorytmów z co najmniej 256-bitowym wyjściem. Atak ten ma również znaczenie w kontekście AI – np. przy generowaniu kolizji w modelach hashujących lub atakach na systemy weryfikacji.
Powiązane pojęcia
Hash Collision • MD5 • SHA-1 • SHA-256 • Cryptographic Hash Function • HMAC • Salting