Retrocomputing
Redazione Scene & Code
Retrocomputing

L’enigma delle curve NIST non era crittografia, ma archeologia del codice retrò

Un mistero crittografico lungo 25 anni era un generatore di una libreria C degli anni Novanta e un orologio, e l’abilità che l’ha risolto somiglia più al retrocomputing che alla matematica.

Pubblicato
24 ottobre 2026
Lettura
4 min
Categorie
Retrocomputing

Foto: Sébastien Pourcel / Wikimedia Commons (CC BY-SA 4.0)

E se una delle teorie del complotto più longeve della crittografia fosse morta non perché qualcuno ha violato un cifrario, ma perché qualcuno ha riconosciuto un cattivo generatore di numeri casuali degli anni Novanta? In sostanza è quello che è appena successo, e crediamo sia una storia di retrocomputing travestita da crittografia.

I seed erano un orologio e un generatore debole, non una frase segreta

Il 16 ottobre 2026 Anthropic ha pubblicato un articolo di ricerca in cui spiega che un modello di ricerca interno di Claude ha ricondotto i seed delle curve NIST P-192, P-224, P-256, P-384 e P-521 a lrand48, il generatore di numeri casuali della libreria C, inizializzato con timestamp Unix compresi tra maggio 1997 e aprile 1998. I seed erano stati forniti dalla NSA per lo standard FIPS 186-2 senza alcuna spiegazione. La versione più nota voleva che fossero hash di una passphrase scherzosa. Anthropic sostiene che fosse sbagliata e che al modello siano bastati meno di trenta minuti.

Il risultato non è una violazione. Anthropic lo dice chiaramente: non è "una rottura crittografica, un nuovo attacco o una debolezza delle curve ECDSA". Filippo Valsorda, che ha gestito la ricompensa, ha reimplementato l’algoritmo in Go per verificarlo, secondo il resoconto di dev.to. Il premio di 36.864 dollari va all’Internet Security Research Group.

L’abilità decisiva è stata sapere com’era il software del 1997

Osserva come ci è arrivato il modello. La ricerca della leggendaria passphrase è fallita. Ha funzionato un’ipotesi sull’epoca: il programma generatore probabilmente usava un PRNG (generatore di numeri pseudocasuali) distribuito con le librerie C degli anni Novanta, e quelli sono abbastanza deboli da essere riconoscibili. Claude ha analizzato i seed e ha notato che, in quattro su dieci, il bit più alto di ogni parola a 32 bit era zero. Anthropic stima la probabilità di questo evento in 1 su 5.810. È l’impronta digitale di lrand48, che restituisce solo 31 bit di uno stato a 48.

Chi ha smanettato con effetti della demoscene, vecchi formati di salvataggio dei giochi o codice di tracker classici conosce questa mentalità. Non ti chiedi "cosa intendevano fare?", ma "quali strumenti avevano a portata di mano?". Generatori congruenziali lineari, chiamate a srand inizializzate con l’orologio, output troncati: è il pane quotidiano di chi ha fatto reverse engineering di un titolo dell’era a 16 bit per scoprire come venisse estratto il suo bottino "casuale". La comunità crittografica ha passato 25 anni a trattare i seed come un enigma politico. La risposta stava nell’umile cassetta degli attrezzi dell’epoca.

Secondo noi questa è la lezione sottovalutata. Il vecchio codice dell’era Unix è pieno di spiegazioni banali per cose che in seguito sembrano sinistre, e chi è meglio attrezzato per trovarle è chi conosce le abitudini del periodo, non solo la matematica.

L’IA come archeologa: notevole, ma leggi le note a piè di pagina

È facile leggerla come "l’IA risolve in 30 minuti un mistero di 25 anni". Noi la ridimensioneremmo. La mezz’ora è il resoconto di Anthropic su un’esecuzione interna, e il modello non è identificato oltre "un modello di ricerca interno". Come osserva mind-verse, i resoconti documentano questa specifica ricostruzione, non un tasso di successo generale. Alcuni commentatori di Hacker News hanno inoltre sostenuto che una ricerca retroattiva di timestamp adatti potrebbe produrre corrispondenze simili, secondo borncity. L’articolo di Anthropic offre una verifica robusta di suo: ogni stato recuperato rigenera tutti i 160 bit di un seed, cosa che, secondo l’azienda, non avviene per caso.

E l’archeologia non è finita. Anthropic ammette che il seed di B-163 resta senza spiegazione e che non sa come siano stati generati i punti base di P-224, P-256, P-384 e P-521. Quindi il modello è un buon scavatore, non un oracolo.

Eppure ciò che ci ha colpiti è il metodo, non la velocità: formulare un’ipotesi sul software dell’epoca, costruire uno scanner, notare un’anomalia e poi applicare una tecnica da manuale sui reticoli (la riduzione LLL) per recuperare lo stato nascosto. È ciò che farebbe un reverse engineer umano in gamba. La differenza è che questo non si stanca mai di provare 34 combinazioni di generatore e porzione di output.

Usa l’IA come una pala e tieniti gli archeologi

Per chi usa P-256: niente da fare. Anthropic dice che non c’è alcuna azione da intraprendere. Per tutti gli altri c’è una morale discreta e pratica. Un generatore inizializzato con l’orologio è segreto quanto l’orologio. Se il tuo codice produce token o codici invito con un generatore non crittografico, ti suggeriamo di passare a quello crittografico del tuo sistema operativo.

Il nostro verdetto: festeggia il risultato, ma festeggia la cosa giusta. Il titolo dice "l’IA è veloce". La storia migliore è che conservare e comprendere il vecchio codice è lavoro di sicurezza. Mantieni documentate le vecchie librerie, tieniti le persone che sanno leggerle e usa i nuovi strumenti come un’ottima pala, non come sostituto dell’archeologo.

Argomenti di discussione

Ancora nessun argomento: apri il primo.

Altri articoli