El cifrado basado en atributos es una generalización del cifrado de clave pública que permite un control de acceso detallado a los datos cifrados mediante políticas de autorización . La clave secreta de un usuario y el texto cifrado dependen de atributos (por ejemplo, su dirección de correo electrónico, el país en el que vive o el tipo de suscripción que tiene). En tal sistema, el descifrado de un texto cifrado sólo es posible si el conjunto de atributos de la clave de usuario coincide con los atributos del texto cifrado. [1]
Un aspecto de seguridad crucial del cifrado basado en atributos es la resistencia a la colusión: un adversario que posee varias claves solo debería poder acceder a los datos si al menos una clave individual otorga acceso.
El cifrado basado en atributos es demostrablemente [2] una generalización del cifrado basado en identidad .
El cifrado basado en identidad fue propuesto por primera vez en 1984 por Adi Shamir , [3] sin una solución o prueba específica. En 2004, Amit Sahai y Brent Waters [4] publicaron una solución, mejorada en 2006 por Vipul Goyal, Omkant Pandey, Amit Sahai y Brent Waters. [5] Melissa Chase y otros investigadores han propuesto además el cifrado basado en atributos con múltiples autoridades que generan conjuntamente las claves privadas de los usuarios. [6] [7] [8] [9] [10] [11]
Existen principalmente dos tipos de esquemas de cifrado basados en atributos: cifrado basado en atributos de política de claves (KP-ABE) [5] y cifrado basado en atributos de política de texto cifrado (CP-ABE). [12]
En KP-ABE, las claves secretas de los usuarios se generan en función de un árbol de acceso que define el alcance de los privilegios del usuario en cuestión y los datos se cifran según un conjunto de atributos. Sin embargo, CP-ABE utiliza árboles de acceso para cifrar datos y las claves secretas de los usuarios se generan sobre un conjunto de atributos.
El concepto relacionado de cifrado basado en roles [13] se refiere exclusivamente a claves de acceso que tienen roles que pueden validarse con un almacén autorizado de roles. En este sentido, el cifrado basado en roles puede expresarse mediante cifrado basado en atributos y, dentro de ese contexto limitado, los dos términos pueden usarse indistintamente. El cifrado basado en roles no puede expresar cifrado basado en atributos.
El cifrado basado en atributos (ABE) se puede utilizar para el cifrado de registros. [14] En lugar de cifrar cada parte de un registro con las claves de todos los destinatarios, es posible cifrar el registro solo con atributos que coincidan con los atributos de los destinatarios. Esta primitiva también se puede utilizar para el cifrado de transmisión con el fin de disminuir la cantidad de claves utilizadas. [15] Los métodos de cifrado basados en atributos también se emplean ampliamente en interfaces de motores de búsqueda basados en vectores. [dieciséis]
Aunque el concepto ABE es muy poderoso y un mecanismo prometedor, los sistemas ABE adolecen principalmente de dos inconvenientes: la ineficiencia y la falta de un mecanismo sencillo de revocación de atributos.
Otros desafíos principales son:
La revocación de usuarios en criptosistemas es un problema bien estudiado pero no trivial. La revocación es aún más desafiante en los sistemas basados en atributos, dado que cada atributo posiblemente pertenezca a varios usuarios diferentes, mientras que en los sistemas PKI tradicionales los pares de claves pública/privada están asociados de forma única con un único usuario. En principio, en un sistema ABE, se revocan los atributos, no los usuarios ni las claves. El siguiente párrafo analiza ahora cómo se puede incorporar la función de revocación.
Una solución simple pero limitada es incluir un atributo de tiempo. Esta solución requeriría que cada mensaje se cifrara con un árbol de acceso modificado.T0, que se construye aumentando el árbol de acceso originaltcon un atributo de tiempo adicional. El atributo de tiempo,ζrepresenta el 'período de tiempo' actual. Formalmente, la nueva estructura de accesoT0es como sigue:{{{1}}}. Por ejemplo,ζpuede ser el atributo 'fecha' cuyo valor cambia una vez al día. Se supone que cada usuario no revocado recibe sus claves privadas nuevas correspondientes al atributo 'fecha' una vez al día directamente desde el servidor de claves móvil MKS (que es la autoridad central) o a través de los delegados regionales. Con una estructura de acceso jerárquica, la propiedad de delegación de claves de CP-ABE se puede explotar para reducir la dependencia de la autoridad central para emitir nuevas claves privadas a todos los usuarios en cada intervalo de tiempo. Existen importantes compensaciones entre la carga adicional en la que incurre la autoridad para generar y comunicar las nuevas claves a los usuarios y la cantidad de tiempo que puede transcurrir antes de que un usuario revocado pueda ser eliminado de manera efectiva. Esta solución anterior tiene los siguientes problemas:
Un manuscrito de Ari Juels y Michael Szydlo [17] fechado en 2004 propuso una noción diferente, no resistente a la colusión, de cifrado basado en atributos.