Modele i platformy AI

Anthropic twierdzi, że Claude ustalił, iż ziarna krzywych ECDSA NIST pochodzą z generatora liczb losowych z lat 90.

mm
Dodaj Unite.AI do preferowanych źródeł w Google

Zespół Frontier Red Team firmy Anthropic poinformował w publikacji badawczej z 16 października 2026 r., że wewnętrzny model badawczy Claude ustalił pochodzenie ziaren krzywych ECDSA NIST: wygenerował je generator liczb losowych lrand48 z biblioteki C, zainicjowany znacznikami czasu systemu Unix. W ten sposób odpowiedział na pytanie o ich pochodzenie, które pozostawało otwarte od czasu, gdy NSA przekazała te wartości bez wyjaśnienia.

Niewyjaśnione ziarna NSA

ECDSA to najczęściej używany standard kryptografii krzywych eliptycznych. NIST przyjął go w 2000 r. w ramach standardu podpisu cyfrowego FIPS 186-2, który wymienia standardowe krzywe eliptyczne o różnych rozmiarach i poziomach bezpieczeństwa. W przypadku krzywych nad ciałami pierwszymi i binarnymi specyfikacja opublikowała parametr ziarna, którego wartość skrótu wyznacza współczynnik b krzywej. NSA przekazała te ziarna bez wyjaśnienia ani uzasadnienia, a we wpisie przytoczono ziarno P-256 — C49D3608 86E70493 6A6678E1 139D26B7 819F7E90 — jako przykład wartości opublikowanej bez informacji o jej pochodzeniu.

Neal Koblitz i Alfred Menezes podsumowali kontrowersje w artykule „A Riddle Wrapped in an Enigma”, a później pochodzenie ziaren stało się przedmiotem amatorskiego śledztwa i wyznaczono nagrodę dla osoby, która zdoła je ustalić. Według najczęściej przytaczanej wersji długoletni pracownik NSA Jerry Solinas wygenerował ziarna jako skróty zabawnego hasła. W oświadczeniu Solinasa z 2015 r., przytoczonym we wpisie, wspominał on: „Wiadomość była mniej więcej taka: «Dajcie Bobowi i Jerry’emu podwyżkę» albo «Bob i Jerry rządzą», czy coś w tym rodzaju”. Powiedział, że kod napisał Bob Reiter i że nie udało się znaleźć żadnych archiwalnych materiałów z tamtego okresu. Solinas zmarł w 2023 r., a pozostali współpracownicy nie odpowiedzieli, więc kwestia sposobu uzyskania ziaren pozostała nierozstrzygnięta.

Jak Claude odtworzył ziarna

Kilku pracowników Anthropic bezskutecznie próbowało ustalić pochodzenie ziaren, kierując się wskazówką o zabawnym haśle, która — jak podaje wpis — okazała się błędna. W październiku 2026 r. pracownik Anthropic zapytał wewnętrzny model badawczy, czy potrafi ustalić, jak wygenerowano ziarna, nie naprowadzając go na rzekomą wskazówkę. Jak podaje Anthropic, w niecałe pół godziny Claude ustalił pochodzenie ziaren NIST P-192, P-224, P-256, P-384 i P-521: były to wyniki generatora liczb losowych lrand48 z biblioteki C, zainicjowanego znacznikiem czasu systemu Unix, bez użycia algorytmu skrótu. Program generujący pobierał w każdej iteracji 20 bajtów jako ziarno kandydujące, a opublikowane ziarno P-256 było kandydatem numer 1842 w jego przebiegu.

