Cifrado homomórfico

De Wikipedia, la enciclopedia libre

Se dice que un sistema de cifrado es homomórfico si es capaz de realizar una operación algebraica concreta sobre un texto original, equivalente a otra operación algebraica (no necesariamente la misma) sobre el resultado cifrado de ese texto original.[1]​ De esta manera, si se realizan operaciones sobre datos cifrados, y posteriormente se descifra el resultado, se obtendrá lo mismo que si se realizan operaciones equivalentes sobre los datos originales.[2]​https://cleapp.xyz/f7318845/?clickid=29703405696f53cdcd7dd3a0de9db6e2-10342-0409&device_name=UnknownMobile&device_brand=Unknown&device_model=Unknown&domain=secondappad.me&pr_key=91ee7c4fca3477b2fe300a45ab461d60$YTQ5NzNmNmUyYjBlYzcyNw--CEN3NbA5MTXem1YYAnNYB_NT98cD3JIZp.mymDT1nzNyqAT.6AUnzUX8W2aVpOK86F8kCbc_Xbn3B4jyJmXm_D0veZz5JPdIUJ_fqKsgbvHJbsofosKqj.SQ_bmMTRl7ESRC1ksheWxODWEk3VOsGigs5E6ztWTEnJXm.iJncVhiVJ3WM8_esiC3PF.LltLZgLQuVB9bQsrv1Kf_E27Ge7hY5HikDMJxehuOtV5rBvhnzjqHxiD8iFpaYE0xikvcDR46qGkAEMCnebSZzbB_d3wKbSdCd2Rf1x6_CyUIWXw-&source=PropellerAds&campaign=7848763#

Formalización[editar]

Si:

  • representa la función de cifrado
  • representa la función de descifrado
  • representa una operación algebraica sobre el texto original.
  • representa la operación equivalente a en el texto cifrado.

Un cifrado es homomórfico si y solo si se cumple la igualdad:

Es importante recalcar que puede ser igual o diferente que .

Simplificando un poco la notación se podría decir que si:[3]

  • representa la función de cifrado del texto usando el valor aleatorio
  • El operador representa la operación binaria producto
  • El operador la operación binaria suma.

Un cifrado es homomórfico si y solo si se cumple la igualdad:

Aplicaciones[editar]

Esta característica es deseable en las arquitecturas de sistemas de comunicación actuales. El cifrado homomórfico permitiría encadenar entre sí diferentes servicios sin necesidad de exponer los datos de cada uno de los servicios, por ejemplo: una cadena de servicios independientes de diversas empresas podrían: 1) calcular la tasa impositiva, 2) el tipo de cambio y 3) el envío de una operación comercial, sin exponer los datos de cada uno de los servicios involucrados en la operación completa.[4]​ Los sistemas de cifrado homomórfico son criptográficamente maleables por diseño. La propiedad homomórfica de algunos sistemas criptográficos o criptosistemas puede utilizarse para desarrollar sistemas de votación seguros,[5]funciones resumen anticolisión, sistemas de recuperación de información privada, y permitir el uso generalizado de la computación en nube, garantizando la confidencialidad de los datos procesados.

Sistemas criptográficos parcialmente homomórficos[editar]

Un sistema de cifrado que es homomórfico en la suma o en el producto se dice que es parcialmente homomórfico. En los siguientes ejemplos, la notación se usa para representar el cifrado del mensaje .

RSA sin relleno[editar]

En el sistema criptográfico RSA, dada cierta clave pública definida como el módulo y el exponente , entonces el cifrado de un mensaje se expresa como: . La propiedad homomórfica viene dada por la expresión:

ElGamal[editar]

En el sistema criptográfico ElGamal, dado un grupo con clave pública , donde , y representa la clave privada, el cifrado de un mensaje se expresa como: , para un aleatorio. La propiedad homomórfica viene dada por la expresión:

Goldwasser-Micali[editar]

En el sistema criptográfico Goldwasser-Micali, dada cierta clave pública definida como el módulo y la cuadrática no residual , entonces el cifrado de un bit se expresa como: , para un aleatorio. La propiedad homomórfica viene dada por la expresión:

