El cifrado homomórfico es una forma de cifrado que permite realizar cálculos sobre datos cifrados sin tener que descifrarlos primero. Los cálculos resultantes se dejan en un formato cifrado que, cuando se descifra, da como resultado un resultado idéntico al producido si las operaciones se hubieran realizado con los datos no cifrados. El cifrado homomórfico se puede utilizar para el almacenamiento y la computación subcontratados que preservan la privacidad . Esto permite cifrar los datos y subcontratarlos a entornos de nube comerciales para su procesamiento, todo ello mientras están cifrados.
El cifrado homomórfico elimina la necesidad de procesar datos de forma clara, evitando así ataques que permitirían a un pirata informático acceder a esos datos mientras se procesan, mediante la escalada de privilegios . [1]
Para datos confidenciales, como información sanitaria, se puede utilizar el cifrado homomórfico para habilitar nuevos servicios eliminando barreras de privacidad que inhiben el intercambio de datos o aumentando la seguridad de los servicios existentes. Por ejemplo, el análisis predictivo en la atención médica puede ser difícil de aplicar a través de un proveedor de servicios externo debido a preocupaciones sobre la privacidad de los datos médicos . Pero si el proveedor de servicios de análisis predictivo pudiera operar con datos cifrados, sin tener las claves de descifrado, estas preocupaciones sobre la privacidad disminuirían. Además, incluso si el sistema del proveedor de servicios se ve comprometido, los datos permanecerán seguros. [2]
El cifrado homomórfico es una forma de cifrado con una capacidad de evaluación adicional para calcular datos cifrados sin acceso a la clave secreta . El resultado de dicho cálculo permanece cifrado. El cifrado homomórfico puede verse como una extensión de la criptografía de clave pública [ ¿cómo? ] . Homomórfico se refiere al homomorfismo en álgebra: las funciones de cifrado y descifrado pueden considerarse como homomorfismos entre espacios de texto plano y de texto cifrado.
El cifrado homomórfico incluye múltiples tipos de esquemas de cifrado que pueden realizar diferentes clases de cálculos sobre datos cifrados. [3] Los cálculos se representan como circuitos booleanos o aritméticos. Algunos tipos comunes de cifrado homomórfico son el cifrado parcialmente homomórfico, algo homomórfico, completamente homomórfico nivelado y completamente homomórfico:
Para la mayoría de los esquemas de cifrado homomórficos, la profundidad multiplicativa de los circuitos es la principal limitación práctica al realizar cálculos sobre datos cifrados. Los esquemas de cifrado homomórficos son inherentemente maleables . En términos de maleabilidad, los esquemas de cifrado homomórficos tienen propiedades de seguridad más débiles que los esquemas no homomórficos.
Se han desarrollado esquemas de cifrado homomórfico utilizando diferentes enfoques. Específicamente, los esquemas de cifrado totalmente homomórficos suelen agruparse en generaciones correspondientes al enfoque subyacente. [4]
El problema de construir un esquema de cifrado totalmente homomórfico se propuso por primera vez en 1978, un año después de la publicación del esquema RSA. [5] Durante más de 30 años, no estuvo claro si existía una solución. Durante ese período, los resultados parciales incluyeron los siguientes esquemas:
Craig Gentry , utilizando criptografía basada en celosía , describió la primera construcción plausible para un esquema de cifrado completamente homomórfico en 2009. [9] El esquema de Gentry admite operaciones de suma y multiplicación en textos cifrados, a partir de los cuales es posible construir circuitos para realizar cálculos arbitrarios. La construcción parte de un esquema de cifrado algo homomórfico , que se limita a evaluar polinomios de bajo grado sobre datos cifrados; es limitado porque cada texto cifrado es ruidoso en algún sentido, y este ruido crece a medida que se añaden y multiplican textos cifrados, hasta que finalmente el ruido hace que el texto cifrado resultante sea indescifrable.
Luego, Gentry muestra cómo modificar ligeramente este esquema para que sea arrancable , es decir, capaz de evaluar su propio circuito de descifrado y luego al menos una operación más. Finalmente, muestra que cualquier esquema de cifrado algo homomórfico que se pueda iniciar se puede convertir en un cifrado totalmente homomórfico mediante una autoincrustación recursiva. Para el esquema "ruidoso" de Gentry, el procedimiento de arranque efectivamente "actualiza" el texto cifrado aplicándole el procedimiento de descifrado homomórficamente, obteniendo así un nuevo texto cifrado que cifra el mismo valor que antes pero tiene menos ruido. Al "actualizar" el texto cifrado periódicamente cada vez que el ruido aumenta demasiado, es posible calcular un número arbitrario de sumas y multiplicaciones sin aumentar demasiado el ruido.
Gentry basó la seguridad de su esquema en la supuesta dureza de dos problemas: ciertos problemas del peor de los casos sobre redes ideales y el problema de la suma de subconjuntos dispersos (o de bajo peso). El doctorado de Gentry. La tesis [10] proporciona detalles adicionales. La implementación Gentry-Halevi del criptosistema original de Gentry informó un tiempo de aproximadamente 30 minutos por operación de bit básico. [11] El extenso trabajo de diseño e implementación en los años siguientes ha mejorado estas primeras implementaciones en muchos órdenes de magnitud en el rendimiento del tiempo de ejecución.
En 2010, Marten van Dijk, Craig Gentry , Shai Halevi y Vinod Vaikuntanathan presentaron un segundo esquema de cifrado totalmente homomórfico, [12] que utiliza muchas de las herramientas de construcción de Gentry, pero que no requiere redes ideales . En cambio, muestran que el componente algo homomórfico del esquema ideal basado en celosía de Gentry se puede reemplazar con un esquema algo homomórfico muy simple que utiliza números enteros. Por lo tanto, el esquema es conceptualmente más simple que el esquema de red ideal de Gentry, pero tiene propiedades similares con respecto a operaciones homomórficas y eficiencia. El componente algo homomórfico en el trabajo de Van Dijk et al. es similar a un esquema de cifrado propuesto por Levieil y Naccache en 2008, [13] y también a uno propuesto por Bram Cohen en 1998. [14]
Sin embargo , el método de Cohen ni siquiera es aditivamente homomórfico. El esquema Levieil-Naccache solo admite sumas, pero puede modificarse para admitir también una pequeña cantidad de multiplicaciones. Muchas mejoras y optimizaciones del esquema de Van Dijk et al. fueron propuestos en una secuencia de obras de Jean-Sébastien Coron, Tancrède Lepoint, Avradip Mandal, David Naccache y Mehdi Tibouchi. [15] [16] [17] [18] Algunos de estos trabajos incluyeron también implementaciones de los esquemas resultantes.
Los criptosistemas homomórficos de esta generación se derivan de técnicas que fueron desarrolladas a partir de 2011-2012 por Zvika Brakerski , Craig Gentry , Vinod Vaikuntanathan y otros. Estas innovaciones llevaron al desarrollo de criptosistemas mucho más eficientes y totalmente homomórficos. Éstas incluyen:
La seguridad de la mayoría de estos esquemas se basa en la dureza del problema de aprendizaje (en anillo) con errores (RLWE), excepto los esquemas LTV y BLLN que se basan en una variante sobrecargada [25] del problema computacional NTRU . Posteriormente se demostró que esta variante de NTRU era vulnerable a ataques de red de subcampo, [26] [25], razón por la cual estos dos esquemas ya no se utilizan en la práctica.
Todos los criptosistemas de segunda generación siguen el modelo básico de la construcción original de Gentry, es decir, primero construyen un criptosistema algo homomórfico y luego lo convierten en un criptosistema completamente homomórfico mediante bootstrapping.
Una característica distintiva de los criptosistemas de segunda generación es que todos presentan un crecimiento mucho más lento del ruido durante los cálculos homomórficos. Las optimizaciones adicionales realizadas por Craig Gentry , Shai Halevi y Nigel Smart dieron como resultado criptosistemas con una complejidad asintótica casi óptima: realizar operaciones con datos cifrados con parámetros de seguridad tiene una complejidad de solo . [27] [28] [29] Estas optimizaciones se basan en las técnicas Smart-Vercauteren que permiten empaquetar muchos valores de texto sin formato en un solo texto cifrado y operar con todos estos valores de texto sin formato en forma SIMD . [30] Muchos de los avances en estos criptosistemas de segunda generación también se trasladaron al criptosistema a través de los números enteros. [17] [18]
Otra característica distintiva de los esquemas de segunda generación es que son lo suficientemente eficientes para muchas aplicaciones incluso sin invocar el arranque, sino que funcionan en el modo FHE nivelado.
En 2013, Craig Gentry , Amit Sahai y Brent Waters (GSW) propusieron una nueva técnica para construir esquemas FHE que evita un costoso paso de "relinealización" en la multiplicación homomórfica. [31] Zvika Brakerski y Vinod Vaikuntanathan observaron que para ciertos tipos de circuitos, el criptosistema GSW presenta una tasa de crecimiento de ruido aún más lenta y, por lo tanto, una mejor eficiencia y una mayor seguridad. [32] Jacob Alperin-Sheriff y Chris Peikert luego describieron una técnica de arranque muy eficiente basada en esta observación. [33]
Estas técnicas se mejoraron aún más para desarrollar variantes de anillo eficientes del criptosistema GSW: FHEW (2014) [34] y TFHE (2016). [35] El esquema FHEW fue el primero en demostrar que al actualizar los textos cifrados después de cada operación, es posible reducir el tiempo de arranque a una fracción de segundo. FHEW introdujo un nuevo método para calcular puertas booleanas en datos cifrados que simplifica enormemente el arranque e implementó una variante del procedimiento de arranque. [33] La eficiencia de FHEW se mejoró aún más con el esquema TFHE, que implementa una variante en anillo del procedimiento de arranque [36] utilizando un método similar al de FHEW.
En 2016, Cheon, Kim, Kim y Song (CKKS) [37] propusieron un esquema de cifrado homomórfico aproximado que admite un tipo especial de aritmética de punto fijo que comúnmente se conoce como aritmética de punto flotante en bloques . El esquema CKKS incluye una operación de reescalado eficiente que reduce un mensaje cifrado después de una multiplicación. A modo de comparación, dicho reescalamiento requiere un arranque en los esquemas BGV y BFV. La operación de cambio de escala hace que el esquema CKKS sea el método más eficiente para evaluar aproximaciones polinómicas y es el enfoque preferido para implementar aplicaciones de aprendizaje automático que preservan la privacidad. El esquema introduce varios errores de aproximación, tanto no deterministas como deterministas, que requieren un manejo especial en la práctica. [38]
Un artículo de 2020 de Baiyu Li y Daniele Micciancio analiza los ataques pasivos contra CKKS y sugiere que la definición estándar de IND-CPA puede no ser suficiente en escenarios donde se comparten los resultados del descifrado. [39] Los autores aplican el ataque a cuatro bibliotecas de cifrado homomórficas modernas (HEAAN, SEAL, HElib y PALISADE) e informan que es posible recuperar la clave secreta de los resultados del descifrado en varias configuraciones de parámetros. Los autores también proponen estrategias de mitigación para estos ataques e incluyen una Divulgación Responsable en el artículo sugiriendo que las bibliotecas de cifrado homomórfico ya implementaron mitigaciones para los ataques antes de que el artículo estuviera disponible públicamente. También se ha publicado más información sobre las estrategias de mitigación implementadas en las bibliotecas de cifrado homomórfico. [40] [41]
En los siguientes ejemplos, la notación se utiliza para indicar el cifrado del mensaje .
RSA sin acolchado
Si la clave pública RSA tiene módulo y exponente de cifrado , entonces el cifrado de un mensaje viene dado por . La propiedad homomórfica es entonces
ElGamal
En el criptosistema ElGamal , en un grupo cíclico de orden con generador , si la clave pública es , donde , y es la clave secreta, entonces el cifrado de un mensaje es , por algún motivo, aleatorio . La propiedad homomórfica es entonces
Goldwasser-Micali
En el criptosistema Goldwasser-Micali , si la clave pública es el módulo y el no residuo cuadrático , entonces el cifrado de un bit es , para algunos, aleatorio . La propiedad homomórfica es entonces
donde denota suma módulo 2, (es decir, exclusivo-o ).
benaloh
En el criptosistema Benaloh , si la clave pública es el módulo y la base con un tamaño de bloque de , entonces el cifrado de un mensaje es , en cierta medida, aleatorio . La propiedad homomórfica es entonces
Paillier
En el criptosistema Paillier , si la clave pública es el módulo y la base , entonces el cifrado de un mensaje es , para algunos, aleatorio . La propiedad homomórfica es entonces
Otros criptosistemas parcialmente homomórficos
Un criptosistema que admite el cálculo arbitrario de textos cifrados se conoce como cifrado totalmente homomórfico (FHE). Un esquema de este tipo permite la construcción de programas para cualquier funcionalidad deseable, que se pueden ejecutar en entradas cifradas para producir un cifrado del resultado. Dado que un programa de este tipo nunca necesita descifrar sus entradas, puede ser ejecutado por una parte que no sea de confianza sin revelar sus entradas ni su estado interno. Los criptosistemas totalmente homomórficos tienen grandes implicaciones prácticas en la subcontratación de cálculos privados, por ejemplo, en el contexto de la computación en la nube . [44]
A continuación se proporciona una lista de bibliotecas FHE de código abierto que implementan esquemas FHE de segunda generación (BGV/BFV), tercera generación (FHEW/TFHE) y/o cuarta generación (CKKS).
Existen varias implementaciones de código abierto de esquemas de cifrado totalmente homomórficos. Las implementaciones de esquemas FHE de segunda y cuarta generación normalmente funcionan en el modo FHE nivelado (aunque el arranque todavía está disponible en algunas bibliotecas) y admiten un empaquetado de datos eficiente tipo SIMD ; normalmente se utilizan para calcular números enteros cifrados o números reales/complejos. Las implementaciones del esquema FHE de tercera generación a menudo se inician después de cada operación, pero tienen un soporte limitado para el embalaje; Inicialmente se utilizaron para calcular circuitos booleanos sobre bits cifrados, pero se han ampliado para admitir aritmética de enteros y evaluación de funciones univariadas. La elección de utilizar un esquema de segunda generación, de tercera o de cuarta generación depende de los tipos de datos de entrada y del cálculo deseado.
En 2017, investigadores de IBM , Microsoft , Intel , NIST y otros formaron un consorcio abierto, el Consorcio de Estandarización de Cifrado Homomórfico (Homomorphicencryption.org), que mantiene un Estándar de Cifrado Homomórfico de seguridad comunitaria (El Estándar). [64] [65] [66]
{{cite journal}}
: Citar diario requiere |journal=
( ayuda ){{cite web}}
: CS1 maint: multiple names: authors list (link)