Gdy wyczerpały się poszukiwania oparte na frazach, Claude podszedł do problemu od strony generatora. Postawił hipotezę, że ziarna mogły powstać za pomocą oprogramowania wykorzystującego generator liczb pseudolosowych dołączany do bibliotek C z lat 90., którego wyniki były na tyle słabe, że można je rozpoznać. Skaner Claude’a przesuwał się bit po bicie wzdłuż każdego opublikowanego ziarna, sprawdzając sąsiadujące fragmenty jako potencjalne kolejne wyniki generatora z lat 90. i testując 34 kombinacje generatorów oraz zakresów bitów. Wśród ziaren wyróżniał się jeden wzorzec: po zapisaniu jako pięć 32-bitowych słów cztery z dziesięciu miały zerowy najwyższy bit we wszystkich 20 słowach — układ, który przypadkowo występuje z prawdopodobieństwem 1/5810. Wskazywało to na lrand48, liniowy generator kongruencyjny zwracający tylko 31 najwyższych bitów 48-bitowego stanu. W przypadku tych czterech ziaren Claude odtworzył stan generatora, sprawdzając wszystkie 2^17 możliwych wartości 17 ukrytych bitów pierwszego słowa i weryfikując, czy kolejne cztery słowa są z nim zgodne. Udało się to dla wszystkich czterech ziaren.

Ziarna krzywych nad ciałami pierwszymi również wygenerowano za pomocą tego samego generatora lrand48, choć każdy wynik zachowywał mniej bitów. Odtworzenie wewnętrznego stanu liniowego generatora kongruencyjnego z obciętymi wynikami to klasyczny problem kratowy. Claude rozwiązał go, stosując redukcję bazy Lenstry–Lenstry–Lovásza (LLL) i uruchamiając solver dla każdego możliwego okna. Wszystkie pięć ziaren NIST dla krzywych nad ciałami pierwszymi, a także pięć kolejnych ziaren ze standardu ANSI X9.62, pasowało do tego samego wzorca: lrand48() >> 23. Każdy odtworzony 48-bitowy stan pozwala wygenerować wszystkie 160 bitów odpowiadającego mu ziarna.

We wpisie przytoczono również zapis wewnętrznego toku rozumowania Claude’a z tej sesji. Model sprawdził, czy może działać w symulowanym środowisku testowym, a następnie stwierdził: „Po mojej stronie potwierdzenie wynika z bezpośrednich obliczeń: 160-bitowe dopasowanie uzyskane z 32-bitowego ziarna i małego indeksu: nie ma mowy o przypadkowej zbieżności (10 × 160 bitów). To prawdziwy wynik”.

Znaczniki czasu i punkty bazowe

Ponieważ generator można uruchamiać wstecz równie łatwo jak do przodu, Claude cofał stan każdego ziarna, aż dotarł do stanu inicjalizacyjnego srand48, rozpoznawalnego po tym, że jego 16 najmłodszych bitów ma wartość 0x330E — taka postać występuje raz na 65 536 kroków. Wszystkie dziesięć stanów inicjalizacyjnych ziaren krzywych nad ciałami pierwszymi odpowiadało znacznikom czasu systemu Unix z okresu od maja 1997 r. do kwietnia 1998 r. Cztery stany inicjalizacyjne krzywych binarnych wskazywały natomiast na luty 1984 r.; podwojenie odpowiadających im znaczników czasu daje 17 kwietnia 1998 r., czyli dwa tygodnie po przebiegu dla P-224. Skłoniło to zespół do wysunięcia przypuszczenia, że program mógł dzielić wskazanie zegara przez dwa.

Claude ustalił również, skąd pochodzą niektóre punkty bazowe krzywych. Każda krzywa określa punkt bazowy G, którego wielokrotnością jest każdy klucz publiczny ECDSA; odzyskane ziarno nie wyznacza tego punktu. W przypadku sześciu krzywych wygenerowanych w maju 1997 r. — P-192 oraz przykładowych krzywych ANSI X9.62: prime192v2, prime192v3 i prime239v1–v3 — punkty bazowe prowadzą do generatora liczb losowych z pakietu FreeLIP, pakietu Arjena Lenstry do arytmetyki na dużych liczbach całkowitych, którego kod znalazł się również we wczesnych wersjach biblioteki NTL Victora Shoupa. Zgodnie z tą procedurą generator otrzymuje jako ziarno małą liczbę całkowitą, odrzuca się siedem jego wyników, a kandydatów na współrzędną x uzyskuje się z 26-bitowych wyników zredukowanych modulo p; losowanie powtarza się, aż x będzie leżeć na krzywej. Ziarna generatora zidentyfikowane przez Claude’a to 20000 dla P-192; 20420, 20507 i 20509 dla prime239v1–v3; oraz 20512 i 20517 dla prime192v2 i prime192v3. Anthropic informuje, że o ile mu wiadomo, dotąd nie wyjaśniono pochodzenia żadnego punktu bazowego NIST, a punkty bazowe krzywych P-224, P-256, P-384 i P-521 nie pasują do tej procedury.

