34.10-2018 _ _ _ _ _ - el estándar criptográfico interestatal actual , que describe los algoritmos para generar y verificar una firma digital electrónica implementada usando operaciones en un grupo de puntos de una curva elíptica definida sobre un campo simple finito.
El estándar se desarrolló sobre la base del estándar nacional de la Federación Rusa GOST R 34.10-2012 y entró en vigor el 1 de junio de 2019 por orden de Rosstandart No. 1059-st con fecha 4 de diciembre de 2018 .
La firma digital permite:
Las primeras versiones del algoritmo fueron desarrolladas por la Dirección Principal de Seguridad de las Comunicaciones de la FAPSI con la participación del Instituto de Investigación de Normalización de toda Rusia (VNIIstandart) , posteriormente el desarrollo pasó a manos del Centro de Protección de la Información y Comunicaciones Especiales de la Servicio Federal de Seguridad de Rusia y JSC InfoTeKS .
La fuerza criptográfica de los primeros estándares de firma digital GOST R 34.10-94 y GOST 34.310-95 se basó en el problema del logaritmo discreto en el grupo multiplicativo de un campo finito simple de orden grande. A partir de GOST R 34.10-2001, la robustez del algoritmo se basa en el problema más complejo de calcular el logaritmo discreto en un grupo de puntos en una curva elíptica . Además, la fuerza del algoritmo de generación de firmas digitales se basa en la fuerza de la función hash correspondiente:
Tipo de | Nombre | poner en marcha | función hash | Ordenar |
---|---|---|---|---|
Nacional | GOST R 34.10-94 | 1 de enero de 1995 | GOST R 34.11-94 | Adoptado por el Decreto de la Norma Estatal de Rusia No. 154 del 23 de mayo de 94 |
Interestatal | GOST 34.310-95 | 16 de abril de 1998 | GOST 34.311-95 | |
Nacional | GOST R 34.10-2001 | 1 de julio de 2002 | GOST R 34.11-94 | Adoptado por la resolución de la Norma Estatal de Rusia No. 380-st del 12 de septiembre de 2001 [1] |
Interestatal | GOST 34.310-2004 | 2 de marzo de 2004 | GOST 34.311-95 | Adoptado por el Consejo Euroasiático de Normalización, Metrología y Certificación por correspondencia (Acta No. 16 del 2 de marzo de 2004) |
Nacional | GOST R 34.10-2012 | 1 de enero de 2013 | GOST R 34.11-2012 | Aprobado y puesto en vigor por orden de la Agencia Federal de Regulación Técnica y Metrología No. 215-st del 7 de agosto de 2012 como estándar nacional de la Federación Rusa a partir del 1 de enero de 2013 |
Interestatal | GOST 34.10-2018 | 1 de junio de 2019 | GOST 34.11-2018 | Adoptado por el Consejo Interestatal de Metrología, Normalización y Certificación (Acta N° 54 de 29 de noviembre de 2018). Por orden de la Agencia Federal de Regulación Técnica y Metrología No. 1059-st del 4 de diciembre de 2018, entró en vigencia como norma nacional de la Federación Rusa a partir del 1 de junio de 2019 |
Los estándares utilizan el mismo esquema para generar una firma digital electrónica. Los nuevos estándares desde 2012 se distinguen por la presencia de una versión adicional de los parámetros del esquema, que corresponde a la longitud de la clave secreta de aproximadamente 512 bits.
Después de firmar el mensaje M , se le agrega una firma digital de 512 o 1024 bits de tamaño y un campo de texto. El campo de texto puede contener, por ejemplo, la fecha y hora de envío o varios datos sobre el remitente:
|
+ |
| |||
Suma |
Este algoritmo no describe el mecanismo para generar los parámetros necesarios para generar una firma, sino que solo determina cómo obtener una firma digital basada en dichos parámetros. El mecanismo de generación de parámetros se determina in situ, dependiendo del sistema que se esté desarrollando.
Se proporciona una descripción de una variante del esquema EDS con una longitud de clave secreta de 256 bits. Para claves secretas con una longitud de 512 bits (la segunda opción para generar un EDS, descrita en el estándar), todas las transformaciones son similares.
Cada usuario de firma digital tiene claves privadas:
Requerimientos adicionales:
Existe una correspondencia biunívoca entre vectores binarios de longitud 256 y números enteros de acuerdo con la siguiente regla . Aquí es igual a 0 o igual a 1. En otras palabras, esta es la representación del número z en el sistema numérico binario.
El resultado de la operación de concatenación de dos vectores se denomina vector de longitud 512 . La operación inversa es la operación de dividir un vector de longitud 512 en dos vectores de longitud 256.
Generación de una firma digital
Verificación de firma digital
La fuerza criptográfica de una firma digital se basa en dos componentes: la fuerza de la función hash y la fuerza del propio algoritmo de cifrado. [2]
La probabilidad de descifrar una función hash según GOST 34.11-94 es cuando se selecciona una colisión para un mensaje fijo y cuando se selecciona cualquier colisión. [2] La fuerza del algoritmo de cifrado se basa en el problema del logaritmo discreto en un grupo de puntos en una curva elíptica. Por el momento, no existe un método para resolver este problema incluso con una complejidad subexponencial. [3]
Uno de los algoritmos más rápidos en este momento, con la elección correcta de parámetros, es el método y el método de Pollard. [cuatro]
Para el método Pollard optimizado, la complejidad computacional se estima como . Por lo tanto, para garantizar la solidez criptográfica de las operaciones, debe utilizar un archivo . [2]
Los GOST de firma digital nuevos y antiguos son muy similares entre sí. La principal diferencia es que en el estándar antiguo, algunas operaciones se realizan sobre el campo , y en el nuevo, sobre un grupo de puntos de una curva elíptica, por lo que los requisitos impuestos a un número primo en el estándar antiguo ( o ) son más estricto que en el nuevo.
El algoritmo de generación de firmas difiere únicamente en el párrafo 4 . En la antigua norma, en este párrafo , y y se calculan, si , volvemos al párrafo 3. Donde y .
El algoritmo de verificación de firma difiere solo en el párrafo 6 . En el estándar anterior, este párrafo calcula dónde está la clave pública para verificar la firma . Si , la firma es correcta, de lo contrario es incorrecta. Aquí hay un número primo, y es un divisor de .
El uso del aparato matemático del grupo de puntos de una curva elíptica permite reducir significativamente el orden del módulo sin perder fuerza criptográfica. [2]
Además, el antiguo estándar describe los mecanismos para obtener los números , y .