Descripción general de los algoritmos secretos nacionales y aplicaciones integradas de algoritmos (sm2, sm3, sm4)

I. Resumen

Debido a las necesidades del proyecto, es necesario integrar el cifrado y descifrado del secreto nacional, por lo que revisé nuevamente el antiguo secreto del secreto nacional. Al mismo tiempo, resolví algunos algoritmos del secreto nacional.
Este artículo comienza principalmente con la introducción de algoritmos relacionados con el secreto nacional, la integración de sistemas de aplicación, el empaquetado de herramientas, etc., y realiza un estudio en profundidad de los secretos nacionales.

  • Para garantizar la seguridad de los cifrados comerciales, la Administración Estatal de Criptografía ha formulado una serie de estándares de cifrado, que incluyen: SM1 (SCB2), SM2, SM3, SM4, SM7, SM9, algoritmo de cifrado Zu Chongzhi (ZUC), etc.

  • SM1, SM4, SM7, algoritmo criptográfico de Zu Chong (ZUC): Algoritmo simétrico.

  • SM2, SM9: Algoritmo asimétrico.

  • SM3: Algoritmo hash.

  • Los algoritmos SM1 y SM7 no son públicos. Al llamar al algoritmo, debe llamarse a través de la interfaz del chip de cifrado.

2. Descripción general de la clasificación

3.1, contraseña simétrica SM1

  • El algoritmo SM1 es un algoritmo de cifrado de bloques con una longitud de bloque de 128 bits y una longitud de clave de 128 bits. La solidez de la seguridad del algoritmo y el rendimiento del hardware y el software relacionados son equivalentes a los de AES. El algoritmo no se revela y sólo existe en el chip en forma de núcleo IP.
  • Utilizando este algoritmo, se han desarrollado una serie de productos de seguridad como chips, tarjetas IC inteligentes, claves de contraseña inteligentes, tarjetas de cifrado y máquinas de cifrado, que se utilizan ampliamente en diversos campos de aplicación del gobierno electrónico, el comercio electrónico y la economía nacional. (incluyendo comunicación de asuntos gubernamentales nacionales, comunicación policial, etc.) y otras áreas importantes).

3.2 Algoritmo criptográfico de clave pública de curva elíptica SM2

  • El algoritmo SM2 es el mecanismo de criptografía de curva elíptica ECC, pero es diferente de ECDSA, ECDH y otros estándares internacionales en términos de firma e intercambio de claves, pero adopta un mecanismo más seguro. Además, SM2 recomienda una curva de 256 bits como curva estándar.
  • El estándar SM2 incluye cuatro partes: Principios generales, Algoritmo de firma digital, Protocolo de intercambio de claves y Algoritmo de cifrado de clave pública, y el apéndice de cada parte detalla los detalles relevantes y ejemplos de implementación.
  • El algoritmo SM2 considera principalmente las curvas elípticas sobre los campos primos Fp y F2m, e introduce la representación y operación de estos dos tipos de campos, así como la representación y operación de los puntos sobre las curvas elípticas sobre los campos, y el cálculo Algoritmo para múltiples puntos. Luego introduce la conversión de datos en el lenguaje de programación, incluidas las reglas de conversión de datos entre entero y cadena de bytes, cadena de bytes y cadena de bits, elemento de campo y cadena de bits, elemento de campo y entero, punto y cadena de bytes.
  • Se explica en detalle la generación y verificación de los parámetros de la curva elíptica sobre el campo finito.Los parámetros de la curva elíptica incluyen la selección del campo finito, los parámetros de la ecuación de la curva elíptica, la selección del punto base de la grupo de curva elíptica, etc., y el estándar de selección se proporciona para su verificación. Finalmente, para la generación del par de claves en la curva elíptica y la verificación de la clave pública, el par de claves del usuario es (s, sP), donde s es la clave privada del usuario y sP es la clave pública del usuario. el problema del logaritmo discreto, de sP Es difícil obtener s, y los detalles de la generación de pares de claves y los métodos de verificación se dan para campos primos y campos extendidos binarios. El conocimiento de las reglas generales también se aplica al algoritmo SM9.
  • Sobre la base de principios generales, se proporcionan algoritmos de firma digital (incluidos algoritmos de generación de firma digital y algoritmos de verificación), protocolos de intercambio de claves y algoritmos de cifrado de clave pública (incluidos algoritmos de cifrado y algoritmos de descifrado), y en cada parte se proporcionan descripciones de algoritmos. flujo de algoritmo y ejemplos relacionados.
  • El algoritmo de firma digital, el protocolo de intercambio de claves y el algoritmo de cifrado de clave pública utilizan el algoritmo hash criptográfico SM3 y el generador de números aleatorios aprobado por la Administración Estatal de Criptografía. El algoritmo de firma digital, el protocolo de intercambio de claves y el algoritmo de cifrado de clave pública seleccionan campos finitos y curvas elípticas de acuerdo con las reglas generales y generan pares de claves.
  • El algoritmo SM2 es superior al algoritmo RSA en muchos aspectos (RSA se desarrolló temprano y se usó ampliamente, y es natural que SM2 lidere). La comparación de seguridad con RSA se muestra en la siguiente figura.
    inserte la descripción de la imagen aquí

