Cifra de Bloco
O esquema básico de uma cifra de bloco é descrito a seguir -
Uma cifra de bloco pega um bloco de bits de texto simples e gera um bloco de bits de texto cifrado, geralmente do mesmo tamanho. O tamanho do bloco é fixo no esquema fornecido. A escolha do tamanho do bloco não afeta diretamente a força do esquema de criptografia. A força da cifra depende do comprimento da chave.
Tamanho do bloco
Embora qualquer tamanho de bloco seja aceitável, os seguintes aspectos são levados em consideração ao selecionar o tamanho de um bloco.
Avoid very small block size- Digamos que o tamanho de um bloco seja de m bits. Então, as possíveis combinações de bits de texto simples são 2 m . Se o invasor descobrir os blocos de texto simples correspondentes a alguns blocos de texto cifrado enviados anteriormente, o invasor pode lançar um tipo de 'ataque de dicionário' construindo um dicionário de pares de texto simples / texto cifrado enviado usando essa chave de criptografia. Um tamanho de bloco maior torna o ataque mais difícil, pois o dicionário precisa ser maior.
Do not have very large block size- Com tamanho de bloco muito grande, a cifra torna-se ineficiente para operar. Esses textos simples precisarão ser preenchidos antes de serem criptografados.
Multiples of 8 bit - Um tamanho de bloco preferido é um múltiplo de 8, pois é fácil de implementar, já que a maioria dos processadores de computador manipula dados em múltiplos de 8 bits.
Preenchimento na cifra de bloco
As cifras de bloco processam blocos de tamanhos fixos (digamos, 64 bits). O comprimento dos textos simples geralmente não é um múltiplo do tamanho do bloco. Por exemplo, um texto simples de 150 bits fornece dois blocos de 64 bits cada um com o terceiro bloco de 22 bits de equilíbrio. O último bloco de bits precisa ser preenchido com informações redundantes para que o comprimento do bloco final seja igual ao tamanho do bloco do esquema. Em nosso exemplo, os 22 bits restantes precisam ter 42 bits redundantes adicionais adicionados para fornecer um bloco completo. O processo de adição de bits ao último bloco é conhecido comopadding.
Muito preenchimento torna o sistema ineficiente. Além disso, o preenchimento pode tornar o sistema inseguro às vezes, se o preenchimento for feito sempre com os mesmos bits.
Esquemas de cifra de bloco
Há um grande número de esquemas de cifras de bloco em uso. Muitos deles são conhecidos publicamente. As cifras de bloco mais populares e proeminentes estão listadas abaixo.
Digital Encryption Standard (DES)- A popular cifra de bloco dos anos 1990. Agora é considerada uma cifra de bloco "quebrada", principalmente devido ao seu pequeno tamanho de chave.
Triple DES- É um esquema variante baseado em aplicações DES repetidas. Ainda é uma cifra de bloco respeitada, mas ineficiente em comparação com as novas cifras de bloco mais rápidas disponíveis.
Advanced Encryption Standard (AES) - É uma cifra de bloco relativamente nova baseada no algoritmo de criptografia Rijndael que ganhou o concurso de design da AES.
IDEA- É uma cifra de bloco suficientemente forte com um tamanho de bloco de 64 e um tamanho de chave de 128 bits. Vários aplicativos usam criptografia IDEA, incluindo versões anteriores do protocolo Pretty Good Privacy (PGP). O uso do esquema IDEA tem adoção restrita devido a questões de patentes.
Twofish- Este esquema de cifra de bloco usa tamanho de bloco de 128 bits e uma chave de comprimento variável. Foi um dos finalistas da AES. Ele é baseado na cifra de bloco anterior Blowfish com um tamanho de bloco de 64 bits.
Serpent- Uma cifra de bloco com tamanho de bloco de 128 bits e comprimentos de chave de 128, 192 ou 256 bits, que também foi finalista do concurso AES. É mais lento, mas tem um design mais seguro do que outra cifra de bloco.
Nas próximas seções, discutiremos primeiro o modelo de cifra de bloco seguido por DES e AES, duas das cifras de bloco modernas mais influentes.