Trabajo sobre Criptografía

Lenguaje

APLICACIONES CRIPTOGRÁFICAS

jueves, 22 de mayo de 2008 by Elena Chinchilla


Entre las muchas aplicaciones de la criptografía, se encuentran la autenticación, la firma digital, la identificación de usuario, seguridad en redes y protocolos criptográficos. Hablaré solamente de estas dos aplicaciones:


Autenticación
Criptoanalistas pasivos: Su único propósito es escuchar mensajes transmitidos por el canal.
Criptoanalista activo: No sólo escucha, si no que intenta inyectar mensajes propios para que el receptor crea que fueron enviados por un emisor legítimo.
El propósito de un esquena de autenticación es la detección de la presencia de criptoanalistas activos.


Siempre que un receptor B reciba un mensaje que parezca provenir del emisor A, el esquema debe permitirle averiguar no sólo si el mensaje viene de A, si no si fue modificado por el camino. Se supone que este tipo de intrusos tiene acceso a la escucha de cuantos mensajes quiera y que su meta es conseguir que un mensaje falsificado no sea detectado por el receptor.
Un sistema proporciona:
Secreto, si permite determinar quién puede recibir un mensaje.
autenticidad, si permite determinar quién puede enviar un mensaje.
Hay dos posibles situaciones en las que se pueden encontrar los interlocutores. Puede que sea suficiente la comprobación de que un mensaje no ha sido modificado por un tercero, o bien puede ser necesario que el receptor sea capaz de demostrar que realmente recibió el mensaje del emisor legítimo tal y como éste lo envió. La solución a la primera situación protege a ambos comunicantes de la acción de posibles enemigos, pero no protege contra los fraudes cometidos por uno de ellos. En la segunda situación, si se produce un fraude cometido por uno de los dos comunicantes, se presenta el llamado problema de la disputa, que se resuelve proporcionando una demostración de la identidad del emisor al receptor. El primer problema se afronta con la llamada autenticación, mientras que el segundo problema se resuelve mediante las llamadas firmas digitales.


Se distinguen aquellos esquemas de autenticación en los que el enemigo conoce la información que se transmite (llamados con secreto) de los esquemas en los que el enemigo ignora la información que se transmite (llamados sin secreto). En el primero el mensaje se codifica según una regla de codificación acordada por ambos comunicantes, mientras que en el segundo el mensaje se cifra utilizando una clave también acordada por ambos usuarios.
Las actividades del adversario pueden consistir en:
Bloquear el flujo de información.
Grabar información y repetirla luego en una transmisión falsa.
Cambiar la información borrando, insertando y/o reordenándola.
Tal y como se definieron los esquemas de autenticación con y sin secreto se tiene que en el primero, un autenticador conocido por emisor y receptor se añade al texto que se desea autenticar y luego se cifra. De esta manera al texto resultante se le proporciona al mismo tiempo secreto y autenticación. En el segundo caso, al texto simplemente se le añade un código de autenticación. Si en alguno de estos dos casos se usa un sistema simétrico, entonces emisor y receptor han de confiar plenamente el uno en el otro, porque ambos comparten la misma clave.
Por tanto se pueden clasificar claramente los métodos de autenticación, según si se utiliza criptografía simétrica o asimétrica, en:
Métodos basados en criptosistemas simétricos.
Métodos basados en criptosistemas asimétricos.
Veremos solamente el caso de los esquemas de autenticación mediante criptosistemas asimétricos.


Consideremos en particular el algoritmo RSA. Cada usuario i genera una clave secreta di a partir de dos números primos (pi,qi) y pública ni=pi*qi y ei-di-1(mod (ni)). Para usar este sistema como esquema de autenticación, el usuario i obtiene Di(m) y lo envía al receptor. Este para verificar su autenticidad, le aplica Ei con la clave pública de i, obteniendo obteniendo Ei(Di(m)) - m (mod ni), demostrando así que es autentico.


Uno de los principales problemas que se presentan en la autenticación es la posibilidad de que el enemigo utilice mensajes anteriores. Para intentar resolverlo, es conveniente añadir al texto alguna señal que impida el engaño, como, por ejemplo, la fecha.
Aunque un esquema de autenticación permite al usuario A confiar en que el mensaje que ha recibido viene de quién dice venir, eso no le permite convencer a un tercero de ello. Por eso, los esquemas de autenticación resultan débiles ante el engaño de uno de los dos interlocutores legítimos. El uso de las funciones trampas hace posible la solución a este problema con la noción de firma digital.


Firma digital
El desarrollo de las telecomunicaciones en estos últimos años ha creado toda una variedad de nuevas necesidades. Por ejemplo, dado que en la mayoría de las operaciones bancarias es necesario firmar los documentos, con el uso de los ordenadores se requiere un nuevo planteamiento, donde una firma digital sustituye a la firma manual y cumple las mismas propiedades que ésta. Se puede distinguir la firma:
implícita (contenida dentro del texto) de la explícita (añadida al texto como una marca inseparable).


