Skip to main content

Encriptación Homomórfica. ¿ La última línea de defensa contra las IA intrusivas ?. Parte 1.

Encriptación Homomórfica (Homomorphic Encryption): Es un tipo de encriptación que permite realizar cálculos matemáticos usando datos cifrados como inputs, existen dos propiedades, Encriptacion Homomorfica parcial y encriptación homomórfica completa.

Homomorfismo: Es la propiedad de la información encriptada que nos permite realizar cálculos sobre datos encriptados, a su vez el resultado puede ser desencriptado para obtener el resultado del cálculo sin encriptar.  

Evaluador:  Es quien recibe la información encriptada y ejecuta los cálculos  parcial o completamente.

Lattice Cryptography: Método de cifrado que utiliza la dificultad de resolver problemas relacionados con redes (lattices) matemáticas para asegurar los datos. Es una base común para muchos esquemas de encriptación homomórfica

Assumption-based Security: Es todo aquel método que se basa en problemas matemáticos difíciles de resolver para encriptar información, como factorización de números enteros, logaritmo discreto, en este caso Lattice. 

Noise Ruido: Se refiere a la cantidad de datos no relevantes y aleatorios que se agregan al encriptado homomórfico.

“ON DATA BANKS AND PRIVACY HOMOMORPHISMS”

La primera vez que se mencionó la propiedad homomórfica de datos encriptados y una solución criptográfica compatible fue en un paper publicado en 1978, por  Ronald L. Rivest, ,Len Adleman, Michael L. Dertouzos. En donde se propone una solución para implementar una base de datos encriptada para una empresa pequeña de préstamos, que permita realizar operaciones sin necesidad de saber el contenido de la misma. Así solo las sedes centrales podrían codificar y decodificar la información de la base de datos, lo que previene fugas o pérdidas de información. 

Por supuesto esa información debe siempre mantenerse privada, aun asi permitirá responder preguntas sobre:

  • ¿Cuál es el importe medio de los préstamos pendientes?
  • ¿A cuánto ascienden los ingresos por pagos de préstamos previstos para el próximo mes?
  • ¿Cuántos préstamos superiores a 5.000 $ se han concedido?

Ahora si escalamos este método a otras áreas y dejamos que la imaginación nos lleve a considerar en donde aplicar esta maravillosa matemática surge soluciones muy eficaces que se enfocan en proteger los datos de los usuarios, pero sin cerrar la posibilidad de que esos datos sean usado por terceras personas sin saber su contenido para calcular con ellos.

¿ Cómo funciona la encriptación Homomórfica ?

La encriptación homomórfica se compone de una parte fundamental de la criptografía y es el uso de claves públicas y privadas con propiedades homomórficas, hay varios algoritmos de generación de claves homomórficas que permiten lograr de manera parcial o completa operar sobre datos encriptados. He preguntado a chat gpt y está algunos de la lista.

  • RSA (Rivest-Shamir-Adleman) Permite la homomorfía multiplicativa.
  • Paillier. Permite la homomorfía aditiva.
  • BFV (Brakerski-Fan-Vercauteren). Permite operaciones aditivas y multiplicativas limitadas (Somewhat Homomorphic Encryption, SHE).

Aunque las más usadas son:

  • CKKS (Cheon-Kim-Kim-Song). Permite operaciones aproximadas sobre números complejos
  • BGV (Brakerski-Gentry-Vaikuntanathan). Permite operaciones aditivas y multiplicativas (Somewhat Homomorphic Encryption, SHE).

Una vez seleccionado el algoritmo de generación de claves privadas lo que debemos hacer es encriptar con la clave pública la información sobre la que se quiere hacer operaciones o cálculos complejos. imaginemos que tenemos una gran cantidad de datos donde queremos calcular la media móvil de un dato especifico, o calcular los gastos y entradas de una empresa de café sin revelar esa información a nadie este es el santo grial de la criptografía.

Los pasos sencillos para encriptar información son:

  1. Generamos las claves privadas y públicas, las claves públicas deben haber sido generadas con un ruido polinómico, esto evita que un atacante intente saber la información secreta.
  2. Encriptamos la información que deseamos enviar al evaluador usando las claves públicas.
  3. Enviamos la información al evaluador que realiza los cálculos
  4. Por último, el evaluador envía los resultados cifrados de vuelta al propietario de los datos, quién puede desencriptarlos usando la clave privada. El resultado desencriptado debe coincidir con el resultado que se obtendría si las operaciones se hubieran realizado sobre los datos en claro.

Una vez el evaluador recibe esta información procede a realizar los cálculos que permite la propiedad homomórfica del cifrado elegido. A medida que se van aplicando los cálculos se debe tener en cuenta que a medida que se calcula, el ruido o noise también crece, por lo tanto se debe hacer una realinearización de los cálculos para generar un resultado que pueda ser desencriptado correctamente al final. El ruido acumulado hay que  manejarlo apropiadamente e irlo reduciendo de acuerdo a los cálculos realizados por el evaluador. 

Las partes más importantes de la encriptación homomórfica son la elección del algoritmo de generación de claves según la propiedad homomórfica que deseemos, la elección del ruido polinómico, y el manejo en el aumento del ruido en el evaluador. La aplicacion de estos principios nos permite realizar opereaciones y desatar una gran aplicacion donde la proteccion a la privada es prioritaria. por  ello queda una pregunta por responder. ¿ Es la encriptacion Homomorfica la ultima linea de defensa contra las IA intrusivas ?.

La implementación práctica de la encriptación homomórfica puede ser compleja, por eso en este artículo sólo tratamos los aspectos importantes, y la aplicación que pudiese tener, aunque en Blocklack  somos expertos en este tipo de encriptación. Consulta nuestros servicios.

Dependiendo del alcance de esta publicación se considerará la segunda parte.

Leave a Reply

error: Content is protected !!