Un cifrado por bloques (block cipher) es un algoritmo de criptografía que opera sobre bloques de datos de tamaño fijo. A diferencia de los cifrados de flujo, que cifran los datos bit a bit o byte a byte, los cifrados por bloques tratan los datos en bloques de bits de longitud predefinida, generalmente 64 o 128 bits.
Características principales:
- Operación por bloques: Un cifrado por bloques cifra un bloque de datos a la vez. Cada bloque tiene un tamaño fijo, por ejemplo, 128 bits. Esto significa que el algoritmo divide el texto en claro en bloques del mismo tamaño y los cifra uno por uno.
- Modos de operación: Los cifrados por bloques pueden utilizarse en diferentes modos de operación, como ECB (Electronic Codebook), CBC (Cipher Block Chaining), CFB (Cipher Feedback), OFB (Output Feedback) y CTR (Counter). Estos modos influyen en la forma en que se cifran los bloques y cómo los bloques anteriores afectan al cifrado de los bloques siguientes.
- Clave secreta: Para cifrar y descifrar los datos, un cifrado por bloques utiliza una clave secreta compartida entre la entidad que cifra y la que descifra. La seguridad del algoritmo depende de la complejidad y el secreto de la clave.
- Resistencia a ataques: Un buen cifrado por bloques debe ser resistente a varios tipos de ataques criptográficos, como ataques de fuerza bruta, ataques estadísticos, y ataques de criptoanálisis diferencial y lineal.
Ejemplos de cifrados por bloques:
- DES (Data Encryption Standard): Uno de los cifrados por bloques más antiguos, utiliza bloques de 64 bits y una clave de 56 bits. Aunque fue ampliamente utilizado en el pasado, se considera inseguro para el uso moderno debido a su vulnerabilidad a los ataques de fuerza bruta.
- AES (Advanced Encryption Standard): Sucesor del DES, el AES utiliza bloques de 128 bits y admite claves de 128, 192 y 256 bits. Actualmente es uno de los estándares de cifrado más seguros y utilizados a nivel mundial.
- Blowfish: Otro cifrado por bloques que opera sobre bloques de 64 bits y admite claves variables de 32 a 448 bits. Es conocido por su velocidad y eficiencia.
Aplicaciones:
Los cifrados por bloques se utilizan en una amplia gama de aplicaciones, entre ellas:
- Seguridad en las comunicaciones: Para proteger los datos transmitidos a través de redes no seguras.
- Almacenamiento seguro: Para cifrar archivos y bases de datos sensibles.
- Sistemas de autenticación: Para garantizar la integridad y la confidencialidad de los datos de autenticación.
En conclusión, los cifrados por bloques son herramientas fundamentales en la criptografía moderna, esenciales para garantizar la seguridad de la información en muchos contextos tecnológicos.