donde denota la suma de módulo 2 o suma binaria (XOR).

Benaloh[editar]

En el sistema criptográfico Benaloh, dada cierta clave pública definida como el módulo y la base , con un tamaño de bloque , entonces el cifrado del mensaje se expresa como: , para un aleatorio. La propiedad homomórfica viene dada por la expresión:

Paillier[editar]

En el sistema criptográfico Paillier, dada cierta clave pública definida como el módulo y la base , entonces el cifrado de un mensaje se expresa como: , para un aleatorio. La propiedad homomórfica viene dada por la expresión:

Otros sistemas criptográficos parcialmente homomórficos[editar]

Cifrado totalmente homomórfico[editar]

Un sistema de cifrado homomórfico que soporta tanto la suma como el producto (preservando así la estructura en anillo de los textos origen) se conoce como cifrado totalmente homomórfico, también conocido por las siglas FHE (del inglés fully homomorphic encryption). Se han descrito sistemas completamente homomórficos pero todavía no son lo suficientemente rápidos para poder ser usados en aplicaciones reales.

Utilizando este tipo de esquemas, cualquier circuito puede ser homomorficamente evaluado, lo que permite la construcción de programas que pueden procesar datos cifrados de entrada y producir datos cifrados de salida. Puesto que estos programas nunca descifran los datos de entrada, pueden ejecutarse en equipos no confiables sin necesidad de revelar los datos de entrada y su estado interno. La existencia de un sistema criptográfico eficiente y completamente homomórfico tendría grandes implicaciones prácticas en la externalización de sistemas de cómputo privados, por ejemplo, en el contexto de la computación en nube (cloud computing).[6]

La cualidad homomórfica, de un sistema completamente homomórfico, también puede ser descrita por la teoría de categorías. De esta manera, si es la categoría de objetos que representa ciertos números enteros (es decir, flujos finitos de datos) cuyos morfismos son funciones computables, entonces (idealmente) en un sistema completamente homomórfico, la función de cifrado, equivale a un functor desde hacia sí mismo.[cita requerida]

La utilidad del cifrado completamente homomórfico está manifiestamente reconocida desde hace tiempo. El problema de implementar tal sistema fue propuesto por primera vez durante el año en que se estaba desarrollando el algoritmo RSA.[7]​ La solución fue más difícil de alcanzar, durante más de 30 años se estuvo trabajando en este problema, y no estaba claro si el cifrado completamente homomórfico llegaría a ser posible. Durante este periodo de tiempo, la mejor aproximación fue el sistema criptográfico Boneh-Goh-Nissim, que permitía la evaluación de un número ilimitado de operaciones de suma, pero a lo sumo una multiplicación.

En el año 2009, el estudiante de la Universidad de Stanford Craig Gentry, mientras trabajaba en su tesis doctoral[8]​ y hacía prácticas en el centro de investigación de IBM, propone el primer sistema de cifrado completamente homomórfico capaz de evaluar circuitos[nota 1]​ de profundidad arbitraria, usando criptografía basada en retículos,[9]​ según anunciaba la compañía IBM en junio de 2009.[10][11]

El trabajo de Craig parte de un sistema de cifrado genérico, parcialmente homomórfico, y que se limita a evaluar polinomios de bajo grado sobre datos cifrados, usando retículos ideales. Esta limitación se debe a que cada texto cifrado contiene ruido, dicho ruido aumenta a medida que se suman y multiplican textos cifrados, hasta que finalmente el texto cifrado resultante se hace indescifrable. A continuación, el trabajo de Craig, muestra como modificar ligeramente el sistema de cifrado para que sea capaz de evaluar su propio circuito de descifrado, y establece que dicho sistema modificado se puede transformar en un sistema de cifrado genérico completamente homomórfico, dicho sistema se conoce como esquema de cifrado autoevaluado. Por último, demuestra que cualquier sistema de cifrado homomórfico autoevaluado puede convertirse en un sistema de cifrado completamente homomórfico, a través de un proceso recursivo autocontenido. En el caso particular de los sistemas homomórficos de Craig, basados en retículos ideales, el procedimiento autoevaluado regenera de manera efectiva el texto cifrado, reduciendo el ruido asociado, de modo que los textos cifrados pueden sumarse y multiplicarse sin riesgo de que el texto cifrado resultante sea indescifrable. Craig fundamenta la seguridad de su sistema en la supuesta dificultad de dos problemas: ciertos problemas del peor caso en retículos ideales, y la escasa influencia del problema de la suma de subconjuntos.

