Différence entre Cipher de flux et Cipher de bloc

Anonim

Chiffrement d'état vs Chiffrement de bloc

En cryptographie, les chiffrements de flux et les chiffrements de bloc sont deux algorithmes de cryptage / déchiffrement qui appartiennent à la famille des chiffrements de clés symétriques. Typiquement, un chiffrement prend un texte en entrée et produit un texte chiffré en sortie. Les chiffrements de blocs chiffrent un bloc de bits de longueur fixe en utilisant une transformation invariable. Les chiffrements de flux cryptent des flux de bits de longueur variable et utilisent une transformation variable sur chaque bit.

Qu'est-ce qu'un code de flux?

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 les chiffres en texte brut un par un avec des transformations variables pour les chiffres successifs. Comme le chiffrement de chaque chiffre dépend de l'état actuel du moteur de chiffrement, les chiffrements de flux sont également appelés chiffrements d'état. Généralement, les bits / mors simples sont utilisés en tant que chiffres simples. Pour éviter les problèmes de sécurité, assurez-vous que le même état de démarrage n'est pas utilisé plus d'une fois. Le chiffrement de flux le plus utilisé est RC4.

Qu'est-ce qu'un cryptage par bloc?

Un chiffre de bloc est un autre chiffre 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 (invariante) pour tous les chiffres du bloc. Par exemple, lorsqu'un bloc de x-bit de texte brut (avec une clé secrète) est fourni en entrée au moteur de chiffrage de blocs, il produit le bloc de texte chiffré x-bit correspondant. La transformation réelle dépend de la clé secrète. De même, l'algorithme de décryptage récupère le bloc de texte en clair d'origine sur x bits en utilisant le bloc de texte chiffré x-bit et la clé secrète ci-dessus comme entrée. Dans le cas où le message d'entrée est trop long par rapport à la taille du bloc, il sera divisé en blocs et ces blocs seront (individuellement) cryptés en utilisant la même clé. Cependant, étant donné que 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 de chiffrement, ce qui peut poser des problèmes de sécurité. Les chiffrements de blocs populaires sont DES (Data Encryption Standard) et AES (Advanced Encryption Standard).

Quelle est la différence entre un chiffrement de flux et un chiffrement de bloc?

Bien que les chiffrements de flux et les chiffrements de blocs appartiennent tous deux à la famille des chiffrements de chiffrement symétriques, il existe quelques différences clés. Les chiffrements de bloc chiffrent des blocs de bits de longueur fixe, tandis que les chiffrements de flux combinent des bits de texte brut avec un flux de bits de chiffrement pseudo-aléatoire en utilisant l'opération XOR. Même si les chiffrements de blocs utilisent la même transformation, les chiffrements de flux utilisent diverses transformations basées sur 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 bloc lorsque le texte en clair 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, lors de l'utilisation de certains modes de fonctionnement, un chiffrement de bloc peut être utilisé comme chiffrement de flux en lui permettant de chiffrer la plus petite unité de données disponible.