Saltar al contenido

¿Cómo puedo decodificar un mensaje que fue encriptado con un bloc de notas de un solo uso?

Ten en cuenta que en la informática un error suele tener más de una soluciones, así que nosotros aquí te compartimos lo más óptimo y eficiente.

Solución:

One-Time Pad es irrompible, suponiendo que el bloc sea perfectamente aleatorio, se mantenga en secreto, se use solo una vez y no se conozca el texto sin formato. Esto se debe a las propiedades de la operación exclusiva-or (xor).

Aquí está su tabla de verdad:

A xor B = X

A | B | X
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 0

Number of 0s in column A = 2
Number of 1s in column A = 2
Number of 0s in column B = 2
Number of 1s in column B = 2
Number of 0s in column X = 2
Number of 1s in column X = 2

Tenga en cuenta que no introduce sesgo de bits: el número de 0 y 1 en las entradas es igual al número de 0 y 1 en la salida, es decir, dos de cada uno. Además, si conoce solo un elemento de una fila, no puede predecir los valores de los otros dos, ya que son igualmente probables.

Por ejemplo, digamos que sabemos que X es 0. Hay una probabilidad igual de que A = 0 y B = 0, o A = 1 y B = 1. Ahora digamos que sabemos que X es 1. Hay una probabilidad igual de que A = 0 y B = 1, o A = 1 y B = 0. Es imposible predecir. Entonces, si solo conoce un elemento, posiblemente no pueda determinar ninguna información sobre A o B.

La siguiente propiedad interesante es que es reversible, es decir

A xor A = 0
B xor B = 0

A xor 0 = A
B xor 0 = B

A xor B xor B  =  A xor 0  =  A
A xor B xor A  =  B xor 0  =  B

Entonces, si tomamos cualquier valor y lo hacemos xor consigo mismo, el resultado se cancela y siempre da como resultado 0. Esto significa que, si hacemos xor un valor A con un valor B, luego xor ese resultado con A o B, obtenemos B o A respectivamente. La operación es reversible.

Esto se presta bien a la criptografía, porque:

  • xor no introduce sesgo
  • xor tiene entradas igualmente probables para cualquier salida dada
  • dados dos cualesquiera de A, B, X podemos calcular el tercero

Como tal, lo siguiente es perfectamente seguro:

ciphertext = message xor key

pero solamente si el mensaje tiene la misma longitud que key, key es perfectamente aleatorio, key solo se usa una vez, y un atacante solo conoce un elemento. Si conocen el texto cifrado, pero no el key o mensaje, es inútil para ellos. No es posible que lo rompan. Para descifrar el mensaje, usted deber saber todo key y el texto cifrado.

Tenga en cuenta que el key debe ser completamente aleatorio, es decir, cada bit debe tener la misma probabilidad de ser 1 o 0, y ser completamente independiente de todos los demás bits en el key.

Esto en realidad resulta ser bastante poco práctico, por algunas razones:

  • Generando perfectamente aleatorio keys es difícil. Los generadores de software (y muchos generadores de hardware) a menudo tienen sesgos minúsculos y propiedades repetitivas extrañas. Es casi imposible obtener datos verdaderamente aleatorios en cantidades que no sean pequeñas.
  • Si el atacante conoce el texto cifrado y puede adivinar correctamente partes del mensaje (por ejemplo, sabe que es un ejecutable de Windows y, por lo tanto, debe comenzar con MZ) puede obtener el correspondiente key bits para el rango conocido. Estos bits son inútiles para descifrar otras partes del mensaje, pero pueden revelar patrones en el key si está mal generado.
  • Debe ser capaz de distribuir el keyy tu key debe ser tan largo como su mensaje. Si puedes mantener tu key 100% secreto entre aquellos de ustedes que están autorizados a leer el mensaje, ¿por qué no mantener su mensaje 100% secreto en su lugar?

El eslabón débil aquí es su generador de números aleatorios. La seguridad del bloc de notas de una sola vez es completamente limitado por la seguridad de su generador. Dado que un generador perfecto es casi imposible, una libreta única perfecta también es casi imposible.

El problema final es que el key solo se puede usar una vez. Si lo usa para dos mensajes diferentes, y el atacante conoce ambos textos cifrados, puede unirlos para obtener el xor de los dos textos sin formato. Esto filtra todo tipo de información (por ejemplo, qué bits son iguales) y rompe por completo el cifrado.

Entonces, en conclusión, en un perfecto bloc de notas de un solo uso, necesitar conocer el texto cifrado y key para descifrarlo, pero las libretas de un solo uso perfectas son casi imposibles.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *