Supongamos que tengo una fuente que genera claves simétricas. Esta fuente podría ser un dispositivo HSM muy sólido, un PRNG algo confiable, un generador de claves comprometido o un valor codificado que devuelve la misma secuencia de bytes cada vez.
Por lo tanto, no estoy seguro de si la clave que recibo es realmente confiable. Entonces, lo que planeo hacer es generar otra clave aleatoria localmente, y XOR estas dos.
Mi generador de PRNG sería más confiable que un sistema comprometido, pero menos confiable que un dispositivo HSM adecuado.
Mi pregunta es, ¿"XOR'ing estas claves" reduce mi seguridad de alguna manera? ¿Qué pasa si tengo que agregar un par de claves más en la mezcla? ¿XORing eliminará el nivel de seguridad inferior al ideal de algunas claves (pero no todas) en la mezcla?
ACTUALIZACIÓN Permítame ponerlo de otra manera: suponga que tengo varias fuentes de generador de claves e idealmente todas deberían generar claves seguras. Pero siempre existe la posibilidad de que algunos de estos generadores de claves no sean ideales para la seguridad.
Esta condición no ideal podría deberse a un error en el generador de claves (como el caso Debian), podría ser una puerta trasera colocada por un tercero (NSA, Gobernador de China, Corea del Norte, niño vecino, script, ...), o un problema muy diferente que afecta el nivel de seguridad.
Mientras que al menos uno de los generadores de claves genere claves "aceptablemente seguras", ¿XORing reducirá el nivel de seguridad de alguna manera?
Mi intuición es que, dado que todas las claves son prácticamente secuencias aleatorias de bytes, el hecho de que XOR sea una secuencia aleatoria no cambia la aleatoriedad. Pero no tengo nada que respalde esto.
Entonces, si tienes algo que apoye mi instinto o esté en contra, sería genial. Si no lo haces, también me gustaría escuchar tus pensamientos.
gracias