Herramienta de SM4

Herramienta gratuita de cifrado/descifrado SM4 con soporte para ECB/CBC, relleno PKCS, formatos HEX/Base64 y generación aleatoria de clave/IV.

Configuración

Clave e IV

Cifrar/Descifrar

Conocimiento de SM4

Sobre SM4

SM4 es el cifrado de bloque nacional chino con bloque de 128 bits y clave de 128 bits. Se utiliza ampliamente en el ecosistema de estándares GM/T, incluyendo SM TLS/SSL, WAPI para seguridad WLAN, gobierno electrónico y finanzas.

Relación con AES

  • Puntos en común:
    • Ambos son cifrados de bloque de 128 bits; admiten modos comunes (ECB/CBC) y rellenos estándar (PKCS#5/7).
    • Modelo operativo muy similar: requiere clave (Key), IV opcional, selección de modo y relleno, y procesamiento por bloques del texto plano.
  • Diferencias:
    • Estándares y ecosistema: AES es un estándar internacional (FIPS 197) con adopción global; SM4 es un estándar nacional chino (serie GM/T) para cumplir requisitos locales.
    • Longitud de clave: AES admite 128/192/256 bits; SM4 es fijo en 128 bits.
    • Rendimiento y hardware: AES tiene aceleración por hardware más extendida en CPU/GPU; la aceleración de SM4 está mejorando y depende de la plataforma.
    • Cumplimiento: en China o escenarios orientados a China, a menudo se requiere SM4 para la conformidad “GuoMi”; en escenarios internacionales se usa comúnmente AES.

Comparación ECB vs CBC

Ítem ECB CBC
¿Usa IV? No Sí (16 bytes)
Propagación de errores No Sí (por bloque)
Paralelismo Alto Bajo (encadenado)
Seguridad Baja (revela estructura) Alta (recomendado)
Uso típico Datos aleatorios, pruebas Datos de negocio reales
  • ECB: cifra cada bloque de 16 bytes de forma independiente; revela patrones estructurales. No recomendado para datos estructurados/repetitivos.
  • CBC: usa un IV de 16 bytes aleatorio y no reutilizable; encadena bloques adyacentes, enmascarando patrones y mejorando la seguridad en uso empresarial.

Relleno y alineación

  • PKCS#5/PKCS#7: relleno automático hasta múltiplos de 16 bytes; adecuado para la mayoría de datos de texto/binario.
  • NoPadding: sin relleno; texto plano/cifrado debe ser múltiplo de 16 bytes; útil para datos ya alineados o protocolos personalizados.

Recomendaciones

  1. Selección de modo: preferir CBC; evitar ECB para datos estructurados.
  2. Gestión de IV: el IV en CBC debe ser aleatorio criptográficamente y único por cifrado.
  3. Generación de clave: usar claves seguras aleatorias de 128 bits; evitar valores débiles/predecibles.
  4. Formato de salida: HEX o Base64 para el cifrado; Base64 recomendado para transporte entre sistemas.
  5. Cumplimiento: en sistemas dentro de China o que requieran conformidad nacional, usar SM4; en ecosistemas internacionales, AES suele ser principal.