0Pricing
Cryptology Academy · Lección

Más allá de la clave pública: cifrado funcional

Comprenda la propuesta del cifrado funcional: el descifrado revela únicamente el resultado de una función, no el texto plano.

Más allá de la clave pública: cifrado funcional es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.

Limitaciones del cifrado tradicional

El cifrado tradicional de clave pública sigue un modelo sencillo: se cifra con una clave pública y se descifra con la clave privada correspondiente. El descifrador conoce el mensaje de texto plano completo. Este modelo de todo o nada es demasiado poco flexible para muchas aplicaciones: una base de datos médica podría querer permitir que un médico averigüe únicamente si un paciente tiene una enfermedad concreta, en lugar de permitirle conocer todo el historial médico. El cifrado funcional aborda esta limitación.

Cifrado basado en identidad

El cifrado basado en identidad (IBE), propuesto por Shamir en 1984 y construido por Boneh y Franklin en 2001, permite utilizar una cadena de identidad (una dirección de correo electrónico, un nombre de dominio o un identificador de empleado) como clave pública. Una autoridad de claves confiable genera claves privadas para identidades específicas. IBE elimina la necesidad de certificados de clave pública y permite una distribución sencilla de claves. IBE es la forma más sencilla de cifrado funcional.

Definición del cifrado funcional

El cifrado funcional (FE), definido formalmente por Boneh, Sahai y Waters en 2011, generaliza IBE. En un esquema FE, una autoridad de claves puede generar una clave de función sk_f para cualquier función f. Dado un cifrado Enc(x) y una clave de función sk_f, el descifrador puede calcular f(x), pero no obtiene ninguna otra información sobre x más allá de lo que revele f(x). La función f puede ser cualquier función computable dentro de la clase admitida por el esquema.

Cifrado funcional para productos internos

El cifrado funcional para productos internos permite que un descifrador que posee sk_y calcule el producto interno a partir del cifrado del vector x. Esto permite realizar inferencias privadas mediante aprendizaje automático: se cifra el vector de características x de un usuario, se proporciona al propietario del modelo sk_y para su vector de pesos y este solo conoce el producto escalar (la puntuación bruta de predicción), sin conocer las características del usuario. Existen varios esquemas prácticos de FE para productos internos (ABDALLA et al. 2016).

Cifrado funcional para comprobar la igualdad

El cifrado funcional para comprobar la igualdad permite que una parte compruebe si un valor cifrado coincide con un valor específico v y solo sepa si la igualdad se cumple. Esto permite realizar consultas de bases de datos que preservan la privacidad: un servidor almacena registros cifrados y un usuario consulta los registros que coinciden con valores específicos sin que el servidor sepa qué está buscando el usuario ni conozca los resultados más allá de saber si hay coincidencia o no. Las construcciones prácticas utilizan emparejamientos bilineales.

Cifrado funcional para circuitos generales

La forma más potente de FE admite circuitos booleanos o aritméticos arbitrarios como funciones. Un descifrador con sk_f para cualquier función f ejecutable en tiempo polinómico puede calcular f(x) a partir de Enc(x). El FE para circuitos generales fue construido teóricamente por Garg, Gentry, Halevi, Raykova, Sahai y Waters (2013) mediante mapas multilineales, pero las construcciones existentes de FE general son imprácticas debido a su dependencia de supuestos imperfectos sobre mapas multilineales.

Ofuscación indistinguible

La ofuscación indistinguible (iO) es la primitiva criptográfica más potente conocida y está estrechamente relacionada con el cifrado funcional. Un esquema iO recibe un circuito C y produce una versión ofuscada O(C) que calcula la misma función, pero no revela nada sobre C más allá de su comportamiento de entrada y salida. iO implica la mayoría de las primitivas criptográficas conocidas, incluido el FE general. Existen construcciones candidatas basadas en problemas de retículos, pero distan mucho de ser prácticas.

El cifrado basado en atributos como caso particular

El cifrado basado en atributos (ABE) es una forma realizable en la práctica de cifrado funcional en la que la función f se restringe a una evaluación de políticas: f(x) = 1 si el conjunto de atributos x satisface una política y 0 en caso contrario. ABE permite un control de acceso granular, en el que los derechos de descifrado dependen de los atributos del usuario. ABE es la forma de cifrado funcional más implementada en la práctica, con aplicaciones en el almacenamiento en la nube, la atención sanitaria y el IoT.

Hoja de ruta de las construcciones

La historia de las construcciones de FE avanza de lo simple a lo potente: IBE (Boneh-Franklin 2001) → FE para igualdad (varias construcciones, 2005-2010) → FE para producto interno (ABDALLA 2016) → FE para circuitos de profundidad acotada (basado en mapas multilineales, 2013) → FE general (conjeturado a partir de iO). Cada paso es más potente, pero también más complejo y menos eficiente. En la práctica se utiliza la forma más sencilla que ofrece la funcionalidad deseada.

Modelo de seguridad del cifrado funcional

La seguridad del FE se define mediante la indistinguibilidad entre los cifrados de dos mensajes x0 y x1, incluso cuando se dispone de claves de función para funciones f arbitrarias, siempre que f(x0) = f(x1) para todas las funciones consultadas. Esto garantiza que quien descifra aprende exactamente f(x) y nada más. Existen dos niveles de seguridad: seguridad selectiva (el adversario se compromete con los mensajes de desafío antes de ver la clave pública) y seguridad adaptativa (basada en simulación completa).

Desafíos del despliegue práctico

El FE general sigue siendo impráctico, pero el FE para producto interno y ABE pueden desplegarse actualmente. Entre los desafíos se incluyen la necesidad de una autoridad de claves de confianza (un punto único de fallo), la complejidad de la revocación de claves, el sobrecoste de rendimiento de las operaciones de emparejamiento y la estandarización limitada. Las líneas de investigación incluyen el FE con múltiples autoridades (sin una única autoridad de confianza), la generación descentralizada de claves y el FE para clases de funciones más amplias sin mapas multilineales.

Cuestionario sobre la definición del cifrado funcional

¿Qué distingue al cifrado funcional del cifrado tradicional de clave pública?

Repaso del cifrado funcional

El cifrado funcional (Boneh-Sahai-Waters 2011) generaliza IBE al permitir claves de función sk_f que permiten calcular f(x) a partir de Enc(x) sin conocer x por completo. Existen construcciones prácticas para el FE de producto interno (inferencia privada de ML) y las pruebas de igualdad. ABE es un caso particular implementado en la práctica para evaluar políticas de acceso. El FE para circuitos generales requiere mapas multilineales (imprácticos). iO es la primitiva relacionada más potente. El desafío principal consiste en pasar de la teoría a una práctica eficiente.

Preguntas frecuentes

¿La lección «Más allá de la clave pública: cifrado funcional» es gratis?

Sí — el texto completo de «Más allá de la clave pública: cifrado funcional» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Más allá de la clave pública: cifrado funcional»?

Comprenda la propuesta del cifrado funcional: el descifrado revela únicamente el resultado de una función, no el texto plano. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cryptology Academy?

No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Más allá de la clave pública: cifrado funcional»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?

Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Más allá de la clave pública: cifrado funcional
  2. ABE basada en políticas de texto cifrado (CP-ABE)
  3. ABE basada en políticas de claves (KP-ABE) y comparación
  4. Aplicaciones prácticas de ABE
← Volver a Cryptology Academy