Función hash criptográfica
Se llaman funciones hash criptográficas a aquellas funciones hash que se utilizan en el área de la criptografía. Este tipo de funciones se caracterizan por cumplir propiedades que las hacen idóneas para su uso en sistemas que confían en la criptografía para dotarse de seguridad. Estas propiedades las hacen resistentes frente ataques maliciosos que intentan romper esa seguridad.
Iacute;ndice
[ocultar]
· 1Propiedades[1] [2]
o 1.1Código de detección de modificaciones
o 1.2Código de autenticación de mensajes
· 2Véase también
· 3Referencias
Propiedades1 2 [editar]
Establecer qué propiedades tiene que cumplir una función hash criptográfica es difícil ya que son usadas en aplicaciones criptográficas muy diversas, y que por tanto requieren propiedades diferentes. Sin embargo en general podemos decir que es necesario que sean deterministas (un mensaje siempre tiene el mismo valor hash) y de bajo coste (para que sean utilizables en la práctica). Además normalmente se suele requerir que sean uniformes y con efecto avalancha con el objetivo de que sea imposible predecir cualquier valor hash a partir de otros valores hash capturados.
Para determinar las propiedades requeridas para asegurar la seguridad es necesario saber cuál es el objetivo principal de la función. Podemos distinguir dos tipos de funciones: las que tienen como objetivo principal verificar la integridad, a las que se llaman Códigos de detección de modificaciones, y las que tienen como objetivo principal la autenticación del origen del mensaje, a las que se llaman Códigos de autenticación de mensajes.3 Estos nombres no son muy correctos ya que estas funciones no soncódigos y además ambos tipos permiten la autenticación de mensajes. Sin embargo son los más ampliamente aceptados.
Código de detección de modificaciones[editar]
Véase también: Código de detección de modificaciones
El objetivo de estas funciones es poder detectar si un mensaje ha sido modificado o no. Por tanto permiten la verificación de la integridad del mensaje. Su funcionamiento consiste en calcular el valor hash del mensaje y que este sirva como prueba para una posible verificación de si el mensaje ha sido modificado. A las funciones hash diseñadas con este objetivo se las llama Códigos de detección de modificaciones o MDC ( siglas del inglés Modification Detection Codes)
Para cumplir su objetivo la función hash tiene que cumplir propiedades que la haga resistente frente ataques de adversarios maliciosos cuyo objetivo es que la función no cumpla su cometido. Según la propiedad que se estime necesaria que cumpla se puede decir que hay dos tipos de Códigos de detección de modificaciones:
· Las que requieren que la función hash sea CRHF. Por tanto es difícil encontrar dos mensajes con el mismo valor hash.
Código de autenticación de mensajes[editar]
Véase también: Código de autenticación de mensajes
El objetivo de estas funciones es permitir comprobar, sin usar ningún mecanismo adicional, la autenticidad del origen de un mensaje asegurando además la integridad de dicho mensaje. Debido a esta funcionalidad se las llama Códigos de Autenticación de Mensajes o MAC (siglas del inglés Message Authentication Codes).
Las MAC son funciones hash con clave, la cual mantienen en secreto tanto el que se quiere autenticar como el que verifica la autenticación. Para que sea resistente frente ataques es necesario que la función comprima y que sea resistente a la computación de nuevos valores hash.
5. Обеспечение неоспоримости. Цифровая подпись. Задачи и алгоритмы реализации. Вычисление цифровой подписи на основе специальных алгоритмов. Цифровая подпись Фиата — Шамира.
Una firma digital es un mecanismo criptográfico que permite al receptor de un mensaje firmado digitalmente determinar la entidad originadora de dicho mensaje (autenticaciónde origen y no repudio), y confirmar que el mensaje no ha sido alterado desde que fue firmado por el originador (integridad).1 2
La firma digital se aplica en aquellas áreas donde es importante poder verificar la autenticidad y la integridad de ciertos datos, por ejemplo documentos electrónicos o software, ya que proporciona una herramienta para detectar la falsificación y la manipulación del contenido
Iacute;ndice
[ocultar]
· 1Terminología
· 2Propiedades necesarias
· 3Firma segura hacia adelante
· 4Clasificación
o 4.1En función del modo en el que se construye la firma
§ 4.1.1Basándonos en la supuesta seguridad de dispositivos físicos
§ 4.1.2Basándonos en criptografía de clave simétrica
§ 4.1.3Basándonos en criptografía de clave asimétrica
o 4.2En función de si usa información aleatoria
o 4.3En función de si necesita el mensaje original para la verificación de la firma
§ 4.3.1Esquemas de firma digital con recuperación de mensaje
§ 4.3.2Esquemas de firma digital con apéndice
o 4.4En función de la intervención o no de una entidad árbitro
§ 4.4.1Firma digital con árbitro
§ 4.4.2Firma digital sin árbitro
· 5Factores implicados en la verificación de la firma
· 6Aplicaciones
· 7Véase también
· 8Referencias
· 9Enlaces externos
Terminología[editar]
Terminología asociada al concepto:3
· Un algoritmo de generación de firma digital, también llamado simplemente algoritmo de generación de firma, es un método para producir firmas digitales.
· Un algoritmo de verificación de firma digital, también llamado simplemente algoritmo de verificación, es un método que permite la verificación de que una firma digital es auténtica.
· Un esquema o mecanismo de firma digital consiste en un algoritmo de generación de firma y su algoritmo de verificación asociado.
· Un proceso o procedimiento de firma digital es un algoritmo de generación de firma digital, junto con un método para formatear los datos en mensajes que puedan ser firmados.
Propiedades necesarias[editar]
Se han establecido una serie de propiedades necesarias que tiene que cumplir un esquema de firma para que pueda ser utilizado.4 La validez de una firma se ampara en la imposibilidad de falsificar cualquier tipo de firma radica en el secreto del firmante. En el caso de las firmas escritas el secreto está constituido por características de tipografológico inherentes al signatario y por ello difíciles de falsificar. Por su parte, en el caso de las firmas digitales, el secreto del firmante es el conocimiento exclusivo de una clave (secreta) utilizada para generar la firma. Para garantizar la seguridad de las firmas digitales es necesario a su vez que estas sean:
· Únicas: Las firmas deben poder ser generadas solamente por el firmante y por lo tanto infalsificable. Por tanto la firma debe depender del firmante
· Infalsificables: Para falsificar una firma digital el atacante tiene que resolver problemas matemáticos de una complejidad muy elevada, es decir, las firmas han de ser computacionalmente seguras. Por tanto la firma debe depender del mensaje en sí.
· Verificables: Las firmas deben ser fácilmente verificables por los receptores de las mismas y, si ello es necesario, también por los jueces o autoridades competentes.
· Innegables: El firmante no debe ser capaz de negar su propia firma.
· Viables: Las firmas han de ser fáciles de generar por parte del firmante.
Firma segura hacia adelante[editar]
Artículo principal: Firma segura hacia adelante
La idea básica de estos esquemas de firma es extender los algoritmos de firma digital con un algoritmo de actualización de clave que haga que la clave secreta pueda ser cambiada frecuentemente mientras la clave pública permanece siendo la misma. El esquema resultante es seguro hacia adelante si el conocimiento de la clave secreta en un momento del tiempo no ayuda a falsificar firmas relativas a un periodo anterior de tiempo.5
Clasificación[editar]
En función del modo en el que se construye la firma[editar]
Podemos construir esquemas de firma digital basándonos en distintos tipos de técnicas:6
· Basándonos en la supuesta seguridad de dispositivos físicos
· Basándonos en criptografía de clave simétrica.
· Basándonos en criptografía de clave asimétrica.
Basándonos en la supuesta seguridad de dispositivos físicos[editar]
Un dispositivo, como una tarjeta inteligente, se dice que es resistente a modificaciones (en inglés tamper resistant) si se cree que es difícil acceder a la clave secreta almacenada en él. Por tanto podemos usar una tarjeta inteligente con un algoritmo criptográfico para construir una firma digital de la siguiente forma:
El signatario tienen una tarjeta inteligente que puede sólo cifrar con una clave secreta , y cada verificador tiene una tarjeta inteligente que puede sólo descifrar con una clave secreta de forma que lo cifrado por sólo puede ser verificado por . y pueden ser iguales (clave simétrica) o distintas (claves asimétricas). En este tipo de mecanismo hay que abordar el problema de instalar y almacenar de forma segura las claves en las tarjetas inteligentes. Falsificar una firma es difícil si el dispositivo es resistente a modificaciones.
Basándonos en criptografía de clave simétrica[editar]
Se han propuesto distintos protocolos de firma basados en la criptografía de clave secreta. Sin embargo, a partir de la aparición de la criptografía asimétrica están en recesión debido a su superioridad tanto conceptual como operacional en la mayoría de los contextos de uso.
Los esquemas de firma digital de clave simétrica son los siguientes:
· Firma de Desmedt
· Firma de Lamport-Diffie
· Firma de clave simétrica de Rabin
· Firma de Matyas-Meyer
Estos esquemas están basados en el uso una función de un solo sentido (en inglés one-way function). La gran desventaja de este tipo de esquemas es el tamaño de las claves y de las firmas y del hecho de que sólo pueden ser usadas un número fijo de veces (frecuentemente una sola vez). Merkle7 ha propuesto optimizaciones para este tipo de algoritmos. Bleichenbacher y Maurer han proporcionado una generalización de estos métodos.8 Estos esquemas han servido como primitivas usadas en construcciones más complejas
Basándonos en criptografía de clave asimétrica[editar]
Se han propuesto distintos protocolos de firma basados en la criptografía de clave asimétrica. Los más importantes son los siguientes:
· Firma RSA
· Firma DSA
· Firma ESING
· Firma de clave asimétrica de Rabin
· Firma ElGamal
· Firma con curvas elípticas
· Firma de Guillou-Quisquater
· Firma de Ohta-Okamoto
· Firma de Schnorr
· Firma de Okamoto
· Firma de Feige-Fiat-Shamir
El uso de criptografía asimétrica para firma digital se basa en el concepto de funciones de un solo sentido con trampa (en inglés trapdoor one-way functions). Son funciones fáciles de computar en una sola dirección y difíciles de computar en otra dirección, excepto para alguien que conozca la información 'trampa'. La información puede entonces ser firmada digitalmente si el signatario transforma la información con su clave secreta (la información trampa). El verificador puede verificar la firma digital aplicando la transformación en el sentido fácil usando la clave pública.
En función de si usa información aleatoria[editar]
Algunos esquemas de firma son deterministas y otros usan bits aleatorios. Las firmas que usan bits aleatorios probablemente revelan menos información sobre la clave secreta, sin embargo, por otra parte, obligan al signatario a tener una fuente segura de bits aleatorios. Observar que si la fuente de bits aleatorios es revelada, no sólo la firma sino también la clave secreta puede que sea comprometida. Firma Bloqueada
En función de si necesita el mensaje original para la verificación de la firma[editar]
Podemos clasificar los esquemas de firma digital en función de si es necesario tener el mensaje original para verificar la firma, dando lugar a los siguientes tipos:9 10
· Esquemas de firma digital con recuperación de mensaje
· Esquemas de firma digital con apéndice
Esquemas de firma digital con recuperación de mensaje[editar]
Para verificar la firma este tipo de esquemas no requieren el mensaje original ya que el mensaje original se puede recuperar a partir de la propia firma digital.
Esquemas de firma digital con apéndice[editar]
Este tipo de esquemas requieren el mensaje original para poder verificar la firma. Esto es debido a que a lo que se aplica el algoritmo de firma no es realmente el mensaje original sino el resultado de aplicar una función hash con ciertas propiedades que las hacen resistentes frente a ataques para hallar su inversa, es decir, no es posible, a partir del valor resumen, calcular los datos originales. Son los llamadas códigos de detección de modificaciones.
Algunas de las motivaciones para hacer esto son:
· Reducir el tamaño de la firma reduciendo el tamaño de la información a firmar.
· Aumentar la velocidad de firma
· Si los mensajes a firmar pueden tener cierta estructura algebraica y el algoritmo de firma se comporta de forma que el sistema resultante puede ser vulnerable a criptoanálisis con ataques de texto escogido, podemos usar funciones hash para destruir esta estructura algebraica.
· Cuando se usa para firmar algoritmos de firma por bloques donde los mensajes son más largos que el bloque, no es seguro firmar mensajes bloque a bloque ya que un enemigo podría borrar bloques del mensaje firmado o insertar bloques de su elección en el mensaje antes de que sea firmado. Al usar una función hash hacemos una transformación que hace a la firma dependiente de todas las partes del mensaje.
· Hace que el protocolo de firma no sea útil para que un atacante obtenga el texto en claro correspondiente de un mensaje que ha sido transmitido de forma cifrada.
En función de la intervención o no de una entidad árbitro[editar]
Existen dos métodos para establecer protocolos de firma digital:11 firma digital con árbitro y firma digital sin árbitro.
Firma digital con árbitro[editar]
En este tipo de firma se aprovecha el hecho de que dos usuarios (X e Y) con desconfianza mutua admiten tener confianza en un tercero llamado árbitro (A). El árbitro posee una clave secreta con cada uno de los usuarios. Estas claves determinan las funciones de cifrado y descifrado que se establecen entre el árbitro y cada uno de los usuarios: . Toda la transmisión de la información entre los usuarios debe pasar forzosamente por el árbitro.
Si por ejemplo X quiere mandar un mensaje M firmado a Y lo cifra usando y lo manda al árbitro. El árbitro lo recibe lo descifra (usando ) comprobando que se trata de un mensaje válido de X, junta la identidad de X y el mensaje M a la firma y cifra el resultado con y lo manda a Y. El usuario Y descifra (usando ) obteniendo el mensaje M, la identidad del origen y algo que sabe que es la firma del mensaje por el usuario. El valor de la firma lo guarda junto con M para que A pueda dirimir ante una posible disputa.
Firma digital sin árbitro[editar]
En este esquema el usuario firmante envía directamente la firma al destinatario, éste debe poder comprobar la firma sin necesitar una tercera entidad como el árbitro.
Factores implicados en la verificación de la firma[editar]
Normalmente la verificación de la firma no se ciñe exclusivamente a verificar con el algoritmo de verificación, que la firma digital se corresponde con el mensaje que se quería firmar. Además hay que evaluar una serie de factores que dan la validez real de la firma:
· Hay que verificar que la clave usada por el signatario es válida. Normalmente las claves para firmar suelen tener mecanismos que sólo las hacen válidas durante cierto periodo de tiempo. Este tiempo se limita mediante uno o varios mecanismos, por ejemplo: fechas de caducidad (por ejemplo, para criptografía de clave pública con certificados, con tiempos de vigencia de certificados), estableciendo mecanismos que permiten comprobar que la clave no ha sido revocada por el firmante (por ejemplo, para criptografía de clave pública con certificados, con OCSP o CRL).
· En algunas ocasiones la firma lleva un sello de tiempo (en inglés timestamping). Este sello de tiempo establece el momento en el que se ha realizado la firma. Este sello se puede utilizar por los protocolos para establecer periodos de tiempos después del cual la firma no es válida. Por ejemplo podríamos establecer un sistema en el que las firmas sólo son válidas durante 30 minutos después de haberse producido.
Aplicaciones[editar]
· Mensajes con autenticidad asegurada
· Mensajes sin posibilidad de repudio
· Contratos comerciales electrónicos
· Factura Electrónica
· Desmaterialización de documentos
· Transacciones comerciales electrónicas
· Invitación electrónica
· Dinero electrónico
· Notificaciones judiciales electrónicas
· Voto electrónico
· Decretos ejecutivos (gobierno)
· Créditos de seguridad social
· Contratación pública
· Sellado de tiempo