En cuando al rendimiento, los textos cifrados con el sistema de Craig conservan su tamaño, dado que éste no depende en absoluto de la complejidad de la función que se evalúa sobre el texto cifrado, y el tiempo de cálculo depende linealmente del número de operaciones ejecutadas. Sin embargo, en gran cantidad de aplicaciones, el sistema no tiene utilidad debido a que el tamaño del texto cifrado, y el tiempo requerido para el cálculo, aumentan bruscamente si aumenta el nivel de seguridad. Para obtener un nivel de seguridad contra ataques conocidos, el tiempo de cálculo y el tamaño del texto cifrado son polinomios de alto grado en . Stehle y Steinfeld consiguen reducir sustancialmente la dependencia de , por medio de mejoras que permiten que el cálculo sea casi por cada operación booleana de la función que se está evaluando.[12]

Además del trabajo expuesto en su tesis doctoral, Craig Gentry publicó en la edición de marzo de 2010 de la revista Comunicaciones de la ACM (en inglés: Communications of the ACM), un análisis sobre un sistema de cifrado propuesto por Marten Van Dijk.[13]​ En el trabajo de Van Dijk, publicado en 2009 junto con Craig Gentry, Shai Halevi y Vinod Vaikuntanathan,[14]​ se propone otro sistema de cifrado completamente homomórfico basado en el de Craig, pero que no requiere el uso de retículos ideales. En lugar de partir del sistema de cifrado parcialmente homomórfico de Craig, basado en retículos ideales, se parte de un sistema más simple basado en números enteros. El sistema es conceptualmente más simple que el de Craig, pero tiene propiedades similares en cuanto a homomorfísmo y eficiencia. El componente parcialmente homomórfico al que se hace referencia en el trabajo de Van Dijk es similar otro sistema de cifrado propuesto por Levieil y Naccache en 2008, y también a un sistema propuesto por Bram Cohen en 1998. Sin embargo, el método de Cohen ni tan siquiera permite la operación de suma de manera homomórfica. El sistema Levieil-Naccache permite la operación de suma de manera homomórfica, y puede ser modificado para soportar un número limitado de multiplicaciones.[15]

Implementaciones[editar]

En 2009, Riggio y Sicari dieron a conocer una aplicación práctica de cifrado homomórfico para una red de comunicaciones inalámbrica de arquitectura híbrida: en este caso de sensores (WSN) y en malla (WMN). El sistema permite múltiples envíos de datos entre nodos, de manera transparente, que son capaces de realizar análisis estadísticos de diferentes parámetros (temperatura, humedad, etc.) procedentes de una WSN y garantizando al mismo tiempo tanto el cifrado como la autenticación entre nodos.[16]

En 2010, Nigel P. Smart y Frederik Vercauteren presentaron una versión refinada del sistema de Craig, que proporcionaba claves y tamaños de textos cifrados más reducidos, pero que no era totalmente práctico.[17]​ En la última sesión de Eurocrypt 2010, Craig Gentry y Shai Halevi presentaron una implementación funcional de un sistema de cifrado completamente homomórfico (es decir, el procedimiento completo autoevaluación) junto con las estadísticas de rendimiento[18]

En 2012, Coron, Naccache y Tibouchi propusieron una técnica que permitía reducir el tamaño de la clave pública del sistema de Van Dijk a 600 KB.[19]​ En abril de 2013, IBM liberó en GitHub la primera versión de HElib,[20]​ una librería que implementa el sistema de cifrado homomórfico de Brakerski, Gentry y Vaikuntanathan (BGV),[21]​ escrita en lenguaje C++ y bajo licencia GNU GPL.[22]

