Introducing the 2024 PKI & Digital Trust Report     | Download the Report

¿Qué es el cifrado homomórfico y por qué no se ha generalizado?

Tendencias del sector

Los algoritmos de encriptación homomórficos son un tipo de algoritmo de encriptación diseñado para permitir la realización de operaciones matemáticas sobre los datos encriptados. Se trata de una propiedad extremadamente útil con numerosas aplicaciones.

Introducción al cifrado homomórfico

Los datos pueden estar en uno de estos tres estados: en reposo, en tránsito y en uso. La mayor parte del cifrado se refiere a los dos primeros. La razón es que los datos en reposo o en tránsito no cambian activamente. Cuando se descifran, tienen el mismo valor que cuando se cifraron.

Los datos en uso, en cambio, no tienen esta propiedad. Casi todas las operaciones matemáticas con textos cifrados cambian el valor del texto plano correspondiente. Garantizar que el texto plano cambia de la "manera correcta" es difícil.

Los algoritmos de encriptación están diseñados para destruir cualquier relación entre el texto plano y el texto cifrado correspondiente. Un buen algoritmo de cifrado produce un texto cifrado que es indistinguible de un número aleatorio. La única forma de determinar qué texto plano corresponde a un determinado texto cifrado es utilizar la clave adecuada para descifrarlo.

La posibilidad de realizar operaciones matemáticas con datos cifrados implica que debe existir una relación entre los textos planos y los textos cifrados. Tiene que ser posible sumar o multiplicar dos textos cifrados y que el resultado sea el mismo que realizar la misma operación en los dos textos sin formato y luego cifrarlos.

Al mismo tiempo, esta relación debe implementarse de forma que quede oculta a un observador. Si la observación de las operaciones matemáticas sobre los textos cifrados revela información sobre los correspondientes textos sin cifrar, se rompe el cifrado.

Alcanzar estos objetivos mutuos de cifrado fuerte y la capacidad de realizar operaciones matemáticas en textos cifrados y obtener la respuesta correcta es realmente difícil. Los algoritmos de cifrado homomórfico son los que han logrado este objetivo.

Aplicaciones de la encriptación homomórfica

El cifrado homomórfico es muy importante porque permite realizar cálculos sobre datos cifrados. Esto significa que el procesamiento de datos puede subcontratarse a un tercero sin necesidad de confiar en que éste proteja adecuadamente los datos. Sin la clave de descifrado adecuada, no se puede acceder a los datos originales.

Esta capacidad de procesar datos cifrados puede resolver muchos de los grandes retos a los que se enfrentan las empresas de todos los sectores.

Seguridad de la cadena de suministro

La mayoría de las empresas confían en terceros como parte de su negocio. Estos contratistas, proveedores, etc., a menudo necesitan acceder a datos confidenciales y privados de la empresa para realizar su trabajo.

Acontecimientos recientes han demostrado los riesgos de las cadenas de suministro inseguras y cómo los ciberdelincuentes se centran en el eslabón más débil de la cadena para lograr sus objetivos. Esto significa que confiar datos confidenciales a un socio puede dejar a una organización expuesta a una violación de datos costosa y perjudicial.

El cifrado homomórfico puede ayudar a una empresa a protegerse contra estos riesgos de la cadena de suministro. Si todos los datos proporcionados a terceros de confianza para su procesamiento están cifrados, una violación de esos datos no supone ningún riesgo para la empresa. Esto permite a una organización externalizar el procesamiento de datos críticos con un riesgo mínimo.

Cumplimiento de la normativa

En los últimos años, el panorama normativo de la protección de datos se ha vuelto cada vez más complejo. Nuevas normativas, como el Reglamento de Protección de Datos de la UE(RGPD), han otorgado nuevos derechos a los interesados y han impuesto responsabilidades y restricciones adicionales a las empresas.

Una norma del GDPR con la que muchas empresas están luchando es el requisito de que los datos de los ciudadanos de la UE permanezcan dentro de la UE o en países o empresas con normas de seguridad de datos equivalentes. La sentencia Schrems II de 2020 invalidó una de las principales formas de justificar los flujos de datos entre la UE y Estados Unidos en virtud del RGPD, lo que causó problemas a muchas empresas estadounidenses con ciudadanos de la UE.

Leyes como el GDPR establecen claramente que sus requisitos no se aplican a los datos cifrados. Con el cifrado homomórfico, una empresa podría almacenar y procesar datos en sistemas fuera de la UE y descifrarlos en servidores situados en lugares que cumplan los requisitos del GDPR.

Análisis de datos privados

El análisis de datos es la forma en que muchas empresas ganan dinero. Empresas como Facebook pueden ofrecer servicios "gratuitos" recopilando información sobre sus usuarios, procesándola y vendiéndola a terceros para publicidad dirigida.

Sin embargo, esta monetización de los datos personales es controvertida. A muchas personas les disgusta que las empresas creen perfiles exhaustivos sobre ellas sin visibilidad ni control sobre los datos recopilados y el uso que se hace de ellos.

