elparaiso.mat.uned.es

¡Pulsa Aquí!

LO DIJO...

Poincaré  
 
Todo saber tiene de ciencia lo que tiene de matemática.
 
El Paraíso de las Matemáticas - Criptotaller ~ Chaffing & Winnowing
.: Criptotaller :.
Chaffing & Winnowing

    Este artículo presenta una nueva técnica de confidencialidad propuesta por Donald Rivest. Esta basado fundamentalmente en la descripción que el propio Rivest hace de ella en su página. Es más un intento de esquivar las restricciones a la criptografía en EE.UU. (y otros países) que una propuesta razonable debido al tamaño de los mensajes resultantes.

    Traduciré el termino inglés 'winnowing' por 'aventar' es decir separar el grano de la paja y el termino 'chaffing' por el castellano 'empajar' (cubrir o rellenar con paja). La idea básica como veremos consiste en mezclar la información real (grano) con otra de relleno (paja) de modo que sea imposible separarlas excepto para el destinatario.

    Conocemos en la actualidad dos formas de preservar la confidencialidad de nuestros mensajes:

Esteganografía: es el arte de esconder un mensaje secreto en uno de mayor tamaño, de tal modo que el adversario no puede discernir la presencia o contenidos del mensaje oculto.

Criptografía: transformar un mensaje en un texto cifrado de modo que un adversario que lo vea no pueda determinar cual era el mensaje original. El legítimo receptor posee una clave de descifrado secreta que le permite deshacer el proceso criptográfico recuperando así el mensaje inicial. El emisor puede usar la misma clave que el receptor (cifrados simétricos) o usar una diferente relacionada (cifrados de clave pública o asimétricos).

    Se presenta aquí una nueva manera de mantener la confidencialidad, interesante por el actual debate político que tiende a regular la criptografía mediante el polémico depósito de claves (key escrow). Este tipo de restricciones cierra una puerta pero abren dos ventanas: la esteganografía y 'Chaffing & Winnowing'.

    Explicaremos como funciona un sistema de confidencialidad basado en aventar. El proceso para el emisor consta de dos partes: autentificación y empajado (chaffing). El receptor para leer el mensaje original debe ser capaz de separar la paja. Intentaremos dejar claro en cada paso que no se está utilizando criptografía de ninguna manera.

    El emisor divide el mensaje en paquetes y autentifica cada uno de ellos utilizando una clave secreta de autentificación. Es decir que añade a cada paquete un MAC (código de autentificación de mensajes) calculado en función de los contenidos de dicho paquete y la clave utilizando un algoritmo estándar como HMAC-SHA1.

    En estos momentos el mensaje esta todavía en claro, NO se ha encriptado. Hay que observar que los programas que simplemente autentifican mensajes añadiendo un MAC pueden exportarse libremente pues no están pensados para la encriptación.

    La clave de autentificación compartida por emisor y receptor permite determinar que un paquete es auténtico recalculando su MAC y comparándolo con el recibido. Si la comparación falla, el paquete y su MAC se descartan automáticamente. La clave debería acordarse previamente, bien a través de un medio considerado seguro (en persona?) bien con una técnica específica de intercambio de claves como la de Diffie-Hellman por ejemplo.

    Es típico que cada paquete contenga también un número de serie que ayuda al receptor a eliminar paquetes duplicados y a ordenar correctamente los recibidos para obtener el fichero inicial. El MAC de cada uno es función de la clave y de su contenido como queda dicho. Un ejemplo de una serie de paquetes podría ser:

(1, Hola Pepe, 463210)
(2, Nos vemos, 788311)
(3, a las 7 PM, 342116)
(4, Firmado: Alfredo, 550925)
formados por una tripleta de : numero de serie, contenido y MAC.

    El siguiente paso sería el de añadir paja, incluyendo falsos paquetes con MACs incorrectos. Los paquetes de paja tienen un formato correcto, números de serie razonables y contenidos admisibles pero sus MACs no son válidos. Estos paquetes se mezclan aleatoriamente con los buenos (el grano) formando parte del mensaje transmitido. Continuando con el ejemplo anterior:

