La principale différence entre un chiffrement par bloc et un chiffrement par flux est que le chiffrement par bloc chiffre et déchiffre un bloc de texte à la fois. D'autre part, stream cipher chiffre et déchiffre le texte en prenant un octet du texte à la fois.
Tableau de comparaison
Base de comparaison | Bloc de chiffrement | Flux de chiffrement |
---|---|---|
De base | Convertit le texte brut en prenant son bloc à la fois. | Convertit le texte en prenant un octet du texte brut à la fois. |
Complexité | Conception simple | Complexe comparativement |
Nombre de bits utilisés | 64 bits ou plus | 8 bits |
Confusion et diffusion | Utilise à la fois la confusion et la diffusion | Ne repose que sur la confusion |
Modes d'algorithme utilisés | BCE (Livre de codes électroniques) CBC (chaînage de blocs de chiffrement) | CFB (Cipher Feedback) OFB (Output Feedback) |
Réversibilité | Inverser le texte crypté est difficile. | Il utilise XOR pour le cryptage qui peut facilement être inversé en texte brut. |
la mise en oeuvre | Feistel Cipher | Vernam Cipher |
Définition de Block Cipher
Block Cipher prend un message et le divise en une taille fixe de blocs et convertit un bloc du message à la fois. Par exemple, nous avons un message en texte brut «STREET_BY_STREET» qui doit être chiffré. En utilisant bock cipher, “STREET” doit d'abord être crypté, suivi de “_BY_” et enfin “STREET”.
Dans la pratique, la communication n’a lieu qu’en bits. Par conséquent, STREET signifie en réalité l'équivalent binaire du caractère ASCII de STREET. Par la suite, tout algorithme les chiffre; les bits résultants sont reconvertis en leur équivalent ASCII.
Un problème évident en ce qui concerne l’utilisation des chiffrements en bloc est la répétition de texte, pour lequel le même chiffrement est généré. Par conséquent, cela donnerait un indice au cryptanalyst qui facilite la compréhension des chaînes récurrentes de texte brut. En conséquence, il peut révéler tout le message.
Pour surmonter ce problème, le mode de chaînage est utilisé. Dans cette technique, le bloc de texte chiffré précédent est mélangé au bloc actuel, de sorte que le texte chiffré est vague, ce qui évite les motifs récurrents de blocs de même contenu.
Définition du chiffrement de flux
Stream Cipher chiffre généralement un octet du message à ce moment au lieu d'utiliser des blocs. Prenons un exemple, supposons que le message d'origine (texte brut) soit «ciel bleu» en ASCII (format de texte). Lorsque vous convertissez ces ASCII en valeurs binaires équivalentes, la sortie apparaît sous forme de 0 et de 1. Que ce soit traduit en 010111001.
Pour le cryptage et le décryptage, un générateur de bits pseudo-aléatoire est utilisé dans lequel une clé et un texte brut sont chargés. Un générateur de bits pseudoaléatoire crée un flux de nombres de 8 bits apparemment aléatoires appelés flux de clés . Soit la clé d’entrée 100101011. La clé et le texte en clair ont maintenant XOR. La logique XOR est simple à comprendre.
XOR produit une sortie de 1 lorsque l'une des entrées est 0 et l'autre de 1. La sortie est 0 si les deux entrées sont à 0 ou les deux à 1.
La confusion est une méthode qui garantit qu'un texte chiffré ne donne aucune indication sur le texte brut d'origine.
La diffusion est une stratégie utilisée pour améliorer la redondance du texte brut en l'étalant sur des lignes et des colonnes.
Différences clés entre le chiffrement par blocs et le chiffrement par flux
- La technique de chiffrement par blocs consiste à chiffrer un bloc de texte à la fois, c'est-à-dire un par un. De même, décryptez le texte en prenant un bloc après l'autre. En revanche, la technique de chiffrement par flux implique le chiffrement et le déchiffrement d'un octet du texte à la fois.
- Le chiffrement par blocs utilise à la fois la confusion et la diffusion, tandis que le chiffrement en flux ne repose que sur la confusion.
- La taille habituelle du bloc peut être de 64 ou 128 bits dans le chiffrement de bloc. Par contre, 1 octet (8 bits) à la fois est converti dans le chiffrement de flux.
- Le chiffrement par blocs utilise les modes d'algorithme ECB (Electronic Code Book) et CBC (Cipher Block Chaining) . Au contraire, Stream Cipher utilise les modes algorithmiques CFB (Cipher Feedback) et OFB (Output Feedback) .
- Stream Cipher utilise la fonction XOR pour convertir le texte brut en texte chiffré, c’est la raison pour laquelle il est facile d’inverser les bits XORed. Considérant que Block Cipher n’utilise pas XOR pour ce faire.
- Le chiffrement de blocs utilise la même clé pour chiffrer chaque bloc, tandis que le chiffrement de flux utilise une clé différente pour chaque octet.
Conclusion:
Block Cipher et Stream Cipher se différencient par la manière dont le texte brut est crypté et décrypté. L'idée derrière le chiffrement de bloc est de diviser le texte brut en blocs pour chiffrer davantage ces blocs. Alors que stream cipher convertit le texte brut bit par bit de la même manière que stream.