Informe eSAMCid sobre protocolos criptográficos

Inicio Anterior Abajo Siguiente

2. Protocolos criptográficos de cifrado

2.1 Cifrado homomórfico
2.1.1 Aplicaciones
2.1.2 Esquemas concretos existentes
2.2 Cifrado determinista
2.3 Cifrado que preserva el formato o el orden

Puesto que la confidencialidad de la información es posiblemente la propiedad más importante, sensible y deseada en las comunicaciones digitales, es natural que los sistemas de cifrado sean los que reciben más atención, tanto teórica como práctica. En particular, hay varios estándares criptográficos proponiendo esquemas concretos de cifrado y longitudes de clave, tanto para el caso de cifrado simétrico (por ejemplo el sistema AES) como para cifrado asimétrico (por ejemplo RSA-OAEP o DHAES). Un par de enlaces con ejemplos de estos estándares:

https://en.wikipedia.org/wiki/Cryptography_standards

https://en.wikipedia.org/wiki/IEEE_P1363

Podemos observar en el segundo enlace que el instituto americano IEEE ya incluye propuestas de sistemas estándar para funcionalidades más avanzadas, como el cifrado basado en identidades, y también para entornos matemáticos no clásicos: emparejamientos bilineales (pairings, en inglés) y cifrado basado en retículos.

En el resto de la sección explicaremos algunas propiedades o funcionalidades adicionales que pueden tener los sistemas de cifrado, y algunas posibles aplicaciones de esas propiedades en situaciones de la vida real.

2.1. Cifrado homomórfico

Supongamos que los textos en claro que puede cifrar un sistema de cifrado pertenecen a un conjunto matemático (ℳ,⊕) con una operación interna ⊕ y que los textos cifrados pertenecen a otro conjunto matemático (𝒞,⊗). Diremos que el sistema de cifrado es homomórfico si se cumple que, para todo cifrado c1 de un texto en claro m1, y para todo cifrado c2 de un texto en claro m2, el texto cifrado c = c1 ⊗ c2 es un texto cifrado válido para el texto en claro m = m1 ⊕ m2.

Cuando la operación ⊕ consiste en la suma de números enteros (posiblemente con reducción modular), se dice que la propiedad homomórfica es aditiva. Cuando la operacion ⊕ consiste en la multiplicación de números enteros (posiblemente con reducción modular), se dice que la propiedad homomórfica es multiplicativa.

Si un sistema de cifrado tiene a la vez propiedades homomórficas aditivas y multiplicativas, se dice que es un sistema completamente homomórfico (en inglés, fully homomorphic encryption scheme).

2.1.1. Aplicaciones

Una de las aplicaciones más conocidas de los criptosistemas homomórficos es el voto electrónico. Por ejemplo, en un referéndum donde haya que escoger entre dos opciones, una puede representarse con el texto en claro m0 = 0 y otra con el texto en claro m1 = 1. Si el sistema de cifrado es aditivamente homomórfico, cada votante cifrará su voto. Al final de la votación, se operarán todos los n votos cifrados recibidos C = c1 ⊗… ⊗ cn y el resultado será un cifrado válido de la suma de votantes que hayan elegido la opción m1 = 1. La autoridad de la votación, que estará en posesión de la clave secreta de descifrado, descifrará C y hará público ese resultado.

Otra aplicación que ha recibido mucha atención en los últimos años es la delegación de cálculo sobre datos (cifrados) en la Nube. Un usuario puede guardar sus datos confidenciales en la Nube, cifrados, y si luego quiere realizar algún cálculo sobre sus datos (por ejemplo, el promedio de unos cuantos de los valores en esa base de datos cifrados), puede hacer una petición al servicio que almacena sus datos en la Nube, que operará los textos cifrados de la manera adecuada y enviará el texto cifrado resultante al usuario. El usuario, que será quién tenga la clave secreta de descifrado, podrá descifrar ese texto cifrado y recuperar el valor (en claro) del cálculo que había pedido.

2.1.2. Esquemas concretos existentes

Un sistema de cifrado que tenga propiedades homomórficas nunca puede poseer el nivel de seguridad más alto propuesto (seguridad frente a ataques de texto cifrado escogido, denotada como seguridad IND-CCA). Existen propuestas de sistemas homomórficos en distintos escenarios matemáticos, por ejemplo el sistema de Paillier [43] es aditivamente homomórfico y basa su seguridad en la dificultad de factorizar números enteros grandes. Por otro lado, el sistema de ElGamal [22] es multiplicativamente homomórfico y basa su seguridad en la dificultad de calcular logaritmos discretos. Entre los sistemas cuya seguridad se basa en la dificultad de resolver problemas en retículos euclideanos, podemos citar el criptosistema aditivamente homomórfico de Regev [48].

