DSTU 4145-2002

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 12 de septiembre de 2018; las comprobaciones requieren 16 ediciones .

DSTU 4145-2002 (nombre completo: " DSTU 4145-2002. Tecnologías de la información. Protección de información criptográfica. Firma digital basada en curvas elípticas. Formación y verificación ") es un estándar ucraniano que describe algoritmos para generar y verificar una firma digital electrónica basada en propiedades de grupos de puntos de curvas elípticas sobre campos y reglas para aplicar estas reglas a mensajes que se envían a través de canales de comunicación y/o se procesan en sistemas computarizados de propósito general.

Adoptado y puesto en vigor por orden del Comité Estatal de Ucrania sobre reglamentos técnicos y política del consumidor de fecha 28 de diciembre de 2002 No. 31 [1] . El texto de la norma es de dominio público [2] .

El estándar predeterminado utiliza la función hash GOST 34.311-95 y un generador de secuencia aleatoria que utiliza el algoritmo DSTU GOST 28147:2009 .

De acuerdo con la orden del Ministerio de Desarrollo Digital de Ucrania del 30 de septiembre de 2020 No. 140/614, a partir del 1 de enero de 2021 , el estándar debe usarse junto con DSTU 7564:2014 ( función hash de Kupina ), pero el uso del estándar en conjunto con GOST 34.311-95 está permitido hasta el 1 de enero de 2022 [ 3] .

Algoritmo Básico

Los principales procedimientos del algoritmo de firma digital establecidos por DSTU 4145-2002 son el cálculo previo a la firma, el cálculo de firma y la verificación de firma digital [2] .

Opciones generales de firma digital

Condiciones adicionales para parámetros
  • el orden de un subgrupo cíclico debe satisfacer la condición
  • Debe cumplirse la condición MOV (condición Menezes-Okamoto-Wenstone): para

Formación de una firma digital

La firma digital se calcula en base al mensaje y la prefirma .

Datos de entrada
  • opciones generales de firma digital
  • clave privada firma digital
  • mensaje de longitud
  • función hash con longitud de código hash e id
  • longitud de la firma digital , que se selecciona para un grupo de usuarios:
Informática firma digital

El cálculo de la firma consiste en elegir la primera coordenada de un punto secreto elegido al azar de la órbita del punto . Después de usar la firma digital , se destruye inmediatamente junto con el aleatorizador correspondiente.

Datos de entrada
  • opciones generales de firma digital
Algoritmo para el cálculo de la pre-firma
  1. selección de un aleatorizador basado en un generador criptográfico de números pseudoaleatorios
  2. cálculo de punto de curva elíptica
  3. verificar el valor de la coordenada (si , luego repita el procedimiento para elegir un aleatorizador)
  4. en caso contrario aceptar . (otra designación: )
Resultado
  • firma digital
Algoritmo de cálculo de firma
  1. verificación de la corrección de los parámetros generales, claves, y el cumplimiento de las condiciones y restricciones en cuanto a los valores de los valores intermedios de acuerdo con los procedimientos definidos por la norma
  2. calcular un código hash basado en un mensaje
  3. obtener un elemento del campo principal a partir del código hash según el procedimiento establecido por el estándar. Si esto resulta , entonces acepta
  4. selección aleatoria
  5. cálculo de firma digital
  6. cálculo del elemento del campo principal  (el producto es un elemento de ) (en realidad, )
  7. obtener un número entero del elemento del campo principal según el procedimiento establecido por el estándar (en el caso de que se seleccione un nuevo aleatorizador)
  8. cálculo de enteros (si se elige un nuevo aleatorizador)
  9. basada en un par de números enteros, la firma digital se escribe como una serie binaria de longitud : el valor se coloca en los bits menos significativos de la mitad izquierda de los bits, el valor se coloca en los bits menos significativos de la mitad derecha de los bits , los bits restantes se rellenan con ceros
Resultado
  • mensaje firmado en la forma ( , , ), donde es una firma digital

Verificación de firma digital

Datos de entrada
  • opciones generales de firma digital
  • clave pública de firma digital ,
  • mensaje firmado ( , , ) de longitud
  • función hash
Algoritmo de cálculo de firma
  1. verificación de la corrección de los parámetros generales, claves, y el cumplimiento de las condiciones y restricciones en cuanto a los valores de los valores intermedios de acuerdo con los procedimientos definidos por la norma
  2. verificación del identificador de la función hash : si el identificador dado no se usa en un grupo dado de usuarios, entonces se toma la decisión "la firma no es válida" y se completa la verificación
  3. basado en la longitud del código hash
  4. verificación de condición . Si al menos uno de ellos no se cumple, se toma la decisión "la firma no es válida" y se completa la verificación.
  5. comprobando la presencia del texto del mensaje y su longitud . Si no hay texto o si se toma la decisión "la firma no es válida" y se completa la verificación
  6. calcular un código hash basado en un mensaje
  7. obtener un elemento del campo principal a partir del código hash según el procedimiento establecido por el estándar. Si esto resulta , entonces acepta
  8. extraer un par de números de una notación binaria de una firma digital
  9. comprobar las condiciones y . Si al menos uno de ellos no se cumple, se toma la decisión "la firma no es válida" y se completa la verificación.
  10. cálculo de punto de curva elíptica
  11. cálculo del elemento de campo principal
  12. obtención de un número entero a partir de un elemento del campo principal según el procedimiento establecido por la norma
  13. si , entonces se toma la decisión "la firma es válida", de lo contrario - "la firma no es válida"
Resultado
  • decisión tomada: "la firma es válida" o "la firma no es válida"

Seguridad

La fuerza criptográfica de una firma digital se basa en la complejidad del logaritmo discreto en el subgrupo cíclico de un grupo de puntos en una curva elíptica .

Algoritmos auxiliares utilizados

Obtener un entero de un elemento del campo principal

Datos de entrada
  • elemento de campo principal
  • orden del punto base de una curva elíptica
Resultado
  • un entero que satisface la condición
Algoritmo de cálculo
  1. si el elemento del campo principal es igual a 0, entonces , el final del algoritmo
  2. encontrar un entero
  3. se acepta y se encuentra correspondiente al mayor índice para el cual . Si no existe dicho índice, el algoritmo se acepta y finaliza.
  4. la serie de longitud binaria es la representación binaria del número de salida del algoritmo

Enlaces

implementaciones de software

Notas

  1. ↑ 1 2 Tecnologías de la información. Protección criptográfica de la información. Firma digital que corre sobre curvas elípticas. Moldeo y pereviryannya . shop.uas.org.ua. Consultado el 13 de diciembre de 2019. Archivado desde el original el 5 de mayo de 2019.
  2. ↑ 1 2 Estándares nacionales para yakі є sylannya en actos legales regulatorios | DP "UkrNDNC" . www.org.ua. Consultado el 13 de diciembre de 2019. Archivado desde el original el 14 de mayo de 2019.
  3. Orden del Ministerio de Desarrollo Digital de Ucrania del 30 de septiembre de 2020 No. 140/614 . Fecha de acceso: 11 de enero de 2020.