Qual é a diferença entre criptografia de fluxo e criptografia de bloco?
Criptografia de fluxo
A ideia básica da cifra de fluxo é dividir o texto em pequenos blocos, um bit ou um byte, e codificar cada bloco dependendo de muitos blocos anteriores. A criptografia de fluxo usa uma chave de codificação diferente, um valor que deve ser alimentado no algoritmo, para cada bit ou byte, para que ele produza um texto criptografado diferente toda vez que for codificado. Algumas cifras de fluxo usam um gerador de fluxo de chave, que produz um fluxo de bits aleatoriamente ou quase aleatoriamente. A criptografia executa uma operação booleana, conhecida como OR exclusivo, entre os bits no fluxo de chaves e os bits no texto sem formatação para produzir um texto criptografado.
Bloquear criptografia
A idéia básica de uma cifra de bloco é dividir o texto em blocos relativamente longos, geralmente 64 ou 128 bits, e codificar cada bloco separadamente. A mesma chave de criptografia é usada para cada bloco e é a chave de criptografia que determina a ordem na qual a substituição, o transporte e outras funções matemáticas são executadas em cada bloco. Algoritmos fortes significam que a engenharia reversa do sistema de criptografia, ou a determinação de quais funções foram executadas em cada bloco, em qual ordem, é virtualmente impossível.
Difusão e confusão
A criptografia de bloco usa técnicas conhecidas como confusão e difusão para converter texto simples em um texto criptografado. A ideia por trás da confusão é tornar o relacionamento entre a chave de criptografia e o texto simples tão complexo quanto possível. Idealmente, cada caractere da chave de criptografia deve ter influência em cada caractere do texto criptografado. Em contraste, a difusão amplia a influência de cada caractere em texto simples sobre vários caracteres no texto cifrado, tornando a criptografia menos suscetível a ataques estatísticos.
Prós e contras
O fato de a criptografia de fluxo criptografar e descriptografar as informações um pouco por vez significa que elas são particularmente adaptáveis a aplicativos de hardware em tempo real, como aplicativos de áudio e vídeo. A criptografia de fluxo é mais fraca e menos eficiente que a criptografia de bloco quando se trata de aplicativos de software e é usada com menos frequência nessa área. A criptografia de bloco é mais fácil de implementar no software porque criptografa as informações em comprimentos de blues que o software já usa. A chave de criptografia geralmente tem o mesmo tamanho que o tamanho do bloco.