El cifrado homomórfico es una forma de cifrado que le permite realizar ciertas operaciones matemáticas en el texto cifrado y obtener un resultado cifrado que coincide con el resultado de las operaciones realizadas en el texto sin formato . Por ejemplo, una persona podría sumar dos números encriptados sin conocer los números descifrados, y luego otra persona podría descifrar la suma encriptada: obtener la cantidad descifrada sin tener los números descifrados. El cifrado homomórfico permitiría prestar diferentes servicios sin proporcionar datos públicos de usuario para cada servicio.
Hay criptosistemas parcialmente homomórficos y totalmente homomórficos. Un criptosistema parcialmente homomórfico le permite realizar sólo una de las operaciones, ya sea suma o multiplicación . Un criptosistema completamente homomórfico admite ambas operaciones, es decir, satisface las propiedades del homomorfismo con respecto a la multiplicación y la suma.
El concepto de "cifrado homomórfico" fue formado por primera vez [1] en 1978 por Ronald Rivest , Leonard Adleman y Michael Dertouzos , los autores del algoritmo RSA un año después del desarrollo del algoritmo. Sugirieron la posibilidad de realizar operaciones arbitrarias en datos cifrados sin descifrarlos.
En ese momento, los intentos de crear un criptosistema completamente homomórfico no tuvieron éxito. Por ejemplo, en 1982, Shafi Goldwasser y Silvio Micali propusieron un sistema de encriptación que es homomórfico bajo multiplicación y capaz de encriptar solo un bit. Otro criptosistema homomórfico con respecto a la multiplicación fue propuesto en 1999 por Pascal Peyet .
En 2005, Dan Bone , Yu Jin Guo y Kobi Nissim propusieron [2] un criptosistema basado en el uso de pares bilineales en curvas elípticas , que permitía un número ilimitado de operaciones de suma y una operación de multiplicación.
El problema de crear un criptosistema que sea homomórfico con respecto a las operaciones de suma y multiplicación ha permanecido sin resolver durante más de 30 años.
En 2009, Craig Gentry , estudiante de posgrado en la Universidad de Stanford y pasante en IBM , justificó teóricamente la posibilidad fundamental de crear un criptosistema de cifrado completamente homomórfico y propuso uno de esos sistemas . El sistema propuesto se puede utilizar para garantizar la confidencialidad de los datos durante cualquier tipo de procesamiento de datos en entornos no confiables, por ejemplo, en la nube o computación distribuida .
Pronto apareció trabajo que sugería modificaciones para mejorar el rendimiento del criptosistema Gentry .
Los criptógrafos están trabajando en formas alternativas de construir criptosistemas totalmente homomórficos, como el uso de cifrado simétrico en lugar del cifrado de clave pública, el uso de polinomios en una o más variables, el uso de polinomios matriciales.
El cifrado homomórfico es una forma de cifrado que permite realizar una operación algebraica específica en el texto sin formato mediante la realización de una operación algebraica en el texto cifrado.
Sea la clave de cifrado, sea el texto sin formato (mensaje) a cifrar y sea la función que realiza el cifrado.
Una función se denomina homomórfica con respecto a la operación " " (suma o multiplicación) sobre textos planos (mensajes) y si existe un algoritmo eficiente (que requiere un número polinomial de recursos y se ejecuta en tiempo polinomial ), que habiendo recibido cualquier par de textos cifrados de la forma y como entrada , produce un texto cifrado (texto cifrado, criptograma) tal que cuando se descifra , se obtendrá el texto sin formato [3] .
En la práctica, se considera más a menudo el siguiente caso especial de encriptación homomórfica.
Sea para la función de encriptación dada y la operación “ ” en textos sin formato y haya una operación “ ” en textos cifrados, tal que el texto sin formato se extrae del texto cifrado cuando se descifra . Esto requiere que dado , , , pero con una clave desconocida , sería imposible verificar de manera efectiva que el texto cifrado se obtuvo de y .
Cualquier sistema de cifrado estándar se puede describir describiendo tres operaciones: una operación de generación de claves ( keyGen ), una operación de cifrado ( encrypt ) y una operación de descifrado ( decrypt ) [4] .
Para describir un sistema de cifrado homomórfico, además de las tres operaciones enumeradas anteriormente, es necesario describir la operación de cálculo ( eval ). El uso de cifrado homomórfico implica el uso de una secuencia de cuatro operaciones: generación de claves, cifrado, cálculo, descifrado:
Sea la función de cifrado; - función de expansión; y — textos sin formato; los símbolos “ ” y “ ” denotan operaciones de multiplicación y suma en textos cifrados, correspondientes a operaciones de multiplicación y suma en textos planos.
Un sistema de cifrado es homomórfico con respecto a la operación de multiplicación (tiene propiedades homomórficas multiplicativas) si
Un sistema de cifrado es homomórfico con respecto a la operación de suma (tiene propiedades homomórficas aditivas) si
Un sistema de cifrado es homomórfico con respecto a las operaciones de multiplicación y suma, es decir, completamente homomórfico (tiene propiedades homomórficas tanto multiplicativas como aditivas) si
Si un criptosistema con estas propiedades puede cifrar dos bits, entonces, dado que las operaciones de suma y multiplicación forman una base completa de Turing sobre los bits, es posible calcular cualquier función booleana y, por lo tanto, cualquier otra función computable .
El cifrado homomórfico abre nuevas oportunidades para preservar la integridad, disponibilidad y confidencialidad de los datos cuando se procesan en sistemas en la nube. En la computación en la nube , donde el rendimiento es una prioridad máxima, se deben aplicar diferentes algoritmos, cada uno de los cuales realiza mejor la tarea en cuestión. Por ejemplo, para operaciones de multiplicación de datos cifrados, es recomendable utilizar el algoritmo RSA o el algoritmo ElGamal , y para la suma, el algoritmo Peye . En el caso de utilizar un sistema de cifrado completamente homomórfico, se debe limitar el número de operaciones que se pueden realizar sobre los datos, ya que como resultado de los cálculos se acumula algún error . Si el valor del error supera el valor del parámetro secreto , es posible que los datos no se puedan descifrar correctamente.
Voto electrónicoEl voto electrónico es otra prometedora área de aplicación del cifrado homomórfico. El sistema podrá encriptar los votos de los votantes y realizar cálculos sobre datos encriptados, manteniendo el anonimato de los votantes. Por ejemplo, en el esquema de votación electrónica de Benalo, el proceso de votación incluye los siguientes pasos [5] :
Considere un ejemplo de cómo se puede implementar este enfoque.
Sea un conjunto de candidatos a partir de los cuales se forme la lista incluida en la papeleta. El iniciador de la votación tiene un criptosistema que es homomórfico respecto a la operación de suma, distribuye entre los participantes del voto secreto la clave pública del sistema de encriptación homomórfico y el voto como vector donde se encuentra el apellido del -ésimo candidato. Cada uno de los votantes hace un vector de preferencias donde después de eso, usando la clave pública, cada uno de los votantes encripta el vector elemento por elemento y lo envía al iniciador de la votación. Para resumir los resultados de la votación, realiza cálculos sobre los elementos correspondientes de los vectores de preferencia recibidos y los descifra utilizando la clave secreta . Dado que el criptosistema es homomórfico con respecto a la operación de suma, los índices de los elementos más grandes del vector resultante serán los índices de los candidatos ganadores.
Búsqueda segura de informaciónEl cifrado homomórfico puede brindar a los usuarios la capacidad de extraer información de los motores de búsqueda manteniendo la confidencialidad: los servicios podrán recibir y procesar solicitudes, así como emitir resultados de procesamiento sin analizar y corregir su contenido real. Por ejemplo, un método para extraer registros de una base de datos por sus índices se puede representar de la siguiente manera.
Sea el índice del registro a recuperar; ; - todos los registros indexados de la base de datos.
Luego, para seleccionar el registro requerido, es necesario calcular la siguiente función :
Si todos están encriptados con un criptosistema homomórfico, uno puede calcular homomórficamente sobre textos cifrados. Para ello, basta con que el cliente cifre bit a bit el índice del registro que necesita y lo envíe al servidor. El resultado de una evaluación homomórfica de una función sobre textos cifrados será el valor cifrado deseado de la entrada solicitada por el cliente. Obviamente, un criptosistema debe tener propiedades homomórficas tanto multiplicativas como aditivas.
Protección de redes inalámbricas de comunicación descentralizadasLas redes inalámbricas descentralizadas autoorganizadas ( MANET ) son redes formadas por dispositivos móviles. Cada dispositivo de este tipo puede moverse de forma independiente en cualquier dirección y, como resultado, a menudo se rompe y establece conexiones con dispositivos vecinos. Uno de los principales problemas en la construcción de MANET es garantizar la seguridad de los datos transmitidos. Para resolver este problema, se puede utilizar el cifrado homomórfico, que está integrado en los protocolos de enrutamiento para mejorar la seguridad. En este caso, los nodos intermedios pueden realizar operaciones en textos cifrados de forma segura. En particular, para encontrar la ruta óptima entre dos nodos, es necesario realizar operaciones lineales en datos cifrados sin descifrarlos. La presencia de cifrado homomórfico no permite que un atacante encuentre una conexión entre los mensajes que ingresan al nodo y los mensajes que salen del nodo. Por lo tanto, no es posible rastrear la ruta de un mensaje utilizando el análisis de tráfico [6] .
Servicios de externalización de tarjetas inteligentesLa tendencia actual es desarrollar tarjetas universales con su propio sistema operativo , que pueden realizar una variedad de funciones e interactuar con múltiples proveedores de servicios. Se ha especulado que algunas aplicaciones pueden ejecutarse fuera del mapa en datos cifrados homomórficamente. Las aplicaciones especialmente intensivas en recursos, como las aplicaciones de proveedores de servicios, así como las verificaciones biométricas ( reconocimiento de voz , huellas dactilares o escritura a mano ), que normalmente requieren una cantidad significativa de datos y una gran cantidad de operaciones relativamente sencillas, pueden utilizar dispositivos de almacenamiento externo y procesadores , más potentes que el procesador integrado en la tarjeta.
Sistemas de retroalimentaciónEl cifrado homomórfico se puede utilizar, por ejemplo, en los llamados sistemas seguros de retroalimentación homomórfica cuando es necesario preservar el anonimato del usuario y ocultar los resultados intermedios de los cálculos . Los sistemas ayudan a recopilar de forma anónima la retroalimentación (comentarios) de estudiantes o profesores sobre su trabajo. Los comentarios recibidos de esta manera se cifran y almacenan para cálculos posteriores. Los sistemas de retroalimentación se pueden utilizar para generar conciencia sobre el estado de las cosas y mejorar el desempeño. Se ha establecido que solo se puede proporcionar una retroalimentación confiable de cualquier sistema o proceso en los casos de mantener el anonimato del usuario, la inmutabilidad de los datos recopilados y garantizar la seguridad de las operaciones internas para el análisis de datos.
Ofuscación para proteger los productos de softwareEl objetivo principal de la ofuscación es dificultar la comprensión del funcionamiento del programa. Dado que todas las arquitecturas informáticas tradicionales utilizan cadenas binarias, al aplicar un cifrado completamente homomórfico sobre bits, se puede calcular cualquier función. Por lo tanto, es posible cifrar homomórficamente todo el programa para que conserve su funcionalidad.
Los criptosistemas parcialmente homomórficos son criptosistemas que son homomórficos con respecto a una sola operación, ya sea la operación de suma o la operación de multiplicación. En los ejemplos a continuación, la expresión denota el uso de la función de cifrado para cifrar el texto sin formato (mensaje) .
El criptosistema RSA es un esquema criptográfico de clave pública que es homomórfico en la multiplicación. Sea el módulo RSA, el texto sin formato y la clave pública (para cifrar el texto sin formato). La función de encriptación parece . Demostremos el homomorfismo por multiplicación:
El criptosistema ElGamal es una alternativa al criptosistema RSA y, con el mismo valor de clave, proporciona la misma seguridad criptográfica . ElGamal mejoró el algoritmo Diffie-Hellman y obtuvo algoritmos para el cifrado y para proporcionar autenticación. Un criptosistema es un criptosistema de cifrado probabilístico. Su función de cifrado es homomórfica con respecto a la operación de multiplicación de texto sin formato: un criptograma de producto se puede calcular como un producto (por pares) de criptogramas de factores. Sea la función de cifrado; y — textos planos. Si y entonces se puede obtener en el formulario .
En el criptosistema Goldwasser-Micali , si el módulo es la clave pública, entonces la función de cifrado de bits es para el elemento aleatorio . Entonces este criptosistema es homomórfico para la operación de multiplicación: donde el símbolo “ ” denota la operación de suma módulo 2 .
En el criptosistema Peye , si la clave pública es un módulo y es un número aleatorio, entonces la función de cifrar un mensaje (texto plano) se representa como una variable aleatoria . Entonces el homomorfismo por adición se prueba de la siguiente manera:
En el criptosistema Benalo , si la clave pública es un módulo , entonces la función de cifrado de texto sin formato se representa como aleatoria . Entonces el homomorfismo por adición se prueba de la siguiente manera:
Los criptosistemas parcialmente homomórficos permiten realizar cálculos homomórficos para una sola operación (ya sea suma o multiplicación) de textos sin formato. Un criptosistema que admite tanto la suma como la multiplicación (preservando así la estructura de anillo de texto sin formato ) se conoce como cifrado totalmente homomórfico y es más potente. Usando un sistema de este tipo, cualquier esquema puede evaluarse homomórficamente, lo que permite la creación eficiente de programas que pueden ejecutarse en el cifrado de entrada para producir el cifrado de salida. Dado que dicho programa nunca descifrará su entrada, puede ser ejecutado por una parte no confiable sin mostrar su entrada y estado interno. La existencia de un sistema criptográfico eficiente y totalmente homomórfico tendría grandes implicaciones prácticas en la externalización de la informática privada, por ejemplo en el contexto de la computación en la nube [7] . El cifrado homomórfico permitiría combinar diferentes servicios en uno sin proporcionar datos para cada servicio. Por ejemplo, agrupar los servicios de diferentes empresas podría calcular el impuesto de manera consistente, aplicar el tipo de cambio actual, enviar una solicitud de transacción, sin proporcionar datos reales para cada uno de estos servicios [8] . La propiedad homomórfica de varios sistemas criptográficos se puede utilizar para crear sistemas de votación seguros [9] , funciones hash resistentes a colisiones, información patentada de motores de búsqueda y permitir el uso generalizado de la computación en la nube pública al garantizar la confidencialidad de los datos procesados.
Uno de los problemas significativos de los criptosistemas totalmente homomórficos conocidos es su rendimiento extremadamente bajo. Actualmente, hay dos formas principales de mejorar el rendimiento: el uso de " cifrado totalmente homomórfico limitado " [10] y el uso del llamado "método de empaquetado de texto cifrado" [11] . El primero implica un criptosistema que puede realizar operaciones de suma y multiplicación, pero en un número limitado. La esencia del segundo es que varios textos sin formato se escriben en un texto cifrado a la vez y, al mismo tiempo, durante una sola operación de dicho texto cifrado por lotes, todos los textos cifrados incluidos en él se procesan simultáneamente.