Cifrado homomórfico: privacidad en la nube
April 1, 2011
criptografía cifrado homorfico seguridad privacidadEl cómputo en nube se ha puesto indudablemente de moda, convirtiendo al explorador web en la única herramienta necesaria para que, por medio de una conexión a Internet, se pueda utilizar una gran cantidad de software que ahora es ofrecido como servicio. Irónicamente, gran parte del software que se ofrece como servicio realiza tareas para las que existe software que puede utilizarse de manera local, con muchas más opciones y mejor rendimiento. Los únicos añadidos que distinguen al software como servicio son generalmente aquellas de compartir con multiples usuarios y la flexibilidad de hacerlo en cualquier lugar y con cualquier dispositivo.
Cuando se trata de procesar información privada tenemos el problema de que, para procesarla, el prestador de servicio la conocerá en todo momento, desde que la recibe, mientras la procesa y una vez obtenido el resultado, el cual, conocerá antes que nosotros. Tenemos entonces que depender del proovedor del servicio y sus políticas de privacidad, los proovedores, aunque sean Microsoft o Google, nunca serán realmente confiables y la historia nos lo demuestra. El problema resultante es un problema criptográfico importante que trata de resolver la siguiente pregunta: ¿Existe una forma de envíar una información cifrada, que un sistema la procese sin tener que descifrarla y nos dé un resultado cifrado con la misma llave que nuestra entrada original?
Las funciones de cifrado $$ E(p)=c $$ toman una entrada de texto plano p y nos devuelven un texto cifrado c, un conjunto de estas funciones, las cuales tienen la propiedad de que una operación realizada en p sea equivalente a otra operación realizada en c, son denominadas funciones de cifrado homomórfico. Los sistemas criptográficos cuya función de cifrado E, preserva la operación de suma: $$ E(a+b)=E(a)+E(b) $$ y la operación de multiplicación: $$ E(a*b)=E(a)*E(b) $$ son llamados sistemas criptográficos homomórficos completos (preservan la estructura de anillo), mientras que los que preservan solo una de las operaciones son llamados sistemas criptográficos homomórficos parciales.
El interés en los sistemas criptográficos homomórficos completos se da por el hecho de que, al existir dos operaciones que son preservadas en el sistema, es posible evaluar circuitos lógicos de manera homomórfica, es decir, con entradas y salidas cifradas, lo que permite también construir programas en los que los datos puedan ser evaluados sin necesidad de descifrarlos y cuyo resultado estará también cifrado. Con esto se resolvería el problema de confianza en los programas de terceros, pues el proovedor de servicio sería incapaz de conocer la información en ningún momento de la ejecución del programa.
La idea no es nueva, fue concebida en los años 70’s, sin embargo, la dificultad del problema no permitió que se encontraran sistemas completamente homomórficos hasta el año 2009, en el que Craig Gentry desrrolla el primero en su tesis doctoral. Posteriormente, Marten van Dijk, Craig Gentry, Shai Halevi y Vinod Vaikuntanathan presentaron un segundo sistema. Estos son los únicos sistemas existentes en la actualidad, así como refinamientos posteriores de los mismos, sin embargo su eficiencia no permite aún un uso práctico.
La investigación respecto a este tipo de sistemas criptográficos continúa y aunque abre la puerta a la seguridad en la nube, vale la pena preguntarnos ¿por qué no preferimos la seguridad del cómputo hecho en nuestra propia computadora?