Definición de cifrado homomórfico
¿Qué se hace cuando se necesita realizar cálculos sobre grandes conjuntos de datos preservando su confidencialidad? En otras palabras, le gustaría recopilar análisis, por ejemplo, sobre datos de usuarios, sin revelar el contenido al motor de computación que va a calcular los análisis. O usted es un proveedor de servicios en la nube que admite el almacenamiento encriptado de documentos, pero quiere permitir que sus usuarios editen sus documentos sin desencriptarlos primero.
Aquí es donde el cifrado homomórfico podría venir a su rescate. El cifrado homomórfico ofrece la posibilidad de «externalizar» el almacenamiento y el cálculo de los datos a los entornos de la nube convirtiendo primero los datos en una forma cifrada.
Lo que cabe destacar de esta técnica es que se consiguen los mismos resultados (en forma cifrada) realizando las operaciones y cálculos deseados en los datos cifrados que si se realizaran las mismas operaciones en su forma no cifrada.
«La encriptación homomórfica difiere de los métodos típicos de encriptación en que permite realizar cálculos directamente sobre los datos encriptados sin necesidad de acceder a una clave secreta. El resultado de dicho cálculo permanece en forma encriptada y puede ser revelado posteriormente por el propietario de la clave secreta», según Homomorphic Encryption Standardization, el consorcio de estándares de la industria que mantiene las normas «oficiales», la orientación y la información sobre los desarrollos en el área. Esto permite utilizar las mismas soluciones de análisis computacional sin comprometer la confidencialidad de los datos en ningún momento.
La idea de diseñar estas suites de cifrado fue en gran medida experimental y se propuso a finales de los años 70. Tuvieron que pasar tres décadas para que se ideara un primer concepto práctico en 2009, de la mano de Craig Gentry.
Qué tiene de diferente el cifrado homomórfico
Cuando se piensa en la criptografía en un contexto estándar de la industria, como el HTTPS (posibilitado por SSL/TLS) o la mensajería de chat de extremo a extremo, se asume que toda la criptografía es inherentemente segura y garantiza la confidencialidad y la integridad. Esta es una diferencia notable que diferencia el cifrado homomórfico de los criptosistemas típicos.
Para que el cifrado homomórfico funcione, sus suites de cifrado están diseñadas para ser maleables, lo que significa que no pueden garantizar la integridad de los datos. Esto no es un defecto, sino una característica prevista que facilita la operación con datos cifrados.
La maleabilidad es una propiedad de los algoritmos criptográficos que permite la transformación de un texto cifrado en otro texto cifrado válido que cambia el significado del texto original. Además, el usuario que transforma los datos ni siquiera necesitaría saber o deducir cuál era el dato original sin cifrar.
Por decirlo de forma sencilla, si yo enviara un correo electrónico cifrado al editor de CSO que dijera: «CSO es increíble», un atacante de tipo «man-in-the-middle» (MitM) que pudiera robar este texto cifrado pero no supiera lo que significa podría transformarlo en otra cadena cifrada, que cuando el editor la descifre dijera: «¡Odio CSO!»
Por supuesto, los sistemas prácticos de encriptación de correo electrónico tienen contramedidas para proteger la integridad de los datos y hacer que este escenario sea prácticamente imposible, siempre que no haya vulnerabilidades en los algoritmos o en su implementación.
Por ejemplo, el criptosistema RSA, que es parcialmente homomórfico, utiliza lo que se conoce como una función de «relleno» para minimizar el impacto de la maleabilidad. Además, las sumas de comprobación de autenticación de mensajes (por ejemplo, hashes MD5 o SHA) ayudan a validar la integridad de los datos.
Esto no es tan preocupante, ya que la confidencialidad de los datos no se vería afectada por la maleabilidad. La preocupación surge cuando, por ejemplo, el motor de cálculo que trabaja con los datos cifrados introduce un error en los datos o en el resultado cifrado debido a un algoritmo defectuoso. La naturaleza del cifrado homomórfico podría hacer especialmente difícil descubrir estos errores.
Tipos de encriptación homomórfica
Todos los datos son números (los ordenadores trabajan en binario). La criptografía, al ser una rama matemática, trabaja directamente con números. Esto significa que el cifrado y el descifrado no son más que un complejo juego de operaciones sobre los números.
Hay tres tipos de cifrado homomórfico:
- El cifrado parcialmente homomórfico (PHE) permite realizar un solo tipo de operación matemática (como la multiplicación) sobre un conjunto de datos determinado un número ilimitado de veces.
- El cifrado algo homomórfico (SHE) es más permisivo, aunque sigue siendo restrictivo, ya que permite tanto la suma como la multiplicación en un conjunto de datos determinado sólo unas pocas veces.
- El cifrado totalmente homomórfico (FHE) es lo mejor de todos los mundos, ya que permite realizar diferentes tipos de operaciones con los datos un número ilimitado de veces, pero con una importante compensación de rendimiento.
Cada enfoque se inclina por ofrecer rendimiento, utilidad o protección, siendo FHE altamente intensivo y actualmente ineficiente (y por lo tanto ofreciendo un pobre rendimiento en un escenario del mundo real).
Los actuales desarrollos de encriptación homomórfica son un constante acto de equilibrio entre los tres para lograr una solución óptima. Una vez desbloqueado, el potencial de la FHE ofrecerá posibilidades revolucionarias, como la posibilidad de que un operador de la nube realice diversas operaciones matemáticas con los datos encriptados.
Casos de uso de la encriptación homomórfica
Industrias reguladas y centradas en la privacidad
Almacenar datos e información personal identificable (PII) en industrias altamente reguladas como la sanidad, las finanzas, la abogacía y la banca es un reto. El almacenamiento cifrado es una medida de seguridad que implementan estos sectores, pero surge un reto adicional cuando deben descifrar primero los datos de los usuarios para obtener información de ellos.
Por ejemplo, la obtención de análisis predictivos, que utilizan el aprendizaje automático, a partir de los archivos de casos de pacientes puede ayudar a los médicos a identificar curas para enfermedades. Con el cifrado homomórfico, se disiparía la necesidad de descifrar primero los archivos de los pacientes. Los algoritmos analíticos podrían adaptarse para trabajar con los datos cifrados de los pacientes y producir resultados también de forma cifrada. Este resultado, una vez descifrado, proporcionaría la misma información que se obtendría de los archivos de los pacientes sin cifrar.
Este caso de uso se extiende también a la publicidad en línea. Con las crecientes restricciones impuestas por legislaciones como la GDPR, ofrecer anuncios personalizados protegiendo la privacidad de los usuarios es un reto. El cifrado homomórfico permite obtener análisis y conocimientos de los datos cifrados de los usuarios sin comprometer la confidencialidad de la información de los usuarios en el proceso.
Almacenamiento en la nube externalizado
La externalización del almacenamiento de datos puede ser una estrategia rentable cuando se trata de reducir los costes de personal y eliminar los dolores de cabeza asociados al mantenimiento de un centro de datos seguro completo. Además, a veces los proyectos pueden necesitar externalizar las bases de datos a través de las fronteras porque no se dispone de suficientes protecciones legales en su propia jurisdicción. Como ejemplo del mundo real, consideremos a WikiLeaks, una organización activista sin ánimo de lucro que aloja sus servidores principales en Suecia.
El cifrado resuelve el problema del almacenamiento de datos, pero añadir o modificar los datos cifrados en su forma cifrada es un problema que el cifrado homomórfico puede resolver. Para añadir sustancia, esto puede aplastar la posibilidad de incidentes como cuando un antiguo ingeniero de Google había abusado de sus privilegios para acosar a algunos usuarios de la plataforma.
Con el cifrado homomórfico, los datos se almacenan de forma segura en la nube al tiempo que se permite la capacidad de calcular y buscar información cifrada. En un entorno ideal, sólo el usuario propietario de los datos en la nube tendría la capacidad de descifrar los datos y los resultados del cifrado homomórfico.
Si quieres experimentar con la tecnología, el sitio web Homomorphic Encryption Standardization ofrece muchas implementaciones de código abierto del cifrado homomórfico. Microsoft SEAL ofrece «bibliotecas de encriptación que permiten realizar cálculos directamente sobre los datos encriptados» para ayudar a los desarrolladores a construir servicios de almacenamiento y cálculo de datos encriptados de extremo a extremo.