>> Technologie Électronique >  >> Maison intelligente >> Vie connectée

Quelle est la différence entre chiffrements de flux (Stream Ciphers) et chiffrements par blocs (Block Ciphers) ?

Un chiffrement (cipher) est un ensemble de règles mathématiques (algorithme) convertissant un texte lisible (clair) en texte illisible (chiffré). La différence principale entre chiffrements de flux et par blocs est que les premiers traitent le texte comme un flux continu, bit par bit ou octet par octet, tandis que les seconds traitent des blocs de texte de taille fixe.

Chiffrement de flux (Stream Cipher)

L'idée de base : diviser le texte en petits blocs (1 bit ou 1 octet) et chiffrer chaque bloc en fonction de nombreux blocs précédents. Les chiffrements de flux utilisent une clé de chiffrement différente pour chaque bit/octet, donc le même bit/octet produit un chiffré différent à chaque fois. Certains utilisent un générateur de flux de clé (keystream generator) produisant un flux aléatoire ou quasi-aléatoire de bits. Le chiffrement effectue une opération booléenne (OU exclusif / XOR) entre les bits du flux de clé et ceux du texte clair pour produire le texte chiffré.

Chiffrement par blocs (Block Cipher)

L'idée de base : diviser le texte en blocs relativement grands (typiquement 64 ou 128 bits) et chiffrer chaque bloc séparément. La même clé de chiffrement est utilisée pour chaque bloc ; c'est la clé qui détermine l'ordre des substitutions, permutations et autres fonctions mathématiques sur chaque bloc. Des algorithmes forts rendent l'ingénierie inverse (déterminer quelles fonctions, dans quel ordre) virtuellement impossible.

Diffusion et confusion

Les chiffrements par blocs utilisent des techniques de confusion et diffusion pour chiffrer. La confusion vise à complexifier au maximum la relation entre la clé de chiffrement et le texte chiffré. Idéalement, chaque caractère de la clé influence chaque caractère du chiffré. La diffusion, elle, étale l'influence de chaque caractère du clair sur plusieurs caractères du chiffré, rendant le chiffrement moins vulnérable aux attaques statistiques.

Avantages et inconvénients

Le fait que les chiffrements de flux traitent les données bit par bit les rend particulièrement adaptés aux applications matérielles temps réel (audio, vidéo). Ils sont plus faibles et moins efficaces que les chiffrements par blocs pour les applications logicielles, et moins utilisés dans ce domaine. Les chiffrements par blocs sont plus faciles à implémenter en logiciel car ils chiffrent des blocs de longueur déjà utilisée par le logiciel. La clé de chiffrement a souvent la même longueur que la taille du bloc.

Vie connectée