Anthropic navodi da je istraživačka verzija Claude-a pomogla njegovom kriptografskom timu da rekonstruiše poreklo nekoliko objavljenih seed vrednosti eliptičkih krivih. Izveštaj od 16. oktobra povezuje pet seed vrednosti NIST krivih nad prostim poljima i četiri seed vrednosti NIST binarnih krivih sa izlazima generatora lrand48, starijeg C generatora pseudoslučajnih brojeva inicijalizovanog vrednostima izvedenim iz sata. Priložen je i kod koji ispisuje navedene seed vrednosti i reprodukuje odabrane koordinate baznih tačaka.

Rezultat se bavi pitanjem istorije standardizovanih parametara. Anthropic ne prijavljuje novi napad niti kriptografsko razbijanje. Rekonstrukcija i dalje ostavlja neke izbore neobjašnjenim, uključujući razloge za preskakanje pojedinih održivih kandidata za krive.

Velika promena

  • Šta se promenilo: Anthropic je objavio konkretan postupak generisanja i kod za seed vrednosti NIST P-192, P-224, P-256, P-384 i P-521, četiri NIST binarne krive i pet primera krivih ANSI X9.62. Njegov poseban postupak za bazne tačke daje podudaranja za P-192 i pet ANSI primera.
  • Kako: Tim navodi da je Claude prepoznao obrasce u bitovima objavljenih seed vrednosti, obnovio stanje generatora i pratio ga unazad do početnih vrednosti nalik vrednostima sata. Za šest baznih tačaka identifikovao je generator korišćen u starijem softveru za velike cele brojeve.
  • Ograničenje: Kod omogućava proveru predloženih podudaranja, ali postupak koji daje iste vrednosti ne dokumentuje svaku istorijsku odluku pri izboru niti dokazuje bezbednost krivih. BIG CHANGE je pregledao javnu objavu i istorijski standard; nije izveo nezavisnu reprodukciju.

Šta objašnjava seed vrednost krive

NIST-ov arhivirani FIPS 186-2, datiran 27. januara 2000, navodi 160-bitnu seed vrednost za svaku od pet krivih nad prostim poljima. Propisani postupak zasnovan na SHA-1 pretvara seed vrednost u koeficijent krive. Standard odvojeno navodi i polje, red krive i koordinate bazne tačke. Navodi da priložena seed vrednost omogućava čitaocu da proveri da koeficijent sledi propisani postupak; ne opisuje kako je sama seed vrednost izabrana. Ona ne određuje ni baznu tačku, fiksnu tačku koja se koristi za formiranje javnih ključeva.

Ta razlika određuje obuhvat Anthropic-ovog nalaza. Praćenje seed vrednosti može objasniti jedan ulaz standardizovane krive. Za baznu tačku potrebno je drugo objašnjenje, a podudaran izlaz ne otkriva svaku odluku ljudi koji su birali parametre.

Kako je Anthropic pratio seed vrednosti

Prema Anthropic-u, Claude je prvo u objavljenim vrednostima tražio tragove starijih C generatora pseudoslučajnih brojeva. U nekim seed vrednostima binarnih krivih najviši bit svake 32-bitne reči bio je nula. Anthropic navodi da je taj obrazac ukazao na lrand48, koji vraća 31 bit iz 48-bitnog internog stanja. Model je zatim obnovio moguća stanja i proverio da li se uzastopni izlazi podudaraju sa seed vrednostima. Kod krivih nad prostim poljima zadržano je manje bitova svakog izlaza, pa Anthropic navodi da je Claude koristio metod rešetki da obnovi skriveno stanje.

Kod iz Anthropic-ove objave polazi od stanja u stilu srand48, napreduje kroz rekurentni postupak generatora lrand48 i ispisuje 20-bajtne kandidate za seed vrednosti. Tabela navodi vremenske oznake i brojeve kandidata za P-192, P-224, P-256, P-384 i P-521, kao i ANSI primere prime192v2, prime192v3 i prime239v1 do prime239v3. Za P-256, navedeno izvršavanje dolazi do objavljene seed vrednosti kod kandidata 1.842. Vrednost P-256 ispisana u Anthropic-ovom primeru podudara se sa seed vrednošću u FIPS 186-2.

Anthropic prijavljuje povezano podudaranje za B-233, B-283, B-409 i B-571. Kod pre inicijalizacije generatora koristi vrednost sata podeljenu sa dva. Anthropic ovo tumačenje prepolovljenog sata opisuje kao mogućnost: praćenje obnovljenog stanja unazad dalo je datume u februaru 1984, dok udvostručene vrednosti odgovaraju 17. aprilu 1998. Objavljeno podudaranje podržava postupak generatora; ne utvrđuje kako su prvobitni autori odlučili da obrade vrednosti sata.

Anthropic opisuje rad kao saradnju između pitanja jednog zaposlenog, pretrage i koda internog istraživačkog modela i provera njegovog tima. Izveštaj pruža kod i primere izlaza koje drugi mogu pregledati. Nismo pronašli nezavisnu reprodukciju koju bismo citirali u ovom članku, a BIG CHANGE nije izvršio kod. Izvor zato podržava opis da je reč o rekonstrukciji koju prijavljuje Anthropic, uz istorijske NIST vrednosti kao spoljni zapis ciljnih parametara.

Šest baznih tačaka i preostale praznine

Anthropic navodi da drugi stari generator, iz paketa FreeLIP za velike cele brojeve Arjena Lenstre i ranih verzija NTL-a Viktora Šupa, daje x-koordinate baznih tačaka za P-192 i pet ANSI primera. Njegov drugi listing koda inicijalizuje taj generator malim celim brojevima, odbacuje sedam izlaza, a zatim uzima kandidate za x-koordinate dok se jedan ne nađe na krivoj. Šest primera su P-192, prime192v2, prime192v3 i prime239v1 do prime239v3. Anthropic ispisuje podudaranje za svaku objavljenu x-koordinatu. NIST-ov istorijski zapis za P-192 daje vrednost korišćenu za to poređenje.

U samom Anthropic-ovom prikazu ostaje nekoliko ograničenja. Nije uspeo da obnovi seed vrednost B-163. Nije objasnio bazne tačke za P-224, P-256, P-384 i P-521, niti za NIST binarne krive. Izvršavanja su preskakala i kandidate za koje Anthropic navodi da bi zadovoljili navedene uslove veličine i prostog reda. Jedan primer je kandidat 876 za P-256, pre objavljenog kandidata 1.842; Anthropic prijavljuje tri preskočena održiva kandidata u izvršavanju za P-224 i sedam ukupno u dva izvršavanja ANSI primera. Tim ne zna kriterijum izbora niti da li su ta preskakanja bila artefakt.

Za bezbednosne inženjere koristan novi rezultat je proverljiv prikaz načina na koji su mnoge parametarske vrednosti, po svemu sudeći, generisane. On sužava jedno dugotrajno pitanje o netransparentnim seed vrednostima, ali ne odgovara na sva pitanja o izboru krivih. Sam Anthropic navodi da nalaz nije razlog da korisnici menjaju kriptografsku praksu.

Izvori i dodatna literatura