Quale ruolo giocano le cifre di hashing e block in generazione di numeri casuali?

4

Ho letto di generatori di numeri pseudo casuali e c'erano alcune richieste su cui "funzione hash sottostante" e "codice a blocchi sottostante" da utilizzare. Quale ruolo giocano gli algoritmi di hashing e i codici a blocchi nella generazione di numeri casuali?

    
posta JFB 25.01.2018 - 14:01
fonte

2 risposte

2

Le funzioni di hash vengono spesso utilizzate come una funzione di missaggio per acquisire dati di input potenzialmente distorti e trasformarli in modo tale che è altamente improbabile che tali pregiudizi abbiano un impatto negativo sulla qualità dello stato RNG del sistema. Ciò è utile quando stai cercando di accumulare entropia da fonti che potrebbero contenere solo casualità parziale, e alcuni dei dati potrebbero essere influenzati da un utente malintenzionato. Finché uno qualsiasi dei bit di input è sconosciuto e imprevedibile, i bit di output dell'hash manterranno quell'imprevedibilità.

I cifrari simmetrici sono spesso usati per produrre DRBG - generatori di bit casuali deterministici. Configurando un cifrario come AES o RC4 come cifrario di flusso con un valore di seme segreto come chiave, l'uscita del codice diventa un generatore di bit casuale crittograficamente sicuro. Ciò è utile nei casi in cui è necessario disporre di numeri casuali ripetibili ma sicuri, ad es. dove due sistemi devono entrambi produrre lo stesso flusso di numeri casuali ma la casualità deve essere sicura.

    
risposta data 25.01.2018 - 14:18
fonte
0

Quando hai bisogno di un generatore di numeri pseudocasuali crittograficamente sicuro (uno in cui non puoi prevedere l'output dell'output precedente), un metodo comune è quello di riutilizzare una primitiva crittografica diversa.

Un modello comune consiste nell'utilizzare un algoritmo di hash o di crittografia e reinserire costantemente il suo output come input.

Quando si utilizza un algoritmo di crittografia con una chiave segreta, è possibile utilizzare l'output completo di ogni round come numeri pseudocasuali. Quando usi un algoritmo di hash, ne usi solo una parte oppure aggiungi un valore salato segreto ad ogni hash-round.

    
risposta data 25.01.2018 - 14:15
fonte

Leggi altre domande sui tag