Ventajas de un pad de tiempo

4

Siempre escucho que una vez que el teclado está haciendo algo es genial porque no sabrás si has desencriptado con éxito los datos. Entiendo la idea de que usted puede XOR cualquier bit de la misma manera que cualquier otro bit y no se le "alertará" inherentemente al hecho de que usó los bits correctos, pero ¿esto no es cierto para otros algoritmos / conceptos de cifrado?

Por ejemplo, si intentas utilizar datos de fuerza bruta cifrados simétricamente en SSL / TLS (que NO es un pad de una sola vez), me imagino que no sabrás si tu ataque de fuerza bruta realmente encontró resultados relevantes a menos que verifiques esos resultados contra algo que estaba buscando (metadatos, PDF válido, Word válido, etc.)

Entonces, si lo que dije es cierto, ¿cuál es la ventaja de una sola vez? ¿Es simplemente la longitud de la clave utilizada (el hecho de que tenga que ser tan larga como los datos)?

    
pregunta tau 14.04.2014 - 10:27
fuente

5 respuestas

8

Es una cuestión de redundancia de información .

Un atacante quiere descifrar algunos datos, porque está interesado en esos datos y, por lo tanto, tiene información de contexto . Por ejemplo, suponiendo una conexión HTTPS , el atacante sabe que lo que está cifrado es una solicitud HTTP y una respuesta HTTP, ambos con encabezados HTTP sintácticamente correctos. Es altamente improbable que una secuencia de bits aleatorios sea sintácticamente correcta. En términos conceptuales, la secuencia de bits que codifica la solicitud HTTP es redundante , lo que significa que parte de la información podría haberse omitido ya que se puede reconstruir (por ejemplo, el encabezado es ASCII simple, por lo que cada octavo bit es redundante , ya que siempre es 0).

Si el atacante intenta forzar una fuerza bruta, por ejemplo, una clave DES de 56 bits (suponemos que SSL estaba protegido con ese algoritmo, de modo que esa fuerza bruta es realmente factible; con una clave AES de 128 bits , esto supera con creces la tecnología existente, y la pregunta carece de todo significado). Hay 2 56 tales claves. Sin embargo, no todas las claves de descifrado posibles producirán un texto claro que "tenga sentido" (es decir, "es una solicitud HTTP sintácticamente correcta"). De hecho, las probabilidades son tales que (probablemente) no habrá ninguna clave errónea que aún produzca algo que se parezca a una solicitud HTTP. En otras palabras, si el resultado del descifrado produce un texto claro que tiene el formato correcto, entonces el atacante sabe que encontró la clave correcta y el mensaje de texto claro correcto.

Esto no es así con un pad de una sola vez. Con el teclado de una sola vez, cada texto claro sintácticamente correcto es posible, con las mismas probabilidades. El atacante no puede excluir ningún posible texto claro que "tenga sentido" porque todos los textos claros que tienen sentido son posibles. La forma teórica de información para expresarlo es que el texto cifrado no puede proporcionar información adicional al atacante más allá de lo que ya sabe. En resumen, todo lo que aprende el atacante es que los posibles textos claros son claros, lo que tiene sentido, y él ya lo sabía.

    
respondido por el Tom Leek 14.04.2014 - 16:23
fuente
11

Un pad de una sola vez ofrece seguridad teórica de la información . Básicamente, esto significa que el pad de una sola vez no se puede romper, incluso si el adversario tiene una capacidad de computación ilimitada. Esto se debe a que XOR-ingiriendo cualquier dato contra una clave verdaderamente aleatoria garantizará que la salida sea aleatoria también porque simplemente está volteando bits.

    
respondido por el Ayrx 14.04.2014 - 10:33
fuente
2

Es extremadamente importante entender que "One Time Pad" es un elemento del cifrado real utilizado, no un protocolo en particular. Por ejemplo, SSL o TLS con RC4 es, efectivamente, implementando un One Time Pad digital, mientras que SSL o TLS con DES o AES no usan uno.

One Time Pad se refiere a la técnica criptográfica de la vieja escuela de imprimir pads de códigos ... objetos de papel reales ... que podrían usarse para cifrar y descifrar mensajes. El teclado fue efectivamente la clave que se usará para cifrar un mensaje.

La fuerza de un One Time Pad se deriva del hecho de que sus mensajes son generalmente cortos y que la clave se usa una y solo una vez. Esto dificulta los ataques estadísticos contra el texto cifrado. Sin embargo, si reutiliza la clave, instantáneamente comienza a comprometer la seguridad general de los datos, haciendo que el criptoanálisis estadístico sea más viable.

