Triple Data Encryption Algorithme

Algorithme utilisé par Up ! Security Manager

L'algorithme Triple Data Encryption Algorithme (TDEA) du Federal Information Processing Standards (FIPS) crypte un flux binaire à partir de trois clés CleInitiale1, CleInitiale2 et CleInitiale3 de taille 8 octets tel que le nombre de bits de chaque octet doit être impair.

Cet algorithme utilise l'algorithme Data Encryption Standard (DES) trois fois.

Cryptage d'un bloc de 8 octets

Voici l'algorithme de cryptage d'un bloc Buffer de huit octets :

/****************************************************************/
Procedure Crypter(BufferEntree : Binaire, BufferSortie : Binaire Sortie)
/* Objet : Crypte un binaire de 8 octets. */
/****************************************************************/
Variable
/******/


Debut
/* E(M,K1). */
CrypterDes(CleInitiale1,BufferEntree,BufferTemporaire1);
/* D(E(M,K1),K2). */
DecrypterDes(CleInitiale2,BufferTemporaire1,BufferTemporaire2);
/* E(D(E(M,K1),K2),K3). */
CrypterDes(CleInitiale3,BufferTemporaire2,BufferSortie);
Fin Procedure

Decryptage d'un bloc de 8 octets

Voici l'algorithme de décryptage d'un bloc Buffer de huit octets :

/****************************************************************/
Procedure Decrypter(BufferEntree : Binaire, BufferSortie : Binaire Sortie)
/* Objet : Decrypte un binaire de 8 octets. */
/****************************************************************/
Variable
/******/


Debut
/* D(M,K3). */
DecrypterDes(CleInitiale3,BufferEntree,BufferTemporaire1);
/* E(D(M,K3),K2). */
CrypterDes(CleInitiale2,BufferTemporaire1,BufferTemporaire2);
/* D(E(D(M,K3),K2),K1). */
DecrypterDes(CleInitiale1,BufferTemporaire2,BufferSortie);
Fin Procedure