(1, Hola Pepe, 463210)
(1, Hola Luis, 332178)
(2, Nos vemos, 788311)
(2,Te llamaré, 901932)
(3, A las 3 AM, 778241)
(3, a las 7 PM, 342116)
(4, Firmado: Alfredo, 550925)
(4,Firmado: Sonia,778212)
    En este caso, por cada número de serie hay un paquete bueno (grano) y otro malo (paja).

    Para obtener el mensaje correcto, el receptor simplemente descarta los paquetes de paja reteniendo los de grano. Pero de todas formas esto es lo que siempre hace el receptor en una red, rechazando los paquetes recibidos con MACs incorrectos. Recibir uno de estos paquetes podría posiblemente disparar más de una respuesta del receptor, pero habitualmente la detección de paquetes omitidos se realiza a un nivel diferente de protocolo más que en el momento de recibir un paquete incorrecto, ya que podría haber sido transmitido más de una vez y haberse recibido bien ya.

    Llamemos empajar al proceso de añadir paja a una serie de paquetes. Como antes aventar será el proceso de descartar los MACs incorrectos. Llamaremos a los paquetes buenos 'trigo' por seguir con la metáfora.

    ¿Proporciona empajar una buena confidencialidad? Depende de como el mensaje original se divida en paquetes y como se agregue la paja. Esta claro que el problema para el adversario está en distinguir el trigo de la paja y NO en romper un esquema criptográfico porque no realizamos ningún cifrado y sin embargo obtenemos confidencialidad, igual que con la esteganografía.

    Si el adversario ve un solo paquete con un número de serie dado, entonces este paquete es probablemente trigo y no paja. De esta forma un buen proceso de empajado añadirá al menos un paquete de paja por cada número de serie que aparezca en el mensaje. También podría distinguirlos si el trigo contiene palabras coherentes y la paja sólo bits aleatorios, así sería muy sencillo aventar el trigo.

    Ahora, y en el extremo opuesto, si cada paquete de trigo contiene un solo bit, y hay un paquete de paja con el mismo número de serie y el bit complementario, el adversario tendrá ante sí una tarea prácticamente imposible. Distinguir el trigo de la paja requeriría romper el algoritmo del MAC y/o conocer la clave secreta. Con un buen algoritmo de autentificación la habilidad del adversario para aventar es cero, perfecta confidencialidad.

    Sumamos que el mensaje original se divide en paquetes de 1 bit, cada uno de ellos con su número de serie y su MAC. Hay una obvia ineficiencia aquí porque el tamaño del mensaje podría multiplicarse por 200 si asumimos por ejemplo que los números de serie son de 32 bits y el MAC de 64.

    El proceso de empajar también es fácil: se crea un paquete con el número de serie que sea e incluyendo 64 bits aleatorios. Este valor de MAC es casi con total probabilidad incorrecto, solo será bueno en un caso de cada 264, despreciable en la práctica. Es especialmente intrigante observar que para empajar no se necesita conocer la clave de autentificación, basta crear falsos paquetes con MACs aleatorios.

    Imaginemos entonces el siguiente escenario: Alicia se comunica con Blas usando un protocolo estándar basado en paquetes. Cada paquete se autentifica con un MAC creado usando una clave que sólo ambos conocen. Además supongamos que cada paquete contiene solo un bit de mensaje porque el programa de comunicaciones lo escribió la propia Alicia y contiene ese bug.

    Hasta ahora Alicia y Blas no están encriptando nada y usan técnicas estándar para intercambiar mensajes que no son consideradas criptografía y no están sujetas a controles de exportación. Alicia y Blas no tienen intención de preservar la confidencialidad de sus mensajes de un mirón.

