prólogo
Actualmente hay tres estándares de cifrado de datos aprobados para su uso por los Estándares federales de procesamiento de información (FIPS). Esta nota de aplicación describe la implementación de dos de ellos, el Estándar de cifrado triple de datos (TDES) y el Estándar de cifrado avanzado (AES), para dispositivos PIC24 y dsPIC30/33.
Cifrado TDES
Fondo
El primer estándar de cifrado de datos (DES), un cifrado de bloque de 64 bits, fue inventado por IBM® a principios de la década de 1970. DES utiliza claves de cifrado de 64 bits. 56 bits se usan para codificar y decodificar, el resto se usa para paridad. Adoptado por el gobierno de EE. UU. en 1977 como estándar para cifrar datos confidenciales. A mediados de la década de 1990, varias agencias públicas habían demostrado que el código DES se podía descifrar en días.
Triple DES (TDES) es una variante de DES y se describe en FIPS 46-2 y 46-3. TDES utiliza tres ciclos de DES para extender la clave de 56 bits a 112 o 168 bits según el modo de operación. Debido a las debilidades conocidas en el algoritmo DES, se cree que la seguridad práctica es de alrededor de 80 y 112 bits, respectivamente, de dos maneras diferentes. El uso de TDES fue propuesto por el gobierno de EE. UU. en 1999 para todos los sistemas, excepto los heredados, donde solo DES estaba disponible.
TDES tiene varios modos diferentes. Lo más habitual es utilizar dos claves diferentes. Los datos se cifran con la primera clave. El resultado se descifra con la segunda clave. Finalmente, los datos se vuelven a cifrar con la primera clave. Otros modos de operación incluyen el uso de tres claves diferentes, una para cada etapa, y el cifrado en cada ronda en lugar de descifrar en la segunda ronda. El estándar de cifrado avanzado (AES) ha reemplazado a TDES en la mayoría de las aplicaciones nuevas. AES ofrece un nivel de seguridad ligeramente más alto que TDES y es mucho más rápido y tiene una implementación más pequeña que TDES.
En la Figura 1 se muestra un esquema del algoritmo DES original. Este ciclo se realiza 32 veces antes de que el texto cifrado sea válido.