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