Numer „Nic-up-my-sleeve” - Nothing-up-my-sleeve number
W kryptografii , liczby „nic w rękawie” to dowolne liczby, które ze względu na swoją konstrukcję są poza podejrzeniem ukrytych właściwości. Służą do tworzenia funkcji kryptograficznych, takich jak skróty i szyfry . Algorytmy te często wymagają losowych stałych do celów mieszania lub inicjalizacji. Kryptograf może chcieć wybrać te wartości w sposób, który zademonstruje, że stałe nie zostały wybrane w nikczemnym celu, na przykład w celu stworzenia backdoora do algorytmu. Te obawy można złagodzić, używając liczb stworzonych w sposób, który pozostawia niewiele miejsca na dostosowanie. Przykładem może być użycie początkowych cyfr z liczby π jako stałych. Użycie cyfr π milionów miejsc po przecinku nie byłoby uważane za godne zaufania, ponieważ projektant algorytmu mógł wybrać ten punkt początkowy, ponieważ stworzył sekretną słabość, którą projektant mógł później wykorzystać.
Uważa się, że cyfry w pozycyjnych reprezentacjach liczb rzeczywistych, takich jak π , e i pierwiastki niewymierne, pojawiają się z jednakową częstotliwością (patrz liczba normalna ). Takie liczby mogą być postrzegane jako przeciwne ekstremum liczb losowych Chaitina-Kołmogorowa , ponieważ wydają się losowe, ale mają bardzo niską entropię informacji . Ich użycie jest motywowane wczesnymi kontrowersjami dotyczącymi standardu szyfrowania danych z 1975 r. opracowanego przez rząd Stanów Zjednoczonych , który został skrytykowany, ponieważ nie podano wyjaśnienia stałych używanych w jego skrzynce S-box (chociaż później okazało się, że zostały one starannie wybrane w celu ochrony przed ówczesnymi -klasyfikowana technika kryptoanalizy różnicowej ). W związku z tym odczuwano potrzebę bardziej przejrzystego sposobu generowania stałych wykorzystywanych w kryptografii.
„Nic w rękawie” to zwrot kojarzony z magami , którzy czasami poprzedzają magiczną sztuczkę, otwierając rękawy, aby pokazać, że nie mają ukrytych przedmiotów w środku.
Przykłady
- Ron Rivest użył funkcji trygonometrycznej sinus do wygenerowania stałych dla szeroko stosowanego skrótu MD5 .
- Amerykańska Agencja Bezpieczeństwa Narodowego użyła pierwiastków kwadratowych małych liczb całkowitych do wytworzenia stałych użytych w jej „Secure Hash Algorithm” SHA-1 . Funkcje SHA-2 używają pierwiastków kwadratowych i pierwiastków sześciennych małych liczb pierwszych . SHA-1 używa również 0123456789ABCDEFFEDCBA9876543210F0E1D2C3 jako początkowej wartości skrótu.
- Blowfish algorytm szyfrowania wykorzystuje binarną reprezentację Õ (bez wstępnego 3) w celu zainicjowania ich klucza rozkład .
- RFC 3526 opisuje liczby pierwsze do wymiany kluczy w Internecie, które są również generowane z π .
- S-box z newdes szyfr pochodzi od Deklaracji Niepodległości Stanów Zjednoczonych .
- AES kandydat DFC osiąga wszystkie jego dowolnych stałych, w tym wszystkich wpisów z S-box, z binarnym ekspansji e .
- ARIA harmonogram klucz używa binarny ekspansję 1 / Õ .
- Kluczowy schemat szyfru RC5 wykorzystuje cyfry binarne zarówno z e, jak i złotego podziału .
- Funkcja Blake mieszania , finalistą SHA-3 konkurencji wykorzystuje tablicę stałych 16 słów, które są główną 512 i 1024 bitów części ułamkowej z Õ .
- Harmonogram kluczy szyfru KASUMI używa 0x123456789ABCDEFFEDCBA9876543210 do uzyskania zmodyfikowanego klucza.
- Salsa20 Rodzina szyfrów użyć ciąg ASCII „rozwinąć 32-bajtowy K” jako stałe w procesie inicjalizacji bloku.
Kontrprzykłady
- Streebog hash S pole miał być generowane przypadkowo, lecz odtworzeniem i okazały się być generowana algorytmem niektórych zagadkowych „słabych”.
- Data Encryption Standard (DES) zawiera stałe, które zostały podane przez NSA. Okazało się, że nie są one przypadkowe, ale zamiast być backdoorem , uczynili algorytm odpornym na kryptoanalizę różnicową , metodę nie znaną wówczas publicznie.
- Dual_EC_DRBG , zalecany przez NIST generator pseudolosowych bitów kryptograficznych , został skrytykowany w 2007 roku, ponieważ stałe zalecane do użycia w algorytmie mogły zostać wybrane w sposób, który pozwoliłby ich autorowi przewidzieć przyszłe dane wyjściowe na podstawie próbki wcześniej wygenerowanych wartości. We wrześniu 2013 r. The New York Times napisał, że „wewnętrzne notatki, które wyciekły z byłego wykonawcy NSA, Edwarda Snowdena , sugerują, że NSA wygenerowała jeden z generatorów liczb losowych używanych w standardzie NIST z 2006 r. - zwanym standardem Dual EC DRBG - który zawiera tylne drzwi dla NSA ”.
- Krzywe P są standaryzowane przez NIST dla kryptografii krzywych eliptycznych . Współczynniki w tych krzywych są generowane przez mieszanie niewyjaśnionych losowych nasion , takich jak:
- P-224:
bd713447 99d5c7fc dc45b59f a3b9ab8f 6a948bc5
. - P-256:
c49d3608 86e70493 6a6678e1 139d26b7 819f7e90
. - P-384:
a335926a a319a27a 1d00896a 6773a482 7acdac73
.
- P-224:
Chociaż nie jest to bezpośrednio powiązane, po ujawnieniu backdoora w Dual_EC_DRBG, podejrzane aspekty stałych krzywej P NIST'u doprowadziły do obaw, że NSA wybrał wartości, które dawały mu przewagę w znajdowaniu kluczy prywatnych. Od tego czasu wiele protokołów i programów zaczęło wykorzystywać Curve25519 jako alternatywę dla krzywej NIST P-256.
Nie ufam już stałym. Uważam, że NSA manipulowała nimi poprzez ich relacje z przemysłem.
— Bruce Schneier , NSA łamie większość szyfrowania w Internecie (2013)
Ograniczenia
Bernstein i współautorzy pokazują, że użycie liczb „nic-up-my-sleeve” jako punktu wyjścia w złożonej procedurze generowania obiektów kryptograficznych, takich jak krzywe eliptyczne, może nie być wystarczające, aby zapobiec wstawianiu tylnych drzwi. Jeśli w procedurze wyboru obiektów jest wystarczająca liczba elementów regulowanych, wszechświat możliwych wyborów projektowych i pozornie prostych stałych może być na tyle duży, że poszukiwanie możliwości pozwala na zbudowanie obiektu o pożądanych właściwościach backdoora.
Przypisy
Bibliografia
- Bruce'a Schneiera . Kryptografia stosowana , wydanie drugie. John Wiley i Synowie, 1996.
- Eli Biham , Adi Szamir , (1990). Kryptoanaliza różnicowa kryptosystemów typu DES. Postępy w kryptologii — CRYPTO '90. Springer-Verlag. 2–21.