Los algoritmos de cifrado homomórfico son un tipo de algoritmo de cifrado diseñado para permitir la realización de operaciones matemáticas sobre datos cifrados. Esta es una propiedad extremadamente útil con diversas aplicaciones.
Introducción al cifrado homomórfico
Los datos pueden encontrarse en uno de tres estados: en reposo, en tránsito y en uso. La mayoría de los métodos de cifrado se ocupan de los dos primeros. La razón es que los datos en reposo o en tránsito no cambian activamente. Su valor es el mismo cuando se descifra que cuando se cifró.
Los datos en uso, por otro lado, no poseen esta propiedad. Casi todas las operaciones matemáticas sobre textos cifrados cambiarían el valor del texto plano correspondiente. Asegurar que el texto plano cambie de la “manera correcta” es difícil.
Los algoritmos de cifrado 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 capacidad de realizar operaciones matemáticas sobre datos cifrados implica que debe existir una relación entre los textos planos y los textos cifrados. Debe ser posible sumar o multiplicar dos textos cifrados y que el resultado sea el mismo que si se realizara la misma operación sobre los dos textos planos y luego se cifrara.
Al mismo tiempo, esta relación debe implementarse de tal manera que quede oculta para un observador. Si la observación de operaciones matemáticas sobre textos cifrados revela información sobre los textos planos correspondientes, entonces el cifrado está comprometido.
Lograr estos objetivos mutuos de cifrado robusto y la capacidad de realizar operaciones matemáticas sobre textos cifrados obteniendo la respuesta correcta es realmente difícil. Los algoritmos de cifrado homomórfico son los que han logrado este objetivo.
Aplicaciones del cifrado homomórfico
El cifrado homomórfico es de gran importancia porque permite realizar cálculos sobre datos cifrados. Esto significa que el procesamiento de datos puede externalizarse a un tercero sin necesidad de confiar en que este tercero proteja adecuadamente los datos. Sin la clave de descifrado adecuada, los datos originales no pueden ser accedidos.
Esta capacidad de procesar datos cifrados tiene el potencial de resolver muchos desafíos empresariales importantes a los que se enfrentan empresas de todos los sectores.
Seguridad de la cadena de suministro
La mayoría de las empresas cuentan con terceros de confianza en los que se apoyan como parte de su actividad. Estos contratistas, proveedores, etc., a menudo necesitan acceder a los datos sensibles y propietarios de la empresa para realizar su trabajo.
Acontecimientos recientes han demostrado los riesgos de las cadenas de suministro inseguras y cómo los ciberdelincuentes atacarán el eslabón más débil de la cadena para lograr sus objetivos. Esto significa que confiar datos sensibles a un socio puede dejar a una organización expuesta a una costosa y perjudicial filtración de datos.
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, entonces una violación de esos datos no representa 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 normativo
En los últimos años, el panorama normativo de protección de datos se ha vuelto cada vez más complejo. Nuevas regulaciones 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 RGPD con la que muchas empresas tienen dificultades 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 estándares de seguridad de datos equivalentes. La decisión Schrems II de 2020 invalidó una de las principales formas en que los flujos de datos entre la UE y EE. UU. se justificaban bajo el RGPD, lo que causó problemas a muchas empresas estadounidenses con ciudadanos de la UE.
Leyes como el RGPD establecen claramente que sus requisitos no se aplican a los datos cifrados. Con el cifrado homomórfico, una empresa podría potencialmente almacenar y procesar datos en sistemas fuera de la UE y luego descifrarlos únicamente en servidores ubicados en lugares que cumplan con los requisitos del RGPD.
Análisis de datos privados
El análisis de datos es cómo muchas empresas obtienen sus ingresos. Empresas como Facebook pueden ofrecer servicios “gratuitos” recopilando información sobre sus usuarios, procesándola y vendiendo esta información a terceros para publicidad dirigida.
Sin embargo, esta monetización de datos personales es controvertida. Muchas personas están descontentas con que las empresas creen perfiles detallados sobre ellas sin visibilidad ni control sobre los datos recopilados y su uso.
El cifrado homomórfico ofrece una solución potencial a este problema. Con el cifrado homomórfico, una empresa como Facebook podría realizar los análisis de datos que necesita sin la capacidad de ver o acceder a los datos originales. Si las claves de cifrado son controladas por los usuarios, esto ofrece el potencial para una publicidad privada y dirigida.
Tipos de cifrado homomórfico
El objetivo del cifrado homomórfico es crear un algoritmo de cifrado que permita un número infinito de adiciones o multiplicaciones de datos cifrados. Al final del proceso, el resultado debería ser el texto cifrado que se produciría si se realizaran las mismas operaciones sobre los textos en claro correspondientes y el resultado se cifrara.
El problema es que diseñar un algoritmo de cifrado así es realmente difícil. Como resultado, existen varios “tipos” diferentes de cifrado homomórfico que describen cuán cerca está un algoritmo particular de ese objetivo final.
Cifrado parcialmente homomórfico
Los algoritmos de cifrado parcialmente homomórfico permiten que una determinada operación se realice un número infinito de veces. Por ejemplo, un algoritmo particular 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 en claro.
Los algoritmos de cifrado parcialmente homomórfico 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 multiplicativamente homomórfico. La razón de esto es 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 establecen que (a^n)(b^n)=(ab)^n. Esto significa que multiplicar dos textos cifrados con la misma clave es equivalente a elevar el producto de los textos en claro a la potencia de la clave secreta. Por lo tanto, RSA es multiplicativamente homomórfico.
Cifrado con homomorfismo limitado
El siguiente paso después del cifrado parcialmente homomórfico es el cifrado con homomorfismo limitado. Un algoritmo de cifrado con homomorfismo limitado permite un número finito de cualquier operación, en lugar de un número infinito de una operación particular.
Por ejemplo, un algoritmo de cifrado con homomorfismo limitado puede ser capaz de soportar cualquier combinación de hasta cinco adiciones o multiplicaciones. Sin embargo, una sexta operación de cualquiera de los tipos crearía un resultado inválido.
Los algoritmos de cifrado con homomorfismo limitado son un paso importante hacia el cifrado totalmente homomórfico. Es más difícil diseñar un algoritmo que soporte tanto la adición como la multiplicación (incluso para un número fijo de operaciones) que crear uno que permita la adición 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 adiciones o multiplicaciones de textos cifrados, produciendo siempre un resultado válido.
Los algoritmos de cifrado totalmente homomórfico existen hoy en día. 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é limita el cifrado homomórfico?
El cifrado totalmente homomórfico puede resolver una variedad de desafíos empresariales importantes. El hecho de que exista significa que, en teoría, todo el mundo debería utilizarlo.
¿Entonces, por qué no se utiliza?
El problema con el cifrado totalmente homomórfico hoy en día es que no es eficiente. Cumplir con los requisitos del homomorfismo completo (es decir, permitir que los textos cifrados se sumen o multipliquen un número infinito de veces sin alterar 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 cifrado homomórfico en 2018. Esta versión es entre 25 y 75 veces más rápida que la versión anterior, la cual 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 aproximadamente 100 billones de veces más lento que si se realizaran esas mismas operaciones sobre los textos en claro correspondientes. Esto significa que la nueva y mejorada versión sigue siendo, en promedio, aproximadamente un millón de veces más lenta que las operaciones con textos en claro.
Un factor de ralentización de un millón es bastante significativo. Un cálculo que tardaría un segundo en realizarse utilizando textos en claro, tardaría un promedio de 11.5 días en realizarse utilizando la versión 2018 de HElib.
Obviamente, este tipo de ralentización es una compensación inaceptable para las empresas que de otro modo estarían interesadas en el cifrado homomórfico. Sin embargo, una aceleración de aproximadamente 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 esto cambie en un futuro próximo.