Dans le chiffrement symétrique l'algorithme opère sur un bloc. Pour chiffrer un ensemble de blocs constituants le message à chiffrer il est nécessaire de définir une stratégie d'opération sur la succession des blocs à chiffrer.
Il existe quatre modes définis dans FIPS 81 (1980)
Electronic Code Book (ECB),
Cipher Block Chaining (CBC),
Cipher FeedBack (CFB) et
Output FeedBack (OFB).
Nous adoptons la notation suivante dans la description des quatre modes d'opération :
T[n]: n-ième bloc du texte clair
C[n]: n-ième bloc du texte chiffré
E(m): fonction de chiffrement
D(m): fonction de déchiffrement
IV : Initialization Vector
^ : XOR
Chiffrement :C[n] = E(T[n])
Déchiffrement :T[n] = D(C[n])
Le même texte clair et clé de chiffrement donnent le même texte chiffré.
Chiffrement :
C[0] = E(T[0] ^ IV)
C[n] = E(T[n] ^ C[n-1]) , si (n > 0)
Déchiffrement :
T[0] = D(C[n]) ^ IV
T[n] = D(C[n]) ^ C[n-1] , si (n > 0)
IV est envoyé en clair avec le message chiffré
I[n]: bloc temporaire
Chiffrement :
I[0] = VI
I[n] = C[n-1] , si (n > 0)
C[n] = T[n] ^ E(I[n])
Déchiffrement :
I[0] = VI
I[n] = C[n-1], si (n > 0)
T[n] = C[n] ^ E(I[n])
Offre une sécurité plus élevée
I[n]=nième bloc temporaire
R[n]=nième bloc temporaire second
Chiffrement :
I[0] = VI
I[n] = R[n-1] , si (n > 0)
R[n] = E(I[n])
C[n] = T[n] ^ R[n]
Déchiffrement :
I[0] = VI
I[n] = R[n-1] , si (n > 0)
R[n] = E(I[n])
T[n] = C[n] ^ R[n]