Nel processori AMD è stata rilevata un'errore di generazione dei numeri casuali

I sviluppatori hanno scoperto una caratteristica critica nel funzionamento del generatore di numeri casuali hardware nei processori AMD di architettura Zen 2. I dispositivi non sono in grado di generare il valore 0 quando si utilizzano le istruzioni RDRAND e RDSEED, il che li distingue dalle soluzioni analoghe Intel.
Il problema è stato identificato durante il test del codice a basso livello in assembly. A differenza del comportamento standard dei generatori di numeri casuali hardware, che dovrebbero garantire una distribuzione uniforme di tutti i valori possibili, i chip AMD eseguono sistematicamente i comandi indicati senza generare il risultato zero. Ciò crea prevedibilità nelle catene di numeri casuali, il che è critico per le operazioni crittografiche e i sistemi di sicurezza.
Per verificare il bug è stato presentato un codice di test che consente di verificare l'assenza dello zero nel campione. Gli utenti sulla piattaforma Hacker News hanno confermato che, eseguendo più volte le istruzioni sui processori della serie Zen 2, la probabilità di ottenere 0 rimane zero, mentre sui processori Intel il valore 0 appare con la frequenza prevista.
L'assenza della possibilità di generare l'intero intervallo di numeri può portare a vulnerabilità nei generatori di numeri pseudocasuali (PRNG) che si basano sulla fonte di entropia hardware. Si consiglia agli sviluppatori di software che utilizzano le istruzioni RDRAND o RDSEED per generare chiavi di crittografia o inizializzare vettori su sistemi con processori AMD di considerare questo limite nella progettazione dei sistemi di protezione dei dati.


