NIST SP 800-90A - NIST SP 800-90A

NIST SP 800-90A ("SP" oznacza " publikację specjalną ") jest publikacją Narodowego Instytutu Standardów i Technologii pod tytułem Rekomendacja dotycząca generowania liczb losowych przy użyciu deterministycznych generatorów bitów losowych . Publikacja zawiera specyfikację trzech rzekomo bezpiecznych kryptograficznie generatorów liczb pseudolosowych do wykorzystania w kryptografii : Hash DRBG (oparty na funkcjach haszujących ), HMAC DRBG (oparty na HMAC ) oraz CTR DRBG (oparty na szyfrach blokowych w trybie licznika ).

Od 24 czerwca 2015 aktualna wersja publikacji to Revision 1. Wcześniejsze wersje zawierały czwarty generator Dual_EC_DRBG (oparty na kryptografii krzywych eliptycznych ). Później doniesiono, że Dual_EC_DRBG prawdopodobnie zawiera backdoora kleptograficznego wstawionego przez Agencję Bezpieczeństwa Narodowego Stanów Zjednoczonych (NSA), podczas gdy pozostałe trzy generatory liczb losowych są akceptowane jako niekontrowersyjne i bezpieczne przez wielu kryptografów.

Jako dzieło rządu federalnego USA , NIST SP 800-90A jest własnością publiczną i jest swobodnie dostępny.

Backdoor w Dual_EC_DRBG

W ramach programu Bullrun , NSA wprowadza backdoory do systemów kryptograficznych. Jednym z takich celów zaproponowano w 2013 r. jako Dual_EC_DRBG. NSA osiągnęła to, pracując podczas procesu normalizacji, aby ostatecznie zostać jedynym redaktorem normy. W celu zaakceptowania Dual_EC_DRBG do NIST SP 800-90A, NSA powołała się na użycie Dual_EC_DRBG przez znaną firmę RSA Security w swoich produktach. Jednak RSA Security otrzymała od NSA 10 milionów dolarów za domyślne korzystanie z Dual_EC_DRBG, w umowie, którą Reuters opisuje jako „obsługiwaną przez liderów biznesu, a nie czystych technologów”. Ponieważ kontrakt o wartości 10 milionów dolarów na uzyskanie przez RSA Security korzystania z Dual_EC_DRBG został opisany przez Reuters jako tajny, osoby zaangażowane w proces akceptacji Dual_EC_DRBG do NIST SP 800-90A prawdopodobnie nie zostały poinformowane o tym oczywistym konflikcie interesów. To może pomóc wyjaśnić, w jaki sposób generator liczb losowych okazał się później gorszy od alternatyw (oprócz tylnych drzwi) trafił do standardu NIST SP 800-90A.

Potencjał backdoora w Dual_EC_DRBG został już udokumentowany przez Dana Shumowa i Nielsa Fergusona w 2007 roku, ale nadal był wykorzystywany w praktyce przez firmy takie jak RSA Security aż do ujawnienia w 2013 roku. Biorąc pod uwagę znane błędy w Dual_EC_DRBG, pojawiły się później oskarżenia, że ​​RSA Security świadomie umieściła backdoora NSA w swoich produktach. RSA odmówiła świadomego umieszczania backdoora w swoich produktach.

Po ujawnieniu przez NSA backdoora, NIST ponownie otworzył publiczny proces weryfikacji standardu NIST SP 800-90A. Zmieniona wersja NIST SP 800-90A, która usuwa Dual_EC_DRBG, została opublikowana w czerwcu 2015 r.

Analiza bezpieczeństwa

Próba dowodu bezpieczeństwa dla Dual_EC_DRBG stwierdza, że ​​wymaga trzech problemów, aby były matematycznie trudne, aby Dual_EC_DRBG było bezpieczne: problem decyzyjny Diffie-Hellmana, problem x-logarytm i problem z obciętymi punktami. Decyzyjny problem Diffiego-Hellmana jest powszechnie uznawany za trudny. Problem x-logarytmiczny nie jest powszechnie akceptowany jako trudny, ale pewne dowody wskazują, że problem ten jest trudny, ale nie dowodzi, że jest trudny. Dowód bezpieczeństwa jest zatem wątpliwy i zostanie uznany za nieważny, jeśli okaże się, że problem x-logarytm jest rozwiązywalny, a nie trudny. Problem z obciętymi punktami wymaga odcięcia wystarczającej liczby bitów od punktu wybranego przez Dual_EC_DRBG, aby nie można go było odróżnić od prawdziwie losowej liczby. Jednak obcięcie 16 bitów, domyślnie określone przez standard Dual_EC_DRBG, okazało się niewystarczające, aby dane wyjściowe były nie do odróżnienia od prawdziwego generatora liczb losowych, a zatem unieważnia dowód bezpieczeństwa Dual_EC_DRBG, gdy używana jest domyślna wartość obcięcia.

Hash_DRBG i HMAC_DRBG mają zabezpieczenia dla pojedynczego wywołania w celu wygenerowania liczb pseudolosowych. Artykuł potwierdzający bezpieczeństwo Hash_DRBG i HMAC_DRBG przytacza próbę dowodu bezpieczeństwa dla Dual_EC_DRBG użytą w poprzednim akapicie jako dowód bezpieczeństwa, aby powiedzieć, że nie należy używać CTR_DRBG, ponieważ jest to jedyny DRBG w NIST SP 800-90A, który nie ma zabezpieczenia dowód.

HMAC_DRBG ma również weryfikację maszynową. Teza zawierająca zweryfikowany komputerowo dowód bezpieczeństwa dowodzi również, że złamanie prawidłowo zaimplementowanej instancji HMAC_DRBG nie zagraża bezpieczeństwu liczb wygenerowanych przed włamaniem.

CTR_DRBG

Wykazano, że CTR_DRBG ma problemy z bezpieczeństwem, gdy jest używany z pewnymi parametrami, ponieważ kryptografowie nie uwzględnili rozmiaru bloku szyfru podczas projektowania tego generatora liczb pseudolosowych. CTR_DRBG wydaje się bezpieczne i nie do odróżnienia od prawdziwego losowego źródła, gdy AES jest używany jako podstawowy szyfr blokowy, a 112 bitów jest pobieranych z tego generatora liczb pseudolosowych. Gdy AES jest używany jako bazowy szyfr blokowy i 128 bitów jest pobieranych z każdego wystąpienia, wymagany poziom bezpieczeństwa jest zapewniany z zastrzeżeniem, że 128-bitowy szyfr w trybie licznika można odróżnić od prawdziwego generatora liczb losowych. Gdy AES jest używany jako podstawowy szyfr blokowy i z tego generatora liczb pseudolosowych pobieranych jest więcej niż 128 bitów, wynikowy poziom bezpieczeństwa jest ograniczony rozmiarem bloku, a nie rozmiarem klucza, a zatem rzeczywisty poziom bezpieczeństwa jest znacznie niższy niż poziom bezpieczeństwa poziom wynikający z rozmiaru klucza. Wykazano również, że CTR_DRBG nie zapewnia oczekiwanego poziomu bezpieczeństwa za każdym razem, gdy używany jest potrójny DES, ponieważ jego 64-bitowy rozmiar bloku jest znacznie mniejszy niż rozmiar klucza 112-bitowego używanego w potrójnym DES.

Historia wersji NIST SP 800-90A

Zobacz też

Bibliografia

Linki zewnętrzne