Introdução aos algoritmos simétricos

Os algoritmos simétricos, também conhecidos como algoritmos de chave secreta, são amplamente usados ​​na criptografia de dados em massa ou no fluxo de dados. Esse é um tipo de algoritmo criptográfico que criptografa e descriptografa os dados usando a mesma chave (o que torna esse algoritmo simétrico). É chamada de chave secreta porque a chave usada é mantida em segredo pelos sistemas envolvidos no processo de criptografia e descriptografia. A criptografia feita por esse algoritmo não é fácil de quebrar, se a pessoa que tenta descriptografar não tiver a chave secreta, precisará usar técnicas avançadas para quebrá-la. Esses algoritmos geralmente têm uma natureza muito rápida, razão pela qual são mais utilizados quando há necessidade de criptografia em grandes quantidades de dados. A Fig1.a descreve a criptografia de chave simétrica básica:

Figura1.a Criptografia de chave simétrica

Tipos de algoritmos simétricos

Algoritmos amplamente simétricos são classificados em dois

  • Quadra
  • Corrente

Algoritmos de bloco

Os algoritmos de bloco criptografam os dados bloco por bloco (muitos bytes). Bloco refere-se ao conjunto especificado de bits e esses bits são alterados / criptografados usando uma chave secreta. Há uma desvantagem com os algoritmos de bloco, que é, vamos supor que vamos criptografar os dados do fluxo de rede, esses dados são retidos pelo sistema de criptografia em seus componentes de memória. Essa retenção de dados é feita quando o sistema realmente espera por blocos completos de dados. Esse tempo de espera pode levar a uma lacuna de segurança que pode comprometer a segurança e a integridade dos dados. Para evitar essa ameaça, podemos reduzir o bloco e mesclar os dados com o bloco de dados criptografado anteriormente até que outros blocos sejam recebidos. Em termos simples, essa técnica é chamada de feedback. Este algoritmo criptografará apenas se o bloco completo for recebido.

Algoritmos de Fluxo

Algoritmos In-Stream, os dados são criptografados byte a byte e às vezes até bit a bit. No caso do algoritmo de fluxo, os dados não são retidos na memória pelo sistema, portanto, pode-se dizer que isso é muito mais seguro quando comparado ao algoritmo de bloco, pois os dados não são retidos no sistema sem criptografia.

Além disso, eles são vários tipos de algoritmos de criptografia dentre os poucos listados abaixo

  • DES e DES triplo
  • RC2
  • Blowfish

DES e DES triplo

DES significa um padrão de criptografia de dados que recebe um texto sem formatação de 64 bits e criptografa em um texto cifrado de 64 bits e descriptografa novamente com a ajuda de uma chave de 56 bits. No DES, o processo de criptografia começa com um estágio inicial de permutação, onde ele recebe a entrada como dados de 64 bits e os permuta de maneira predefinida. Seguida pela permutação inicial, são 16 rodadas de cifra Feistel (uma cifra Feistel pega a entrada e a divide em duas partes e faz a criptografia em apenas uma parte), onde cada rodada usa uma chave de cifra de 48 bits diferente. Para fins de criptografia e descriptografia, ele usa uma cifra e inverte o algoritmo de cifra. Por fim, os dados passam pelo estágio final de permutação para recuperar o texto cifrado. Semelhante ao DES O DES triplo nada mais é do que a cifra DES repetida 3 vezes. A Fig2.a mostra a arquitetura genérica do algoritmo DES.

Arquitetura genérica do algoritmo DES

RC2

Este é um algoritmo de cifra de bloco em que, inicialmente, os dados são divididos em um tamanho de bloco de 8 bytes e esses blocos são processados ​​separadamente. Esse algoritmo foi amplamente utilizado nos anos 90. A cifra Rc2 usa uma chave de usuário secreta cujo tamanho pode variar de um byte a 128 bytes. Ele pega essa chave secreta do usuário e usa um algoritmo de expansão de chave e criptografa os dados. Esse algoritmo é projetado de tal maneira que pode ser facilmente implementado em microprocessadores de 16 bits. Aqui não há rodadas Feistel; os dados passam por 18 rodadas de mistura e trituração. A Fig2.b mostra a arquitetura genérica do algoritmo RC2.

Arquitetura genérica do algoritmo RC2

Blowfish

Este é um algoritmo assimétrico que substitui o DES. Aqui, o tamanho do bloco usado é de 64 bits e os tamanhos das chaves variam de 32 a 448 bits. A criptografia usando blowfish consiste principalmente em dois estágios

  • Função redonda
  • Operação de saída

A função round executa os seguintes passos

  1. Clareamento de teclas, onde a parte esquerda dos dados de entrada é obtida e uma operação OR exclusiva é executada nela.
  2. Na segunda etapa, ele usa caixas S, essas caixas S mapeiam dados de 8 bits para 32 bits e a saída é combinada com uma combinação de operações de adição e XOR
  3. Os dois passos acima combinados são chamados de função F. Com a saída da função F e o lado direito dos dados de entrada, a operação XOR é realizada.
  4. A etapa final envolve a troca da saída.

A função de saída reverte a troca final e realiza o clareamento da saída. A saída desta função é um texto cifrado de blowfish. A descriptografia com blowfish envolve o uso da mesma estrutura da criptografia, uma vez que usa uma cifra Feistel, mas as chaves redondas devem ser usadas na ordem inversa. A principal vantagem desse algoritmo é que ele está disponível em domínio público para ser facilmente acessível. As desvantagens são basicamente um pouco demoradas na geração das chaves e, se o tamanho do bloco é pequeno, é vulnerável a ataques.

Aplicações de Algoritmos Simétricos

Alguns dos locais onde o algoritmo de criptografia simétrica é usado são

  • As transações com cartão são usadas para evitar roubos de identidade e transações fraudulentas.
  • Para confirmar a identidade do mensageiro.
  • Hashing e geração de números aleatórios
  • Criptografia de banco de dados

Conclusão - Algoritmos simétricos

Os algoritmos simétricos são muito mais rápidos e eficientes quando comparados aos algoritmos assimétricos. Esse é mais um motivo pelo qual eles são usados ​​na criptografia em massa. Mas sua desvantagem é que o gerenciamento de chaves é muito exaustivo; portanto, a manutenção em larga escala é uma tarefa tediosa, na qual precisamos ter segurança de alto nível. Para conseguir isso, precisamos manter o ciclo de vida da chave gerada usando o sistema separado . Portanto, sempre devemos usar a criptografia adequada para evitar ataques a nossos dados.

Artigos recomendados

Este é um guia para algoritmos simétricos. Aqui discutimos a introdução e os tipos de algoritmos simétricos, juntamente com o DES e o DES triplo. Você também pode consultar nossos outros artigos sugeridos para saber mais:

  1. O que é o WebSocket?
  2. Segurança de aplicativos da Web
  3. Carreira em Desenvolvimento Web
  4. Carreiras em Web Designing
  5. Modos de operação de Cifra em Bloco
  6. Exemplos de algoritmo C ++