Generazione di chiavi simmetriche

4

Supponiamo di avere una fonte che genera chiavi simmetriche. Questa sorgente potrebbe essere un dispositivo HSM molto solido, un PRNG un po 'affidabile, un generatore di chiavi compromesso o un valore hardcoded che restituisce sempre la stessa sequenza di byte.

Quindi, non sono sicuro che la chiave che ricevo sia davvero affidabile. Quindi, quello che ho intenzione di fare è generare un'altra chiave casuale a livello locale e XOR questi due.

Il mio generatore PRNG sarebbe più affidabile di un sistema compromesso, ma meno affidabile di un dispositivo HSM adeguato.

La mia domanda è, "XOR'ing queste chiavi" abbasserebbe la mia sicurezza in alcun modo? Cosa succede se devo aggiungere un paio di altre chiavi nel mix? XORing rimuoverà il meno livello di sicurezza ideale di alcuni tasti (ma non tutti) nel mix?

Aggiorna Consentitemi di metterlo in un altro modo: supponiamo di avere un certo numero di sorgenti di generatore di chiavi e idealmente tutti dovrebbero generare chiavi sicure. Ma c'è sempre la possibilità che alcuni di questi generatori di chiavi non siano ideali per la sicurezza.

Questa condizione non ideale potrebbe essere dovuta a un bug nel generatore di chiavi (come nel caso Debian), potrebbe essere una backdoor collocata da una terza parte (NSA, Chinese Gov., North Korea, Your neighbor kiddy, ...), o un problema molto diverso che incide sul livello di sicurezza.

Finché avrò almeno uno dei Key Generator che generano chiavi "accettabilmente sicure", XORing tutti ridurranno in qualche modo il livello di sicurezza?

Il mio istinto è che, dal momento che tutte le chiavi sono praticamente una sequenza casuale di byte, XORing qualsiasi cosa con una sequenza casuale non cambia la casualità. Ma non ho nulla a sostegno di questo.

Quindi, se hai qualcosa a sostegno del mio istinto o contro di esso, sarebbe fantastico. Se non lo fai, mi piacerebbe anche sentire i tuoi pensieri.

grazie

    
posta xycf7 03.06.2015 - 16:30
fonte

2 risposte

4

Sei su una base solida con la tua idea di base XOR. XORare più stringhe NON CORRELATE per ridurre il pregiudizio è una delle numerose tecniche che rientrano nell'intestazione generale di "Software Whitening".

link

(Il collegamento wiki di John Deters era completamente in punta, questo è solo un po 'più "applicato".)

L'uso di un PRNG crittograficamente sicuro per creare il materiale per XOR'ing è uno dei metodi più affidabili per garantire una rimozione decorrelata dei bias.

    
risposta data 04.06.2015 - 01:58
fonte
-3

Forse dovresti usare una funzione di derivazione chiave come PBKDF2 per generare la chiave effettiva (finale). link La chiave da fonte inaffidabile può essere la password di questa funzione, con qualche salt casuale.

Questo sarebbe crittograficamente più sicuro di XORing con due chiavi. Teoricamente potresti avere collisioni, ovvero due numeri XOR per ottenere lo stesso risultato.

    
risposta data 04.06.2015 - 05:08
fonte

Leggi altre domande sui tag