ES2259592T3 - Sistema y metodo para delegar derechos de decodificacion en esquemas de decodificacion simetricos. - Google Patents

Sistema y metodo para delegar derechos de decodificacion en esquemas de decodificacion simetricos.

Info

Publication number
ES2259592T3
ES2259592T3 ES00128248T ES00128248T ES2259592T3 ES 2259592 T3 ES2259592 T3 ES 2259592T3 ES 00128248 T ES00128248 T ES 00128248T ES 00128248 T ES00128248 T ES 00128248T ES 2259592 T3 ES2259592 T3 ES 2259592T3
Authority
ES
Spain
Prior art keywords
key
scheme
message
proxy
donor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES00128248T
Other languages
English (en)
Inventor
Xin Wang
Thanh T. Ta
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Contentguard Holdings Inc
Original Assignee
Contentguard Holdings Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=23863982&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=ES2259592(T3) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from US09/469,487 external-priority patent/US6859533B1/en
Application filed by Contentguard Holdings Inc filed Critical Contentguard Holdings Inc
Application granted granted Critical
Publication of ES2259592T3 publication Critical patent/ES2259592T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/76Proxy, i.e. using intermediary entity to perform cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Facsimile Transmission Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Un método para encriptar un mensaje a pasar a un receptor por medio de un donante, incluyendo el método los pasos de: dicho donante obtiene un mensaje encriptado; habiéndose encriptado el mensaje encriptado usando un esquema de encriptado simétrico que tiene una clave simétrica K, por lo que dicha clave simétrica K se genera (1114) usando un número privado k elegido aleatoriamente (1112); dicho donante obtiene (1118) una clave pública de dicho receptor según un esquema de encriptado de clave pública; dicho donante genera (1122) una clave proxy en base a dicha clave pública obtenida de dicho receptor y dicho número privado k elegido aleatoriamente; dicho donante transforma (1124) dicho mensaje encriptado aplicando dicha clave proxy generada; por lo que el mensaje transformado puede ser desencriptado por dicho receptor recuperando (1126) dicha clave simétrica K usando la clave privada correspondiente a dicha clave pública de dicho receptor y desencriptando (1128) el mensaje encriptado usandola clave simétrica recuperada K según dicho esquema de encriptado simétrico.

Description