Vale, ahora los paquetes de Alicia para Blas son enrutados a través del ordenador del administrador Carlos, que por alguna razón añade paquetes de paja a la serie. El software de Alicia y Blas no ha sido modificado para conseguir esta confidencialidad.

    Carlos no sabe la clave de Alicia y Blas, que ni siquiera se preocupaban por unas comunicaciones confidenciales. Carlos no usa criptografía y no sabe ninguna clave y sin embargo está proporcionando una gran confidencialidad a la comunicación. No hay ninguna información que Carlos pueda dar a las agencias gubernamentales.

    En una variación de la escena anterior, Carlos no está añadiendo paja sino simplemente multiplexando el flujo de paquetes de Alicia para Blas con otro flujo de paquetes (digamos de David a Elena). Para Blas, el flujo de paquetes de David a Elena parece paja y se descarta. Para Elena es al contrario y ella ignora los paquetes entre Alicia y Blas. Lo que es trigo para un par de comunicantes es paja para los otros dos y viceversa. Una situación así puede surgir cuando Carlos está administrando un canal de transmisiones vía satélite, aquí ambas partes reciben un flujo de paquetes entremezclados y si la única forma de distinguirlos es por la corrección de los MACs, un adversario lo tendría muy difícil para separarlos.

    En situaciones como las descritas, el método obvio para las fuerzas gubernamentales sería exigir tener acceso a la clave secreta de autentificación que comparten Alicia y Blas. Sin embargo ya hace mucho que el gobierno (de EE.UU.) llego al acuerdo de que no deseaban tener dichas claves. Tener acceso a esas claves permitiría al gobierno falsear paquetes para cualquier par de comunicantes. Esto va mucho más allá que acceder a comunicaciones encriptadas, pues la pérdida de dichas claves podría causar desastres masivos en la estructura e integridad de todo Internet, permitiría a hackers maliciosos no solo fisgar mensajes electrónicos sino controlar sistemas eléctricos o aeropuertos. El poder para autentificar es el poder para controlar, dar todo el poder de autentificar a los gobiernos está más allá de lo razonable.

    Empujar y aventar guarda algún parecido con la esteganografía. Recordemos la técnica esteganográfica de mandar una carta con contenido inocuo cuyas letras están escritas en dos fuentes diferentes aunque muy similares. Borrando todas letras del mismo tipo, el mensaje oculto escrito con la otra fuente permanece. La seguridad de esta técnica como la mayoría de las esteganográficas se basa en la asunción de que el adversario no observará la diferencia. Con la técnica 'chaffing & winnowing' el adversario puede saber o sospechar que hay dos clases de paquetes, pero es incapaz de distinguirlos sin la clave de autentificación.

    Empajar y aventar también guarda parecido con el cifrado. De hecho el proceso de autentificar paquetes y añadir paja consigue confidencialidad y por tanto constituye criptografía para cualquiera que use una definición tan amplia que incluya cualquier forma de asegurar la confidencialidad. Sin embargo esto sería no caer en la cuenta de la especial estructura: una clave no de cifrado sino de autentificación para el primer paso, seguido por una fase de no-encriptado y sin clave. Ya que el segundo paso lo puede realizar cualquiera (Carlos en nuestro ejemplo) y ya que el primero puede ser realizado por muchas otras buenas razones, estamos en el caso de conseguir una fuerte confidencialidad sin el conocimiento ni el permiso del emisor original.

    Notemos que el uso de MACs puede ser reemplazado por firmas digitales, pero no firmas normales porque entonces todos podrían verificarla distinguiendo el trigo de la paja. Las firmas de Chaum que sólo pueden ser verificadas por las personas designadas por el firmante servirían bien.

    Otra idea muy interesante es que el flujo de paquetes contenga más de una subsucesión de paquetes de trigo además de los paquetes de paja. Cada subsucesión de trigo podría ser reconocida por separado usando una clave diferente. La consecuencia.. si el gobierno forzase la entrega de una clave de autentificación para poder identificar el trigo, el emisor podría ceder una de tales claves que identifica una subsucesión que contenga un mensaje inocuo, dejando el resto como paja. Esto recuerda la técnica de 'deniable encryption' propuesta por Canetti et al (1997).

Area On-Line
  Todo tipo de material, para disfrutar de él completamente On-Line, sin necesidad de descargar archivos ni tener que andar descomprimiendo estos. No te olvides de pasar por el Diccionario, y las secciones Origami y Geointeractiva. Son de lo más interesante.

Criptotaller

Criptografía (clásica y moderna), criptoanálisis (primos, primos de Mersenne, etc.) y otras técnicas.

Material para descargar

Código Fuente C

Método Hill
Método Jefferson
Exponenciación Modular
Cálculo números primos
Test de Lucas-Lehmer
Factores num. Mersenne
Verificación FIPS 140.2
Teorema chino del resto
+ Códigos Fuente C

Código Fuente Python

Generación de claves

Artículos

La máquina Enigma
Criptografía y seguridad
    M. J. Lucena
Seguridad Informática
   y Criptografía PDF PPT
    J. Ramió
Criptografía clásica PDF
    J. Ramió

Programas
Cripto1 ZIP 2391 KB
    J. L. Rubio

Enlaces

Página personal de Jaime Suárez Martínez, colaborador de esta sección.

Munitions, colección de programas para Linux.

Kriptopolis, toda una referencia en castellano.

Ciphersaber

Criptonomicón: la página de Gonzalo Alvarez Marañón.

Página de Chris Caldwell, una página bien elaborada sobre números primos.

Colección de links de Peter Gutmann.

www.gnupg.org es la página original de GPG, un programa libre alternativo a PGP.

Martes, 19 / 11 / 2019
   BUSCADOR
 

   TU CORREO
Usuario
Contraseña

   MATRACAS
Lista de correo gratuita
.: Chismes de Adán y Eva :.
Adios a Elisenda Fo...
WolframAlpha: El mo...
WIRIS para Mac...
Third CEU Summersch...
¡Más y más actualiz...
Cerca de 500 MB de ...
Ha llegado el momen...
WIRIS, matemáticas ...
El Universo Matemát...
Segundas Jornadas d...
Los Elementos de Eu...
VI Semana de la Cie...
Tras varios meses d...
¡Chiflados por los ...
Otro verano más, to...

 

Todos los derechos reservados. El Paraíso de las Matemáticas 2015Información Legal Política de PrivacidadAyudaEmail