ES2304929T3 - Metodo para transferir los derechos para decodificar mensales. - Google Patents
Metodo para transferir los derechos para decodificar mensales. Download PDFInfo
- Publication number
- ES2304929T3 ES2304929T3 ES00121783T ES00121783T ES2304929T3 ES 2304929 T3 ES2304929 T3 ES 2304929T3 ES 00121783 T ES00121783 T ES 00121783T ES 00121783 T ES00121783 T ES 00121783T ES 2304929 T3 ES2304929 T3 ES 2304929T3
- Authority
- ES
- Spain
- Prior art keywords
- key
- message
- delegation
- scheme
- encrypted
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3013—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/76—Proxy, i.e. using intermediary entity to perform cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Reverberation, Karaoke And Other Acoustics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Facsimile Transmission Control (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
Un método para cifrar un mensaje original para pasarlo a un receptor por medio de un cedente, el método comprende las etapas de: la obtención de un mensaje cifrado representativo del mensaje original, que se ha cifrado (912, 1012, 1424) el mensaje cifrado con una clave pública correspondiente al cedente de acuerdo con un esquema de cifrado de clave pública; la generación (916, 1016, 1428) de una clave de delegación pública basándose en una clave privada que corresponde al receptor y en la clave privada que corresponde a dicha clave pública de dicho cedente, en donde se combinan dicha clave privada del cedente y dicha clave privada del receptor; la combinación de dichas claves privadas se basa en la resta de la clave privada del cedente de la clave privada del receptor dentro del exponente de una exponenciación modular; y la aplicación (918, 1018, 1430) de la clave de delegación pública para transformar el mensaje cifrado en un mensaje transformado, en donde el mensaje transformado se puede descifrar por el receptor usando la información seleccionada de dicha clave privada que corresponde al receptor y la información disponible de la clave pública.
Description
Método para transferir los derechos para
decodificar mensajes.
La invención se refiere a los métodos
criptográficos, y más particularmente a los sistemas y métodos para
delegar los derechos de descifrado sin revelar las claves privadas o
los contenidos del mensaje.
Uno de los problemas más importantes que impiden
la amplia distribución de los documentos digitales a través del
comercio electrónico es la actual falta de protección de los
derechos de propiedad intelectual de los propietarios del contenido
durante la distribución y el uso de esos documentos digitales. Los
esfuerzos para resolver este problema han sido denominados como
"Gestión de los Derechos de Propiedad Intelectual" (IPRM, del
inglés "Intellectual Property Rights Management"), "Gestión
de los Derechos de Propiedad Digital" (DPRM, del inglés
"Digital Property Rights Management"), "Gestión de la
Propiedad Intelectual" (IPM, del inglés "Intellectual Property
Management"), "Gestión de Derechos" (RM, del inglés
"Rights Management") y "Gestión de los Derechos de Copia
Electrónicos" (ECM, del inglés "Electronic Copyright
Management").
Un documento, tal como se usa el término en la
presente memoria, es cualquier unidad de información sujeta a
distribución o transferencia, incluyendo pero sin limitarse a la
correspondencia, libros, revistas, periódicos, prensa, otros
documentos, programas, fotografías y otras imágenes, fragmentos de
audio y video y otras presentaciones multimedia. Un documento puede
materializarse en forma impresa sobre papel, como datos digitales en
un medio de almacenamiento o en cualquier otra forma conocida sobre
una variedad de medios.
En el mundo de los documentos impresos, un
trabajo creado por un autor se entrega normalmente a un editor,
quien da formato e imprime numerosas copias del trabajo. Las copias
se envían entonces por un distribuidor a las librerías o a otras
tiendas de detalle, en las que las copias son compradas por los
usuarios finales.
En tanto que la baja calidad de la copia y el
alto coste de distribución del material impreso han servido como
disuasores para 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. En consecuencia, es necesario
algún método de protección de los documentos electrónicos para
hacer más difícil copiarlos ilegalmente. Esto servirá como un
disuasor de la copia, incluso aunque aún sea posible, por ejemplo,
realizar copias de los documentos impresos y publicarlas en la
antigua forma.
Con los documentos impresos, hay un paso
adicional de digitalización de los documentos antes de que puedan
distribuirse electrónicamente; esto sirve como un disuasor.
Desafortunadamente, se ha reconocido ampliamente que no hay una
forma viable para impedir que la gente realice distribuciones no
autorizadas de los documentos electrónicos con los ordenadores
actuales de uso general y los sistemas de comunicación tales como
los ordenadores personales, estaciones de trabajo y otros
dispositivos conectados en redes de área local (LANs), redes
interiores y la Internet. Se han demostrado infructuosos muchos
intentos para proporcionar soluciones basadas en los equipos para
impedir la copia no autorizada.
Se han empleado dos esquemas básicos para
intentar resolver el problema de la protección de documentos:
contenedores seguros y sistemas fiables.
Un "contenedor seguro" (o simplemente un
documento cifrado) ofrece una forma de mantener los contenidos del
documento cifrado hasta que se cumplan una serie de condiciones de
autorización y se hayan satisfecho algunos términos sobre el
derecho de copia (por ejemplo, pago por el uso). Después de que se
verifiquen varios términos y condiciones por el proveedor del
documento, el documento se entrega al usuario en forma clara.
Productos comerciales tales como el Cryptolopes de IBM y el
Digiboxes de Inter Trust caen en esta categoría. Claramente, el
método del contenedor seguro proporciona una solución para proteger
el documento durante la entrega a través de canales no seguros,
pero no proporciona ningún mecanismo para impedir que los usuarios
legítimos obtengan el documento en claro y entonces lo usen y lo
redistribuyan en violación de la propiedad intelectual de los
propietarios del contenido.
Los mecanismos criptográficos se usan
típicamente para cifrar (o "encriptar") documentos que entonces
se distribuyen y almacenan públicamente, y son finalmente
descifrados privadamente por usuarios autorizados. Esto proporciona
una forma básica de protección durante la entrega del documento
desde un distribuidor de documentos a un usuario de destino a
través de una red pública, así como durante el almacenamiento del
documento en un medio inseguro.
En el método del "sistema fiable", el
sistema entero es responsable de impedir el uso y distribución no
autorizados del documento. Construir un sistema fiable supone
generalmente la introducción de nuevos equipos tales como un
procesador seguro, almacenamiento seguro y dispositivos de
presentación seguros. Esto requiere también que todos los programas
de aplicación que se ejecuten en sistemas fiables se certifiquen
como fiables. En tanto la construcción de sistemas fiables contra
trampas es aun un gran reto para las tecnologías existentes, las
tendencias actuales del mercado sugieren que los sistemas abiertos y
no fiables tales como los PC y las estaciones de trabajo serán los
sistemas dominantes usados para acceder a los documentos con derecho
de copia. En este sentido, los entornos de ordenadores existentes
tales como los PC y las estaciones de trabajo equipadas con
sistemas operativos populares (por ejemplo, Windows y UNIX) y las
aplicaciones de presentación (por ejemplo, Microsoft Word) no son
sistemas fiables y no pueden construirse como fiables sin alterar
significativamente sus arquitecturas.
En consecuencia, aunque puedan desarrollarse
ciertos componentes fiables, se habrá de continuar dependiendo de
varios elementos y sistemas desconocidos y no fiables. En tales
sistemas, incluso si se espera que sean seguros, frecuentemente se
hallan y se explotan los defectos imprevistos y las debilidades.
Surge un problema particular en el contexto de
la distribución de documentos, como se describió anteriormente en
general. En el modelo tradicional de la distribución de documentos,
el autor del contenido y el editor típicamente no manejan la
distribución: una parte separada con experiencia en la distribución
recibe esa responsabilidad. Adicionalmente, aunque es posible
cifrar un documento (usando técnicas estándar) de forma que varios
receptores puedan descifrarlo, no se conoce normalmente en el
momento en que se crea un trabajo, quiénes serán los usuarios
últimos. Tiene más sentido que el distribuidor determine quiénes
serán los usuarios últimos y que les distribuya el documento según
se desee. Si, como en el modelo tradicional, el trabajo original de
la autoría se envía a un editor y a un distribuidor en forma clara,
este es un punto de vulnerabilidad para el trabajo.
Un problema similar surge en los entornos de
oficina, por ejemplo, en los que es deseable frecuentemente designar
lo que en forma diversa se denomina como agente, sustituto o
delegado de un documento. En esta situación, es útil a menudo poder
brindar a algún asistente administrativo o secretario el derecho a
descifrar ciertos documentos no dirigidos directamente a esa
persona.
Considerando el problema más ampliamente, en un
entorno en red, los mensajes se pasan a menudo a receptores
distintos de los que estaban inicialmente dirigidos. Cuando la
confidencialidad del mensaje es una preocupación y se dirigen
mensajes cifrados, es muy deseable permitir a uno descifrar estos
mensajes en nombre del otro. Para ser concreto, supongamos que
Roberto es uno de los que necesitan leer algún mensaje que está
cifrado inicialmente para Alicia. Una solución trivial es que
Alicia simplemente revele su clave de descifrado a Roberto de forma
que Roberto pueda usarlo para descifrar el mensaje por sí mismo.
Esto requiere que Alicia confíe totalmente en Roberto, lo que puede
no ser aceptable para Alicia. Otra forma de realizar esta labor es
permitir que Alicia primero descifre el mensaje, entonces lo
re-cifre para Roberto y finalmente envíe el nuevo
mensaje cifrado a Roberto de forma que él pueda descifrarlo. A
pesar de que el mensaje se comunica con seguridad, esta solución es
menos eficiente ya que requiere dos operaciones de descifrado y una
de cifrado para que Roberto obtenga el mensaje. Y más importante,
en algunas situaciones tal solución de re-cifrado
incluso no es aplicable o deseable. Por ejemplo, Alicia puede no
tener acceso al mensaje cifrado, que puede enviarse directamente
por su originador a Roberto por razones de eficiencia en la
comunicación u otras consideraciones. También, descifrar y cifrar
el mensaje desde una versión clara, incluso si es sólo por un corto
período de tiempo, puede ser una vulnerabilidad sustancial.
En consecuencia, sería deseable tener un marco
de cifrado/descifrado que soporte la posibilidad de transferir los
derechos a decodificar mensajes. Tal marco permitiría a un delegado,
esencialmente, autorizar el re-cifrado de un
mensaje para uso de otras partes sin descifrar primero el mensaje
original. También sería útil para esto que sea posible incluso sin
que el delegado tenga posesión el mensaje cifrado.
BLAZE, M. Y OTROS: "DIVERTIBLE PROTOCOLS AND
ATOMIC PROXY CRYPTOGRAPHY", AVANCES EN CRIPTOLOGÍA - EUROCRYPT
1998, CONFERENCIA INTERNACIONAL SOBRE LA TEORÍA Y APLICACIÓN DE
TÉCNICAS CRIPTOGRÁFICAS, SPRINGER VERLAG, DE, PÁGINA(S)
127-144 investiga dos formas generales en las que un
intermediario situado entre participantes de un protocolo de dos
partes, podría transformar los mensajes de comunicación sin
"destruir" el protocolo. Se introduce una "criptografía
atómica por delegación" en la que una función atómica por
delegación, conjuntamente con una clave de representación pública,
convierte textos cifrados para una clave en textos cifrados para
otra. La clave del receptor inicial se elimina del texto cifrado
inicial y se sustituye por la clave del nuevo receptor. Estas
etapas pueden combinarse en una etapa. Esta es una función por
delegación asimétrica, significando que A y B deben confiar uno en
el otro bilateralmente. B puede aprender los secretos de A y A puede
similarmente descubrir la clave de B.
CRAMER Y OTROS: "A PRACTICAL PUBLIC KEY
CRYPTOSYSTEM PROVABLY SECURE AGAINST ADAPTIVE CHOSEN CIPHERTEXT",
AVANCES EN CRIPTOLOGÍA. CRYPTO '98. 18ª CONFERENCIA
ANUAL INTERNACIONAL DE CRIPTOLOGÍA, SANTA BÁRBARA, 23-27 DE AGOSTO DE 1998. REUNIONES, NOTAS SOBRE CIENCIA DE ORDENADORES, VOL. 1462, BERLÍN, SPRINGER, DE, PÁGINA(S) 13-25 describe un sistema de cifrado de clave pública que es probablemente seguro contra ataques de elección adaptiva de texto cifrado bajo suposiciones de interactividad normales.
ANUAL INTERNACIONAL DE CRIPTOLOGÍA, SANTA BÁRBARA, 23-27 DE AGOSTO DE 1998. REUNIONES, NOTAS SOBRE CIENCIA DE ORDENADORES, VOL. 1462, BERLÍN, SPRINGER, DE, PÁGINA(S) 13-25 describe un sistema de cifrado de clave pública que es probablemente seguro contra ataques de elección adaptiva de texto cifrado bajo suposiciones de interactividad normales.
Es el objeto de la presente invención
proporcionar un método para transferir el derecho de descifrar datos
cifrados en un receptor permitiendo que el receptor no tenga que
confiar en un cedente que transfiera el derecho a descifrar.
Este objeto se resuelve por la materia sujeto de
la reivindicación independiente.
Las realizaciones preferidas se definen por las
reivindicaciones dependientes.
Cómo transferir el derecho a descifrar desde un
contenedor de la clave a otro en una forma segura y eficiente es el
sujeto del cifrado por delegación. Se han propuesto recientemente
algunos esquemas de cifrado por delegación específicos para
convertir mensajes cifrados para una clave en mensajes cifrados para
otra sin revelar las claves secretas de descifrado y los mensajes
originales al público. Mambo y Okamoto han presentado varios
esquemas de cifrado por delegación privados, no conmutativos,
independientes del mensaje. Blaze y Strauss han presentado un
esquema de cifrado por delegación público, conmutativo,
independiente del mensaje.
En esta descripción, se acomete inicialmente el
mismo problema general pero en el contexto más general de los
esquemas de codificación. Los esquemas de codificación considerados
en esta descripción difieren de los esquemas de cifrado o sistemas
de cifrado en que no necesariamente tienen ningún requisito
relacionado con la seguridad. Para un esquema de codificación sea
un esquema de cifrado, es necesario que un escucha, después de que
capte un mensaje codificado, debería ser incapaz de determinar ni el
mensaje original ni la clave usada para decodificar el mensaje. El
trabajo con esquemas de codificación hace posible construir
aplicaciones con poco peso en seguridad pero con alta eficiencia en
la implementación, tal como una distribución de documentos masivo
eficiente y la actualización del texto cifrado con nuevas claves
para proteger mensajes cifrados a largo plazo. En esta descripción,
se define una clase de esquemas de codificación, y se dan varios
ejemplos de esquemas. También se ofrece en la presente memoria un
proceso por el que pueden construirse nuevos esquemas usando los
existentes.
Se presentan entonces varios esquemas de cifrado
por delegación más formales. Un esquema de cifrado por delegación
es un esquema de cifrado que permite a un portador de una clave
designada descifrar mensajes en nombre de otro portador de clave.
Esta descripción introduce dos nuevos esquemas de cifrado por
delegación basados en el conocido esquema de ElGamal, con
funcionalidades mejoradas sobre los esquemas de cifrado por
delegación existentes. Son públicos en el sentido de que la
información relacionada con la delegación y las transformaciones
pueden realizarse con seguridad en público y a la vez no conmutativo
en términos de las relaciones de confianza entre los portadores de
clave involucrados. Se presentan también las aplicaciones de estos
nuevos esquemas a la distribución de documentos masiva y la
protección de archivos.
La idea básica de los métodos presentados en
esta descripción es la siguiente: para que Alicia transfiera el
derecho a decodificar a Roberto, Alicia genera una clave de
transferencia t para Roberto. Con la clave de transferencia
t, Roberto puede re-cifrar el mensaje
inicialmente codificado para Alicia y en consecuencia descifrarlo
usando su propia clave. Muy similarmente al cifrado por delegación,
la transferencia se realiza de forma tal que la clave de
transferencia no revela explícitamente las claves de decodificación
ni de Alicia ni de Roberto, ni el mensaje original.
Cómo delegar el derecho a descifrar de un
portador de clave a otro en formas seguras y eficientes es la
materia del cifrado por delegación. Recientemente, se han propuesto
algunos esquemas de cifrado por delegación específicos para
convertir los mensajes cifrados por una clave en mensajes cifrados
por otra sin revelar las claves secretas de descifrado y el mensaje
original al público. Mambo y Okamoto han descrito tres esquemas de
cifrado por delegación para los esquemas de cifrado de ElGamal y
RSA. M. Mambo y E. Okamoto, "Proxy cryptosystems: Delegation of
the power to decrypt ciphertexts", IEICE Trans. on
Fundamentals, Vol. E80-A, nº 1, páginas
54-63 (1997). Para la situación mencionada
anteriormente, sus esquemas tienen un mejor rendimiento de cálculo
que el esquema de red cifrado, pero por razones de seguridad
requiere la presencia del portador de la clave original Alicia en
la conversión del mensaje. Más aún, los esquemas por sí mismos no
ayudan a especificar quién es el portador de la clave al que Alicia
desea delegar el derecho de descifrado. El esquema propuesto por
Blaze y Strauss, por otro lado, no tiene estos defectos. Es una
modificación del esquema de cifrado de ElGamal. M. Blaze y M.
Strauss, "Proxy Cryptography", borrador, Laboratorios de
investigación de AT&T,
ftp://ftp.research.att.com/dist/mab/proxy.ps (mayo de 1997). Una
característica muy sobresaliente del esquema de Blaze y Strauss es
que permite comunicar la información relacionada con la delegación
y realizar la conversión del mensaje en público. Pero introduce un
problema más serio: es conmutativo en el sentido de que Roberto
puede obtener la clave de descifrado de Alicia. Este tipo de
conmutatividad convierte al esquema de cifrado por delegación en
obsoleto, ya que el esquema completo puede simplificarse
perfectamente en dar la clave de Alicia a Roberto y dejar que
Roberto lo descifre. Otra situación (no necesariamente un problema)
creado por este esquema es que una vez que a Roberto se le ha
cedido el derecho al descifrado por Alicia, puede descifrar todos
los mensajes que sean originalmente para Alicia. Esta independencia
del mensaje puede ser útil en algunos casos tal como la auto
delegación pero no es deseable en muchas aplicaciones prácticas
donde el portador de la clave original desea ser selectivo en
relación con a qué mensajes se permite la delegación de
descifrado.
descifrado.
En consecuencia, los esquemas de cifrado por
delegación de acuerdo con la presente invención, que son públicos y
no conmutativos, eliminan algunas de las desventajas de otros
sistemas de cifrado conocidos.
En esta descripción, se introducen entonces dos
nuevos esquemas de cifrado por delegación. Se basan los dos en el
esquema de cifrado de clave pública de ElGamal y tienen un
rendimiento de cálculo comparable. Esencialmente, han conservado
las siguientes características deseables de los esquemas existentes:
(i) público: la presencia del portador de la clave original no se
requiere después de que se genere la información por delegación y
la información y las operaciones relacionadas con la delegación
pueden comunicarse y realizarse en público; (ii) no conmutativo:
los portadores de clave no tiene que confiar uno en el otro con
relación a sus claves de descifrado privadas; y (iii) restringido:
se especifica el portador de la clave a quien se delega el derecho
de descifrado, y la información de delegación (clave) es dependiente
del mensaje.
Finalmente, el derecho a descifrar mensajes se
describe entonces en el contexto del sistema de cifrado de
Cramer-Shoup, que contiene algunas ventajas sobre
los otros sistemas.
En una realización adicional el método comprende
la etapa de proporcionar el mensaje transformado al receptor.
En una realización adicional el método comprende
la etapa de descifrar el mensaje transformado usando la información
seleccionada a partir de la clave privada correspondiente al
receptor y cualquier información pública disponi-
ble.
ble.
En una realización adicional el método comprende
la etapa de descifrar el mensaje transformado usando la clave
privada correspondiente al receptor.
En una realización adicional el mensaje cifrado
comprende una primera parte y una segunda parte, la primera parte
que codifica un generador y una clave aleatoria, y la segunda parte
que codifica el mensaje original, la clave pública correspondiente
del cedente y a la clave aleatoria.
En una realización adicional la etapa de
aplicación funciona sobre la segunda parte del mensaje cifrado.
En una realización adicional el mensaje cifrado
comprende una primera parte y una segunda parte, la primera parte
que codifica el mensaje original, un generador y una clave
aleatoria, y la segunda parte que codifica la clave pública
correspondiente al cedente y la clave aleatoria.
En una realización adicional la etapa de
aplicación funciona sobre la segunda parte del mensaje cifrado.
En una realización adicional el mensaje cifrado
comprende una primera parte y una segunda parte, la primera parte
que codifica el mensaje original, un generador y una clave
aleatoria, y la segunda parte que codifica la clave pública
correspondiente al cedente y la clave aleatoria.
En una realización adicional la etapa de
aplicación funciona sobre la segunda parte del mensaje cifrado.
En una realización adicional el mensaje original
se pasa a un receptor a través de al menos un cedente intermedio
adicional que repite la generación y aplica las etapas para cada
cedente intermedio adicional.
Ésta y otras características y ventajas de la
presente invención serán evidentes a partir de las figuras como
será plenamente descrito 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 capaz de funcionar en forma
útil para comprender la invención:
La Figura 2 es un diagrama de bloques que
ilustra las operaciones de codificación realizadas cuando se delega
la autoridad para descifrar un mensaje en un método útil para
comprender la invención;
La Figura 3 es un diagrama de flujo que ilustra
las etapas generales realizadas para la transformación de un
mensaje codificado para la decodificación por otro;
La Figura 4 es un diagrama de bloques que
ilustra esquemáticamente las partes involucradas en un sistema
adaptado para la delegación de autoridad para descifrar
mensajes;
La Figura 5 es un diagrama de flujo que ilustra
las etapas realizadas en un esquema genérico de cifrado por
delegación;
La Figura 6 es un diagrama de flujo que ilustra
las etapas realizadas en el cifrado y descifrado de un mensaje de
acuerdo con el sistema de cifrado de ElGamal;
La Figura 7 es un diagrama de flujo que ilustra
las etapas realizadas en un conocido esquema de cifrado y
descifrado por delegación basado en ElGamal y propuesto por Mambo y
Okamoto;
La Figura 8 es un diagrama de flujo que ilustra
las etapas realizadas en un conocido esquema de cifrado y
descifrado por delegación basado en ElGamal y propuesto por Blaze y
Strauss;
La Figura 9 es un diagrama de flujo que ilustra
las etapas realizadas en un primer ejemplo de un esquema de cifrado
y descifrado por delegación basado en ElGamal y útil para comprender
la invención;
La Figura 10 es un diagrama de flujo que ilustra
las etapas realizadas en un segundo ejemplo de un esquema de
cifrado y descifrado por delegación basado en ElGamal y útil para
comprender la invención;
La Figura 11 es un diagrama de flujo que ilustra
las etapas realizadas en un esquema de distribución de documentos
útil para comprender la invención;
La Figura 12 es un diagrama de flujo que ilustra
las etapas realizadas en un esquema de protección de archivos útil
para comprender la invención;
La Figura 13 es un diagrama de flujo que ilustra
las etapas realizadas en el cifrado y descifrado de un mensaje de
acuerdo con el sistema de cifrado de Cramer-Shoup;
y
La Figura 14 es un diagrama de flujo que ilustra
las etapas realizadas en una realización de un esquema de cifrado y
descifrado por delegación basado en Cramer-Shoup y
útil para comprender la invención.
Las figuras se explican más completamente en la
siguiente descripción detallada de la invención.
La Figura 1 representa un modelo funcional de
alto nivel de un sistema para la distribución electrónica de
documentos, que como se definió anteriormente, puede incluir
correspondencia, libros, revistas, periódicos, prensa, otros
documentos, programas, fragmentos de audio y video y otras
presentaciones multimedia.
Un autor (o editor) 110 crea un contenido
original 112 del documento y lo pasa al distribuidor 114 para su
distribución. Aunque se contempla que el autor pueda también
distribuir los documentos directamente, sin involucrar otras partes
como un editor, la división de trabajos expuesta en la Figura 1 es
más eficiente, ya que permite al autor/editor 110 concentrarse en
la creación del contenido, y no en las funciones mecánicas y
mundanas realizadas por el distribuidor 114. Más aún, tal división
permitiría al distribuidor 114 realizar economías de escala
asociando un número de autores y editores (incluyendo el
autor/editor 110 ilustrado).
El distribuidor 114 pasa entonces 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
cifrada del contenido original cifrado 112; el distribuidor 114
descifra primero el contenido original 112 y entonces lo cifra con
la clave pública del usuario 118; ese contenido modificado 116 está
solamente personalizado para el único usuario 118. El usuario 118
puede entonces usar su clave privada para descifrar el contenido
modificado 116 y ver el contenido original 112.
Se pasa entonces un pago 120 por el contenido
112 desde el usuario 118 al distribuidor 114 por medio de un centro
de intercambio 122. El centro de intercambio 122 recoge peticiones
del usuario 118 y de otros usuarios que desean ver un documento en
particular. El centro de intercambio 122 también recoge información
de pago, tal como transacciones de débito, transacciones de tarjeta
de crédito u otros esquemas conocidos de pago electrónico, y dirige
los pagos recogidos de los usuarios como un lote de pago 124 al
distribuidor 114. Naturalmente, se espera que el centro de
intercambio 122 retenga una cuota del pago 120 del usuario. A su
vez, el distribuidor 114 retiene una parte del lote de pago 124 y
realiza el pago 126 (que incluye royalties) al autor y editor 110.
En una realización de este esquema, el distribuidor 114 espera un
paquete de peticiones de usuario para un único documento antes de
enviar nada al exterior. Cuando se hace esto, puede generarse un
único documento con contenido modificado 116 para descifrado por
todos los usuarios que lo piden. Esta técnica es bien conocida en
las técnicas actuales.
Entretanto, cada vez que el usuario 118 solicita
(o usa) un documento, se envía un mensaje contable 128 a un
servidor de auditorías 130. El servidor de auditorías 130 asegura
que cada petición del usuario 118 se ajusta a un documento enviado
por el distribuidor 114: la información de contabilidad 131 se
recibe por el servidor de auditorías 130 directamente desde el
distribuidor 114. Cualquier inconsistencia se transmite a través de
un informe 132 al centro de intercambio 122, quien puede entonces
ajustar los lotes de pago 124 realizados al distribuidor 114. Este
esquema contable se presenta para reducir la posibilidad de fraude
en este modelo de distribución de documentos electrónicos, así como
para manejar cualquier permiso de uso dependiente del tiempo que
pueda dar como resultado cargos variables, dependiendo de la
duración o de otra extensión del uso.
El modelo precedente para comercio electrónico
de documentos, mostrado en la Figura 1, es de uso común hoy en día.
Como se mostrará en detalle a continuación, es igualmente aplicable
al sistema y método descrito en la presente memoria para la
distribución de documentos que se auto protegen.
Por simplicidad, considere inicialmente esquemas
del tipo siguiente. Un sistema de codificación consiste en cuatro
componentes: (i) un espacio de mensaje X que es una colección
de posibles mensajes, (ii) un espacio de claves K que es un
conjunto de claves posibles, (iii) una transformación de
codificación de eficiente cálculo E : K \times X
\rightarrow X y (iv) una transformación de decodificación
de eficiente cálculo D : K \times 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 (uno a uno) de inyección
sobre X, y satisfacen entonces que, para cada mensaje
x \in X,
Ciertamente, tales esquemas de codificación
definidos pueden variarse de varias formas para cubrir un rango más
amplio de ellos. Uno es diferenciar el espacio de los mensajes
codificados del de los mensajes originales, y otro es considerar
que las claves usadas para codificar y decodificar son diferentes.
En términos de criptografía, los esquemas de codificación
considerados a continuación son esencialmente sistemas
criptográficos endomórficos de clave privada (o, más precisamente,
simétrica).
Tales sistemas de codificación definidos tienen
algunas propiedades favorables. Dado el esquema de codificación
(X, K, E, D), cada transformación de
codificación y su correspondiente transformación de decodificación
son la transformación inversa la una de la otra; esto es, para cada
k \in K,
Si X es un conjunto finito, cada
transformación de codificación o decodificación es solo una
permutación sobre X.
Los esquemas de cifrado clásicos de clave
simétrica son esquemas de codificación. Aquí hay algunos de
ellos.
Esquema XOR X . En este esquema, el
espacio del mensaje X es el conjunto B_{n} de todas
las cadenas binarias de n bits para algún entero n
> 0, y lo mismo es el espacio K. El número de posibles
mensajes y el número de posibles claves son ambos 2^{n}.
Para cada mensaje x y cada clave k, la codificación
es
\vskip1.000000\baselineskip
y la decodificación del mensaje
y
es
donde \oplus representa la
operación sobre bits XOR (o
exclusiva).
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 es también un elemento a en Z_{n} pero que
satisface mcd(a, n) = 1, donde la función "mcd"
especifica el máximo común divisor entero de los dos argumentos.
Esto es, el espacio de claves K consiste en elementos en el
grupo multiplicativo Z_{n}^{\text{*}} = {a \in
Z_{n} | mcd(a, n) = 1}. La codificación de
un mensaje x con una clave a es
\vskip1.000000\baselineskip
y la decodificación del mensaje
y con la clave a
es
donde a^{-1} es la inversa
multiplicativa de a módulo n; esto es, a^{-1}
es un elemento en Z_{n} tal que aa^{-1} (mod
n) = a^{-1}a(mod n) = 1. Nótese que la
condición de a, mcd(a, n) = 1, se usa para
garantizar que a tiene la inversa a^{-1}. Es
conocido que el número de tales a es igual al valor de la
función phi de
Euler
\vskip1.000000\baselineskip
donde
es la descomposición en números
primos de n. De forma que el número de claves en el esquema
M es
\phi(n).
Esquema de desplazamiento S . Los
mensajes y las claves del esquema de desplazamiento son los
elementos en Z_{n} = {0, 1,..., n-1} para algún
entero n > 0, esto es X = K =
Z_{n}. Así, el número de mensajes y el número de claves en
el esquema de desplazamiento es igual a n. Para codificar un
mensaje x con una clave b, se calcula
y para decodificar un mensaje
y con b, se
calcula
Esquema de sustitución P . Este
esquema también se define sobre X = Z_{n}. Sin
embargo, el espació de claves K = \Pi_{n} consiste en
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
\vskip1.000000\baselineskip
y para decodificar un mensaje
y con b, se
calcula
donde p^{-1} es la
permutación inversa de
p.
Debería notarse que los esquemas multiplicativos
y de desplazamiento son casos especiales del esquema de sustitución
que incluye solo \phi(n) y n de n!
posibles permutaciones de n elementos, respectivamente.
Pueden construirse nuevos esquemas de
codificación por combinación de los existentes. Un método es formar
su "producto". Suponga que S y S' son dos
esquemas de codificación con el mismo espacio de mensajes X.
El producto de S y S', expresado como S
\times S', tiene el mismo espacio de mensajes X.
una clave del esquema del producto tiene la forma (k,
k'), donde k y k' son claves de S y
S', respectivamente. Las transformaciones de codificación y
de decodificación del esquema producto se definen como sigue: para
cada clave (k, k') \in K,
\vskip1.000000\baselineskip
y
Esto es, el mensaje x se codifica primero con
E_{k} y el mensaje resultante se
"re-codifica" entonces con E_{k'}. La
decodificación es similar, pero se realiza en orden inverso.
Es sencillo comprobar que la construcción del
producto es siempre asociativa: (S \times S')
\times S'' = S \times (S' \times
S''). Si se toma un esquema de codificación S para formar el
producto con sí mismo, se obtiene el esquema S \times
S, expresado como S^{2}. Si se toma el producto
enésimo, el esquema resultante, expresado por S^{n}, se
denomina un esquema de codificación iterativo.
Un ejemplo simple para ilustrar la definición
del producto de los esquemas de codificación 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
mcd(a, n) = 1. La transformación de codificación
es
\vskip1.000000\baselineskip
y la transformación de
decodificación
es
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
donde a^{-1} es la inversa
modular de a módulo n. Estas transformaciones del tipo
ax + b son denominadas usualmente transformaciones
afines, y de ahí el nombre de esquema afín. Nótese que el esquema
A se reduce al esquema multiplicativo M cuando
b = 0 y al esquema de desplazamiento S cuando
a = 1. De ahí que M y S son casos especiales de
A. Por otro lado, A es su producto M \times
S. Como se vio anteriormente, una clave en el esquema
multiplicativo M es un elemento a \in
Z^{\text{*}}_{n}; la correspondiente transformación de
codificación es E_{a}(x) = ax(mod n).
Una clave en el esquema de desplazamiento es un elemento b
\in Z_{n}, y la correspondiente transformación de
codificación es E_{b}(x) = x + b (mod
n). Por lo tanto, una clave en el esquema producto M
\times S tiene la forma (a, b) \in
Z^{\text{*}}_{n} \times Z_{n}, y su
codificación
es
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
Esta es precisamente la definición de
transformación de codificación en el esquema afín. Similarmente, 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) puede establecerse 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 forma que el
nuevo mensaje y' pueda decodificarse correctamente usando la
clave k'. Si se puede conseguir esto, se dice que el derecho
a decodificar el mensaje y se ha transferido o delegado desde
el portador de la clave k al portador de la clave
k'.
La Figura 2 ilustra la transformación
\pi 210 que se necesita para alcanzar el objetivo. Las
líneas gruesas 212, 214 y 216 representan las transformaciones
E_{k}, \pi, y D_{k}, respectivamente, de
una secuencia de etapas que codifica un mensaje x con una
clave k, convierte el mensaje codificado en otro codificado
con otra clave k', y entonces 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 posibles operaciones de codificación y
decodificación que pueden llevarse a
cabo.
cabo.
En muchos casos el espacio de claves K de
un esquema de codificación no es meramente un conjunto. Dotado con
alguna operación "\cdot", K puede poseer alguna
estructura matemática. Por ejemplo, los espacios de claves de todos
los esquemas de ejemplo dados en la sección anterior pueden dotarse
con algunas operaciones para llegar a ser grupos matemáticos. La
Tabla 1 muestra a continuación algunas de estas operaciones, donde
indica el operador de composición de permutaciones y
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
se define
como
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
Cuando el espacio de claves 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 determinarse
unívocamente por las claves. Esto ocurre cuando el espacio de claves
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 sobre el espacio
de mensajes X; esto es, para cualquier k, k'
\in K.
y
donde \circ es el operador de
composición de las transformaciones, que se define como, por
ejemplo,
para todo x \in
X.
Puede comprobarse fácilmente que todos los
esquemas dados en la Tabla 1 anterior son determinados por la clave.
Los esquemas de codificación determinados por la clave permiten una
forma sistemática de transferir el derecho a decodificar mensajes
desde un portador de clave a otro. Con el isomorfismo entre los
espacios de claves 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' puede verse
entonces como una transformación de codificación determinada por la
clave compuesta k^{-1} \cdot k. Sea (X,
K, E, D) un esquema de codificación
determinado por la clave. Supongamos 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
transferirse desde el portador de la clave k al portador de
la clave k' en el algoritmo de dos etapas mostrado en la
Figura 3.
Primero, genera una clave de transferencia
t = k^{-1} \cdot k (etapa 310). Entonces
codifica el mensaje con la clave de transferencia t de acuerdo con
y' = E_{t}(y) (etapa 312).
El algoritmo es correcto gracias a la propiedad
del espacio de claves de ser isomórfico para los grupos de
transformación de codificación y decodificación. La corrección puede
verificarse como sigue:
La generalidad del algoritmo hace inmediato
derivar las etapas de transferencia para los esquemas de ejemplo
expuestos anteriormente. Con referencia de nuevo la Figura 3, para
el esquema XOR X sobre B_{n}, para convertir
y = E_{k}(x) en y' =
E_{k'}(x), se genera primero la clave de
transferencia t = k \oplus k' (etapa 310).
Entonces se codifica el mensaje con la clave de transferencia
t de acuerdo con y' = y \oplus t
(etapa 312).
Para el esquema Multiplicativo M sobre
Z_{n}^{\text{*}}, para convertir y =
E_{a}(x) en y' = E_{a'}(x),
se genera primero la clave de transferencia t =
a'a^{-1} (mod n) (etapa 310). Entonces se
codifica el mensaje con la clave de transferencia t de
acuerdo con y' = ty (mod n) (etapa 312).
Para el esquema de Desplazamiento S sobre
Z_{n}, para convertir y = E_{b}(x)
en y' = E_{b'}(x), se genera primero la
clave de transferencia t = b' + b(mod n)
(etapa 310). Entonces se codifica el mensaje con la clave de
transferencia t de acuerdo con y' = y +
t (mod n) (etapa 312).
Para el esquema de Sustitución P sobre
\Pi_{n}, para convertir y =
E_{p}(x) en y' = E_{p'}(x),
se genera primero la clave de transferencia t =
p^{-1} o p' (etapa 310). Entonces se codifica el
mensaje con la clave de transferencia t de acuerdo con
y' = t(y) (etapa 312).
Tal cómo se describirá a continuación, es
posible también transferir el derecho a decodificar en esquemas de
producto no sólo de codificación determinada por la clave sino
también para esquemas de conmutación. Para definir los esquemas de
conmutación, es necesario caracterizar esquemas de codificación que
sean esencialmente equivalentes supongamos que S =
(X, K, E, D) y S' = (X',
K', E', D') son dos esquemas de codificación
con el mismo espacio de mensajes X. Se dice que S es
equivalente a S', expresado por S \equiv S',
si hay una correspondencia biyectiva
(uno-a-uno y completa) h :
K \rightarrow K' tal que para cada mensaje x
\in X y para cada clave k \in K,
y
Claramente, la relación de equivalencia de
esquemas \equiv es un relación de equivalencia; esto es, satisface
que, para cualquier conjunto de esquemas de codificación S, S',
S'', se cumple lo siguiente: (i) S \equiv S; (ii) S
\equiv S' implica S' \equiv S; y (iii)
S \equiv S' y S' \equiv S'' implica
S \equiv S''. De este modo, los esquemas de
codificación equivalentes forman una clase de equivalencia en la
que cada esquema en la clase proporciona ni más ni menos
funcionalidad que cualesquiera otros miembros en la clase.
La relación de equivalencia de esquemas nos
permite caracterizar los esquemas de codificación de varias formas.
Un esquema de codificación S se dice que es equipotente si
S^{2} \equiv S. Muchos de los esquemas de
codificación son equipotentes, incluyendo los esquemas XOR,
multiplicativo, de desplazamiento, de sustitución y afín. Si un
esquema S es equipotente, entonces no hay ninguna razón para
usar el esquema de producto S^{2}, ya que requiere una
clave extra pero no proporciona más funcionalidad.
Otra caracterización de los esquemas de
codificación usando la relación de equivalencia de esquemas \equiv
es la de conmutación de esquemas. Dos esquemas de codificación
S y S' se dice que conmutan si S
\times S' \equiv S' \times S.
Trivialmente, 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, M \times S \equiv S \times
M, se pueden comparar las ecuaciones
\vskip1.000000\baselineskip
y
\vskip1.000000\baselineskip
y se halla que la
correspondencia
\vskip1.000000\baselineskip
definido
por
hace el producto S \times
M isomórfico respeto del producto M \times
S.
Los esquemas de producto de esquemas
determinados por clave y codificación conmutativa disfrutan de una
forma sistemática de transferir el derecho a decodificar mensajes.
Sea S_{1} \times S_{2} el esquema de producto
de dos esquemas determinados por clave y decodificación
comunicativa. Supongamos que h = (h_{1},
h_{2}) : K_{2} \times K_{1}
\rightarrow K_{1} \times K_{2} es la
correspondencia que hace S_{2} \times S_{1}
isomórfico respecto a S_{1} \times S_{2}, donde
h_{1} : K_{2} \times K_{1}
\rightarrow K_{1} y h_{2} : K_{2}
\times K_{1} \rightarrow K_{2}. Primero,
observe que el esquema de producto también es determinado por la
clave; el espacio de la clave de producto K_{1} \times
K_{2} es un grupo con respecto a la operación * definida
por
Esto es
porque
Ahora, el derecho a decodificar el mensaje
codificado de x puede transferirse desde el portador de la clave k
al portador de otra clave k' en el algoritmo de dos etapas mostrado
en la Figura 3. Primero, generar un clave de transferencia t
= (h_{1} (k_{2}^{-1},
k_{1}^{-1}\cdotk'_{1}),
h_{2}(k_{2}^{-1}, k_{1}^{-1} \cdot
k') \cdot k'_{2}) (etapa 310). Entonces codificar
el mensaje con la clave de transferencia t de acuerdo con
y' = E_{t}(y) (etapa 312).
La corrección del algoritmo de transferencia se
verifica por la igualdad siguiente:
donde la última entidad puede
decodificarse fácilmente usando la clave k' =
(k'_{1},
k'_{2}).
El método se ilustra mejor con el siguiente
ejemplo, aplicando el cifrado afín A sobre Zn. Ya que
A = M \times S, y M y S son
esquemas determinados por la clave, conmutativos, el método
descrito anteriormente se aplica al esquema afín. Como se ha visto
anteriormente, es la correspondencia h(b, a) =
(a, ab) la que hace S \times M
isomórfico con respecto a M \times S. De ese modo,
h_{1}(b, a) = a y
h_{2}(a, b) = ab (mod n). La
clave de transferencia t desde (a, b) a
(a', b') puede derivarse como
Entonces, para decodificar y usando la
segunda clave (a', b'), se genera primero la clave de
transferencia t = (a'a^{-1}(mod
n), -a'a^{-1}b + b'(mod
n)) 2900 (t_{1}, t_{2})
(etapa 310). Entonces se codifica el mensaje usando la clave de
transferencia t de acuerdo con y' = t_{1}y +
t_{2}(mod n) (etapa 312).
Los métodos presentados en la presente memoria
para transferir el derecho a decodificar mensajes son
transitivos. Esto significa que dos transferencias
secuenciales de Alicia a Roberto y después de Roberto a Carolina son
equivalentes a una transferencia directa de Alicia a Carolina. Es
importante hacer notar que, en cada uno de los esquemas de ejemplo,
una clave de transferencia es también una clave del esquema.
En consecuencia, dos claves de transferencia
usadas en dos transferencias secuenciales pueden combinarse para
formar una clave de transferencia para la transferencia directa.
Tomemos el esquema afín como un ejemplo. Sean k = (a,
b), k' = (a', b') y k'' =
(a'', b'') las claves de Alicia, Roberto y Carolina,
respectivamente. Entonces las claves de transferencia son t =
(a'a^{-1}, -a'a^{-1}b +
b') desde Alicia a Roberto, t' =
(a''a'^{-1}, -a''a'^{-1}b' +
b'') desde Roberto a Carolina, y t'' =
(a''a^{-1}, -a''a^{-1}b +
b'') desde Alicia a Carolina. Es sencillo verificar que la
composición de t y t' como claves en el esquema afín
conduce a t'':
En otras palabras, la composición de
transferencias secuenciales del derecho a decodificar mensajes
requiere menos memoria; todas las transferencias intermedias no se
reflejarán en la transferencia global.
Debería notarse también que, para los esquemas
X, M y S, la etapa de generación de la clave de
transferencia es equivalente a "decodificar" k' con
k. De ese modo, el cálculo necesitado en la transferencia es
el mismo que el usado en el método de codificación y decodificación
para estos esquemas. Podría pensarse que el nuevo método no muestra
ninguna mejora en relación con esta eficiencia, pero se ha
encontrado que la clave de transferencia es independiente del
mensaje y por lo tanto sólo necesita calcularse una vez. Más aún,
la clave de transferencia t no deja salir ninguna información
útil sobre las claves k y k', y una transferencia
realizada de acuerdo con los métodos expuestos en la presente
memoria no revela el mensaje x. Estas propiedades hacen
atractivo el método propuesto cuando la seguridad del mensaje
x y de las claves de decodificación k y k' es
un problema durante una transferencia.
Se muestra en la Figura 4 la configuración de un
sistema típico capaz de llevar a cabo los métodos descritos con
referencia a la Figura 3 (y descritos con más detalle a
continuación). Hay tres partes relevantes en la mayoría de las
aplicaciones de cifrado por delegación. Un Cifrador 410, un Cedente
A 412, y un Cesionario B 414. Como se reconocerá, el cifrado,
descifrado, y otras operaciones de procesado realizadas en la
invención se facilitan por un procesador (416, 418, 420) bajo el
control de cada una de las partes. Cada procesador se equipa con
memoria (422, 424, 426) para el almacenamiento de datos y una
interfaz de comunicación (428, 430, 432), capaz de enviar y recibir
mensajes.
El resto de la descripción, dirigida a esquemas
de cifrado por delegación más formales, más que a esquemas de
codificación, se organiza como sigue. Primero, se describe un
esquema de cifrado por delegación genérico y se define de acuerdo
con varios criterios. Varios de los párrafos siguientes fijan la
exposición de la notación que se usará a través de la descripción y
recuerdan el esquema de cifrado de clave pública de ElGamal. Con el
objeto de comparar, la descripción lista entonces los esquemas de
cifrado por delegación existentes y examina sus propiedades en
comparación con la presente invención. Se presentan entonces
detalles sobre los dos nuevos esquemas de cifrado por delegación,
junto con su análisis de seguridad y rendimiento. Posteriormente se
dan las aplicaciones de estos nuevos esquemas en la distribución
masiva de documentos y en la protección de archivos.
Como se indicó en la introducción, el objetivo
del cifrado por delegación es delegar el derecho de cifrado de uno
a otro de formas seguras y eficientes. Para los razonamientos que
siguen, es conveniente definir los papeles de las partes que pueden
estar involucradas en el cifrado por delegación. Los dos papeles más
importantes son los del cedente y cesionario. Un cedente es
un portador de la clave original de un mensaje cifrado que desea
delegar el derecho de cifrado a algún otro. Un cesionario es
un portador de clave designado para realizar el descifrado en
nombre de un cedente y de ese modo actuar como el descifrador por
delegación del cedente. En el ejemplo de motivación de la
introducción, Alicia es la cedente mientras que Roberto es el
cesionario. Otros papeles pueden incluir un cifrador que es
el que originalmente cifra los mensajes para el cedente y un
facilitador que puede ayudar a realizar algunas tareas de
procesado del mensaje, tal como la transformación de los mensajes
cifrados para el cedente en mensajes cifrados para el cesionario.
Ciertamente, no es necesario que todos estos papeles sean jugados
por partes diferentes. Por ejemplo, una parte puede jugar los
papeles de cedente y facilitador, como en los esquemas de Mambo y
Okamoto comentados a continuación.
Con estos papeles definidos, un esquema de
cifrado por delegación es solo una descripción de cómo un
cesionario, posiblemente con alguna ayuda de un facilitador, delega
a un cesionario el derecho a descifrar mensajes originalmente
generados por un cifrador para el cesionario. Un esquema de cifrado
por delegación puede consistir en cuatro etapas genéricas: cifrado
del mensaje, generación de la clave de delegación, transformación
por delegación y descifrado del mensaje. Estas etapas se
describirán con más detalle a continuación, con referencia a la
Figura 5.
1. Cifrado E del mensaje: El cifrador genera un
mensaje cifrado usando la clave de cifrado del cedente y lo entrega
al cedente (etapa 510).
2. Generación de la delegación \pi. Para
delegar el derecho de descifrado al cesionario, el cedente genera
una clave de delegación \pi como una muestra del compromiso que
permite al cesionario descifrar el mensaje cifrado por el cedente
(etapa 512).
3. Transformación por delegación \Pi: Cuando
sea necesario, el facilitador realiza una transformación por
delegación \Pi, posiblemente usando la clave de delegación \pi,
para convertir el mensaje cifrado por el cedente en un mensaje
cifrado por el cesionario (etapa 514).
4. Descifrado D del mensaje: Una vez recibido el
mensaje transformado y posiblemente la clave de delegación, el
cesionario descifra el mensaje (etapa 516).
En consecuencia, debería observarse que el
esquema genérico anterior cubre las dos soluciones sencillas para
el cifrado por delegación mencionados en la introducción. El esquema
de red cifrado es un caso especial donde la cedente (Alicia) es
también la facilitadora que realmente descifra el mensaje y entonces
lo cifra para el cesionario (Roberto), y la delegación \pi puede
considerarse como una colección de la clave de descifrado del
cedente y la clave de descifrado del cesionario, que se usa sólo por
el cedente y no por el cesionario. El esquema del paso de la clave
de descifrado del cedente al cesionario es otro caso especial del
esquema genérico, donde la clave de delegación es la clave de
descifrado y la transformación de delegación es la transformación
de identidad.
Sin embargo, no todo los esquemas que puedan
derivarse del genérico anterior están calificados como esquemas de
descifrado por delegación. Intuitivamente, un esquema de cifrado por
delegación tiene que satisfacer algunos requisitos básicos,
nominalmente la delegación, la seguridad, la transitividad y el
rendimiento, como se describe a continuación.
Delegación. Para asegurar que al final de
la etapa de descifrado del mensaje, el cesionario puede recuperar
el mensaje original correctamente, debe cumplirse la siguiente
ecuación para cualquier mensaje m:
donde E(m, e)
es una función de cifrado del mensaje m bajo la clave de
cifrado e, D(c, d, \pi) es una
función de descifrado correspondiente del mensaje cifrado c
bajo la clave de descifrado d y posiblemente la clave de
delegación \pi, \Pi(c, \pi) es la
función de delegación que convierte el mensaje cifrado c de
acuerdo con la clave de delegación \pi, y e_{A},
e_{B}, d_{A} y d_{B}, son las claves de
cifrado y de descifrado del cedente A y del cesionario B,
respectivamente.
Además de la corrección de lo que antecede,
debería garantizarse la funcionalidad de la delegación. Por una
parte, esto significa que, después de que se envía la clave de
delegación y se completa la transformación de delegación, la etapa
de descifrado del mensaje no debería requerir información privada
del cedente, y debería llevarse a cabo únicamente por el
cesionario. Por otro lado, eso es equivalente a que no se pueda
negar la delegación por el cedente; esto es, una vez que se envía
la clave de delegación y que se realiza la transformación de
delegación, el cedente no debería poder denegar la delegación, sin
recurrir a otros medios tales como impedir que el cesionario
obtenga la clave de delegación y recibir el mensaje transformado.
Como una consecuencia de esta funcionalidad, la clave de descifrado
del cedente puede destruirse con la clave de descifrado del
cesionario y posiblemente la clave de transferencia, manteniendo la
posibilidad de descifrar el mensaje. (Esto es útil en la aplicación
de protección de archivos posterior de la Sección 6).
Seguridad. En esencia, un esquema de
cifrado por delegación es también un esquema de cifrado al menos
desde el punto de vista del cesionario. La introducción de las
claves y transformaciones de delegación de ninguna manera pueden
comprometer la seguridad y la privacidad del cifrado. De ese modo,
debería, al menos desde el punto de vista de cálculo, ser difícil
para cualquier tercera parte no autorizada el recuperar el mensaje
personal y las claves de descifrado del cedente y del cesionario a
partir de la información públicamente disponible.
Más aún, la falsificación de claves de
delegación válidas por cualquier parte no fiable debería ser muy
difícil. Sin embargo, debe quedar claro que generar la clave de
delegación \pi requiere el conocimiento de al menos la
clave de descifrado del cedente; de otra forma el sistema de cifrado
subyacente no es seguro.
Transitividad. Naturalmente, la relación
de delegación debería ser transitiva. Después de que el cedente
delegue el derecho de descifrado, el cesionario debería poder actuar
como un nuevo cedente para delegar el derecho adicionalmente a otro
cesionario, solamente con seguir el mismo esquema. Más aún, debería
ser posible para alguien, digamos el primer cedente, delegar el
derecho directamente a un nuevo cesionario mediante la combinación
de todas las claves intermedias de delegación en una clave de
delegación y la composición de todas las transformaciones por
delegación consecutivas en una transformación.
Rendimiento. Dado que el esquema de
re-cifrado es una solución directa, intuitiva para
el cifrado por delegación y satisface los requisitos anteriores de
delegación, seguridad y transitividad, cualquier esquema de cifrado
por delegación útil en la práctica no debería tener ninguna
degradación en el rendimiento de cálculo cuando se compara con el
esquema de re-cifrado.
Los esquemas de cifrado por delegación pueden
variar de acuerdo con los requerimientos de su aplicación. Pueden
clasificarse de acuerdo con muchos aspectos. Los obvios incluyen en
si se basan en clave pública o clave privada, y si sus medidas de
seguridad son perfectas en el sentido teórico de la información o si
descansan en la insolubilidad de algunos problemas de cálculo. Los
siguientes aspectos se relacionan con la clave y transformación de
delegación.
Confidencialidad. En tanto ha de
respetarse el secreto del mensaje y de las claves de descifrado, el
secreto de las claves de delegación y de la transformación de
delegación puede no ser un requisito obligatorio. Un esquema se
denomina público si las claves de delegación que genera pueden
publicarse sin comprometer su seguridad y las transformaciones de
delegación realizarse en entornos no fiables; en otro caso, el
esquema es privado. En un esquema privado, cuando se transfiere una
clave de delegación desde un cedente al facilitador y al cesionario,
debe tenerse cuidado en proteger la clave de delegación contra su
revelación. Como resultado, la transformación de delegación que usa
la clave de delegación debe realizarse asimismo en privado.
Conmutatividad. En términos de los
mensajes, el cesionario debe recibir la confianza incondicional del
cedente, ya que el cifrado por delegación permite por definición al
primero descifrarlo en nombre del último. Sin embargo, el modelo de
confianza puede ser diferente para su información privada. Un
esquema de cifrado por delegación es conmutativo si el cedente y el
cesionario han de confiar cada uno en el otro con relación a sus
claves privadas; en caso contrario, es no conmutativo. Un ejemplo
conmutativo es el que la clave de delegación se crea de tal forma
que tanto en cedente como el cesionario puede no tener la clave de
descifrado del otro a partir de ella. Cuando éste es el caso, el
mecanismo de cifrado por delegación puede simplificarse como un
protocolo de intercambio de claves que permite al cesionario usar la
clave de descifrado del cedente para descifrar los mensajes
cifrados directamente.
Generalidad. En muchos casos, el cedente
desea restringir el alcance del derecho de descifrado delegado. A
menudo las restricciones deseadas incluyen que la clave de
delegación puede usarse solamente por un cesionario designado, que
la clave de delegación pueda aplicarse sólo a un mensaje específico
o que la transformación de delegación pueda sólo aplicarse por un
facilitador específico. Por ejemplo, cuando un esquema de cifrado
por delegación se usa en algunas aplicaciones como depósito de
claves, sería ideal que las claves de delegación sean
independientes de los mensajes a los que aplican. Pero para una
delegación ocasional tal como la especificación con seguridad de la
herencia en base a las disposiciones de alguien, podría ser
altamente deseable que la clave de delegación pueda restringirse
sólo a una parte designada (por ejemplo, un nieto), aplicable a un
mensaje específico (por ejemplo, alguna parte de las disposiciones)
y posiblemente usarse en la transformación de delegación por una
parte en particular (un abogado).
Degenerable. Cuando se usan en
situaciones extremas en donde el cedente y el cesionario son la
misma persona con la misma clave de descifrado, un esquema de
cifrado por delegación debería reducirse a un esquema de cifrado
regular, sin introducir ningunas complicaciones (tales como claves y
transformaciones de delegación no triviales, y el requisito de un
facilitador extra).
Como se mostrará a continuación, los esquemas de
Mambo y Okamoto son privados y no conmutativos. Las claves de
delegación en sus esquemas pueden ser tanto independientes como
dependientes del mensaje pero no se restringen al cesionario
designado. El esquema de Blaze y Strauss es justamente lo contrario:
es público pero conmutativo, y sus claves de descifrado son
independientes del mensaje pero asociadas únicamente con cesionarios
designados. En comparación, los esquemas de acuerdo con la
invención explicados en la presente memoria son públicos y no
conmutativos, y sus claves de descifrado son dependientes del
mensaje y restringidas a cesionarios designados.
Dado que los esquemas de cifrado por delegación
comentados a continuación en esta descripción se basarán todos en
los logaritmos discretos en grupos multiplicativos, se adopta por el
presente un marco formal que es común a todos estos esquemas de
cifrado. La notación usada en la presente memoria recuerda el
esquema de cifrado de ElGamal. Los esquemas de cifrado basados en
logaritmos discretos son particularmente ventajosos debido a sus
ventajas técnicas sobre los esquemas del tipo RSA y a sus
generalizaciones naturales a muchos grupos finitos tales como los
grupos de curva elíptica sobre campos finitos.
Como se ha expuesto anteriormente, para
cualquier número natural n, denotemos por Z_{n} =
{0, 1, ..., n-1} el anillo de enteros módulo n, y
denotemos por Z_{n}^{\text{*}} = {a \in
Z_{n} | mcd(a, n) = 1} el grupo
multiplicativo de Z_{n}. Nótese que, cuando n es un
primo, Z_{n}^{\text{*}} = {1,..., n-1}. Para un
módulo n y un número a que es primo entre sí con
n, denotemos con a^{-1} el inverso multiplicativo
de a módulo n; esto es, a^{-1} es un elemento
que satisface aa^{-1} \equiv 1(mod n).
Un elemento a de Z_{p}^{\text{*}} se
dice que es de orden m si el número de sus potencias módulo
n es m. Un generador g de
Z_{n}^{\text{*}}, si existe, es un elemento del orden de
|Z_{n}^{\text{*}}| (el tamaño de
Z_{n}^{\text{*}}); en este caso,
Z_{n}^{\text{*}} es un grupo cíclico. Cuando n es un
primo, cada elemento de Z_{n}^{\text{*}} excepto 1 es un
generador de Z_{n}^{\text{*}}.
Sea Z_{n}^{\text{*}} un grupo cíclico
con un generador g. El logaritmo discreto de un elemento
x con base g, denotado como log_{g}
x, es el único entero a, 0 \leq a \leq
n-1, tal que x = g^{a}(mod n). El
problema del logaritmo discreto es, dado un primo p,
un generador g de Z_{p}^{\text{*}}, y un elemento
x \in Z_{p}^{\text{*}}, encontrar el entero
a, 0 \leq a \leq p-2, tal que
g^{a} = x(mod p).
Un problema relacionado muy de cerca es el
problema de Diffie-Hellman: dado un primo
p, un generador g de Z_{p}^{\text{*}}, y
elementos g^{a}(mod p) y g^{b}(mod
p), encontrar g^{ab}(mod p). El problema del
logaritmo discreto es al menos tan difícil como el problema de
Diffie-Hellman, ya que cualquier solución al primer
problema puede usarse para resolver el segundo problema.
El esquema de cifrado de ElGamal mostrado en la
Figura 6 es una parte de un sistema de cifrado de clave pública,
basado en logaritmos discretos propuesto por ElGamal tanto para el
cifrado como para la firma digital. Ver T. ElGamal, "A public key
cryptosystem and a signature scheme based on discrete logarithm",
IEEE Trans. on Information Thory, Vol. 31, páginas
465-472 (1985).
Con referencia ahora en detalle a la Figura 6,
el esquema de ElGamal se ajusta (etapa 610) estableciendo dos
parámetros públicos p y g, donde g es un primo
(típicamente de 512 bits de longitud), tal que p-1 tiene un
factor primo q grande (típicamente de 160 bits) (por ejemplo,
p=2q+1) y g es un generador g de
Z_{n}^{\text{*}}. Se fija una clave privada para un
usuario (etapa 612) eligiendo uniformemente un número aleatorio
a \in Z^{\text{*}}_{p-1}. Su clave
pública relacionada se calcula (etapa 614) como \alpha =
g^{a}(mod p). El usuario publica \alpha y
mantiene a secreta.
Para cifrar un mensaje m para enviarlo al
usuario A con la clave pública \alpha, se elige
uniformemente un número aleatorio k \in
Z^{\text{*}}_{p-1} (etapa 616), y un par
de números (r, s), que representan juntos el mensaje
cifrado a enviar a A, se calcula (etapa 618) como sigue:
Para descifrar el mensaje (r, s),
el receptor A recupera el mensaje m (etapa 620)
calculando
Nótese que la selección de los parámetros
públicos se dirigen a establecer la ecuación
g^{p-1} (mod p) \equiv 1 (pequeño
teorema de Fermat). Estos parámetros deberían conocerse
auténticamente por todos los usuarios. Pueden elegirse, digamos,
por alguna autoridad de confianza. También, la forma en que se elige
la clave privada a asegura que la inversa a^{-1} de
a módulo p-1 existe y es única.
A diferencia del esquema de cifrado de clave
pública RSA, el esquema de ElGamal no es determinístico, ya que el
mensaje cifrado también depende del número aleatorio k. En
efecto, es similar en naturaleza al protocolo de intercambio de
claves de Diffie-Hellman; la clave establecida entre
el transmisor y el receptor para cifrar y descifrar el mensaje
m es g^{ak} (mod p) a partir de r =
g^{k} (mod p) (parte del mensaje cifrado) y
\alpha = g^{a} (mod p) (la clave pública de
A). No obstante, la seguridad del esquema de cifrado de
ElGamal descansa en la insolubilidad del problema del logaritmo
discreto y del problema de Diffie-Hellman. Hasta la
fecha, los intentos en la búsqueda de algoritmos óptimos para el
problema del logaritmo discreto no han encontrado una solución
eficiente (polinómica-tiempo). Es similar a la
situación para el problema de la actualización de enteros en el cual
se basa la seguridad del esquema del RSA. Más aún, se mostró
también que, para algunos primos p, la resolución del problema del
logaritmo discreto es al menos tan difícil como la resolución del
problema de actualización del mismo tamaño. Esto implica que para
aquellos p, el esquema de ElGamal es al menos tan seguro como
el esquema RSA.
Muy recientemente, se han propuesto varios
esquemas de cifrado por delegación. Todos estos esquemas siguen el
esquema genérico de cifrado por delegación en delegar el derecho al
descifrado: el cifrador envía un mensaje cifrado al cedente
A, quien entonces delega el derecho de descifrado al
cesionario B creando la clave de delegación, y después de
que se ha completado la transformación de delegación el cesionario
B descifra finalmente el mensaje. A continuación se
presentan dos esquemas de cifrado por delegación representativos y
conocidos: uno de Mambo y Okamoto y el otro de Blaze y Strauss,
ambos son variaciones del esquema de ElGamal. Dado que tienen los
mismos ajustes de esquema que el esquema de ElGamal, el ajuste (ver
etapas 610-614 de la Figura 6 anterior) se omite de
la presentación.
Mambo y Okamoto han propuesto tres esquemas de
cifrado por delegación: dos se basan en el esquema de ElGamal y el
otro se basa en el esquema RSA. El que se muestra en la Figura 6 y
se describe a continuación es el basado 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 se precisa enviar al cedente A con la
clave pública \alpha, el mensaje m se cifra
eligiendo uniformemente un número aleatorio k \in
Z^{\text{*}}_{p-1} (etapa 710) y calculando un
par de números (r, s) que representan el mensaje
cifrado (etapa 712) como sigue:
Para delegar el derecho de descifrado a un
cesionario B, el cedente A crea una clave de
delegación \pi eligiendo uniformemente un número aleatorio
a' \in Z^{\text{*}}_{p-1} (etapa
714) y calculando \pi = aa' (mod p-1))
(etapa 716). Entonces, A entrega la clave de delegación
\pi a B (etapa 718) de una forma segura (por
ejemplo, cifrándola con la clave pública de B) y mantiene
privado el valor de a'.
Para permitir a B que descifre el
mensaje, A calcula r' = r ^{a'{}^{-1}} (mod
p), donde a'^{-1} es la inversa multiplicativa de
a' módulo p-1 (etapa 720). El par (r',
s) es el mensaje transformado, cifrado para enviarse a
B.
Tras recibir el mensaje transformado (r',
s) y la clave de delegación \pi, B descifra
el mensaje m (etapa 722) calculando m = s
(r'^{\pi})^{-1} (mod p).
Este esquema de cifrado por delegación usa los
componentes de cifrado y descifrado del esquema de ElGamal, excepto
en que la clave privada de B se sustituye por la clave de
delegación \pi. Esto es correcto porque, cuando se usa
\pi para descifrar el mensaje transformado (r',
s), se cumple lo siguiente:
La seguridad de este esquema se evalúa en dos
aspectos. La complejidad para cualquiera, incluyendo el cesionario
B, para descubrir la clave privada a del cedente
A basándose en toda la información disponible es igual que
la de resolver el problema del logaritmo discreto. La dificultad
para cualquiera, incluso con la clave de delegación, para hacerse
pasar por A para transformar el mensaje cifrado (es decir,
para generar (r', s)) es igual que la de resolver el
problema de Diffie-Hellman.
Este esquema tiene varias características
atractivas. Primero, su seguridad implica que es difícil para
B recuperar la clave privada de A. en este sentido,
no hay necesidad de que A confíe en B, y por lo tanto
el esquema es no conmutativo. Segundo, la clave de delegación
generada \pi es independiente del mensaje. B puede
usarla para descifrar todos los mensajes transformados por A.
Tercero, este esquema satisface el requisito de transitividad. Tras
recibir tanto la clave de delegación \pi como el mensaje
transformado (r', s), el usuario delegado B
puede transferir adicionalmente la delegación a otro usuario
C, tratando \pi como una clave privada a y
(r', s) como (r, s) y repitiendo la
generación y transformación de delegación. Cuarto, el esquema
requiere menos esfuerzos de cálculo que el esquema de
re-cifrado.
Sin embargo, implementar el cifrado por
delegación en la forma de este esquema tiene varios puntos débiles.
Primero, la clave de delegación no contiene información acerca del
cesionario delegado B; se deriva solamente de la clave
privada del cedente A. Más aún, el descifrado del mensaje
realizado por B tampoco necesita la clave privada de
descifrado de B. Consecuentemente, el mensaje puede
recuperarse por cualquiera que obtenga la clave de delegación y el
mensaje cifrado, no necesariamente por B. De ese modo,
B puede pedir a cualquiera que descifre el mensaje pasándole
directamente la información de delegación. En muchos casos, esto no
es deseable; A debería poder especificar al portador de la
clave que va actuar en nombre de A.
Segundo, la clave de delegación \pi
tiene que ser un secreto entre A y B y necesita
transmitirse desde A hasta B de forma segura. Como
resultado de que \pi no contiene información de B y
de que (r', s) se comunique posiblemente en público,
revelar \pi es esencialmente igual a abrir el mensaje.
Tercero, la transformación de delegación debe
dirigirse por A. El valor a' usado en la
transformación es un secreto de A y es vital impedir que
B conozca la clave a de descifrado de A.
En una palabra, el esquema es no conmutativo e
independiente del mensaje, pero privado e incapaz de especificar el
cesionario designado.
Blaze y Strauss han descrito otro esquema de
cifrado por delegación de clave pública. Como puede verse en la
Figura 8, el esquema es similar en estructura al cifrado de ElGamal,
pero con los parámetros usados de forma diferente y la inversa del
secreto usado para recuperar el mensaje.
Volviendo ahora a la Figura 8 con más detalle,
dado un mensaje m que se necesita enviar a un cedente
A con una clave pública \alpha, el mensaje m se
cifra eligiendo uniformemente un número aleatorio k \in
Z^{\text{*}}_{p-1} (etapa 810) y
calculando un par de números (r, s) que representan el
mensaje cifrado (etapa 812) como sigue:
Para delegar el derecho de descifrado a un
cesionario B, el cedente A crea una clave de
delegación \pi obteniendo la clave privada b de
descifrado de B (etapa 814) y calculando \pi =
a^{-1}b (mod (p-1)) (etapa 816), en donde
a^{-1} es la inversa de la clave privada a de
A módulo p-1. La clave de delegación \pi
puede hacerse pública.
Para usar la clave de delegación \pi
para convertir un mensaje (r, s) cifrado por A
en un mensaje cifrado por B, el facilitador (no
necesariamente A, ya que la clave de delegación \pi
es pública) calcula s' = s^{\pi} (mod p)
(etapa 818). El par (r, s') representa el mensaje
cifrado transformado, que puede transmitirse entonces a
B.
Para descifrar el mensaje transformado, B
calcula m = r(s'^{b^{-1}})^{-1} (mod p)
(etapa 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 ya que en el descifrado
del mensaje
El esquema es seguro en que el mensaje m
y las claves secretas a y b no pueden recuperarse a
partir de los mensajes cifrados y las claves públicas. Más aún, la
publicación de la clave de delegación no compromete ni el mensaje
m ni las claves secretas a y b. Más
precisamente, el problema de recuperar m a partir de la
información pública (\alpha, \beta, r,
s, \pi, s') es tan difícil como el problema
de Diffie-Hellman.
En contraste con el esquema anterior, la última
característica de seguridad hace innecesario mantener privada la
clave de delegación \pi. De ese modo, el cedente A
puede enviar públicamente \pi a quienquiera (facilitador)
que vaya a realizar la transformación de delegación, o puede
simplemente publicarla. Más aún, el esquema no requiere ningún
secreto de A para llevar a cabo la transformación de
proximidad, y consiguientemente permite que cualquiera, se confíe o
no en él, realice la transformación y por lo tanto elimina la
necesidad de la presencia de A, así como la de B, en
la transformación.
También a diferencia del esquema anterior, no
hay diferencia para el usuario B entre descifrar un mensaje
cifrado regular y descifrar un mensaje transformado por delegación.
Esta elegante característica permite al usuario B tratar
todos los mensajes entrantes uniformemente. De hecho, es posible
para un facilitador o usuario no fiable realizar la transformación
de delegación y entonces dirigir el mensaje al usuario B.
A pesar de estas características deseables, este
esquema es conmutativo; los portadores de claves involucrados
A y B deben confiar uno en el otro bilateralmente.
B puede conocer la clave secreta a de A
(multiplicando la clave de delegación por b^{-1}). Además,
la clave de delegación es también independiente del mensaje, como
lo es en el esquema anterior, que delega en B el derecho a
descifrar todos los mensajes cifrados con la clave privada a
de A. En consecuencia, este esquema es público e
independiente del mensaje pero conmutativo.
Se presentan en la presente memoria dos esquemas
de cifrado por delegación de acuerdo con la invención, y se
analizan entonces en relación con su seguridad, conmutatividad y
rendimiento. Como el esquema de delegación privado, son no
conmutativos, y a la vez, admiten claves y transformaciones de
delegación públicas en la forma en que lo admite el esquema de
delegación conmutativo. Sin embargo, se diferencian de los esquemas
privados y conmutativos en que son dependientes del mensaje. Más
aún, su rendimiento global es mejor que el del esquema de
re-cifrado basado en ElGamal.
De nuevo, esos esquemas comparten el mismo
ajuste de esquema del esquema de ElGamal, y suponen que un cedente
A delega el derecho de descifrado a un cesionario
B.
Para comprender cómo adaptar el esquema de
ElGamal en un esquema de cifrado por delegación, es útil examinar
algunos detalles del esquema de ElGamal. Debería tenerse en cuenta
que el componente r del mensaje cifrado m es
independiente de la clave privada a y de la clave pública
\alpha del receptor A. Como s =
\alpha^{k}(mod p) = mg^{ka}(mod
p), \alpha se usa sólo en el componente s, y
a se embebe implícitamente en el exponente de s. De
ese modo, es suficiente para la transformación de delegación
convertir el mensaje cifrado para A en el mensaje cifrado
para B quitando la clave privada a de A de
s y reemplazándola con la clave privada b de B.
Para impedir que B obtenga la clave privada a de
A, la función para generar la clave de delegación debe ser en
alguna forma de "una dirección". De hecho, esto puede
obtenerse con ayuda del número aleatorio k como sigue:
Por consiguiente, la transformación de
delegación que completa la conversión del mensaje debería parecerse
a la siguiente:
El razonamiento anterior conduce al esquema de
la Figura 9. Resulta que la clave y la transformación de delegación
satisfacen los requisitos de seguridad que proporcionan las
características deseadas de ser públicas y no conmutativas.
Con referencia ahora a la Figura 9, dado un
mensaje m que se necesita enviar a un cedente A con la
clave pública \alpha, el mensaje m se cifra
eligiendo uniformemente un número aleatorio k \in
Z^{\text{*}}_{p-1} (etapa 910) y
calculando un par de números (r, s) que representan el
mensaje cifrado (etapa 912) como sigue:
Para delegar el derecho de descifrado a un
cesionario B, el cedente A crea una clave de
delegación \pi obteniendo la auténtica clave b de
descifrado de B (etapa 914) y calculando \pi =
r^{b-a} (mod p) (etapa 916).
El mensaje se transforma a partir de (r,
s) en (r, s') calculando s' =
s\pi (mod p) (etapa 918). El mensaje m se
descifra entonces por B a partir de (r, s')
calculando m = s'(r^{b})^{-1} (mod
p) (etapa 920).
Claramente, este esquema usa las etapas de
cifrado y descifrado de mensajes del esquema de ElGamal. Es correcto
ya que el mensaje m puede recuperarse a partir de
Una característica agradable de este esquema es
que, no sólo no parecen diferentes los mensajes regulares y los
cifrados por delegación para el cesionario B, sino que
también el esquema coincide con el esquema de ElGamal cuando
A y B son el mismo usuario con la misma clave; en este
caso, el valor de delegación \pi es igual a 1 y la
transformación de delegación es la transformación de identidad.
También como en el esquema conmutativo, la etapa
de generación de delegación requiere las claves privadas tanto de
A como de B para generar la clave de delegación
\pi. Como alternativa, esta etapa puede llevarse a cabo
por cualquiera que sea fiable tanto para A como para
B. Como se hizo notar anteriormente, la clave privada de
A se necesita definitivamente, ya que en otro caso cualquiera
puede enviar una clave de delegación para recuperar el mensaje y el
esquema de cifrado subyacente no es seguro. Para establecer y
comunicar la clave privada b de B, pueden usarse
muchos protocolos de intercambio de claves tales como el
intercambio de claves de Diffie-Hellman. Como se
muestra más en detalle a continuación, en algunas aplicaciones
prácticas el requisito de la clave b o bien no es un problema
o puede suavizarse.
Pero a diferencia de los esquemas privados y
conmutativos, este esquema no hace fácil para el cesionario B
descifrar los mensajes cifrados para A distintos del que se
le dirige. Claramente, la clave de delegación \pi contiene
una parte de información que es específica para el mensaje cifrado
m, concretamente, el número aleatorio k. En este
sentido, el esquema de delegación es dependiente del mensaje. Más
aún, el esquema es no conmutativo en el sentido de que es difícil
para B descubrir la clave privada a de A. Este
hecho, junto con el rendimiento del esquema se establecerá tras
presentar el siguiente esquema.
Nótese que, en el esquema previo, la
transformación de delegación sólo cambia el componente s del
mensaje cifrado. Dado que s es la parte que realmente
transporta la información sobre el mensaje m, el esquema
puede no ser eficiente cuando m es un mensaje muy largo. Por
ejemplo, la clave de delegación generada sería tan larga como el
mensaje y el esfuerzo invertido en la transformación de delegación
sería lineal con relación a la longitud del mensaje completo.
El esquema presentado en la Figura 10 tiende a
mejorar esta situación. Usa la etapa de cifrado del mensaje del
esquema conmutativo en el cual el mensaje m es desplazado
desde s a r. Su clave y transformación de delegación
no tienen ahora una dependencia directa del mensaje m.
Como se muestra la Figura 10, dado un mensaje
m que necesita enviarse a un cedente A con la clave
pública \alpha, el mensaje m se cifra eligiendo
uniformemente un número aleatorio k \in
Z^{\text{*}}_{p-1} (etapa 1010) y calculando un
par de números (r, s) que representan el mensaje
cifrado (etapa 1012) como sigue:
Para delegar el derecho de descifrado a un
cesionario B, el cedente A crea una clave de
delegación \pi obteniendo la auténtica clave b de
descifrado de B (etapa 1014) y calculando \pi =
(s^{a^{-1}})^{b-a} (mod p) (etapa
1016), donde a^{-1} es la inversa de a módulo
p.
El mensaje se transforma a partir de (r,
s) en (r, s') calculando s' =
s\pi (mod p) (etapa 1018). El mensaje m se
descifra entonces por B a partir de (r, s')
calculando m = r(s'^{b^{-1}})^{-1} (mod
p) (etapa 1020), donde b^{-1} es la inversa de
b módulo p-1.
Este esquema es correcto ya que
Otras propiedades de este esquema pueden
verificarse en la misma forma que en el esquema anterior.
Debido a su similitud en naturaleza, sólo se
analizan en esta sección el primero de los dos nuevos esquemas con
relación a su seguridad y no conmutatividad. Puede llevarse a cabo
un razonamiento prácticamente igual para el segundo esquema.
Además, aunque el primer esquema (tanto como el segundo esquema) es
transitivo y su seguridad puede involucrar más de dos portadores de
clave, el análisis a realizar sólo considera el caso de dos
portadores de clave; el caso general es también similar. Por
claridad de la presentación, la frase "(mod p)" se
omitirá en esta subsección; su situación debería ser clara a partir
del contexto.
Recordar que, además de los parámetros del
esquema (p, g), la información pública disponible de
los esquemas incluye
Por las razones explicadas a continuación, el
esquema es seguro desde el punto de vista del cálculo. Es difícil
recuperar el mensaje m y las claves secretas a y
b a partir de la información pública, asumiendo que los
problemas de Diffie-Hellman y del logaritmo discreto
son difíciles de resolver. Dado que la clave de delegación es parte
de la información pública, esto implica que publicarla no compromete
ni el mensaje ni las claves secretas. Una consecuencia de esto es
que es difícil también para cualquiera falsificar una clave de
delegación válida de una manera sistemática. Más allá de esto, el
esquema demuestra ser no conmutativo en el sentido de que incluso
con la clave privada de B, es también difícil recuperar la
clave privada de A. Si la clave de delegación se genera de
hecho por una tercera parte fiable tanto para A como para
B, este hecho implica que tampoco es necesario para B
confiar en A. Esta es una mejora significativa sobre el
esquema conmutativo.
Más aún, como se estableció anteriormente, los
esquemas de cifrado por delegación de la invención son más
eficientes que re-cifrar un mensaje. A continuación,
en la Tabla 2, está el rendimiento de los dos esquemas de cifrado
por delegación de acuerdo con la invención descritos en la presente
memoria, comparados con el esquema de re-cifrado
que usa el algoritmo de ElGamal, en términos de la cantidad de
cálculo que requieren. En la Tabla 2, se listan para estos esquemas
los números de operaciones de multiplicación, operaciones de
exponenciación, e inversiones todas realizadas módulo p.
Nótese que el número total de operaciones para
el re-cifrado usando el esquema de ElGamal es el
doble que el número de operaciones para un único cifrado y
descifrado de ElGamal, ya que el mensaje debe cifrarse primero,
después descifrarse, después cifrarse y después
re-descifrarse. Más aún, el cálculo en el segundo
esquema puede optimizarse mediante (i) el precálculo de las
inversas a^{-1} y b^{-1} en la etapa de ajuste
del esquema y (ii) la multiplicación de dos componentes
exponenciales (módulo (p-1)) en la etapa de generación de la
delegación en lugar de usar dos exponenciaciones. El segundo
conjunto de números para el segundo esquema es el resultado de esta
optimización. En general, los esquemas inventivos de cifrado por
delegación presentados en la presente memoria tienen mejor
rendimiento que el simple esquema de re-cifrado
basado en ElGamal.
Los esquemas públicos y no conmutativos de
cifrado por proximidad 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 el cifrado por delegación. El primero se
relaciona con el caso en donde el cedente es quien cifra el mensaje
en primer lugar, mientras que el último es de
auto-delegación en el cual el cedente y el
cesionario son los mismos portadores de clave pero con claves
diferentes.
De nuevo, téngase en cuenta que un documento se
refiere a cualquier archivo digital cuyo contenido podría ser
texto, gráficos, audio, video, ejecutable o incluso multimedia.
Normalmente, un documento es de gran tamaño, incluso tras la
compresión. Debido a que los algoritmos de clave pública tienden a
ser muy lentos comparados con los algoritmos convencionales de
clave privada tales como DES, IDEA y RC4, y los algoritmos de clave
privada requieren establecer las claves secretas para empezar, el
método más práctico para la distribución masiva y segura de
documentos sobre redes es combinar los mecanismos de cifrado de
clave privada y de clave pública. Típicamente, se usa un algoritmo
eficiente de clave privada para cifrar el documento usando una clave
generada aleatoriamente, llamada la clave de sesión, y se usa la
clave pública para cada receptor del documento para cifrar esta
clave de sesión. Los receptores usan sus claves privadas para
recuperar la clave de sesión secreta y entonces la usan para
descifrar el documento.
De hecho, el método anterior de distribución de
documentos tiene el estilo del cifrado por delegación; el
propietario cifra el documento primero usando un esquema de clave
privada y entonces otorga el derecho de descifrado, bajo petición,
a sus receptores a través de un esquema de clave pública. Resulta
que pueden usarse cualquiera de los dos nuevos esquemas de cifrado
por delegación para combinar las mejores características del método
en un esquema único normal de cifrado.
Tomemos por ejemplo el segundo esquema expuesto
anteriormente (Figura 10). Hay dos observaciones en orden. Primero,
el componente r del mensaje cifrado puede generarse usando
cualquier esquema de cifrado de clave privada con K =
g^{k} (mod p) como la clave de sesión secreta. En
consecuencia, el mensaje m puede recuperarse en la etapa de
descifrado del mensaje por su correspondiente clave privada de
descifrado usando la clave de sesión secreta K' =
s'^{b^{-1}} (mod p) = K. De hecho, el esquema
de cifrado de clave secreta usado en el esquema es r =
E_{k} (m) = mK (mod p) para cifrado y
m = D_{K'} (r) = rK'^{-1} (mod
p) para descifrado. Otro ejemplo simple es el esquema de
cifrado basado en la operación de bits XOR (). En este caso, el
cálculo de r y m puede sustituirse por
Ciertamente, pueden emplearse esquemas de
cifrado de clave privada más sofisticados tales como DES y
triple-DES si se necesita una seguridad más
fuerte.
La segunda observación es que, si el cedente
A es quien cifra el mensaje m, entonces A puede
mantener el número aleatorio k privado y usar la clave
pública \beta = g^{b} (mod p) de B,
en lugar de la clave privada b de B, para generar la
clave de delegación:
donde \alpha es la clave
pública de A. Esto elimina el requisito para la clave privada
b de B (o el intercambio de claves entre A y
B), e implica que tampoco B ha de confiar en
A.
Estas dos observaciones conducen al esquema de
distribución de documentos mostrado en la Figura 11, que se basa en
el segundo esquema de cifrado por delegación de acuerdo con la
invención expuesta anteriormente (en conexión con la Figura 10). En
el esquema, se usa un esquema de cifrado de clave privada para
cifrar el mensaje sólo una vez para todos los receptores, mientras
que se usa una parte menos conveniente de la clave de delegación
para cifrar una pequeña cantidad 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 cifrado puede
almacenarse en un almacén accesible públicamente, y la
transformación de delegación puede realizarse por el propietario del
documento A, el receptor B, o el almacenista donde
está almacenado físicamente el documento, dependiendo de las
necesidades de los sistemas reales de gestión y distribución de
documentos.
Con referencia ahora la Figura 11, el esquema se
ajusta de la misma forma que el esquema estándar de ElGamal (ver
Figura 6, descrita anteriormente). Además, se selecciona un esquema
de cifrado simétrico, de clave privada (etapa 1110). Esta función
de cifrado es m \mapsto E_{K}(m) y la
función de descifrado es r \mapsto
D_{K}(r), donde K es alguna clave
privada.
Para cifrar un documento m, el
propietario A elige primero uniformemente un número aleatorio
k \in Z^{\text{*}}_{p-1} (etapa
1112) y calcula una clave de sesión K = g^{k}(mod
p) (etapa 1114). Se calcula entonces el documento cifrado
(r, s):
(etapa 1116), donde a es la
clave privada de A. A mantiene el par (s,
k)
privado.
Ante la petición por un receptor B del
documento cifrado (r, s), A obtiene primero la
clave pública \beta auténtica de B (etapa 1118) y
recupera k del par (s, k) (etapa 1120).
A calcula entonces \pi_{B} = \beta^{k}s^{-1} (mod p) (etapa 1122), donde
s^{-1} es la inversa de s módulo p, como la
clave de delegación para B.
El documento se transforma entonces calculando
s' = s\pi_{B} (mod p) (etapa 1124); el par
(r, s') representa el documento transformado
personalizado para B.
Para descifrar el documento personalizado
(r, s') y recuperar el documento original m,
B recupera primero la clave de sesión calculando K =
(mod p) (etapa 1126), donde b^{-1} es la inversa de
b módulo p-1. Entonces se descifra el documento en sí
calculando m = D_{k} (r) (etapa 1128).
Como se describió anteriormente, una adaptación
de la presente invención es aplicable también a la aplicación de
protección de archivos. Normalmente, la protección de archivos en
sistemas no seguros tales como ordenadores portátiles y equipos en
red involucra un cifrado a largo plazo de los archivos. Por
consiguiente, las claves de cifrado usadas para el cifrado de
archivos tienen una vida mucho más larga que sus homólogas de
comunicación. Mientras que una clave secreta de usuario primaria, a
largo plazo, puede ser la representación fundamental de una
identidad del usuario en la red, hay un peligro de que pueda quedar
comprometida si se usa para muchos archivos durante un largo
período de tiempo. Si la clave primaria se pierde o roba, no sólo
quedan abiertos los contenidos de los archivos cifrados con ella,
sino que también pierde el usuario la información personal basada
en la clave tal como la cuenta de la tarjeta de crédito, número de
la seguridad social, etcétera. Por tanto, se prefiere a menudo usar
un método en línea en el que se deriva una nueva clave de descifrado
a partir de la clave primaria cada vez que se necesita cifrar un
archivo y que queda actualizado de forma regular.
Con los esquemas de cifrado por delegación
expuestos en la presente memoria, pueden generarse nuevas claves de
descifrado y actualizarse constantemente a través de la
auto-delegación para mantenerlas frescas. Una vez
que se crea una nueva clave y se genera una clave de delegación
correspondiente, la vieja clave secreta puede destruirse,
manteniendo la nueva clave y la clave de delegación la capacidad
para descifrar el archivo.
La Figura 12 muestra un esquema de protección
que archivos que usa una tarjeta inteligente para almacenar y
actualizar las claves de descifrado. Se basa de nuevo en el segundo
esquema de cifrado por delegación presentado en la presente
memoria, como se ilustra en la Figura 10.
Como se muestra en la Figura 12, para cifrar un
archivo m, un procesador integrado en una tarjeta inteligente
elige un número aleatorio k \in
Z^{\text{*}}_{p-1} (etapa 1210) y
calcula
(etapa 1212), donde a es la
clave privada de la tarjeta inteligente. El par (r, s)
representa el archivo m en forma
cifrada.
Cuando es necesario o deseado, por ejemplo cada
pocas semanas o tras un número predeterminado de accesos al
documento, la tarjeta inteligente genera otro número uniforme
aleatorio a'\in
Z^{\text{*}}_{p-1} (etapa 1214) y
calcula s' = (s^{a^{-1}})^{a'} (mod p)
(etapa 1216), donde a^{-1} es la inversa multiplicativa de
a módulo p-1. El archivo cifrado (r, s)
se sustituye entonces con (r, s') (etapa 1218), y la
clave de descifrado a se sustituye con una nueva clave de
descifrado a' (etapa 1220). Estas etapas
1214-1220 pueden repetirse tantas veces como se
desee.
Para recuperar el archivo original m a
partir de de su versión cifrada (r, s), el procesador
de la tarjeta inteligente usa la última clave de descifrado
a para calcular m = rs^{a{-1}} (mod p)
(etapa 1222).
Nótese que la etapa de cifrado del archivo puede
comenzar con cualquier clave secreta que él genere, no
necesariamente con la clave privada de la tarjeta inteligente.
Mantener frescos los archivos cifrados mediante
la actualización de los datos de cifrado con una parte de la
información generada por la tarjeta inteligente ayuda a mantener
copias únicas útiles de los archivos protegidos. Esto, en algún
sentido, proporciona también una protección de copia. Más aún, la no
conmutatividad del esquema hace inútiles a las copias previas del
archivo, mientras la correspondiente información secreta almacenada
en la tarjeta inteligente haya sido cambiada (y preferiblemente
destruida).
Aunque los ejemplos y algoritmos precedentes
emplean todos ellos varias adaptaciones del sistema de cifrado de
ElGamal, debería tenerse en cuenta que pueden adaptarse también
otros sistemas de cifrado por un esquema de acuerdo con la
invención.
Por ejemplo, el sistema de cifrado de clave
pública de Cramer-Shoup es un sistema de cifrado
recientemente propuesto que es el primer sistema de clave pública
práctico que es probablemente inmune al ataque de elección adaptiva
de texto cifrado. Ver R. Cramer y V. Shoup, "A Practical Public
Key Cryptosystem Provably Secure against Adaptive Chosen Ciphertext
Attack", actas de CRYPTO '98, Springer Verlag LNCS, vol.
1462, páginas 13-25 (1998). El ataque de elección
adaptiva de texto cifrado supone que el atacante puede tener partes
descifradas de cualquier texto cifrado elegido distinto del texto
cifrado objetivo. Por ejemplo, si el texto cifrado objetivo para el
que se desea el texto en claro es c, entonces el atacante
supone tener acceso a un "oráculo de descifrado" que
descifrará cualquier texto cifrado excepto c, incluyendo por
ejemplo c+1, 4c, etc. El RSA y ElGamal caen
fácilmente ante este tipo de ataques. Una noción diferente, pero
equivalente, de seguridad contra ataques activos se denomina
no-maleabilidad; sin embargo, los sistemas
no-maleables conocidos no son prácticos.
Se expone a continuación en la Figura 13 una
descripción de una versión libre de "hash" del sistema de
cifrado de Cramer-Shoup, cuya seguridad se basa
estrictamente en el problema de decisión de
Diffie-Hellman para un grupo arbitrario. A partir
de entonces se ilustrará como delegar el derecho a descifrar en un
esquema de Cramer-Shoup en dos situaciones
diferentes.
Con referencia inicialmente a la Figura 13, el
sistema se ajusta eligiendo G como un grupo de primer orden
q, donde q es grande (etapa 1310). El sistema supone
que los mensajes en texto en claro son (o pueden codificarse como)
elementos de G, y los mensajes de texto cifrado son elementos
de G^{4} = G \times G \times G
\times G; esto es, un mensaje de texto cifrado es cuatro
veces más largo que su correspondiente mensaje de texto en
claro.
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 "codificarse" elevando al cuadrado módulo
p, dando como resultado un elemento en G, y el mensaje
m puede recuperarse a partir de su codificado calculando la
única raíz cuadrada de su codificado módulo p, en el
conjunto {1,..., q}.
Una clave se genera como sigue. Primero, se
eligen elementos aleatorios g_{1}, g_{2} \in
G (etapa 1312), y se eligen elementos aleatorios
x_{1}, x_{2}, y_{11}, y_{12},
y_{21}, y_{22}, y_{31}, y_{32},
z \in Z_{q} (etapa 1314). A continuación, se
calculan los elementos de grupo c =
g_{1}^{x_{1}}g_{2}^{x_{2}}, d_{1} =
g_{1}^{y_{11}}g_{2}^{y_{12}}, d_{2} =
g_{1}^{y_{21}}g_{2}^{y_{22}}, d_{3} =
g_{1}^{y_{31}}g_{2}^{y_{32}}, h =
g_{1}^{z} (etapa 1316). Se calcula entonces la clave
pública siendo (g_{1}, g_{2}, c,
d_{1}, d_{2}, d_{3}, h) (etapa
1318) y la clave privada se calcula siendo (x_{1},
x_{2}, y_{11}, y_{12}, y_{21},
y_{22}, y_{31}, y_{32}, z) (etapa
1320).
Dado un mensaje m \in G, el
método de cifrado comienza eligiendo r \in Z_{q}
aleatoriamente (etapa 1322). Entonces se calcula el texto cifrado
(u_{1}, u_{2}, e, v) como sigue
(etapa 1324):
Dado el texto cifrado (u_{1},
u_{2}, e, v), el correspondiente algoritmo de
descifrado comprueba primero si v =
u_{1}^{x_{1}+u_{1}y_{11}+u_{2}y_{21}+ey_{31}} u_{2}^{x_{2}+u_{1}y_{12}+u_{2}y_{22}+ey_{32}} (etapa 1326). Si no, se rechaza el esfuerzo de descifrado (etapa 1328). En otro caso, el mensaje m se calcula m = e/u_{1}^{z} (etapa 1330).
u_{1}^{x_{1}+u_{1}y_{11}+u_{2}y_{21}+ey_{31}} u_{2}^{x_{2}+u_{1}y_{12}+u_{2}y_{22}+ey_{32}} (etapa 1326). Si no, se rechaza el esfuerzo de descifrado (etapa 1328). En otro caso, el mensaje m se calcula m = e/u_{1}^{z} (etapa 1330).
La corrección de un sistema cifrado puede
verificarse comprobando que el descifrado de un mensaje cifrado
produce el mensaje. En este caso, ya que u_{1} =
g_{1}^{r} y u_{2} = g_{2}^{r}, tenemos
u_{1}^{x_{1}}u_{2}^{x_{2}} =
g_{1}^{rx_{1}}g_{2}^{rx_{2}} = c^{r}. De
la misma forma,
Por tanto, para el texto cifrado válido, se
superará la prueba realizada en el algoritmo de descifrado.
La seguridad de este sistema de cifrado descansa
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ádruples aleatorios
(g_{1}, g_{2}, u_{1}, u_{2})
\in G^{4}, y (b) cuádruples aleatorios (g_{1},
g_{2}, u_{1}, u_{2}) \in
G^{4}, donde g_{1}, g_{2} son aleatorios
y u_{1} = g_{1}^{r} y u_{2} =
g_{2}^{r}, es algún número aleatorio r \in
Z_{q}.
Relacionado con el problema de decisión de
Diffie-Hellman está el problema de
Diffie-Hellman (dados g, g^{x} y
g^{y}, calcular g^{xy}), el problema del logaritmo
discreto (dados g y g^{x}, calcular x).
Dentro del tiempo polinómico, el problema de decisión de
Diffie-Hellman puede reducirse al problema de
Diffie-Hellman que a su vez puede reducirse al
problema del logaritmo discreto. Es esta relación entre los tres
problemas lo que conduce a la posibilidad de delegar el derecho a
descifrar para el sistema de Cramer-Shoup.
Supongamos que alguien desea delegar el derecho
a descifrar desde un delegador (Alicia, A) a un delegado
(Roberto, B). Supongamos que Alicia 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 Roberto 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').
Recordemos que para un mensaje en claro dado
m \in G, el mensaje de texto cifrado para el
delegador A 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}^{u_{1}r}d_{2}^{u_{2}r}d_{3}^{er}.
De forma similar, si el mensaje m se cifra directamente para
el delegado B, el mensaje de 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}^{u'_{1}r'}d'_{2}^{u'_{2}r'}d'_{3}^{e'r'},
donde r' es también un número aleatorio de Z_{q}.
Téngase en cuenta además que v =
(cd_{1}^{u_{1}}d_{2}^{u_{2}}d_{3}^{e})^{r}
y v' =
(c'd'_{1}^{u'_{1}}d'_{2}^{u'_{2}}d'_{3}^{e'})^{r'}.
Basándose en las ideas expuestas anteriormente,
delegar el derecho a descifrar desde A a B involucra
generar una clave de transferencia \pi, usar esa clave de
transferencia para transformar M en M'. En lo que
sigue, 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 (análogamente a los parámetros del sistema de ElGamal
descritos anteriormente). También, se supone que el número aleatorio
r' es el mismo que r. Bajo estas dos suposiciones,
los elementos u'_{1}, u'_{2} del mensaje de texto
cifrado de B son los mismos que los elementos
u_{1}, u_{2} del mensaje de texto cifrado de
A.
Con referencia ahora la Figura 14, el sistema se
ajusta eligiendo G como un grupo de primer orden q,
donde q es grande (etapa 1410). Entonces, como anteriormente,
se genera la clave como sigue. Primero, se eligen elementos
aleatorios g_{1}, g_{2} \in G (etapa
1412), y se eligen elementos aleatorios x_{1},
x_{2}, y_{11}, y_{12}, y_{21},
y_{22}, y_{31}, y_{32}, z \in
Z_{q} (etapa 1414). A continuación, se calculan los elementos de
grupo c = g_{1}^{x_{1}}g_{2}^{x_{2}}, d_{1} =
g_{1}^{y_{11}}g_{2}^{y_{12}}, d_{2} =, d_{3}
=, h = (etapa 1416). Se calcula entonces la clave pública
siendo (g_{1}, g_{2}, c, d_{1},
d_{2}, d_{3}, h) (etapa 1418) y la clave
privada se calcula siendo (x_{1}, x_{2},
y_{11}, y_{12}, y_{21}, y_{22},
y_{31}, y_{32}, z) (etapa 1420).
Dado un mensaje m \in G, el
método de cifrado comienza eligiendo r \in Z_{q}
aleatoriamente (etapa 1422). Entonces se calcula el texto cifrado
(u_{1}, u_{2}, e, v) como sigue
(etapa 1424):
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
Si está disponible la clave privada de B para
generar la clave de transferencia \pi, se obtiene esa
clave (etapa 1426) y entonces puede calcularse \pi (etapa
1428) como sigue:
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
donde
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
La transformación del texto cifrado es
entonces
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
Esto transforma el texto cifrado
(u_{1}, u_{2}, e, v) en
(u_{1}, u_{2}, e', v') (etapa
1430).
El receptor/delegado puede entonces descifrar el
texto cifrado transformado (u_{1}, u_{2},
e', v'). Como anteriormente, el algoritmo de
descifrado comprueba primero si v' =
u'_{1}^{x'_{1}+u'_{1}y'_{11}+u'_{2}y'_{21}+e'y'_{31}}
u'_{2}^{x'_{2}+u'_{1}y'_{12}+u'_{2}y'_{22}+e'y'_{32}} (etapa
1432). Si no, se rechaza el esfuerzo de descifrado (etapa 1434). En
otro caso, el mensaje m se calcula m =
e'/u'_{1}^{z'} (etapa 1436).
En el caso en que solo puede usarse la clave
pública del delegado B para delegar el derecho a descifrar
el mensaje desde el delegador A a B, se necesita saber
y usar el número aleatorio r usado inicialmente para cifrar
el mensaje para A. Esto puede ser un problema cuando la parte
que genera la clave de transferencia no es A, y no puede ser
un problema si la parte es, de hecho, A. En cualquier caso,
si está disponible, la clave de transferencia \pi puede
generarse usando la clave pública de B como sigue:
donde
La transformación de delegación es entonces
Es directo verificar, en cualquier caso, que el
delegado B puede usar su propia clave privada para descifrar
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 sobre el
sistema de cifrado de Cramer-Shoup son los mismos
que aquellos usados anteriormente con los sistemas de cifrado del
tipo de ElGamal, éstos son públicos y no conmutativos, asumiendo
que el problema de Diffie-Hellman y el problema del
logaritmo discreto son difíciles de resolver.
Como se describió anteriormente, a través de la
mejora de los esquemas comunes de cifrado de clave pública con la
capacidad de cifrado por delegación, se hace posible dar soporte al
descifrado designado flexible. Esta descripción ha presentado dos
esquemas de cifrado por delegación públicos y no conmutativos, que
han heredado los méritos de los esquemas existentes y descartado
sus inconvenientes. Se ha mostrado que los nuevos esquemas tienen
aplicaciones directas en la distribución de documentos masiva y en
la protección de archivos. La idea básica de estos nuevos esquemas
se ha aplicado también a sistemas de cifrado de otros tipos tales
como el sistema de cifrado de Cramer-Shoup,
mejorándolo en los esquemas de cifrado por delegación.
Mientras que se han descrito varios aspectos de
la presente invención con referencia a varios aspectos y sus
realizaciones, esas realizaciones se ofrecen en forma de ejemplo, no
como una limitación. La descripción detallada precedente de la
invención se ha presentado con la finalidad de ilustración y
descripción. No está dirigida a ser exhaustiva o a limitar la
invención a la forma precisa descrita, y obviamente son posibles
muchas modificaciones y variaciones a la luz de las enseñanzas
anteriores. Las realizaciones descritas se eligieron para explicar
mejor los principios de la invención y sus aplicaciones prácticas
para de ese modo permitir a otros expertos en las técnicas utilizar
mejor la invención en varias realizaciones y con varias
modificaciones como mejor se adapte al uso particular. Aquellos
expertos en la técnica podrán por medio de esta descripción realizar
varias adiciones o modificaciones obvias a las realizaciones
descritas en la presente memoria; esas adiciones y modificaciones
se considera que caen dentro del alcance de la presente invención.
Se pretende que el alcance de la invención se defina por las
reivindicaciones adjuntas a la presente memoria.
Claims (9)
1. Un método para cifrar un mensaje original
para pasarlo a un receptor por medio de un cedente, el método
comprende las etapas de:
la obtención de un mensaje cifrado
representativo del mensaje original, que se ha cifrado (912, 1012,
1424) el mensaje cifrado con una clave pública correspondiente al
cedente de acuerdo con un esquema de cifrado de clave pública;
la generación (916, 1016, 1428) de una clave de
delegación pública basándose en una clave privada que corresponde
al receptor y en la clave privada que corresponde a dicha clave
pública de dicho cedente, en donde se combinan dicha clave privada
del cedente y dicha clave privada del receptor; la combinación de
dichas claves privadas se basa en la resta de la clave privada del
cedente de la clave privada del receptor dentro del exponente de
una exponenciación modular; y
la aplicación (918, 1018, 1430) de la clave de
delegación pública para transformar el mensaje cifrado en un
mensaje transformado, en donde el mensaje transformado se puede
descifrar por el receptor usando la información seleccionada de
dicha clave privada que corresponde al receptor y la información
disponible de la clave pública.
2. El método de la reivindicación 1, en donde es
difícil desde el punto de vista del cálculo recuperar la clave
privada del cedente a partir de la clave de delegación pública.
3. El método de la reivindicación 1 ó 2, en
donde el mensaje cifrado se ha cifrado con un esquema de cifrado de
ElGamal.
4. El método de la reivindicación 1 ó 2, en
donde el mensaje cifrado se ha cifrado con un esquema de cifrado de
ElGamal modificado.
5. El método de la reivindicación 1 ó 2, en
donde el mensaje cifrado se ha cifrado con un esquema de cifrado de
Cramer-Shoup.
6. El método de cualquiera de las
reivindicaciones 1 a 5, en donde las etapas de recepción, generación
y aplicación se realizan por el cedente.
7. El método de la reivindicación 6,
comprendiendo además una etapa de obtención (914, 1014, 1426) de
dicha clave privada del receptor por dicho cedente.
8. El método de cualquiera de las
reivindicaciones 1 a 7, en donde el mensaje original se pasa a un
receptor a través de al menos un cedente intermedio adicional
repitiendo las etapas de generación de una clave de delegación
pública y transformando el mensaje cifrado por cada cedente
intermedio adicional.
9. El método de cualquiera de las
reivindicaciones 1 a 8, en donde dicho esquema de cifrado público es
un esquema de cifrado basado en el logaritmo discreto, en donde
dicha combinación de dichas claves privadas comprende el uso de la
diferencia modular de ambas claves privadas como un exponente en una
exponenciación modular.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/468,703 US7286665B1 (en) | 1999-04-06 | 1999-12-21 | System and method for transferring the right to decode messages |
US468703 | 1999-12-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2304929T3 true ES2304929T3 (es) | 2008-11-01 |
Family
ID=23860894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES00121783T Expired - Lifetime ES2304929T3 (es) | 1999-12-21 | 2000-10-05 | Metodo para transferir los derechos para decodificar mensales. |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP1113617B1 (es) |
JP (1) | JP4010766B2 (es) |
AT (1) | ATE397337T1 (es) |
DE (1) | DE60039022D1 (es) |
ES (1) | ES2304929T3 (es) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG103829A1 (en) * | 2000-01-28 | 2004-05-26 | Canon Kk | Digital contents distribution system, digital contents distribution method, roaming server, information processor, and information processing method |
AU2002221266A1 (en) | 2000-10-03 | 2002-04-15 | Omtool, Ltd | Electronically verified digital signature and document delivery system and method |
US7170997B2 (en) | 2000-12-07 | 2007-01-30 | Cryptico A/S | Method of generating pseudo-random numbers in an electronic device, and a method of encrypting and decrypting electronic data |
DE60127681T2 (de) * | 2001-10-19 | 2008-01-03 | Sony Corp. | System zum Inhaltsschutz und zur Kopierverwaltung für ein Netzwerk |
JP3864249B2 (ja) | 2002-06-04 | 2006-12-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 暗号通信システム、その端末装置及びサーバ |
JP4635009B2 (ja) | 2003-05-21 | 2011-02-16 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | 通信における証明された秘密値の使用 |
US8272058B2 (en) | 2005-07-29 | 2012-09-18 | Bit 9, Inc. | Centralized timed analysis in a network security system |
US8984636B2 (en) | 2005-07-29 | 2015-03-17 | Bit9, Inc. | Content extractor and analysis system |
US7895651B2 (en) | 2005-07-29 | 2011-02-22 | Bit 9, Inc. | Content tracking in a network security system |
JP5446453B2 (ja) * | 2009-04-30 | 2014-03-19 | ソニー株式会社 | 情報処理装置、電子署名生成システム、電子署名用の鍵生成方法、情報処理方法、及びプログラム |
JP5361920B2 (ja) | 2011-02-16 | 2013-12-04 | 株式会社東芝 | ファイルサーバシステム |
JP5377540B2 (ja) * | 2011-02-17 | 2013-12-25 | 株式会社東芝 | 鍵管理システム |
SG194762A1 (en) * | 2011-04-27 | 2013-12-30 | Toshiba Kk | Re-encryption key generator, re-encryption apparatus, and program |
JP5494603B2 (ja) * | 2011-09-29 | 2014-05-21 | 沖電気工業株式会社 | セキュリティ処理代行システム |
US9647835B2 (en) * | 2011-12-16 | 2017-05-09 | Akamai Technologies, Inc. | Terminating SSL connections without locally-accessible private keys |
JP5389212B2 (ja) | 2012-03-28 | 2014-01-15 | 株式会社東芝 | 再暗号文検証プログラム、再暗号化装置及び再暗号化システム |
JP6019453B2 (ja) | 2012-07-05 | 2016-11-02 | 株式会社クリプト・ベーシック | 暗号化装置、復号化装置、及びプログラム |
WO2014024956A1 (ja) * | 2012-08-08 | 2014-02-13 | 株式会社 東芝 | 再暗号化鍵生成装置、再暗号化装置、暗号化装置、復号装置及びプログラム |
DE102012017826A1 (de) | 2012-09-10 | 2014-03-13 | Giesecke & Devrient Gmbh | Verfahren zur Erstellung einer abgeleiteten Instanz eines Originaldatenträgers |
-
2000
- 2000-10-05 AT AT00121783T patent/ATE397337T1/de not_active IP Right Cessation
- 2000-10-05 DE DE60039022T patent/DE60039022D1/de not_active Expired - Lifetime
- 2000-10-05 ES ES00121783T patent/ES2304929T3/es not_active Expired - Lifetime
- 2000-10-05 EP EP00121783A patent/EP1113617B1/en not_active Expired - Lifetime
- 2000-12-11 JP JP2000375345A patent/JP4010766B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE60039022D1 (de) | 2008-07-10 |
EP1113617B1 (en) | 2008-05-28 |
JP2001202010A (ja) | 2001-07-27 |
ATE397337T1 (de) | 2008-06-15 |
JP4010766B2 (ja) | 2007-11-21 |
EP1113617A2 (en) | 2001-07-04 |
EP1113617A3 (en) | 2003-08-27 |
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 | |
ES2304929T3 (es) | Metodo para transferir los derechos para decodificar mensales. | |
US8094810B2 (en) | Unidirectional proxy re-encryption | |
US7817800B2 (en) | Cryptographic key split binder for use with tagged data elements | |
Puech et al. | A new crypto-watermarking method for medical images safe transfer | |
WO1990009009A1 (en) | Data carrier and data communication apparatus using the same | |
US7286665B1 (en) | System and method for transferring the right to decode messages | |
Suguna et al. | A study on symmetric and asymmetric key encryption algorithms | |
Ghosh et al. | Hybrid cryptography algorithm for secure and low cost communication | |
KR20010000738A (ko) | 계산적 디피-헬만 가정에 기반하는 안전성 증명 가능한공개키 암호화 방법 | |
ES2259592T3 (es) | Sistema y metodo para delegar derechos de decodificacion en esquemas de decodificacion simetricos. | |
Curry | An introduction to cryptography and digital signatures | |
Adebayo et al. | Data Privacy System Using Steganography and Cryptography | |
KR100388059B1 (ko) | 비대칭키 암호 알고리즘을 이용한 데이터 암호화 시스템및 그 방법 | |
EP1111838B1 (en) | System and method for cryptographically protecting data | |
TW510107B (en) | A coding system and method of secure data transmission | |
KR100323799B1 (ko) | 안전성이 증명가능한 타원곡선 공개키 암호화 시스템 | |
EP1699162A2 (en) | Method for document distribution | |
Kaur et al. | Cryptography in cloud computing | |
Rao et al. | Application of elliptical curve cryptography in empowering cloud data security | |
JPH10285154A (ja) | 完全守秘性暗号系を構成する鍵生成システム、認証付き鍵共有プロトコル、“One−Time Stream Cipher”、“One−Time passwored”及び鍵管理アルゴリズム | |
Poritz | Open Workbook of Cryptology | |
Tangri et al. | Cryptography Techniques and its Application |