Criptografia chave simétrica de bloco e de fluxo
Este artigo descreve o que são os algoritmos de chave simétrica, no que são baseados e suas aplicações. Descreve os algoritmos simétricos de bloco e de fluxo. Pode ser considerado uma continuação do artigo "Introdução a criptografia".
Parte 5: Conclusão e referências
Os algoritmos de fluxo são muito interessantes na comunicação de dados. Os de bloco são melhores para cifrar dados estáticos, onde já se sabe antecipadamente o tamanho e se pode dividir em blocos de M bits.
Os algoritmos de bloco, na sua forma original, permitem a exploração de ataques de repetição, supressão e inserção de bloco. Como cada bloco é cifrado de forma individual, um atacante poderá copiar um bloco sobre o outro, remover um bloco ou mesmo inserir o bloco 0 entre o 2 e o 3 e mesmo assim a decifragem será feita de forma positiva. Na prática toda a ferramenta de cifragem insere cabeçalhos incluindo CRC para verificar se a decifragem ocorreu da forma esperada. Mesmo assim, uma variação da cifra de bloco conhecida como CBC (Cipher-Block Chaining) implementa um encadeamento entre os blocos frustrando este tipo de ataque.
No Linux o canivete suíço da criptografia é o gnupg. Baseado na sua versão comercial, o PGP, esta ferramenta implementa os principais tipos de cifras que se pode pensar, incluindo os de bloco. Também tem o openssl, disponível tanto em linha de comando como em bibliotecas de programação. Ninguém que deseje incorporar criptografia em seus programas precisa, hoje, programar uma linha sequer, pois tudo já existe. Gnupg e OpenSSL podem vir a se tornar outro artigo no futuro
Uma implementação tosca em C do algoritmo de criptografia XOR pode ser encontrando em Criptografia XOR em C.
Praticamente todas as referências bibliográficas que citei em meu primeiro artigo (Introdução a criptografia), se aplicam a este artigo.
Os algoritmos de bloco, na sua forma original, permitem a exploração de ataques de repetição, supressão e inserção de bloco. Como cada bloco é cifrado de forma individual, um atacante poderá copiar um bloco sobre o outro, remover um bloco ou mesmo inserir o bloco 0 entre o 2 e o 3 e mesmo assim a decifragem será feita de forma positiva. Na prática toda a ferramenta de cifragem insere cabeçalhos incluindo CRC para verificar se a decifragem ocorreu da forma esperada. Mesmo assim, uma variação da cifra de bloco conhecida como CBC (Cipher-Block Chaining) implementa um encadeamento entre os blocos frustrando este tipo de ataque.
No Linux o canivete suíço da criptografia é o gnupg. Baseado na sua versão comercial, o PGP, esta ferramenta implementa os principais tipos de cifras que se pode pensar, incluindo os de bloco. Também tem o openssl, disponível tanto em linha de comando como em bibliotecas de programação. Ninguém que deseje incorporar criptografia em seus programas precisa, hoje, programar uma linha sequer, pois tudo já existe. Gnupg e OpenSSL podem vir a se tornar outro artigo no futuro
Uma implementação tosca em C do algoritmo de criptografia XOR pode ser encontrando em Criptografia XOR em C.
Praticamente todas as referências bibliográficas que citei em meu primeiro artigo (Introdução a criptografia), se aplicam a este artigo.