Présentation du chiffrement à flot

Définition.   Le chiffrement à flot, appelé également chiffrement par flux ou chiffrement à la volée (stream cipher en anglais), est une des deux grandes familles de chiffrements à clef secrète. Dans un chiffrement à flot, le texte chiffré est obtenu en combinant par ou exclusif bit-à-bit le message clair avec une suite binaire secrète, de même longueur que le message. Cette suite binaire, appelée suite chiffrante, peut être
  • soit une suite aléatoire entièrement secrète partagée par les deux utilisateurs : cette situation correspond à la technique du masque jetable ;
  • soit une suite pseudo-aléatoire, c'est-à-dire produite à partir d'une clef secrète par un générateur pseudo-aléatoire.
Les algorithmes par flot s'opposent donc aux algorithmes de chiffrement par blocs, comme l'AES ou le DES, qui consistent à découper le message à transmettre en blocs de taille fixe (généralement en blocs de 128 bits), puis à transformer par le même procédé chacun de ces blocs en un bloc de chiffré.
Notons que certains algorithmes de chiffrement à flot, dits auto-synchronisants, d'utilisation peu fréquente ne sont pas couverts par cette définition (voir la fiche chiffrements à flot synchrones et auto-synchronisants pour une définition plus formelle et une discussion sur les chiffrements à flot synchrones et auto-synchronisants)

Propriétés générales et avantages.  
Avec un algorithme de chiffrement par blocs, on ne peut commencer à chiffrer et à déchiffrer un message que si l'on connaît la totalité d'un bloc. Ceci occasionne naturellement un délai dans la transmission et nécessite également le stockage successif des blocs dans une mémoire-tampon. Au contraire, dans les procédés de chiffrement à flot, chaque nouveau bit transmis peut être chiffré ou déchiffré indépendamment des autres, en particulier sans qu'il soit nécessaire d'attendre les bits suivants.
D'autre part, les chiffrements à flot ne requièrent évidemment pas de padding, c'est-à-dire l'ajout de certains bits au message clair dont le seul objectif est d'atteindre une longueur multiple de la taille de bloc. Ceci peut s'avérer particulièrement souhaitable dans les applications où la bande passante est très limitée ou quand le protocole employé impose la transmission de paquets relativement courts (auquel cas, le padding représente une proportion non négligeable des données échangées).
Un autre avantage de ces techniques est que, contrairement aux algorithmes par blocs, le processus de déchiffrement ne propage pas les erreurs de transmission. Supposons qu'une erreur survenue au cours de la communication ait affecté un bit du message chiffré. Dans le cas d'un chiffrement à flot, cette erreur affecte uniquement le bit correspondant du texte clair, et ne le rend donc généralement pas complètement incompréhensible. Par contre, dans le cas d'un chiffrement par blocs, c'est tout le bloc contenant la position erronée qui devient incorrect après déchiffrement. Ainsi, une erreur sur un seul bit lors de la transmission affecte en réalité 128 bits du message clair. C'est pour cette raison que le chiffrement à la volée est également utilisé pour protéger la confidentialité dans les transmissions bruitées.

Contextes d'utilisation.  
Outre le fait qu'ils sont bien adaptés pour les transmissions bruitées ou à faible passante, les procédés de chiffrement à flot sont généralement privilégiés dans des contextes où il est primordial de pouvoir chiffrer et déchiffrer très rapidement ou au moyen de ressources très limitées. Leur utilisation est par exemple systématique dans les applications qui imposent de fortes contraintes sur la taille et la consommation électrique du circuit électronique dédié au chiffrement. C'est le cas de la plupart des systèmes embarqués, tels les téléphones mobiles.
C'est également parmi les algorithmes à flot que l'on trouve les systèmes de chiffrement les plus rapides. Ils sont donc utilisés dès que l'on souhaite une vitesse de chiffrement extrêmement élevée, que l'on ne peut atteindre avec des algorithmes par blocs.

Chiffrement à flot et générateurs pseudo-aléatoires.  
L'algorithme de chiffrement à flot le plus simple est le célèbre chiffre du masque jetable, qui offre une sécurité parfaite mais qui nécessite l'échange au préalable d'une clef secrète aussi longue que le message à chiffrer. Il ne peut donc pas être utilisé en pratique sauf dans des cas extrêmement particuliers où l'on dispose de moyens physiques pour échanger des clefs de grande taille (typiquement, les communications diplomatiques). Les algorithmes de chiffrement à flot employés en pratique sont donc des versions affaiblies du chiffre du masque jetable dans lesquelles la suite aléatoire secrète est remplacée par une suite produite par un générateur pseudo-aléatoire.

Informations sur la fiche

Titre :
Présentation du chiffrement à flot
Profil(s) :
Enseignant & Lycéen, Ingénieur informatique, Enseignant-Chercheur, Etudiant
Thème :
Cryptographie à clé secrète
Finalité :
Pédagogique
Difficulté :
niveau 1
Mise à jour :
26/01/2006

Compléments

Parcours associé(s)

Syndication

Il vous est possible de suivre la publication des fiches PICSI via le fil RSS des fiches.