ES2261135T3 - Sistema y metodo de proteccion criptografica de datos. - Google Patents
Sistema y metodo de proteccion criptografica de datos.Info
- Publication number
- ES2261135T3 ES2261135T3 ES00121767T ES00121767T ES2261135T3 ES 2261135 T3 ES2261135 T3 ES 2261135T3 ES 00121767 T ES00121767 T ES 00121767T ES 00121767 T ES00121767 T ES 00121767T ES 2261135 T3 ES2261135 T3 ES 2261135T3
- Authority
- ES
- Spain
- Prior art keywords
- key
- scheme
- message
- proxy
- 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
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000004891 communication Methods 0.000 claims description 6
- 230000001131 transforming effect Effects 0.000 claims description 4
- 238000009826 distribution Methods 0.000 abstract description 29
- 230000007774 longterm Effects 0.000 abstract description 6
- 230000009466 transformation Effects 0.000 description 70
- 238000012546 transfer Methods 0.000 description 49
- 238000000844 transformation Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 15
- 241000272534 Struthio camelus Species 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 7
- 230000001419 dependent effect Effects 0.000 description 7
- 238000006073 displacement reaction Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- HEFNNWSXXWATRW-UHFFFAOYSA-N Ibuprofen Chemical compound CC(C)CC1=CC=C(C(C)C(O)=O)C=C1 HEFNNWSXXWATRW-UHFFFAOYSA-N 0.000 description 5
- 238000013459 approach Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000012550 audit Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007850 degeneration Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/068—Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
-
- 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/56—Financial cryptography, e.g. electronic payment or e-cash
-
- 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)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
- Facsimile Transmission Control (AREA)
Abstract
Un método para proteger un archivo de datos en un sistema informático, incluyendo los pasos de: encriptar (1212) el archivo de datos usando una clave pública de un esquema de encriptado de clave pública para crear un archivo de datos encriptados; generar (1214) una nueva clave privada para sustituir la clave privada de dicho esquema de encriptado de clave pública; actualizar (1216) el archivo de datos encriptados con dicha nueva clave privada y dicha clave privada para crear un archivo actualizado de datos encriptados transformando la información clave del archivo de datos encriptados; sustituir (1218) el archivo de datos encriptados por el archivo actualizado de datos encriptados; y sustituir (1220) la clave privada por la clave nueva.
Description
Sistema y método de protección criptográfica de
datos.
La invención se refiere a métodos
criptográficos, y más en particular a sistemas y métodos para
proteger archivos de datos refrescando periódicamente una clave de
desencriptado.
Uno de los problemas más importantes que impiden
la amplia distribución de documentos digitales mediante comercio
electrónico es la falta actual de protección de los derechos de
propiedad intelectual de los propietarios del contenido durante la
distribución y el uso de dichos documentos digitales. Los esfuerzos
por resolver este problema se han denominado "Gestión de Derechos
de Propiedad Intelectual" ("IPRM"), "Gestión de Derechos
de Propiedad Digitales" ("DPRM"), "Gestión de Propiedad
Intelectual" ("IPM"), "Gestión de Derechos" ("RM")
y "Gestión de Copyright Electrónico" ("ECM").
Un documento, en el sentido en que el término se
usa aquí, es cualquier unidad de información sujeta a distribución
o transferencia, incluyendo, aunque sin limitación, correspondencia,
libros, revistas, diarios, periódicos, otros documentos, software,
fotografías y otras imágenes, clips audio y vídeo, y otras
presentaciones multimedia. Un documento se puede realizar en forma
impresa en papel, como datos digitales en un medio de
almacenamiento, o de cualquier otra manera conocida en varios
medios.
En el mundo de los documentos impresos, una obra
creada por un autor es enviada por lo general a un editor, que
formatea e imprime numerosos ejemplares de la obra. Los ejemplares
son enviados posteriormente por un distribuidor a las librerías u
otras tiendas minoristas, en las que los usuarios finales adquieren
los ejemplares.
Aunque la baja calidad de las copias y el alto
costo de distribuir material impreso han servido como elementos
disuasorios de la copia ilegal de la mayoría de los documentos
impresos, es mucho más fácil copiar, modificar y redistribuir
documentos electrónicos no protegidos. Por consiguiente, se necesita
algún método de proteger documentos electrónicos para hacer más
difícil copiarlos ilegalmente. Esto servirá como un elemento
disuasorio de la copia, aunque todavía es posible, por ejemplo,
hacer copias en papel de documentos impresos y duplicarlas al viejo
estilo.
Con documentos impresos, hay un paso adicional
de digitalizar el documento antes de que pueda ser redistribuido
electrónicamente; esto sirve como disuasorio. Por desgracia, se ha
reconocido ampliamente que no hay forma viable de evitar que la
gente realice distribuciones no autorizadas de documentos
electrónicos dentro de los actuales sistemas informáticos y de
comunicaciones de uso general tales como ordenadores personales,
estaciones de trabajo, y otros dispositivos conectados en redes de
área local (LANs), intranets, e Internet. Se ha demostrado que
muchos intentos de proporcionar soluciones basadas en hardware para
evitar la copia no autorizada no han tenido éxito.
Se ha empleado dos esquemas básicos para
intentar resolver el problema de la protección de documentos:
contenedores seguros y sistemas de confianza.
Un "contenedor seguro" (o simplemente un
documento encriptado) ofrece una forma de mantener encriptado el
contenido del documento hasta que se cumple una serie de condiciones
de autorización y se cumplen algunos términos de derechos de autor
(por ejemplo, pago por uso). Después de verificar las varias
condiciones y términos con el proveedor de documentos, el documento
se entrega al usuario en forma no cifrada. Productos comerciales
como Cryptolopes de IBM e Digiboxes de InterTrust pertenecen a esta
categoría. Claramente, el acercamiento de contenedor seguro
proporciona una solución para proteger el documento durante la
distribución por canales inseguros, pero no proporciona ningún
mecanismo para evitar que los usuarios legítimos obtengan el
documento no cifrado y después lo utilicen y redistribuyan en
violación de la propiedad intelectual del propietario del
contenido.
Los mecanismos criptográficos se utilizan
típicamente para encriptar (o "cifrar") documentos que después
se distribuyen y almacenan públicamente, y en último término son
descifrados privadamente por usuarios autorizados. Esto proporciona
una forma básica de protección durante la distribución de documentos
de un distribuidor de documentos a un usuario deseado por una red
pública, así como durante el almacenamiento de documentos en un
medio inseguro.
En el acercamiento del "sistema de
confianza", todo el sistema es responsable de evitar el uso y la
distribución no autorizados del documento. Crear un sistema de
confianza implica en general introducir hardware nuevo tal como un
procesador seguro, almacenamiento seguro y dispositivos de
renderización seguros. Esto requiere también que todas las
aplicaciones de software que se ejecuten en sistemas de confianza
tengan el certificado de ser de confianza. Aunque la construcción
de sistemas de confianza a prueba de manipulación todavía es un reto
real para las tecnologías actuales, las actuales tendencias del
mercado sugieren que los sistemas abiertos y no de confianza, tales
como PCs y estaciones de trabajo, serán los sistemas dominantes
utilizados para acceder a documentos con copyright. En este
sentido, los actuales entornos informáticos, tales como PCs y
estaciones de trabajo, equipados con sistemas operativos populares
(por ejemplo, Windows y UNIX) y aplicaciones de renderización (por
ejemplo, Microsoft Word) no son sistemas de confianza y no se pueden
hacer de confianza sin alterar considerablemente sus
arquitecturas.
Por consiguiente, aunque algunos componentes de
confianza pueden ser desplegados, se debe continuar confiando en
varios elementos y sistemas desconocidos y no de confianza. En tales
sistemas, aunque se espera que sean seguros, se encuentran y
explotan frecuentemente errores no anticipados y debilidades.
Surge un problema particular en el contexto de
la distribución de documentos, como se describe en general
anteriormente. En el modelo tradicional de distribución de
documentos, el autor del contenido y el editor no realizan
típicamente la distribución; esa responsabilidad se le encomienda a
una parte separada con pericia en la distribución. Además, aunque
es posible encriptar un documento (usando técnicas estándar) de
manera que múltiples receptores puedan desencriptarlo, no se conoce
en general al tiempo de crear una obra quienes serán los usuarios
últimos. Tiene más sentido que el distribuidor determine quienes
serán los usuarios finales, y distribuirles el documento según se
desee. Si, como en el modelo tradicional, la obra original del autor
se envía a un editor y un distribuidor sin cifrar, es un punto de
vulnerabilidad de la obra.
Surge un problema similar en entornos de
oficina, por ejemplo, en los que frecuentemente es deseable designar
lo que de varias formas se llama un agente, sustituto o delegado
del documento. En esta situación, con frecuencia es útil poder dar
a un auxiliar administrativo o secretario el derecho de desencriptar
algún documento no destinado directamente a dicha persona.
Considerando el problema en sentido más amplio,
en un entorno de red, con frecuencia se pasan mensajes a receptores
distintos de los previstos inicialmente. Cuando la confidencialidad
del mensaje es una preocupación y se envían mensajes encriptados,
es muy deseable permitir a una persona desencriptar estos mensajes
por cuenta de otro. Para ser concretos, supóngase que Bob es quien
tiene que leer algún mensaje que está encriptado inicialmente para
Alice. Una solución trivial es que Alice revele simplemente su clave
de desencriptado a Bob de manera que Bob la pueda utilizar para
desencriptar el mensaje. Esto requiere que Alice confíe en Bob
totalmente, lo que puede no ser aceptable para Alice. Otra forma de
llevar a cabo esta tarea es dejar que Alice desencripte primero el
mensaje, lo reencripte después para Bob y finalmente envíe el
mensaje recién encriptado a Bob de manera que él lo pueda
desencriptar. Aunque el mensaje se comunica con seguridad, esta
solución es menos eficiente puesto que requiere dos operaciones de
desencriptado y una de encriptado para que Bob reciba el mensaje.
Más importante, en algunas situaciones dicha solución de
reencriptado ni siquiera es aplicable o deseable. Por ejemplo,
Alice puede no tener acceso al mensaje encriptado, puesto que puede
ser enviado por su originador directamente a Bob por eficiencia de
comunicación y otras consideraciones. Además, desencriptar el
mensaje encriptado a una versión sin cifrar, aunque solamente
durante un tiempo corto, puede ser una vulnerabilidad
sustancial.
EP 0892521 A2 sugiere un método para ampliar el
tiempo en el que se puede verificar una firma digital más allá de
la expiración de los certificados de los que depende dicha firma. Se
utiliza una facilidad de archivo para almacenar información
criptográfica tal como certificados y listas de posición de
certificados además de información no criptográfica tal como
declaraciones de política de confianza o el documento propiamente
dicho. Cuando un usuario desea verificar la firma en un documento,
un servidor de verificación de firma a largo plazo recrea el estado
preciso de la información criptográfica al tiempo en que el
documento se presentó originalmente. El servidor de verificación de
firma a largo plazo restablece el estado, y el proceso de
verificación de firma ejecuta el proceso exacto que habría
realizado antes. El problema de la degradación de la clave y
algoritmo en un período significativo de tiempo se resuelve
contrafirmando periódicamente todos los datos que precisan refresco
criptográfico mediante la utilización de firmas anidadas. Cada
contrafirma tiene el efecto de bloquear la fortaleza criptográfica
de las firmas encerradas.
El objeto de la presente invención es
proporcionar un método y sistema más eficiente y menos amplio para
proteger un archivo de datos en un sistema informático.
El objeto se resuelve por la materia de las
reivindicaciones independientes.
Realizaciones preferidas de la presente
invención se definen en las reivindicaciones dependientes.
Cómo transferir el derecho a desencriptar de un
tenedor de clave a otro de forma segura y eficiente es el objeto de
encriptado proxy. Recientemente se han propuesto algunos esquemas
específicos de encriptado proxy para convertir mensajes encriptados
para una clave a mensajes encriptados para otro sin revelar claves
de encriptado secretas y mensajes originales al público. Mambo y
Okamoto han introducido varios esquemas privados de encriptado
proxy, no conmutativos, independientes del mensaje. Blaze y Strauss
han introducido un esquema público de encriptado proxy,
conmutativo, independiente del mensaje.
En esta descripción, el mismo problema general
es resuelto inicialmente pero en el contexto más general de
esquemas de codificación. Los esquemas de codificación considerados
en esta descripción difieren de los esquemas de encriptado o
criptosistemas en que no tienen necesariamente ningún requisito
relacionado con la seguridad. Para que un esquema de codificación
sea un esquema de encriptado, es necesario que una persona que
escuche, al ver un mensaje codificado, no sea capaz de determinar
el mensaje original o la clave usada para decodificar el mensaje.
Trabajar con esquemas de codificación hace posible crear
aplicaciones con ligera seguridad pero alta eficiencia de
implementación, tal como la distribución eficiente y masiva de
documentos y la actualización de texto cifrado con nuevas claves
para proteger mensajes encriptados a largo plazo. En esta
descripción, se define una clase de esquemas de codificación, y se
dan varios esquemas ejemplares. También se ofrece aquí Un proceso
con el que se pueden construir nuevos esquemas usando los
existentes.
A continuación se presentan varios esquemas de
encriptado proxy más formales. Un esquema de encriptado proxy es un
esquema encriptado que permite a un tenedor de clave designado
desencriptar mensajes por cuenta de otro tenedor de clave. Esta
descripción introduce dos nuevos esquemas de encriptado proxy en
base al esquema ElGamal conocido, con mejores funcionalidades sobre
esquemas de encriptado proxy existentes. Son públicos en el sentido
de que la información relacionada con proxy y las transformaciones
se pueden hacer con seguridad para el público, y al mismo tiempo no
son conmutativos en términos de relaciones de confianza entre
tenedores de clave implicados. También se presentan aplicaciones de
estos nuevos esquemas a la distribución masiva de documentos y la
protección de archivos.
La idea básica en los métodos presentes en esta
descripción es la siguientes: para que Alice transfiera el derecho
a decodificar a Bob, Alice genera una clave de transferencia t para
Bob. Con la clave de transferencia t, Bob puede
re-encriptar el mensaje inicialmente codificado para
Alice y después desencriptarlo usando su propia clave. de forma muy
parecida al encriptado proxy, la transferencia se lleva a cabo de
tal forma que la clave de transferencia no revele explícitamente
las claves de decodificación de Alice o Bob, o el mensaje
original.
Cómo delegar el derecho a desencriptar de un
tenedor de clave a otro de formas seguras y eficientes es el objeto
de encriptado proxy. Muy recientemente se han propuesto algunos
esquemas específicos de encriptado proxy para convertir mensajes
encriptados para una clave a mensajes encriptados para otro sin
revelar claves de encriptado secretas ni los mensajes originales al
público. Mambo y Okamoto han descrito tres esquemas de encriptado
proxy para los esquemas de encriptado ElGamal y RSA. M. Mambo y E.
Okamoto, "Proxy cryptosystems: Delegation of the power to decrypt
ciphertexts", IEICE Trans. on Fundamentals, Vol.
E80-A, 1, páginas 54-63 (1997).
Para la situación mencionada anteriormente, sus esquemas tienen
mejor rendimiento computacional que el esquema de reencriptado,
pero por razones de seguridad requieren la presencia del tenedor de
clave original Alice en la conversión del mensaje. Además, los
esquemas propiamente dichos no ayudan a especificar quien es el
tenedor de clave en el que Alice desea delegar el derecho de
desencriptado. El esquema propuesto por Blaze y Strauss, por otra
parte, no tiene estos inconvenientes. Es una modificación del
esquema de encriptado ElGamal. M. Blaze y M. Strauss, "Proxy
Cryptography", Borrador, AT&T Research Labs,
ftp://ftp.research.art.com/dist/mab/proxy.ps (Mayo 1997). Una
característica muy llamativa del esquema de Blaze y Strauss es que
permite comunicar información relacionada proxy y realizar la
conversión de mensajes en público. Pero introduce un problema más
grave: es conmutativo en el sentido de que Bob es capaz de obtener
la clave de desencriptado de Alice. Este tipo de conmutatividad
convierte en obsoleto el esquema de encriptado proxy, puesto que
todo el esquema se puede simplificar bien dando la clave de Alice a
Bob y dejando que Bob realice el desencriptado. otra cuestión (no
necesariamente un problema) creada por este esquema es que, una vez
que Alice ha dado a Bob el derecho de desencriptado, puede
desencriptar todos los mensajes destinados originalmente a Alice.
Esta independencia del mensaje puede ser útil en algunos casos tal
como autodelegación, pero no será deseable en muchas aplicaciones
prácticas donde el tenedor de clave original desea ser selectivo
sobre en qué mensajes está permitido el desencriptado delegado.
Por consiguiente, los esquemas de encriptado
proxy según la presente invención reivindicada en las
reivindicaciones independientes 1 y 5, que son públicos y no
conmutativos, eliminan algunas de las desventajas de otros
criptosistemas conocidos.
A continuación se introducen en esta descripción
dos nuevos esquemas de encriptado proxy. Se basan en el esquema de
encriptado de clave pública ElGamal y tienen un rendimiento
computacional comparable. Esencialmente, conservan las
características deseables siguientes de los esquemas existentes: (i)
públicos: no se requiere la presencia del tenedor de clave original
después de generar información proxy, y la información relacionada
proxy y las operaciones se pueden comunicar y realizar en público;
(ii) no conmutativos: los tenedores de clave no tienen que confiar
entre sí con respecto a sus claves de desencriptado privadas; y
(iii) restringidos: se especifica el tenedor de clave en quien se
delega el derecho de desencriptado, y la información proxy (clave)
es dependiente del mensaje.
Finalmente, la delegación del derecho a
desencriptar mensajes se describe a continuación en el contexto del
criptosistema Cramer-Shoup, que tiene algunas
ventajas sobre otros sistemas.
Estas y otras características y ventajas de la
presente invención son evidentes por las figuras como se describe
completamente en la Descripción detallada de la invención.
La figura 1 es un diagrama de bloques de un
sistema de distribución de documentos electrónicos.
La figura 2 es un diagrama de bloques que
ilustra las operaciones de codificación realizadas al delegar la
autoridad para desencriptar un mensaje en un método según aspectos
de la invención.
La figura 3 es un diagrama de flujo que ilustra
los pasos generales realizados al transformar un mensaje codificado
para decodificación por otro.
La figura 4 es un diagrama de bloques que
ilustra esquemáticamente las partes implicadas en un sistema
adaptado para la delegación de la autoridad para desencriptar
mensajes.
La figura 5 es un diagrama de flujo que ilustra
los pasos realizados en un esquema genérico de encriptado proxy.
\newpage
La figura 6 es un diagrama de flujo que ilustra
los pasos realizados al encriptar y desencriptar un mensaje según
el criptosistema ElGamal.
La figura 7 es un diagrama de flujo que ilustra
los pasos realizados en un esquema de encriptado y desencriptado
proxy basado en ElGamal conocido propuesto por Mambo y Okamoto.
La figura 8 es un diagrama de flujo que ilustra
los pasos realizados en un esquema de encriptado y desencriptado
proxy basado en ElGamal conocido propuesto por Blaze y Strauss.
La figura 9 es un diagrama de flujo que ilustra
los pasos realizados en una primera realización de un esquema de
encriptado y desencriptado proxy basado en ElGamal según aspectos de
la invención.
La figura 10 es un diagrama de flujo que ilustra
los pasos realizados en una segunda realización de un esquema de
encriptado y desencriptado proxy basado en ElGamal según aspectos de
la invención.
La figura 11 es un diagrama de flujo que ilustra
los pasos realizados en un esquema de distribución de
documentos.
La figura 12 es un diagrama de flujo que ilustra
los pasos realizados en un esquema de protección de archivos según
la invención reivindicada en las reivindicaciones 1 a 8.
La figura 13 es un diagrama de flujo que ilustra
los pasos realizados al encriptar y desencriptar un mensaje según
el criptosistema Cramer-Shoup.
Y la figura 14 es un diagrama de flujo que
ilustra los pasos realizados en un ejemplo de un esquema de
encriptado y desencriptado proxy basado en
Cramer-Shoup.
Las figuras se explican más plenamente en la
descripción detallada siguiente de la invención.
Los aspectos generales de la invención se
describen más adelante, con referencia a realizaciones ilustrativas
detalladas. Será evidente que la invención se puede realizar en una
amplia variedad de formas, algunas de las cuales pueden ser
bastante diferentes de las de las realizaciones descritas. En
consecuencia, los detalles estructurales y funcionales específicos
aquí descritos son meramente representativos.
La figura 1 representa un modelo funcional de
nivel superior para un sistema para la distribución electrónica de
documentos, que, como se ha definido anteriormente, pueden incluir
correspondencia, libros, revistas, diarios, periódicos, otros
documentos, software, clips audio y vídeo, y otras presentaciones
multimedia.
Un autor (o editor) 110 crea un contenido
original de documento 112 y lo pasa a un distribuidor 114 para
distribución. Aunque se contempla que el autor también pueda
distribuir documentos directamente, sin que participe otra parte
como un editor, la división de trabajo expuesta en la figura 1 es
más eficiente, porque permite al autor/editor 110 concentrarse en
la creación de contenido, y el distribuidor 114 no asume las
funciones mecánicas y mundanas. Además, tal división permitiría al
distribuidor 114 realizar economías de escala por asociación con
varios autores y editores (incluyendo el autor/editor ilustrado
110).
El distribuidor 114 pasa después el contenido
modificado 116 a un usuario 118. En un modelo típico de distribución
electrónica, el contenido modificado 116 representa una versión
reencriptada del contenido original encriptado 112; el distribuidor
114 descifra primero el contenido original 112 y después lo
reencripta con la clave pública del usuario 118; dicho contenido
modificado 116 es personalizado solamente para el único usuario 118.
El usuario 118 es capaz entonces de usar su clave privada para
desencriptar el contenido modificado 116 y ver el contenido original
112.
Un pago 120 por el contenido 112 se pasa del
usuario 118 al distribuidor 114 por medio de una cámara de
compensación 122. La cámara de compensación 122 recoge peticiones
del usuario 118 y de otros usuarios que desean ver un documento
concreto. La cámara de compensación 122 también recoge información
de pago, tal como transacciones de débito, transacciones con
tarjeta de crédito, u otros esquemas conocidos de pago electrónico,
y envía los pagos recogidos del usuario como un lote de pagos 124
al distribuidor 114. Naturalmente, se espera que la cámara de
compensación 122 retenga una parte del pago del usuario 120. A su
vez, el distribuidor 114 retiene una porción del lote de pagos 124
y envía un pago 126 (incluyendo derechos de autor) al autor y editor
110. En una realización de este esquema, el distribuidor 114 espera
un paquete de peticiones de usuario para un documento único antes
de enviar nada. Cuando se realiza esto, se puede generar un
documento único con contenido modificado 116 para desencriptado por
todos los usuarios solicitantes. Esta técnica es conocida en la
materia. Mientras tanto, cada vez que el usuario 118 pide (o usa)
un documento, se envía un mensaje de contabilidad 128 a un servidor
de auditoría 130. El servidor de auditoría 130 garantiza que cada
petición realizada por el usuario 118 coincida con un documento
enviado por el distribuidor 114; la información contable 131 es
recibida por el servidor de auditoría 130 directamente del
distribuidor 114. Las inconsistencias son transmitidas mediante un
informe 132 a la cámara de compensación 122, que entonces puede
ajustar los lotes de pago 124 efectuados al distribuidor 114. Este
esquema de contabilidad está presente para reducir la posibilidad de
fraude en este modelo de distribución electrónica de documentos,
así como para manejar cualesquiera permisos de uso dependientes del
tiempo que puedan dar lugar a cargos que varíen, dependiendo de la
duración u otra magnitud de uso.
El modelo anterior para comercio electrónico en
documentos, representado en la figura 1, es de uso común hoy día.
Como se mostrará con detalle a continuación, es igualmente aplicable
al sistema y método aquí expuestos para la distribución de
documentos autoprotectores.
Por razones de simplicidad, considérense
inicialmente esquemas de codificación del tipo siguiente. Un sistema
de codificación consta de cuatro componentes: (i) un espacio de
mensaje X que es una colección de mensajes posibles, (ii) un
espacio de clave K que es un conjunto de claves posibles, (iii) una
transformación de codificación computacionalmente eficiente E: K x
X \rightarrow X y (iv) una transformación de decodificación
computacionalmente eficiente D: K x X \rightarrow X. Para cada k
\in K, la transformación de codificación E_{k}: X \rightarrow
X y la transformación de decodificación D_{k:} X \rightarrow X
son aplicaciones inyectivas (uno a uno) en X, y cumplen que, para
cada mensaje, x \in X,
D_{k}
(E_{k}(x)) =
x.
Ciertamente, tales esquemas de codificación
definidos se pueden variar de varias formas para cubrir un rango
más amplio. Uno es diferenciar el espacio de mensajes codificados
del de los mensajes originales, y otro es considerar que las claves
usadas para codificación y decodificación son diferentes. En
términos de criptografía, los esquemas de codificación considerados
a continuación son esencialmente criptosistemas endomórficos de
clave esencialmente privada (o, más exactamente, simétricos).
Tales esquemas de codificación definidos tienen
algunas propiedades ventajosas. Dado un esquema de codificación (X,
K, E, D), cada transformación de codificación y su transformación de
decodificación correspondiente son transformación inversa una de
otra; es decir, para cada k \in K,
D_{k} =
(E_{k})^{-1}
\hskip0.5cmy
\hskip0.5cmE_{k} = (D_{k})^{-1}.
Si X es un conjunto finito, cada transformación
de codificación o decodificación es una permutación en X.
Los esquemas de encriptado de clave simétrica
clásicos son esquemas de codificación. He aquí algunos.
Esquema XOR X. En este esquema, el
espacio de mensaje X es el conjunto B_{n} de todas las cadenas
binarias de n bits para algún entero n>0, y así es el espacio de
clave K. El número de mensajes posibles y el número de claves
posibles son 2^{n}. Para cada mensaje x y cada clave k, la
codificación es
y=E_{k}(x)=x\varoplus
k
y la decodificación del mensaje y
es
x=D_{k}(y)=y\varoplus
k;
donde \varoplus representa la
operación XOR (O exclusivo) a nivel de
bit.
Esquema multiplicativo M. Un mensaje en
este esquema es un elemento en X = Z_{n} = [0,1,...,
n-1] para algún entero n>0. Una clave también es
un elemento a en Z_{n} pero cumpliendo gcd(a, n)=1, donde
la función "gcd" especifica el mayor divisor entero común de
los dos argumentos. Es decir, el espacio de clave K consta de los
elementos en el grupo multiplicativo Z*_{n} = {a \in Z_{n} |
gcd(a,n)=1). La codificación de un mensaje x con una clave a
es
y=E_{a}(x)=ax(mod \
n)
y la decodificación de un mensaje y
con una clave a
es
x=D_{a}(y)=a^{-1}y(mod \
n),
donde a^{-1} es la inversa
multiplicativa de un módulo n; es decir, a^{-1} es un elemento en
Z_{n} de tal manera que aa^{-1}(mod n) =
a^{-1}a(mod n)=1. Obsérvese que la condición en a,
gcd(a,n)=1, se utiliza para garantizar que a tenga la
inversa a^{-1}. Es sabido que el número de tales a es igual al
valor de la función phi
Euler
donde
es la descomposición en primos de
n. Así, el número de claves en el esquema M es
\Phi(n).
Esquema de desplazamiento S. Mensajes y
claves del esquema de desplazamiento son todos los elementos en
Z_{n}= {0,1,...,n-1} para algún entero n>0; es
decir, X=K=Z_{n}. Así, el número de mensajes y el número de claves
en el esquema de desplazamiento son todos iguales a n. Para
codificar un mensaje x con una clave b, se calcula
y=E_{b}(x)=x+b
\ (mod \
n)
y para decodificar un mensaje y con
b, se
calcula
x=D_{b}(y)=y-b \
(mod \
n).
Esquema de sustitución P. Este esquema
también se define sobre X=Z_{n}. Sin embargo, el espacio de clave
K=\Pi_{n} consta de todas las permutaciones de elementos en
Z_{n}. Así, el número total de claves es n!. Para cada
permutación p \in \Pi_{n}, la codificación es
y=E_{p}(x)=p(x),
mientras que la decodificación
es
x=D_{p}(y)=p^{-1}(y),
donde p^{-1} es la permutación
inversa de
p.
Se deberá observar que los esquemas
multiplicativo y de desplazamiento son casos especiales del esquema
de sustitución que incluyen solamente \Phi(n) y n de las
n! permutaciones posibles de n elementos, respectivamente.
Se puede construir nuevos esquemas de
codificación combinando los existentes. Una forma es formar su
"producto". Supóngase que S y S' son dos esquemas de
codificación con el mismo espacio de mensaje X. El producto de S y
S', denotado por SxS', tiene el mismo espacio de mensaje X. Una
clave del esquema producto tiene la forma (k k'), donde k y k' son
claves de S y S', respectivamente Las transformaciones de
codificación y decodificación del esquema producto se definen como
sigue: para cada clave (k,k')\in K,
E_{(k,k')}(x)=E_{k'}(E_{k}(x))
y
D_{(k,k')}(x)=D_{k}(D'_{k'}(c)).
Es decir, el mensaje x se codifica primero con
E_{k}, y el mensaje resultante se "recodifica" después con
E_{k'}. La decodificación es similar, pero se realiza en el orden
inverso.
Es sencillo comprobar que la construcción de
producto siempre es asociativa: (SxS')xS''=Sx(S'xS''). Si se
toma un esquema de codificación S para formar el producto, se
obtiene el esquema SxS, denotado por S^{2}. Si se toma el
producto n veces, el esquema resultante, denotado por S^{n}, se
denomina un esquema de codificación iterado.
Un ejemplo simple para ilustrar la definición de
esquemas de codificación producto es el siguiente.
Esquema afín A. Este esquema también se
define sobre X=Z_{n}. Una clave del esquema afín es un par de
enteros (a, b) en Z_{n}, donde gcd(a,n)=1. La
transformación de codificación es
y=E_{(a,b)}(x)=(ax+b) \ (mod \
n)
\newpage
y la transformación de decodificación es
x=D_{(a,b)}(y)=a^{-1}(y-b)
\ (mod \
n)
donde a^{-1} es la inversa
modular de a módulo n. Estas transformaciones del tipo ax+b se
denominan de ordinario transformaciones afines, de ahí el nombre
esquema afín. Obsérvese que el esquema A se reduce al esquema
multiplicativo M cuando b=0 y el esquema de desplazamiento S cuando
a=1. Así, M y S son casos especiales de A. Por otra parte, A es su
producto MxS. Como se ha observado anteriormente, una clave en el
esquema multiplicativo M es un elemento a \in Z*_{n}; la
transformación de codificación correspondiente es
E_{a}(x)=ax(mod n). Una clave en el esquema de
desplazamiento es un elemento b \in Z_{n}, y la transformación
de codificación correspondiente es E_{b}(x)=x+b (mod n).
Por lo tanto, una clave en el esquema producto MxS tiene la forma
(a,b) \in Z*_{n}xZ_{n}, y su codificación
es
E_{(a,b)}(x)=E_{b}(E_{a}(x))=ax+b
\ (mod \
n).
Ésta es exactamente la definición de la
transformación de codificación en el esquema afín. Igualmente, la
transformación de decodificación en el esquema afín es la
composición de las transformaciones de decodificación de los
esquemas de desplazamiento y multiplicativo.
El objetivo de transferir el derecho a
decodificar mensajes en cualquier esquema de codificación dado (X,
K, E, D) se puede afirmar como sigue: para cualquier mensaje dado x
\in X y claves k, k' \in K, convertir de alguna forma eficiente
el mensaje codificado y=E_{k}(x) usando la clave k en el
mensaje codificado y=E_{k'}(x) usando la clave k' de
manera que el mensaje nuevo y' se pueda decodificar correctamente
usando la clave k'. Si se puede lograr esto, se dice que el derecho
a decodificar el mensaje y se ha transferido o delegado del tenedor
de clave de k al tenedor de clave de k'.
La figura 2 ilustra la transformación \pi 210
que es necesaria para lograr el objetivo. Las líneas gruesas 212,
214 y 216 que representan transformaciones E_{k}, \pi, y
D_{k'} respectivamente, forman una secuencia de pasos que
codifica un mensaje x con una clave k, convierte el mensaje
codificado en el otro codificado con otra clave k', y decodifica el
mensaje usando la clave k'. Las líneas finas 218 y 220, que
representan las transformaciones E_{k}, y D_{k},
respectivamente, muestran otras operaciones de codificación y
decodificación posibles que se puede realizar.
En muchos casos, el espacio de clave K de un
esquema de codificación no es meramente un conjunto. Equipado con
alguna operación "\cdot", K puede poseer alguna estructura
matemática. Por ejemplo, los espacios de clave de todos los
esquemas ejemplares dados en la sección anterior pueden estar
equipados con algunas operaciones para convertirse en grupos
matemáticos. La Tabla 1 siguiente muestra algunas de estas
operaciones, donde ° representa el operador de composición de las
permutaciones y
\text{*}
:(Z_{n}^{\text{*}} \times Z_{n})\times (Z_{n}^{\text{*}} \times
Z_{n})\rightarrow Z_{n}^{\text{*}} \times
Z_{n}
se define
como
(a,b)\text{*} (a',b')=(a'a
\ (mod \ n), a'b+b' \ (mod \
n)).
| Esquema | Espacio de clave "K" | Operación "\cdot" |
| X | B_{n} | \varoplus(XOR) |
| M | Z*_{n} | x(mod n) |
| S | Z_{n} | +(mod n) |
| P | \Pi_{n} | ° composición |
| A | Z*_{n}xZ_{n} | * (definido anteriormente) |
Cuando el espacio de clave K de un esquema de
codificación (X, K, E, D) es un grupo con alguna operación
"\cdot", las transformaciones de codificación y
decodificación pueden ser determinadas únicamente por las claves.
Este sucede cuando el espacio de clave K es isomórfico, como un
grupo, para los grupos de transformación E=(E_{k}|k \in K) y
D=(D_{k}|k \in K) formados por las transformaciones de
codificación y decodificación en el espacio de mensaje X; es decir,
para cualquier k, k' \in K,
D_{k}=(E_{k})^{-1}=E_{k^{-1}}
\hskip0.5cmy
\hskip0.5cmE_{k} \circ E_{k'}=E_{k-k'}
y
E_{k}=(D_{k})^{-1}=D_{k^{-1}}
\hskip0.5cmy
\hskip0.5cmD_{k} \circ D_{k'}=D_{k-k'},
donde ° es el operador de
composición de las transformaciones, que se define, por ejemplo,
como
E_{k} \circ
E_{k'}(x)=E_{k'}(E_{k}(x))
para todo x \in
X.
Se puede comprobar fácilmente que todos los
esquemas dados en la Tabla 1 anterior están determinados por clave.
Los esquemas de codificación determinados por clave permiten una
forma sistemática de transferir el derecho a decodificar mensajes
de un tenedor de clave a otro. Con el isomorfismo entre el espacio
de clave y los grupos de transformación, la composición de la
transformación de decodificación con una clave k y la transformación
de codificación con otra clave k' se puede considerar entonces como
la transformación de codificación determinada por la clave
compuesta k^{-1}\cdotk. Sea (X, K, E, D) un esquema de
codificación determinado por clave. Supóngase que
y=E_{k}(x) es la versión codificada del mensaje x \in X
con la clave k \in K. El derecho a decodificar el mensaje
codificado de x puede ser transferido del tenedor de clave de k al
tenedor de clave de k' en el algoritmo de dos pasos mostrado en la
figura 3.
Generar en primer lugar una clave de
transferencia t=k^{-1}\cdotk (paso 310). Codificar
posteriormente el mensaje con la clave de transferencia t según
y'=E_{r}(y) (paso 312).
El algoritmo es correcto gracias a que la
propiedad del espacio de clave es isomórfica a los grupos de
transformación de codificación y decodificación. La corrección se
puede verificar como sigue:
- \quad
- D_{k'}(y')= D_{k'}(E_{t}(y))
- \quad
- = D_{k'}(E_{k^{-1}-k'}(y))
- \quad
- = D_{k'}(E_{k'}(E_{k^{-1}}(y)))
- \quad
- = E_{k^{-1}}(y)
- \quad
- = D_{k}(y)
- \quad
- = D_{k}(E_{k}(x))
- \quad
- = x
La generalidad del algoritmo hace inmediato
derivar los pasos de transferencia para los esquemas ejemplares
expuestos anteriormente. Con referencia de nuevo a la figura 3, para
el esquema XOR X sobre B_{n}, para convertir y=E_{k}(x)
a y'=E_{k'}(x), generar primero una clave de transferencia
r=k\varoplus+k' (paso 310). Codificar posteriormente el mensaje
con la clave de transferencia t según y'= y\varoplust (paso
312).
Para el Esquema Multiplicativo M sobre Z*_{n},
para convertir y=E_{a}(x) a y'=E_{a'}(x), generar
primero una clave de transferencia t=a'a^{-1} (mod n) (paso 310).
Codificar posteriormente el mensaje con la clave de transferencia t
según y'=ty (mod n) (paso 312).
Para el Esquema de Desplazamiento S sobre
Z_{n}, para convertir y=E_{b}(x) a y'=E_{b'}(x),
generar primero una clave de transferencia t=b'-b
(mod n) (paso 310). Codificar posteriormente el mensaje con la clave
de transferencia t según y=y+t (mod n) (paso 312).
Para el Esquema de Sustitución P sobre
\Pi_{n}, para convertir y=E_{p}(x) a
y'=E_{p'}(x), generar primero una clave de transferencia
t=p^{-1}°p' (paso 310). Codificar posteriormente el mensaje con la
clave de transferencia t según y'=t(y) (paso 312).
Como se describirá más adelante, también es
posible transferir el derecho a decodificar en esquemas producto no
sólo de codificación determinada por clave, sino también esquemas de
conmutación. Para definir esquemas de conmutación, hay que
caracterizar esquemas de codificación que son esencialmente
equivalentes. Supóngase que S=(X, K, E, D) y S'=(X, K', E, D') son
dos esquemas de codificación con el mismo espacio de mensaje X. Se
dice que S es equivalente a S', denotado por S\equivS', si hay una
aplicación biyectiva (uno a uno y sobre) h:K \rightarrow K' de
tal manera que para cada mensaje x \in X y para cada clave k \in
K,
E_{k}(x)=E'_{h(k)}(x)
y
D_{k}(x)=D'_{h(k)}(x).
Es claro que la relación de equivalencia de
esquema \equiv es una relación de equivalencia; es decir, cumple
que, para cualquier esquema de codificación S, S', S', es válido lo
siguiente: (i) S\equivS; (ii) S\equivS' implica S'\equivS; y
(iii) S\equivS' y S=S'' implican S\equivS''. Así, los esquemas
de codificación equivalentes forman una clase de equivalencia en la
que cada esquema en la clase no proporciona más y no menos
funcionalidad que cualquier otro en la clase.
La relación de equivalencia de esquema permite
caracterizar esquemas de codificación de varias formas. Se dice que
un esquema de codificación S es idempotente si S^{2}\equivS.
Muchos de los esquemas de codificación son idempotentes, incluyendo
los esquemas XOR, multiplicativo, desplazamiento, sustitución y
afín. Si un esquema S es idempotente, no sirve de nada utilizar el
esquema producto S^{2}, puesto que requiere una clave extra, pero
no proporciona más funcionalidad.
Otra caracterización en esquemas de codificación
que usan la relación de equivalencia de esquema \equiv es la de
los esquemas de conmutación. Se dice que dos esquemas de
codificación S y S' conmutan si SxS'\equivS'xS. Es banal afirmar
que cualquier esquema conmuta consigo mismo. Un ejemplo no tan
trivial es el del esquema multiplicativo M y el esquema de
desplazamiento S. Para ver que conmutan, es decir, MxS\equivSxM,
se puede comparar las ecua-
ciones
ciones
E_{b}(E_{a}(x))=ax+b \ (mod \
n)
y
E_{a}(E_{b}(x))=ax+ab \ (mod \
n);
y hallar que la
aplicación
h:K_{S}\times
K_{M}\rightarrow K_{M}\times
K_{S}
definida
por
h(b,a)=(a,a^{-1}b \ (mod \
n))
hace el producto SxM isomórfico al
producto
MxS.
Los esquemas producto de esquemas de
codificación determinados por clave y conmutación tienen una forma
sistemática de transferir el derecho a decodificar mensajes. Sea
S_{1}xS_{2} el esquema producto de dos esquemas de codificación
determinados por clave y por conmutación. Supóngase que
h=(h_{1},h_{2}):K_{2}xK_{1}\rightarrowK_{1}xK_{2} es
la aplicación que hace S_{2}xS_{1} isomórfico a S_{1}xS_{2},
donde h_{1}: K_{2}xK_{1}\rightarrowK_{1} y
h_{2}:K_{2}xK_{1}\rightarrowK_{2}. Obsérvese en primer
lugar que el esquema producto también es determinado por clave; el
espacio de clave de producto K_{1}xK_{2} es un grupo con
respecto a la operación * definida por
(k_{1},k_{2})\text{*}(k'_{1},k'_{2})=(k_{1}
h_{1}(k_{2},k'_{1}),h_{2}(k_{2},k'_{1})\cdot
k'_{2}).
Esto es porque
- \quad
- E_{(k_{1},k_{2})} \circ E_{(k'_{1},k'_{2})}= E_{k_{1}}\circ E_{k_{2}}\circ E_{k'_{1}}\circ E_{k'_{2}}
- \quad
- = E_{k_{1}}\circ E_{h_{1}(k_{2},k'_{1})}\circ E_{h_{2}(k_{2},k'_{1})}\circ E_{k'_{2}}
- \quad
- = E_{k_{1}\cdot h_{2}((k_{2},k'_{1})}\circ E_{h_{2}(k_{2},k'_{1})\cdot k'_{2}}
- \quad
- = E_{(k_{1},k_{2})*(k'_{1},k'_{2})}
Ahora, el derecho a decodificar el mensaje
codificado de x se puede transferir desde el tenedor de clave de k
al tenedor de clave de otra clave k' en el algoritmo de dos pasos
mostrado en la figura 3. Generar en primer lugar una clave de
transferencia
t=(h_{1}(k_{2}^{-1},k_{1}^{-1}\cdotk'_{1}),h_{2}(k_{2}^{-1},k_{1}^{-1}\cdotk')\cdotk'_{2})
(paso 310). Codificar posteriormente el mensaje con la clave de
transferencia t según y'= E_{r}(y) (paso 312).
\newpage
La corrección del algoritmo de transferencia se
verifica por la igualdad siguiente:
- \quad
- E_{t}(y)= E_{k_{1}(k_{2}^{-1},k_{1}^{-1},k'_{1})}\circ E_{h_{2}(k_{2}^{-1},k_{1}^{-1}\cdot k_{1})\cdot k'_{2}}(y)
- \quad
- = E_{h_{1}k_{2}^{-1},k_{1}^{-1}\cdot k'_{1})}\circ E_{h_{2}(k_{2}^{-1},k_{1}^{-1}\cdot k'_{1})}\circ E_{k'_{2}}(y)
- \quad
- = E_{k_{2}^{-1}}\circ E_{k_{1}^{-1}\cdot k'_{1}}\circ E_{k'_{2}}(y)
- \quad
- = E_{k_{2}^{-1}}\circ E_{k_{1}^{-1}}\circ E_{k_{1}}\circ E_{k'_{2}}(y)
- \quad
- = D_{k_{2}}\circ D_{k_{1}}\circ E_{k'_{1}}\circ E_{k'_{2}}(y)
- \quad
- = E_{k'_{1}}\circ E_{k'_{2}}(x)
- \quad
- = E_{(k'_{1},k'_{2})}(x)
donde la última entidad puede ser decodificada
fácilmente usando la clave k'=(k'_{1},k'_{2}).
El método se ilustra bien con el ejemplo
siguiente, aplicando el cifrado afín A sobre Zn. Dado que A=MxS, y
M y S son esquemas de conmutación determinados por clave, el método
antes descrito se aplica al esquema afín. Como se ha observado
antes, es la aplicación h(b,a)=(a,ab) la que hace SxM
isomórfico a MxS. Así, h_{1}(b,a)=a y h_{2}(a,
b)=ab (mod n). La clave de transferencia t de (a, b) a (a', b) se
puede derivar como
- \quad
- t = (h_{1}(b^{-1},a^{-1}\cdot a'),h_{2}(b^{-1},a^{-1}\cdot a')\cdot b')
- \quad
- = (a'\cdot a^{-1},h_{2}(b^{-1},a^{-1}\cdot a')+b')
- \quad
- = (a'\cdot a^{-1},(a'\cdot a^{-1})b^{-1}+b')
- \quad
- = (a'a^{-1},-a'a^{-1}b+b')
Entonces, para decodificar y utilizando una
segunda clase (\alpha', b'), generar primero una clave de
transferencia t=(a'a^{-1}(mod n),-a'a^{-1}b+b'(mod n))
\triangleq (t_{1},t_{2}) (paso 310). Codificar posteriormente
el mensaje utilizando la clave de transferencia t según
y'=t_{1}y+t_{2} (mod n) (paso 312).
Los métodos aquí presentados para transferir el
derecho a decodificar mensajes son transitivos. Esto significa que
dos transferencias secuenciales de Alice a Bob y después de Bob a
Carol son equivalentes a una transferencia directa de Alice a
Carol. Es importante observar que, en cada uno de los esquemas
ejemplares, una clave de transferencia también es una clave del
esquema.
Por consiguiente, dos claves de transferencia
utilizadas en las dos transferencias secuenciales se pueden
combinar para formar una clave de transferencia para la
transferencia directa. Tómese como ejemplo el esquema afín. Sea
k=(a, b), k=(a', b'), y k''=(a'', b'') las claves para Alice, Bob y
Carol, respectivamente. Entonces, las claves de transferencia son
t=(a'a^{-1},-a'a^{-1}b+b') de Alice a Bob,
t'=(a''a'^{-1},-a''a'^{-1}b'+b) de Bob a Carol, y
t''=(a''a^{-1},-a''a^{-1}b+b'')de Alice a Carol. Es sencillo
verificar que la composición de t y t' como claves en el esquema
afín da t':
- \quad
- t\cdot t' = (t'_{1}t_{1},t'_{1}t_{2}+t'_{2})
- \quad
- = ((a''a'{}^{-1})(a'a^{-1}),(a''a'{}^{-1})(-a'a^{-1}b+b')+(-a''a'{}^{-1}b'+b''))
- \quad
- = (a''a^{-1},-a''a^{-1}b+b'')
- \quad
- = t''
En otros términos, la composición de la
transferencia secuencial del derecho a decodificar mensajes es sin
memoria; ninguna transferencia intermedia se reflejará en la
transferencia general.
Se deberá observar también que, para los
esquemas X, M y S el paso de generación de clave de transferencia
es equivalente a "decodificar" k' con k. Así, el cálculo
necesario en la transferencia es el mismo que el utilizado en el
método de decodificación y recodificación para estos esquemas. Se
puede pensar que el nuevo método no muestra mejora en este aspecto
de la eficiencia, pero se ha hallado que la clave de transferencia
es independiente de mensaje y por lo tanto tiene que ser calculada
solamente una vez. Cuando aumenta el número de mensajes m
implicados en la transferencia, esta característica reducirá a la
mitad el cálculo requerido por el método de recodificación. Además,
la clave de transferencia t no emite información útil en las claves
k y k', y una transferencia realizada según los métodos aquí
expuestos no revelará el mensaje x. Estas propiedades hacen
atractivo el método propuesto cuando la seguridad del mensaje x y
las claves de decodificación k y k' son un problema durante una
transferencia.
Una configuración de sistema típica capaz de
realizar los métodos descritos con referencia a la figura 3 (y
descritos con más detalle a continuación) se representa en la figura
4. Hay tres partes relevantes en la mayoría de las aplicaciones
proxy encriptadas. Un encriptor 410, un donante A 412, y un
donatario B 414. Como se reconocerá, el encriptado, desencriptado,
y otras operaciones de procesado realizadas según aspectos de la
invención las facilita un procesador (416, 418, 420) bajo control
de cada parte. Cada procesador está equipado con memoria (422, 424,
426) para almacenamiento de datos y una interface de comunicaciones
(428, 430, 432), capaz de enviar y recibir mensajes.
El resto de la descripción, dirigido a esquemas
de encriptado proxy más formales, en vez de esquemas de
codificación, está organizado como sigue. En primer lugar, se
describe un esquema de encriptado proxy genérico y caracteriza
según varios criterios. Los varios párrafos siguientes fijan la
notación expuesta que se usará en toda la descripción y reclamarán
el esquema de encriptado de clave pública ElGamal. A efectos de
comparación, esta descripción enumera después dos esquemas de
encriptado proxy existentes y examina sus propiedades en comparación
con aspectos de la presente invención. A continuación se introducen
detalles sobre los dos nuevos esquemas de encriptado proxy, junto
con el análisis de su seguridad y rendimiento. Posteriormente se
indican las aplicaciones de estos nuevos esquemas a distribución
masiva de documentos y protección de archivos.
Como se indica en la introducción, el objetivo
del encriptado proxy es delegar el derecho de desencriptado de uno
a otro de formas seguras y eficientes. Para la explicación que
sigue, es conveniente definir las funciones de partes que pueden
estar implicadas en el encriptado proxy. Las dos funciones más
importantes son las de donante y donatario. Un donante es un
tenedor de clave original de mensajes encriptados que desea delegar
el derecho de desencriptado a otro. Un donatario es un tenedor de
clave designado para efectuar desencriptado por cuenta de un
donante y así actuar como proxy de desencriptado del donante. En el
ejemplo motivante de la introducción, Alice es el donante mientras
que Bob es el donatario. Otras funciones pueden incluir un encriptor
que es el que encripta originalmente mensajes para el donante, y un
facilitador que puede ayudar a efectuar algunas tareas de procesado
de mensajes, tal como transformar mensajes encriptados para el
donante en mensajes encriptados para el donatario. Ciertamente, no
es necesario que todas estas funciones sean desempeñadas por partes
diferentes. Por ejemplo, una parte puede desempeñar funciones del
donante y facilitador, como en los esquemas de Mambo y Okamoto
explicados a continuación.
Con estas funciones en posición, un esquema de
encriptado proxy es una descripción de cómo un donatario,
posiblemente con algo de ayuda de un facilitador, delega en un
donatario el derecho a desencriptar mensajes generados originalmente
por un encriptor para el donatario. Un esquema de encriptado proxy
puede constar de cuatro pasos genéricos: encriptado de mensajes,
generación de claves proxy, transformación proxy y desencriptado de
mensajes. Estos pasos se describirán con más detalle a
continuación, con referencia a la figura 5.
- 1.
- Encriptado de mensajes E: El encriptor genera un mensaje encriptado usando la clave de encriptado del donante y lo suministra al donante (paso 510).
- 2.
- Generación proxy \pi: Para delegar el derecho de desencriptado al donatario, el donante genera una clave proxy \pi como una señal de compromiso que permite al donatario desencriptar el mensaje encriptado para el donante (paso 512).
- 3.
- Transformación proxy \Pi: Cuando es necesario, el facilitador realiza una transformación proxy \Pi, usando posiblemente la clave proxy \pi, para convertir el mensaje encriptado para el donante en un mensaje encriptado para el donatario (paso 514).
- 4.
- Desencriptado de mensajes D: Al recibir el mensaje transformado y posiblemente la clave proxy, el donatario descifra el mensaje (paso 516).
Por consiguiente, se debe observar que el
esquema genérico anterior cubre las dos soluciones sencillas al
encriptado proxy indicado en la introducción. El esquema de
reencriptado es un caso especial donde el donante (Alice) también
es el facilitador que descifra realmente el mensaje y después lo
encripta para el donatario (Bob), y el proxy \pi se puede
considerar como un conjunto de la clave de desencriptado del donante
y la clave de encriptado del donatario, que es usada solamente por
el donante y no por el donatario. El esquema de pasar la clave de
desencriptado del donante al donatario es otro caso especial del
esquema genérico, donde la clave proxy es la clave de desencriptado
y la transformación proxy es la transformación de identidad.
Sin embargo, no todos los esquemas que se pueden
derivar del genérico anterior se califican como esquemas de
encriptado proxy. Intuitivamente, un esquema de encriptado proxy
tiene que cumplir algunos requisitos básicos, a saber, delegación,
seguridad, transitividad y rendimiento, como se describe más
adelante.
Delegación. Para garantizar que, al final
del paso de desencriptado de mensajes, el donatario es capaz de
recuperar correctamente el original mensaje, la ecuación siguiente
debe ser cierta para todo mensaje m:
D(\Pi(E(m,e_{A}),\pi),d_{B},\pi)=m,
donde E(m,e) es una función
de encriptado de mensaje m bajo la clave de encriptado e,
D(c,d,\pi) es una función de desencriptado correspondiente
de mensaje encriptado c bajo la clave de desencriptado d y
posiblemente la clave proxy \pi, \Pi(c, \pi) es la
función proxy que convierte el mensaje encriptado c según la clave
proxy, y e_{A}, e_{B}, d_{A}, y d_{B} son las claves de
encriptado y desencriptado del donante A y donatario B,
respectivamente.
Además de la corrección anterior, la
funcionalidad de la delegación deberá estar garantizada. En una
forma, esto significa que, después de emitir la clave proxy y de
terminar la transformación proxy, el paso de desencriptado de
mensajes no requeriría información privada del donante, y deberá ser
realizada solamente por el donatario. En otra forma, esto es
equivalente a la indenegabilidad de la delegación del donante; es
decir, una vez que se crea la clave proxy y se lleva a cabo
transformación proxy, el donante no debería ser capaz de denegar la
delegación, sin buscar otros medios tal como evitar que el donatario
obtenga la clave proxy y reciba el mensaje transformado. Como
consecuencia de esta funcionalidad, la clave de desencriptado del
donante se puede destruir con la clave de desencriptado del
donatario y posiblemente la clave proxy para mantener la capacidad
de desencriptar el mensaje. (Esto es útil para la aplicación de
protección de archivos más tarde en la Sección 6).
Seguridad. En esencia, un esquema de
encriptado proxy también es un esquema de encriptado al menos desde
el punto de vista del donatario. La introducción de claves y
transformaciones proxy no debe poner en peligro la seguridad y la
privacidad del encriptado. Así, deberá ser al menos
computacionalmente difícil para cualquier tercera parte no
autorizada recuperar el mensaje original y las claves de
desencriptado del donante y donatario de la información
públicamente disponible.
Además, la falsificación de claves proxy válidas
por cualquier parte no de confianza deberá ser muy difícil. Debe
ser claro, no obstante, que generar la clave proxy requiere
conocimiento de al menos la clave de desencriptado del donante; de
otro modo, el sistema de encriptado subyacente es no seguro.
Transitividad. Naturalmente, la relación
proxy deberá ser transitiva. Después de que el donante delegue el
derecho de desencriptado, el donatario deberá ser capaz de hacer que
un nuevo donante delegue también el derecho a otro donatario,
siguiendo el mismo esquema. Además, sería posible que alguien, por
ejemplo el primer donante, delegue el derecho directamente a un
nuevo donatario combinando todas las claves proxy intermedias en una
clave proxy y componiendo todas las transformaciones proxy
consecutivas en una transformación.
Rendimiento. Como el esquema de
reencriptado es una solución intuitiva directa a encriptado proxy y
cumple los requisitos anteriores de delegación, seguridad y
transitividad, cualquier esquema de encriptado proxy prácticamente
útil deberá tener degradación nula del rendimiento computacional en
comparación con el esquema de reen-
criptado.
criptado.
Los esquemas de encriptado proxy pueden variar
según sus requisitos de aplicación. Se pueden clasificar según
muchos aspectos. Los obvios incluyen si se basan en clave pública o
en clave privada, y si sus medidas de seguridad son perfectas en el
sentido teórico de información o se basan en la insolubilidad de
algunos problemas de cálculo. Los aspectos siguientes están
relacionados con la clave y transformación proxy.
Confidencialidad. Aunque el secreto de
los mensajes y las claves de desencriptado tiene que ser respetado,
el secreto de las claves proxy y transformaciones proxy no puede ser
un requisito obligatorio. Un esquema se denomina público si las
claves proxy que genera pueden publicarse sin poner en peligro su
seguridad y las transformaciones proxy aplicadas en entornos sin
confianza; de otro modo, el esquema es privado. En un esquema
privado, cuando una clave proxy es transferida del donante al
facilitador y donatario, hay que tener cuidado de proteger la clave
proxy contra la revelación. Como resultado, la transformación proxy
que usa la clave proxy se debe realizar también en privado.
Conmutatividad. En términos de mensajes,
el donatario debe tener la absoluta confianza del donante, puesto
que el encriptado proxy por definición permite que el primero
desencripte por cuenta de éste último. Sin embargo, el modelo de
confianza puede ser diferente para su información privada. Un
esquema de encriptado proxy es conmutativo si el donante y el
donatario tienen que confiar entre sí con respecto a sus claves
privadas; de otro modo, es no conmutativo. Un ejemplo conmutativo
es que la clave proxy se crea de tal forma que el donante o el
donatario puedan obtener la clave de desencriptado del otro. Siempre
que éste sea el caso, el mecanismo de desencriptado se puede
simplificar a un protocolo de intercambio de claves que permite al
donatario utilizar la clave de desencriptado del donante para
desencriptar directamente los mensajes encriptados.
Generalidad. En muchos casos, el donante
desea restringir el alcance del derecho desencriptado delegado. Las
restricciones previstas incluyen a menudo que la clave proxy
solamente pueda ser utilizada por un donatario designado, que la
clave proxy solamente pueda ser aplicable a un mensaje específico, o
que la transformación proxy solamente pueda ser aplicada por un
facilitador específico. Por ejemplo, cuando un esquema de encriptado
proxy es utilizado en algunas aplicaciones como depósito de claves,
lo ideal sería que las claves proxy fuesen independientes de los
mensajes a los que se apliquen. Pero para delegación ocasional tal
como especificar con seguridad la herencia en el testamento de una
persona, puede ser altamente deseable que una clave proxy solamente
pueda ser restringida a una parte designada (por ejemplo, un nieto),
aplicable a un mensaje específico (por ejemplo, alguna porción del
testamento) y utilizada posiblemente en la transformación proxy por
una parte concreta (un abogado).
Degeneración. Cuando se utilice en la
situación extrema en la que el donante y donatario sean la misma
persona con una misma clave de desencriptado, un esquema de
encriptado proxy deberá reducirse a un esquema de encriptado
regular, sin introducir complicaciones (tal como claves y
transformaciones proxy no triviales, y el requisito de un
facilitador adicional).
Como se mostrará a continuación, los esquemas de
Mambo y Okamoto son privados y no conmutativos. Las claves proxy en
sus esquemas pueden ser independientes o dependientes del mensaje,
pero no se limitan a donatarios designados. El esquema de Blaze y
Strauss es lo contrario: es público pero conmutativo, y sus claves
proxy son independientes del mensaje, pero únicamente están
asociadas con donatarios designados. En comparación, los esquemas
según aspectos de la invención aquí expuestos son públicos y no
conmutativos, y sus claves proxy son dependientes del mensaje y se
restringen a donatarios designados.
Dado que los esquemas de encriptado proxy
explicados a continuación en esta descripción se basarán en
logaritmos discretos en grupos multiplicativos, se adopta aquí un
posicionamiento formal que es común a todos estos esquemas de
encriptado. La notación aquí usada recuerda el esquema de encriptado
de ElGamal. Los esquemas de encriptado basados en logaritmos
discretos son especialmente ventajosos a causa de sus ventajas
técnicas sobre esquemas tipo RSA y sus generalizaciones naturales a
muchos grupos finitos tal como grupos de curvas elípticas sobre
campos finitos.
Como se expone anteriormente, para cualquier
número natural n, denote Z_{n}=[0,1,...,n-1) el
anillo de enteros módulo n, y denote Z*_{n}=(m \in Z_{n} |
gcd(m,n)=1) el grupo multiplicativo de Z_{11}. Obsérvese
que, cuando n es un primo, Z*_{n}=(1,...n-1). Para
un módulo n y un número a que es relativamente primo a n, denote
a^{-1} la inversa multiplicativa de un módulo n; es decir,
a^{-1} es el elemento que cumple aa^{-1}\equiv1(mod
n).
Se dice que un elemento a de Z*_{p} es del
orden m si el número de sus potencias módulo n es m. Un generador g
de Z*_{n}, si existe, es un elemento de orden |Z*_{n}| (el
tamaño de Z*_{n}); en este caso, Z*_{n} es un grupo cíclico.
Cuando n es un primo, cada elemento de Z*_{n} a excepción de 1,
es un generador de Z*_{n}).
Sea Z*_{n} un grupo cíclico con un generador
g. El logaritmo discreto de un elemento x a la base g, denotado
como log_{g} x, es el único entero a,
0\leqa\leqn-1, de tal manera que x=
g^{a}(mod n). El problema del logaritmo discreto
es, dado un primo p, un generador g de Z*_{n}, y un elemento x
\in Z*_{p}, hallar el entero a,
0\leqa\leqp-2, de tal manera que
g^{a}\equivx(mod p).
Un problema muy estrechamente relacionado es el
problema de Diffie-Hellman: dado un primo p,
un generador g de Z*_{p}, y elementos g^{a}(mod p) y
g^{b}(mod p), hallar g^{ab}(mod p). El problema
del logaritmo discreto es al menos tan difícil como el problema de
Diffie-Hellman porque cualquier solución al primer
problema se puede usar para resolver éste último problema.
El esquema de encriptado de ElGamal representado
en la figura 6 es una parte de un criptosistema de clave pública
basado en logaritmo discreto propuesto por ElGamal tanto para
encriptado como para firma digital. Véase T. ElGamal, "A public
key cryptosystem and a signance scheme based on discrete
logarithm", IEEE Trans. on Information Theory, Vol. 31,
páginas 465-472 (1985).
Con referencia ahora a la figura 6 con detalle,
el esquema El Gamal se establece (paso 610) estableciendo dos
parámetros públicos p y g, donde p es un primo (típicamente de 512
bits de longitud), de tal manera que p-1 tenga un
factor primero grande (típicamente 160 bits) q (por ejemplo, p=2q+1)
y g es un generador en Z*_{p}. Una clave privada para un usuario
se establece (paso 612) eligiendo uniformemente un número aleatorio
a \in Z*_{p}_{-1}. Su clave pública relacionada se calcula
(paso 614) como a=g^{a}(mod p). El usuario publica a y
mantiene a secreta.
Para encriptar un mensaje m a enviar al usuario
A con clave pública a, se elige uniformemente (paso 616) un número
aleatorio k \in Z*_{p}_{-1}, y se calcula (paso 618) un par de
números (r,s), que representan conjuntamente el mensaje encriptado
a enviar a A, como sigue:
r=g^{k} \ (mod
\ p)
\hskip0.5cmy
\hskip0.5cms=m\alpha ^{k} \ (mod \ p).
Para desencriptar el mensaje (r,s), el receptor
A recupera el mensaje m (paso 620) calculando
m=s(r^{a})^{-1} \ (mod \
p).
Obsérvese que la selección de los parámetros
públicos tiene la finalidad de establecer la ecuación g^{p}^{-1}
(mod p)\equiv1 (pequeño teorema de Fermat). Estos
parámetros deberán ser conocidos de forma auténtica por todos los
usuarios. Se pueden elegir, por ejemplo, por alguna autoridad de
confianza. Además, la forma en que se elige la clave privada a
garantiza que exista la inversa a^{-1} de un módulo
p-1 y sea única.
A diferencia del esquema de encriptado de clave
pública RSA, el esquema ElGamal es no determinista, puesto que el
mensaje encriptado también depende del número aleatorio k. En
efecto, es de naturaleza similar al protocolo de intercambio de
clave Diffie-Hellman; la clave establecida entre el
emisor y el receptor para encriptar y desencriptar el mensaje m es
g^{ak} (mod p) de r= g^{k} (mod p) (parte del mensaje
encriptado) y a=g^{a} (mod p) (la clave pública de A). No
obstante, la seguridad del esquema de encriptado de ElGamal se basa
en la insolubilidad del problema del logaritmo discreto y el
problema de Diffie-Hellman. Hasta la fecha, la
práctica al buscar algoritmos óptimos para el problema del
logaritmo discreto no ha hallado ninguna solución eficiente (tiempo
polinómico). Es similar a la situación para el problema de
factorización de enteros en el que se basa la seguridad del esquema
RSA. Además, también se ha mostrado que, para algunos primos p,
resolver el problema del logaritmo discreto es al menos tan difícil
como resolver el problema de factorización de un mismo tamaño. Esto
implica que para dichos ps, el esquema ElGamal es al menos tan
seguro como el esquema RSA.
Muy recientemente se han propuesto varios
esquemas de encriptado proxy. Todos estos esquemas siguen el esquema
genérico de encriptado proxy al delegar el derecho de
desencriptado: el encriptor envía un mensaje encriptado al donante
A, quien después delega el derecho de desencriptado en el donatario
B creando la clave proxy, y después de terminar la transformación
proxy, el donatario B descifra finalmente el mensaje. A continuación
se presentan dos esquemas de encriptado proxy representativos y
conocidos: un de Mambo y Okamoto y el otro de Blaze y Strauss, que
son variaciones en el esquema ElGamal. Dado que tienen la misma
estructura de esquema que el esquema ElGamal, la estructura (véanse
los pasos 610-614 de la figura 6 anterior) se omite
de la presentación.
Mambo y Okamoto han propuesto tres esquemas de
encriptado proxy: dos se basan en el esquema ElGamal y el otro se
basa en el esquema RSA. El representado en la figura 6 y descrito
más adelante se basa en ElGamal y comparte sus características
básicas con los otros dos esquemas.
Con referencia ahora a la figura 7, dado un
mensaje m que tiene que ser enviado a un donante A con clave pública
a, el mensaje m se cifra eligiendo uniformemente un número
aleatorio k \in Z*_{P}_{-1} (paso 710) y calculando un par de
números (r,s) que representa el mensaje encriptado (paso 712) como
sigue:
r=g^{k} \ (mod
\ p)
\hskip0.5cmy
\hskip0.5cms= m\alpha ^{k} \ (mod \ p)
Para delegar el derecho de desencriptado a un
donatario B, el donante A crea una clave proxy \pi eligiendo
uniformemente un número aleatorio a'\in Z*_{p}_{-1}, (paso
714) y calculando \pi=aa'(mod(p-1)) (paso
716). Después, A suministra la clave proxy \pi a B (paso 718) de
forma segura (por ejemplo, encriptándola con la clave pública de B)
y mantiene privado el valor de a'.
Para permitir a B desencriptar el mensaje, A
calcula r'=r^{a}^{'-1} (mod p), donde
a^{r}^{-1} es la inversa multiplicativa de a' módulo
p-1 (paso 720). El par (r', s) es el mensaje
encriptado transformado a enviar a B.
Al recibir el mensaje transformado (r', s) y la
clave proxy \pi, B descifra el mensaje m (paso 722) calculando
m=s(r'^{R})^{-1} (mod p).
Este esquema de encriptado proxy usa los
componentes de encriptado y desencriptado del esquema ElGamal, a
excepción de que la clave privada de B se sustituye por la clave
proxy \pi. Es correcto porque, al utilizar \pi para
desencriptar el mensaje transformado (r', s), es válido lo
siguiente:
s((r')^{x})^{-1} \ (mod \
p)=s(r^{aa'a'{}^{-1}})^{-1} \ (mod \ p)=mg^{ka}(g^{ka})^{-1}
\ (mod \
p)=m.
La seguridad de este esquema se evalúa en dos
aspectos. La complejidad para que alguna persona, incluyendo el
donatario B, descubra la clave privada a del donante A en base a
toda la información disponible, es la misma que para resolver el
problema del logaritmo discreto. La dificultad de que alguna
persona, incluso con la clave proxy, se haga pasar por A para
transformar el mensaje encriptado (es decir, para generar (r; s))
es la misma que para resolver el problema de
Diffie-Hellman.
Este esquema tiene varias características muy
atractivas. Primera: su seguridad implica que es difícil que B
recupere la clave privada de A. En este sentido, no es necesario que
A confíe en B, y por lo tanto el esquema es no conmutativo.
Segunda: la clave proxy generada es independiente del mensaje. B
puede utilizarla para desencriptar todos los mensajes transformados
por A. Tercera: este esquema cumple el requisito de transitividad.
Al recibir tanto la clave proxy como el mensaje transformado (r; s),
el usuario delegado B puede delegar también el proxy en otro
usuario C, tratando \pi como la clave privada a y (r', s) como (r,
s) y repitiendo la generación y transformación proxy. Cuarta: el
esquema requiere menos esfuerzos de cálculo que el esquema de
reencriptado.
Sin embargo, la implementación del encriptado
proxy según este esquema tiene varios inconvenientes. Primero: la
clave proxy no contiene información acerca del donatario delegado B;
solamente se deriva de la clave privada del donante A. Además, el
mensaje desencriptado realizado por B no necesita la clave de
desencriptado privada de B. En consecuencia, el mensaje lo puede
recuperar cualquier persona que tenga la clave proxy y el mensaje
encriptado, no necesariamente B. Así, B puede pedir a cualquier
persona que desencripte el mensaje pasando directamente la
información proxy. En muchos casos, esto no es deseable; A debería
ser capaz de especificar el tenedor de clave que haya de actuar en
nombre de A.
\newpage
Segundo: la clave proxy \pi tiene que ser un
secreto entre A y B y se debe transmitir de A a B de forma segura.
Como resultado de que \pi no contiene información de B y (r; s)
está posiblemente en comunicación en público, revelar \pi es
esencialmente igual a revelar el mensaje.
Tercero: la transformación proxy tiene que ser
realizada por A. El valor a' utilizado en la transformación es un
secreto para A y es vital para evitar que B conozca la clave de
desencriptado a de A.
En resumen, el esquema es no conmutativo e
independiente del mensaje, sino privado e incapaz de especificar el
donatario designado.
Blaze y Strauss han descrito otro esquema de
encriptado proxy de clave pública. Como se puede ver en la figura
8, el esquema es de estructura similar al encriptado ElGamal, pero
con los parámetros utilizados de forma diferente y la inversa del
secreto usada para recuperar el mensaje.
Pasando ahora a la figura 8 con más detalle,
dado un mensaje m que tiene que ser enviado a un donante A con
clave pública a, el mensaje m se encripta eligiendo uniformemente un
número aleatorio k \in Z*_{p}_{-1} (paso 810) y calculando un
par de números (r, s) que representan el mensaje encriptado (paso
812) como sigue:
r=mg^{k} \
(mod \ p)
\hskip0.5cmy
\hskip0.5cms=\alpha ^{k} \ (mod \ p).
Para delegar el derecho de desencriptado a un
donatario B, el donante A crea una clave proxy obteniendo la clave
de desencriptado privada b de B (paso 814) y calculando
n=a^{-1}b(mod(p-1)) (paso 816),
donde a^{-1} es la inversa de la clave privada a de A módulo
p-1. La clave proxy se puede hacer pública.
Para utilizar la clave proxy \pi para
convertir un mensaje (r, s) encriptado para A en un mensaje
encriptado para B, el facilitador (no necesariamente A, puesto que
la clave proxy es pública) calcula s'= s^{\pi} (mod p) (paso
818). El par (r, s') representa el mensaje transformado encriptado,
que después puede ser transmitido a B.
Para desencriptar el mensaje transformado, B
calcula m=r(s'^{b}^{-l})^{-1} (mod p) (paso
820), donde b es la clave privada de B y b^{-1} es la inversa de
b módulo p-1.
El esquema es correcto, puesto que en el mensaje
desencriptado
s'{}^{b-1} =
g^{k} \ (mod \ p)
\hskip0.5cmy
\hskip0.5cmm = r)g^{k})^{-1} \ (mod \ p).
El esquema es seguro porque el mensaje m y
claves secretas a y b no se pueden recuperar de los mensajes
encriptados y las claves públicas. Además, publicar la clave proxy
no pone en peligro ni el mensaje m ni las claves secretas a y b.
Más exactamente, el problema de recuperar m de la información
pública (a, \beta, r, s, \pi, s') es tan difícil como el
problema de Diffie-Hellman.
En contraposición al esquema anterior, la última
característica de seguridad hace innecesario mantener privada la
clave proxy \pi. Así, el donante A puede enviar públicamente a
quien (facilitador) haya de efectuar la transformación proxy, o
puede simplemente publicarla. Además, el esquema no requiere ningún
secreto de A para llevar a cabo la transformación proxy, y en
consecuencia permite que cualquiera, de confianza o no, efectúe la
transformación y por lo tanto elimina la necesidad de la presencia
tanto de A como de B en la transformación.
También a diferencia del esquema anterior, no
hay diferencia para el usuario B entre desencriptar un mensaje
encriptado regular y desencriptar un mensaje transformado proxy.
Esta característica elegante permite al usuario B tratar
uniformemente todos los mensajes encriptados entrantes. De hecho, es
posible que un facilitador o servidor no de confianza realice la
transformación proxy y después envíe el mensaje al usuario B.
A pesar de estas características deseables, este
esquema es conmutativo; los tenedores de clave implicados A y B
deben confiar uno en otro bilateralmente. B puede aprender la clave
secreta a de A (multiplicando la clave proxy por b^{-1}). Además,
la clave proxy también es independiente del mensaje, como en el
esquema anterior, que delega en B el derecho a desencriptar todos
los mensajes encriptados para la clave privada a de A. Por
consiguiente, este esquema es público e independiente del mensaje,
pero conmutativo.
Se presentan aquí dos esquemas de encriptado
proxy según aspectos de la invención, y después se analizan con
respecto a su seguridad, conmutatividad y rendimiento. Como el
esquema proxy privado, son no conmutativos, y al mismo tiempo,
soportan claves y transformaciones proxy públicas de la forma en que
lo hace el esquema proxy conmutativo. Sin embargo, difieren de los
esquemas privados y conmutativos en que son dependientes del
mensaje. Además, su rendimiento general es mejor que el esquema de
reencriptado basado en ElGamal.
De nuevo, estos esquemas comparten el mismo
esquema semp del esquema ElGamal, y suponen que un donante A delega
el derecho de desencriptado en un donatario B.
\newpage
Para entender cómo adaptar el esquema El Gamal a
un esquema de encriptado proxy, es útil examinar algunos detalles
del esquema ElGamal. Se deberá observar que el componente r del
mensaje encriptado m es independiente de la clave privada a del
receptor A y la clave pública a. Dado que s=ma^{k} (mod
p)=mg^{ko} (mod p), a solamente se utiliza en el componente s, y
a está embebido implícitamente en exponente de s. Así, es suficiente
que la transformación proxy convierta el mensaje encriptado para A
en el mensaje encriptado para B quitando la clave privada a de A de
s y sustituyéndola por la clave privada b de B. Para evitar que B
obtenga la clave privada a de A, la función para generar la clave
proxy debe ser en cierto modo "unidireccional". De hecho, esto
se puede lograr con ayuda del número aleatorio k como sigue:
\pi
=g^{k(b-a)} \ (mod \
p).
Consiguientemente, la transformación proxy que
completa la conversión del mensaje deberá asemejarse a lo
siguiente:
s'=s\pi \ (mod
\ p)=mg^{ka}g^{k(b-a)} \ (mod \ p)=mg^{kb} \
(mod \
p).
La explicación anterior conduce al esquema de la
figura 9. Resulta que la clave y transformación proxy cumplen el
requisito de seguridad y proporcionan las características deseadas
de no ser públicas y de no conmutatividad.
Con referencia ahora a la figura 9, dado un
mensaje m que tiene que ser enviado a un donante A con clave pública
a, el mensaje m se encripta eligiendo uniformemente un número
aleatorio k \in Z*_{p}_{-1} (paso 910) y calculando un par de
números (r, s) que representan el mensaje encriptado (paso 912) como
sigue:
r=g^{k} \ (mod
\ p)
\hskip0.5cmy
\hskip0.5cms=m\alpha^{k} \ (mod \ p).
Para delegar el derecho de desencriptado a un
donatario B, el donante A crea una clave proxy obteniendo la clave
de desencriptado b auténtica de B (paso 914) y calculando
\pi=r^{b-a} (mod p) (paso 916).
El mensaje se transforma de (r, s) a (r, s')
calculando s'= s\pi(mod p) (paso 918). El mensaje m es
desencriptado posteriormente por B a partir de (r, s') calculando
m=s'(r^{b})^{-1} (mod p) (paso 920).
Claramente, este esquema usa los pasos de
encriptado y desencriptado del mensaje del esquema ElGamal. Es
correcto puesto que el mensaje m se puede recuperar de
s'(r^{b})^{-t}
\ (mod \ p)=s\pi (r^{b})^{-1} \ (mod \
p)=mg^{dk}g^{k(b-a)}(g^{kb})^{-1} \ (mod \
p)=m.
Una bonita característica de este esquema es
que, no sólo los mensajes encriptados regulares y proxy no aparecen
diferentes para el donatario B, sino que también el esquema coincide
con el esquema ElGamal cuando A y B son el mismo usuario con la
misma clave; en este caso, el valor proxy es igual a 1 y la
transformación proxy es la transformación de identidad.
Es fácil ver que el esquema es transitivo. Al
recibir el mensaje transformado proxy, el donatario B puede actuar
como el donante A para delegar también el derecho de desencriptado,
por ejemplo, en otro donatario C repitiendo el paso de generación
proxy con las claves b y c en lugar de a y b.
También como el esquema conmutativo, el paso de
generación proxy requiere las claves privadas de A y B para generar
la clave proxy \pi. Como alternativa, este paso se puede llevar a
cabo por cualquiera que tenga la confianza de A y B. Como se ha
indicado anteriormente, la clave privada de A es claramente
necesaria, porque de otro modo cualquiera puede emitir una clave
proxy para recuperar el mensaje y el esquema de encriptado
subyacente no es seguro. Para establecer y comunicar la clave
privada b de B, se puede usar muchos protocolos de intercambio de
claves tal como el intercambio de claves de
Diffie-Hellman. Como se representa con más detalle
a continuación, en algunas aplicaciones prácticas el requisito de la
clave b no es un problema o se puede relajar.
Pero a diferencia de los esquemas privados y
conmutativos, este esquema no facilita que el donatario B
desencripte mensajes encriptados para una persona distinta del
destinatario. Claramente, la clave proxy contiene un elemento de
información que es específico para el mensaje encriptado m, a saber,
el número aleatorio k. En este sentido, el esquema proxy es
dependiente del mensaje. Además, el esquema es no conmutativo en el
sentido de que es difícil que B recupere la clave privada a de A.
Este hecho, junto con el rendimiento del esquema, se establecerá
después de presentar el esquema siguiente.
Obsérvese que, en el esquema anterior, la
transformación proxy solamente cambia el componente s del mensaje
encriptado. Dado que s es la parte que lleva realmente la
información acerca del mensaje m, el esquema no puede ser eficiente
cuando m es un mensaje muy largo. Por ejemplo, la clave proxy
generada sería tan larga como el mensaje y el esfuerzo empleado en
la transformación proxy sería lineal con respecto a la longitud de
todo el mensaje.
El esquema presentado en la figura 10 tiende a
mejorar esta situación. Usa el paso de encriptado de mensaje del
esquema conmutativo en el que el mensaje m se desplaza de s a r. Su
clave y transformación proxy no tienen ahora dependencia directa
del mensaje m.
Como se representa en la figura 10, dado un
mensaje m que tiene que ser enviado a un donante A con clave pública
a, el mensaje m se encripta eligiendo uniformemente un número
aleatorio k \in Z*_{p}_{-1}, (paso 1010) y calculando un par
de números (r, s) que representan el mensaje encriptado (paso 1012)
como sigue:
r=mg^{k} \
(mod \ p)
\hskip0.5cmy
\hskip0.5cms=\alpha ^{k} \ (mod \ p).
Para delegar el derecho de desencriptado a un
donatario B, el donante A crea una clave proxy \pi obteniendo la
clave de desencriptado b auténtica de B (paso 1014) y calculando
\pi=(s^{u-1}) (mod p) (paso 1016), donde
a^{-1} es la inversa de un módulo p-1.
El mensaje se transforma de (r, s) a (r, s')
calculando s'=s\pi(mod p) (paso 1018). El mensaje m es
desencriptado después por B a partir de (r, s) calculando m=
r(s'^{b}^{-1})^{-1} (mod p) (paso 1020), donde
b^{-1} es la inversa de b módulo p-1.
Este esquema es correcto puesto que
- \quad
- r(s'{}^{b^{-1}})^{-1} \ (mod \ p) = r((s\pi )^{b^{-1}})^{-1} \ (mod \ p)
- \quad
- = r((s(s^{a^{-1}})^{b-a})^{b^{-1}})^{-1} \ (mod \ p)
- \quad
- = r((g^{ka}g^{k(b-a)})^{b^{-1}})^{-1} \ (mod \ p)
- \quad
- = r((g^{kb})^{b^{-1}})^{-1} \ (mod \ p)
- \quad
- = mg^{k}(g^{k})^{-1} \ (mod \ p)
- \quad
- = m
Otras propiedades de este esquema se pueden
verificar de la misma manera que el esquema anterior.
Debido a su naturaleza similar, solamente se
analiza en esta sección el primero de los dos nuevos esquemas con
respecto a su seguridad y no conmutatividad. Se puede dar una
explicación casi idéntica para el segundo esquema. Además, aunque
el primer esquema (así como el segundo esquema) es transitivo y su
seguridad puede implicar más de dos tenedores de clave, el análisis
a ofrecer solamente considera el caso del tenedor de dos claves; el
caso general también es similar. Para claridad de la presentación,
la expresión "(mod p)" se omitirá en esta subsección; su
aparición deberá ser clara por el contexto.
Recuérdese que, a diferencia de los parámetros
de esquema (p, g), la información pública que se puede adquirir del
esquema incluye
\alpha=g^{a},
\hskip0.3cm\beta=g^{b},
\hskip0.3cmr=g^{k},
\hskip0.3cms=mg^{ak},
\hskip0.3cm\pi =g^{(b-a)},
\hskip0.3cms'=mg^{bk}.
Por las razones expuestas a continuación, el
esquema es computacionalmente seguro. Es difícil recuperar el
mensaje m y las claves secretas a y b de la información pública, a
condición de que los problemas de logaritmo discreto y de
Diffie-Hellman sean difíciles de resolver. Dado que
la clave proxy es parte de la información pública, esto implica que
publicarla no pone en peligro ni el mensaje ni las claves secretas.
Una consecuencia de esto es que también es difícil que alguien
falsifique una clave proxy válida de manera sistemática. Además, el
esquema se muestra como no conmutativo en el sentido de que incluso
con la clave privada de B, todavía es difícil recuperar la clave
privada de A. Si la clave proxy es generada en efecto por una
tercera parte de la confianza de A y B, este hecho implica que no
es necesario que B confíe en A. Ésta es una mejora considerable
sobre el esquema conmutativo.
Además, como se ha indicado anteriormente, los
esquemas de encriptado proxy según aspectos de la invención son más
eficientes que reencriptar un mensaje. A continuación, en la Tabla
2, el rendimiento de los dos esquemas de encriptado proxy según
aspectos de la invención descritos en la presente memoria se compara
con el esquema de reencriptado usando el algoritmo ElGamal, en
términos de la cantidad de cálculo que requieren. En la Tabla 2,
los números de operaciones de multiplicación, operaciones de
exponenciación, e inversiones, todas realizadas módulo p, se
enumeran para estos esquemas.
| Operaciones | Reencriptado | Primer esquema | Segundo esquema | ||||||
| (fig. 9) | (Fig. 10) | ||||||||
| mult. | exp. | inv. | mult. | exp. | inv. | mult. | exp. | inv. | |
| Encriptado | 1(x2) | 2(x2) | 0(x2) | 1 | 2 | 0 | 1 | 2 | 0 |
| Gen. clave proxy | 0 | 1 | 0 | 0/1 | 2/1 | 1/0 | |||
| Transformación | 1 | 0 | 0 | 1 | 0 | 0 | |||
| Desencriptado | 1(x2) | 1(x2) | 1(x2) | 1 | 1 | 1 | 1 | 1 | 2/1 |
| Total | 4 | 6 | 2 | 3 | 4 | 1 | 3/4 | 5/4 | 3/1 |
Obsérvese que el número total de operaciones
para reencriptado usando el esquema ElGamal es el doble del número
de operaciones para un solo encriptado y desencriptado ElGamal,
puesto que el mensaje debe ser encriptado en primer lugar,
posteriormente desencriptado, después re-encriptado,
y más tarde re-desencriptado. Además, el cálculo en
el segundo esquema se puede optimizar (i) precalculando las inversas
a^{-1} y b^{-1} en el paso de establecimiento del esquema y
(ii) multiplicando los dos componentes exponenciales (modulo
(p-1)) en el paso de generación proxy en lugar de
usar dos exponenciaciones. El segundo conjunto de números bajo el
segundo esquema resulta de esta optimización. En general, los
esquemas de encriptado proxy de la invención aquí presentados
tienen mejor rendimiento que el simple esquema de reencriptado
basado en ElGamal.
Los esquemas de encriptado proxy públicos y no
conmutativos proporcionan un mecanismo clave para implementar una
amplia gama de aplicaciones. La distribución masiva de documentos y
la protección de archivos son dos motivaciones clave para esta
descripción. Estas aplicaciones corresponden a dos situaciones
típicas para encriptado proxy. La primera se refiere al caso en el
que el donante es quien encripta el mensaje en primer lugar,
mientras que la segunda es una autodelegación en la que el donante
y el donatario son el mismo tenedor de clave, pero con claves
diferentes.
Obsérvese de nuevo que un documento se refiere a
cualquier archivo digital cuyo contenido podría texto, gráficos,
audio, vídeo, ejecutable o incluso multimedia. Generalmente, un
documento es de gran tamaño, incluso después de la compresión. Dado
que los algoritmos de clave pública tienden a ser muy lentos en
comparación con los algoritmos de clave privada convencionales tal
como DES, IDEA y RC4, y los algoritmos de clave privada requieren
establecer claves secretas para empezar, el acercamiento más
práctico a las distribución masiva y segura de documentos por redes
es combinar los mecanismos de encriptado de clave privada y clave
pública. Típicamente, se utiliza un algoritmo de clave privada
eficiente para encriptar el documento utilizando una clave generada
aleatoriamente, llamada la clave de sesión, y la clave pública para
cada documento receptor se utiliza para encriptar esta clave de
sesión. Los receptores usan sus claves privadas para recuperar la
clave de sesión secreta y después usarla para desencriptar el
documento.
En efecto, el acercamiento anterior de
distribución de documentos tiene el aroma del encriptado proxy; el
propietario encripta el documento en primer lugar usando un esquema
de clave privada y después otorga el derecho de desencriptado, a
petición, a sus receptores mediante un esquema de clave pública.
Resulta que se puede usar uno de los dos nuevos esquemas de
encriptado proxy para combinar las mejores características del
acercamiento en un solo esquema de encriptado normal.
Tómese como el ejemplo el segundo esquema
expuesto anteriormente (figura 10). Se hacen dos observaciones.
Primera: el componente r del mensaje encriptado se puede generar
usando cualquier esquema de encriptado de clave privada con
K=g^{k} (mod p) como la clave de sesión secreta. Por consiguiente,
el mensaje m se puede recuperar en el paso de desencriptado de
mensajes por su correspondiente desencriptado de clave privada
usando la clave de sesión secreta K'=s'^{b}^{-1}(mod
p)=K. De hecho, el esquema de encriptado de clave secreta utilizado
en el esquema es r=E_{k} (m)=mK(mod p) para encriptado y
m=D_{k},(r)=rK'^{-1} (mod p) para desencriptado. Otro ejemplo
simple es el esquema de encriptado en base a XOR a nivel de bits
(\varoplus). En este caso, el cálculo de r y m se puede sustituir
por
r=E_{k}(m) =
m\varoplus K
\hskip0.5cmy
\hskip0.5cmm = D_{k}(r)=r\varoplus K.
Ciertamente, se puede emplear esquemas de
encriptado de clave privada más sofisticados tales como DES y
triple-DES si se necesita mayor seguridad.
\newpage
La segunda observación es que si el donante A es
quien encripta el mensaje m, A puede mantener privado el número
aleatorio k y usar la clave pública de B \beta=g^{b} (mod p), en
lugar de la clave privada b de B, para generar la clave proxy:
\pi =(\beta
\alpha ^{-1})^{k} \ (mod \
p),
donde a es la clave pública de A.
Esto elimina el requisito de la clave privada b de B (o intercambio
de claves A y B), e implica que B no tiene que confiar en
A.
Estas dos observaciones conducen al esquema de
distribución de documentos representado en la figura 11, que se
basa en el segundo esquema de encriptado proxy expuesto
anteriormente (y en conexión con la figura 10). En el esquema se
utiliza un esquema de encriptado de clave privada para encriptar el
mensaje justamente una vez para todos los receptores, mientras que
se utiliza una porción de clave proxy menos oportuna para encriptar
una cantidad pequeña de información, la clave de sesión,
personalizada una vez para cada receptor. Una característica
beneficiosa de este esquema es que el documento encriptado se puede
almacenar en depósito de acceso público, y la transformación proxy
la puede realizar el propietario del documento A, el receptor B, o
el depósito donde el documento está almacenado físicamente,
dependiendo de las necesidades de sistemas reales de distribución y
gestión de documentos.
Con referencia ahora a la figura 11, el esquema
se establece de la misma forma que un esquema ElGamal estándar
(véase la figura 6, descrita anteriormente). Además, se selecciona
(paso 1110) un esquema simétrico de encriptado de clave privada. Su
función de encriptado es m \rightarrow E_{K}(m) y la
función de desencriptado es r \rightarrow D_{k}(r),
donde K es alguna clave privada.
Para encriptar un documento m, el propietario A
elige primero un número uniformemente aleatorio k \in
Z*_{p}_{-1} (paso 1112) y calcula una clave de sesión
K=g^{k}(mod p) (paso 1114). El documento encriptado (r, s)
se calcula después como sigue:
r=E_{K}(m)
\hskip0.5cmy
\hskip0.5cms= K^{a} \ (mod \ p)
(paso 1116), donde a es la clave
privada de A. A mantiene privado el par (s,
k).
A la petición de un receptor B del documento
encriptado (r, s), A obtiene primero la clave pública auténtica
\beta de B (paso 1118) y recupera k del par (s, k) (paso 1120). A
calcula después \pi_{B}=\beta^{k}s^{-1} (mod p) (paso
1122), donde s^{-1} es la inversa de s módulo p, como la clave
proxy para B.
El documento es transformado posteriormente
calculando s'=s\pi_{B} (mod p) (paso 1124); el par (r, s)
representa el documento transformado personalizado para B.
Para desencriptar el documento personalizado (r,
s') y recuperar el documento original m, B recupera primero la
clave de sesión calculando K=s^{b}^{-1} (mod p) (paso 1126),
donde b^{-1} es la inversa de b módulo p-1.
Después el documento propiamente dicho es desencriptado calculando
m=D_{k} (r) (paso 1128).
Como se ha descrito anteriormente, una
adaptación de la presente invención también es aplicable a una
aplicación de protección de archivos. Generalmente, la protección
de archivos en sistemas inseguros tal como ordenadores portátiles y
hardware en red implica encriptado de archivos a largo plazo. Así,
las claves de encriptado usadas para encriptado de archivos tienen
duraciones mucho más largas que sus contrapartidas de comunicación.
Aunque la clave secreta, a largo plazo, primaria, de un usuario
puede ser la representación fundamental de una identidad de red del
usuario, hay peligro de que pueda estar en peligro si se utiliza
para muchos archivos a lo largo de un período largo de tiempo. Si
la clave primaria se pierde o es robada, no sólo se revela el
contenido de los archivos encriptados con ella, sino que el usuario
pierde también información personal basada en la clave tal como
cuenta de tarjeta de crédito, el número de seguridad social, etc.
Por lo tanto, con frecuencia es preferible utilizar un método en
línea en el que se deriva una nueva clave de desencriptado de la
clave primaria cada vez que un archivo ha de ser encriptado y
actualizado regularmente.
Con los esquemas de encriptado proxy aquí
expuestos, se puede generar nuevas claves de desencriptado y
actualizar constantemente mediante autodelegación para mantenerlas
frescas. Una vez que se crea una clave nueva y se genera una clave
proxy correspondiente, se puede destruir la clave secreta antigua,
conservando la nueva clave y clave proxy la capacidad de
desencriptar el archivo.
La figura 12 muestra un esquema de protección de
archivos que utiliza una tarjeta inteligente para almacenar y
actualizar claves de desencriptado. De nuevo se basa en el segundo
esquema de encriptado proxy aquí presentado, como se ilustra en la
figura 10.
Como se representa en la figura 12, para
encriptar un archivo m, un procesador embebido en una tarjeta
inteligente elige un número aleatorio k \in Z*_{p}_{-1} (paso
1210) y calcula
r = mg^{k} \
(mod \ p)
\hskip0.5cmy
\hskip0.5cms = (g^{k})^{a} \ (mod \ p)
(paso 1212), donde a es la clave
privada de la tarjeta inteligente. El par (r, s) representa el
archivo m en forma
encriptada.
Siempre que sea necesario o se desee, por
ejemplo, cada pocas semanas o después de un número predeterminado
de accesos a documentos, la tarjeta inteligente genera otro número
aleatorio uniforme a' \in Z*_{p}_{-1} (paso 1214) y calcula
s'=(s^{a}^{-1})a' (mod p) (paso 1216), donde a^{-1} es
la inversa multiplicativa de un módulo p-1. El
archivo encriptado (r, s) es sustituido después por (r, s') (paso
1218), y la clave de desencriptado a es sustituida por una nueva
clave de desencriptado a' (paso 1220). Estos pasos
1214-1220 se pueden repetir tantas veces como se
desee.
Para recuperar el archivo original m de su
versión encriptada (r, s), el procesador de la tarjeta inteligente
usa la última clave de desencriptado a para calcular m=rs^{-1}
(mod p) (paso 1222).
Obsérvese que el paso de encriptado de archivo
se puede iniciar con cualquier clave secreta que genere, no
necesariamente la clave privada de la tarjeta inteligente.
Mantener frescos los archivos encriptados
actualizando datos encriptados con un elemento de información
generada por tarjeta inteligente contribuye a mantener copias
únicas útiles de archivos protegidos. Esto, en cierto sentido,
también proporciona protección contra copia. Además, la no
conmutatividad del esquema hace inútil la copia previa de los
archivos, puesto que la información secreta correspondiente
almacenada en la tarjeta inteligente ha sido cambiada (y
preferiblemente destruida).
Aunque todos los ejemplos y algoritmos
anteriores emplean varias adaptaciones del criptosistema ElGamal, se
deberá observar que otros criptosistemas también pueden ser
adaptados por un esquema según la invención.
Por ejemplo, el criptosistema de clave pública
de Cramer-Shoup es un criptosistema propuesto
recientemente que es el primer sistema de clave pública práctico
que es inmune de forma demostrable al ataque de texto cifrado
adaptativo elegido. Véase R. Cramer y V. Shoup, "A Practical
Public Key Cryptosystem Provably Secure against Adaptive Chosen
Ciphertext Attack", Proceedings of CRYPTO 98, Springer Verlag
LNCS, vol. 1462, páginas 13-25 (1998). El ataque de
texto cifrado adaptativo elegido asume que el atacante puede obtener
desencriptados de cualesquiera textos cifrados elegidos distintos
del texto cifrado deseado. Por ejemplo, si el texto cifrado deseado
para el que se desea el texto común es c, se supone que el atacante
tiene que acceder a un "oráculo de desencriptado" que
desencriptará cualquier texto cifrado a excepción de c, incluyendo
por ejemplo c+1, 4c, etc. RSA y ElGamal caen fácilmente en este
tipo de ataque. Un concepto de seguridad diferente, pero
equivalente, contra ataques activos se denomina no maleabilidad;
sin embargo, los sistemas no maleables conocidos no son
prácticos.
A continuación se expone en la figura 13 una
descripción de una versión sin hash del criptosistema
Cramer-Shoup, cuya seguridad se basa estrictamente
en el problema de decisión de Diffie-Hellman para un
grupo arbitrario. Cómo delegar el derecho a desencriptar en un
esquema de Cramer-Shoup se ilustrará a continuación
en dos situaciones diferentes.
Con referencia inicialmente a la figura 13, el
sistema se establece eligiendo G como un grupo de orden primo q,
donde q es grande (paso 1310). El sistema asume que los mensajes de
texto claro son (o se pueden codificar como) elementos de G, y los
mensajes de texto cifrado son elementos de G^{4}=GxGxGxG; es
decir, un mensaje en texto cifrado es cuatro veces más largo que su
mensaje en texto común correspondiente.
Un buen ejemplo del grupo G es el subgrupo de
orden q en el conjunto multiplicativo Z*_{p} para algún primo
grande p=2q+1. En este caso, un mensaje m del conjunto {1,...,q}
puede ser "codificado" elevándolo al cuadrado módulo p, dando
lugar a un elemento en G, y el mensaje m puede recuperarse de su
codificación calculando la única raíz cuadrada de su módulo de
codificación p, en el conjunto {1,...,q}.
Se genera una clave como sigue. En primer lugar,
se eligen (paso 1312) elementos aleatorios g_{1}, g_{2} \in
G, y se eligen (paso 1314) elementos aleatorios
X_{1},x_{2},y_{11},y_{12},y_{21},
y_{22},y_{31},y_{32},2\inZ_{q}. A continuación, se
calculan (paso 1316) los elementos del grupo
c=g_{1}^{x1}g_{2}^{x2},
d_{1}=g_{l}^{y11}g_{2}^{y12},
d_{2}=g_{1}^{y21}g_{2}^{y21},
d_{3}=g_{1}^{y33}g_{2}^{y32}, y h=g_{1}^{z} (paso
1316). La clave pública se calcula después
(g_{1},g_{2},c,d_{1},d_{2},d_{3},h) (paso 1318) y la clave
privada se calcula (x_{1}, x_{2}, y_{11}, y_{12}, y_{21},
y_{31}, y_{32}, z) (paso 1320).
Dado un mensaje m \in G, el método de
encriptado comienza eligiendo r \in Z_{q} aleatoriamente (paso
1322). Después, el texto cifrado (u_{1},u_{2},e,v) se calcula
como sigue (paso 1324):
u_{1} =
g_{1}{}^{r},
\hskip0.3cmu_{2} = g_{2}{}^{r},
\hskip0.3cme = h^{r}m,
\hskip0.5cmy
\hskip0.5cmv = c^{r}
\hskip0.5cmd_{1}{}^{u2r}
\hskip0.5cmd_{2}{}^{u2r}
\hskip0.3cmd_{3}{}^{er}.
\newpage
Dado el texto cifrado (u_{1},u_{2}e,v), el
algoritmo de descifrado correspondiente comprueba primero si
(paso 1326). Si no, el esfuerzo de
desencriptado es rechazado (paso 1328). De otro modo, el mensaje m
se calcula como m=e/u_{1} (paso
1330).
La corrección de un criptosistema se puede
verificar verificando que el desencriptado de un encriptado de un
mensaje produce el mensaje. En este caso, dado que
u_{1}=g_{1}^{r} y u_{2}=g_{2}^{r}, se tiene
u_{1}^{x1}u_{2}^{x2} = g_{1}^{rx1 g}_{2}^{rx2} =
c^{r}. Igualmente,
\vskip1.000000\baselineskip
y
\vskip1.000000\baselineskip
Por lo tanto, para el texto cifrado válido, la
prueba realizada en el algoritmo de desincriptado pasará.
La seguridad de este criptosistema se basa en la
dificultad de resolver el problema de decisión de
Diffie-Hellman. Un algoritmo que resuelve el
problema de decisión de Diffie-Hellman es una prueba
estadística que puede distinguir efectivamente las dos
distribuciones siguientes: (a) cuádruplos aleatorios
(g_{1},g_{2},u_{1},u_{2})\inG^{4}, y (b)
cuádruplos aleatorios (g_{1}, g_{2},u_{2})\inG^{4},
donde g_{1}, g_{2} son aleatorios y u_{1}=g_{1}^{r} y
u_{2}=g_{2}^{r} para algún aleatorio r\inZ_{g}.
Relacionado con el problema de decisión de
Diffie-Hellman están el problema de
Diffie-Hellman (dado g, g^{x}, y g^{y},
calcular g^{xy}), y el problema del logaritmo discreto (dado g y
g^{x}, calcular x). Dentro de tiempo polinómico, el problema de
decisión de Diffie-Hellman se puede reducir al
problema de Diffie-Hellman que a su vez se puede
reducir al problema del logaritmo discreto. Esta relación entre los
tres problemas es la que conduce a la posibilidad de delegar el
derecho a desencriptar para el sistema
Cramer-Shoup.
Supóngase que alguien desea delegar el derecho a
desencriptar de un delegador (Alice, A) a un delegado (Bob, B).
Supóngase que Alice tiene la clave pública
(g_{1},g_{2},c,d_{1},d_{2},d_{3},h) y la clave privada
(x_{1},x_{2},y_{11},y_{12},
y_{21},y_{22},y_{31},y_{32},z), y que Bob tiene la clave
pública (c', h') y la clave privada
(g'_{1},g'_{2},c',d'_{1},d'_{2},d'_{3},h') y la clave
privada (x'_{1},x'_{2},y'_{11},y'_{12},y'_{21},
y'_{22},y'_{31},y'_{32},z').
y'_{22},y'_{31},y'_{32},z').
Recuérdese que para un mensaje de texto común
dado m \in G, el mensaje en texto cifrado para el delegador A es
M=(u_{1}, u_{2}, e, v), donde u_{1}=g'_{1},
u_{2}=g_{2}^{r}, e=h'm, y
v=c^{r}d_{1}^{u1r}d_{2}^{u2r}d_{3}^{er}. Igualmente,
si el mensaje m es encriptado directamente para el delegado B, el
mensaje en texto cifrado es M'=(u'_{1},u'_{2},e',v'), donde
u'_{1}=g_{1}^{'r'}, u'_{2}=g_{2}^{'r'}, e'=h'r'm, y
v'=c^{'r'}d_{1}^{'ru1r'}d_{2}^{ru'2r'}d_{3}^{'r'r'},
donde r' es también un número aleatorio a partir de Z_{q}.
Obsérvese también que v=(cd_{1}^{u1}d_{2}^{u2}
d_{3}^{r})^{r} y v'=(c'd_{1}^{'u'1r'}d_{2}^{ru'2}d_{3}^{re}')^{r'}.
d_{3}^{r})^{r} y v'=(c'd_{1}^{'u'1r'}d_{2}^{ru'2}d_{3}^{re}')^{r'}.
En base a las ideas expuestas anteriormente,
para delegar el derecho a desencriptar de A en B implica generar
una clave de transferencia, usar dicha clave de transferencia para
transformar M en M. A continuación, se supone que los componentes
g'_{1},g'_{2} de la clave pública de B son idénticos a los
componentes g_{1}, g_{2} de la clave pública de A (de forma
análoga a los parámetros del sistema ElGamal descritos
anteriormente). Además, se supone que el número aleatorio r' es el
mismo que r. En estos dos supuestos, los elementos u'_{1},u'_{2}
del mensaje en texto cifrado de los mismos que los elementos
u_{1},u_{2} del mensaje en texto cifrado de A.
Con referencia ahora a la figura 14, el sistema
se establece eligiendo G como un grupo de orden primo q, donde q es
grande (paso 1410)- A continuación, como antes, se genera la clave
de la siguiente manera. En primer lugar, se eligen los elementos
aleatorios g_{1},g_{2}\inG (paso 1412), y se eligen los
elementos aleatorios
x_{1},x_{2},y_{11},y_{12},y_{21},y_{22},y_{31},y_{32},Z\inZ_{q}
(paso 1414). A continuación, se calculan los elementos de grupo
c=g_{1}^{x_{1}}g_{_{2}}^{x_{2}},
\hskip0.3cmd_{1}=g_{1}^{y_{11}}g_{2}^{y_{12}},
\hskip0.3cmd_{2}=g_{1}^{y_{21}}g_{2}^{y_{22}},
\hskip0.3cmd_{3}=g_{1}^{y_{31}}g_{2}^{y_{32}},
\hskip0.5cmy
\hskip0.5cmh=g_{1}^{Z}
(paso 1416). La clave pública se
calcula después como (g_{1},g_{2},c,d_{1},d_{2},d_{3},h)
(paso 1418) y la clave privada se calcula como (x_{1}, x_{2},
y_{11}, y_{12}, y_{21}, y_{22}, y_{31}, y_{32}, Z)(paso
1420).
\newpage
Dado un mensaje m \in G, el método de
encriptado comienza eligiendo r \in Z_{q} aleatoriamente (paso
1422). Después el texto cifrado (u_{1},u_{2},e, v) se calcula
como sigue (paso 1424):
Si la clave privada de B está disponible para
generar la clave de transferencia \pi, dicha clave se obtiene
(paso 1426) y después se puede calcular \pi (paso 1428) como
sigue:
\vskip1.000000\baselineskip
\pi=(\varepsilon, \theta,
\delta_{1}, \delta_{2},
\delta_{3})
donde
La transformación de texto cifrado es
entonces
Esto transforma el texto cifrado
(u_{1},u_{2},e,v) a (u_{1},u_{2},e,v') (paso 1430).
El receptor/delegado es capaz entonces de
desencriptar el texto cifrado transformado (u_{1},u_{2},e',v').
Como antes, el algoritmo de desincriptado comprueba primero si
(paso 1432). Si no, el esfuerzo de
desencriptado se rechaza (paso 1434). De otro modo, el mensaje m se
calcula como m = e'/u_{1}^{rz'} (paso
1436).
En caso de que solamente la clave pública del
delegado B se pueda usar para delegar el derecho a desencriptar el
mensaje del delegador A a B, hay que guardar y usar el número
aleatorio r usado inicialmente al encriptar el mensaje para A. Esto
puede ser un problema donde la parte para generar la clave de
transferencia no es A, y puede no ser un problema si la parte es,
de hecho, A. En cualquier caso, si está disponible, la clave de
transferencia se puede generar usando la clave pública de B como
sigue:
\vskip1.000000\baselineskip
\pi =
(\varepsilon,\theta,\delta_{1},\delta_{2},\delta_{3})
donde
La transformación proxy es entonces
Es sencillo verificar, en cualquier caso, que el
delegado B puede utilizar su propia clave privada para desencriptar
el texto cifrado (u'_{1},u'_{2},e',v') transformado por los
métodos expuestos anteriormente. Dado que los mecanismos usados en
la presente memoria en el criptosistema Cramer-Shoup
son los mismos que los usados anteriormente en criptosistemas
parecidos a ElGamal, son públicos y no conmutativos, suponiendo que
el problema de Diffie-Hellman y el problema del
logaritmo discreto son difíciles de resolver.
Como se ha descrito anteriormente, mediante la
mejora común de esquemas de encriptado de clave pública con la
capacidad de encriptado proxy, resulta posible soportar el
desencriptado designado flexible. Esta descripción ha presentado
dos esquemas de encriptado proxy públicos y no conmutativos, que han
heredado los méritos de los esquemas existentes y desechado sus
inconvenientes. Se ha demostrado que los nuevos esquemas tienen
aplicaciones directas a la distribución masiva de documentos y
protección de archivos. La idea básica de estos nuevos esquemas
también se ha aplicado a criptosistemas de otros tipos tal como el
criptosistema Cramer-Shoup, mejorándolos a esquemas
de encriptado proxy.
Aunque los varios aspectos de la presente
invención se han descrito con referencia a varios aspectos y sus
realizaciones, dichas realizaciones se ofrecen a modo de ejemplo, no
como limitación. La descripción detallada anterior de la invención
se ha presentado a efectos ilustrativos y descriptivos. No se
pretende ser exhaustivos o limitar la invención a la forma exacta
descrita, y obviamente muchas modificaciones y variaciones son
posibles a la luz de las ideas anteriores. Las realizaciones
descritas se eligieron para explicar mejor los principios de la
invención y sus aplicaciones prácticas para permitir por lo tanto a
otros expertos en la técnica utilizar mejor la invención en varias
realizaciones y con varias modificaciones que sean adecuadas para el
uso particular contemplado. Los expertos en la técnica serán
capaces con esta descripción de hacer varias adiciones o
modificaciones obvias a las realizaciones aquí descritas; se
considera que las adiciones y modificaciones caen dentro del
alcance de la presente invención. Se pretende que el alcance de la
invención se defina por las reivindicaciones anexas a la presente
memoria.
Claims (8)
1. Un método para proteger un archivo de datos
en un sistema informático, incluyendo los pasos de:
encriptar (1212) el archivo de datos usando una
clave pública de un esquema de encriptado de clave pública para
crear un archivo de datos encriptados;
generar (1214) una nueva clave privada para
sustituir la clave privada de dicho esquema de encriptado de clave
pública;
actualizar (1216) el archivo de datos
encriptados con dicha nueva clave privada y dicha clave privada para
crear un archivo actualizado de datos encriptados transformando la
información clave del archivo de datos encriptados;
sustituir (1218) el archivo de datos encriptados
por el archivo actualizado de datos encriptados; y
sustituir (1220) la clave privada por la clave
nueva.
2. Un método según la reivindicación 1,
incluyendo además el paso de repetir el paso de generación, el paso
de actualización y los dos pasos de sustitución periódicamente.
3. Un método según la reivindicación 1 o 2,
incluyendo además el paso de desencriptar (1222) el archivo de
datos encriptados con la clave privada, donde la clave privada ha
sido sustituida por la clave nueva, y donde el archivo de datos
encriptados ha sido sustituido por el archivo actualizado de datos
encriptados.
4. Un método según cualquiera de las
reivindicaciones 1 a 3, donde el esquema de encriptado de clave
pública se basa en un esquema de encriptado ElGamal.
5. Un sistema activado por procesador adaptado
para proteger un archivo de datos, incluyendo el sistema:
un procesador; y
una memoria acoplada al procesador para
almacenar el archivo de datos;
donde el procesador se programa para efectuar
los pasos de:
encriptar el archivo de datos usando una clave
pública de un esquema de encriptado de clave pública para crear an
archivo de datos encriptados;
generar una nueva clave privada para sustituir
la clave privada de dicho esquema de encriptado de clave
pública;
actualizar el archivo de datos encriptados con
dicha nueva clave privada y dicha clave privada para crear un
archivo actualizado de datos encriptados transformando la
información clave del archivo de datos encriptados;
sustituir el archivo de datos encriptados por el
archivo actualizado de datos encriptados; y
sustituir la clave privada por la clave
nueva.
6. Un sistema activado por procesador según la
reivindicación 5, incluyendo además una interface de
comunicaciones.
7. Un sistema activado por procesador según la
reivindicación 5 o 6, donde el procesador y la memoria se incluyen
dentro de un dispositivo portátil.
8. Un sistema activado por procesador según la
reivindicación 5 o 6, donde el procesador y la memoria se incluyen
dentro de una tarjeta inteligente.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US468747 | 1999-12-21 | ||
| US09/468,747 US6937726B1 (en) | 1999-04-06 | 1999-12-21 | System and method for protecting data files by periodically refreshing a decryption key |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2261135T3 true ES2261135T3 (es) | 2006-11-16 |
Family
ID=23861071
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES00121767T Expired - Lifetime ES2261135T3 (es) | 1999-12-21 | 2000-10-05 | Sistema y metodo de proteccion criptografica de datos. |
Country Status (4)
| Country | Link |
|---|---|
| EP (1) | EP1111838B1 (es) |
| AT (1) | ATE322779T1 (es) |
| DE (1) | DE60027119T2 (es) |
| ES (1) | ES2261135T3 (es) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| SE521906C2 (sv) * | 2001-11-01 | 2003-12-16 | Kreatel Comm Ab | Metod och anordning för kryptering av multimediainnehåll |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6584565B1 (en) * | 1997-07-15 | 2003-06-24 | Hewlett-Packard Development Company, L.P. | Method and apparatus for long term verification of digital signatures |
-
2000
- 2000-10-05 ES ES00121767T patent/ES2261135T3/es not_active Expired - Lifetime
- 2000-10-05 DE DE60027119T patent/DE60027119T2/de not_active Revoked
- 2000-10-05 EP EP00121767A patent/EP1111838B1/en not_active Revoked
- 2000-10-05 AT AT00121767T patent/ATE322779T1/de not_active IP Right Cessation
Also Published As
| Publication number | Publication date |
|---|---|
| EP1111838A3 (en) | 2003-09-24 |
| EP1111838B1 (en) | 2006-04-05 |
| ATE322779T1 (de) | 2006-04-15 |
| EP1111838A2 (en) | 2001-06-27 |
| DE60027119D1 (de) | 2006-05-18 |
| DE60027119T2 (de) | 2006-09-07 |
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 | |
| CN114039790B (zh) | 一种基于区块链的细粒度云存储安全访问控制方法 | |
| Fugkeaw et al. | Secure and lightweight blockchain-enabled access control for fog-assisted IoT cloud based electronic medical records sharing | |
| JP4855940B2 (ja) | 暗号用鍵の世代の効率的な管理 | |
| Kumar et al. | Secure storage and access of data in cloud computing | |
| US7260215B2 (en) | Method for encryption in an un-trusted environment | |
| ES2304929T3 (es) | Metodo para transferir los derechos para decodificar mensales. | |
| Khashan | Secure outsourcing and sharing of cloud data using a user-side encrypted file system | |
| CN1279851A (zh) | 虚拟矩阵加密以及虚拟密钥密码方法和设备 | |
| US7286665B1 (en) | System and method for transferring the right to decode messages | |
| CA2312980A1 (en) | System and method of sending and receiving secure data using anonymous keys | |
| Tian et al. | An efficient scheme of cloud data assured deletion | |
| Stoianov | Cryptographically secure biometrics | |
| ES2259592T3 (es) | Sistema y metodo para delegar derechos de decodificacion en esquemas de decodificacion simetricos. | |
| Bacis et al. | Mix&Slice for efficient access revocation on outsourced data | |
| Esiner et al. | Two-factor authentication for trusted third party free dispersed storage | |
| Pei et al. | Security enhanced attribute based signcryption for private data sharing in cloud | |
| Kaur et al. | Cryptography in cloud computing | |
| CN109495478A (zh) | 一种基于区块链的分布式安全通信方法及系统 | |
| EP1111838B1 (en) | System and method for cryptographically protecting data | |
| Abdalla et al. | Anonymous Pairing-Free and Certificateless Key Exchange Protocol for DRM System. | |
| EP1699162A2 (en) | Method for document distribution | |
| Buchovecká et al. | Symmetric and asymmetric schemes for lightweight secure communication |