3.3, algoritmo hash SM3

  • El algoritmo hash criptográfico SM3 (hash, hash) proporciona el método de cálculo y los pasos de cálculo del algoritmo de función hash, y proporciona ejemplos de operación. Este algoritmo es adecuado para firma digital y verificación en aplicaciones criptográficas comerciales, generación y verificación de códigos de autenticación de mensajes y generación de números aleatorios, y puede cumplir con los requisitos de seguridad de varias aplicaciones criptográficas. Utilizado en los estándares SM2, SM9.
  • Este algoritmo genera un valor hash con una longitud de 256 bits para un mensaje de bit cuya longitud de entrada es menor que 2 a la 64 potencia, después de relleno y compresión iterativa, utilizando operaciones XOR, módulo, adición de módulo, cambio, AND, OR, NOT , que consta de funciones de relleno, proceso iterativo, expansión de mensajes y compresión. Consulte el estándar SM3 para conocer algoritmos específicos y ejemplos de funcionamiento.

3.4, algoritmo simétrico SM4

  • Este algoritmo es un algoritmo de agrupación y se utiliza en productos de LAN inalámbrica. La longitud del paquete de este algoritmo es de 128 bits y la longitud de la clave es de 128 bits. Tanto el algoritmo de cifrado como el algoritmo de expansión de claves adoptan una estructura iterativa no lineal de 32 rondas. La estructura del algoritmo de descifrado es la misma que la del algoritmo de cifrado, excepto que se invierte el orden en que se usan las claves de ronda, y la clave de ronda de descifrado es el orden inverso de la clave de ronda de cifrado.
  • Este algoritmo adopta una estructura iterativa no lineal, y cada iteración está dada por una función de ronda, donde la función de ronda está compuesta por una transformación no lineal y una transformación lineal, y la transformación no lineal está dada por un S-box. Donde rki es la clave de ronda, y la permutación sintética T constituye la función de ronda. La generación de la clave redonda es similar al proceso de la figura anterior, y la clave de cifrado se usa como entrada para generarla. La transformación lineal en la función redonda es diferente y hay algunas diferencias en los parámetros. Para obtener una descripción detallada y ejemplos del algoritmo SM4, consulte el estándar SM4.

3,5, contraseña simétrica SM7

  • El algoritmo SM7 es un algoritmo de cifrado de bloques con una longitud de bloque de 128 bits y una longitud de clave de 128 bits. SM7 es adecuado para tarjetas IC sin contacto, y sus aplicaciones incluyen aplicaciones de identificación (tarjetas de control de acceso, permisos de trabajo, pases de competición), aplicaciones de venta de entradas (entradas para eventos a gran escala, entradas para exposiciones), aplicaciones de pago y tarjetas (tarjetas de consumo de puntos, tarjetas campus), tarjeta corporativa, etc.).

