ES2400894A2 - Procedimiento para una firma digital múltiple - Google Patents

Procedimiento para una firma digital múltiple Download PDF

Info

Publication number
ES2400894A2
ES2400894A2 ES201130777A ES201130777A ES2400894A2 ES 2400894 A2 ES2400894 A2 ES 2400894A2 ES 201130777 A ES201130777 A ES 201130777A ES 201130777 A ES201130777 A ES 201130777A ES 2400894 A2 ES2400894 A2 ES 2400894A2
Authority
ES
Spain
Prior art keywords
signature
mod
signers
signer
partial
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.)
Granted
Application number
ES201130777A
Other languages
English (en)
Other versions
ES2400894B1 (es
ES2400894R1 (es
Inventor
Luis HERNÁNDEZ ENCINAS
Jaime MÚÑOZ MASQUÉ
José Rául DURÁN DÍAZ
Fernando HERNÁNDEZ ÁLVAREZ
Víctor GAYOSO MARTÍNEZ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonica SA
Original Assignee
Telefonica SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to ES201130777A priority Critical patent/ES2400894B1/es
Application filed by Telefonica SA filed Critical Telefonica SA
Priority to ES12722319.6T priority patent/ES2548838T3/es
Priority to PCT/EP2012/058583 priority patent/WO2012156255A1/en
Priority to US14/116,828 priority patent/US9191214B2/en
Priority to BR112013029138A priority patent/BR112013029138A2/pt
Priority to EP12722319.6A priority patent/EP2707990B1/en
Priority to ARP120101650A priority patent/AR086339A1/es
Publication of ES2400894A2 publication Critical patent/ES2400894A2/es
Publication of ES2400894R1 publication Critical patent/ES2400894R1/es
Application granted granted Critical
Publication of ES2400894B1 publication Critical patent/ES2400894B1/es
Withdrawn - After Issue legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3255Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Procedimiento para una firma digital múltiple. ComProcedimiento para una firma digital múltiple. Comprende: i) generar, por una tercera parte de confiprende: i) generar, por una tercera parte de confianza (T), una clave privada para cada firmante o manza (T), una clave privada para cada firmante o miembro (F1, F2, ..., Ft) de un grupo de firmantes iembro (F1, F2, ..., Ft) de un grupo de firmantes (G); ii) generar, cada uno de dichos firmantes (F{(G); ii) generar, cada uno de dichos firmantes (F{sub,1, F2, ..., Ft), una firma parcial de un documsub,1, F2, ..., Ft), una firma parcial de un documento (M) usando sus claves privadas; iii) generar ento (M) usando sus claves privadas; iii) generar una firma múltiple a partir de dichas firmas parciuna firma múltiple a partir de dichas firmas parciales; y iv) verificar dicha firma múltiple. Compreales; y iv) verificar dicha firma múltiple. Comprende además generar, por la tercera parte de confiande además generar, por la tercera parte de confianza (T), una clave pública común para todos dichosnza (T), una clave pública común para todos dichos firmantes (F1, F2, ..., Ft) y usar dicha clave pú firmantes (F1, F2, ..., Ft) y usar dicha clave pública común para realizar dicha verificación de lablica común para realizar dicha verificación de la firma múltiple de iv). firma múltiple de iv).

Description

