Cuando se escucha OTP, lo primero que viene a la mente es probablemente el mecanismo de autenticación que utiliza un código temporal y de un solo uso para verificar la identidad de un usuario como parte de un mecanismo de seguridad de dos factores. Una técnica de cifrado informático-teórico descrita por primera vez por Frank Miller en 1882.El OTP sigue siendo el único sistema de cifrado matemáticamente probado para ser indeleble. Pad de una vez El proceso consiste en combinar un mensaje de texto simple con una clave secreta, conocida como el "pad".Cada caracter del texto simple se combina con su caracter correspondiente del pad usando la adición modular. Para el descifrado, el receptor utiliza una copia idéntica del pad secreto para revertir el proceso.Dado que el pad es aleatorio y se utiliza sólo una vez, el texto cifrado resultante aparece como una secuencia completamente aleatoria de caracteres. Esta falta de relación estadística con el mensaje original hace imposible el criptoanálisis siempre que se cumplan las siguientes condiciones: True Randomness: El secreto debe ser genuino e impredeciblemente aleatorio. La correspondencia de longitud: El secreto debe ser exactamente del mismo tamaño que el mensaje de texto simple que está cifrando. Estricta confidencialidad: El secreto debe ser mantenido absolutamente confidencial tanto por las partes que lo envían como por las que lo reciben. No reutilizable: El secreto nunca debe, en ningún caso, ser reutilizado para otro mensaje. Para aumentar la seguridad, los OTP físicos a veces se imprimían en hojas inflamables, lo que les permitió ser fácilmente destruidos inmediatamente después del uso. Cómo funciona Para ilustrar el concepto, considere un escenario práctico: un agente secreto de la IDF debe transmitir secretamente el nombre de un agente doble, "Klaus", a su manipulador. Por lo general, a cada letra se le asigna un valor numérico como se indica en la tabla siguiente: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 La codificación implica un proceso sencillo: Conversión: El simple texto (por ejemplo, "Klaus") se convierte en su valor numérico correspondiente. Adición modular: Se realiza una adición modular (modulo 26) en ambos valores numéricos. Conversión final: El número resultante se convierte de nuevo en un término alfabético para producir el texto cifrado (el mensaje cifrado). ¡Vamos a entrar en ello! Encriptación de Claudio, TPGHY Message: Secret: Convertir el mensaje a su correspondiente valor numérico, tenemos; K L A U S 10 11 0 20 18 10 11 0 20 18 Convertiendo el secreto a su correspondiente valor numérico, tenemos; T P G H Y 19 15 6 7 24 19 15 6 7 24 Mensaje + secreto Message 10 11 0 20 18 Secret 19 15 6 7 24 Message + Secret 29 26 6 27 42 El secreto 19 15 6 7 24 Message + Secret 29 26 6 27 42 Para la operación MOD, si un número es mayor que 25, 26 se subtrae del número y se toma el resultado. MOD 26 del Mensaje + Secreto; nos da 3 0 6 1 16 Convertir el resultado de MOD 26 a cifrado-texto: 3 0 6 1 16 D A G B Q D A G B Q El texto de cifrado: DAGBQ se transmite al manipulador. El manipulador utiliza la clave correspondiente e invierte el proceso original para recuperar el texto simple. Decodificación Ahora, el manipulador está en posesión del texto cifrado y el secreto El primer paso será convertir tanto el texto cifrado como el secreto a sus correspondientes valores numéricos. DAGBQ TPGHY D A G B Q 3 0 6 1 16 3 0 6 1 16 T P G H Y 19 15 6 7 24 19 15 6 7 24 Título - Secretos Ciphertext 3 0 6 1 16 Secret 19 15 6 7 24 Ciphertext - Secret -16 -15 0 -6 -8 El secreto 19 15 6 7 24 Ciphertext - Secret -16 -15 0 -6 -8 Similar a la operación MOD en la fase de cifrado, cuando la subtracción da un número negativo, se le agrega 26. MOD 26 del texto cifrado - resultados secretos en: 10 11 0 20 18 Convertir el resultado en alfabetos usando la tabla original, tenemos; 10 11 0 20 18 K L A U S K L A U S El manipulador ha reconstruido el mensaje original en texto simple y luego procede a destruir el secreto para evitar que la información caiga en las manos equivocadas o reutilize las claves. Cryptoanálisis Interceptar el mensaje encriptado "DAGBQ" no comprometería el contenido original sin la clave de descifrado correcta. Ciphertext D (3) A (0) G (6) B (1) Q (16) INCORRECT SECRET W (22) A (0) L (11) N (13) O (14) Ciphertext - Incorrect Secret -19 0 -5 -12 2 MOD 26 7 0 21 14 2 Result H A V O C El secreto incorrecto En el (22) A 0 0 El (11) El N (13) y el (14) Título: El secreto incorrecto -19 0 -5 -12 2 En el 26 7 0 21 14 2 Result H A V O C Sin embargo, cualquier otra palabra de cinco letras también es posible, ya que se puede lograr probando cada combinación de caracteres. Reutilizar una clave criptográfica permite a un interceptor cruzar referencias y descifrar textos cifrados para encontrar el resultado correcto. Desafíos prácticos Aunque teóricamente perfecto, la adopción generalizada de los pads de una sola vez (OTP) está limitada por varios desafíos prácticos: Distribución de la clave: Compartir de forma segura una clave mientras el mensaje en sí es un gran desafío logístico.Si puede transmitir de forma segura una clave de ese tamaño, también puede enviar el mensaje a través del mismo canal seguro. Gestión de claves: Generar, gestionar y destruir de forma segura grandes cantidades de material clave realmente aleatorio es difícil en la práctica. Verificación: Un pad básico de una vez proporciona confidencialidad pero no integridad o verificación, lo que significa que un atacante podría alterar el texto cifrado en tránsito sin que el destinatario lo sepa. Conclusión A pesar de los significativos desafíos prácticos, la oferta de secreto perfecto todavía hace que los OTPs sean una herramienta muy viable para la comunicación segura. Los OTPs también son excelentes para enseñar criptografía y son valiosos en escenarios donde el acceso al ordenador no está disponible. Espero que haya sido informativo.¡Te vemos en la próxima!