Suite de Cifrado GOST
Cifrado simétrico ruso GOST 28147-89 / Magma con múltiples modos y opciones de S-Box
⚠️ Solo para Uso Educativo
GOST 28147-89 está criptográficamente obsoleto. Para nuevos proyectos, use AES. Esta herramienta es solo para pruebas, aprendizaje y mantenimiento de sistemas heredados.
Acerca de GOST 28147-89 y Magma
GOST 28147-89 es un estándar criptográfico ruso (GOST) para cifrado simétrico desarrollado en 1989 y publicado en 1994. Ha sido el estándar de cifrado principal utilizado por el gobierno federal ruso, militares, bancos y organizaciones gubernamentales en Rusia, Bielorrusia, Kazajstán y otros países de la CEI durante más de tres décadas.
GOST 28147-89 es un cifrado de bloque de 64 bits con una longitud de clave fija de 256 bits (32 bytes), utilizando 32 rondas de cifrado. El algoritmo utiliza ocho cajas de sustitución de 4×8 bits. GOST 28147-89 se considera debilitado en criptoanálisis moderno pero permanece en uso para compatibilidad de sistemas heredados y requisitos regulatorios específicos en países de la CEI.
Acerca de Magma (GOST R 34.12-2015)
Magma es un cifrado de bloque de 64 bits definido en el estándar GOST R 34.12-2015, sirviendo como sucesor modernizado de GOST 28147-89. Magma conserva la estructura Feistel central y las 32 rondas de cifrado de GOST 28147-89, pero utiliza una S-Box TC26-Z fija y orden de procesamiento de bytes big-endian.
RFC 8891 define formalmente la especificación técnica de Magma. Las principales diferencias con GOST 28147-89 incluyen: orden de bytes big-endian (GOST 28147-89 usa little-endian), S-Box fija (GOST 28147-89 soporta múltiples S-Boxes), y orden de aplicación S-Box π[0]→π[7]. Magma es uno de los estándares de cifrado ligero actuales de Rusia.
Historia de GOST 28147-89
GOST (Estándar Estatal Ruso) fue desarrollado en 1989 durante la era soviética y se convirtió en el estándar de cifrado oficial ruso. Después del colapso de la Unión Soviética, continuó siendo utilizado y fue publicado formalmente como estándar abierto en 1994. El diseño del algoritmo se basa en la estructura de la red de Feistel, similar a DES, e incorpora tradiciones de investigación criptográfica rusa.
Comparación de Algoritmos
| Algoritmo | Tipo | Longitud de Clave | Tamaño de Bloque | Seguridad | Rondas |
|---|---|---|---|---|---|
| GOST 28147-89 | Cifrado de Bloque | 256 bits (32 bytes) | 64 bits (8 bytes) | Moderado | 32 |
| Magma (GOST R 34.12-2015) | Cifrado de Bloque | 256 bits (32 bytes) | 64 bits (8 bytes) | Moderado | 32 |
| AES | Cifrado de Bloque | 128, 192, 256 bits | 128 bits (16 bytes) | Excelente | 10-14 |
Características Principales
- Tamaño de bloque de 64 bits - Adecuado para bloques de datos más pequeños
- Longitud de clave de 256 bits - Espacio de clave más grande que DES
- 32 rondas - Propiedades fuertes de difusión y confusión
- Modos múltiples - Soporta ECB, CBC, CFB, OFB, CTR
Consideraciones de Seguridad
- Limitación de tamaño de bloque - Los bloques de 64 bits pueden filtrar información de patrón para archivos grandes.
- Ataques criptanalíticos - GOST ha sido sometido a criptoanálisis académico mostrando margen de seguridad reducido.
- Recomendación - Use AES para nuevos proyectos. GOST 28147-89 se mantiene solo para compatibilidad de sistemas heredados.
Casos de Uso
- 🇷🇺 Sistemas rusos heredados - Mantener compatibilidad con infraestructura GOST existente
- 📚 Propósitos educativos - Aprender diseño de cifrados clásicos y estándares de criptografía rusa
- 🔄 Integración de sistemas - Interfaz con sistemas gubernamentales o bancarios que requieren cumplimiento GOST
- 📦 Migración de datos - Descifrar datos de archivos GOST-cifrados heredados y sistemas
Referencias y Documentación
Herramientas Relacionadas
Cifrado/Descifrado AES
Cifrar y descifrar texto de forma segura usando el algoritmo AES
Cifrado/Descifrado Twofish
Finalista AES, cifrado simétrico con bloques de 128 bits y claves de 128/192/256 bits, diseñado por Bruce Schneier
Cifrado/Descifrado Blowfish
Cifrado de bloques simétrico rápido diseñado por Bruce Schneier, con longitud de clave variable (32-448 bits)