Procedimiento para una firma digital múltiple
Campo de la técnica
La presente invención se refiere, en general, a un procedimiento para una firma digital múltiple, basándose en la generación de una firma múltiple a partir de dicha firmas parciales y la verificación de la misma, y más particularmente a un método que comprende usar una clave pública común para realizar dicha verificación.
Estado de la técnica anterior
En la actualidad hay diferentes métodos y algoritmos para realizar, de manera segura, firmas electrónicas o digitales por medio de redes informáticas. La mayor parte de estos protocolos se basan en criptografía de clave pública (PKC), (véase [MOV97]). La característica principal de este tipo de criptografía es que cada individuo tiene dos claves, una clave pública, denominada e, y una clave privada, denominada d. La clave pública permite a cualquier usuario cifrar los mensajes dirigidos al propietario de la clave, usando un procedimiento de cifrado, E. Por tanto, esta clave se conoce públicamente. Por otro lado, la clave privada solo la conoce su propietario y es la que permite descifrar los mensajes cifrados recibidos, a través de un procedimiento de descifrado, D.
En general, el único requisito para un criptosistema de clave pública es que el cifrado de un mensaje M, con la clave pública, Ee, seguido de su descifrado con la clave privada, Dd, debe dar como resultado el mensaje original, es decir,
Dd (Ee (M)) = Dd (c) = M.
Considerando el caso de las firmas digitales, los procedimientos de cifrado y descifrado, E y D, en los que se basan, deben verificar condiciones adicionales. Una de ellas es que el procedimiento de cifrado realizado con la clave privada, seguido del procedimiento de descifrado realizado con la respectiva clave pública deben tener como resultado el mensaje original, es decir, los procedimientos E y D deben verificar que:
De (Ed (M)) = De (c´) = M.
Además, para que los procedimientos de firmas digitales y su transmisión electrónica sean más eficaces, se usan funciones hash (véase [FGHMM04], [MOV97], [NIST02]). Estas funciones se conocen públicamente y permiten firmar un resumen del documento original en lugar de todo el documento. En este documento estas funciones se indicarán por H(·).
El procedimiento general para realizar la firma digital de un documento, M, sigue las siguientes etapas (véase la figura 1):
1. Seleccionar el criptosistema de clave pública, (E, D), y la función hash, H, que van a usarse en el procedimiento.
2.
Generar las claves pública y privada, e, d, del usuario que va a firmar el documento.
3.
Calcular el resumen del mensaje que va a firmarse:
H (M) = m.
4. Firmar digitalmente el resumen del mensaje usando la clave privada del firmante:
Ed (m) = f.
5. Publicar el documento original y su correspondiente firma digital: (M, f).
6. Verificar y autenticar la firma del documento. Esta verificación se lleva a cabo usando el mensaje original, M, y la clave pública del emisor, e:
De (f) = De (Ed (m)) = m,
H(M) = m´
m´ ¿=? m.
El desarrollo y la simplicidad con respecto al uso de ordenadores y el acceso generalizado a Internet para los ciudadanos han conducido a la aparición de nuevas necesidades y requisitos que la tecnología debe satisfacer, de modo que ahora debe ser posible llevar a cabo protocolos de firma digital que no se consideraban antes. Éste es el caso de las firmas múltiples.
Una firma múltiple es un protocolo de firma digital en el que un grupo de t firmantes,
G = {F1, F2, …, Ft},
firma el mismo documento con la idea de que la firma digital del documento solo será válida si todos ellos participan en el protocolo (véase, por ejemplo, [Abo07], [AA07], [BN06], [Boy88], [HK89], [IN83], [KH90], [OO91], [Oka88], [PPKW97], [PLL85]).
La manera más sencilla de llevar a cabo una firma múltiple para un mensaje es considerar como tal firma la lista formada por todas las firmas parciales de cada uno de los firmantes. Sin embargo, esta firma no es práctica ya que su longitud es proporcional al número de firmantes.
En general, la mayoría de protocolos de firma múltiple basados en criptosistemas de clave pública se realizan de la siguiente manera:
1.
El firmante F1 firma un resumen del mensaje original, calculado a partir de una función hash que se conoce públicamente. Esta firma se realiza usando la clave privada del firmante y siguiendo el protocolo establecido por el criptosistema de clave pública que esté usándose.
2.
A continuación, cada uno de los firmantes siguientes, de manera ordenada, firma el documento, ya firmado por el que le antecede en el grupo, siguiendo el mismo protocolo de firma ya establecido en la primera etapa.
3.
Finalmente, el último miembro del grupo de firmantes, Ft, firma el correspondiente documento firmado que le ha enviado el firmante previo. Esta firma se determina usando su clave privada y, si es necesario, con la clave pública del verificador. Posteriormente, Ft envía al verificador no solo el mensaje sino también la firma múltiple calculada por el grupo de firmantes.
El procedimiento de verificación se realiza como sigue:
1. El verificador recibe el mensaje y la firma múltiple calculada por el grupo de firmantes.
2. El verificador realiza la verificación de la firma múltiple comprobando cada una de las firmas parciales del grupo de firmantes, siguiendo el protocolo y manteniendo el orden en el que se firmaron.
Hay diversas invenciones relativas a métodos de firma digital. Ninguna de ellas tiene una relación directa con el esquema de firma múltiple propuesto en esta invención.
Por ejemplo, varias patentes proponen métodos para elaborar una firma digital usando criptografía de clave pública, tal como RSA ([DHM05], [KOKS09]), curvas elípticas sobre campos finitos ([Shi01], [TK02]), y por medio de correlaciones bilineales ([Gen10]). Además, se presenta un método de firma de grupo basado en firmas anulares en [MFM04] y se presenta un esquema de firma digital usando firmas agregadas de identidad en [GR10].
La mayoría de las invenciones anteriores proponen métodos de firma digital individual y se basan en herramientas matemáticas distintas, pero todas ellas son diferentes de las herramientas usadas en esta invención.
Hay otros esquemas de firma propuestos para un grupo de firmantes. Por ejemplo, se presenta un sistema de firmado de múltiples etapas en [SFH01]. Este método usa múltiples dispositivos de firmado para asociar una firma individual que puede verificarse usando una única clave de verificación pública. En este caso, cada dispositivo de firmado tiene una cuota de la clave de firma y asocia una firma parcial en respuesta a la autorización de una pluralidad de agentes de autorización. Además, esta patente no da a conocer el uso de una clave privada para cada uno de los firmantes, es decir, no es exactamente un esquema de firma múltiple.
La invención presentada en [OO01] es un método que permite a un verificador efectuar una verificación en bloque de firmas individuales, múltiples o superpuestas asociadas electrónicamente por una pluralidad de firmantes a uno o más documentos.
Estos métodos, propuestos todos ellos para varios firmantes, difícilmente pueden considerarse esquemas de firma múltiple.
Por otro lado, la invención dada en [KOKS09] se basa en el criptosistema de clave pública RSA y es un verdadero método de firma múltiple mediante el cual una pluralidad de firmantes realizan de manera sucesiva un proceso de generación de firma de un documento dado para generar de ese modo una firma. En este caso, la firma se calcula usando el sistema RSA. Finalmente, en [FSNT09], la invención proporciona un sistema de verificación de firma múltiple sumando nuevos datos adicionales a los datos originales con una firma asociada a los mismos y verificando la validez de los datos originales y los datos adicionales.
El artículo [WCW96] propone un esquema de firma múltiple basado en la identificación de los firmantes. En este caso, cada firmante tiene su propio par de claves pública/privada, de las que la clave pública se obtiene a partir
de información pública del firmante, relacionada en general con su identidad, tal como su dirección de correo electrónico, por ejemplo.
Otra propuesta para esquemas de firma múltiple se ha propuesto en [QX10]. En esta propuesta, la herramienta matemática depende de un mapa bilineal. La propuesta es bastante teórica ya que no se proponen implementaciones eficaces y prácticas de mapas bilineales.
Finalmente, la patente [ZWW10] da a conocer un método para proteger la seguridad de documentos de firma digital de múltiples verificadores designados firmemente por múltiples firmantes, donde cada firmante tiene su propia clave pública.
Problemas con las soluciones existentes
Los protocolos genéricos descritos anteriormente presentan habitualmente algunas deficiencias, tales como:
1.
Ya se ha demostrado que muchos de los esquemas propuestos no son seguros.
2.
Implican un gran esfuerzo computacional.
3.
En la mayoría de los esquemas de firma múltiple, el tamaño de la firma de un mensaje aumenta en la misma medida que el grupo de firmantes, lo que no es en absoluto deseable.
4.
La necesidad de que todos los firmantes deban estar presentes simultáneamente para llevar a cabo la firma puede provocar un retraso en la obtención de la firma múltiple.
5.
El hecho de que la firma múltiple tenga que llevarse a cabo en un orden determinado del grupo de usuarios obliga a verificar la firma de cada firmante en el orden inverso.
6.
Dado un grupo de firmantes y una firma múltiple para un mensaje dado, el protocolo de firma múltiple tiene que realizarse una vez más por todos los miembros del grupo cada vez que un nuevo firmante se une al grupo.
7.
En varios esquemas de firma múltiple, son necesarias algunas condiciones adicionales, másrestrictivas sobre las claves del firmante. Éste es el caso para esquemas basados en RSA ([DHM05], [RSA78]). En estos esquemas, el módulo RSA de cada firmante debe aumentar a medida que aumenta el orden de cada firmante. De lo contrario, o bien la firma no puede realizarse o bien debe dividirse en bloques y entonces debe firmarse cada uno de estos bloques. El hecho de firmar varios bloques implica un mayor tamaño de la firma y más esfuerzo computacional.
Como ya se ha mencionado, la mayoría de los esquemas de firma múltiple se basan en criptosistemas de clave pública. Los dos criptosistemas más generalizados en la actualidad son aquellos cuya seguridad se basa o bien en factorización numérica (RSA [RSA78]), o bien en el problema de logaritmo discreto (ElGamal [ElG85], Elliptic curves [HMV04], [Men93]), y por tanto las características generales de los esquemas de firma múltiple se basan en estos sistemas. En esta invención, se usará un sistema ligeramente diferente, que representa una novedad y proporcionará algunas ventajas en comparación con los sistemas mencionados anteriormente.
El primer esquema de firma múltiple fue diseñado por Itakura y Nakamura ([IN83]). Desde entonces no se ha propuesto ninguna solución al problema de firmar un documento conjuntamente de manera eficaz. En esa propuesta, se realizó una modificación de RSA de tal manera que el módulo considerado era el producto de tres primos en lugar de sólo dos. Además, cada uno de los firmantes, en orden, firma la firma del firmante que le precede en el grupo, de modo que el último miembro del grupo es quien realmente calcula la firma de todo el grupo ya que firma el resultado de la firma de todos los firmantes anteriores que él. Para verificar la firma múltiple, el verificador actúa verificando la firma de cada firmante del grupo en el orden correcto.
Okamoto ([Oka88]) propuso otro esquema de firma múltiple, basado también en RSA. En este esquema, la longitud de la firma es similar a la longitud obtenida a partir de un esquema de firma simple, y más corta que la firma obtenida a partir del esquema propuesto por Itakura y Nakamura. Además, esta propuesta puede usarse sólo si el criptosistema es biyectivo; por ejemplo, en el caso de RSA, pero este hecho no se verifica en criptosistemas basados en el problema de logaritmo discreto.
El esquema de Harn y Kiesler ([HK89]) propone una modificación de RSA que permite a un grupo de usuarios firmar un documento y enviarlo a un receptor o verificador, que debe conocerse de antemano. En este caso, la longitud del texto cifrado es fija y no depende del número de firmantes del grupo. Sin embargo, los firmantes deben firmar el documento de manera consecutiva; por tanto es necesario aplicar varias transformaciones a las firmas parciales.
Más tarde, Kiesler y Harn ([KH90]) propusieron otras opciones para solucionar las limitaciones que los autores mencionan en la utilización del criptosistema RSA como un esquema de firma digital, es decir: bloquear la expansión de bits del mensaje, problema del tamaño de módulo para firmas múltiples, y el problema de módulo relacionado con la firma digital, y confidencialidad.
En [PPKW97] se proponen dos esquemas que mejoran los presentados en [Oka88] y [KH90]. El primero implica un aumento en el número de bits en la firma múltiple aunque este aumento no excede el número de firmantes. El segundo esquema no implica ningún aumento en el número de bits, pero se requiere que cada firmante tenga módulos RSA con el mismo número de bits y con el mismo patrón en los bits más significativos, lo que induce un defecto importante en su seguridad.
Para intentar resolver algunas de las desventajas anteriores, otra propuesta es el uso de rebloqueo ([PLL85]), pero esta opción todavía presenta el problema de mantener el orden de los firmantes.
En [AA07] se propone otro esquema más en el que cada firmante puede usar un módulo RSA de diferente tamaño. Esta opción produce un aumento en el número de bits, pero esta vez, el aumento se refiere al número de firmantes y no al tamaño del módulo usado.
Por lo que respecta a los esquemas de firma múltiple basados en el problema de logaritmo discreto, es importante mencionar el esquema propuesto por Laih y Yen ([LY96]). En este esquema, el grupo de firmantes debe cooperar para firmar el mensaje y enviarlo a un grupo dado de verificadores. Entonces, solo la unión de todos los verificadores puede validar la firma múltiple. Además, los firmantes no solo deben usar sus propias claves privadas, sino también la clave pública de todos los verificadores. En cualquier caso, el uso de este esquema no es recomendable ya que se han detectado ciertas debilidades ([He02], [Yen96]).
Hwang, Chen y Chang ([HCC98]) diseñaron otro esquema de firma múltiple para un grupo dado de verificadores, que proporciona autenticidad y confidencialidad; sin embargo, en este esquema, el mensaje solo puede recuperarse si todos los verificadores junto con su correspondiente firma múltiple se unen entre sí.
Otro nuevo esquema (véase [ZX04]) permite realizar una firma múltiple si los verificadores de la firma pertenece a un grupo previamente especificado. No obstante, para este esquema se han encontrado también ciertas debilidades ([LWK05], [YY05]).
En todos los artículos y patentes anteriores, cada firmante tiene un par de claves pública/privada, lo que no sucede en esta propuesta. Como se mencionó anteriormente, este esquema de firma múltiple tiene la propiedad y la ventaja de que cada firmante tiene su propia clave privada, pero todos ellos comparten la misma clave pública. Este hecho simplifica y evita en gran medida los problemas mencionados anteriormente en relación con el esfuerzo computacional para el cálculo, ancho de banda y, por tanto, la eficacia global del protocolo propuesto.
Finalmente, un artículo de gran interés es el publicado por Bellare y Neven ([BN06]), porque los autores presentan un esquema de firma múltiple general para un modelo genérico de clave pública. Desde su publicación, esta propuesta se ha considerado una referencia esencial para los esquemas de firma múltiple. No obstante, en este modelo se han considerado obligatorios algunos requisitos, tales como los siguientes:
Cada uno de los firmantes debe tener una clave pública certificada, con su correspondiente clave privada, que debe generarla el propio firmante.
Los firmantes deben interaccionar en un número dado de ciclos. En cada ciclo, cada firmante recibe un mensaje, realiza varios cálculos y envía otro mensaje al siguiente firmante.
• Debe ser computacionalmente inviable falsificar una firma múltiple si existe un firmante honesto.
Hasta la fecha no se ha propuesto ningún esquema ni patente eficaz, que pueda solucionar todos los problemas mencionados anteriormente, es decir, no se ha diseñado ningún esquema con los siguientes requisitos:
1.
Seguridad.
2.
Eficacia.
3.
Independencia del tamaño de la firma múltiple con respecto al número de firmantes.
4.
Posibilidad de firma fuera de línea, es decir, no todos los firmantes deben estar en línea simultáneamente.
5.
Firma del mensaje por todos los firmantes en cualquier orden.
6.
Simplicidad en el procedimiento para añadir nuevos firmantes.
7.
Simplicidad en el procedimiento verificación de la firma múltiple (que no sea necesario verificar la firma parcial de cada miembro del grupo de firmantes).
Descripción de la invención
Es necesario ofrecer una alternativa al estado de la técnica que supere los problemas mencionados anteriormente que sufren las soluciones existentes.
Con este fin, la presente invención proporciona un procedimiento para una firma digital múltiple, que comprende:
i) generar, por una tercera parte de confianza, una clave privada para cada firmante o miembro de un grupo de firmantes;
ii) generar, cada uno de dichos firmantes, una firma parcial de un documento usando sus claves privadas;
iii) generar una firma múltiple a partir de dichas firmas parciales; y
iv) verificar dicha firma múltiple.
A diferencia de las propuestas conocidas, el procedimiento de la invención comprende generar, por dicha tercera parte de confianza, una clave pública común para todos dichos firmantes y usar dicha clave pública común para realizar dicha verificación de la firma múltiple de iv).
Este procedimiento permite generar las claves de una tercera parte de confianza, que generará la clave pública común y las claves privadas de un determinado grupo de usuarios. Estos usuarios firmarán conjuntamente un documento de tal manera que las firmas de todos los miembros del grupo constituirán la firma múltiple de tal grupo para el documento dado.
Una vez realizada la firma múltiple, cualquiera que conozca la clave pública común del grupo de usuarios podrá verificar la autenticación de la firma múltiple o bien declararla inválida.
La presente invención se basa en un nuevo esquema de firma múltiple, que no se ha propuesto ni publicado antes, que cumple todos los requisitos mencionados anteriormente. Por tanto, garantiza que todos los problemas descritos en el apartado anterior se solucionan de manera precisa.
Cabe destacar que este nuevo esquema no coincide con el modelo propuesto en [BN06] ya que el procedimiento se lleva a cabo en un único ciclo en el que participan todos los firmantes. Además, no todos los firmantes tienen que tener su propio par de claves certificadas (pública y privada). De hecho, en el protocolo propuesto en esta invención todos los firmantes comparten la misma clave pública, pero cada uno tiene una clave privada diferente, que se mantiene en secreto y que solo conoce él mismo y el centro generador de claves o tercera parte de confianza.
En particular, se proponen dos protocolos diferentes para obtener una firma múltiple para un documento. El primero, que requiere una tercera parte de confianza no solo para generar las claves sino también para realizar la firma múltiple, es más eficaz que el segundo, que no necesita una tercera parte de confianza para realizar la firma.
Como se mencionó en la sección de estado de la técnica anterior, el esquema general de los dispositivos que llevan a cabo el procedimiento de firma múltiple considera las siguientes etapas (véase la figura 2):
1.
Generar las claves por una tercera parte de confianza.
2.
Verificar las claves del firmante.
3.
Generar la firma múltiple por medio de la firma parcial de cada miembro del grupo de firmantes.
4.
Verificar la firma múltiple.
En esta invención, se presenta un procedimiento para llevar a cabo los procesos de generación de claves, generación de la firma múltiple y verificación de la firma múltiple.
Esta invención no solo garantiza la generación de una firma digital múltiple de un documento por un grupo de firmantes, sino que también mejora sustancialmente otros protocolos publicados anteriormente de muchas formas diferentes. Por ejemplo, es más fácil de usar, es más eficaz computacionalmente y permite ahorrar tiempo y ancho de banda.
Otras realizaciones del procedimiento de la invención, para algunas de las cuales se requiere la colaboración de la tercera parte de confianza mientras que para otras no, se describen según las reivindicaciones 2 a 17 adjuntas, y en una sección posterior relativa a la descripción detallada de varias realizaciones.
Breve descripción de los dibujos
Las anteriores y otras ventajas y características se entenderán más completamente a partir de la siguiente descripción detallada de realizaciones, con referencia a los dibujos adjuntos, que deben considerarse de manera ilustrativa y no limitativa, en los que:
la figura 1 muestra un esquema general de un procedimiento de firma digital representativo del protocolo de un procedimiento de firma digital convencional;
la figura 2 es un diagrama de flujo que ilustra un procedimiento convencional usado para realizar una firma múltiple;
la figura 3 ilustra, por medio de un diagrama de flujo, una realización del procedimiento de la invención que usa una tercera parte de confianza para realizar la firma múltiple;
la figura 4 es un diagrama de flujo que ilustra una realización del procedimiento de la invención para el que no requiere la colaboración de una tercera parte de confianza para realizar la firma múltiple; y
la figura 5 muestra una arquitectura que implementa el procedimiento de la invención para una realización.
Descripción detallada de varias realizaciones
Siendo {F1, F2, …, FN} un grupo de N usuarios, una firma digital múltiple es un procedimiento mediante el cual cada subgrupo de t miembros del mismo,
G = {F1, F2, …, Ft},
puede realizar, en cualquier momento, a través de un protocolo especificado, una firma común de un documento o de un mensaje previamente fijado. Además, una firma de este tipo puede verificarse y validarse por cualquier otro usuario. Para llevar a cabo la verificación es necesario conocer el número de usuarios, t, el documento original o un resumen de tal mensaje generado mediante una función hash, m, la firma múltiple, y la(s) clave(s) pública(s) usada(s) en el protocolo.
Tal como se mencionó anteriormente, estos protocolos de firma digital necesitan un centro de claves o una tercera parte de confianza, T, que genere tanto sus propias claves como las claves de cada uno de los firmantes.
En esta propuesta, se describirán dos protocolos para realizar la firma. Los dos protocolos proporcionan la misma firma múltiple cada vez que se usan las mismas entradas del protocolo. Por tanto, ambos son esencialmente el mismo, aunque presentan algunas diferencias con respecto a las acciones que llevan a cabo tanto la tercera parte de confianza como los usuarios que participan en el protocolo.
Por otro lado, la tercera parte de confianza, T, puede formar parte del grupo de firmantes o no, lo que no afecta ni al procedimiento de firma ni a la propia firma múltiple.
Las fases en las que se divide este protocolo son las siguientes (véanse las figuras 3-4):
1.
Generación de claves.
2.
Verificación de claves.
3.
Generación de la firma digital múltiple. a) Con la colaboración de T. b) Sin la colaboración de T.
4.
Verificación de la firma digital múltiple.
A continuación se describe más detalladamente cada una de las fases:
1. Generación de claves
En primer lugar, deben generarse la clave de T y después las claves de los firmantes. Las etapas para generar la clave de T son las siguientes:
1. T elige dos números primos grandes p y q, que deben cumplir las siguientes condiciones:
p = u1 · r · p1 + 1, q = u2 · r · q1 + 1, donde r, p1, q1 son números primos y u1, u2 número enteros pares, cuyo máximo común divisor (mcd) es mcd(u1, u2) = 2, es decir, u1 = 2 · v1 y u2 = 2 · v2.
2.
T calcula n = p · q, <(n) = (p–1)(q–1) = u1 · u2 · r2 · p1 · q1, A(n) = mcm(p–1, q–1) = 2 v1 · v2 · r·p1 · q1, donde mcm representa el mínimo común múltiplo, <(n) es la función de Euler y A(n) es la función de Carmichael. Para garantizar la seguridad del protocolo, el tamaño de r, es decir, su longitud de bits, debe ser
suficientemente grande para hacer computacionalmente irresoluble el problema de logaritmo discreto en subgrupo (SDLP), con orden r de los enteros módulo n, Z*n.
3.
A continuación, T elige un número entero a E Z*n con orden multiplicativo r, módulo n y que cumpla la condición
mcd(a, <(n)) = mcd(a, u1 · u2 · r2 · p1 · q1) = 1.
Siendo Sr el subgrupo de Z*n generado por a. La obtención del generador a puede llevarse a cabo de manera eficaz, es decir, en un tiempo polinomial, simplemente siguiendo el lema 3.1 de [Sus09].
En realidad, según este lema, la primera etapa es determinar un elemento g E Z*n cuyo orden es A(n). El procedimiento consiste en elegir un elemento g E Z*n y en verificar que g elevado a todos los posibles divisores de A(n), módulo n, es diferente de 1 en todos los casos. Este procedimiento es rápido ya que la factorización de A(n) se conoce y sólo tiene unos pocos factores primos, de modo que la lista de sus divisores puede calcularse fácilmente. En caso de que el elemento elegido aleatoriamente no satisfaga esta condición, debe elegirse otro y repetirse el procedimiento.
Una vez determinado el elemento g con orden A(n), la siguiente etapa es calcular el elemento
a = g2v1.v2.p1.q1(mod n)
4. T genera un número secreto aleatorio s en Sr y calcula
� = as (mod n).
5. Los valores (a, r, �, n) se hacen públicos, mientras que T mantiene los (p, q, s) en secreto. Aunque el factor r de p–1 y q–1 se conoce y n es el producto de dos primos, p y q, actualmente no hay
ningún algoritmo eficaz que pueda calcular los dos factores de n. Las etapas seguidas por T para generar las claves de los firmantes son:
1.
T determina su clave privada generando aleatoriamente cuatro números enteros
2.
T obtiene la clave pública común para todos los firmantes calculando
a0, b0, c0, d0 E Zr.
,n
,n
3. A partir de las expresiones anteriores, T determina
n n Por tanto, tanto P como Q son elementos del subgrupo Sr; es decir, existen números enteros h, k E Zr, que
satisfagan h = (a0 + s · b0) (mod r), k = (c0 + s · d0) (mod r).
4. T determina la clave privada para cada firmante Fi E G, con i = 1, …, t, generando cuatro número enteros para cada uno de ellos,
ai, bi, ci, di E Zr ,
de modo que los firmantes compartirán la misma clave pública (P, Q). Por tanto, para los valores de i = 1, …, t, deben cumplirse las siguientes dos condiciones Zr, h = (ai + s · bi) (mod r), k = (ci + s · di) (mod r),
o de manera equivalente ai = (h – s · bi) (mod r), (1) ci = (k – s · di) (mod r). (2)
Por tanto, puesto que T conoce los valores s, h y k, determina t claves privadas para los firmantes Fi simplemente generando t pares de números aleatorios bi, di E Zr y entonces, calculando los valores correspondientes ai, ci E Zr según las ecuaciones anteriores (1) y (2).
Una vez que T ha calculado las claves privadas, las distribuye de manera segura a los firmantes.
2. Verificación de claves
Para verificar que la clave de T es correcta, cada firmante, Fi E G, i = 1, …, t, sólo tiene que comprobar si: a f 1 (mod n), ar = 1 (mod n).
Además, cada firmante debe comprobar si la clave pública conocida corresponde a su clave privada. Para ello, cada firmante sólo tiene que verificar si se cumplen estas dos ecuaciones siguientes
,
Para realizar la firma digital múltiple, se consideran dos escenarios, dependiendo de si la tercera parte de confianza T colabora con el grupo de firmantes o no.
El primer caso, concretamente, cuando la firma múltiple se realiza con la colaboración de T, es más rápido, más eficaz y seguro que el segundo. 3a. Firma digital múltiple realizada con la colaboración de T
En este protocolo (véase la figura 3), cada uno de los firmantes realiza su firma particular para el resumen
del mensaje, m, y la envía, de manera segura, a T, que se encarga de realizar la firma múltiple. Para ello, en primer lugar debe verificar la validez de todas las firmas recibidas y después sumarlas todas, módulo r.
1.
Cada firmante Fi E G, i = 1, …, t, calcula su firma como sigue: fi = ai + ci · m (mod r), gi = bi + di · m (mod r).
2.
El firmante Fi envía, de manera segura, su firma a T.
3.
T verifica la validez de cada una de las firmas recibidas comprobando si
, i = 1, …, t .
4. Una vez verificadas todas las firmas, T calcula la firma múltiple para el documento m, (f, g), simplemente sumando todas las firmas parciales:
f = Li=1, …, t fi (mod r),
g = Li=1, …, t gi (mod r).
5. Finalmente, T publica (f, g) como la firma múltiple de G para m. 3b. Firma digital múltiple realizada sin la colaboración de T Es posible realizar la firma múltiple de m sin la colaboración de T, pero en este caso el procedimiento no es tan directo como el anterior (véase la figura 4). En este procedimiento cada firmante firma la firma del anterior, de modo que es necesario difundir las firmas parciales entre el grupo de firmantes y establecer un orden en el grupo de firmantes para evitar posibles ataques por un firmante o una conspiración de varios firmantes. Cuando T colaboraba para realizar la firma múltiple, las firmas parciales podían realizarse fuera de línea, es decir, cada firmante podía realizar su firma en cualquier momento sin necesidad de que todos ellos estén conectados al mismo tiempo. Para el presente caso, todos los firmantes deben estar conectados simultáneamente y
la firma se realiza en un solo acto. No hay necesidad de esperar al cálculo de la firma de cada firmante.
Sea G = {F1, …, Ft} el grupo de firmantes en un orden fijo arbitrario.
En este caso, en lugar de ser la tercera parte de confianza la que verifica la firma de todos los firmantes,
cada firmante verifica por sí mismo la firma del firmante previo. Después realiza su propia firma y la suma a la firma recibida. Más precisamente, el procedimiento es el siguiente: 1) El primer firmante, F1, realiza su firma para el resumen de un mensaje dado, m, calculando f1 = a1 + c1 · m (mod r), g1 = b1 + d1 · m (mod r) y envía (f1, g1) al grupo de firmantes. 2) El segundo firmante, F2: a) Verifica la firma de F1 comprobando si
.
b) Calcula la firma parcial acumulada para el mensaje, calculando f2 = f1 + a2 + c2 · m (mod r) = a1 + a2 +(c1 + c2) m (mod r), g2 =g1 + b2 + d2 · m (mod r) = b1 + b2 +(d1 + d2) m (mod r).
c) Envía (f2, g2), como la firma parcial acumulada al grupo de firmantes.
3) El firmante F3 recibe la firma parcial (f2, g2) y
a) Verifica la firma parcial de F2 comprobando si
b) Calcula su propia firma parcial acumulada para el mensaje, calculando f3 = f2 + a3 + c3 · m (mod r) = a1 + a2 + a3 +(c1 + c2 + c3) m (mod r), g3 = g2 + b3 + d3 · m (mod r) = b1 + b2 + b3 +(d1 + d2 + d3) m (mod r).
5 c) Envía (f3, g3) al grupo de firmantes como su firma parcial. i) El firmante Fi usa la firma parcial de Fi–1, (fi–1, gi–1), y a) La verifica, comprobando
. b) Calcula su firma parcial acumulada para el mensaje, calculando 10 fi = fi–1 + ai + ci · m (mod r) = a1 + …+ ai +(c1 + … + ci) m (mod r),
gi = gi–1 + bi + di · m (mod r) = b1 +… + bi +(d1 + … + di) m (mod r). c) Envía (fi, gi) al grupo de firmantes. t) El último firmante, Ft a) Verifica la firma parcial de Ft–1 comprobando si
15 .
b) Calcula su firma parcial acumulada para el mensaje, calculando ft = ft–1 + at + ct · m (mod r) = a1 + … + at +(c1 + …+ ct) m (mod r),
gt = gt–1 + bt + dt · m (mod r) = b1 + … + bt +(d1 + … + dt) m (mod r). c) Publica la firma múltiple para m: (f, g) = (ft, gt). 20 La condición que debe satisfacer la firma parcial del firmante Fi–1 llevada a cabo por el firmante Fi se cumple puesto que:
.
La verificación de todas las firmas parciales acumuladas realizada por cada uno de los firmantes (salvo por el primero) es obligatoria: ningún firmante debe firmar un mensaje sin haber comprobado la validez de la firma
realizada hasta ese momento. Haciendo esto y dado que todos los firmantes son honestos, en la mayoría de los casos, se evitan verificaciones adicionales. En realidad, cada firmante puede actuar como el verificador y puede verificar la firma múltiple usando la firma múltiple y la clave pública común puesto que son conocidas por todos los firmantes.
5 Si o bien la firma múltiple final o bien cualquiera de las firmas parciales acumuladas no ha satisfecho una o más pruebas de verificación, se sabrá que, al menos, uno de los firmantes ha falsificado su firma o que ha tenido lugar algún tipo de conspiración entre varios firmantes. El motivo por el que todas las firmas parciales acumuladas deben difundirse a todo el grupo es para conocer exactamente dónde ha sucedido la falsificación. En ese momento, el problema será decidir qué firmante es el falsificador. Puesto que todo el grupo conoce las firmas parciales, la
10 única tarea que hay que realizar es restar pares de firmas consecutivas y verificar la firma del firmante correspondiente.
La difusión de las firmas parciales dentro del grupo de firmantes compensa mutuamente las ventajas y desventajas, ya que, por ejemplo, cualquier firma parcial acumulada se verifica sólo por un firmante, no por todos. Además, la firma del último firmante no se verifica por ninguno de los firmantes restantes y el primer firmante envía
15 su firma directamente, sin que haya sido sumada a otra.
Es importante señalar que las firmas múltiples obtenidas a partir de los dos procedimientos explicados, con
o sin la colaboración de T, coinciden. Por tanto, la verificación de la firma múltiple del primer procedimiento se aplica también al segundo.
4. Verificación de la firma múltiple
20 Sea (f, g) una firma digital múltiple para un resumen de un mensaje, m, realizada por el siguiente grupo de t usuarios:
G = {F1, …, Ft}.
Para verificar la validez de tal firma el procedimiento es el siguiente, independientemente de si la firma se realizó con o sin la colaboración de la tercera parte de confianza.
25 La firma múltiple del grupo G, con t miembros, para m es válida si se cumple la siguiente condición
En realidad, es suficiente con tener en cuenta que
. El diseño global para la arquitectura del procedimiento propuesto en esta invención se muestra en la figura
5. 35 Ventajas de la invención:
Puede verse que tanto el procedimiento de verificación de la firma múltiple como las verificaciones de las firmas parciales son similares al procedimiento usado en el esquema clásico de ElGamal ([ElG85], [FGHMM04]).
Este hecho aumenta la confianza en la seguridad de esta propuesta. No obstante, esta similitud no es una equivalencia, ya que el esquema de esta invención es nuevo y no sigue los mismos patrones que otros esquemas ya publicados.
De hecho, en esta invención, la firma se verifica comprobando si se cumple la siguiente ecuación:
af · �g (= af · (as)g ) ¿ = ? P · Qm (mod n).
Sin embargo, la verificación de firma en el esquema de ElGamal usa la siguiente ecuación
(aa)r · (ah)s ¿ = ? am (mod p).
En ambas expresiones, todos los parámetros los conoce el verificador de la firma; y m, en ambas expresiones, es el resumen del mensaje cuya firma debe verificarse.
La similitud de ambas verificaciones reside en el hecho de que en ambas expresiones el objetivo es comprobar una igualdad usando el resumen del mensaje como el exponente de un parámetro público.
Ventajas adicionales del presente esquema son:
1.
La longitud de la firma es siempre la misma, independientemente del tamaño del mensaje o del número de firmantes. Además, la firma es corta, ya que el par (f, g) son dos elementos del subgrupo Sr de Z*n.
2. El tiempo de cálculo de todas las operaciones es polinomial.
3.
Si la tercera parte de confianza participa en el protocolo, cada firmante calcula su firma por su cuenta; no se espera que los firmantes estén en línea al mismo tiempo. Una vez que T ha recibido todas las sumas parciales, determinará la firma múltiple.
4.
Además, cuando T colabora en el protocolo, no hay obstáculo alguno para añadir nuevos firmantes al grupo original de firmantes en cualquier momento sin tener que realizar todo el protocolo una vez más. La única tarea que los recién llegados tienen que hacer es calcular sus correspondientes firmas y enviarlas a T. Después, T verificará estas firmas y calculará la nueva firma múltiple sumando las nuevas firmas a la firma múltiple original.
5.
Si el protocolo se realiza sin la colaboración de T, los firmantes deben estar en línea simultáneamente, de modo que la firma múltiple pueda realizarse en un solo acto. De esta manera no es necesario esperar a que todos los firmantes calculen, en un orden establecido, su firma parcial acumulada.
6.
También es posible añadir nuevos firmantes al procedimiento cuando T no colabora sin tener que realizar todo el protocolo una vez más. En este caso los nuevos firmantes sólo tienen que ordenarse aleatoriamente después del último firmante del grupo original y calcular sus firmas acumuladas usando la última firma conocida.
7.
La verificación de la firma múltiple en ambos protocolos es muy simple y eficaz, ya que sólo es necesario un cálculo. Este cálculo permite la validación de todas las firmas parciales de todos los miembros del grupo.
Seguridad de la firma múltiple
En caso de usar el protocolo en el que T colabora, no existe la posibilidad de que dos firmantes conspiren para generar una firma falsa ya que la firma múltiple la determina la tercera parte de confianza y ésta verifica en el procedimiento que cada una de las firmas parciales corresponde a cada uno de los firmantes.
Si el protocolo se lleva a cabo sin la colaboración de T, una conspiración entre dos o más firmantes no es posible porque todos los firmantes participan en el protocolo y cada uno verifica la firma del firmante previo. Además, si cualquiera de los firmantes tuviese alguna sospecha de posibles conspiraciones o firmas falsificadas, podría verificar todas y cada una de las firmas parciales porque todas las firmas parciales acumuladas se difunden a todos los miembros del grupo. De esta manera, pueden detectarse fácilmente tanto la falsificación como al culpable.
Por otro lado, ningún firmante puede determinar el valor secreto s elegido por T conociendo sólo su clave privada y la clave pública común. Debe señalarse que la determinación de s a partir de los parámetros a y = as (mod n) implica el cálculo de logaritmos discretos en el subgrupo, Sr, de orden r, generado por a. Este hecho es imposible ya que r se eligió de tal manera que este problema fuese irresoluble en Sr.
Si dos, o más, firmantes, por ejemplo, Fi y Fj, conspiran para obtener el valor secreto s de T, pueden determinar sus correspondientes firmas parciales para un mensaje dado, (fi, gi) y(fj, gj), respectivamente. Puesto que se cumple la siguiente ecuación
, (3)
pueden realizar el siguiente cálculo:
,
Sin embargo, puesto que a es un elemento de orden r, se cumple la siguiente expresión: fi – fj = s (gj – gi) (mod r), (4) es decir, s´ = s (mod r) = (fi – fj) (gj – gi)–1 (mod r). (5) No obstante, después de estos cálculos, los firmantes sólo obtendrán el valor de s´ = s (mod r) y no el valor real de s. Por tanto, este tipo de ataque no afecta a la seguridad del protocolo. Usando la misma hipótesis, si varios firmantes quieren forzar el sistema y calcular s firmando diferentes mensajes, elegidos por ellos mismos o aleatoriamente, intentando obtener más información sobre el protocolo y forzarlo, no obtendrán más información que la obtenida al firmar un único mensaje. En realidad, supóngase que dos firmantes, Fi y Fj, eligen dos mensajes diferentes, por ejemplo, m1 y m2, y calculan sus correspondientes firmas para cada uno de ellos. Sean (fi, gi) y(hi, ki) las firmas de Fi para tales mensajes, y sean (fj, gj) y(hj, kj) las correspondientes firmas de Fj. En este caso, usando la expresión (3) para cada mensaje, se cumplen las siguientes ecuaciones:
,
, donde, tal como sucede en (4), puede obtenerse: fi – fj = s (gj – gi) (mod r),
hi – hj = s (kj – ki) (mod r), por tanto, tal como sucede en (3), el resultado es
s´ = s (mod r) = (fi – fj) (gj – gi)–1 (mod r) = (hi – hj) (kj – ki)–1 (mod r) y el valor obtenido para s´ es el mismo que el obtenido cuando se usó sólo un mensaje. Aplicaciones de la invención:
La invención puede aplicarse de manera satisfactoria cuando las firmas digitales son obligatorias pero varias entidades o personas deben firmar conjuntamente el mismo documento, mensaje, contrato, etc. Entre otras aplicaciones, pueden mencionarse las siguientes:
• Cualquier proceso que requiera una firma digital en el que esté implicado más de un firmante.
Firmas digitales en escenarios corporativos para firmar contratos entre empresas o entre una empresa y un cliente.
Firmas digitales entre empresas o usuarios y el gobierno y las administraciones públicas.
Firmas digitales usadas para contratos con varios miembros.
Firmas digitales para acuerdos o actas entre diferentes organizaciones. Estas aplicaciones son muy útiles en entornos relacionados con estas actividades:
Gobierno y administración pública (local, regional o nacional). En particular, es muy conocido que el Ministerio de Comercio, Turismo e Industria español ha desarrollado una aplicación, denominada eCoFirma, para
realizar y verificar firmas digitales. Además, este proyecto implementa la validación de archivos compuestos por firmas múltiples (http://oficinavirtual.mityc.es/javawebstart/soc_info/ecofirma/index.html). Esta aplicación usa certificados digitales, por tanto usa claves RSA. Como se sabe, estas claves son grandes y hacen que el archivo que contiene la firma aumente a medida que se añaden más firmas. Con nuestra propuesta, la firma múltiple puede realizarse de manera más eficaz y por tanto el procedimiento de validación es más rápido, aunque las claves usadas tengan un origen muy diferente, tal como se mencionó anteriormente.
Negocios. En este caso, es posible que diferentes empresas que pertenecen a un grupo específico, o que diferentes personas de un comité, usen esta propuesta para firmar de manera múltiple determinados documentos o acuerdos a los que todos se acogen.
Declaraciones juradas. La mayoría de los documentos legales requieren firmas de todos los miembros implicados (compraventa, hipoteca, divorcios, declaración de herencia, etc.), así como la certificación notarial del documento. Esta propuesta puede usarse como una aplicación fiable y segura para llevar a cabo estas clases de procesos.
Banca. Al igual que con los procesos legales, los procedimientos bancarios, en muchas situaciones, requieren firmar documentos en los que están implicadas varias partes, incluyendo la propia entidad bancaria. En este caso, también es posible usar esta invención.
Militar. En entornos militares, es posible que algunas decisiones deban llevarse a cabo siguiendo un orden predeterminado dependiendo del rango de mando. En un determinado momento, cada una de las autoridades implicadas debe firmar una decisión determinada. Cada una de estas firmas podría llevarse a cabo usando la firma múltiple de cada una de las partes implicadas, aunque en este caso debe establecerse un orden específico en todo el proceso.
Internet. El creciente uso de Internet podría requerir que dos, o más partes, deban llevar a cabo un acuerdo on-line. Este compromiso puede realizarse usando nuestra propuesta de procedimiento digital electrónico. De esta manera, todas las partes implicadas recurren a una tercera parte de confianza para llevar a cabo tal acuerdo.
Autoridades de certificación. En general, son necesarias autoridades de certificación para emitir certificados digitales fiables, que cumplan con la norma X.509.v3. Este hecho implica el uso de grandes claves (como sucede con las claves RSA) y procedimientos de firma digital que, en caso de usar un software para realizar firmas múltiples, presentan algunos problemas ya mencionados en el presente documento: un gran esfuerzo computacional, un aumento en el tamaño de los archivos a medida que aumenta el número de firmantes, etc. Con nuestra propuesta, estas autoridades de certificación podrían desarrollar sus propias aplicaciones y pasar a ser la tercera parte de confianza necesaria en la invención.
A continuación se describe una posible implementación del procedimiento de firma múltiple en su conjunto, comenzando con la generación de claves hasta la verificación de la firma, pasando por la generación de la firma. En esta implementación se usarán los tamaños de clave actualmente recomendados para evitar posibles ataques. Tales ataques pueden montarse si fuese posible factorizar el módulo n (problema de factorización de enteros), o si fuese posible resolver el problema de logaritmo discreto, ya sea en el subgrupo multiplicativo de números enteros módulo n o en un subgrupo de orden r.
Supóngase que el grupo de firmantes consiste en t = 5 usuarios: G = {F1, F2, F3, F4, F5} y que T es la tercera parte de confianza.
Generación de claves
Tras las etapas mencionadas en las secciones anteriores, T genera su propia clave privada y la clave pública. Para mostrar un ejemplo que puede usarse en aplicaciones prácticas, con garantías de seguridad, se ha generado un número r con 192 bits, que hace que el problema de logaritmo discreto sea irresoluble en un subgrupo de orden r. Además, se han generado los números primos p y q para tener, aproximadamente, 512 bits cada uno, lo que significa que n tiene aproximadamente 1024 bits. Este tamaño es suficientemente grande para garantizar su seguridad frente a los ataques de factorización durante un tiempo razonable (los dígitos de cada número se han separado en grupos de 10 para facilitar su legibilidad).
Los valores calculados son los siguientes:
u1 = 74 = 2 · 37,
u2 = 188 = 2 · 94,
r = 4280023136 1972361770 9720134208 9944684948 9050016803 52659163,
p1 = 3098365935 5115484298 6754567228 9635523537 4615761798 4830977826 9780185513 2773111664 9369523991 95821,
q1 = 1520450525 2113540207 5164722445 6778025701 0592684151 0042773032 3583726574 4664496833 3500176742 76217,
p = 9813197637 4121676342 6568482314 0310918044 3735395146 3165527063 6735923149 3320377492 6066484931 1740863445 7483957527 4926886593 9416106694 0401463789 3848791487 8903,
q = 1223421923 9653928573 7921720553 5181885769 8744000443 3360186341 6722487366 9987835834 7336009802 3419921079 1174748161 9489598922 7394318308 0189542960 9232557889 57749,
n = 1200568113 3815441777 9200008036 6880591092 5122610186 1101012447 6894157975 4465649221 2596080380 9123496642 1067708087 9742404316 7621962457 4759824948 7705927686 2918453404 3641462423 0810501474 4219629870 8072023173 2433241319 0597257452 8032813795 4341600436 0856910403 2445755423 0802903516 3200102347 0407173383 4836375827 918469347,
<(n) = 1200568113 3815441777 9200008036 6880591092 5122610186 1101012447 6894157975 4465649221 2596080380 9123496642 1067708087 9742404316 7621962457 4759824948 7705927686 2918232930 1953755813 4602443617 5434708573 0497711419 2475273645 1549217844 8350881808 0757606170 2561451002 5022063108 6888205287 5617968754 1429750414 5496514084 214632696,
A(n) = 1402525261 1697779776 1246015561 0377785768 6729617252 9437752774 8325801441 1744936419 7360621133 0844851766 7090293566 1320231059 3956741493 0846169277 4865387347 5469537220 7724643327 9875093536 1891321645 6744284572 2113021501 6365721481 5842212697 6943090932 1704533099 6.
A continuación, T determina un elemento g del grupo de los números enteros módulo n, Z*n cuyo orden es A(n), y entonces calcula el elemento, a E Z*n de orden r:
g = 6717842480 6844949028 2650889244 7341097607 4856794135 4583987170 7599944781 2359090515 8314497447 7912737103 9877888876 4046534433 0747123418 0588943781 6284997792 9837297897 4063898679 2643451640 5737585977 8744839425 8032592210 1563318039 7169841482 5698356635 9188997629 5351471211 3905774450 1739771466 4650268641 0946248241 08211637,
a = 8220765701 6677161639 2295645083 3786098404 5377364917 3263164161 5842095460 8347176795 8314383910 6838300087 8332450440 8079227722 7829626715 4492401350 5177874046 3160709427 8939487852 8737556254 2790192185 4409743264 1912537776 6579916297 4553776942 1764040414 7985455200 6834952531 2224875762 4602378529 0612313367 0589148641 54862251.
Entonces, T genera un número secreto s E Sr. Para lograr esto, necesita generar un número aleatorio, z, en el intervalo [1, r] y calcular s = az (mod n). Entonces, determina el elemento �:
z = 2562266773 7774597450 4409468429 7834074901 8000412016 9914173,
s = 4753261714 1928251118 2743629876 4391793367 2307333076 1603563912 5002000524 9060497658 0824242118 6704298946 3445895108 4404897626 6689329111 3557924664 5307037629 8989659634 5807828772 4429722874 3556504143 8852477027 0325311761 9225951212 8994160952 8446681790 9094409361 4867349016 1812858607 1648136904 8090599371 8575649900 69295616,
= 4861935264 2803079954 6555178384 8192834398 3164492398 1652625442 7161959668 1467074572 8858845443 7528030493 1407985056 2750859231 2565714340 0369700824 6078908252 2563853007 1595785428 4460245931 4579818936 4632592036 1993827761 2083044887 0729245762 1484480929 0382280230 6144704709 2769342983 0689033301 5305777214 2718955708 68985223.
T calcula su clave privada, a0, b0, c0, d0 E Zr y la clave pública, (P, Q), que compartirán todos los firmantes del grupo G:
a0 = 3796851234 6569680283 3338368391 5365556062 4833209082 53580661,
b0 = 2591850459 9367460902 5934873820 3760658099 0333592083 17194694,
c0 = 1518925798 4392236395 1016813551 4526953578 9549887870 12160497,
d0 = 3795856474 1095936126 3365200938 2597076303 2769773305 51257252,
P = 8319958649 6056447734 7328052772 9933714896 8407194844 8369500960 5176404651 5164701887 3220925662 9019150287 7627255992 0904205949 0852478635 0690085650 7726157268 1634089222 5831822786 0354912705 0697911594 1772574866 2925316237 6241224905 7755828693 7646145188 0473447052 8492011177 6049627590 7768935677 1530034818 3540964671 99575149,
Q = 7646114260 2099407040 5307511791 2284288636 2591565615 1338741603 2204187548
9954259612 1452554504 1316398658 6916773912 5040898369 8517070596 9516952757 9781255613 9956857784 9279960920 3809990561 1580294365 3546145623 3432930343 3600377178 5723369168 1634251649 1476315642 6634673934 9718641568 1411906770 6077428431 1364467438 92098833.
A continuación, T difunde los valores (a, �, n, r).
La siguiente etapa es el cálculo de las claves privadas de los firmantes del grupo G. Para lograr esto, T calcula, en primer lugar, los siguientes valores:
h = 3872871254 9788136665 1132678495 1408621258 8355187161 47094974,
k = 9595184946 6557841042 7041038895 8525680100 0947749031 804377.
Finalmente, T genera los valores aleatorios bi, di E Z*r para i = 1, …, 5, y determina los correspondientes valores para ai y ci. De esta manera, obtiene las 5 claves privadas, que se distribuirán de manera segura a cada uno de los firmantes del grupo:
(a1, b1, c1, d1) = (3283241757 5870636656 2148739413 6347233920 8366198197 35436378, 1151430213 9289655133 5986558470 5215666832 7514688545 71831717, 3839753842 7757266331 6697562043 9112177778 0738242539 93302939, 2403125912 8894003222 9570075762 6023463547 5329056797 71114669),
(a2, b2, c2, d2) = (1550178576 4794736629 8920233691 3661760348 7403838961 45128686, 1563760386 7728655548 8657603181 0647710782 2162854443 65985785, 6103724830 5688795750 4070736808 6412512413 3278352318 4958155, 1759919831 6288861490 4411691354 5080836678 8884940065 70680177),
(a3, b3, c3, d3) = (2791564021 0033574126 8721638070 1589015898 1812242310 5344330, 6677309778 5621420138 9539159254 2346765657 8489201524 0252392, 1221691357 9545259603 5141749286 9077438598 0549008717 28371300, 4095493946 8040799465 7837334005 8468133920 9532706455 00497958),
(a4, b4, c4, d4) = (2453365078 9361925247 4551356603 8117805834 4499954214 11351773, 6930834099 0325869370 2436425339 9961527746 8907567771 7562893, 2396464971 9220531648 9542977954 4179966718 7496705898 02476593, 3647109711 1114185126 8934154780 7991224353 9039657962 55314516),
(a5, b5, c5, d5) = (2814663960 7597908778 4976941814 3370387434 4440465417 57439916, 3435450655 2240480352 2565604258 5579327971 4569713507 39009618, 4168673880 1586125932 7609156104 2565600095 2678283105 60380425, 1821609138 4217289729 1499706890 6952954417 7710311415 86835967).
Verificación de claves
Para verificar la clave de T y la clave común de todos los firmantes, simplemente es necesario que todos ellos comprueben las ecuaciones
a f 1 (mod n),
a r = 1 (mod n),
,
lo cual es casi inmediato. Generación de la firma múltiple con la colaboración de T
Supóngase que el mensaje que va a firmarse está almacenado en un archivo, cuyo contenido es el siguiente (es un fragmento de “El Quijote”):
“En esto, descubrieron treinta o cuarenta molinos de viento que hay en aquel campo, y así como don Quijote los vio, dijo a su escudero:
La aventura va guiando nuestras cosas mejor de lo que acertáramos a desear; porque ves allí, amigo Sancho Panza, donde se descubrieron treinta, o poco más desaforados gigantes, con quien pienso hacer batalla y quitarles a todos las vidas, con cuyos despojos comenzaremos a enriquecer, que ésta es buena guerra, y es gran servicio de Dios quitar tan mala simiente de sobre la faz de la tierra.
– ¿Qué gigantes? –dijo Sancho Panza.
Aquellos que allí ves –respondió su amo– de los brazos largos, que los suelen tener algunos de casi dos leguas.
Mire vuestra merced –respondió Sancho– que aquellos que allí se parecen no son gigantes, sino molinos de viento, y lo que en ellos parecen brazos son las aspas, que volteadas del viento, hacen andar la piedra del molino.”
El cálculo de su resumen usando la función SHA-1 proporciona el siguiente valor de 160 bits, siendo sus expresiones hexadecimal y decimal, respectivamente:
m = 7b 30 e0 ac a8 c5 7b 09 0a cb a4 b0 54 38 b7 a1 0c d0 41 f3 = 7032958724 8581323731 3907950135 0552221954 30113779.
Las firmas parciales de cada uno de los 5 firmantes son las siguientes:
(f1, g1) = (2072061490 3529681837 0518359522 5737119748 8834793544 63211454, 3424899271 6561622167 2309350509 1899483096 2204248546 1401791),
(f2, g2) = (7519865574 6123920960 8321708870 7222592072 2194208225 5244963, 3052287160 9193339307 3261388288 7970269665 4298411495 82863325),
(f3, g3) = (3035127013 8473367395 5815130273 0222450081 2709055452 62584542, 3343996361 8263990970 5373048282 9321275620 4171100823 79165477),
(f4, g4) = (5045916079 6959772237 4311181991 8729548876 2656407924 8876843, 2222053057 4350855533 1345730712 8312259343 4626990198 61867838),
(f5, g5) = (2569158690 2819158389 3813867008 1064366690 7818627298 94259816, 3005227651 1941091704 8712925875 3266438452 3528620588 04923843).
T verifica la firma de cada uno de los firmantes comprobando que cada firma satisface la siguiente ecuación:
, i = 1, …, 5.
A partir de las firmas anteriores, T determina la firma múltiple simplemente sumando todas ellas entre sí, módulo r:
(f, g) = (3728790875 1858533998 9703774719 7297807179 7475043041 8859292, 3406007886 1460716190 6483759792 8170821493 4745514353 84903948).
Generación de la firma múltiple sin la colaboración de T En caso de que T no colabore y suponiendo que el mensaje que va a firmarse es el mismo que antes, el
cálculo de cada una de las firmas parciales acumuladas proporciona los siguientes resultados.
La firma de F1 es:
(f1, g1) = (2072061490 3529681837 0518359522 5737119748 8834793544 63211454, 3424899271
6561622167 2309350509 1899483096 2204248546 1401791).
La verificación de la firma de F1 llevada a cabo por F2 es correcta:
P · Qm (mod n) = 1170109731 2819367894 2005216580 6494377952 0636567548 9262094548 8344339052 7421432596 8875335205 2402155197 2230378307 2371932777 1738710426 2768241265 6183149313 3478950938 7479706527 9175557453 9751639118 0565551090 7789905395 4819196663 7323682277 9020280066 1028233179 3869192910 1434425082 3384981457 9716434249 5003307128 728028411.
La firma parcial acumulada de F2 es: (f2, g2) = (2824048047 8142073933 1350530409 645937895 6105421436 718456417, 3394777088 0849501524 0492323339 7160217975 0518836350 44265116). La verificación de la firma de F2 llevada a cabo por F3 es correcta: Q2m
P2 · (mod n) = 7450100059 1091930946 2501858785 0941187993 2537915629 2584859948
2097737510 5853453621 2291364319 8207733759 5107023683 8537744090 0352638596 6504088919 1070451647 0331532795 8444989461 6206800852 4483586001 3000717481 6710298328 4937496631 1635361223 1293962768 8337804042 4332811755 2543722126 3844271970 1015657563 2043360173 11602864.
La firma parcial acumulada de F3 es:
(f3, g3) = (1579151925 4643079557 7445526473 6737144088 4713253016 28381796, 2458750313 7141130723 6145237413 6536808646 5639920370 70771430).
La verificación de la firma de F3 llevada a cabo por F4 es correcta:
P3 · Q3m (mod n) = 1082550119 8844366296 9941799029 9216293849 1473245559 8632411906 1624560875 2927058733 8646774165 2669903997 4431524996 7382651963 1695679541 3626062206 6708356175 6861427098 3545735602 5434248163 0193576555 6718878697 5260754944 4570751541 8377058742 3008072805 0382838655 9480158601 5234920504 3658404027 6285123608 4428151260 693636413.
La firma parcial acumulada de F4 es:
(f4, g4) = (2083743533 4339056781 4876644672 8610098976 0978893808 77258639, 4007802349 5196244857 7708339174 9043830411 2168937657 9980105).
La verificación de la firma de F4 llevada a cabo por F5 es correcta:
P4 · Q4m (mod n) = 2709868377 7138928608 4769512938 6848964463 7670022794 1393921794 4877807748 7124069046 1975743029 9505734207 6216783854 6104882998 0222474430 8776847832 3556946739 5710850579 9846374769 1955854682 9555230522 0066146680 9121213039 1802059312 0565937216 9390100135 5015555941 6181673016 9769298446 6748808181 1849405818 8552528092 36031649.
La firma parcial acumulada de F5, que coincide con la firma múltiple de todo el grupo, es:
(f, g) = (f5, g5) = (3728790875 1858533998 9703774719 7297807179 7475043041 8859292, 3406007886 1460716190 6483759792 8170821493 4745514353 84903948).
Verificación de la firma múltiple
Para verificar la validez de la firma múltiple anterior si haya colaborado T o no, cualquier verificador que conozca el mensaje, m, el número de firmantes y la clave pública, (P, Q), no tiene más que comprobar la siguiente ecuación
, lo cual es inmediato, ya que ambos valores son 1170109731 2819367894 2005216580 6494377952 0636567548 9262094548 8344339052 7421432596
8875335205
2402155197 2230378307 2371932777 1738710426 2768241265 6183149313 3478950938
7479706527
9175557453 9751639118 0565551090 7789905395 4819196663 7323682277 9020280066
1028233179 3869192910 14
34425082 338 4981457 97164 34249 5003307128 72802841 1.
Seguridad
En caso de que dos firmantes cualesquiera, por ejemplo, F1 y F3, intenten conspirar para calcular el valor secreto, s, de T, unirían sus respectivas firmas, (f1, g1) y (f3, g3), de modo que se calcularía el siguiente valor
s´ = (f1 – f3) (g3 – g1)–1 (mod r) = 2495841599 2675813433 1673611873 1109209990 5818069416 83953188,
pero este valor no es el valor real de s:
s = 4753261714 1928251118 2743629876 4391793367 2307333076 1603563912 5002000524 9060497658 0824242118 6704298946 3445895108 4404897626 6689329111 3557924664 5307037629 8989659634 5807828772 4429722874 3556504143 8852477027 0325311761 9225951212 8994160952 8446681790 9094409361 4867349016 1812858607 1648136904 8090599371 8575649900 69295616.
Si cualquier otro par de firmantes intentan llevar a cabo el mismo ataque, obtendrán el mismo valor de s´. Por tanto no se obtendrá ningún beneficio si hubiese más firmantes en la conspiración.
Finalmente, la misma clase de conspiración para firmas de diferentes mensajes tampoco proporcionaría ninguna mejora, porque el valor obtenido al firmar diferentes mensajes es el mismo una vez más.
Funcionamiento e implementación
El esquema propuesto para realizar firmas digitales múltiples se ha implementado como un Notebook de
software Maple v.13 en un ordenador con un procesador Intel® Core™2 Quad CPU Q4900 a 2,66 GHz, con el
sistema operativo Windows 7 de Microsoft con 64 bits y con una RAM de 4 GB.
El tiempo de cálculo necesario para cada una de las tareas depende, básicamente, de la longitud de las claves y del número de firmantes que participan en la ejecución de la firma múltiple.
Algunos ejemplos de tiempo de cálculo (en segundos) para las diferentes tareas, con diferentes entradas, se muestran en la siguiente tabla:
Tamaño (en bits) de r y n, respectivamente
128, 1024 192, 1024 192, 1024 192, 1024 256, 2048
Número de firmantes
5 5 15 50 10
Tiempo para la generación de claves
6,879 5,397 5,413 5,413 132,211
Tiempo para la verificación de claves
0,015 0,031 0,062 0,187 0,187
Tiempo de cálculo de la firma múltiple con la colaboración de una tercera parte de confianza
0,000 0,015 0,031 0,110 0,094
Tiempo de cálculo de la firma múltiple sin la colaboración de una tercera parte de confianza
0,000 0,015 0,047 0,140 0,093
Tiempo para la verificación de la firma múltiple
0,000 0,000 0,000 0,000 0,016
Como puede verse, la mayor parte del tiempo de cálculo se gasta en la fase de generación de claves, lo
cual no es un inconveniente ya que una vez generadas las claves, pueden usarse durante un largo periodo de
tiempo para firmar diferentes mensajes.
Como comentario final, los tiempos de cálculo anteriores pueden considerarse bastante grandes, ya que se
15 ha usado el paquete computacional Maple v13. Como es de sobra conocido, Maple es un lenguaje interpretado, un hecho que afecta negativamente a los tiempos de ejecución. Para llevar a cabo una optimización de esta invención, es aconsejable desarrollar una implementación de hardware y/o software específica, usando las herramientas de última tecnología más adecuadas.
Un experto en la técnica puede introducir cambios y modificaciones en las realizaciones descritas sin 20 alejarse del alcance de la invención tal como se define en las reivindicaciones adjuntas.
SIGLAS Y ABREVIATURAS
DLP
Problema de logaritmo discreto
RSA
Criptosistema Rivest-Shamir-Adleman
SDLP
Problema de logaritmo discreto en subgrupo
BIBLIOGRAFÍA
[Abo07] S.J. Aboud, Two efficient digital multisignature schemes, Int. J. Soft. Comput. 2 (2007), 113-117.
[AA07] S.J. Aboud y M.A. Al-Fayoumi, A new multisignature scheme using re-encryption technique, J. Applied Sci. 7 (2007), 1813-1817.
[BN06] M. Bellare y G. Neven, Multi-signatures in the plain public-key model and a general forking lemma, Proceedings of the 13th ACM conference on Computer and Communications Security (CCS’06), 390-399,
2006, Alexandria, Virginia, EE.UU.
[DHM05] R. Durán Díaz, L. Hernández Encinas y J. Muñoz Masqué, El criptosistema RSA, RA-MA, Madrid, 2005.
[Boy88] C. Boyd, Some applications of multiple key ciphers`, Lecture Notes in Comput. Sci. 330 (1988), 445-467.
[ElG85] T. ElGamal, A public-key cryptosystem and a signature scheme based on discrete logarithm, IEEE Trans.
Inform. Theory 31 (1985), 469-472.
[FSNT09] H. Fujimoto, T. Suzuki, T. Nakayama, A. Takeshita, (NTT DoCoMo, Inc., Tokyo, JP), Multi signature verification system, electronic signature attaching apparatus, data addition apparatus, and electronic signature verification apparatus, patente estadounidense: US 7.627.763 B2, 1 de diciembre de 2009.
[FGHMM04] A. Fúster Sabater, D. de la Guía Martínez, L. Hernández Encinas, F. Montoya Vitini y J. Muñoz Masqué, Técnicas criptográficas de protección de datos, RA-MA, 3ª ed., Madrid, 2004.
[Gen10] C.B. Gentry (NTT DoCoMo, Inc., Tokyo, JP), Signature schemes using bilinear mappings, patente estadounidense: US 7.653.817 B2, 26 de enero de 2010.
[GR10] C.B. Gentry y Z.A. Ramzan (NTT DoCoMo, Inc., Tokyo, JP), Digital signatures including identity-based
aggregate signatures, patente estadounidense: US 7.664.957 B2, 16 de febrero de 2010.
[HK89] L. Harn y T. Kiesler, New scheme for digital multisignature, Elect. Lett. 25 (1989), 1002-1003.
[He02] W.H. He, Weakness in some multisignature schemes for specified group of verifiers, Inform. Proc. Lett. 83
(2002), 95-99.
[HCC98] S.J. Hwang, C.Y. Chen y C.C. Chang, An encryption/multisignature scheme with specified receiving groups, Comput. System Sci. Engrg. 13, 2 (1998), 109-112.
[IN83] K. Itakura y K. Nakamura, A public-key cryptosystem suitable for digital multisignatures, NEC Res. Development 71 (1983), 1-8.
[KH90] T. Kiesler y L. Harn, RSA blocking and multisignature schemes with no bit expansion, Elect. Lett. 26 (1990), 1490-1491.
[KOKS09] Y. Komano, K. Ohta, S. Kawamura, y A. Shimbo (Toshiba Corp., Tokyo, JP), Multisignature method, apparatus, program, and system, patente estadounidense: US 7.496.759 B2, 24 de febrero de 2009.
[LY96] C.S. Laih y S.M. Yen, Multisignature for specified group of verifiers, J. Inform. Sci. Engrg. 12, 1 (1996), 143–
152.
[MFM04] D.A. Modiano, L. Friseh, y D. Mouton (France Telecom, París, FR), Electronic group signature method with revocable anonymity, equipment and programs for implementing the method, solicitud de patente estadounidense: US 2004/0260926 A1, 23 de diciembre de 2004.
[LWK05] J. Lv, X. Wang y K. Kim, Security of a multisignature scheme for specified group of verifiers, Appl. Math. Comput. 166 (2005), 58-63.
[HMV04] D. Hankerson, A.J. Menezes y S. Vanstone, Guide to elliptic curve cryptography, Springer-Verlag, Nueva York, 2004.
[Men93] A.J. Menezes. Elliptic curve public key cryptosystems. Kluwer Academic Publishers, Boston, 1993.
[MOV97] A. Menezes, P. van Oorschot y S. Vanstone, Handbook of applied cryptography, CRC Press, Boca Raton, FL, EE.UU., 1997.
[NIST02] National Institute of Standards and Technology, Secure Hash Standard (SHS), Federal Information Processing Standard Publication 180-2, 2002.
[OO91] K. Ohta y T. Okamoto, Multi-signature schemes based on the Fiat-Shamir scheme, Lecture Notes in Comput. Sci. 739 (1991), 139-148.
[OO01] K. Ohta y T. Okamoto (Nippon Telegraph and Telephone Corporation, Tokyo, JP), Method and apparatus for
en-bloc verification of plural digital signatures and recording medium with the method recorded thereon,
patente estadounidense: US 6.212.637 B1, 3 de abril de 2001.
[Oka88] T. Okamoto, A digital multisignature scheme using bijective public-key cryptosystems, Commun. ACM Trans. Computer Systems 6 (1988), 432-441.
[PPKW97] S. Park, S. Park, K. Kim y D. Won, Two efficient RSA multisignature schemes, Lecture Notes in Comput. Sci. 1334 (1997), 217-222.
[PLL85] S.F. Pon, E.H. Lu y J.Y. Lee, Dynamic reblocking RSA-based multisignatures scheme for computer and communication networks, IEEE Communications Letters 6 (2002), 43-44.
[QX10] H. Qian y S. Xu, Non-interactive multisignatures in the plain public-key model with efficient verification, Inform. Proces. Letters 111 (2010), 82-89.
[RSA78] R.L. Rivest, A. Shamir y L. Adleman, A method for obtaining digital signatures and public-key cryptosystems, Comm. ACM 21 (1978), 120-126.
[Shi01] A. Shimbo (Kabushiki Kaisha Toshiba, Kawasaki, JP), Digital signature method using an elliptic curve, a
digital signature system, and a program storage medium having the digital signature method stored
therein, patente estadounidense: US 6.088.798 A, 27 de marzo de 2001.
[SFH01] F.W. Sudia y P.C. Freund, S.T.F. Huang (CertCo Inc., Nueva York, US), Multi-step digital signature method and system, patente estadounidense: US 6.209.091 B1, 27 de marzo de 2001.
[Sus09] W. Susilo, Short fail-stop signature scheme based on factorization and discrete logarithm assumptions, Theor. Comput. Sci. 410 (2009), 736-744.
[TK02] K. Takaragi, H. Kurumatani (Hitachi, Ltd., Tokyo, JP), Digital signature generating/verifying method and system using public key encryption, patente estadounidense: US 6.341,349 B1, 22 de enero de 2002.
[WP95] M. Waidner and B. Pfitzmann, The dining cryptographers in the disco: Unconditional sender and recipient untraceability with computationally secure serviceability, Lecture Notes in Comput. Sci. 434 (1989), 690.
[WCW96] T.C. Wu, S.L. Chou, y T.S. Wu, Two ID-based multisignature protocols for sequential and broadcasting architectures, Comput. Comm. 19 (1996), 851-856.
[Yen96] S.M. Yen, Cryptanalysis and repair of the multi-verifier signature with verifier specification, Computers & Security 15, 6 (1996), 537-544.
[YY05] E.J. Yoon y K.Y. Yoo, Cryptanalysis of Zhang-Xiao’s multisignature scheme for specified group of verifiers, Appl. Math. Comput. 170 (2005), 226-229.
[ZW10] Y. Zhang, S. Wang, and X. Wang, Method for protecting security of digital signature documents of multiple verifiers strongly designated by multiple signers, patente china: CN 101651541, 17 de febrero de 2010.
[ZX04] Z. Zhang y G. Xiao, New multisignature scheme for specified group of verifiers, Appl. Math. Comput. 157 (2004), 425-431.

Claims (16)

  1. REIVINDICACIONES
    1. Procedimiento para una firma digital múltiple, que comprende:
    i) generar, por una tercera parte de confianza (T), una clave privada para cada firmante o miembro (F1, F2, …, Ft) de un grupo de firmantes (G);
    ii) generar, cada uno de dichos firmantes (F1, F2, …, Ft), una firma parcial de un documento (M) usando sus claves privadas;
    iii) generar una firma múltiple a partir de dichas firmas parciales; y
    iv) verificar dicha firma múltiple;
    estando el procedimiento caracterizado porque comprende generar, por dicha tercera parte de confianza (T), una clave pública común para todos dichos firmantes (F1, F2, …, Ft) y usar dicha clave pública común para realizar dicha verificación de la firma múltiple de iv).
  2. 2. Procedimiento según la reivindicación 1, en el que:
    -
    dicha etapa ii) comprende generar, cada uno de dichos firmantes (F1, F2, …, Ft), su respectiva firma parcial sobre un resumen (m) de dicho documento (M) y enviarlas a la tercera parte de confianza (T); y
    -
    dicha etapa iii) comprende generar, la tercera parte de confianza (T), dicha firma múltiple usando las firmas parciales recibidas.
  3. 3.
    Procedimiento según la reivindicación 2, que comprende verificar, la tercera parte de confianza (T), la validez de todas las firmas parciales recibidas y, si son válidas, realizar dicha etapa iii) sumando todas las firmas parciales.
  4. 4.
    Procedimiento según la reivindicación 1, en el que:
    -
    dicha etapa ii) comprende:
    -
    realizar, un primer firmante (F1) de dichos firmantes (F1, F2, …, Ft), una firma parcial sobre un resumen (m) de dicho documento (M);
    -
    realizar, un segundo firmante (F2) de dichos firmantes (F1, F2, …, Ft), una firma parcial sobre la firma parcial del primer firmante (F1), y
    -
    realizar de manera sucesiva, el resto de firmantes (F3, …, Ft), sus respectivas firmas parciales sobre una firma parcial realizada por un firmante previo (F2, …, Ft-1) de dichos firmantes (F1, F2, …, Ft); y
    -
    dicha firma múltiple es la firma parcial realizada por el último (Ft) de dichos firmantes (F1, F2, …, Ft).
  5. 5.
    Procedimiento según la reivindicación 4, que comprende, difundir, cada uno de dichos firmantes (F1, F2, …, Ft), su respectiva firma parcial entre el grupo de firmantes (G).
  6. 6.
    Procedimiento según la reivindicación 5, que comprende establecer de manera arbitraria un orden en el grupo de firmantes (G) para dichos primer (F1), segundo (F2) y sucesivos firmantes (F3, …, Ft).
  7. 7.
    Procedimiento según la reivindicación 4, 5 ó 6, que comprende verificar, cada uno de dichos firmantes (F1, F2, …, Ft), la firma parcial del firmante previo antes de firmar sobre la misma.
  8. 8.
    Procedimiento según cualquiera de las reivindicaciones 4 a 7, en el que cada una de dichas firmas parciales realizada por dichos segundo y sucesivos firmantes (F2, …, Ft) es una firma parcial acumulada realizada firmando parcialmente dicho resumen (m) del documento (M) y sumando el resultado a la firma parcial del firmante previo (F1, F2, …, Ft–1).
  9. 9.
    Procedimiento según cualquiera de las reivindicaciones 2 a 8, en el que cada uno de los firmantes (F1, F2, …, Ft) que realiza su respectiva firma parcial sobre dicho resumen (m) del documento (M), en dicha etapa ii), lleva esto a cabo como sigue:
    fi = ai + ci · m (mod r), gi = bi + di · m (mod r), donde i = 1, …, t;
    ai = (h – s · bi) (mod r); ci = (k – s · di) (mod r); bi, di son pares de números aleatorios generados por dicha tercera parte de confianza (T); m es el resumen o hash del documento (M) que va a firmarse; r es un número primo; s es un número secreto aleatorio generado por dicha tercera parte de confianza (T); h = (a0 + s · b0) (mod r); k = (c0 + s · d0) (mod r); y a0, b0, c0 y d0 son números enteros generados aleatoriamente por la tercera parte de confianza (T).
  10. 10. Procedimiento según la reivindicación 9, cuando depende de cualquiera de las reivindicaciones 4 a 8, en el que cada uno del segundo firmante (F2) y posteriores (F3, …, Ft) realiza su respectiva firma parcial acumulada como sigue:
    fi = fi–1 + ai + ci · m (mod r)= a1 + … + ai + (c1 + … + ci) m (mod r),
    gi = gi–1 + bi + di · m (mod r)= b1 + … + bi + (d1 +…+ di) m (mod r),
    donde fi–1, gi–1 representa la firma parcial ya calculada por el firmante previo.
  11. 11.
    Procedimiento según la reivindicación 9 ó 10, en el que ai, ci, bi, di E Zr, donde Zr es el conjunto de enteros módulo r, s > r, y pertenece a un subgrupo Sr de Zn; donde Zn es el conjunto de enteros módulo n y a0, b0, c0, d0 E Zr son las claves privadas de la tercera parte de confianza (T).
  12. 12.
    Procedimiento según la reivindicación 11, cuando depende de la reivindicación 3, en el que dicha verificación de la validez de todas las firmas parciales recibidas realizadas por la tercera parte de confianza (T), se lleva a cabo comprobando si:
    donde P y Q forman dicha clave pública común, a E Z*n y es un número entero elegido por la tercera parte de confianza (T) con orden multiplicativo r, módulo n y �=as (mod n).
  13. 13.
    Procedimiento según la reivindicación 11, cuando depende de la reivindicación 7, en el que dicha verificación de la firma parcial del firmante previo la realiza cada uno de dichos firmantes (F1, F2, …, Ft) comprobando si:
    donde fi–1, gi–1 representan la firma parcial acumulada ya calculada por el firmante previo, P y Q forman dicha clave pública común, a E Z*n y es un número entero elegido por la tercera parte de confianza (T) con orden multiplicativo r, módulo n y � = as (mod n).
  14. 14. Procedimiento según la reivindicación 12 ó 13, en el que: P = aai · �bi (mod n); Q = aci · fdi (mod n);
    = as (mod n); n = p · q; g es un elemento elegido aleatoriamente que cumple que g E Z*n cuyo orden es A(n) p1, q1 son números primos;
    u1 y u2 son número enteros, donde u1 = 2 · v1 y u2 = 2 · v2;
    v1, v2 son primos entre sí; p = u1 · r · p1 +1;
    q = u2 · r · q1 +1; 5 <(n) = (p–1)(q–1) = u1 · u2 · r2 · p1 · q1; donde <(n) es la función de Euler;
    A(n) = mcm(p–1, q–1) = 2 · v1 · v2 · r · p1 · q1; donde mcm representa el mínimo común múltiplo, y A(n) es la función de Carmichael; y a cumple la condición: mcd(a, <(n)) = mcd(a, u1 · u2 · r2 · p1 · q1) = 1 donde mcd es el máximo común divisor.
    10 15. Procedimiento según la reivindicación 12 ó 14, cuando depende de la reivindicación 12, que comprende realizar, la tercera parte de confianza (T), dicha suma de las firmas parciales en la etapa iii) mediante:
    f = Li=1, …, t fi (mod r),
    g = Li=1, …, t gi (mod r).
    comprendiendo el procedimiento además publicar f, g como la firma múltiple del grupo de firmantes (G)15 para el resumen (m) del documento (M).
  15. 16. Procedimiento según la reivindicación 13 ó la reivindicación 14, cuando dependen de la reivindicación 13, que comprende publicar, el último firmante (Ft), ft, gt como la firma múltiple f, g del grupo de firmantes (G) para el resumen (m) del documento (M).
  16. 17. Procedimiento según la reivindicación 15 ó 16, que comprende llevar a cabo dicha etapa iv) de verificar 20 dicha firma múltiple f, g usando la siguiente expresión:
    .
ES201130777A 2011-05-13 2011-05-13 Procedimiento para una firma digital múltiple Withdrawn - After Issue ES2400894B1 (es)

Priority Applications (7)

Application Number Priority Date Filing Date Title
ES201130777A ES2400894B1 (es) 2011-05-13 2011-05-13 Procedimiento para una firma digital múltiple
PCT/EP2012/058583 WO2012156255A1 (en) 2011-05-13 2012-05-09 Procedure for a multiple digital signature
US14/116,828 US9191214B2 (en) 2011-05-13 2012-05-09 Procedure for a multiple digital signature
BR112013029138A BR112013029138A2 (pt) 2011-05-13 2012-05-09 procedimento para assinatura digital múltipla
ES12722319.6T ES2548838T3 (es) 2011-05-13 2012-05-09 Procedimiento para una firma digital múltiple
EP12722319.6A EP2707990B1 (en) 2011-05-13 2012-05-09 Procedure for a multiple digital signature
ARP120101650A AR086339A1 (es) 2011-05-13 2012-05-10 Procedimiento para una firma digital multiple

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
ES201130777A ES2400894B1 (es) 2011-05-13 2011-05-13 Procedimiento para una firma digital múltiple

Publications (3)

Publication Number Publication Date
ES2400894A2 true ES2400894A2 (es) 2013-04-15
ES2400894R1 ES2400894R1 (es) 2013-05-08
ES2400894B1 ES2400894B1 (es) 2014-03-11

Family

ID=46146833

Family Applications (2)

Application Number Title Priority Date Filing Date
ES201130777A Withdrawn - After Issue ES2400894B1 (es) 2011-05-13 2011-05-13 Procedimiento para una firma digital múltiple
ES12722319.6T Active ES2548838T3 (es) 2011-05-13 2012-05-09 Procedimiento para una firma digital múltiple

Family Applications After (1)

Application Number Title Priority Date Filing Date
ES12722319.6T Active ES2548838T3 (es) 2011-05-13 2012-05-09 Procedimiento para una firma digital múltiple

Country Status (6)

Country Link
US (1) US9191214B2 (es)
EP (1) EP2707990B1 (es)
AR (1) AR086339A1 (es)
BR (1) BR112013029138A2 (es)
ES (2) ES2400894B1 (es)
WO (1) WO2012156255A1 (es)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10657523B2 (en) * 2013-08-16 2020-05-19 Arm Ip Limited Reconciling electronic transactions
US9722798B2 (en) * 2014-02-10 2017-08-01 Security Innovation Inc. Digital signature method
DE102015201161A1 (de) * 2015-01-23 2016-03-24 Siemens Aktiengesellschaft Verfahren zur Überprüfung der Integrität von Komponenten einer Datenverarbeitungsanlage, Datenverarbeitungsanlage sowie Komponente einer Datenverarbeitungsanlage
US10015016B2 (en) 2015-01-28 2018-07-03 Bank Of America Corporation Method and apparatus for maintaining a centralized repository that stores entitlement capability for authorized signatories
US11392955B2 (en) * 2015-05-20 2022-07-19 Ripple Luxembourg S.A. Temporary consensus networks in a resource transfer system
US10504080B2 (en) * 2015-09-14 2019-12-10 OX Labs Inc. Cryptographically managingtelecommunications settlement
CN106330462A (zh) * 2016-09-05 2017-01-11 广东省电子商务认证有限公司 一种支持多算法的pdf签名方法及系统
GB201707168D0 (en) * 2017-05-05 2017-06-21 Nchain Holdings Ltd Computer-implemented system and method
CN107370599B (zh) * 2017-08-07 2020-07-10 收付宝科技有限公司 一种远程销毁私钥的管理方法、装置和系统
US20200313856A1 (en) * 2019-03-29 2020-10-01 0Chain, LLC Systems and methods of blockchain platform for intermediaries and passwordless login
CN107872322B (zh) * 2017-11-02 2020-08-04 武汉理工大学 基于同态加密的数字签名协同生成方法及系统
CN110826091B (zh) * 2018-08-14 2022-05-06 珠海金山办公软件有限公司 一种文件签名方法、装置、电子设备及可读存储介质
CN109743166B (zh) * 2018-12-10 2023-06-23 普华诚信信息技术有限公司 多方签名生成方法及安全信息验证系统
US11374771B2 (en) 2019-03-08 2022-06-28 Ares Technologies, Inc. Methods and systems for implementing mixed protocol certificates
TWI695614B (zh) * 2019-03-13 2020-06-01 開曼群島商庫幣科技有限公司 多重密鑰授權的數位貨幣交易方法
US11601284B2 (en) * 2019-06-14 2023-03-07 Planetway Corporation Digital signature system based on a cloud of dedicated local devices
EP4091290A4 (en) * 2020-01-15 2023-10-11 Planetway Corporation DIGITAL SIGNATURE SYSTEM USING SCALABLE SERVERS
CN111314087B (zh) * 2020-02-11 2023-04-07 南京信息工程大学 基于代理重签名的电子文件前端控制方法
WO2021195219A1 (en) * 2020-03-24 2021-09-30 Ares Technologies, Inc Methods and systems for implementing mixed protocol certificates
CN111754233B (zh) * 2020-06-29 2023-11-07 兴唐通信科技有限公司 基于多方签名的电子支付方法和系统
CN114024680A (zh) * 2020-12-14 2022-02-08 北京八分量信息科技有限公司 一种多签共识架构中的多重签名方法
CN113225190B (zh) * 2021-02-08 2024-05-03 数字兵符(福州)科技有限公司 一种使用新难题的量子安全的数字签名方法
CN113158258B (zh) * 2021-03-31 2022-02-11 郑州信大捷安信息技术股份有限公司 一种基于椭圆曲线的协同签名方法、装置和系统
CN115442052B (zh) * 2022-08-30 2023-06-23 云海链控股股份有限公司 一种协同签名方法、系统、设备及计算机可读存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2904819B2 (ja) * 1989-08-25 1999-06-14 日本電信電話株式会社 ディジタル署名方式
US5825880A (en) 1994-01-13 1998-10-20 Sudia; Frank W. Multi-step digital signature method and system
US5610982A (en) * 1996-05-15 1997-03-11 Micali; Silvio Compact certification with threshold signatures
US5638447A (en) * 1996-05-15 1997-06-10 Micali; Silvio Compact digital signatures
US6088798A (en) 1996-09-27 2000-07-11 Kabushiki Kaisha Toshiba Digital signature method using an elliptic curve, a digital signature system, and a program storage medium having the digital signature method stored therein
JPH10133576A (ja) 1996-10-31 1998-05-22 Hitachi Ltd 公開鍵暗号方法および装置
US6212637B1 (en) 1997-07-04 2001-04-03 Nippon Telegraph And Telephone Corporation Method and apparatus for en-bloc verification of plural digital signatures and recording medium with the method recorded thereon
US7146500B2 (en) * 2001-11-14 2006-12-05 Compass Technology Management, Inc. System for obtaining signatures on a single authoritative copy of an electronic record
US7093133B2 (en) * 2001-12-20 2006-08-15 Hewlett-Packard Development Company, L.P. Group signature generation system using multiple primes
AU2003226413A1 (en) 2002-04-15 2003-11-03 Docomo Communications Laboratories Usa, Inc. Signature schemes using bilinear mappings
US7318155B2 (en) * 2002-12-06 2008-01-08 International Business Machines Corporation Method and system for configuring highly available online certificate status protocol responders
FR2855343B1 (fr) 2003-05-20 2005-10-07 France Telecom Procede de signature electronique de groupe avec anonymat revocable, equipements et programmes pour la mise en oeuvre du procede
JP4390570B2 (ja) 2004-01-21 2009-12-24 株式会社エヌ・ティ・ティ・ドコモ 多段署名検証システム、電子署名付与装置、データ追加装置及び電子署名検証装置
JP4034743B2 (ja) 2004-01-23 2008-01-16 株式会社東芝 多重署名方法、装置、プログラム及びシステム
US7664957B2 (en) 2004-05-20 2010-02-16 Ntt Docomo, Inc. Digital signatures including identity-based aggregate signatures
CN101651541A (zh) 2008-08-14 2010-02-17 中华电信股份有限公司 网络用户身份验证系统与方法
US20130326602A1 (en) * 2011-02-22 2013-12-05 Hewlett-Packard Development Company, L.P. Digital Signatures

Also Published As

Publication number Publication date
AR086339A1 (es) 2013-12-04
US20140164765A1 (en) 2014-06-12
EP2707990B1 (en) 2015-07-01
BR112013029138A2 (pt) 2019-09-24
ES2400894B1 (es) 2014-03-11
US9191214B2 (en) 2015-11-17
EP2707990A1 (en) 2014-03-19
ES2400894R1 (es) 2013-05-08
ES2548838T3 (es) 2015-10-21
WO2012156255A1 (en) 2012-11-22

Similar Documents

Publication Publication Date Title
ES2400894B1 (es) Procedimiento para una firma digital múltiple
US8429408B2 (en) Masking the output of random number generators in key generation protocols
Chang et al. A threshold signature scheme for group communications without a shared distribution center
US9800418B2 (en) Signature protocol
CN108989050A (zh) 一种无证书数字签名方法
ES2400895B1 (es) Método para realizar una firma digital de grupo
Khan et al. Analysis of asymmetric cryptography in information security based on computational study to ensure confidentiality during information exchange
KR100989185B1 (ko) Rsa기반 패스워드 인증을 통한 세션키 분배방법
Pateriya et al. Elliptic curve cryptography in constrained environments: a review
Zhang et al. Efficient and provably secure distributed signing protocol for mobile devices in wireless networks
Meshram Modified ID-based public key cryptosystem using double discrete logarithm problem
Elkamchouchi et al. An efficient proxy signcryption scheme based on the discrete logarithm problem
EP2395698A1 (en) Implicit certificate generation in the case of weak pseudo-random number generators
Nayak A secure ID-based signcryption scheme based on elliptic curve cryptography
Nithya et al. Survey on asymmetric key cryptography algorithms
Andreevich et al. On Using Mersenne Primes in Designing Cryptoschemes
Sayid et al. Certificateless public key cryptography: A research survey
Chen et al. Blockchain as a CA: A provably secure signcryption scheme leveraging blockchains
Thadvai et al. A novel authenticated encryption scheme with convertibility
Sun et al. An improved proxy signature scheme based on elliptic curve cryptography
Rasslan et al. On the security of two improved authenticated encryption schemes
Ricci et al. Privacy-enhancing group signcryption scheme
Chandra Design of blind signature protocol based upon dlp
Kumar A secure and efficient authentication protocol based on elliptic curve diffie-hellman algorithm and zero knowledge property
Minh et al. Authenticated key exchange, signcryption and deniable signcryption protocols based on two hard problems

Legal Events

Date Code Title Description
FG2A Definitive protection

Ref document number: 2400894

Country of ref document: ES

Kind code of ref document: B1

Effective date: 20140311

FA2A Application withdrawn

Effective date: 20140711