485 / 691MIX-H

Entropy Mixing

Mieszanie entropii

Entropy Mixing łączy dane wejściowe do generowania tajnych wartości. Korzyść zależy od nieprzewidywalności, zależności i konkretnego mechanizmu; sama liczba źródeł ani długość skrótu nie określają bezpieczeństwa.

Mieszanie entropii przetwarza wiele wejść do wspólnego stanu lub wyniku. Należy odróżnić dostarczone dane, udokumentowaną entropię i późniejsze deterministyczne rozwijanie. Dwie nazwy interfejsów nie muszą oznaczać dwóch niezależnych źródeł.

NIST SP 800-90B wskazuje, że wspólną entropię zależnych źródeł trudno oszacować. Czasy nadejścia pakietów i dostępu do dysku mogą być powiązane. Ich osobnych oszacowań nie można więc po prostu zsumować bez udokumentowanego modelu. [NIST SP 800-90B — Additional noise sources]

RFC 4086 używa XOR jako prostego przykładu mieszania. Niezależne wejście o rozkładzie jednostajnym zachowuje jednostajność wyniku, ale kopia tego samego wejścia daje X XOR X = 0. To ilustracja zależności, a nie przepis na budowę portfela. [RFC 4086 — Mixing and randomness requirements]

Silne mieszanie może skoncentrować dostępną niepewność; deterministyczny skrót znanych wejść pozostaje przewidywalny. RFC 4086 odróżnia mieszanie od rozwijania. Długość wyniku ani dodanie znanej stałej nie dowodzą odpowiadającej im ilości nowej entropii. [RFC 4086 — Mixing and randomness requirements]

NIST SP 800-90B dopuszcza dołączenie dodatkowych wejść szumowych do źródła głównego przez zatwierdzone przetwarzanie, ale nie przyznaje im dodatkowej entropii w tym trybie. To reguła oceny, a nie twierdzenie, że inne źródła nigdy nie pomagają. [NIST SP 800-90B — Additional noise sources]

W OpenSSL 3.5 RAND_add() miesza num bajtów; randomness szacuje entropię w bajtach od zera do num. Długość bufora nie uzasadnia tego oszacowania. Domyślny generator zwykle inicjalizuje się i odnawia automatycznie ze źródeł systemowych. [OpenSSL 3.5 — RAND_add and FIPS reseeding]

Dokumentacja OpenSSL 3.5 podaje, że w trybie FIPS dane aplikacji są tylko dodatkowym wejściem, nie zaufanym źródłem entropii. Ich domieszanie nie liczy się jako pełny reseed. Samo wywołanie RAND_add() nie dowodzi więc takiego odnowienia. [OpenSSL 3.5 — RAND_add and FIPS reseeding]

RFC 5869 rozróżnia HKDF-Extract i HKDF-Expand. Pierwszy skupia entropię wejściową, drugi wyprowadza wymaganą długość. Parametr info wiąże wynik z kontekstem aplikacji; nie zastępuje dobrego materiału początkowego ani nie dowodzi nowej entropii. [RFC 5869 — HKDF extraction, expansion and independence]

Kontrola powinna ustalić pochodzenie wejść, zależności, możliwości atakującego i konkretny mechanizm. RFC 5869 wyraźnie omawia niezależność i manipulację solą. Lista źródeł lub test losowego wyglądu nie dowodzą bezpieczeństwa konstrukcji po awarii źródła. [RFC 5869 — HKDF extraction, expansion and independence]

Pełniejszy obraz uzyskasz, czytając to hasło razem z Cryptographic Entropy, CSPRNG, True Random Number Generator, Seed Generation. Do tego hasła prowadzą również odsyłacze z Dice Roll Entropy, True Random Number Generator.

DOC · 001NIST SP 800-90B — Additional noise sourcesSpecyfikacja ↗DOC · 002RFC 4086 — Mixing and randomness requirementsSpecyfikacja ↗DOC · 003OpenSSL 3.5 — RAND_add and FIPS reseedingDokumentacja ↗DOC · 004RFC 5869 — HKDF extraction, expansion and independenceSpecyfikacja ↗
Najpierw źródła · To nie jest porada inwestycyjna