Capítulo aparte merecen los sistemas completamente homomórficos. Durante más de 30 años el problema de encontrar un sistema de cifrado completamente homomórfico permaneció abierto. De hecho muchos investigadores estaban convencidos que algún día se podría demostrar la imposibilidad de tener un sistema seguro con esas características. Sin embargo, en 2009 Gentry propuso un sistema con esas propiedades [27], y una demostración de seguridad basada en la dificultad de algunos problemas relacionados con los retículos euclideanos. Ese resultado supuso una revolución en el ámbito de la criptografía, y desde entonces se han propuesto varios candidatos a sistemas de cifrado completamente homomórficos, con mejoras tanto a nivel de eficiencia como de garantías de seguridad. Sin embargo, la eficiencia de todos esos esquemas aún es muy baja, y por tanto la idea de tener un sistema de cifrado completamente homomórfico funcionando de manera práctica aún está lejos de implementarse en la vida real.

2.2. Cifrado determinista

Para poseer un cierto nivel de seguridad, una función de cifrado ha de ser probabilística: para cifrar un mensaje, se utiliza una aleatoriedad escogida de un conjunto suficientemente grande. Eso quiere decir que un mismo texto en claro puede tener muchos textos cifrados válidos (uno para cada valor posible de la aleatoriedad). Si una función de cifrado no es probabilística, entonces es determinista: existe un único texto cifrado válido para cada texto en claro, y dicho texto cifrado se calcula sin utilizar ningún valor aleatorio externo.

Un sistema de cifrado de clave pública determinista no puede alcanzar el nivel de seguridad semántica, que exige que ningún atacante sea capaz de distinguir si un texto cifrado c = Enc(pk,m b) corresponde al texto en claro m0 o al texto en claro m1, donde m0 y m1 han sido escogidos por el atacante, y el bit b ∈{0, 1} es un bit aleatorio. Si el sistema de cifrado es determinista, cualquier atacante puede calcular c0 = Enc(pk,m0) y c1 = Enc(pk,m1), comparar esos textos cifrados con c y distinguir fácilmente qué texto en claro ha sido cifrado en c.

Por tanto, los sistemas de cifrado de clave pública deterministas no son adecuados para determinadas situaciones que requieran un nivel de seguridad semántica. Sin embargo, pueden ser adecuados para otras situaciones en las que un nivel de seguridad inferior (por ejemplo, la unidireccionalidad entre texto en claro y texto cifrado) sea suficiente. En esos casos, como queda claro del ataque contra la seguridad semántica explicado en el párrafo anterior, la seguridad real proporcionada por un sistema determinista dependerá directamente de la entropía del espacio de posibles textos en claros; es decir, de cuántos textos en claro tienen una probabilidad no nula de ser el origen de un texto cifrado concreto, y cuál es el valor de esas probabilidades.

La aplicación más interesante de este tipo de cifrado es la búsqueda eficiente de datos concretos en una base de datos (muy grande) cifrada, tal y como se explica en [5]. Los esquemas que se presentan en ese artículo representan aún a día de hoy el estado del arte en cuanto a sistemas concretos eficientes. Otros artículos posteriores son de carácter más teórico [23].

2.3. Cifrado que preserva el formato o el orden

En algunas situaciones, se quiere proteger la confidencialidad de algunos datos pero de manera que la versión cifrada de esos datos aún preserve alguna propiedad de los datos originales, por ejemplo para facilitar el almacenamiento, la gestión o la verificación de los datos.

Un sistema de cifrado preserva el orden cuando se puede definir un orden tanto en el espacio de textos en claro como en el espacio de textos cifrados y, además, se cumple que para toda pareja de textos en claro m1,m2 y cualquier texto cifrado válido c1 de m1 y c2 de m2, se verifica que m1 ≤ m2 si y sólo si c1 ≤ c2.

Un sistema de cifrado preserva el formato cuando los textos cifrados resultantes de aplicar la función de cifrado dan lugar a elementos que conservan algún aspecto del formato del texto en claro. Por ejemplo, si el formato de un número de DNI es de ocho cifras y luego una letra que es una función determinista de las ocho cifras anteriores, entonces cifrar un DNI debe dar lugar a otro conjunto de ocho cifras y una letra que también sea función determinista de esas ocho cifras; es decir, el cifrado de un DNI válido debe ser un número de DNI potencialmente válido (aunque posiblemente inexistente e idealmente nada relacionado con el DNI válido que se ha cifrado). Otro ejemplo muy habitual se da a la hora de cifrar números de tarjetas de crédito. De hecho, esta última aplicación es la que ha tenido más éxito, hasta el punto que los sistemas de cifrado que preservan el formato han sido estandarizados [21].

Los sistemas que preservan el orden no han sido de momento estandarizados, pero sí que tienen muchas aplicaciones en áreas de bases de datos, puesto que permiten hacer muchas peticiones simples (ordenar, consultar elementos en un rango concreto, obtener el máximo, etc.) sobre datos cifrados. Todos los sistemas de cifrado que preservan el orden (ver [9] para algunos ejemplos) funcionan en el escenario de la criptografía simétrica.

Inicio Anterior Arriba Siguiente