Si bien existen métodos para cifrar información desde hace más de mil años, la criptografía como disciplina matemática tomó gran relevancia a partir del siglo XX, momento en el que comenzaron a realizarse investigaciones formales sobre los diferentes métodos, algoritmos y la seguridad de los mismos. Con el correr de los años y los consecuentes avances en la computación, el foco ya no es únicamente proteger comunicaciones sino también datos, y particularmente datos que deben ser utilizados constantemente.
Dado que las operaciones de cifrado y descifrado suelen incurrir en consumo de recursos informáticos o ser puntos de falla para la fuga de información, se ha llegado al surgimiento de una línea de investigación llamada criptografía homomórfica.
El principal objetivo de este tipo de cifrado es poder realizar operaciones directamente sobre los datos cifrados, sin la necesidad de descifrarlos previamente ni de contar con la clave con la que fueron cifrados. De esta manera se logra reducir la cantidad de veces que los datos deben ser descifrados, con la ventaja de disminuir la probabilidad de que estos puedan ser robados y, a su vez, al no necesitar descifrar el dato para utilizarlo, se puede tener un control mucho más estricto sobre la disponibilidad de la información, garantizando su integridad y confidencialidad.
Este tipo de esquemas de cifrado fue propuesto por primera vez en el año 1978 por Ronald Rivest, Adleman y Dertouzos (siendo Rivest y Adleman quienes un año atrás habían publicado el famoso algoritmo RSA junto a Shamir). Sin embargo, esto no significó una etapa de prosperidad para estas investigaciones, ya que la factibilidad teórica para la creación de un esquema de cifrado totalmente homomórfico -que permita realizar cualquier tipo de operación- no había sido demostrada. Fue Craig Gentry quien, en el año 2009, sentó las bases teóricas para la construcción de dicho esquema de forma que el mismo pueda ser tanto seguro como eficiente, dando lugar a múltiples investigaciones y avances que continúan hasta el día de hoy.
La idea básica del funcionamiento de estos sistemas se apoya en el concepto de homomorfismo matemático, el cual establece lo siguiente:
Dados dos grupos (A, .) y (B, *) y una función F: A->B que toma elementos del conjunto A y devuelve elementos del conjunto B. F es un homomorfismo si y solo si F(x . y) = F(x)*F(y) para cualquier par de elementos “x” e “y” pertenecientes al conjunto A.
Luego, mapeando este concepto con criptografía, el conjunto A puede interpretarse como un texto plano, el conjunto B como el texto cifrado, ‘.’ como las operaciones que se pueden realizar sobre el texto plano, ‘*’ como las operaciones que se pueden realizar sobre el dato cifrado y finalmente F como la función de cifrado.
Un detalle llamativo es que los algoritmos de cifrado más comunes suelen estar diseñados para no tener propiedades de homomorfismo con el fin de que el dato cifrado no tenga una estructura relacionada al dato original. En el caso de la criptografía homomórfica, si bien es segura, según el algoritmo en cuestión y la implementación particular del mismo podría llegar a encontrarse un ataque que explote esta característica.
Lo interesante es que, además de que pueden ser aplicados en diversos entornos, muchas de las ventajas que ofrece este tipo de esquemas criptográficos cubren necesidades de los modelos de negocio actuales. En este sentido, su uso puede ser beneficioso en el manejo de datos médicos, sistemas de votación electrónica, sistemas de computación forense y especialmente para servicios encadenados o centrados en la nube; lo cual puede resultar de gran interés actualmente, ya que con el surgimiento de la “transformación digital” el número de empresas e individuos que utiliza servicios Cloud es cada vez mayor.
El desafío que se plantea en este tipo de servicios es el alto volumen de datos y que estos deben ser transmitidos cifrados para luego ser descifrados -quedando en este punto vulnerables- durante el procesamiento en un servidor externo; sobre el cual usualmente no se tiene demasiado control y, por ende, si el mismo se encuentra comprometido podría resultar en la perdida de la confidencialidad de dichos datos. Es por eso que este tipo de situaciones son ideales para el uso de cifrados homomórficos donde, al poder trabajar sobre datos cifrados, surge la posibilidad de que terceros puedan tener acceso a ellos y utilizarlos sin comprometer la integridad o confidencialidad de los mismos.
Actualmente, los sistemas de cifrado homomórfico se clasifican en categorías según propiedades y variedad de operaciones que pueden realizarse sobre los datos cifrados. Estas son: Somewhat Homomorphic, Levelled Homomorphic y Fully Homomorphic.
Las operaciones son representadas mediante circuitos de compuertas lógicas y, según la categoría, estos circuitos pueden ser más grandes o pueden tener mayor o menor variedad de operaciones. Los sistemas del tipo Fully Homomorphic (FHC) permiten realizar cualquier tipo de operación sobre los datos, aunque todavía cuentan con importantes limitaciones cuando se utilizan operaciones muy largas y complejas dado el overhead de computo necesario para poder utilizarlos. Las otras categorías presentan mejor rendimiento, pero con una variedad de operaciones más limitada. Por lo tanto, cada categoría tiene sus ventajas y desventajas y es importante evaluar en qué tipo de escenario serán aplicadas.
Si bien la criptografía homomórfica es un área muy prometedora y ya existen implementaciones de los diferentes esquemas de cifrado, estos aún presentan muchas cuestiones a resolver y se encuentran en continuo desarrollo e investigación; lo cual demuestra la necesidad creciente de tener sistemas funcionales y seguros para el manejo de información sensible. Actualmente, son muchas las empresas que buscan impulsar la definición de estándares mediante diversas iniciativas como homomorphicencryption.org, la cual está respaldada por Microsoft, Intel, IBM y muchas otras empresas y entes gubernamentales de gran envergadura. Dada la reciente explosión en el uso de servicios Cloud es esperable que estas tomen aun mayor relevancia durante los próximos años, especialmente cuando los diferentes algoritmos pasen a convertirse en estándares y a ser adoptados por múltiples organizaciones.