Sin embargo, hay otras características importantes. Ya que One Time Pad usa la tecla solo una vez, también significa que obtienes Perfect Forward Secret de forma gratuita. PFS significa que si un atacante "rompe" una clave, ya sea a través de un texto sin formato elegido, un texto plano conocido u otro criptoanálisis, el hecho de romper esa clave no le da absolutamente ninguna información sobre ninguna clave anterior o futura, excepto, por supuesto, que esas claves no son la clave actual.

En la práctica, las almohadillas digitales de una sola vez no cambian la clave después de cada mensaje. Si lo hicieran, sería fantástico, pero simplemente no es práctico. Para compensar esta deficiencia (reutilización de claves), las implementaciones suelen incluir dos cosas. El primero es un protocolo o método para reemplazar periódicamente la parte fija de la clave según el tiempo o la cantidad de datos enviados. El segundo es usar algún tipo de "vector de inicialización" aleatorio (piense en ello como un gran sal) que se agrega a la clave antes de cifrar cada mensaje. En lugar de cambiar la clave completa, una fija (generalmente una porción relativamente grande de la clave) permanece fija durante un período de tiempo mientras que la IV (sal) se cambia con cada mensaje. Dado que la sal está cambiando, se debe comunicar al interlocutor y, por lo general, se envía de forma clara o efectiva.

Un maravilloso ejemplo de un pad de una vez digital es RC-4. Un ejemplo de una implementación deficiente (bien conocida, por supuesto) es WEP, que utiliza un vector de inicialización de 24 bits. WPA, el primer intento de "arreglar" esto, hizo que la porción fija de la clave fuera más grande y agregó TKIP para cambiar periódicamente a una clave aleatoria (porción fija) mientras se siguen usando RC-4 y IVs.

    
respondido por el David Hoelzer 14.04.2014 - 16:58
fuente
2

Como dice Terry, la principal ventaja es que ofrece seguridad teórica de la información. Pero en un par de puntos que mencionaste en el resto de tu pregunta:

La longitud no es una ventaja en sí misma, pero el hecho de que nunca puede probar lo que se deriva de una clave adivinada es que los datos descifrados reales lo hacen infinitamente seguro, siempre que no sea víctima de su mayor desventaja: DEBE Sólo se utilizará una vez. Escribí un guión para ilustrar lo que sucede cuando usas una OTP dos veces: enlace

Parece que piensa que no hay pistas ofrecidas en implementaciones criptográficas que haya descifrado algo con éxito. Esto es incorrecto.

Por motivos de integridad, generalmente hay indicios de que has desencriptado algo con éxito. Por ejemplo, TrueCrypt utiliza un hash de los datos descifrados correctamente (dentro del bloque de datos cifrados). Se asume que la clave y el algoritmo de cifrado son tan fuertes que no es importante en comparación con las ventajas de la integridad que produce.

    
respondido por el deed02392 14.04.2014 - 17:41
fuente
1

La ventaja de un pad de una sola vez es que cada byte (asumiremos bytes de 8 bits), no está conectado a ningún otro byte de la clave. El descubrimiento de un solo byte de la clave no proporciona ninguna información respecto a cualquier otro byte de la clave.

Voy a simplificar un poco y olvidarme de cosas como posibles ataques matemáticos o de sincronización, pero comparemos un cifrado de bloque con One Time Pad (OTP).

Fuerza bruta:

Si hablamos de una carga útil encriptada de 16 bytes, con un cifrado de bloque que tiene una clave de 8 bytes, debe forzar la fuerza bruta de todas las posibilidades de la clave y, en cada intento, verificar si la carga útil "hace sentido". Si tiene sentido, puedes asumir que has encontrado la clave o seguir intentándolo hasta que obtengas algo que tenga sentido nuevamente. Luego, puede revisar todas las cargas útiles desencriptadas y saber que una de ellas es la real.

Pad de una sola vez:

Con una OTP, puedes forzar la fuerza bruta de cada personaje, lo cual es fácil ya que solo hay 256 intentos con caracteres de 8 bits. Eventualmente encontrará un montón de combinaciones que le dan, por ejemplo, un encabezado válido que usted esperaría para la carga útil encriptada. Pero cualquiera de esos personajes que hayas descubierto no te da ninguna información sobre el resto de la carga útil. No se puede destinar CUALQUIER información sobre el resto de la carga útil basada en los primeros caracteres. Básicamente, deberías saber qué esperar de la carga útil para adivinar la clave. E incluso entonces solo podría adivinar un subconjunto de las claves que podrían crear esa carga útil.

    
respondido por el Max 20.10.2015 - 05:30
fuente

Lea otras preguntas en las etiquetas