El cifrado homomórfico ofrece una posible solución a este problema. Con el cifrado homomórfico, una empresa como Facebook podría realizar el análisis de datos que necesita sin poder ver o acceder a los datos originales. Si los usuarios controlan las claves de cifrado, se podría hacer publicidad privada y selectiva.

Tipos de cifrado homomórfico

El objetivo del cifrado homomórfico es crear un algoritmo de cifrado que permita un número infinito de sumas o multiplicaciones de datos cifrados. Al final del proceso, el resultado debe ser el texto cifrado que se produciría si se realizaran las mismas operaciones con los correspondientes textos planos y se cifrara el resultado.

El problema es que diseñar un algoritmo de cifrado de este tipo es realmente difícil. Como resultado, existen diferentes "tipos" de cifrado homomórfico que describen lo cerca que está un algoritmo concreto de ese objetivo final.

Cifrado parcialmente homomórfico

Los algoritmos de cifrado parcialmente homomórficos permiten realizar una determinada operación un número infinito de veces. Por ejemplo, un algoritmo concreto puede ser aditivamente homomórfico, lo que significa que sumar dos textos cifrados produce el mismo resultado que cifrar la suma de los dos textos planos.

Los algoritmos de cifrado parcialmente homomórficos son relativamente fáciles de diseñar. De hecho, algunos algoritmos de cifrado comunes son parcialmente homomórficos por casualidad.

Por ejemplo, el algoritmo RSA es homomórfico multiplicativo. Esto se debe a que el cifrado en RSA se basa en la exponenciación: C = (m^x) (mod n) donde m es el mensaje y x es la clave secreta.

Las reglas de los exponentes dicen que (a^n)(b^n)=(ab)^n. Esto significa que multiplicar dos textos cifrados con la misma clave equivale a elevar el producto de los textos a la potencia de la clave secreta. Por tanto, RSA es homomórfico multiplicativo.

Cifrado algo homomórfico

El siguiente paso desde el cifrado parcialmente homomórfico es el cifrado algo homomórfico. Un algoritmo de cifrado algo homomórfico permite un número finito de cualquier operación en lugar de un número infinito de una operación concreta.

Por ejemplo, un algoritmo de cifrado algo homomórfico puede admitir cualquier combinación de hasta cinco sumas o multiplicaciones. Sin embargo, una sexta operación de cualquiera de los dos tipos crearía un resultado no válido.

Los algoritmos de cifrado algo homomórficos son un importante peldaño en el camino hacia el cifrado totalmente homomórfico. Es más difícil diseñar un algoritmo que admita tanto la suma como la multiplicación (incluso para un número determinado de operaciones) que crear uno que permita la suma o multiplicación infinita de textos cifrados.

Cifrado totalmente homomórfico

El cifrado totalmente homomórfico es el santo grial del cifrado homomórfico. Un algoritmo de cifrado totalmente homomórfico permite un número infinito de sumas o multiplicaciones de textos cifrados sin que el resultado deje de ser válido.

Hoy en día existen algoritmos de cifrado totalmente homomórficos. De hecho, el primer algoritmo de cifrado totalmente homomórfico fue inventado en 2009 por Craig Gentry. Desde entonces, se han desarrollado otros algoritmos que mejoran este algoritmo original.

¿Qué frena el cifrado homomórfico?

El cifrado totalmente homomórfico puede resolver una serie de importantes retos empresariales. El hecho de que exista significa que, en teoría, todo el mundo debería utilizarlo. 

¿Por qué no lo hacen?

El problema actual del cifrado totalmente homomórfico es que no es eficiente. Cumplir los requisitos del homomorfismo completo (es decir, permitir que los textos cifrados se sumen o multipliquen un número infinito de veces sin que se altere el resultado) significa que estos algoritmos son lentos y pueden tener requisitos de almacenamiento muy elevados.

Por ejemplo, IBM lanzó una versión mejorada de su biblioteca HElib C++ para el cifrado homomórfico en 2018. Esta versión es 25-75 veces más rápida que la versión anteriorque era 2 millones de veces más rápida que la versión original, lanzada tres años antes.

El problema es que la versión original realizaba operaciones matemáticas unos 100 billones de veces más despacio que esas mismas operaciones con los correspondientes textos planos. Esto significa que la versión nueva y mejorada sigue siendo, de media, un millón de veces más lenta que las operaciones con textos planos.

Un factor de un millón de ralentización es bastante significativo. Un cálculo que tardaría un segundo en realizarse utilizando plaintexts tardaría una media de 11,5 días en realizarse utilizando la versión 2018 de HElib.

Obviamente, este tipo de ralentización es una contrapartida inaceptable para las empresas que, de otro modo, estarían interesadas en el cifrado homomórfico. Sin embargo, un aumento de la velocidad de unos 100 millones de veces en 3 años es bastante impresionante. Aunque el cifrado homomórfico puede no ser una opción viable hoy en día, es posible que eso cambie en un futuro próximo.