¿Cómo usar un pad de tiempo si la tecla es más corta que el texto sin formato?

5

Comprendo que uno de los requisitos (y un gran inconveniente) de la OTP es que la clave debe ser siempre y cuando el mensaje sea.

¿Qué sucede si tengo una clave que es más corta? El mensaje solo se cifraría parcialmente, ¿verdad?

Por ejemplo, si mi clave era "La" y mi mensaje era "Hola, allí", el texto cifrado resultante tendría que tener solo tres bytes de longitud. ¿Derecha? En este caso solo "28 13 9" (en formato decimal).

Solo quiero confirmar que mi comprensión es correcta y que la clave no se ajusta o algo por el estilo.

    
pregunta S.L. Barth 18.12.2013 - 01:58
fuente

2 respuestas

6

"One-Time Pad" es más un concepto que un algoritmo estrictamente definido. Si hubiera una especificación de un "algoritmo de cifrado OTP" (por ejemplo, en formato RFC o similar), que indique dónde va cada byte y cuándo, entonces esa especificación le dirá qué sucede cuando la longitud de la clave no coincide con la longitud de los datos. Además, si, en el caso de que la clave sea más corta que los datos para cifrar, esa especificación le dice algo más que: "si la clave es más corta, entonces el cifrado debe abortarse"; entonces esa especificación no calificaría como una verdadera implementación del concepto de "One-Time Pad".

En ese sentido, no puede haber ninguna "envoltura de clave" para un Pad de una sola vez porque entonces el "pad" (es decir, la clave) ya no es "una sola vez".

Una especificación de algoritmo OTP sería bastante simple, pero todavía hay espacio para variantes. Cuando los datos para cifrar son una secuencia de bits (como es típico en las computadoras), entonces es habitual hablar de la OTP con XOR como operación para el cifrado y descifrado. Sin embargo, cualquier operación de grupo puede hacer el trabajo. Por ejemplo, si los datos son una secuencia de octetos (también conocidos como "bytes"), como también es muy típico en las computadoras, entonces puede hacer una OTP con una suma de entero byte por byte (módulo 256), mientras que el descifrado usaría la resta. Esto también funciona bien y cumple con el concepto One-Time Pad. Muchos usos pre-computacionales de OTP (con papeles y cerebros humanos) funcionaron con letras , en los que la operación fue matemáticamente equivalente a la adición módulo 26 (el grupo subyacente es, en ese caso, Z 26 , asignado a las letras de la A a la Z).

No tengo conocimiento de ninguna especificación establecida y bien definida para un teclado de una sola vez basado en computadora, porque, seamos realistas, para usos prácticos, el teclado de una sola vez tiende a apestar. Podemos encontrar rastros del concepto OTP en algunos casos degenerados (por ejemplo, el cifrado ElGamal se puede describir matemáticamente como un Intercambio de claves Diffie-Hellman que resulta en una clave compartida, que luego se usa para cifrar el mensaje corto que se envía. con un pad personalizado único que opera en el mismo grupo que la parte DH).

    
respondido por el Thomas Pornin 18.12.2013 - 14:10
fuente
2

Esta es una pregunta específica de implementación.

Si tuviera que implementar OTP, podría reutilizar la clave, incorrectamente, y cifrar el mensaje completamente con la clave. Como puede ver, el inconveniente de esto es que la seguridad es inexistente.

Si implementó la OTP, entonces su implementación sería correcta y garantizaría una OTP adecuada. Su mensaje se truncará para que sea la longitud de la clave y faltará parte de su mensaje. El inconveniente de su implementación es que los usuarios pueden no tener una clave lo suficientemente grande y perder parte del mensaje.

'' Lo que pasaría '' no es una buena pregunta, ya que al final del día alguien tiene que construir el software / hardware y decidir qué sucedería, y luego implementarlo.

Dicho esto, lo que DEBERÍA suceder para garantizar la seguridad es que el mensaje esté truncado ... como ha adivinado

    
respondido por el Rell3oT 18.12.2013 - 02:32
fuente

Lea otras preguntas en las etiquetas