Stream Cipher vs Block Cipher | Chiffre d'état vs Chiffre de bloc
En cryptographie, les chiffrements de flux et de chiffrement de blocs sont deux algorithmes de chiffrement / déchiffrement appartenant à la famille des chiffreurs à clé symétrique. Généralement, un chiffrement prend un texte brut en entrée et produit un texte chiffré en sortie. Les chiffrements de bloc chiffrent un bloc de bits de longueur fixe en utilisant une transformation invariante. Les chiffreurs de flux chiffrent les flux de bits de longueur variable et utilisent des transformations variables pour chaque bit..
Qu'est ce qu'un Stream Cipher??
Les chiffrements de flux appartiennent à la famille des chiffrements de clés symétriques. Les chiffrements de flux combinent des bits de texte brut avec un flux de bits de chiffrement pseudo-aléatoire avec l'utilisation de l'opération XOR (exclusif-ou). Les chiffrements de flux chiffrent un à un les chiffres en texte brut avec des transformations variables pour les chiffres suivants. Le chiffrement de chaque chiffre dépendant de l'état actuel du moteur de chiffrement, les chiffrements de flux sont également appelés chiffrements d'état. En règle générale, les bits uniques / bits sont utilisés sous forme de chiffres uniques. Pour éviter tout problème de sécurité, il convient de s’assurer que le même état de départ n’est pas utilisé plus d’une fois. Le code de flux le plus largement utilisé est RC4.
Qu'est ce qu'un Block Cipher??
Un chiffrement par bloc est un autre chiffrement à clé symétrique. Les chiffrements de blocs fonctionnent sur des blocs (groupes de bits) de longueur fixe. Les chiffrements de bloc utilisent une transformation fixe (invariable) pour tous les chiffres du bloc. Par exemple, lorsqu'un texte brut de bloc de bits x (avec une clé secrète) est fourni en entrée du moteur de chiffrement de blocs, il produit le bloc de texte chiffré de bits x correspondant. La transformation dépend de la clé secrète. De la même manière, l'algorithme de déchiffrement récupère le bloc de texte clair d'origine en bits x en utilisant le bloc de texte chiffré en bits x et la clé secrète ci-dessus comme entrée. Si le message d'entrée est trop long par rapport à la taille du bloc, il sera divisé en blocs et ces blocs seront cryptés (individuellement) à l'aide de la même clé. Cependant, comme la même clé est utilisée, chaque séquence répétée dans le texte brut devient la même séquence répétée dans le texte chiffré, ce qui peut poser des problèmes de sécurité. Les chiffreurs de blocs populaires sont les normes DES (Data Encryption Standard) et AES (Advanced Encryption Standard)..
Quelle est la différence entre un Stream Cipher et un Block Cipher??
Bien que les chiffrements de flux et les chiffrements de bloc appartiennent à la famille des chiffrements de chiffrement symétriques, il existe quelques différences essentielles. Les chiffreurs de blocs chiffrent des blocs de bits de longueur fixe, tandis que les chiffreurs de flux combinent des bits de texte brut avec un flux de bits de chiffrement pseudo-aléatoire en utilisant l'opération XOR. Bien que les chiffreurs de blocs utilisent la même transformation, les chiffrements de flux utilisent diverses transformations en fonction de l'état du moteur. Les chiffrements de flux s'exécutent généralement plus rapidement que les chiffrements de bloc. En termes de complexité matérielle, les chiffrements de flux sont relativement moins complexes. Les chiffrements de flux sont la préférence typique par rapport aux chiffrements de blocs lorsque le texte brut est disponible en quantités variables (par exemple, une connexion wifi sécurisée), car les chiffrements de blocs ne peuvent pas fonctionner directement sur des blocs plus courts que la taille de bloc. Mais parfois, la différence entre les chiffrements de flux et les chiffrements de blocs n'est pas très claire. La raison en est que, lorsqu’on utilise certains modes de fonctionnement, un chiffrement par bloc peut être utilisé pour agir en tant que chiffrement de flux en lui permettant de chiffrer la plus petite unité de données disponible..