Po około 25 latach wyjaśniono pochodzenie liczb, które od dawna budziły podejrzenia kryptografów. Model Claude firmy Anthropic powiązał tajemnicze wartości przekazane przez amerykańską Agencję Bezpieczeństwa Narodowego (NSA) z popularnym, prostym generatorem liczb pseudolosowych. Odkrycie zmniejsza prawdopodobieństwo, że w parametrach krzywych kryła się celowo zaprojektowana furtka, ale nie rozwiązuje innych wyzwań związanych z bezpieczeństwem kryptowalut.
Skąd wzięły się podejrzenia
Kryptografia krzywych eliptycznych chroni wiele usług internetowych i portfeli cyfrowych. Jej bezpieczeństwo zależy między innymi od parametrów matematycznych krzywej — dlatego ważne jest, skąd pochodzą i czy zostały wybrane w przejrzysty sposób.
W 2000 roku amerykański instytut NIST przyjął zestaw krzywych zaproponowanych przez NSA. Część liczb użytych przy ich tworzeniu nie miała jednak wyjaśnionego pochodzenia. Z czasem pojawiły się obawy, że agencja mogła przetestować wiele wariantów i wybrać taki, który zawierałby ukrytą słabość.
Nieufność podsyciły późniejsze doniesienia o działaniach NSA na rzecz osłabiania standardów kryptograficznych. Jednym z przykładów był generator Dual EC, który NIST ostatecznie usunął ze swoich rekomendacji. Nie oznaczało to jednak, że krzywe z niejasnymi parametrami na pewno miały ukrytą furtkę — brakowało przede wszystkim odpowiedzi na pytanie, jak wybrano ich wartości początkowe, czyli tzw. ziarna.
Claude odnalazł źródło liczb
Przez lata badacze analizowali dokumenty, wspomnienia i same parametry krzywych. W 2023 roku za rozwiązanie zagadki wyznaczono nagrodę, ale sprawa pozostawała nierozstrzygnięta. Dopiero model badawczy Anthropic podjął trop bez podpowiedzi o wcześniejszych teoriach dotyczących pochodzenia liczb.
W mniej niż pół godziny Claude powiązał pięć ziaren krzywych NIST z generatorem lrand48, znanym ze starszych bibliotek programistycznych języka C. Model odtworzył między innymi wartość dla krzywej P-256: pasowała ona do wyniku uzyskanego na 1842. pozycji w generowanej sekwencji. Według analizy do odtworzenia liczb wykorzystano generator oraz znaczniki czasu z lat 1997–1998.
To istotne, bo każdy może dziś uruchomić program i sprawdzić, czy prowadzi do tych samych wartości. Odtworzenie wyników nie wyjaśnia jednak wszystkich szczegółów: nadal nie wiadomo na przykład, dlaczego pomijano niektóre możliwe wartości ani jak dobierano pozostałe elementy krzywych.
To odkrycie pozwala lepiej zrozumieć historię jednego z ważnych standardów kryptograficznych. Nie jest jednak dowodem, że wszystkie obawy dotyczące bezpieczeństwa kryptowalut są już nieaktualne. Warto osobno przyglądać się temu, jak powstają i jak są przechowywane klucze prywatne.
Czy użytkownicy muszą coś zrobić?
Wnioski zmniejszają obawy, że NSA wybrała parametry z ukrytym matematycznym osłabieniem. Anthropic ocenia, że użytkownicy krzywych NIST nie muszą z tego powodu podejmować żadnych działań.
Trzeba przy tym odróżnić publiczne ziarna krzywych od kluczy prywatnych używanych przez portfele. Gdyby ktoś wygenerował prywatny klucz za pomocą przewidywalnego lrand48, osoba znająca przybliżony moment jego utworzenia mogłaby próbować go odtworzyć. Nie o to chodziło jednak w przypadku ziaren NSA — były jawne od początku i nie stanowiły tajemnicy, którą można by wykraść.
Przeczytaj także: Prywatne klucze, a nie smart kontrakty, odpowiadają za 40% strat w krypto – co się zmienia. To ważny kontekst dla oceny ryzyka związanego z bezpieczeństwem portfeli.
Bitcoin korzysta z innej krzywej
Bitcoin nie używa krzywych NIST, których dotyczyła zagadka. Jego portfele opierają się na secp256k1, zdefiniowanej prostszym równaniem i niewielką liczbą parametrów. Ogranicza to przestrzeń możliwych wyborów, a tym samym możliwość dyskretnego wprowadzenia ukrytej słabości.
Ta cecha nie oznacza jednak, że Bitcoin jest odporny na każde przyszłe zagrożenie. Osobnym problemem są komputery kwantowe: odpowiednio zaawansowana maszyna mogłaby w przyszłości wykorzystać widoczny klucz publiczny do obliczenia odpowiadającego mu klucza prywatnego.
Obecnie nie istnieje komputer kwantowy wystarczająco duży i niezawodny, by przeprowadzić taki atak na klucze Bitcoina, a termin powstania takiej technologii pozostaje nieznany. Postępy w ograniczaniu błędów w układach kwantowych są jednak powodem, dla którego badacze nadal śledzą ten temat. Rozwiązanie zagadki NSA uspokaja więc jedną konkretną obawę, ale nie zamyka dyskusji o długoterminowym bezpieczeństwie kryptowalut.
Nagroda za wyjaśnienie pochodzenia liczb wynosi 36 864 dolary i ma trafić do Internet Security Research Group, organizacji non-profit stojącej za projektem Let’s Encrypt. Do jego zadań należy zapewnianie bezpłatnych certyfikatów bezpieczeństwa stronom internetowym.


25 lat i w końcu da się to odtworzyć zwykłym programem. Dobrze, że wyszło coś weryfikowalnego, a nie kolejna spekulacja o tajnych furtkach.
Uspokajają w sprawie ziaren NIST, ale „nie wiadomo, czemu pomijano niektóre wartości” brzmi jak coś, co nadal warto wyjaśnić. Sam wynik generatora nie odpowiada na wszystkie pytania o proces.
Warto rozdzielić dwie rzeczy: publiczne ziarno parametru krzywej i entropię klucza prywatnego. lrand48 ma słaby stan i nie nadaje się do generowania kluczy, ale to nie wynika z samego faktu, że użyto go do odtworzenia historycznych ziaren.
Czy ktoś może polecić sensowny materiał o migracji do kryptografii postkwantowej? Zastanawiam się, czy dla zwykłego użytkownika portfela jest już coś konkretnego do zrobienia, czy na razie tylko śledzić temat.
Bitcoin używa secp256k1, więc ten konkretny spór o ziarna krzywych NIST go nie dotyczy. Ale z tego nie wynika, że „Bitcoin jest bezpieczny przed kwantami” — to osobny problem i artykuł słusznie go oddziela.
Znowu AI dostaje nagłówek za rozwiązanie zagadki, a potem nagroda idzie do organizacji non-profit. Ciekawe, ile w tym samodzielnego odkrycia modelu, a ile dobrze ustawionego przeszukiwania źródeł i kodu.