- El cifrado homomórfico permite operar sobre datos cifrados manteniendo la confidencialidad y ofrece variantes parcial, limitada y completa.
- La encriptación funcional y la MPC posibilitan colaborar y extraer solo funciones de los datos sin revelarlos en claro.
- Herramientas como secret sharing, circuitos de Yao y frameworks MPC han hecho viables aplicaciones reales en pagos, votaciones y análisis de datos.
- Aunque siguen siendo técnicas costosas, las mejoras en eficiencia y hardware las acercan rápidamente al uso masivo en nube e IA.

La combinación de homomorphic encryption, functional encryption y multi‑party computation está cambiando por completo la forma en que tratamos los datos sensibles. Son técnicas pensadas para que empresas, administraciones públicas o incluso proyectos académicos puedan calcular sobre información privada sin verla en claro, algo clave en un mundo dominado por la nube, el big data y el machine learning.
Cuando hablamos de estos conceptos solemos pensar en algo muy académico, pero ya se están usando en aplicaciones reales: subastas electrónicas, votaciones digitales, análisis de datos sanitarios entre hospitales, comparativas de salarios o sistemas de identificación digital que verifican tu identidad sin desvelar tus datos. En las siguientes secciones vamos a desgranar de forma detallada qué es cada técnica, de dónde viene y cómo se conecta con las demás.
Contexto: del modelo tradicional a la computación sobre datos cifrados
En el modelo clásico de servicios digitales, el responsable del tratamiento envía los datos cifrados al proveedor, y el procesador los descifra para operar con ellos. Es el típico esquema cliente‑servidor, cloud computing o incluso edge computing, donde muchos datos que genera tu móvil, tu ordenador o tus dispositivos IoT terminan en servidores de terceros.
Durante el tránsito, la información viaja protegida mediante cifrado, creando una especie de túnel virtual confidencial. El problema aparece al llegar al servidor: allí es necesario descifrar los datos para poder analizarlos, entrenar modelos o prestar el servicio. Justo en ese punto se rompe la confidencialidad pura.
Para controlar los riesgos, el Reglamento General de Protección de Datos (RGPD) y otras normas se apoyan en garantías jurídicas (contratos, regulación) y en garantías técnicas (cifrado, controles de acceso, auditorías). Las medidas legales son imprescindibles, pero no son infalibles frente a cambios regulatorios, jurisdicciones diferentes, uso ilícito de datos o brechas de seguridad en los proveedores.
De ahí que gane tanta fuerza la idea de que el proveedor que procesa los datos no necesite nunca verlos en claro. Es decir, que toda la computación se haga directamente sobre datos cifrados o protegidos con protocolos criptográficos avanzados. Aquí es donde entran en juego la criptografía homomórfica, la encriptación funcional y la computación multipartita segura (MPC).
Qué es el homomorphic encryption y por qué es tan especial
Imagina que una empresa quiere calcular estadísticas de uso o entrenar un modelo de machine learning sobre datos de clientes sin llegar a ver la información sensible. Con homomorphic encryption, los datos se cifran en origen, se envían al servidor y allí se aplican operaciones “equivalentes” en el espacio cifrado. El servidor nunca ve el contenido, pero sí produce un resultado útil para el responsable que posee la clave de descifrado.
En la práctica se distinguen tres grandes familias de cifrado homomórfico, que definen qué operaciones y con qué intensidad pueden realizarse sobre los datos cifrados:
- PHE (Partial Homomorphic Encryption): solo admite un tipo de operación (por ejemplo, suma o multiplicación) pero de forma ilimitada. Es el caso de ciertos usos de RSA, que permiten multiplicar cifrados de forma que, al descifrar, se obtiene el producto de los datos originales.
- SHE (Somewhat Homomorphic Encryption): permite un conjunto finito de operaciones (normalmente sumas y unos cuantos productos) antes de que el “ruido” cifrado haga ilegible el mensaje.
- FHE (Full Homomorphic Encryption): permite un número arbitrario de sumas y multiplicaciones sobre datos cifrados, es decir, cualquier cómputo representable como circuito, sin necesidad de descifrar en ningún momento.
Los esquemas FHE modernos se apoyan en criptografía basada en retículas (lattice‑based), que introducen ruido en los textos cifrados. Este ruido crece con las operaciones, pero puede controlarse mediante técnicas como el “bootstrapping”. Además, esa adición de ruido puede combinarse con enfoques de privacidad diferencial para añadir otra capa de protección estadística.
Aunque el potencial es enorme, hoy en día el cifrado homomórfico completo sigue siendo muy costoso en términos computacionales y de tamaño de los datos. Los cifrados son más grandes, aumentan los tiempos de cálculo y el coste de las comunicaciones. La buena noticia es que el progreso en hardware, optimizaciones y librerías especializadas (como PALISADE, entre otras) está reduciendo estas cargas y acercando FHE a escenarios reales de IoT, nube y aprendizaje automático.
Ejemplos prácticos de cifrado homomórfico
Incluso una variante limitada como PHE tiene aplicaciones inmediatas de privacidad. Por ejemplo, en un despliegue de IoT, cada sensor cifraría sus lecturas con la clave de un agregador final, y los nodos intermedios podrían sumar los valores cifrados sin descifrarlos jamás. El agregador final recibiría solo valores ya agregados, también cifrados, y sería el único con capacidad de ver el resultado en claro.
Un escenario muy parecido es el de votación electrónica: cada voto se cifra, los servidores intermedios acumulan votos cifrados y solo la autoridad final, que dispone de la clave, obtiene el recuento total. En todo momento se limita la exposición de votos individuales.
Desde el punto de vista de protección de datos, el cifrado homomórfico encaja perfectamente con el principio de privacidad por defecto y por diseño, especialmente cuando hay categorías especiales de datos (salud, ideología, biometría, etc.). El proveedor que procesa la información nunca llega a conocer su contenido, reduciendo el impacto de un posible uso desleal o de una brecha de seguridad.
Eso sí, usar siempre la misma clave para grandes volúmenes de datos cifrados y a largo plazo puede generar vulnerabilidades, por lo que se recomienda limitar los dominios de cifrado y combinar capas (por ejemplo, añadir cifrado de transporte TLS además del homomórfico de aplicación).
Functional encryption: descifrar solo lo imprescindible
La encriptación funcional (functional encryption, FE) persigue una idea distinta pero complementaria: permitir que ciertas claves solo revelen una función de los datos, y no los datos completos. En lugar de descifrar un mensaje entero, una clave funcional permite aprender, por ejemplo, el resultado de una clasificación, un máximo o un conteo sobre esos datos.
En este modelo, existe una autoridad o emisor que cifra los datos y genera claves especiales asociadas a funciones concretas. Un tercero que recibe una de esas claves puede aplicar la función a los datos cifrados y obtener únicamente el valor de salida (por ejemplo, si un usuario cumple un criterio), sin recuperar jamás el dato original.
Aunque FE no aparece tan desarrollado en las referencias históricas como MPC o FHE, en la práctica se sitúa en el mismo ecosistema de técnicas de cómputo sobre datos protegidos. Se puede ver como un punto intermedio entre el cifrado clásico (todo o nada) y el cifrado homomórfico completo (cualquier cómputo sobre el espacio cifrado).
En muchos escenarios de identidad digital, scoring o verificación de atributos, FE encaja como anillo al dedo: se puede comprobar si un usuario tiene más de cierta edad, si pertenece a una organización o si supera un umbral de solvencia, revelando al verificador solo un sí/no o un rango, nunca el valor exacto del atributo subyacente.
Multi-party computation (MPC): computar juntos sin desvelar los datos
La computación multipartita segura, o secure multi‑party computation (MPC), es un marco criptográfico que permite que varias partes, cada una con sus datos privados, calculen conjuntamente una función F(d1, d2, …, dN) sin revelar sus entradas entre sí. El objetivo es que todos obtengan los resultados como si existiera un tercero totalmente fiable que hiciera de “caja negra”, pero sin que ese tercero exista realmente.
La idea arranca a finales de los 70 y se formaliza en los 80 con el trabajo de Andrew Yao en computación segura de dos partes (2PC) y, posteriormente, con la extensión a múltiples partes realizada por Goldreich, Micali y Wigderson (GMW). Estos trabajos mostraron que, bajo ciertas hipótesis criptográficas, cualquier función “razonable” puede evaluarse de forma segura entre varios participantes.
En un ejemplo típico, tres personas (Alice, Bob y Charlie) quieren conocer quién tiene el salario más alto sin decirse unos a otros cuánto cobran. Lo que quieren calcular es F(x, y, z) = max(x, y, z). Si tuvieran un amigo de absoluta confianza, Tony, le comunicarían sus sueldos, Tony calcularía el máximo y se lo devolvería. El propósito de MPC es reemplazar a Tony por un protocolo criptográfico que solo requiera intercambio de mensajes entre las partes.
En esta configuración, lo único que Alice, Bob y Charlie deben aprender es lo que se deduce de sus propios datos y del resultado. Por ejemplo, si el resultado es z y los valores son distintos, Charlie sabe que su sueldo es el mayor, y Alice y Bob solo saben que el suyo no lo es, y cuál es el máximo. Ninguno obtiene información adicional sobre la cantidad exacta de los demás.
Propiedades de seguridad en MPC
Los protocolos de MPC persiguen dos propiedades básicas: privacidad de las entradas y corrección del resultado. La privacidad significa que, salvo lo que se derive lógicamente de la salida, ningún conjunto de partes aprende información extra sobre los datos de los demás a partir de los mensajes del protocolo.
La corrección implica que un subconjunto de participantes maliciosos no puede forzar a los honestos a aceptar una salida incorrecta. Aquí se distinguen dos variantes: protocolos robustos, en los que los honestos siempre obtienen un resultado correcto, y protocolos “con aborto”, en los que el protocolo se detiene si se detecta un comportamiento indebido.
La seguridad de MPC se formaliza con el llamado paradigma Mundo Real / Mundo Ideal. En el mundo ideal, existe una entidad incorruptible: cada parte le envía su entrada, la entidad calcula la función y devuelve a cada uno su salida correspondiente. En el mundo real no hay tal ente; solo hay mensajes entre participantes y potenciales adversarios que observan y modifican comunicaciones.
Un protocolo se considera seguro si, desde el punto de vista de cualquier conjunto de adversarios, no se puede aprender más en el mundo real de lo que se aprendería en el mundo ideal. Es decir, todos los mensajes adicionales que se intercambian para emular al “Tony perfecto” no deben filtrar información relevante sobre las entradas privadas.
Modelos de adversario y umbrales de corrupción
En MPC es crucial definir qué tipo de adversario se contempla. El modelo semi-honesto (o pasivo) asume que los participantes corruptos siguen el protocolo al pie de la letra, pero intentan deducir información de los mensajes que observan y de sus propias entradas y salidas. Es un modelo más débil pero suele permitir protocolos mucho más eficientes.
Por otro lado, el modelo malicioso (o activo) permite que los adversarios se desvíen arbitrariamente del protocolo, envíen mensajes falsos o inconsistentes, cambien sus entradas a mitad de proceso, etc. Los protocolos seguros contra adversarios activos ofrecen garantías muy fuertes: si los honestos reciben una salida, esta será correcta y su privacidad estará preservada; como mucho, el adversario puede forzar un aborto si controla suficientes partes.
Existe además un punto intermedio llamado seguridad encubierta (covert security): se asume que el adversario podría querer hacer trampas, pero solo si cree que no va a ser detectado. Los protocolos con seguridad encubierta aseguran que cualquier desviación será descubierta con alta probabilidad (por ejemplo, 75 % o 90 %), lo que en entornos con riesgos reputacionales o contractuales ya actúa como un fuerte disuasivo.
Además del tipo de adversario, interesa saber cuántos participantes pueden estar corruptos. Si hay n partes y hasta t pueden ser deshonestas, el tipo de protocolo y las herramientas cambian radicalmente entre los casos t < n/2 (mayoría honesta), t < n/3 o escenarios sin mayoría honesta, como en muchos protocolos 2PC.
Secret sharing y el enfoque basado en circuitos aritméticos
Una de las técnicas más potentes para construir protocolos MPC es el reparto secreto (secret sharing). La idea es dividir cada valor privado en varias “acciones” o shares distribuidas entre los participantes, de forma que ningún subconjunto pequeño pueda reconstruir el secreto, pero un conjunto autorizado sí.
Los dos esquemas más usados son el reparto de Shamir y el reparto aditivo. En ambos, las “acciones” son elementos de un campo finito que combinados correctamente recuperan el valor original. En Shamir, precisamente la intersección de t + 1 puntos de un polinomio de grado t permite reconstruir el secreto, lo que da soportes naturales a umbrales de seguridad como t < n/2 (adversario pasivo) o t < n/3 (adversario activo) con seguridad de tipo información‑teórica.
En los protocolos basados en secret sharing, la función que se quiere calcular se representa como un circuito aritmético sobre un campo finito, con puertas de suma y multiplicación. Sumar shares es sencillo y barato: cada parte suma localmente sus shares. La multiplicación es más compleja y requiere interacción, pero protocolos como BGW definen cómo hacerlo de forma segura.
El reparto aditivo, por su parte, permite tolerar casi todas las partes corruptas (t < n) mientras quede al menos un participante honesto. Aquí cada valor se descompone en n elementos aleatorios que suman el secreto, y sin todas las piezas no se puede reconstruir. Frameworks modernos como SPDZ y MP‑SPDZ explotan variantes aditivas junto con fases de preprocesado para obtener eficiencia incluso frente a adversarios activos.
Este enfoque ha dado lugar a numerosos sistemas prácticos de MPC, con implementaciones en distintos lenguajes y entornos. Destaca, por ejemplo, SPDZ, famoso por ser seguro contra adversarios activos y por haber abierto la puerta a aplicaciones de machine learning sobre datos compartidos sin necesidad de confiar en un tercero central.
El paradigma de circuitos de Yao y las mejoras posteriores
En el caso de dos partes (2PC), se pueden usar técnicas especiales que no siempre escalan bien a muchos participantes. Una de las más influyentes es el protocolo de circuitos cifrados de Yao, donde una de las partes (el “constructor”) genera una versión “garbleada” de un circuito booleano y la otra (el “evaluador”) lo evalúa sin ver los valores reales de las señales.
El circuito se modela como puertas AND y XOR con entradas y salidas binarias. Para cada cable se generan dos etiquetas aleatorias que codifican los valores 0 y 1, y para cada puerta se construye una tabla de verdad cifrada con un esquema de cifrado simétrico con doble clave. El evaluador, con las etiquetas de sus entradas y las del constructor (recibidas directamente o mediante protocolos de transferencia oculta, OT), puede recorrer el circuito y obtener etiquetas de salida, que luego se traducen a bits.
El protocolo original de Yao es muy eficiente en número de rondas y ofrece seguridad frente a adversarios semi-honestos. Para robustecerlo frente a adversarios maliciosos se han añadido técnicas de compromiso, pruebas de conocimiento cero y, sobre todo, el paradigma de cut‑and‑choose: el constructor envía muchas versiones garbleadas del circuito, el evaluador abre aleatoriamente una parte para comprobar que son correctas y evalúa el resto; si la mayoría coincide, es muy difícil que un circuito malicioso haya pasado desapercibido.
Con el tiempo se han introducido optimizaciones muy importantes: el método XOR gratuito (free‑XOR), que permite que las puertas XOR prácticamente no cuesten nada, la reducción de filas garbleadas en tablas de puertas (garbled row reduction) y mejoras en los esquemas de OT y sus extensiones. Herramientas como Fairplay fueron pioneras al ofrecer compiladores que traducen programas de alto nivel a circuitos booleanos para ser evaluados con el enfoque de Yao.
Implementaciones posteriores han explotado el paralelismo masivo: desde clusters de cientos de núcleos que calculan funciones complejas como la distancia de edición de miles de bits, hasta implementaciones en GPU de consumo que consiguen décadas de millones de compuertas por segundo en entornos pasivos. La evaluación de circuitos tan complejos como AES se ha optimizado hasta tiempos del orden de segundos por bloque incluso con seguridad activa.
Historia y evolución de la computación multipartita
Históricamente, la computación segura empezó con protocolos muy específicos (como el famoso problema de los millonarios de Yao, donde dos ricos quieren saber quién tiene más dinero sin revelar su riqueza exacta). Después, los resultados de Yao y el trío Goldreich‑Micali‑Wigderson generalizaron la idea a cualquier función calculable eficientemente.
Sus trabajos introdujeron el conocido paradigma GMW, que permite transformar protocolos seguros frente a adversarios semi‑honestos en protocolos seguros frente a adversarios maliciosos, a costa de un sobrecoste importante en comunicación y cómputo. Durante años se consideró una línea poco práctica por este motivo.
Con el tiempo se refinaron conceptos como la transmisión de mensajes perfectamente segura, se analizaron modelos con canales autenticados o con difusión (broadcast) y se establecieron límites: por ejemplo, sin canales seguros, solo se puede tolerar hasta un tercio de partes maliciosas; con canal de difusión se puede llegar hasta la mitad. Se exploraron también cuestiones como la componibilidad universal de protocolos y adversarios móviles en esquemas de reparto proactivo de secretos.
Desde finales de los 2000 y especialmente desde 2010, la comunidad pasó de preguntarse si MPC era posible a centrarse en hacerlo eficiente y usable. Se diseñaron protocolos adaptados a tareas concretas (votaciones, subastas, pagos, pujas privadas, información privada de recuperación, etc.) y aparecieron las primeras demostraciones a gran escala, como la subasta doble electrónica de remolacha azucarera en Dinamarca en 2008.
En 2020, varias empresas especializadas en MPC crearon la MPC Alliance para promover su adopción industrial. Más recientemente, en 2025, la compañía Partisia —cofundada por Ivan Damgård— presentó pruebas de concepto de identidad digital y privacidad, por ejemplo en Japón, donde se combinó reconocimiento facial, identificadores descentralizados y MPC para construir sistemas de tarjetas de estudiante conformes con eIDAS 2.0. Igualmente, colaboraron en proyectos de análisis sanitario, identidad transfronteriza y banca con intercambio seguro de datos en países como Dinamarca, Colombia y Estados Unidos.
Aplicaciones reales de MPC, FHE y técnicas afines
Las técnicas de MPC y de cifrado avanzado ya se han probado en entornos muy diversos. En el ámbito público, se han utilizado para analizar conjuntos de datos repartidos entre distintas oficinas o departamentos sin consolidarlos jamás en un repositorio central, como en los proyectos con conjuntos de datos del condado de Allegheny (EE. UU.).
También se han aplicado en informes de brecha salarial, donde empresas de una región envían sus datos cifrados a una universidad o ente neutro que calcula estadísticas agregadas con MPC sin ver ningún salario individual, como ocurrió en el proyecto del Boston Women’s Workforce Council.
En el plano más técnico, la caja de herramientas asociada incluye piezas como private set intersection, monedas digitales, fair exchange multipartito, protocolos de transferencia oculta, funciones pseudoaleatorias oblivias, geometría computacional con privacidad, técnicas de privacidad diferencial y una larga lista de frameworks y librerías que materializan estos protocolos en código.
Existen numerosas implementaciones de referencia: bibliotecas Java y C++ para MPC, toolkits como EMP‑toolkit, proyectos como SEPIA, SCAPI, MPCLib, MPyC en Python o JavaScriptMPC, además de iniciativas académicas y de investigación como SIMAP o Fairplay. Muchas de ellas se ejecutan sobre modelos de secret sharing y permiten programar aplicaciones complejas de forma relativamente sencilla, delegando el “dolor criptográfico” en la infraestructura subyacente.
Retos prácticos, costes y futuro de estas tecnologías
Aunque el camino recorrido es enorme, aún hay desafíos importantes. La computación sobre datos cifrados, especialmente con FHE pleno o con MPC contra adversarios maliciosos, sigue siendo más lenta que la computación tradicional y demanda más ancho de banda y memoria.
Esto obliga a escoger cuidadosamente el enfoque adecuado para cada caso de uso. A veces basta con MPC con adversario semi‑honesto o con seguridad encubierta, que ofrecen un buen balance entre rendimiento y garantías. Otras veces un esquema PHE o SHE es suficiente porque se necesitan solo sumas o pocos productos, y solo en situaciones límite merece la pena pagar el coste de un FHE general.
La buena noticia es que se está avanzando a gran velocidad en optimizaciones, paralelización y soporte hardware. El uso de GPUs de consumo, clusters especializados, compiladores de circuitos eficientes y protocolos de preprocesado (como en SPDZ) está rebajando los tiempos de manera drástica. Además, el auge de la criptografía poscuántica, en la que muchas construcciones se basan en retículas, refuerza el interés por los esquemas homomórficos relacionados.
Desde la óptica regulatoria y de negocio, estas tecnologías permiten mover parte del peso de la protección de datos desde los contratos y las promesas al propio diseño técnico. En lugar de confiar en que el proveedor “se portará bien”, se construyen sistemas en los que el proveedor simplemente no tiene capacidad de ver los datos, lo que reduce riesgos legales, reputacionales y de cumplimiento normativo.
Mirando a medio plazo, es lógico esperar que MPC, homomorphic encryption y functional encryption se integren de forma transparente en productos de nube, plataformas de datos y soluciones de IA; lo natural es que el usuario final apenas perciba la complejidad criptográfica por debajo, pero sí se beneficie de servicios más privados, interoperables y resistentes a brechas.
Tanto la criptografía homomórfica como la encriptación funcional y la computación multipartita segura convergen en una misma idea: hacer posible que datos muy sensibles se utilicen de forma intensiva sin tener que renunciar a su confidencialidad. A medida que la eficiencia mejore y se consoliden estándares y librerías maduras, estas técnicas irán saltando del laboratorio al día a día de empresas, administraciones públicas y usuarios, ofreciendo una forma mucho más sólida y flexible de trabajar con información privada en un entorno cada vez más distribuido y regulado.