Sistema y método para delegar derechos de decodificación en esquemas de decodificación simétricos.
La invención se refiere a métodos computacionales, y más en particular a sistemas y métodos para delegar derechos de decodificación en esquemas de codificación simétricos (clave única).
Uno de los problemas más importantes que impiden la amplia distribución de documentos digitales mediante comercio electrónico es la falta actual de protección de los derechos de propiedad intelectual de los propietarios del contenido durante la distribución y el uso de dichos documentos digitales. Los esfuerzos por resolver este problema se han denominado "Gestión de Derechos de Propiedad Intelectual" ("IPRM"), "Gestión de Derechos de Propiedad Digitales" ("DPRM"), "Gestión de Propiedad Intelectual" ("IPM"), "Gestión de Derechos" ("RM") y "Gestión de Copyright Electrónico" ("ECM").
Un documento, en el sentido en que el término se usa aquí, es cualquier unidad de información sujeta a distribución o transferencia, incluyendo, aunque sin limitación, correspondencia, libros, revistas, diarios, periódicos, otros documentos, software, fotografías y otras imágenes, clips audio y vídeo, y otras presentaciones multimedia. Un documento se puede realizar en forma impresa en papel, como datos digitales en un medio de almacenamiento, o de cualquier otra manera conocida en varios medios.
En el mundo de los documentos impresos, una obra creada por un autor es enviada por lo general a un editor, que formatea e imprime numerosos ejemplares de la obra. Los ejemplares son enviados posteriormente por un distribuidor a las librerías u otras tiendas minoristas, en las que los usuarios finales adquieren los ejemplares.
Aunque la baja calidad de las copias y el alto costo de distribuir material impreso han servido como elementos disuasorios de la copia ilegal de la mayoría de los documentos impresos, es mucho más fácil copiar, modificar y redistribuir documentos electrónicos no protegidos. Por consiguiente, se necesita algún método de proteger documentos electrónicos para hacer más difícil copiarlos ilegalmente. Esto servirá como un elemento disuasorio de la copia, aunque todavía es posible, por ejemplo, hacer copias en papel de documentos impresos y duplicarlas al viejo estilo.
Con documentos impresos, hay un paso adicional de digitalizar el documento antes de que pueda ser redistribuido electrónicamente; esto sirve como disuasorio. Por desgracia, se ha reconocido ampliamente que no hay forma viable de evitar que la gente realice distribuciones no autorizadas de documentos electrónicos dentro de los actuales sistemas informáticos y de comunicaciones de uso general tales como ordenadores personales, estaciones de trabajo, y otros dispositivos conectados en redes de área local (LANs), intranets, e Internet. Se ha demostrado que muchos intentos de proporcionar soluciones basadas en hardware para evitar la copia no autorizada no han tenido éxito.
Se ha empleado dos esquemas básicos para intentar resolver el problema de la protección de documentos: contenedores seguros y sistemas de confianza.
Un "contenedor seguro" (o simplemente un documento encriptado) ofrece una forma de mantener encriptado el contenido del documento hasta que se cumple una serie de condiciones de autorización y se cumplen algunos términos de derechos de autor (por ejemplo, pago por uso). Después de verificar las varias condiciones y términos con el proveedor de documentos, el documento se entrega al usuario en forma no cifrada. Productos comerciales como Cryptolopes de IBM e Digiboxes de InterTrust pertenecen a esta categoría. Claramente, el acercamiento de contenedor seguro proporciona una solución para proteger el documento durante la distribución por canales inseguros, pero no proporciona ningún mecanismo para evitar que los usuarios legítimos obtengan el documento no cifrado y después lo utilicen y redistribuyan en violación de la propiedad intelectual del propietario del contenido.
Los mecanismos criptográficos se utilizan típicamente para encriptar (o "cifrar") documentos que después se distribuyen y almacenan públicamente, y en último término son descifrados privadamente por usuarios autorizados. Esto proporciona una forma básica de protección durante la distribución de documentos de un distribuidor de documentos a un usuario deseado por una red pública, así como durante el almacenamiento de documentos en un medio inseguro.
En el acercamiento del "sistema de confianza", todo el sistema es responsable de evitar el uso y la distribución no autorizados del documento. Crear un sistema de confianza implica en general introducir hardware nuevo tal como un procesador seguro, almacenamiento seguro y dispositivos de renderización seguros. Esto requiere también que todas las aplicaciones de software que se ejecuten en sistemas de confianza tengan el certificado de ser de confianza. Aunque la construcción de sistemas de confianza a prueba de manipulación todavía es un reto real para las tecnologías actuales, las actuales tendencias del mercado sugieren que los sistemas abiertos y no de confianza, tales como PCs y estaciones de trabajo, serán los sistemas dominantes utilizados para acceder a documentos con copyright. En este sentido, los actuales entornos informáticos, tales como PCs y estaciones de trabajo, equipados con sistemas operativos populares (por ejemplo, Windows y UNIX) y aplicaciones de renderización (por ejemplo, Microsoft Word) no son sistemas de confianza y no se pueden hacer de confianza sin alterar considerablemente sus arquitecturas.
Por consiguiente, aunque algunos componentes de confianza pueden ser desplegados, se debe continuar confiando en varios elementos y sistemas desconocidos y no de confianza. En tales sistemas, aunque se espera que sean seguros, se encuentran y explotan frecuentemente errores no anticipados y debilidades.
Surge un problema particular en el contexto de la distribución de documentos, como se describe en general anteriormente. En el modelo tradicional de distribución de documentos, el autor del contenido y el editor no realizan típicamente la distribución; esa responsabilidad se le encomienda a una parte separada con pericia en la distribución. Además, aunque es posible encriptar un documento (usando técnicas estándar) de manera que múltiples receptores puedan desencriptarlo, no se conoce en general al tiempo de crear una obra quienes serán los usuarios últimos. Tiene más sentido que el distribuidor determine quienes serán los usuarios finales, y distribuirles el documento según se desee. Si, como en el modelo tradicional, la obra original del autor se envía a un editor y un distribuidor sin cifrar, es un punto de vulnerabilidad de la obra.
Surge un problema similar en entornos de oficina, por ejemplo, en los que frecuentemente es deseable designar lo que de varias formas se llama un agente, sustituto o delegado del documento. En esta situación, con frecuencia es útil poder dar a un auxiliar administrativo o secretario el derecho de desencriptar algún documento no destinado directamente a dicha persona.
Considerando el problema en sentido más amplio, en un entorno de red, con frecuencia se pasan mensajes a receptores distintos de los previstos inicialmente. Cuando la confidencialidad del mensaje es una preocupación y se envían mensajes encriptados, es muy deseable permitir a una persona desencriptar estos mensajes por cuenta de otro. Para ser concretos, supóngase que Bob es quien tiene que leer algún mensaje que está encriptado inicialmente para Alice. Una solución trivial es que Alice revele simplemente su clave de desencriptado a Bob de manera que Bob la pueda utilizar para desencriptar el mensaje. Esto requiere que Alice confíe en Bob totalmente, lo que puede no ser aceptable para Alice. Otra forma de llevar a cabo esta tarea es dejar que Alice desencripte primero el mensaje, lo reencripte después para Bob y finalmente envíe el mensaje recién encriptado a Bob de manera que él lo pueda desencriptar. Aunque el mensaje se comunica con seguridad, esta solución es menos eficiente puesto que requiere dos operaciones de desencriptado y una de encriptado para que Bob reciba el mensaje. Más importante, en algunas situaciones dicha solución de reencriptado ni siquiera es aplicable o deseable. Por ejemplo, Alice puede no tener acceso al mensaje encriptado, puesto que puede ser enviado por su originador directamente a Bob por eficiencia de comunicación y otras consideraciones. Además, desencriptar el mensaje encriptado a una versión sin cifrar, aunque solamente durante un tiempo corto, puede ser una vulnerabilidad sustancial.
Por consiguiente, sería deseable tener una estructura de encriptado/desencriptado que soporte la capacidad de transferir el derecho a decodificar mensajes. Tal estructura permitiría a un delegado, esencialmente, autorizar el reencriptado de un mensaje para uso por otra parte sin desencriptar primero el mensaje original. También sería útil que esto fuese posible sin que el delegado tenga posesión del mensaje encriptado.
MAMBO y colaboradores: "Protection of data and delegated keys in digital distribution", SECOND AUSTRALIAN CONFERENCE ON INFORMATION SECURITY AND PRIVACY, ACISP'97, SYDNEY, NSW, AUSTRALIA, 7-9 JULIO 1997, 1997, BERLIN, ALEMANIA, SPRINGER-VERLAG, PÁGINAS 271-282, describen sistemas de distribución en base al criptosistema proxy, el sistema de desencriptado ciego o ambos. En particular, se propone un sistema donde la información es cifrada por un criptosistema de clave secreta. En una primera estructura, una compañía C que posee datos usa un servicio de almacenamiento de información realizado por un mantenedor K. En respuesta a la petición de un usuario U, C recupera información solicitada de K, y la envía de nuevo a U después de convertirla a una forma tal que solamente U la pueda leer. A U se le da un proxy p para desencriptado con anterioridad mediante un canal seguro.
El objeto de la presente invención es proporcionar un método mejorado para encriptar un mensaje a pasar a un receptor por medio de un donante.
Este objeto se logra con la materia de la reivindicación independiente 1.
Se definen realizaciones preferidas en las reivindicaciones dependientes.
Cómo transferir el derecho a desencriptar de un tenedor de clave a otro de forma segura y eficiente es el objeto de encriptado proxy. Recientemente se han propuesto algunos esquemas específicos de encriptado proxy para convertir mensajes encriptados para una clave a mensajes encriptados para otro sin revelar claves de encriptado secretas y mensajes originales al público. Mambo y Okamoto han introducido varios esquemas privados de encriptado proxy, no conmutativos, independientes del mensaje. Blaze y Strauss han introducido un esquema público de encriptado proxy, conmutativo, independiente del mensaje.
En esta descripción, el mismo problema general es resuelto inicialmente pero en el contexto más general de esquemas de codificación. Los esquemas de codificación considerados en esta descripción difieren de los esquemas de encriptado o criptosistemas en que no tienen necesariamente ningún requisito relacionado con la seguridad. Para que un esquema de codificación sea un esquema de encriptado, es necesario que una persona que escuche, al ver un mensaje codificado, no sea capaz de determinar el mensaje original o la clave usada para decodificar el mensaje. Trabajar con esquemas de codificación hace posible crear aplicaciones con ligera seguridad pero alta eficiencia de implementación, tal como la distribución eficiente y masiva de documentos y la actualización de texto cifrado con nuevas claves para proteger mensajes encriptados a largo plazo. En esta descripción, se define una clase de esquemas de codificación, y se dan varios esquemas ejemplares. También se ofrece aquí Un proceso con el que se pueden construir nuevos esquemas usando los existentes.
A continuación se presentan varios esquemas de encriptado proxy más formales. Un esquema de encriptado proxy es un esquema encriptado que permite a un tenedor de clave designado desencriptar mensajes por cuenta de otro tenedor de clave. Esta descripción introduce dos nuevos esquemas de encriptado proxy en base al esquema ElGamal conocido, con mejores funcionalidades sobre esquemas de encriptado proxy existentes. Son públicos en el sentido de que la información relacionada con proxy y las transformaciones se pueden hacer con seguridad para el público, y al mismo tiempo no son conmutativos en términos de relaciones de confianza entre tenedores de clave implicaos. También se presentan aplicaciones de estos nuevos esquemas a la distribución masiva de documentos y la protección de archivos.
La idea básica en los métodos presentes en esta descripción es la siguientes: para que Alice transfiera el derecho a decodificar a Bob, Alice genera una clave de transferencia t para Bob. Con la clave de transferencia t, Bob puede re-encriptar el mensaje inicialmente codificado para Alice y después desencriptarlo usando su propia clave. de forma muy parecida al encriptado proxy, la transferencia se lleva a cabo de tal forma que la clave de transferencia no revele explícitamente las claves de decodificación de Alice o Bob, o el mensaje original.
Cómo delegar el derecho a desencriptar de un tenedor de clave a otro de formas seguras y eficientes es el objeto de encriptado proxy. Muy recientemente se han propuesto algunos esquemas específicos de encriptado proxy para convertir mensajes encriptados para una clave a mensajes encriptados para otro sin revelar claves de encriptado secretas ni los mensajes originales al público. Mambo y Okamoto han descrito tres esquemas de encriptado proxy para los esquemas de encriptado ElGamal y RSA. M. Mambo y E. Okamoto, "Proxy cryptosystems: Delegation of the power to decrypt ciphertexts", IEICE Trans. on Fundamentals, Vol. E80-A, 1, páginas 54-63 (1997). Para la situación mencionada anteriormente, sus esquemas tienen mejor rendimiento computacional que el esquema de reencriptado, pero por razones de seguridad requieren la presencia del tenedor de clave original Alice en la conversión del mensaje. Además, los esquemas propiamente dichos no ayudan a especificar quien es el tenedor de clave en el que Alice desea delegar el derecho de desencriptado. El esquema propuesto por Blaze y Strauss, por otra parte, no tiene estos inconvenientes. Es una modificación del esquema de encriptado ElGamal. M. Blaze y M. Strauss, "Proxy Cryptography", Borrador, AT&T Research Labs, ftp://ftp.research.art.com/dist/mab/proxy.ps (Mayo 1997). Una característica muy llamativa del esquema de Blaze y Strauss es que permite comunicar información relacionada proxy y realizar la conversión de mensajes en público. Pero introduce un problema más grave: es conmutativo en el sentido de que Bob es capaz de obtener la clave de desencriptado de Alice. Este tipo de conmutatividad convierte en obsoleto el esquema de encriptado proxy, puesto que todo el esquema se puede simplificar bien dando la clave de Alice a Bob y dejando que Bob realice el desencriptado. otra cuestión (no necesariamente un problema) creada por este esquema es que, una vez que Alice ha dado a Bob el derecho de desencriptado, puede desencriptar todos los mensajes destinados originalmente a Alice. Esta independencia del mensaje puede ser útil en algunos casos tal como autodelegación, pero no será deseable en muchas aplicaciones prácticas donde el tenedor de clave original desea ser selectivo sobre en qué mensajes está permitido el desencriptado delegado.
Por consiguiente, los esquemas de encriptado proxy según la presente invención, que son públicos y no conmutativos, eliminan algunas de las desventajas de otros criptosistemas conocidos.
A continuación se introducen en esta descripción dos nuevos esquemas de encriptado proxy. Se basan en el esquema de encriptado de clave pública ElGamal y tienen un rendimiento computacional comparable. Esencialmente, conservan las características deseables siguientes de los esquemas existentes: (i) públicos: no se requiere la presencia del tenedor de clave original después de generar información proxy, y la información relacionada proxy y las operaciones se pueden comunicar y realizar en público; (ii) no conmutativos: los tenedores de clave no tienen que confiar entre sí con respecto a sus claves de desencriptado privadas; y (iii) restringidos: se especifica el tenedor de clave en quien se delega el derecho de desencriptado, y la información proxy (clave) es dependiente del mensaje.
Finalmente, la delegación del derecho a desencriptar mensajes se describe a continuación en el contexto del criptosistema Cramer-Shoup, que tiene algunas ventajas sobre otros sistemas.
Estas y otras características y ventajas de la presente invención son evidentes por las figuras como se describe completamente en la Descripción detallada de la invención.
La figura 1 es un diagrama de bloques de un sistema de distribución de documentos electrónicos capaz de operación según un ejemplo útil para entender la invención.
La figura 2 es un diagrama de bloques que ilustra las operaciones de codificación realizadas al delegar la autoridad para desencriptar un mensaje en un método según un ejemplo útil para entender la invención.
La figura 3 es un diagrama de flujo que ilustra los pasos generales realizados al transformar un mensaje codificado para decodificación por otro.
La figura 4 es un diagrama de bloques que ilustra esquemáticamente las partes implicadas en un sistema adaptado para la delegación de la autoridad para desencriptar mensajes.
La figura 5 es un diagrama de flujo que ilustra los pasos realizados en un esquema genérico de encriptado proxy.
La figura 6 es un diagrama de flujo que ilustra los pasos realizados al encriptar y desencriptar un mensaje según el criptosistema ElGamal.
La figura 7 es un diagrama de flujo que ilustra los pasos realizados en un esquema de encriptado y desencriptado proxy basado en ElGamal conocido propuesto por Mambo y Okamoto.
La figura 8 es un diagrama de flujo que ilustra los pasos realizados en un esquema de encriptado y desencriptado proxy basado en ElGamal conocido propuesto por Blaze y Strauss.
La figura 9 es un diagrama de flujo que ilustra los pasos realizados en un primer ejemplo de un esquema de encriptado y desencriptado proxy basado en ElGamal útil para entender la invención.
La figura 10 es un diagrama de flujo que ilustra los pasos realizados en un segundo ejemplo de un esquema de encriptado y desencriptado proxy basado en ElGamal útil para entender la invención.
La figura 11 es un diagrama de flujo que ilustra los pasos realizados en un esquema de distribución de documentos según la invención.
La figura 12 es un diagrama de flujo que ilustra los pasos realizados en un esquema de protección de archivos según la invención.
La figura 13 es un diagrama de flujo que ilustra los pasos realizados al encriptar y desencriptar un mensaje según el criptosistema Cramer-Shoup.
Y la figura 14 es un diagrama de flujo que ilustra los pasos realizados en un ejemplo de un esquema de encriptado y desencriptado proxy basado en Cramer-Shoup útil para la comprensión de la invención.
Las figuras se explican más plenamente en la descripción detallada siguiente de la invención.
La invención se describe más adelante, con referencia a realizaciones ilustrativas detalladas. Será evidente que la invención se puede realizar en una amplia variedad de formas, algunas de las cuales pueden ser bastante diferentes de las de las realizaciones descritas. En consecuencia, los detalles estructurales y funcionales específicos aquí descritos son meramente representativos y no limitan el alcance de la invención.
La figura 1 representa un modelo funcional de nivel superior para un sistema para la distribución electrónica de documentos, que, como se ha definido anteriormente, pueden incluir correspondencia, libros, revistas, diarios, periódicos, otros documentos, software, clips audio y vídeo, y otras presentaciones multimedia.
Un autor (o editor) 110 crea un contenido original de documento 112 y lo pasa a un distribuidor 114 para distribución. Aunque se contempla que el autor también pueda distribuir documentos directamente, sin que participe otra parte como un editor, la división de trabajo expuesta en la figura 1 es más eficiente, porque permite al autor/editor 110 concentrarse en la creación de contenido, y el distribuidor 114 no asume las funciones mecánicas y mundanas. Además, tal división permitiría al distribuidor 114 realizar economías de escala por asociación con varios autores y editores (incluyendo el autor/editor ilustrado 110).
El distribuidor 114 pasa después el contenido modificado 116 a un usuario 118. En un modelo típico de distribución electrónica, el contenido modificado 116 representa una versión reencriptada del contenido original encriptado 112; el distribuidor 114 descifra primero el contenido original 112 y después lo reencripta con la clave pública del usuario 118; dicho contenido modificado 116 es personalizado solamente para el único usuario 118. El usuario 118 es capaz entonces de usar su clave privada para desencriptar el contenido modificado 116 y ver el contenido original
112.
Un pago 120 por el contenido 112 se pasa del usuario 118 al distribuidor 114 por medio de una cámara de compensación 122. La cámara de compensación 122 recoge peticiones del usuario 118 y de otros usuarios que desean ver un documento concreto. La cámara de compensación 122 también recoge información de pago, tal como transacciones de débito, transacciones con tarjeta de crédito, u otros esquemas conocidos de pago electrónico, y envía los pagos recogidos del usuario como un lote de pagos 124 al distribuidor 114. Naturalmente, se espera que la cámara de compensación 122 retenga una parte del pago del usuario 120. A su vez, el distribuidor 114 retiene una porción del lote de pagos 124 y envía un pago 126 (incluyendo derechos de autor) al autor y editor 110. En una realización de este esquema, el distribuidor 114 espera un paquete de peticiones de usuario para un documento único antes de enviar nada. Cuando se realiza esto, se puede generar un documento único con contenido modificado 116 para desencriptado por todos los usuarios solicitantes. Esta técnica es conocida en la materia. Mientras tanto, cada vez que el usuario 118 pide (o usa) un documento, se envía un mensaje de contabilidad 128 a un servidor de auditoría 130. El servidor de auditoría 130 garantiza que cada petición realizada por el usuario 118 coincida con un documento enviado por el distribuidor 114; la información contable 131 es recibida por el servidor de auditoría 130 directamente del distribuidor 114. Las inconsistencias son transmitidas mediante un informe 132 a la cámara de compensación 122, que entonces puede ajustar los lotes de pago 124 efectuados al distribuidor 114. Este esquema de contabilidad está presente para reducir la posibilidad de fraude en este modelo de distribución electrónica de documentos, así como para manejar cualesquiera permisos de uso dependientes del tiempo que puedan dar lugar a cargos que varíen, dependiendo de la duración u otra magnitud de uso.
El modelo anterior para comercio electrónico en documentos, representado en la figura 1, es de uso común hoy día. Como se mostrará con detalle a continuación, es igualmente aplicable al sistema y método aquí expuestos para la distribución de documentos autoprotectores.
Esquemas de codificación proxy
Por razones de simplicidad, considérense inicialmente esquemas de codificación del tipo siguiente. Un sistema de codificación consta de cuatro componentes: (i) un espacio de mensaje X que es una colección de mensajes posibles, (ii) un espacio de clave K que es un conjunto de claves posibles, (iii) una transformación de codificación computacionalmente eficiente E: K x X \rightarrow X y (iv) una transformación de decodificación computacionalmente eficiente
D: K x X \rightarrow X. Para cada k \in K, la transformación de codificación E_{k}: X \rightarrow X y la transformación de decodificación D_{k:} X \rightarrow X son aplicaciones inyectivas (uno a uno) en X, y cumplen que, para cada mensaje, x \in X,
D_{k} (E_{k}(x)) = x.
Ciertamente, tales esquemas de codificación definidos se pueden variar de varias formas para cubrir un rango más amplio. Uno es diferenciar el espacio de mensajes codificados del de los mensajes originales, y otro es considerar que las claves usadas para codificación y decodificación son diferentes. En términos de criptografía, los esquemas de codificación considerados a continuación son esencialmente criptosistemas endomórficos de clave esencialmente privada (o, más exactamente, simétricos).
Tales esquemas de codificación definidos tienen algunas propiedades ventajosas. Dado un esquema de codificación (X, K, E, D), cada transformación de codificación y su transformación de decodificación correspondiente son transformación inversa una de otra; es decir, para cada k \in K,
D_{k} = (E_{k})^{-1}
\hskip0.5cm
y
\hskip0.5cm
E_{k} = (D_{k})^{-1}.
Si X es un conjunto finito, cada transformación de codificación o decodificación es una permutación en X.
Los esquemas de encriptado de clave simétrica clásicos son esquemas de codificación. He aquí algunos.
Esquema XOR X. En este esquema, el espacio de mensaje X es el conjunto B_{n} de todas las cadenas binarias de n bits para algún entero n>0, y así es el espacio de clave K. El número de mensajes posibles y el número de claves posibles son 2^{n}. Para cada mensaje x y cada clave k, la codificación es
y= E_{k}(x) = x \varoplus k
y la decodificación del mensaje y es
x = D_{k}(y) = y \varoplus k;
donde \varoplus representa la operación XOR (O exclusivo) a nivel de bit.
Esquema multiplicativo M. Un mensaje en este esquema es un elemento en X = Z_{n} = [0,1,..., n-1] para algún entero n>0. Una clave también es un elemento a en Z_{n} pero cumpliendo gcd(a, n)=1, donde la función "gcd" especifica el mayor divisor entero común de los dos argumentos. Es decir, el espacio de clave K consta de los elementos en el grupo multiplicativo Z^{\text{*}}_{n} = {a \in Z_{n} | gcd(a,n)=1). La codificación de un mensaje x con una clave a es
y = E_{a}(x) = ax (mod \ n)
y la decodificación de un mensaje y con una clave a es
x = D_{a}(y) = a^{-1} y (mod \ n),
donde a^{-1} es la inversa multiplicativa de un módulo n; es decir, a^{-1} es un elemento en Z_{n} de tal manera que aa^{-1}(mod n) = a^{-1}a(mod n)=1. Obsérvese que la condición en a, gcd(a,n)=1, se utiliza para garantizar que a tenga la inversa a^{-1}. Es sabido que el número de tales a es igual al valor de la función phi Euler
\phi(n) = \prod\limits_{(a)}^{m}(P_{i}^{c_{i}}-P_{i}^{c_{i}-1})
donde
n=\prod\limits^{m}_{i-1}P_{i}^{c_{i}}
es la descomposición en primos de n. Así, el número de claves en el esquema M es \Phi(n).
Esquema de desplazamiento S. Mensajes y claves del esquema de desplazamiento son todos los elementos en
Z_{n}= {0,1,...,n-1} para algún entero n>0; es decir, X=K=Z_{n}. Así, el número de mensajes y el número de claves en el esquema de desplazamiento son todos iguales a n. Para codificar un mensaje x con una clave b, se calcula
y = E_{b}(x) = x + b(mod \ n)
y para decodificar un mensaje y con b, se calcula
x = D_{b}(y) = y - b(mod \ n).
Esquema de sustitución P. Este esquema también se define sobre X=Z_{n}. Sin embargo, el espacio de clave K=\Pi_{n} consta de todas las permutaciones de elementos en Z_{n}. Así, el número total de claves es n!. Para cada permutación p \in \Pi_{n}, la codificación es
y = E_{p}(x) = p(x),
mientras que la decodificación es
x = D_{p}(y) = p^{-1}(y),
donde p^{-1} es la permutación inversa de p.
Se deberá observar que los esquemas multiplicativo y de desplazamiento son casos especiales del esquema de sustitución que incluyen solamente \Phi(n) y n de las n! permutaciones posibles de n elementos, respectivamente.
Se puede construir nuevos esquemas de codificación combinando los existentes. Una forma es formar su "producto". Supóngase que S y S' son dos esquemas de codificación con el mismo espacio de mensaje X. El producto de S y S', denotado por SxS', tiene el mismo espacio de mensaje X. Una clave del esquema producto tiene la forma (k k'), donde k y k' son claves de S y S', respectivamente Las transformaciones de codificación y decodificación del esquema producto se definen como sigue: para cada clave (k,k') \in K,
E_{(k,k')}(x) = E_{k'}(E_{k}(x))
y
D_{(k,k')}(x) = D_{k}(D'_{k}(c)).
Es decir, el mensaje x se codifica primero con E_{k}, y el mensaje resultante se "recodifica" después con E_{k'}. La decodificación es similar, pero se realiza en el orden inverso.
Es sencillo comprobar que la construcción de producto siempre es asociativa: (SxS')xS''=Sx(S'xS''). Si se toma un esquema de codificación S para formar el producto, se obtiene el esquema SxS, denotado por S^{2}. Si se toma el producto n veces, el esquema resultante, denotado por S^{n}, se denomina un esquema de codificación iterado.
Un ejemplo simple para ilustrar la definición de esquemas de codificación producto es el siguiente.
Esquema afín A. Este esquema también se define sobre X=Z_{n}. Una clave del esquema afín es un par de enteros (a, b) en Z_{n}, donde gcd(a,n)=1. La transformación de codificación es
y = E_{(a,b)}(x) = (ax + b)(mod \ n)
y la transformación de decodificación es
x = D_{(a,b)}(y) = a^{-1}(y - b)(mod \ n)
donde a^{-1} es la inversa modular de un módulo n. Estas transformaciones del tipo ax+b se denominan de ordinario transformaciones afines, de ahí el nombre esquema afín. Obsérvese que el esquema A se reduce al esquema multiplicativo M cuando b=0 y el esquema de desplazamiento S cuando a=1. Así, M y S son casos especiales de A. Por otra parte, A es su producto MxS. Como se ha observado anteriormente, una clave en el esquema multiplicativo M es un elemento a \in Z^{\text{*}}_{n}; la transformación de codificación correspondiente es E_{a}(x)=ax(mod n). Una clave en el esquema de desplazamiento es un elemento b \in Z_{n}, y la transformación de codificación correspondiente es E_{b}(x)=x+b (mod n). Por lo tanto, una clave en el esquema producto MxS tiene la forma (a,b) \in Z^{\text{*}}_{n}xZ_{n}, y su codificación es
E_{(a,b)}(x) = E_{b}(E_{a}(x)) = ax + b(mod \ n).
Ésta es exactamente la definición de la transformación de codificación en el esquema afín. Igualmente, la transformación de decodificación en el esquema afín es la composición de las transformaciones de decodificación de los esquemas de desplazamiento y multiplicativo.
El objetivo de transferir el derecho a decodificar mensajes en cualquier esquema de codificación dado (X, K, E, D) se puede afirmar como sigue: para cualquier mensaje dado x \in X y claves k, k' \in K, convertir de alguna forma eficiente el mensaje codificado y=E_{k}(x) usando la clave k en el mensaje codificado y=E_{k'}(x) usando la clave k' de manera que el mensaje nuevo y' se pueda decodificar correctamente usando la clave k'. Si se puede lograr esto, se dice que el derecho a decodificar el mensaje y se ha transferido o delegado del tenedor de clave de k al tenedor de clave de k'.
La figura 2 ilustra la transformación \pi 210 que es necesaria para lograr el objetivo. Las líneas gruesas 212, 214 y 216 que representan transformaciones E_{k}, \pi, y D_{k'} respectivamente, forman una secuencia de pasos que codifica un mensaje x con una clave k, convierte el mensaje codificado en el otro codificado con otra clave k', y decodifica el mensaje usando la clave k'. Las líneas finas 218 y 220, que representan las transformaciones E_{k}, y D_{k}, respectivamente, muestran otras operaciones de codificación y decodificación posibles que se puede realizar.
En muchos casos, el espacio de clave K de un esquema de codificación no es meramente un conjunto. Equipado con alguna operación "\cdot", K puede poseer alguna estructura matemática. Por ejemplo, los espacios de clave de todos los esquemas ejemplares dados en la sección anterior pueden estar equipados con algunas operaciones para convertirse en grupos matemáticos. La Tabla 1 siguiente muestra algunas de estas operaciones, donde ° representa el operador de composición de las permutaciones y
\text{*}:(Z^{\text{*}}_{n} \times Z_{n}) \times (Z^{\text{*}}_{n} \times Z_{n})\rightarrow Z^{\text{*}}_{n} \times Z_{n}
se define como
(a,b)\text{*}(a',b') = (a'a(mod \ n),a'b + b'(mod \ n))
TABLA 1
Esquema Espacio de clave "K" Operación "\cdot"
X B_{n} \varoplus (XOR)
M Z^{\text{*}}_{n} x (mod n)
S Z_{n} + mod n)
P \Pi_{n} ° composición
A Z^{\text{*}}_{n}xZ_{n} * (definido anteriormente)
Cuando el espacio de clave K de un esquema de codificación (X, K, E, D) es un grupo con alguna operación "\cdot", las transformaciones de codificación y decodificación pueden ser determinadas únicamente por las claves. Este sucede cuando el espacio de clave K es isomórfico, como un grupo, para los grupos de transformación E=(E_{k} | k \in K) y D=(D_{k} | k \in K) formados por las transformaciones de codificación y decodificación en el espacio de mensaje X; es decir, para cualquier k, k' \in K,
D_{k} = (E_{k})^{-1} = E_{k^{-1}}
\hskip0.5cm
y
\hskip0.5cm
E_{k} \ ^{o} \ E_{k'} = E_{k-k'}
y
E_{k} = (D_{k})^{-1} = D_{k^{-1}}
\hskip0.5cm
y
\hskip0.5cm
D_{k} \ ^{o} \ D_{k'} = D_{k-k'};
donde ° es el operador de composición de las transformaciones, que se define, por ejemplo, como
E_{k} \ ^{o} \ E_{k'}(x) = E_{k'}(E_{k}(x))
para todo x \in X.
Se puede comprobar fácilmente que todos los esquemas dados en la Tabla 1 anterior están determinados por clave. Los esquemas de codificación determinados por clave permiten una forma sistemática de transferir el derecho a decodificar mensajes de un tenedor de clave a otro. Con el isomorfismo entre el espacio de clave y los grupos de transformación, la composición de la transformación de decodificación con una clave k y la transformación de codificación con otra clave k' se puede considerar entonces como la transformación de codificación determinada por la clave compuesta k^{-1}\cdotk. Sea (X, K, E, D) un esquema de codificación determinado por clave. Supóngase que y=E_{k}(x) es la versión codificada del mensaje x \in X con la clave k \in K. El derecho a decodificar el mensaje codificado de x puede ser
transferido del tenedor de clave de k al tenedor de clave de k' en el algoritmo de dos pasos mostrado en la figura 3.
Generar en primer lugar una clave de transferencia t=k^{-1}\cdotk (paso 310). Codificar posteriormente el mensaje con la clave de transferencia t según y'=E_{r}(y) (paso 312).
El algoritmo es correcto gracias a que la propiedad del espacio de clave es isomórfica a los grupos de transformación de codificación y decodificación. La corrección se puede verificar como sigue:
D_{k'}(y') = D_{k'}(E,(y))
\quad
= D_{k'}(E_{k^{-1}, k'}(y))
\quad
= D_{k'}(E_{k'}(E_{k^{-1}}(y)))
\quad
= (E_{k^{-1}}(y)
\quad
= D_{k}(y)
\quad
= D_{k}(E_{k}(x))
\quad
= x
La generalidad del algoritmo hace inmediato derivar los pasos de transferencia para los esquemas ejemplares expuestos anteriormente. Con referencia de nuevo a la figura 3, para el esquema XOR X sobre B_{n}, para convertir
y=E_{k}(x) a y'=E_{k'}(x), generar primero una clave de transferencia r=k\varoplus+k' (paso 310). Codificar posteriormente el mensaje con la clave de transferencia t según y'= y\varoplust (paso 312).
Para el Esquema Multiplicativo M sobre Z^{\text{*}}_{n}, para convertir y=E_{a}(x) a y'=E_{a},(x), generar primero una clave de transferencia t=a'a^{-1} (mod n) (paso 310). Codificar posteriormente el mensaje con la clave de transferencia t según y'=ty (mod n) (paso 312).
Para el Esquema de Desplazamiento S sobre Z_{n}, para convertir y=E_{b}(x) a y'=E_{b'}(x), generar primero una clave de transferencia t=b'-b (mod n) (paso 310). Codificar posteriormente el mensaje con la clave de transferencia t según y=y+t (mod n) (paso 312).
Para el Esquema de Sustitución P sobre \Pi_{n}, para convertir y=E_{p}(x) a y'=E_{p'}(x), generar primero una clave de transferencia t=p^{-1}°p' (paso 310). Codificar posteriormente el mensaje con la clave de transferencia t según y'=t(y) (paso 312).
Como se describirá más adelante, también es posible transferir el derecho a decodificar en esquemas producto no sólo de codificación determinada por clave, sino también esquemas de conmutación. Para definir esquemas de conmutación, hay que caracterizar esquemas de codificación que son esencialmente equivalentes. Supóngase que S=(X, K, E, D) y S'=(X, K', E, D') son dos esquemas de codificación con el mismo espacio de mensaje X. Se dice que S es equivalente a S', denotado por S\equivS', si hay una aplicación biyectiva (uno a uno y sobre) h:K \rightarrow K' de tal manera que para cada mensaje x \in X y para cada clave k \in K,
E_{k}(x) = E^{'}_{h(k)}(x)
y
D_{k}(x) = D^{'}_{h(k)}(x).
Es claro que la relación de equivalencia de esquema \equiv es una relación de equivalencia; es decir, cumple que, para cualquier esquema de codificación S, S', S', es válido lo siguiente: (i) S\equivS; (ii) S\equivS' implica S'\equivS; y (iii) S\equivS' y S=S'' implican S\equivS''. Así, los esquemas de codificación equivalentes forman una clase de equivalencia en la que cada esquema en la clase no proporciona más y no menos funcionalidad que cualquier otro en la clase.
La relación de equivalencia de esquema permite caracterizar esquemas de codificación de varias formas. Se dice que un esquema de codificación S es idempotente si S^{2}\equivS. Muchos de los esquemas de codificación son idempotentes, incluyendo los esquemas XOR, multiplicativo, desplazamiento, sustitución y afín. Si un esquema S es idempotente, no sirve de nada utilizar el esquema producto S^{2}, puesto que requiere una clave extra, pero no proporciona más funcionalidad.
Otra caracterización en esquemas de codificación que usan la relación de equivalencia de esquema \equiv es la de los esquemas de conmutación. Se dice que dos esquemas de codificación S y S' conmutan si SxS'\equivS'xS. Es banal afirmar que cualquier esquema conmuta consigo mismo. Un ejemplo no tan trivial es el del esquema multiplicativo M y el esquema de desplazamiento S. Para ver que conmutan, es decir, MxS\equivSxM, se puede comparar las ecuaciones
E_{b}(E_{a}(x)) = ax + b \ (mod \ n)
y
E_{a}(E_{b}(x)) = ax + ab \ (mod \ n);
y hallar que la aplicación
h:K_{S} \times K_{M} \rightarrow K_{M} \times K_{S}
definida por
h(b,a) = (a,a^{-1}b \ (mod \ n))
hace el producto SxM isomórfico al producto MxS.
Los esquemas producto de esquemas de codificación determinados por clave y conmutación tienen una forma sistemática de transferir el derecho a decodificar mensajes. Sea S_{1}xS_{2} el esquema producto de dos esquemas de codificación determinados por clave y por conmutación. Supóngase que h=(h_{1},h_{2}):K_{2}xK_{1}\rightarrowK_{1}xK_{2} es la aplicación que hace S_{2}xS_{1} isomórfico a S_{1}xS_{2}, donde h_{1}: K_{2}xK_{1}\rightarrowK_{1} y h_{2}:K_{2}xK_{1}\rightarrowK_{2}. Obsérvese en primer lugar que el esquema producto también es determinado por clave; el espacio de clave de producto K_{1}xK_{2} es un grupo con respecto a la operación * definida por
(K_{1},k_{2})\text{*}(k^{'}_{1},k^{'}_{2}) = (k_{1},h_{1}(k_{2},k^{'}_{1}),h_{2}(k_{2},k^{'}_{1})\cdot k^{'}_{2}).
Esto es porque
100
Ahora, el derecho a decodificar el mensaje codificado de x se puede transferir desde el tenedor de clave de k al tenedor de clave de otra clave k' en el algoritmo de dos pasos mostrado en la figura 3. Generar en primer lugar una clave de transferencia t=(h_{1}(k_{2}^{-1},k_{1}^{-1}\cdotk'_{1}),h_{2}(k_{2}^{-1},k_{1}^{-1}\cdotk')\cdotk'_{2}) (paso 310). Codificar posteriormente el mensaje con la clave de transferencia t según y'= E_{r}(y) (paso 312).
La corrección del algoritmo de transferencia se verifica por la igualdad siguiente:
101
donde la última entidad puede ser decodificada fácilmente usando la clave k'=(k'_{1},k'_{2}).
El método se ilustra bien con el ejemplo siguiente, aplicando el cifrado afín A sobre Zn. Dado que A=MxS, y M y S son esquemas de conmutación determinados por clave, el método antes descrito se aplica al esquema afín. Como se ha observado antes, es la aplicación h(b,a)=(a,ab) la que hace SxM isomórfico a MxS. Así, h_{1}(b,a)=a y h_{2}(a, b)=ab (mod n). La clave de transferencia t de (a, b) a (a', b) se puede derivar como
t = (h_{1}(b^{-1}, a^{-1} \cdot a'),h_{2}(b^{-1}, a^{-1} \cdot a') \cdot b')
\quad
= (a' \cdot a^{-1}, h_{2}(b^{-1}, a^{-1} \cdot a') + b')
\quad
= (a' \cdot a^{-1}, (a' \cdot a^{-1})b^{-1} + b')
\quad
= (a'a^{-1}, -a'a^{-1}b + b')
Entonces, para decodificar y utilizando una segunda clase (\alpha', b'), generar primero una clave de transferencia t=(a'a^{-1}(mod n),-a'a^{-1}b+b'(mod n))=(t_{1},t_{2}) (paso 310). Codificar posteriormente el mensaje utilizando la clave de transferencia t según y'=t_{1}y+t_{2} (mod n) (paso 312).
Los métodos aquí presentados para transferir el derecho a decodificar mensajes son transitivos. Esto significa que dos transferencias secuenciales de Alice a Bob y después de Bob a Carol son equivalentes a una transferencia directa de Alice a Carol. Es importante observar que, en cada uno de los esquemas ejemplares, una clave de transferencia también es una clave del esquema.
Por consiguiente, dos claves de transferencia utilizadas en las dos transferencias secuenciales se pueden combinar para formar una clave de transferencia para la transferencia directa. Tómese como ejemplo el esquema afín. Sea k=(a, b), k=(a', b'), y k''=(a'', b'') las claves para Alice, Bob y Carol, respectivamente. Entonces, las claves de transferencia son t=(a'a^{-1},-a'a^{-1}b+b') de Alice a Bob, t'=(a'a'^{-1},-a''a'^{-1}b'+b) de Bob a Carol, y t'=(a''a^{-1},-a''a^{-1}b+b'')de Alice a Carol. Es sencillo verificar que la composición de t y t' como claves en el esquema afín da t':
\quad
(t \cdot t' = t'_{1}t_{1}, t'_{1}t_{2} + t'_{2})
\quad
= ((a'' a'{}^{-1})(a'a^{-1}), (a''a'{}^{-1})(-a'a^{-1}b + b') + (-a''a'{}^{-1}b' + b''))
\quad
= (a'' a^{-1}, -a''a^{-1}b + b'')
\quad
= t'
En otros términos, la composición de la transferencia secuencial del derecho a decodificar mensajes es sin memoria; ninguna transferencia intermedia se reflejará en la transferencia general.
Se deberá observar también que, para los esquemas X, M y S el paso de generación de clave de transferencia es equivalente a "decodificar" k' con k. Así, el cálculo necesario en la transferencia es el mismo que el utilizado en el método de decodificación y recodificación para estos esquemas. Se puede pensar que el nuevo método no muestra mejora en este aspecto de la eficiencia, pero se ha hallado que la clave de transferencia es independiente de mensaje y por lo tanto tiene que ser calculada solamente una vez. Cuando aumenta el número de mensajes m implicados en la transferencia, esta característica reducirá a la mitad el cálculo requerido por el método de recodificación. Además, la clave de transferencia t no emite información útil en las claves k y k', y una transferencia realizada según los métodos aquí expuestos no revelará el mensaje x. Estas propiedades hacen atractivo el método propuesto cuando la seguridad del mensaje x y las claves de decodificación k y k' son un problema durante una transferencia.
Una configuración de sistema típica capaz de realizar los métodos descritos con referencia a la figura 3 (y descritos con más detalle a continuación) se representa en la figura 4. Hay tres partes relevantes en la mayoría de las aplicaciones proxy encriptadas. Un encriptor 410, un donante A 412, y un donatario B 414. Como se reconocerá, el encriptado, desencriptado, y otras operaciones de procesado realizadas en la invención las facilita un procesador (416, 418, 420) bajo control de cada parte. Cada procesador está equipado con memoria (422, 424, 426) para almacenamiento de datos y una interface de comunicaciones (428, 430, 432), capaz de enviar y recibir mensajes.
Esquemas de encriptado proxy
El resto de la descripción, dirigido a esquemas de encriptado proxy más formales, en vez de esquemas de codificación, está organizado como sigue. En primer lugar, se describe un esquema de encriptado proxy genérico y caracteriza según varios criterios. Los varios párrafos siguientes fijan la notación expuesta que se usará en toda la descripción y reclamarán el esquema de encriptado de clave pública ElGamal. A efectos de comparación, esta descripción enumera después dos esquemas de encriptado proxy existentes y examina sus propiedades en comparación con la presente invención. A continuación se introducen detalles sobre los dos nuevos esquemas de encriptado proxy, junto con el análisis de su seguridad y rendimiento. Posteriormente se indican las aplicaciones de estos nuevos esquemas a distribución masiva de documentos y protección de archivos.
Como se indica en la introducción, el objetivo del encriptado proxy es delegar el derecho de desencriptado de uno a otro de formas seguras y eficientes. Para la explicación que sigue, es conveniente definir las funciones de partes que pueden estar implicadas en el encriptado proxy. Las dos funciones más importantes son las de donante y donatario. Un donante es un tenedor de clave original de mensajes encriptados que desea delegar el derecho de desencriptado a otro. Un donatario es un tenedor de clave designado para efectuar desencriptado por cuenta de un donante y así actuar como proxy de desencriptado del donante. En el ejemplo motivante de la introducción, Alice es el donante mientras que Bob es el donatario. Otras funciones pueden incluir un encriptor que es el que encripta originalmente mensajes para el donante, y un facilitador que puede ayudar a efectuar algunas tareas de procesado de mensajes, tal como transformar mensajes encriptados para el donante en mensajes encriptados para el donatario. Ciertamente, no es necesario que todas estas funciones sean desempeñadas por partes diferentes. Por ejemplo, una parte puede desempeñar funciones del donante y facilitador, como en los esquemas de Mambo y Okamoto explicados a continuación.
Con estas funciones en posición, un esquema de encriptado proxy es una descripción de cómo un donatario, posiblemente con algo de ayuda de un facilitador, delega en un donatario el derecho a desencriptar mensajes generados originalmente por un encriptor para el donatario. Un esquema de encriptado proxy puede constar de cuatro pasos genéricos: encriptado de mensajes, generación de claves proxy, transformación proxy y desencriptado de mensajes. Estos pasos se describirán con más detalle a continuación, con referencia a la figura 5.
1.
Encriptado de mensajes E: El encriptor genera un mensaje encriptado usando la clave de encriptado del donante y lo suministra al donante (paso 510).
2.
Generación proxy \pi: Para delegar el derecho de desencriptado al donatario, el donante genera una clave proxy \pi como una señal de compromiso que permite al donatario desencriptar el mensaje encriptado para el donante (paso 512).
3.
Transformación proxy \Pi: Cuando es necesario, el facilitador realiza una transformación proxy \Pi, usando posiblemente la clave proxy \pi, para convertir el mensaje encriptado para el donante en un mensaje encriptado para el donatario (paso 514).
4.
Desencriptado de mensajes D: Al recibir el mensaje transformado y posiblemente la clave proxy, el donatario descifra el mensaje (paso 516).
Por consiguiente, se debe observar que el esquema genérico anterior cubre las dos soluciones sencillas al encriptado proxy indicado en la introducción. El esquema de reencriptado es un caso especial donde el donante (Alice) también es el facilitador que descifra realmente el mensaje y después lo encripta para el donatario (Bob), y el proxy \pi se puede considerar como un conjunto de la clave de desencriptado del donante y la clave de encriptado del donatario, que es usada solamente por el donante y no por el donatario. El esquema de pasar la clave de desencriptado del donante al donatario es otro caso especial del esquema genérico, donde la clave proxy es la clave de desencriptado y la transformación proxy es la transformación de identidad.
Sin embargo, no todos los esquemas que se pueden derivar del genérico anterior se califican como esquemas de encriptado proxy. Intuitivamente, un esquema de encriptado proxy tiene que cumplir algunos requisitos básicos, a saber, delegación, seguridad, transitividad y rendimiento, como se describe más adelante.
Delegación. Para garantizar que, al final del paso de desencriptado de mensajes, el donatario es capaz de recuperar correctamente el original mensaje, la ecuación siguiente debe ser cierta para todo mensaje m:
D(\Pi(E(m, e_{A}), \pi), d_{B}, \pi) = m,
donde E(m,e) es una función de encriptado de mensaje m bajo la clave de encriptado e, D(c,d,\pi) es una función de desencriptado correspondiente de mensaje encriptado c bajo la clave de desencriptado d y posiblemente la clave proxy \pi, \Pi(c, \pi) es la función proxy que convierte el mensaje encriptado c según la clave proxy, y e_{A}, e_{B}, d_{A}, y d_{B} son las claves de encriptado y desencriptado del donante A y donatario B, respectivamente.
Además de la corrección anterior, la funcionalidad de la delegación deberá estar garantizada. En una forma, esto significa que, después de emitir la clave proxy y de terminar la transformación proxy, el paso de desencriptado de mensajes no requeriría información privada del donante, y deberá ser realizada solamente por el donatario. En otra forma, esto es equivalente a la indenegabilidad de la delegación del donante; es decir, una vez que se crea la clave proxy y se lleva a cabo transformación proxy, el donante no debería ser capaz de denegar la delegación, sin buscar otros medios tal como evitar que el donatario obtenga la clave proxy y reciba el mensaje transformado. Como consecuencia de esta funcionalidad, la clave de desencriptado del donante se puede destruir con la clave de desencriptado del donatario y posiblemente la clave proxy para mantener la capacidad de desencriptar el mensaje. (Esto es útil para la aplicación de protección de archivos más tarde en la Sección 6).
Seguridad. En esencia, un esquema de encriptado proxy también es un esquema de encriptado al menos desde el punto de vista del donatario. La introducción de claves y transformaciones proxy no debe poner en peligro la seguridad y la privacidad del encriptado. Así, deberá ser al menos computacionalmente difícil para cualquier tercera parte no autorizada recuperar el mensaje original y las claves de desencriptado del donante y donatario de la información públicamente disponible.
Además, la falsificación de claves proxy válidas por cualquier parte no de confianza deberá ser muy difícil. Debe ser claro, no obstante, que generar la clave proxy requiere conocimiento de al menos la clave de desencriptado del donante; de otro modo, el sistema de encriptado subyacente es no seguro.
Transitividad. Naturalmente, la relación proxy deberá ser transitiva. Después de que el donante delegue el derecho de desencriptado, el donatario deberá ser capaz de hacer que un nuevo donante delegue también el derecho a otro donatario, siguiendo el mismo esquema. Además, sería posible que alguien, por ejemplo el primer donante, delegue el derecho directamente a un nuevo donatario combinando todas las claves proxy intermedias en una clave proxy y componiendo todas las transformaciones proxy consecutivas en una transformación.
Rendimiento. Como el esquema de reencriptado es una solución intuitiva directa a encriptado proxy y cumple los requisitos anteriores de delegación, seguridad y transitividad, cualquier esquema de encriptado proxy prácticamente útil deberá tener degradación nula del rendimiento computacional en comparación con el esquema de reencrip-
tado.
Los esquemas de encriptado proxy pueden variar según sus requisitos de aplicación. Se pueden clasificar según muchos aspectos. Los obvios incluyen si se basan en clave pública o en clave privada, y si sus medidas de seguridad son perfectas en el sentido teórico de información o se basan en la insolubilidad de algunos problemas de cálculo. Los aspectos siguientes están relacionados con la clave y transformación proxy.
Confidencialidad. Aunque el secreto de los mensajes y las claves de desencriptado tiene que ser respetado, el secreto de las claves proxy y transformaciones proxy no puede ser un requisito obligatorio. Un esquema se denomina público si las claves proxy que genera pueden publicarse sin poner en peligro su seguridad y las transformaciones proxy aplicadas en entornos sin confianza; de otro modo, el esquema es privado. En un esquema privado, cuando una clave proxy es transferida del donante al facilitador y donatario, hay que tener cuidado de proteger la clave proxy contra la revelación. Como resultado, la transformación proxy que usa la clave proxy se debe realizar también en privado.
Conmutatividad. En términos de mensajes, el donatario debe tener la absoluta confianza del donante, puesto que el encriptado proxy por definición permite que el primero desencripte por cuenta de éste último. Sin embargo, el modelo de confianza puede ser diferente para su información privada. Un esquema de encriptado proxy es conmutativo si el donante y el donatario tienen que confiar entre sí con respecto a sus claves privadas; de otro modo, es no conmutativo. Un ejemplo conmutativo es que la clave proxy se crea de tal forma que el donante o el donatario puedan obtener la clave de desencriptado del otro. Siempre que éste sea el caso, el mecanismo de desencriptado se puede simplificar a un protocolo de intercambio de claves que permite al donatario utilizar la clave de desencriptado del donante para desencriptar directamente los mensajes encriptados.
Generalidad. En muchos casos, el donante desea restringir el alcance del derecho desencriptado delegado. Las restricciones previstas incluyen a menudo que la clave proxy solamente pueda ser utilizada por un donatario designado, que la clave proxy solamente pueda ser aplicable a un mensaje específico, o que la transformación proxy solamente pueda ser aplicada por un facilitador específico. Por ejemplo, cuando un esquema de encriptado proxy es utilizado en algunas aplicaciones como depósito de claves, lo ideal sería que las claves proxy fuesen independientes de los mensajes a los que se apliquen. Pero para delegación ocasional tal como especificar con seguridad la herencia en el testamento de una persona, puede ser altamente deseable que una clave proxy solamente pueda ser restringida a una parte designada (por ejemplo, un nieto), aplicable a un mensaje específico (por ejemplo, alguna porción del testamento) y utilizada posiblemente en la transformación proxy por una parte concreta (un abogado).
Degeneración. Cuando se utilice en la situación extrema en la que el donante y donatario sean la misma persona con una misma clave de desencriptado, un esquema de encriptado proxy deberá reducirse a un esquema de encriptado regular, sin introducir complicaciones (tal como claves y transformaciones proxy no triviales, y el requisito de un facilitador adicional).
Como se mostrará a continuación, los esquemas de Mambo y Okamoto son privados y no conmutativos. Las claves proxy en sus esquemas pueden ser independientes o dependientes del mensaje, pero no se limitan a donatarios designados. El esquema de Blaze y Strauss es lo contrario: es público pero conmutativo, y sus claves proxy son independientes del mensaje, pero únicamente están asociadas con donatarios designados. En comparación, los esquemas según la invención aquí expuestos son públicos y no conmutativos, y sus claves proxy son dependientes del mensaje y se restringen a donatarios designados.
Encriptado proxy utilizando el criptosistema ElGamal
Dado que los esquemas de encriptado proxy explicados a continuación en esta descripción se basarán en logaritmos discretos en grupos multiplicativos, se adopta aquí un posicionamiento formal que es común a todos estos esquemas de encriptado. La notación aquí usada recuerda el esquema de encriptado de ElGamal. Los esquemas de encriptado basados en logaritmos discretos son especialmente ventajosos a causa de sus ventajas técnicas sobre esquemas tipo RSA y sus generalizaciones naturales a muchos grupos finitos tal como grupos de curvas elípticas sobre campos finitos.
Como se expone anteriormente, para cualquier número natural n, denote Z_{n}=[0,1,...,n-1) el anillo de enteros módulo n, y denote Z^{\text{*}}_{n}=(m \in Z_{n} | gcd(m,n)=1) el grupo multiplicativo de Z_{11}. Obsérvese que, cuando n es un primo, Z^{\text{*}}_{n}=(1,...n-1). Para un módulo n y un número a que es relativamente primo a n, denote a^{-1} la inversa multiplicativa de un módulo n; es decir, a^{-1} es el elemento que cumple aa^{-1}\equiv1(mod n).
Se dice que un elemento a de Z^{\text{*}}_{p} es del orden m si el número de sus potencias módulo n es m. Un generador g de Z^{\text{*}}_{n}, si existe, es un elemento de orden | Z^{\text{*}}_{n} | (el tamaño de Z^{\text{*}}_{n}); en este caso, Z^{\text{*}}_{n} es un grupo cíclico. Cuando n es un primo, cada elemento de Z^{\text{*}}_{n} a excepción de 1, es un generador de Z^{\text{*}}_{n}).
Sea Z^{\text{*}}_{n} un grupo cíclico con un generador g. El logaritmo discreto de un elemento x a la base g, denotado como log_{g} x, es el único entero a, 0\leqa\leqn-1, de tal manera que x= g^{a}(mod n). El problema del logaritmo discreto es, dado un primo p, un generador g de Z^{\text{*}}_{n}, y un elemento x \in Z^{\text{*}}_{p}, hallar el entero a, 0\leqa\leqp-2, de tal manera que g^{a}\equivx(mod p).
Un problema muy estrechamente relacionado es el problema de Diffie-Hellman: dado un primo p, un generador g de Z^{\text{*}}_{p}, y elementos g^{a}(mod p) y g^{b}(mod p), hallar g^{ab}(mod p). El problema del logaritmo discreto es al menos tan difícil como el problema de Diffie-Hellman porque cualquier solución al primer problema se puede usar para resolver éste último problema.
El esquema de encriptado de ElGamal representado en la figura 6 es una parte de un criptosistema de clave pública basado en logaritmo discreto propuesto por ElGamal tanto para encriptado como para firma digital. Véase T. ElGamal, "A public key cryptosystem and a signance scheme based on discrete logarithm", IEEE Trans. on Information Theory, Vol. 31, páginas 465-472 (1985).
Con referencia ahora a la figura 6 con detalle, el esquema El Gamal se establece (paso 610) estableciendo dos parámetros públicos p y g, donde p es un primo (típicamente de 512 bits de longitud), de tal manera que p-1 tenga un factor primero grande (típicamente 160 bits) q (por ejemplo, p=2q+1) y g es un generador en Z^{\text{*}}_{p}. Una clave privada para un usuario se establece (paso 612) eligiendo uniformemente un número aleatorio a \in Z^{\text{*}}_{p-1}. Su clave pública relacionada se calcula (paso 614) como a=g^{a}(mod p). El usuario publica a y mantiene a secreta.
Para encriptar un mensaje m a enviar al usuario A con clave pública a, se elige uniformemente (paso 616) un número aleatorio k \in Z^{\text{*}}_{p-1}, y se calcula (paso 618) un par de números (r,s), que representan conjuntamente el mensaje encriptado a enviar a A, como sigue:
r=g^{k} \ (mod \ p)
\hskip0.5cm
y
\hskip0.5cm
s = m\alpha^{k} \ (mod \ p).
Para desencriptar el mensaje (r,s), el receptor A recupera el mensaje m (paso 620) calculando
m = s(r^{a})^{-1} \ (mod \ p).
Obsérvese que la selección de los parámetros públicos tiene la finalidad de establecer la ecuación g^{p-1} (mod p)\equiv1 (pequeño teorema de Fermat). Estos parámetros deberán ser conocidos de forma auténtica por todos los usuarios. Se pueden elegir, por ejemplo, por alguna autoridad de confianza. Además, la forma en que se elige la clave privada a garantiza que exista la inversa a^{-1} de un módulo p-1 y sea única.
A diferencia del esquema de encriptado de clave pública RSA, el esquema ElGamal es no determinista, puesto que el mensaje encriptado también depende del número aleatorio k. En efecto, es de naturaleza similar al protocolo de intercambio de clave Diffie-Hellman; la clave establecida entre el emisor y el receptor para encriptar y desencriptar el mensaje m es g^{ak} (mod p) de r= g^{k} (mod p) (parte del mensaje encriptado) y a=g^{a} (mod p) (la clave pública de A). No obstante, la seguridad del esquema de encriptado de ElGamal se basa en la insolubilidad del problema del logaritmo discreto y el problema de Diffie-Hellman. Hasta la fecha, la práctica al buscar algoritmos óptimos para el problema del logaritmo discreto no ha hallado ninguna solución eficiente (tiempo polinómico). Es similar a la situación para el problema de factorización de enteros en el que se basa la seguridad del esquema RSA. Además, también se ha mostrado que, para algunos primos p, resolver el problema del logaritmo discreto es al menos tan difícil como resolver el problema de factorización de un mismo tamaño. Esto implica que para dichos ps, el esquema ElGamal es al menos tan seguro como el esquema RSA.
Muy recientemente se han propuesto varios esquemas de encriptado proxy. Todos estos esquemas siguen el esquema genérico de encriptado proxy al delegar el derecho de desencriptado: el encriptor envía un mensaje encriptado al donante A, quien después delega el derecho de desencriptado en el donatario B creando la clave proxy, y después de terminar la transformación proxy, el donatario B descifra finalmente el mensaje. A continuación se presentan dos esquemas de encriptado proxy representativos y conocidos: un de Mambo y Okamoto y el otro de Blaze y Strauss, que son variaciones en el esquema ElGamal. Dado que tienen la misma estructura de esquema que el esquema ElGamal, la estructura (véanse los pasos 610-614 de la figura 6 anterior) se omite de la presentación.
Mambo y Okamoto han propuesto tres esquemas de encriptado proxy: dos se basan en el esquema ElGamal y el otro se basa en el esquema RSA. El representado en la figura 6 y descrito más adelante se basa en ElGamal y comparte sus características básicas con los otros dos esquemas.
Con referencia ahora a la figura 7, dado un mensaje m que tiene que ser enviado a un donante A con clave pública a, el mensaje m se cifra eligiendo uniformemente un número aleatorio k \in Z^{\text{*}}_{P-1} (paso 710) y calculando un par de números (r,s) que representa el mensaje encriptado (paso 712) como sigue:
r=g^{k} \ (mod \ p)
\hskip0.5cm
y
\hskip0.5cm
s = m\alpha^{k} \ (mod \ p)
Para delegar el derecho de desencriptado a un donatario B, el donante A crea una clave proxy \pi eligiendo uniformemente un número aleatorio a'\in Z^{\text{*}}_{p-1}, (paso 714) y calculando \pi=aa'(mod(p-1)) (paso 716). Después, A suministra la clave proxy \pi a B (paso 718) de forma segura (por ejemplo, encriptándola con la clave pública de B) y mantiene privado el valor de a'.
Para permitir a B desencriptar el mensaje, A calcula r'=r^{a'-1} (mod p), donde a^{r-1} es la inversa multiplicativa de a' módulo p-1 (paso 720). El par (r', s) es el mensaje encriptado transformado a enviar a B.
Al recibir el mensaje transformado (r', s) y la clave proxy \pi, B descifra el mensaje m (paso 722) calculando m=s(r'^{R})^{-1} (mod p).
Este esquema de encriptado proxy usa los componentes de encriptado y desencriptado del esquema ElGamal, a excepción de que la clave privada de B se sustituye por la clave proxy \pi. Es correcto porque, al utilizar \pi para desencriptar el mensaje transformado (r', s), es válido lo siguiente:
102
La seguridad de este esquema se evalúa en dos aspectos. La complejidad para que alguna persona, incluyendo el donatario B, descubra la clave privada a del donante A en base a toda la información disponible, es la misma que para resolver el problema del logaritmo discreto. La dificultad de que alguna persona, incluso con la clave proxy, se haga pasar por A para transformar el mensaje encriptado (es decir, para generar (r; s)) es la misma que para resolver el problema de Diffie-Hellman.
Este esquema tiene varias características muy atractivas. Primera: su seguridad implica que es difícil que B recupere la clave privada de A. En este sentido, no es necesario que A confíe en B, y por lo tanto el esquema es no conmutativo. Segunda: la clave proxy generada es independiente del mensaje. B puede utilizarla para desencriptar todos los mensajes transformados por A. Tercera: este esquema cumple el requisito de transitividad. Al recibir tanto la clave proxy como el mensaje transformado (r; s), el usuario delegado B puede delegar también el proxy en otro usuario C, tratando \pi como la clave privada a y (r', s) como (r, s) y repitiendo la generación y transformación proxy. Cuarta: el esquema requiere menos esfuerzos de cálculo que el esquema de reencriptado.
Sin embargo, la implementación del encriptado proxy según este esquema tiene varios inconvenientes. Primero: la clave proxy no contiene información acerca del donatario delegado B; solamente se deriva de la clave privada del donante A. Además, el mensaje desencriptado realizado por B no necesita la clave de desencriptado privada de B. En consecuencia, el mensaje lo puede recuperar cualquier persona que tenga la clave proxy y el mensaje encriptado, no necesariamente B. Así, B puede pedir a cualquier persona que desencripte el mensaje pasando directamente la información proxy. En muchos casos, esto no es deseable; A debería ser capaz de especificar el tenedor de clave que haya de actuar en nombre de A.
Segundo: la clave proxy \pi tiene que ser un secreto entre A y B y se debe transmitir de A a B de forma segura. Como resultado de que \pi no contiene información de B y (r; s) está posiblemente en comunicación en público, revelar \pi es esencialmente igual a revelar el mensaje.
Tercero: la transformación proxy tiene que ser realizada por A. El valor a' utilizado en la transformación es un secreto para A y es vital para evitar que B conozca la clave de desencriptado a de A.
En resumen, el esquema es no conmutativo e independiente del mensaje, sino privado e incapaz de especificar el donatario designado.
Blaze y Strauss han descrito otro esquema de encriptado proxy de clave pública. Como se puede ver en la figura 8, el esquema es de estructura similar al encriptado ElGamal, pero con los parámetros utilizados de forma diferente y la inversa del secreto usada para recuperar el mensaje.
Pasando ahora a la figura 8 con más detalle, dado un mensaje m que tiene que ser enviado a un donante A con clave pública a, el mensaje m se encripta eligiendo uniformemente un número aleatorio k \in Z^{\text{*}}_{p-1} (paso 810) y calculando un par de números (r, s) que representan el mensaje encriptado (paso 812) como sigue:
r = mg^{k} \ (mod \ p)
\hskip0.5cm
y
\hskip0.5cm
s = \alpha^{k} \ (mod \ p).
Para delegar el derecho de desencriptado a un donatario B, el donante A crea una clave proxy obteniendo la clave de desencriptado privada b de B (paso 814) y calculando n=a^{-1}b(mod(p-1)) (paso 816), donde a^{-1} es la inversa de la clave privada a de A módulo p-1. La clave proxy se puede hacer pública.
Para utilizar la clave proxy \pi para convertir un mensaje (r, s) encriptado para A en un mensaje encriptado para B, el facilitador (no necesariamente A, puesto que la clave proxy es pública) calcula s'= s^{\pi} (mod p) (paso 818). El par (r, s') representa el mensaje transformado encriptado, que después puede ser transmitido a B.
Para desencriptar el mensaje transformado, B calcula m=r(s'^{b-l})^{-1} (mod p) (paso 820), donde b es la clave privada de B y b^{-1} es la inversa de b módulo p-1.
El esquema es correcto, puesto que en el mensaje desencriptado
s'{}^{b-1} = g^{k} \ (mod \ p)
\hskip0.5cm
y
\hskip0.5cm
m = r(g^{k})^{-1} \ (mod \ p).
El esquema es seguro porque el mensaje m y claves secretas a y b no se pueden recuperar de los mensajes encriptados y las claves públicas. Además, publicar la clave proxy no pone en peligro ni el mensaje m ni las claves secretas a y b. Más exactamente, el problema de recuperar m de la información pública (a, \beta, r, s, \pi, s') es tan difícil como el problema de Diffie-Hellman.
En contraposición al esquema anterior, la última característica de seguridad hace innecesario mantener privada la clave proxy \pi. Así, el donante A puede enviar públicamente a quien (facilitador) haya de efectuar la transformación proxy, o puede simplemente publicarla. Además, el esquema no requiere ningún secreto de A para llevar a cabo la transformación proxy, y en consecuencia permite que cualquiera, de confianza o no, efectúe la transformación y por lo tanto elimina la necesidad de la presencia tanto de A como de B en la transformación.
También a diferencia del esquema anterior, no hay diferencia para el usuario B entre desencriptar un mensaje encriptado regular y desencriptar un mensaje transformado proxy. Esta característica elegante permite al usuario B tratar uniformemente todos los mensajes encriptados entrantes. De hecho, es posible que un facilitador o servidor no de confianza realice la transformación proxy y después envíe el mensaje al usuario B.
A pesar de estas características deseables, este esquema es conmutativo; los tenedores de clave implicados A y B deben confiar uno en otro bilateralmente. B puede aprender la clave secreta a de A (multiplicando la clave proxy por b^{-1}). Además, la clave proxy también es independiente del mensaje, como en el esquema anterior, que delega en B el derecho a desencriptar todos los mensajes encriptados para la clave privada a de A. Por consiguiente, este esquema es público e independiente del mensaje, pero conmutativo.
Se presentan aquí dos esquemas de encriptado proxy según la invención, y después se analizan con respecto a su seguridad, conmutatividad y rendimiento. Como el esquema proxy privado, son no conmutativos, y al mismo tiempo, soportan claves y transformaciones proxy públicas de la forma en que lo hace el esquema proxy conmutativo. Sin embargo, difieren de los esquemas privados y conmutativos en que son dependientes del mensaje. Además, su rendimiento general es mejor que el esquema de reencriptado basado en ElGamal.
\newpage
De nuevo, estos esquemas comparten el mismo esquema semp del esquema ElGamal, y suponen que un donante A delega el derecho de desencriptado en un donatario B.
Para entender cómo adaptar el esquema El Gamal a un esquema de encriptado proxy, es útil examinar algunos detalles del esquema ElGamal. Se deberá observar que el componente r del mensaje encriptado m es independiente de la clave privada a del receptor A y la clave pública a. Dado que s=ma^{k} (mod p)=mg^{ko} (mod p), a solamente se utiliza en el componente s, y a está embebido implícitamente en exponente de s. Así, es suficiente que la transformación proxy convierta el mensaje encriptado para A en el mensaje encriptado para B quitando la clave privada a de A de s y sustituyéndola por la clave privada b de B. Para evitar que B obtenga la clave privada a de A, la función para generar la clave proxy debe ser en cierto modo "unidireccional". De hecho, esto se puede lograr con ayuda del número aleatorio k como sigue:
\pi = g^{k(b-a)} \ (mod \ p).
Consiguientemente, la transformación proxy que completa la conversión del mensaje deberá asemejarse a lo siguiente:
s' = s\pi \ (mod \ p) = mg^{ka} \ g^{k(b-a)} \ (mod \ p) = mg^{kb} \ (mod \ p).
La explicación anterior conduce al esquema de la figura 9. Resulta que la clave y transformación proxy cumplen el requisito de seguridad y proporcionan las características deseadas de no ser públicas y de no conmutatividad.
Con referencia ahora a la figura 9, dado un mensaje m que tiene que ser enviado a un donante A con clave pública a, el mensaje m se encripta eligiendo uniformemente un número aleatorio k \in Z^{\text{*}}_{p-1} (paso 910) y calculando un par de números (r, s) que representan el mensaje encriptado (paso 912) como sigue:
r = g^{k} \ (mod \ p)
\hskip0.5cm
y
\hskip0.5cm
s = m\alpha^{k} \ (mod \ p)
Para delegar el derecho de desencriptado a un donatario B, el donante A crea una clave proxy obteniendo la clave de desencriptado b auténtica de B (paso 914) y calculando \pi=r^{b-a} (mod p) (paso 916).
El mensaje se transforma de (r, s) a (r, s') calculando s'=s\pi(mod p) (paso 918). El mensaje m es desencriptado posteriormente por B a partir de (r, s') calculando m=s'(r^{b})^{-1} (mod p) (paso 920).
Claramente, este esquema usa los pasos de encriptado y desencriptado del mensaje del esquema ElGamal. Es correcto puesto que el mensaje m se puede recuperar de
s'(r^{b})^{-1} \ (mod \ p) = s\pi(r^{b})^{-1} \ (mod \ p) = mg^{ak} \ g^{k(b-a)}(g^{kb})^{-1} \ (mod \ p) = m.
Una bonita característica de este esquema es que, no sólo los mensajes encriptados regulares y proxy no aparecen diferentes para el donatario B, sino que también el esquema coincide con el esquema ElGamal cuando A y B son el mismo usuario con la misma clave; en este caso, el valor proxy es igual a 1 y la transformación proxy es la transformación de identidad.
Es fácil ver que el esquema es transitivo. Al recibir el mensaje transformado proxy, el donatario B puede actuar como el donante A para delegar también el derecho de desencriptado, por ejemplo, en otro donatario C repitiendo el paso de generación proxy con las claves b y c en lugar de a y b.
También como el esquema conmutativo, el paso de generación proxy requiere las claves privadas de A y B para generar la clave proxy \pi. Como alternativa, este paso se puede llevar a cabo por cualquiera que tenga la confianza de A y B. Como se ha indicado anteriormente, la clave privada de A es claramente necesaria, porque de otro modo cualquiera puede emitir una clave proxy para recuperar el mensaje y el esquema de encriptado subyacente no es seguro. Para establecer y comunicar la clave privada b de B, se puede usar muchos protocolos de intercambio de claves tal como el intercambio de claves de Diffie-Hellman. Como se representa con más detalle a continuación, en algunas aplicaciones prácticas el requisito de la clave b no es un problema o se puede relajar.
Pero a diferencia de los esquemas privados y conmutativos, este esquema no facilita que el donatario B desencripte mensajes encriptados para una persona distinta del destinatario. Claramente, la clave proxy contiene un elemento de información que es específico para el mensaje encriptado m, a saber, el número aleatorio k. En este sentido, el esquema proxy es dependiente del mensaje. Además, el esquema es no conmutativo en el sentido de que es difícil que B recupere la clave privada a de A. Este hecho, junto con el rendimiento del esquema, se establecerá después de presentar el esquema siguiente.
\newpage
Obsérvese que, en el esquema anterior, la transformación proxy solamente cambia el componente s del mensaje encriptado. Dado que s es la parte que lleva realmente la información acerca del mensaje m, el esquema no puede ser eficiente cuando m es un mensaje muy largo. Por ejemplo, la clave proxy generada sería tan larga como el mensaje y el esfuerzo empleado en la transformación proxy sería lineal con respecto a la longitud de todo el mensaje.
El esquema presentado en la figura 10 tiende a mejorar esta situación. Usa el paso de encriptado de mensaje del esquema conmutativo en el que el mensaje m se desplaza de s a r. Su clave y transformación proxy no tienen ahora dependencia directa del mensaje m.
Como se representa en la figura 10, dado un mensaje m que tiene que ser enviado a un donante A con clave pública a, el mensaje m se encripta eligiendo uniformemente un número aleatorio k \in Z^{\text{*}}_{p-1}, (paso 1010) y calculando un par de números (r, s) que representan el mensaje encriptado (paso 1012) como sigue:
r = mg^{k} \ (mod \ p)
\hskip0.5cm
y
\hskip0.5cm
s = \alpha^{k} \ (mod \ p).
Para delegar el derecho de desencriptado a un donatario B, el donante A crea una clave proxy \pi obteniendo la clave de desencriptado b auténtica de B (paso 1014) y calculando \pi=(s^{u-1}) (mod p) (paso 1016), donde a^{-1} es la inversa de un módulo p-1.
El mensaje se transforma de (r, s) a (r, s') calculando s'=s\pi(mod p) (paso 1018). El mensaje m es desencriptado después por B a partir de (r, s) calculando m= r(s'^{b-1})^{-1} (mod p) (paso 1020), donde b^{-1} es la inversa de b módulo p-1.
Este esquema es correcto puesto que
r(s'{}^{b^{-1}})^{-1} \ (mod \ p) = r ((s\pi)^{b^{-1}})^{-1} \ (mod \ p)
\quad
= r((s(s^{a^{-1}})^{b-a})^{b^{-1}})^{-1} \ (mod \ p)
\quad
= r((g^{ka} g^{k(b-a)})^{b^{-1}})^{-1} \ (mod \ p)
\quad
= r((g^{kb})^{b^{-1}})^{-1} \ (mod \ p)
\quad
= mg^{k}(g^{k})^{-1} \ (mod \ p)
\quad
= m
Otras propiedades de este esquema se pueden verificar de la misma manera que el esquema anterior.
Debido a su naturaleza similar, solamente se analiza en esta sección el primero de los dos nuevos esquemas con respecto a su seguridad y no conmutatividad. Se puede dar una explicación casi idéntica para el segundo esquema. Además, aunque el primer esquema (así como el segundo esquema) es transitivo y su seguridad puede implicar más de dos tenedores de clave, el análisis a ofrecer solamente considera el caso del tenedor de dos claves; el caso general también es similar. Para claridad de la presentación, la expresión "(mod p)" se omitirá en esta subsección; su aparición deberá ser clara por el contexto.
Recuérdese que, a diferencia de los parámetros de esquema (p, g), la información pública que se puede adquirir del esquema incluye
\alpha = g^{a},
\hskip0.3cm
\beta = g^{b},
\hskip0.3cm
r = g^{k},
\hskip0.3cm
s = mg^{ak},
\hskip0.3cm
\pi = g^{k(b-a)},
\hskip0.3cm
s' = mg^{bk}.
Por las razones expuestas a continuación, el esquema es computacionalmente seguro. Es difícil recuperar el mensaje m y las claves secretas a y b de la información pública, a condición de que los problemas de logaritmo discreto y de Diffie-Hellman sean difíciles de resolver. Dado que la clave proxy es parte de la información pública, esto implica que publicarla no pone en peligro ni el mensaje ni las claves secretas. Una consecuencia de esto es que también es difícil que alguien falsifique una clave proxy válida de manera sistemática. Además, el esquema se muestra como no conmutativo en el sentido de que incluso con la clave privada de B, todavía es difícil recuperar la clave privada de A. Si la clave proxy es generada en efecto por una tercera parte de la confianza de A y B, este hecho implica que no es necesario que B confíe en A. Ésta es una mejora considerable sobre el esquema conmutativo.
Además, como se ha indicado anteriormente, los esquemas de encriptado proxy de la invención son más eficientes que reencriptar un mensaje. A continuación, en la Tabla 2, el rendimiento de los dos esquemas de encriptado proxy según la invención descritos en la presente memoria se compara con el esquema de reencriptado usando el algoritmo ElGamal, en términos de la cantidad de cálculo que requieren. En la Tabla 2, los números de operaciones de multiplicación, operaciones de exponenciación, e inversiones, todas realizadas módulo p, se enumeran para estos esquemas.
TABLA 2
Operaciones Reencriptado Primer esquema (fig. 9) Segundo esquema (Fig. 10)
mult. exp. inv. mult. exp. inv. mult. exp. inv.
Encriptado 1(x2) 2(x2) 0(x2) 1 2 0 1 2 0
Gen. clave proxy 0 1 0 0/1 2/1 1/0
Transformación 1 0 0 1 0 0
Desencriptado 1(x2) 1(x2) 1(x2) 1 1 1 1 1 2/1
Total 4 6 2 3 4 1 3/4 5/4 3/1
\vskip1.000000\baselineskip
Obsérvese que el número total de operaciones para reencriptado usando el esquema ElGamal es el doble del número de operaciones para un solo encriptado y desencriptado ElGamal, puesto que el mensaje debe ser encriptado en primer lugar, posteriormente desencriptado, después re-encriptado, y más tarde re-desencriptado. Además, el cálculo en el segundo esquema se puede optimizar (i) precalculando las inversas a^{-1} y b^{-1} en el paso de establecimiento del esquema y (ii) multiplicando los dos componentes exponenciales (modulo (p-1)) en el paso de generación proxy en lugar de usar dos exponenciaciones. El segundo conjunto de números bajo el segundo esquema resulta de esta optimización. En general, los esquemas de encriptado proxy de la invención aquí presentados tienen mejor rendimiento que el simple esquema de reencriptado basado en ElGamal.
Aplicaciones
Los esquemas de encriptado proxy públicos y no conmutativos proporcionan un mecanismo clave para implementar una amplia gama de aplicaciones. La distribución masiva de documentos y la protección de archivos son dos motivaciones clave para esta descripción. Estas aplicaciones corresponden a dos situaciones típicas para encriptado proxy. La primera se refiere al caso en el que el donante es quien encripta el mensaje en primer lugar, mientras que la segunda es una autodelegación en la que el donante y el donatario son el mismo tenedor de clave, pero con claves diferentes.
Obsérvese de nuevo que un documento se refiere a cualquier archivo digital cuyo contenido podría texto, gráficos, audio, vídeo, ejecutable o incluso multimedia. Generalmente, un documento es de gran tamaño, incluso después de la compresión. Dado que los algoritmos de clave pública tienden a ser muy lentos en comparación con los algoritmos de clave privada convencionales tal como DES, IDEA y RC4, y los algoritmos de clave privada requieren establecer claves secretas para empezar, el acercamiento más práctico a las distribución masiva y segura de documentos por redes es combinar los mecanismos de encriptado de clave privada y clave pública. Típicamente, se utiliza un algoritmo de clave privada eficiente para encriptar el documento utilizando una clave generada aleatoriamente, llamada la clave de sesión, y la clave pública para cada documento receptor se utiliza para encriptar esta clave de sesión. Los receptores usan sus claves privadas para recuperar la clave de sesión secreta y después usarla para desencriptar el
documento.
En efecto, el acercamiento anterior de distribución de documentos tiene el aroma del encriptado proxy; el propietario encripta el documento en primer lugar usando un esquema de clave privada y después otorga el derecho de desencriptado, a petición, a sus receptores mediante un esquema de clave pública. Resulta que se puede usar uno de los dos nuevos esquemas de encriptado proxy para combinar las mejores características del acercamiento en un solo esquema de encriptado normal.
Tómese como el ejemplo el segundo esquema expuesto anteriormente (figura 10). Se hacen dos observaciones. Primera: el componente r del mensaje encriptado se puede generar usando cualquier esquema de encriptado de clave privada con K=g^{k} (mod p) como la clave de sesión secreta. Por consiguiente, el mensaje m se puede recuperar en el paso de desencriptado de mensajes por su correspondiente desencriptado de clave privada usando la clave de sesión secreta K'=s'^{b-1}(mod p)=K. De hecho, el esquema de encriptado de clave secreta utilizado en el esquema es r=E_{k} (m)=mK(mod p) para encriptado y m=D_{k},(r)=rK'^{-1} (mod p) para desencriptado. Otro ejemplo simple es el esquema de encriptado en base a XOR a nivel de bits (\varoplus). En este caso, el cálculo de r y m se puede sustituir por
r = E_{k}(m) = m\varoplus K
\hskip0.5cm
y
\hskip0.5cm
m = D_{k}(r) = r\varoplus K.
Ciertamente, se puede emplear esquemas de encriptado de clave privada más sofisticados tales como DES y triple-DES si se necesita mayor seguridad.
La segunda observación es que si el donante A es quien encripta el mensaje m, A puede mantener privado el número aleatorio k y usar la clave pública de B \beta=g^{b} (mod p), en lugar de la clave privada b de B, para generar la clave proxy:
\pi = (\beta\alpha^{-1})^{k} \ (mod \ p),
donde a es la clave pública de A. Esto elimina el requisito de la clave privada b de B (o intercambio de claves A y B), e implica que B no tiene que confiar en A.
Estas dos observaciones conducen al esquema de distribución de documentos representado en la figura 11, que se basa en el segundo esquema de encriptado proxy según la invención expuesto anteriormente (y en conexión con la figura 10). En el esquema se utiliza un esquema de encriptado de clave privada para encriptar el mensaje justamente una vez para todos los receptores, mientras que se utiliza una porción de clave proxy menos oportuna para encriptar una cantidad pequeña de información, la clave de sesión, personalizada una vez para cada receptor. Una característica beneficiosa de este esquema es que el documento encriptado se puede almacenar en depósito de acceso público, y la transformación proxy la puede realizar el propietario del documento A, el receptor B, o el depósito donde el documento está almacenado físicamente, dependiendo de las necesidades de sistemas reales de distribución y gestión de documentos.
Con referencia ahora a la figura 11, el esquema se establece de la misma forma que un esquema ElGamal estándar (véase la figura 6, descrita anteriormente). Además, se selecciona (paso 1110) un esquema simétrico de encriptado de clave privada. Su función de encriptado es m \rightarrow E_{K}(m) y la función de desencriptado es r \rightarrow D_{k}(r), donde K es alguna clave privada.
Para encriptar un documento m, el propietario A elige primero un número uniformemente aleatorio k \in Z^{\text{*}}_{p-1} (paso 1112) y calcula una clave de sesión K=g^{k}(mod p) (paso 1114). El documento encriptado (r, s) se calcula después como sigue:
r = E_{K}(m)
\hskip0.5cm
y
\hskip0.5cm
s = K^{a} \ (mod \ p)
(paso 1116), donde a es la clave privada de A. A mantiene privado el par (s, k).
A la petición de un receptor B del documento encriptado (r, s), A obtiene primero la clave pública auténtica \beta de B (paso 1118) y recupera k del par (s, k) (paso 1120). A calcula después \pi_{B}=\beta^{k}s^{-1} (mod p) (paso 1122), donde s^{-1} es la inversa de s módulo p, como la clave proxy para B.
El documento es transformado posteriormente calculando s'=s\pi_{B} (mod p) (paso 1124); el par (r, s) representa el documento transformado personalizado para B.
Para desencriptar el documento personalizado (r, s') y recuperar el documento original m, B recupera primero la clave de sesión calculando K=s^{b-1} (mod p) (paso 1126), donde b^{-1} es la inversa de b módulo p-1. Después el documento propiamente dicho es desencriptado calculando m=D_{k} (r) (paso 1128).
Como se ha descrito anteriormente, una adaptación de la presente invención también es aplicable a una aplicación de protección de archivos. Generalmente, la protección de archivos en sistemas inseguros tal como ordenadores portátiles y hardware en red implica encriptado de archivos a largo plazo. Así, las claves de encriptado usadas para encriptado de archivos tienen duraciones mucho más largas que sus contrapartidas de comunicación. Aunque la clave secreta, a largo plazo, primaria, de un usuario puede ser la representación fundamental de una identidad de red del usuario, hay peligro de que pueda estar en peligro si se utiliza para muchos archivos a lo largo de un período largo de tiempo. Si la clave primaria se pierde o es robada, no sólo se revela el contenido de los archivos encriptados con ella, sino que el usuario pierde también información personal basada en la clave tal como cuenta de tarjeta de crédito, el número de seguridad social, etc. Por lo tanto, con frecuencia es preferible utilizar un método en línea en el que se deriva una nueva clave de desencriptado de la clave primaria cada vez que un archivo ha de ser encriptado y actualizado regularmente.
Con los esquemas de encriptado proxy aquí expuestos, se puede generar nuevas claves de desencriptado y actualizar constantemente mediante autodelegación para mantenerlas frescas. Una vez que se crea una clave nueva y se genera una clave proxy correspondiente, se puede destruir la clave secreta antigua, conservando la nueva clave y clave proxy la capacidad de desencriptar el archivo.
La figura 12 muestra un esquema de protección de archivos que utiliza una tarjeta inteligente para almacenar y actualizar claves de desencriptado. De nuevo se basa en el segundo esquema de encriptado proxy aquí presentado, como se ilustra en la figura 10.
Como se representa en la figura 12, para encriptar un archivo m, un procesador embebido en una tarjeta inteligente elige un número aleatorio k \in Z^{\text{*}}_{p-1} (paso 1210) y calcula
r = mg^{k} \ (mod \ p)
\hskip0.5cm
y
\hskip0.5cm
s = (g^{k})^{a} \ (mod \ p)
(paso 1212), donde a es la clave privada de la tarjeta inteligente. El par (r, s) representa el archivo m en forma encriptada.
Siempre que sea necesario o se desee, por ejemplo, cada pocas semanas o después de un número predeterminado de accesos a documentos, la tarjeta inteligente genera otro número aleatorio uniforme a' \in Z^{\text{*}}_{p-1} (paso 1214) y calcula s'=(s^{a-1})a' (mod p) (paso 1216), donde a^{-1} es la inversa multiplicativa de un módulo p-1. El archivo encriptado
(r, s) es sustituido después por (r, s') (paso 1218), y la clave de desencriptado a es sustituida por una nueva clave de desencriptado a' (paso 1220). Estos pasos 1214-1220 se pueden repetir tantas veces como se desee.
Para recuperar el archivo original m de su versión encriptada (r, s), el procesador de la tarjeta inteligente usa la última clave de desencriptado a para calcular m=rs^{-1} (mod p) (paso 1222).
Obsérvese que el paso de encriptado de archivo se puede iniciar con cualquier clave secreta que genere, no necesariamente la clave privada de la tarjeta inteligente.
Mantener frescos los archivos encriptados actualizando datos encriptados con un elemento de información generada por tarjeta inteligente contribuye a mantener copias únicas útiles de archivos protegidos. Esto, en cierto sentido, también proporciona protección contra copia. Además, la no conmutatividad del esquema hace inútil la copia previa de los archivos, puesto que la información secreta correspondiente almacenada en la tarjeta inteligente ha sido cambiada (y preferiblemente destruida).
Encriptado proxy utilizando el criptosistema Cramer-Shoup
Aunque todos los ejemplos y algoritmos anteriores emplean varias adaptaciones del criptosistema ElGamal, se deberá observar que otros criptosistemas también pueden ser adaptados por un esquema según la invención.
Por ejemplo, el criptosistema de clave pública de Cramer-Shoup es un criptosistema propuesto recientemente que es el primer sistema de clave pública práctico que es inmune de forma demostrable al ataque de texto cifrado adaptativo elegido. Véase R. Cramer y V. Shoup, "A Practical Public Key Cryptosystem Provably Secure against Adaptive Chosen Ciphertext Attack", Proceedings of CRYPTO 98, Springer Verlag LNCS, vol. 1462, páginas 13-25 (1998). El ataque de texto cifrado adaptativo elegido asume que el atacante puede obtener desencriptados de cualesquiera textos cifrados elegidos distintos del texto cifrado deseado. Por ejemplo, si el texto cifrado deseado para el que se desea el texto común es c, se supone que el atacante tiene que acceder a un "oráculo de desencriptado" que desencriptará cualquier texto cifrado a excepción de c, incluyendo por ejemplo c+1, 4c, etc. RSA y ElGamal caen fácilmente en este tipo de ataque. Un concepto de seguridad diferente, pero equivalente, contra ataques activos se denomina no maleabilidad; sin embargo, los sistemas no maleables conocidos no son prácticos.
A continuación se expone en la figura 13 una descripción de una versión sin hash del criptosistema Cramer-Shoup, cuya seguridad se basa estrictamente en el problema de decisión de Diffie-Hellman para un grupo arbitrario. Cómo delegar el derecho a desencriptar en un esquema de Cramer-Shoup se ilustrará a continuación en dos situaciones diferentes.
Con referencia inicialmente a la figura 13, el sistema se establece eligiendo G como un grupo de orden primo q, donde q es grande (paso 1310). El sistema asume que los mensajes de texto claro son (o se pueden codificar como) elementos de G, y los mensajes de texto cifrado son elementos de G^{4}=GxGxGxG; es decir, un mensaje en texto cifrado es cuatro veces más largo que su mensaje en texto común correspondiente.
Un buen ejemplo del grupo G es el subgrupo de orden q en el conjunto multiplicativo Z^{\text{*}}_{p} para algún primo grande p=2q+1. En este caso, un mensaje m del conjunto {1,...,q} puede ser "codificado" elevándolo al cuadrado módulo p, dando lugar a un elemento en G, y el mensaje m puede recuperarse de su codificación calculando la única raíz cuadrada de su módulo de codificación p, en el conjunto {1,...,q}.
Se genera una clave como sigue. En primer lugar, se eligen (paso 1312) elementos aleatorios g_{1}, g_{2} \in G, y se eligen (paso 1314) elementos aleatorios X_{1},x_{2},y_{11},y_{12},y_{21}, y_{22},y_{31},y_{32},2\inZ_{q}. A continuación, se calculan (paso 1316) los elementos del grupo c=g_{1}^{x1}g_{2}^{x2}, d_{1}=g_{l}^{y11}g_{2}^{y12}, d_{2}=g_{1}^{y21}g_{2}^{y21}, d_{3}=g_{1}^{y33}g_{2}^{y32}, y h=g_{1}^{z} (paso 1316). La clave pública se calcula después (g_{1},g_{2},c,d_{1},d_{2},d_{3},h) (paso 1318) y la clave privada se calcula (x_{1}, x_{2}, y_{11}, y_{12}, y_{21}, y_{31}, y_{32}, z) (paso 1320).
Dado un mensaje m \in G, el método de encriptado comienza eligiendo r \in Z_{q} aleatoriamente (paso 1322). Después, el texto cifrado (u_{1},u_{2},e,v) se calcula como sigue (paso 1324):
u_{1} = g_{1}{}^{r},
\hskip0.3cm
u_{2} = g_{2}{}^{r},
\hskip0.3cm
e = h^{r}m,
\hskip0.3cm
y
\hskip0.3cm
v = c^{r} \ d_{1}{}^{u2r} \ d_{2}{}^{u2r} \ d_{3}{}^{er}.
\newpage
Dado el texto cifrado (u_{1},u_{2}e,v), el algoritmo de descifrado correspondiente comprueba primero si
103
(paso 1326). Si no, el esfuerzo de desencriptado es rechazado (paso 1328). De otro modo, el mensaje m se calcula como m=e/u_{1} (paso 1330).
La corrección de un criptosistema se puede verificar verificando que el desencriptado de un encriptado de un mensaje produce el mensaje. En este caso, dado que u_{1}=g_{1}^{r} y u_{2}=g_{2}^{r}, se tiene u_{1}^{x1}u_{2}^{x2} = g_{1}^{rx1}g_{2}^{rx2} = c^{r}. Igualmente,
104
y
105
Por lo tanto, para el texto cifrado válido, la prueba realizada en el algoritmo de desincriptado pasará.
La seguridad de este criptosistema se basa en la dificultad de resolver el problema de decisión de Diffie-Hellman. Un algoritmo que resuelve el problema de decisión de Diffie-Hellman es una prueba estadística que puede distinguir efectivamente las dos distribuciones siguientes: (a) cuádruplos aleatorios (g_{1},g_{2},u_{1},u_{2})\inG^{4}, y (b) cuádruplos aleatorios (g_{1}, g_{2},u_{2})\inG^{4}, donde g_{1}, g_{2} son aleatorios y u_{1}=g_{1}^{r} y u_{2}=g_{2}^{r} para algún aleatorio r\inZ_{g}.
Relacionado con el problema de decisión de Diffie-Hellman están el problema de Diffie-Hellman (dado g, g^{x}, y g^{y}, calcular g^{xy}), y el problema del logaritmo discreto (dado g y g^{x}, calcular x). Dentro de tiempo polinómico, el problema de decisión de Diffie-Hellman se puede reducir al problema de Diffie-Hellman que a su vez se puede reducir al problema del logaritmo discreto. Esta relación entre los tres problemas es la que conduce a la posibilidad de delegar el derecho a desencriptar para el sistema Cramer-Shoup.
Supóngase que alguien desea delegar el derecho a desencriptar de un delegador (Alice, A) a un delegado (Bob, B). Supóngase que Alice tiene la clave pública (g_{1},g_{2},c,d_{1},d_{2},d_{3},h) y la clave privada (x_{1},x_{2},y_{11},y_{12}, y_{21},y_{22},y_{31},y_{32},z), y que Bob tiene la clave pública (c', h') y la clave privada (g'_{1},g'_{2},c',d'_{1},d'_{2},d'_{3},h') y la clave privada (x'_{1},x'_{2},y'_{11},y'_{12},
y'_{21},y'_{22},y'_{31},y'_{32},z').
Recuérdese que para un mensaje de texto común dado m \in G, el mensaje en texto cifrado para el delegador A es M=(u_{1}, u_{2}, e, v), donde u_{1}=g'_{1}, u_{2}=g_{2}^{r}, e=h'm, y v=c^{r}d_{1}^{u1r}d_{2}^{u2r}d_{3}^{er}. Igualmente, si el mensaje m es encriptado directamente para el delegado B, el mensaje en texto cifrado es M'=(u'_{1},u'_{2},e',v'), donde u'_{1}=g_{1}^{'r'}, u'_{2}=g_{2}^{'r'}, e'=h'r'm, y v'=c^{'r'}d_{1}^{'ru1r'}d_{2}^{ru'2r'}d_{3}^{'r'r'}, donde r' es también un número aleatorio a partir de Z_{q}. Obsérvese también que
\hbox{v=(cd _{1}  ^{u1} d _{2}  ^{u2} d _{3}  ^{r} ) ^{r} }
y v'=(c'd_{1}^{'u'1r'}d_{2}^{ru'2}d_{3}^{re}'^{)r'}.
En base a las ideas expuestas anteriormente, para delegar el derecho a desencriptar de A en B implica generar una clave de transferencia, usar dicha clave de transferencia para transformar M en M. A continuación, se supone que los componentes g'_{1},g'_{2} de la clave pública de B son idénticos a los componentes g_{1}, g_{2} de la clave pública de A (de forma análoga a los parámetros del sistema ElGamal descritos anteriormente). Además, se supone que el número aleatorio r' es el mismo que r. En estos dos supuestos, los elementos u'_{1},u'_{2} del mensaje en texto cifrado de los mismos que los elementos u_{1},u_{2} del mensaje en texto cifrado de A.
Con referencia ahora a la figura 14, el sistema se establece eligiendo G como un grupo de orden primo q, donde q es grande (paso 1410). A continuación, como antes, se genera la clave de la siguiente manera. En primer lugar, se eligen los elementos aleatorios g_{1},g_{2}\inG (paso 1412), y se eligen los elementos aleatorios x_{1},x_{2},y_{11},y_{12},y_{21},y_{22},y_{31},y_{32},Z\inZ_{q} (paso 1414). A continuación, se calculan los elementos de grupo
c = g_{1}^{x_{1}}g_{2}^{x_{2}},
\hskip0.3cm
d_{1} = g_{1}^{Y_{11}}g_{2}^{Y_{12}},
\hskip0.3cm
d_{2} = g_{1}^{Y_{21}}g_{2}^{Y_{22}},
\hskip0.3cm
d_{3} = g_{1}^{Y_{31}}g_{2}^{Y_{32}},
\hskip0.3cm
y
\hskip0.3cm
h = g^{Z}_{1}
(paso 1416). La clave pública se calcula después como (g_{1},g_{2},c,d_{1},d_{2},d_{3},h) (paso 1418) y la clave privada se calcula como (x_{1}, x_{2}, y_{11}, y_{12}, y_{21}, y_{22}, y_{31}, y_{32}, Z)(paso 1420).
Dado un mensaje m \in G, el método de encriptado comienza eligiendo r \in Z_{q} aleatoriamente (paso 1422). Después el texto cifrado (u_{1},u_{2},e, v) se calcula como sigue (paso 1424):
106
\newpage
Si la clave privada de B está disponible para generar la clave de transferencia \pi, dicha clave se obtiene (paso 1426) y después se puede calcular \pi (paso 1428) como sigue:
\pi = (\varepsilon, \theta, \delta_{1}, \delta_{2}, \delta_{3})
donde
107
La transformación de texto cifrado es entonces
108
Esto transforma el texto cifrado (u_{1},u_{2},e,v) a (u_{1},u_{2},e,v') (paso 1430).
El receptor/delegado es capaz entonces de desencriptar el texto cifrado transformado (u_{1},u_{2},e',v'). Como antes, el algoritmo de desincriptado comprueba primero si
109
(paso 1432). Si no, el esfuerzo de desencriptado se rechaza (paso 1434). De otro modo, el mensaje m se calcula como m = e'/u_{1}^{rz'} (paso 1436).
En caso de que solamente la clave pública del delegado B se pueda usar para delegar el derecho a desencriptar el mensaje del delegador A a B, hay que guardar y usar el número aleatorio r usado inicialmente al encriptar el mensaje para A. Esto puede ser un problema donde la parte para generar la clave de transferencia no es A, y puede no ser un problema si la parte es, de hecho, A. En cualquier caso, si está disponible, la clave de transferencia se puede generar usando la clave pública de B como sigue:
\pi = (\varepsilon, \theta, \delta_{1}, \delta_{2}, \delta_{3})
donde
110
La transformación proxy es entonces
u^{'}_{1} = u_{1},
\hskip0.3cm
u^{'}_{2} = u_{2},
\hskip0.3cm
e^{'} = e\varepsilon,
\hskip0.3cm
y
\hskip0.3cm
v^{'} = v\theta\delta^{u_{1}}_{1}\delta^{u_{2}}_{2}\delta^{e}_{3}.
Es sencillo verificar, en cualquier caso, que el delegado B puede utilizar su propia clave privada para desencriptar el texto cifrado (u'_{1},u'_{2},e',v') transformado por los métodos expuestos anteriormente. Dado que los mecanismos usados en la presente memoria en el criptosistema Cramer-Shoup son los mismos que los usados anteriormente en criptosistemas parecidos a ElGamal, son públicos y no conmutativos, suponiendo que el problema de Diffie-Hellman y el problema del logaritmo discreto son difíciles de resolver.
Como se ha descrito anteriormente, mediante la mejora común de esquemas de encriptado de clave pública con la capacidad de encriptado proxy, resulta posible soportar el desencriptado designado flexible. Esta descripción ha presentado dos esquemas de encriptado proxy públicos y no conmutativos, que han heredado los méritos de los esquemas existentes y desechado sus inconvenientes. Se ha demostrado que los nuevos esquemas tienen aplicaciones directas a la distribución masiva de documentos y protección de archivos. La idea básica de estos nuevos esquemas también se ha aplicado a criptosistemas de otros tipos tal como el criptosistema Cramer-Shoup, mejorándolos a esquemas de encriptado proxy.
Aunque los varios aspectos de la presente invención se han descrito con referencia a varios aspectos y sus realizaciones, dichas realizaciones se ofrecen a modo de ejemplo, no como limitación. La descripción detallada anterior de la invención se ha presentado a efectos ilustrativos y descriptivos. No se pretende ser exhaustivos o limitar la invención a la forma exacta descrita, y obviamente muchas modificaciones y variaciones son posibles a la luz de las ideas anteriores. Las realizaciones descritas se eligieron para explicar mejor los principios de la invención y sus aplicaciones prácticas para permitir por lo tanto a otros expertos en la técnica utilizar mejor la invención en varias realizaciones y con varias modificaciones que sean adecuadas para el uso particular contemplado. Los expertos en la técnica serán capaces con esta descripción de hacer varias adiciones o modificaciones obvias a las realizaciones aquí descritas; se considera que las adiciones y modificaciones caen dentro del alcance de la presente invención. Se pretende que el alcance de la invención se defina por las reivindicaciones anexas a la presente memoria.

Claims (13)

1. Un método para encriptar un mensaje a pasar a un receptor por medio de un donante, incluyendo el método los pasos de:
dicho donante obtiene un mensaje encriptado; habiéndose encriptado el mensaje encriptado usando un esquema de encriptado simétrico que tiene una clave simétrica K, por lo que dicha clave simétrica K se genera (1114) usando un número privado k elegido aleatoriamente (1112);
dicho donante obtiene (1118) una clave pública de dicho receptor según un esquema de encriptado de clave pública;
dicho donante genera (1122) una clave proxy en base a dicha clave pública obtenida de dicho receptor y dicho número privado k elegido aleatoriamente;
dicho donante transforma (1124) dicho mensaje encriptado aplicando dicha clave proxy generada; por lo que el mensaje transformado puede ser desencriptado por dicho receptor recuperando (1126) dicha clave simétrica K usando la clave privada correspondiente a dicha clave pública de dicho receptor y desencriptando (1128) el mensaje encriptado usando la clave simétrica recuperada K según dicho esquema de encriptado simétrico.
2. El método según la reivindicación 1, donde la clave pública de dicho receptor y la clave privada correspondiente a la clave pública de dicho receptor son claves generadas según el esquema de encriptado ElGamal; y
dicho método incluye además transformar (1116) dicha clave simétrica K usando la clave privada del donante que corresponde a la clave pública del donante, siendo la clave pública y privada del donante un par de claves según el esquema de encriptado ElGamal.
3. El método según la reivindicación 2, donde dicho paso de transformar (1116) la clave simétrica K usando la clave privada del donante que corresponde a la clave pública del donante se lleva a cabo exponenciando K en el grupo multiplicativo definido por el esquema de encriptado ElGamal usando como el exponente dicha clave privada del donante.
4. El método de la reivindicación 1, donde el esquema de encriptado simétrico incluye un esquema XOR.
5. El método de la reivindicación 1, donde el esquema de encriptado simétrico incluye un esquema de sustitución.
6. El método de la reivindicación 1, donde el esquema de encriptado simétrico incluye un esquema multiplicativo.
7. El método de la reivindicación 1, donde el esquema de encriptado simétrico incluye un esquema de desplazamiento.
8. El método de la reivindicación 1, donde el esquema de encriptado simétrico incluye un esquema afín.
9. El método de la reivindicación 1, donde el esquema de encriptado simétrico es determinado por clave.
10. El método de la reivindicación 1, donde el paso de generación (1122) incluye componer una inversa de la clave simétrica con dicha clave pública.
11. El método de la reivindicación 1, donde el esquema de encriptado simétrico es un producto de dos esquemas de codificación determinado por clave y de conmutación.
12. El método de la reivindicación 1, donde el esquema de encriptado simétrico es un producto repetido de más de dos esquemas de codificación determinado por clave y de conmutación.
13. El método de la reivindicación 1, donde el mensaje original se pasa a un receptor mediante al menos un donante intermediario adicional repitiendo los pasos de generar y aplicar para cada donante intermedio adicional.
ES00128248T 1999-12-21 2000-12-21 Sistema y metodo para delegar derechos de decodificacion en esquemas de decodificacion simetricos. Expired - Lifetime ES2259592T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/469,487 US6859533B1 (en) 1999-04-06 1999-12-21 System and method for transferring the right to decode messages in a symmetric encoding scheme
US469487 1999-12-21

Publications (1)

Publication Number Publication Date
ES2259592T3 true ES2259592T3 (es) 2006-10-16

Family

ID=23863982

Family Applications (1)

Application Number Title Priority Date Filing Date
ES00128248T Expired - Lifetime ES2259592T3 (es) 1999-12-21 2000-12-21 Sistema y metodo para delegar derechos de decodificacion en esquemas de decodificacion simetricos.

Country Status (5)

Country Link
EP (1) EP1130843B1 (es)
JP (1) JP2001209306A (es)
AT (1) ATE320122T1 (es)
DE (1) DE60026439T2 (es)
ES (1) ES2259592T3 (es)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3864249B2 (ja) 2002-06-04 2006-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 暗号通信システム、その端末装置及びサーバ
JP5446453B2 (ja) * 2009-04-30 2014-03-19 ソニー株式会社 情報処理装置、電子署名生成システム、電子署名用の鍵生成方法、情報処理方法、及びプログラム
JP6363032B2 (ja) * 2015-02-26 2018-07-25 株式会社日立情報通信エンジニアリング 鍵付替え方向制御システムおよび鍵付替え方向制御方法
EP3462667A1 (en) * 2017-09-27 2019-04-03 Banco Bilbao Vizcaya Argentaria, S.A. Blockchain based joint blind key escrow
KR20200086800A (ko) * 2019-01-10 2020-07-20 삼성전자주식회사 전자 장치, 전자 장치 제어방법 및 네트워크 시스템
CN114329618A (zh) * 2021-09-24 2022-04-12 江苏海洋大学 一种基于Mambo的代理签名方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6084969A (en) * 1997-12-31 2000-07-04 V-One Corporation Key encryption system and method, pager unit, and pager proxy for a two-way alphanumeric pager network

Also Published As

Publication number Publication date
JP2001209306A (ja) 2001-08-03
DE60026439D1 (de) 2006-05-04
DE60026439T2 (de) 2006-08-24
EP1130843A3 (en) 2003-07-23
EP1130843A2 (en) 2001-09-05
EP1130843B1 (en) 2006-03-08
ATE320122T1 (de) 2006-03-15

Similar Documents

Publication Publication Date Title
ES2265826T3 (es) Sistema y metodo para distribucion de documentos.
US6859533B1 (en) System and method for transferring the right to decode messages in a symmetric encoding scheme
US6937726B1 (en) System and method for protecting data files by periodically refreshing a decryption key
JP4855940B2 (ja) 暗号用鍵の世代の効率的な管理
Kumar et al. Secure storage and access of data in cloud computing
US7260215B2 (en) Method for encryption in an un-trusted environment
ES2304929T3 (es) Metodo para transferir los derechos para decodificar mensales.
Jin et al. Full integrity and freshness for cloud data
US20210097187A1 (en) Protecting data from brute force attack
US7286665B1 (en) System and method for transferring the right to decode messages
Tian et al. An efficient scheme of cloud data assured deletion
Yuan et al. An ORAM-based privacy preserving data sharing scheme for cloud storage
Almuzaini et al. Key aggregation cryptosystem and double encryption method for cloud-based intelligent machine learning techniques-based health monitoring systems
ES2259592T3 (es) Sistema y metodo para delegar derechos de decodificacion en esquemas de decodificacion simetricos.
CA2312980A1 (en) System and method of sending and receiving secure data using anonymous keys
Gunasekaran et al. A review on enhancing data security in cloud computing using rsa and aes algorithms
CN113312604B (zh) 一种基于区块链认证具备公共重建的分布式秘密图像分享方法
ES2261135T3 (es) Sistema y metodo de proteccion criptografica de datos.
Bacis et al. Mix&slice for Efficient Access Revocation on Outsourced Data
Sri et al. SECURE FILE STORAGE USING HYBRID CRYPTOGRAPHY
EP1699162A2 (en) Method for document distribution
Abdalla et al. Anonymous Pairing-Free and Certificateless Key Exchange Protocol for DRM System.
Nithisha et al. A study on effective mechanisms for secret sharing in Distributed Blockchain Systems
Kaur et al. Cryptography in cloud computing
Chung et al. A secure authorization system in PHR based on CP-ABE