3.6, algoritmo de contraseña de identificación SM9

  • Para reducir la complejidad de la gestión de claves y certificados en el sistema de clave pública, Adi Shamir, científico israelí y uno de los inventores del algoritmo RSA, propuso el concepto de criptografía basada en identidad en 1984. La contraseña de identificación utiliza la identificación del usuario (como dirección de correo electrónico, número de teléfono móvil, número QQ, etc.) como clave pública, omitiendo el proceso de intercambio de certificados digitales y claves públicas, haciendo que el sistema de seguridad sea fácil de implementar y administrar, y muy adecuado para la comunicación segura fuera de línea de extremo a extremo, cifrado de datos en la nube, cifrado basado en atributos, cifrado basado en políticas en varias ocasiones. En 2008, el algoritmo de encriptación de identificación obtuvo oficialmente el modelo de algoritmo de secreto comercial: SM9 (algoritmo Shangmi No. 9) emitido por la Administración Estatal de Criptografía, que sentó una base sólida para la aplicación de la tecnología de encriptación de identificación en mi país.
  • El algoritmo SM9 no necesita solicitar un certificado digital y es adecuado para la garantía de seguridad de varias aplicaciones emergentes de aplicaciones de Internet. Tales como servicios de contraseñas basados ​​en la nube, seguridad de correo electrónico, protección de terminales inteligentes, seguridad de Internet de las cosas, seguridad de almacenamiento en la nube, etc. Estas aplicaciones de seguridad pueden usar números de teléfonos móviles o direcciones de correo electrónico como claves públicas para implementar aplicaciones de seguridad como el cifrado de datos, la autenticación de identidad, el cifrado de llamadas y el cifrado de canales, y son fáciles de usar e implementar, lo que abre la puerta a la popularización de la criptografía. algoritmos

3.7, algoritmo de ZUC Zu Chong

  • El algoritmo de cifrado de secuencia Zu Chongzhi es un algoritmo de cifrado de flujo investigado de forma independiente por China. Es un algoritmo de cifrado estándar internacional utilizado en redes 4G de comunicaciones móviles. El algoritmo incluye el algoritmo Zu Chongzhi (ZUC), el algoritmo de cifrado (128-EEA3) y el algoritmo de integridad ( 128-EEA3) EIA3) Tres partes. En la actualidad, existe una implementación optimizada del algoritmo ZUC, y existen implementaciones y optimizaciones de hardware específicamente para 128-EEA3 y 128-EIA3
  • Como recurso estratégico nacional, los algoritmos criptográficos son más críticos que en cualquier otro momento de la historia. En la era de los grandes datos y la computación en la nube, la información clave a menudo se obtiene de datos masivos a través de la tecnología de minería de datos, por lo que la protección de la información de todos es muy importante.

3. Cifrado y descifrado SM2 integrado

Secreto nacional integrado JAVA SM2: https://blog.csdn.net/qq_38254635/article/details/131810661

4. Cifrado SM3 integrado y verificación de firma

Secreto nacional integrado JAVA SM3: https://blog.csdn.net/qq_38254635/article/details/131810696

5. Cifrado y descifrado SM4 integrado

Secreto nacional integrado JAVA SM4: https://blog.csdn.net/qq_38254635/article/details/131810715

6. Descarga de recursos

SpringBoot integra la descarga del paquete de código SM2, SM3, SM4
Dirección de descarga CSDN: https://download.csdn.net/download/qq_38254635/88063758
Dirección de descarga del disco de red Baidu: https://pan.baidu.com/s/1oy0OqRSvYues-w_lbHe27A ?pwd=48i0
Código de extracción: 48i0

El enlace de referencia de la serie de documentos del secreto nacional es el siguiente:
Descripción general del algoritmo del secreto nacional: https://blog.csdn.net/wang_jing_jing/article/details/121493025
Java implementa el cifrado y descifrado del secreto nacional: https://blog. csdn.net/m0_37539286/article /details/127584892
JAVA: firma cifrada sm3 y evita ataques repetidos: https://blog.csdn.net/DGH2430284817/article/details/131472103
Notas sobre algoritmos secretos nacionales SM1, SM2, SM3, SM4: https://www.cnblogs.com/zhangshitong/p/8057845.html
Java para JT/T808 procesamiento de cifrado y descifrado secreto nacional SM4: https://blog.51cto.com/u_12846753/4584586

Supongo que te gusta

Origin blog.csdn.net/qq_38254635/article/details/131801527
Recomendado
Clasificación