Cryptographie
OFB : Output Feedback. « Rétroaction de sortie », par analogie avec un moulin qui moud sans fin son propre grain pour produire la farine du masque.
Fonctionnement : On chiffre le vecteur d'initialisation, puis on rechiffre chaque sortie pour obtenir la suivante ; la suite de blocs forme un flux de clé combiné au message par XOR. Le chiffrement par bloc devient un chiffrement par flot synchrone.
Propriétés : Pas de bourrage, déchiffrement identique au chiffrement, et une erreur de transmission n'altère que le bit correspondant. Le flux de clé peut même être calculé à l'avance.
Le piège : Réutiliser un IV avec la même clé redonne exactement le même flux, et le XOR de deux messages chiffrés livre celui des clairs. Le mode ne pardonne rien, ce qui le distingue avantageusement de ses utilisateurs, qui pardonnent tout aux IV fixes.
Malléabilité : Inverser un bit du chiffré inverse le même bit du clair, sans qu'aucun contrôle ne le remarque. Pour un usage moderne, un mode authentifié AEAD comme GCM le remplace.
Ce qui arrive si on s'en passe
Réutiliser un IV avec la même clé en OFB redonne exactement le même flux de clé : le XOR de deux messages chiffrés livre alors celui des deux clairs, et un seul message connu suffit à lire l'autre. Faute d'intégrité, un attaquant peut en outre inverser n'importe quel bit du clair en inversant le bit correspondant du chiffré, sans qu'aucun contrôle ne le remarque. Un protocole qui l'emploie sans authentification transmet donc des messages à la fois confidentiels et modifiables à volonté. Le mode ne pardonne rien ; il a au moins le mérite de la constance, qualité qu'on aimerait voir moins souvent chez les IV.
Explication de la marmotte
Pour cacher un message, une méthode consiste à fabriquer une longue suite de valeurs qui ont l'air tirées au hasard, puis à la mélanger au message lettre par lettre. Celui qui connaît le secret sait refabriquer exactement la même suite et défaire le mélange. Ici, la suite est produite en passant une valeur de départ dans une machine à brouiller, puis en repassant le résultat dans la machine, encore et encore. Point essentiel : il faut une valeur de départ différente à chaque message, sinon deux messages partagent la même suite et se trahissent l'un l'autre.
Où ce terme est utilisé
- Transformer un bloc en chiffrement de message (6 occurrences)