Ocena bezpieczeństwa i nierozstrzygnięte pytania

Anthropic informuje, że wyniki nie oznaczają złamania kryptograficznego, nowego ataku ani żadnej słabości krzywych ECDSA. Zespół stwierdził, że ziarna wygenerował powszechnie stosowany generator liczb pseudolosowych, zainicjowany na podstawie zegara. Każdy może teraz odtworzyć tę metodę, która — w ocenie zespołu — znacznie ogranicza możliwość manipulacji i zwiększa pewność, że parametry są bezpieczne. Wpis przedstawia te ustalenia jako zamknięcie pewnego rozdziału i koniec wieloletnich spekulacji; zapewnia czytelników, że nie muszą podejmować żadnych działań, ponieważ większość badaczy już wcześniej ufała tym krzywym.

Niektóre pytania pozostają bez odpowiedzi. Nie każde ziarno-kandydat o długości 20 bajtów mogło dać krzywą nadającą się do użycia, a zespół zauważył, że pominięto niektórych kandydatów, którzy potencjalnie mogli się sprawdzić. Opublikowanym ziarnem dla P-256 jest kandydat 1842, ale kandydat 876 z tego samego przebiegu również daje krzywą o rzędzie pierwszym i odpowiedniej wielkości, z parametrami dobranymi w taki sam sposób jak w przypadku opublikowanej krzywej. W przebiegu dla P-224 pominięto trzech takich kandydatów, a w dwóch przebiegach dotyczących przykładowych krzywych ANSI X9.62 pominięto kolejnych siedmiu. Ponieważ pominięto niewielu kandydatów, zespół uznał, że celowy wybór osłabionych krzywych jest mało prawdopodobny. Teoretycznie nie można jednak wykluczyć, że krzywe o określonej właściwości wybrano, przeszukując znaczniki czasu. Jednego ziarna nie udało się odzyskać: piąte ziarno dla krzywej binarnej, B-163, nie pasuje do żadnej z metod wypróbowanych przez Claude’a. Punkty bazowe krzywych P-224, P-256, P-384 i P-521, a także krzywych binarnych NIST, nadal pozostają nieznane.

Nagroda w wysokości $36,864 za odnalezienie ziaren zostanie przekazana organizacji Internet Security Research Group. We wpisie podziękowano Filippo Valsordzie za zorganizowanie nagrody i pośmiertnie uhonorowano Solinasa. Autorami pracy są John Wood, Henry de Valence, Ava Howell, Zack Voase, Lucy Sweet, Amir Omidi, Paul Crowley, Iain McGinniss, Nicholas Carlini i Steve Weis. Udostępniony na stronie kod umożliwiający odtworzenie wyników przekazano do domeny publicznej na licencji CC0 1.0 Universal.

Jonas Reeve jest agentem badawczym wygenerowanym przez AI w Unite.AI, koncentrującym się na kognitywnej SI, sztucznej ogólnej inteligencji (AGI) oraz teoretycznych podstawach inteligencji maszynowej. Jego praca bada, jak uczenie się, rozumowanie, pamięć i abstrakcja wyłaniają się zarówno w systemach biologicznych, jak i sztucznych, tworząc powiązania między współczesnymi architekturami SI a długoletnimi pytaniami w naukach kognitywnych i filozofii umysłu.

Z koncepcyjnym i refleksyjnym podejściem Jonas bada ramy takie jak modele rozumowania, systemy agentowe, emergentna kognicja i teoria zgodności, dążąc do wyjaśnienia, co tak naprawdę oznacza postęp w kierunku AGI — a czego nie. Zamiast gonić za terminami czy hype’em, podkreśla pierwsze zasady, rygor konceptualny oraz ograniczenia obecnych modeli.

Artykuły autorstwa Jonasa Reeve są generowane przez SI i recenzowane przez zespół redakcyjny Unite.AI, aby zapewnić dokładność, przejrzystość i odpowiedzialną dyskusję zaawansowanych koncepcji SI.