Firma múltiple (colectiva) ( English Aggregate signature ) - un esquema (protocolo) para la implementación de una firma electrónica (EDS), que permite que varios usuarios firmen un solo documento.
Una firma colectiva brinda la posibilidad de firma simultánea de un documento electrónico, ya que se forma como resultado de una única transformación indivisible y no puede dividirse en firmas individuales; además, no es prorrogable, es decir, se puede incrustar en él una firma adicional de una o más personas [1] .
El término "firma colectiva" está en consonancia con el término " firma de grupo ", pero estos conceptos son diferentes. El protocolo de firma digital grupal resuelve el problema de permitir que cualquier usuario de un determinado grupo forme una firma en nombre de todo el grupo. El protocolo EDS del grupo también regula la presencia de personas concretas que pueden determinar la lista de personas que han formado una firma (así, estos últimos tienen una hipotética oportunidad de firmar por alguno de los miembros del grupo). En el caso de trabajos colectivos con documentos electrónicos, es necesario poder firmarlos por muchos usuarios [2] . La variante del esquema con la generación de un conjunto de EDS individuales de usuarios que firman un documento electrónico tiene varias desventajas pronunciadas: un aumento lineal en el tamaño del EDS colectivo (CEDS) con un aumento en el número de firmantes, así como la necesidad de verificaciones adicionales de la integridad y completitud de la firma digital colectiva para eliminar la posibilidad de sustituir el número y la composición del nombre de los participantes que firmaron el documento [1] .
A partir de las claves públicas de los participantes se genera una clave pública colectiva, que permite desarrollar y verificar la autenticidad de una firma digital electrónica colectiva. La clave pública compartida está sujeta a una serie de restricciones de tamaño, integridad, independencia de los usuarios, generación simultánea de la clave pública compartida y continuidad. En otras palabras, es imposible calcular un CECP válido a partir del CECP para cualquier otro conjunto de participantes del conjunto actual, el CECP no está vinculado a la composición de los participantes: cualquier usuario puede formar un grupo y desarrollar su propio CECP. La clave pública colectiva, en función de las claves públicas de los usuarios, es la base sobre la que se construye todo el protocolo de firma colectiva [3] .
QECP se desarrolla de acuerdo con los requisitos anteriores utilizando algoritmos cuya estabilidad está garantizada por los siguientes problemas computacionalmente difíciles: logaritmo discreto en un grupo multiplicativo de gran orden primo , extracción de raíces de un gran grado primo módulo un gran primo, logaritmo discreto en el grupo de puntos de una curva elíptica de forma especial [3] .
Según el estándar GOST R 34.10−94 [4] , se imponen restricciones sobre el número primo p utilizado. La capacidad de un número primo p en representación binaria: bit o bit. El número debe contener un divisor primo grande tal que para o para . Para generar y verificar un EDS , se utiliza un número tal que , donde es el generador de un subgrupo de un orden primo suficientemente grande .
Algoritmo de cálculo EDS 1. Se genera un número aleatorio . 2. Se calcula el valor , que es la primera parte de la firma. 3. Según GOST R 34.11–94, se calcula una función hash a partir del mensaje que se firma. 4. La segunda parte de la firma se calcula: , donde es la clave secreta. Si , se repite el procedimiento de generación de firma. Algoritmo de autenticación EDS 1. Se verifica el cumplimiento de las condiciones . Si no se cumplen las condiciones, la firma no es válida. 2. El valor se calcula , donde se encuentra la clave pública del usuario que generó la firma a verificar. 3. Los valores y se comparan . Si , entonces la firma es válida Implementación del protocolo CECPCada usuario genera una clave pública de la forma , donde es una clave privada (secreta), = , , … , .
La clave pública colectiva es el producto
Cada usuario elige una clave secreta aleatoria , un número que se utiliza una sola vez.
calculado
está disponible para todos los miembros del equipo que desarrollan CECPLuego, cada uno de los miembros del equipo que desarrolla KECP, de acuerdo con el valor y resultado determinado por él, calcula
- parte de la firma.La firma colectiva será un par de valores , donde es la suma de todos los módulos [3] .
Verificación de una firma digital electrónica colectivaLa verificación de la firma colectiva se realiza de acuerdo con la fórmula.
Si , entonces el CEC del conjunto de usuarios es genuino, ya que sólo podría formarse con la participación de cada usuario de este grupo, ya que su formación requiere el uso de la clave secreta de cada uno de ellos. Tenga en cuenta que los valores se autentican automáticamente cuando se autentica la firma digital colectiva. Si un intruso intenta reemplazar alguno de estos valores o reemplazarlos con valores utilizados anteriormente, entonces el hecho de la interferencia con el protocolo se detectará de inmediato al autenticar la firma digital , es decir, . Obviamente, el tamaño del QECP no depende de [3] .
Prueba de la corrección del algoritmo CECP propuestoSustituya la firma obtenida en la ecuación : un par (R,S), donde R es el producto de R i modulo q, S es la suma de S i modulo q : ecuación , regulada por el estándar EDS GOST R 34.10-94.
Posibilidad de falsificar CECPObviamente, para los infractores, la complejidad de falsificar el CECP está determinada por la complejidad de falsificar la firma individual de un miembro individual del grupo. Se presentan oportunidades para los usuarios que unen sus esfuerzos para formar un CECP relacionado con un colectivo, que además de ellos incluye a uno o más usuarios que no son notificados al respecto (la prueba para ambos casos es similar). Deje que los usuarios de m-1 deseen formar un QEDP verificable mediante una clave pública compartida , donde , es decir, los usuarios combinan sus esfuerzos para formar un par de números tales que . Es decir, pueden falsificar una firma de clave pública , es decir, calcular los valores de y que satisfacen la ecuación . Esto implica la posibilidad de falsificar una firma digital en el esquema EDS básico, ya que tiene un valor aleatorio [3] .
Un ataque al cálculo de la clave secreta de otro copropietario de la CECPSea - la firma digital generada por el -ésimo usuario al documento correspondiente a la función hash (el ataque lo realizan los usuarios). Entonces lo siguiente es cierto: los atacantes generan valores aleatorios y calculan . para _ Luego se calculan los parámetros y que satisfacen las ecuaciones , donde . Al introducir la designación . Tenemos , donde y . Esto significa que los atacantes han obtenido el valor correcto de la firma colectiva en la que participan ellos y otro usuario que tiene la clave pública . Según la suposición, a partir de la firma colectiva recibida, los atacantes pueden calcular la clave secreta . Es fácil de obtener de la expresión para y la fórmula : . Los atacantes calcularon la clave secreta del usuario usando su EDS individual, generado en el marco del algoritmo EDS básico. Esto prueba la sugerencia de que el protocolo CECP propuesto no reduce la fuerza del algoritmo EDS subyacente. [3]
De acuerdo con el estándar GOST R 34.10−2001 [5] , se imponen restricciones sobre el número primo utilizado , el número primo y el punto . Un número primo es el módulo de una curva elíptica (EC), que viene dado en el sistema de coordenadas cartesianas por una ecuación con coeficientes y : ∈ ( es el campo de orden de Galois ). Un número primo es el orden de un subgrupo cíclico de puntos en una curva elíptica. Punto : un punto en una curva elíptica con coordenadas , que es diferente del origen, pero para el cual el punto coincide con el origen. La clave secreta es un número entero bastante grande . La clave pública es point .
Formación de la firma 1. Se genera un entero aleatorio . 2. Calcular las coordenadas del punto EC y determinar el valor , donde es la coordenada del punto . 3. Se calcula el valor , donde . La firma es un par de números . [5] Verificación de firmaLa verificación de firma consiste en calcular las coordenadas del punto EC:
y también en la determinación del valor y la verificación de la igualdad . [5]
Implementación del protocolo CECPCada miembro del grupo genera una clave pública de la forma
, donde es una clave privada (secreta), .La clave pública colectiva es la suma
Cada miembro del grupo genera un número , una clave secreta aleatoria única. Usando esta clave aleatoria única, se calculan las coordenadas del punto . El resultado del cálculo se envía a todos los miembros del grupo para uso colectivo. La suma se calcula
El valor se calcula a partir de la cantidad recibida . Cada miembro del grupo calcula su parte de la firma:
[3] Comprobación de CECPCalcular
El resultado se calcula
Si , entonces el QEC del conjunto de m usuarios es genuino, ya que sólo podría formarse con la participación de cada usuario de este grupo, ya que la formación del QEC requiere la clave secreta de cada uno de los participantes [3] .
El esquema de doble firma digital amplía el esquema RSA convencional . En el esquema de doble firma digital no se genera un par de claves (clave pública/privada), sino un triple (dos privadas y una pública). Por analogía con el esquema RSA habitual, los participantes eligen una unidad de cálculo : el producto de dos números largos simples. Se seleccionan 2 claves privadas aleatorias y en el rango de 1 a , que serán coprimos con , donde está la función de Euler . La clave pública se genera según la fórmula . El valor será la clave pública. Para firmar el valor , el primer participante calcula . El resultado del cálculo se pasa a la entrada del segundo miembro del grupo. El segundo participante tiene la oportunidad de ver lo que firmará. Para ello, obtiene el valor de value . Después de que el segundo participante esté listo para firmar el valor , deberá calcular . La verificación de la firma se realiza mediante . [6]
Se generan claves privadas aleatorias . La clave pública se calculará mediante la fórmula . Cada -ésimo participante firma el mensaje M según la fórmula . Luego se calcula el valor . La verificación de la firma se realiza según la fórmula . [6]