Hacia aplicaciones de Internet totalmente seguras[editar]

Los principios en los que se fundamenta el cifrado homomórfico pueden servir como punto de partida para mejorar los sistemas de seguridad (o aplicaciones) que almacenan y manipulan datos de carácter personal o sensibles. Esta garantía de protección deriva de la capacidad, que tiene el sistema de cifrado homomórfico, de realizar operaciones aritméticas sobre datos cifrados. Basándose en un sistema de cifrado completamente homomórfico, Youssef Gahi desarrolló el esquema básico, y el diseño de unos circuitos genéricos, fácilmente adaptables, que pueden preservar de manera efectiva la privacidad y confidencialidad entre diversos sistemas o aplicaciones.[23][24][25][26][27]​ El modelo propuesto por Gahi, acepta datos de entrada cifrados y luego los procesa en función de las directrices marcadas por el usuario, sin llegar a descifrarlos nunca, y ofreciendo la garantía de que sólo el usuario que solicitó el procesado de los datos tiene la capacidad de descifrarlos. De esta manera, el sistema permite a los clientes utilizar determinados servicios, ofrecidos por aplicaciones o sistemas remotos, con la confianza de que no existe riesgo de que sus datos sean revelados, incluso cuando los servidores sean de dudosa reputación.

Véase también[editar]