privada (legible sólo para quien comparte cierto secreto con el emisor) de la pública (legible para todo el mundo).
La firma digital debe ser:
única, pudiéndola generar solamente el usuario legítimo.
no falsificable, el intento de falsificación debe llevar asociada la resolución de un problema numérico intratable.
fácil de autenticar, pudiendo cualquier receptor establecer su autentidad aún después de mucho tiempo.
irrevocable, el autor de una firma no puede negar su autoría.
barata y fácil de generar.
Otra característica que han de tener las firmas digitales es que deben depender tanto del mensaje como del autor. Esto debe ser así porque en otro caso el receptor podría modificar el mensaje y mantener la firma, produciéndose así un fraude.
Si el emisor A envía un mensaje firmado digitalmente al receptor B, este último no sólo debe convencerse de que el mensaje fue firmado por el primero, sino que, además, debe ser capaz de demostrar a un juez que A realmente firmó ese mensaje. Esta noción fue ideada por Diffie y Hellman en 1976. La firma digital y el correo electrónico ofrecen conjuntamente sustanciosas ventajas, una de ellas es hacer posible el correo certificado y la firma electrónica de contratos.
La idea principal de la firma digital es que solamente el emisor la pueda producir y además se pueda demostrar que, efectivamente, es él quien la produce. Representa por tanto, un control más fuerte que la autenticación.


Considérese un sistema de clave pública donde Mk y Ck denotan respectivamente, a los espacios de mensajes originales y cifrados asociados a una clave k.
Un sistema de clave pública ofrece la posibilidad de ser usado para firmas digitales siempre que para k perteneciente a K; Mk=Ck y para m perteneciente a M; Ek(Dk(m))=m.
Denotando la clave escogida por el usuario A como a, se tiene que si el criptosistema es seguro, entonces sólo A puede calcular Da, pero cualquiera puede calcular Ea de forma eficiente.
Considérese un mensaje m perteneciente a Ma y s=Da(m). Cualquier usuario puede calcular Ea(s) y comprobar que coincide con m, pero, sin embargo, sólo A puede deducir el valor de s para el que Ea(s)=m. En este sentido, s puede ser considerado como la firma de A para el mensaje m. Si B muestra el mensaje s y su cifrado Ea(s) a un juez, éste debe de convencerse de que ningún otro m s que A pudo haber firmado ese documento con Ea(s). En otras palabras, los algoritmos de descifrado y de cifrado pueden verse, respectivamente, como un algoritmo de firma digital y su correspondiente algoritmo de verificación.


La actual velocidad de los sistemas de clave pública recomienda su utilización para generar firmas digitales cortas y separadas del texto (firmas explícitas).
Si además de capacidad de firma digital se desea secreto, entonces la firma digital puede ser utilizada conjuntamente con un cifrado de clave pública. Si el usuario A quiere enviar un mensaje secreto firmado a un usuario B, puede usar el algoritmo secreto de firma digital Da y el algoritmo público de verificación Eb, produciendo c=Eb(Da(m)). Si envía este mensaje c al usuario B a través de un canal inseguro, entonces B puede calcular la firma de A mediante s=Db(c) y de ahí recuperar el mensaje claro m=Ea(s). Esto supone que en el caso de que hubiera más de un posible emisor en el encabezado del mensaje debe decir claramente que el mensaje viene de A para que B pueda saber qué algoritmo de verificación debe aplicar. Es más, si B guarda el mensaje s, llegado el momento podrá probar ante un juez que A le envió el mensaje m, tal y como se explicó previamente.
Hay que tener cuidado cuando se afirma que el conocimiento por parte de B del valor de una firma s tal que Ea(s)=m tiene que ser considerada como una demostración de que A firmó m, ya que B podría elegir un valor s aleatorio, calcular m=Ea(s) y luego argumentar que A envió m, aunque no tenga sentido. Las cosas empeoran si la proporción de mensajes con significado es alta, porque en este caso B podría escoger varios valores de s aleatoriamente hasta toparse con uno para el que Ea(s) tenga significado. Por esta razón, es recomendable alguna forma normalizada para las firmas digitales, y que se acepte s como firma del mensaje m sólo si se tiene que m=Ea(s) y que m está en forma normalizada. Desafortunadamente, todavía no está claro cual sería la forma normalizada recomendable para utilizar con el sistema RSA.


Si se utiliza el RSA para conseguir secreto y como firma digital, entonces es preferible que cada ususario use claves distintas para cada uno de los dos propósitos. De esta forma, cada usuario tendría asignada una clave en el directorio público de claves de cifrado y otra distinta en el directorio público de firma digitales. Esta separación es útil para dos propósitos. En primer lugar, ayuda a evitar el problema que surge cuando el módulo del emisor es mayor que el del receptor. En segundo lugar dado que el RSA es débil frente a algunos ataques con texto escogido, tales ataques pueden verse facilitados si se utiliza la misma clave para ambos fines, y en consecuencia es preferible evitarlo.


El criptosistema RSA presenta algunos inconvenientes para las firmas digitales parecidos a los que presentaba como sistema de cifrado. En particular, no se sabe a ciencia cierta si es tan difícil de romper como la factorización de grandes enteros. Incluso aunque así fuera, dados un mensaje original escogido m y la clave de cifrado de otro usuario (e,n), calcular la firma digital s tal que m - s^e(mod n) puede ser mucho más fácil si se tiene, además, (s',m'), donde s' es la firma digital del usuario legítimo para un mensaje m' muy parecido al mensaje m. En otras palabras, podría resultar fácil falsificar firmas digitales para algún mensaje dado después de haber visto las firmas digitales auténticas de varios mensaje parecidos.


Lo visto anteriormente sugiere que podría resultar más favorable para diseñar esquemas de firmas digitales el empleo de sistemas probabilísticos, en vez de los sistemas de clave pública. Sin embargo, ésta es una tarea difícil, ya que, por ejemplo, se ha demostrado que el sistema probabilístico de Blum-Goldwaser es completamente inútil par firmas digitales.


Afortunadamente, ya se han desarrollado algunos esquemas de firmas digitales suficientemente fuertes y seguros basados en el problema de la factorización. Estos esquemas resisten incluso ataques con texto escogido.



Elena

Filed under having  

0 comentarios: