¿Sabes qué es padding en criptografía? La criptografía de bloques permite transformar el texto plano a texto cifrado por medio de algoritmos. Sin embargo, los algoritmos de bloques, a pesar de ser seguros, cuentan con algunas limitaciones; por ejemplo, que el tamaño de cada bloque debe estar predeterminado para cada algoritmo y ser siempre el mismo para todos.
Pero ¿qué sucede cuando el mensaje original es más corto o más largo que el tamaño del bloque? En este post, hablaremos sobre la solución a este problema y por eso, a continuación, te explicaremos qué es padding en criptografía.
¿Qué es padding en criptografía?
Una de las características principales del cifrado por bloques es que los tamaños del texto plano, el texto cifrado y la clave deben estar predeterminados por los algoritmos de cifrado y ser siempre iguales. Sin embargo, sucede frecuentemente que el último bloque de un mensaje cifrado sea más corto o más largo que la extensión de tamaño determinada. Por eso, cada algoritmo cuenta con su propio esquema de relleno o padding, que establece qué valores se deben poner en lugar de los bits que faltan por llenar en un bloque.
Los sistemas de relleno varían según el tipo de algoritmo de cifrado de bloques que se utilice. Ahora que sabes qué es padding en criptografía, veremos cómo funciona dentro de dos de los algoritmos más conocidos.
Esquema de relleno del algoritmo DES
El algoritmo DES o Data Encryption Standard se creó en el año 1976 y fue el algoritmo de bloques estándar durante muchos años. Este algoritmo contaba con un tamaño de bloque de 64 bits y el tamaño de la clave era de tan solo 56 bits. Pronto se demostró que 56 bits de seguridad era un valor demasiado bajo y muy susceptible a un ataque de fuerza bruta.
El esquema de relleno que usaba este algoritmo era muy simple, pues consistía solamente en completar con ceros el número de bytes que hiciesen falta para llenar el último bloque de texto.
Esquema de relleno del algoritmo AES
🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴
Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en Ciberseguridad por una semanaEl algoritmo AES o Advanced Encryption Stantard, también conocido como Rijndael, se estableció como el algoritmo de bloques estándar desde 2001 y, a día de hoy, la Agencia de Seguridad Nacional de Estados Unidos (NSA) todavía lo utiliza para cifrar sus archivos clasificados como “Top Secret“. Es un algoritmo de cifrado por bloques imposible de romper en la práctica y su sistema de relleno es un buen ejemplo para explicar qué es padding en criptografía.
Para el algoritmo AES, se incluye como relleno o padding un valor hexadecimal que corresponda directamente al número de bytes que hacen falta para completar el último bloque y alcanzar los 128 bits de extensión. Si, por ejemplo, hiciesen falta 72 bits (que son 9 bytes) para completar un bloque, este se rellenaría con el valor “09”, que significa 9 en hexadecimal.
En el algoritmo AES siempre se hace relleno, aunque el último bloque contenga la cantidad de bits exactos para completarlo. En este caso, se adiciona un nuevo bloque completo rellenado con el valor “10” en cada uno de sus bytes, que en el sistema hexadecimal significa 16 e indica que es un bloque entero con padding.
Ya sabes qué es padding en criptografía y cómo se utiliza en los diferentes algoritmos de cifrado por bloques, pero no dejes que tus conocimientos paren aquí. Si quieres seguir aprendiendo para poder especializarte en ciberseguridad, te ofrecemos una gran oportunidad. Entra en nuestro Ciberseguridad Full Stack Bootcamp y consulta nuestro programa, ya que, gracias a esta formación intensiva, en solo 7 meses te convertirás en un experto. ¡Inscríbete ya y consigue el trabajo de tus sueños en el sector tecnológico!