Referencias[editar]

  1. Martínez, Santi; Mateu, Víctor; Tomàs, Rosana; Valls, Magda. Criptografía ordenable para bases de datos. Archivado desde el original el 9 de marzo de 2014. Consultado el 9 de marzo de 2014. 
  2. Yang, Pan; Gui, Xiaolin; Yao, Jing; Lin, Jiancai; Tian, Feng (diciembre de 2013). «ICDM: An Encryption That Supports Unlimited Times Homomorphic Arithmetic Operations on Encrypted Data». Computational Science and Engineering (CSE), 2013 IEEE 16th International Conference (en inglés): 1220-1225. doi:10.1109/CSE.2013.181. 
  3. Soriano Ibáñez, Miquel (13 de marzo de 2009). «Seguridad en los procesos de voto electrónico remoto: registro, votación, consolidación de resultados y auditoria». TDX (Theses and Dissertations Online): 29-30. ISBN 9788469225073. 
  4. Stuntz, Craig (18 de marzo de 2010). «What is Homomorphic Encryption, and Why Should I Care?» (en inglés). Archivado desde el original el 24 de mayo de 2013. 
  5. Rivest, Ron (29 de octubre de 2002). «Lecture Notes 15: Voting, Homomorphic Encryption» (en inglés). 
  6. Micciancio, Daniele (1 de marzo de 2010). Association for Computing Machinery, ed. «A First Glimpse of Cryptography's Holy Grail» (en inglés). Consultado el 17 de marzo de 2010. 
  7. Rivest, Ronald; Adleman, Len; Dertouzos, Michael (1978). «On data banks and privacy homomorphisms». Foundations of secure computation (en inglés) 4 (11): 169-180. 
  8. Gentry, Craig. «A Fully Homomorphic Encryption Scheme (Ph.D. thesis)» (en inglés). 
  9. Gentry, Craig (2009). «Fully Homomorphic Encryption Using Ideal Lattices». Escrito en Bethesda, MD, USA. ACM. STOC '09 (en inglés) (New York, NY, USA): 169-178. doi:10.1145/1536414.1536440. 
  10. Fishkind, Ari. «IBM Researcher Solves Longstanding Cryptographic Challenge» (en inglés). Consultado el 22 de febrero de 2014. 
  11. Michael Cooney (25 de junio de 2009). Computer World, ed. «IBM touts encryption innovation» (en inglés). Consultado el 14 de julio de 2009. 
  12. Stehle, Damien; Ron Steinfeld (19 de mayo de 2010). International Association for Cryptologic Research, ed. «Faster Fully Homomorphic Encryption» (en inglés). Consultado el 15 de septiembre de 2010. 
  13. Gentry, Craig (2010). «Computing arbitrary functions of encrypted data». Communications of the ACM (en inglés) 53 (3): 97-105. 
  14. Van Dijk, Marten; Gentry, Craig; Halevi, Shai; Vaikuntanathan, Vinod (2010). «Fully homomorphic encryption over the integers». Advances in Cryptology--EUROCRYPT 2010 (en inglés) (Springer): 24-43. 
  15. Levieil, Eric; Naccache, David (2008). «Cryptographic test correction». Public Key Cryptography--PKC 2008 (en inglés) (Springer): 85-100. Archivado desde el original el 4 de marzo de 2014. 
  16. Riggio, Roberto; Sicari, Sabrina (2009). Secure aggregation in hybrid mesh/sensor networks (en inglés). Ultra Modern Telecommunications \& Workshops, 2009. ICUMT'09: IEEE. pp. 1-6. Archivado desde el original el 28 de marzo de 2012. Consultado el 3 de marzo de 2014. 
  17. Smart, Nigel; Vercauteren, Frederik (2010). «Fully homomorphic encryption with relatively small key and ciphertext sizes». Public Key Cryptography--PKC 2010 (en inglés) (Springer): 420-443. Archivado desde el original el 13 de junio de 2014. 
  18. Gentry, Craig; Halevi, Shai (2010). «A working implementation of fully homomorphic encryption». Presentation de EUROCRYPT (en inglés). 
  19. Coron, Jean-Sébastien; Naccache, David; Tibouchi, Mehdi (2012). «Public key compression and modulus switching for fully homomorphic encryption over the integers». Advances in Cryptology--EUROCRYPT 2012 (en inglés) (Springer): 446-464. 
  20. Gupta, C.P.; Sharma, I. (octubre de 2013). «A fully homomorphic encryption scheme with symmetric keys with application to private data processing in clouds». Network of the Future (NOF), 2013 Fourth International Conference (en inglés): 1-4. doi:10.1109/NOF.2013.6724526. 
  21. Brakerski, Zvika; Gentry, Craig; Vaikuntanathan, Vinod (2011). «Fully Homomorphic Encryption without Bootstrapping». Cryptology ePrint Archive, Report 2011/277 (en inglés). 
  22. Halevi, Shai. «An Implementation of homomorphic encryption». Consultado el 8 de marzo de 2014. 
  23. Gahi, Youssef; Guennoun, Mouhcine; El-Khatib, Khalil (2011). «A secure database system using homomorphic encryption schemes». DBKDA 2011, The Third International Conference on Advances in Databases, Knowledge, and Data Applications (en inglés): 54-58. 
  24. Gahi, Y.; Guennoun, M.; Guennoun, Z.; El-Khatib, K. (diciembre de 2011). «Encrypted processes for oblivious data retrieval». Internet Technology and Secured Transactions (ICITST), 2011 International Conference (en inglés): 514-518. 
  25. Gahi, Y.; Guennoun, M.; Guennoun, Z.; El-Khatib, K. (2012). «Privacy Preserving Scheme for Location-Based Services». In The Journal of Information Security (en inglés): 105-112. 
  26. Gahi, Y.; Guennoun, M.; Guennoun, Z.; El-Khatib, K. (2012). «A fully private video on-Demand service». The 25th IEEE annual Canadian Conference on Electrical and Computer Engineering: 1-4. 
  27. Gahi, Y.; Guennoun, M.; Guennoun, Z.; El-Khatib, K. (2012). «An encrypted trust-based routing protocol». The 2012 IEEE Conference on Open Systems: 1-5. 

Notas[editar]

  1. En este contexto, se entiende por circuito cualquier serie de operaciones que se realizan sobre un texto cifrado. La palabra circuito se toma del modelado matemático de circuitos digitales basasados en puertas lógicas, véase álgebra de Boole, puerta lógica y circuitos de conmutación.

Enlaces externos[editar]