Criptografia Simétrica: Desvendando Algoritmos e Processos

Criptografia Simétrica: Desvendando Algoritmos e Processos Ilustração de Criptografia Simétrica

Até agora, temos falado de forma geral sobre sistemas criptográficos e focado principalmente em conceitos de criptografia, mas não em descriptografia. Faz sentido que, quando você envie uma mensagem protegida para alguém, você queira que seu destinatário consiga decodificar a mensagem e lê-la, e talvez até responda com outra mensagem codificada. Então, vamos verificar a primeira grande categoria de algoritmos de criptografia e aprender mais detalhes sobre como isso funciona, seus prós e seus contras.

Quando falamos do princípio de Kerchhoff anteriormente, você se lembra de qual componente da cifra é crucial para manter o sigilo? É isso mesmo. A chave deve ser mantida em privacidade para garantir que algum interceptador não consiga decodificar as mensagens criptografadas. Neste cenário, estamos pressupondo que o algoritmo usado é aquele que chamamos de algoritmo de chave simétrica. Esses tipos de algoritmos de criptografia são chamados de simétricos porque usam a mesma chave para criptografar e descriptografar as mensagens. Vamos dar um exemplo simples de algoritmo de criptografia de chave simétrica para explicar todo o processo de criptografia e descriptografia de uma mensagem.

A cifra de substituição é um mecanismo de criptografia que substitui partes de seu texto simples por texto cifrado. Lembra-se do nosso exemplo "Hello World"? Trata-se de um exemplo de cifra de substituição já que estamos substituindo alguns caracteres por outros. Neste caso, a chave seria o mapeamento de caracteres entre o texto simples e o texto cifrado. Sem saber com o que se se substituem as letras, não dá para decodificar facilmente o texto cifrado e recuperar o texto simples. Se você tiver a chave ou a tabela de substituição, dá para reverter o processo e descriptografar a mensagem codificada fazendo a operação inversa.

Um exemplo famoso de cifra de substituição é a cifra de César, que é um alfabeto de substituição. Neste caso, você substitui caracteres do alfabeto por outros, mudando ou girando o alfabeto, ou um conjunto de números e caracteres. O número da diferença é a chave. Outro exemplo comum é conhecido como ROT 13 ou ROT-13, onde o alfabeto é girado em 13 posições, mas o ROT-13 nada mais é que a cifra de César com uma chave de 13. Vamos voltar ao nosso exemplo "Hello World" e ver detalhes da codificação com a cifra ROT-13. Nossos textos cifrados seriam URYYB JBEYQ. Para reverter esse processo e voltar para o texto simples, basta realizar a operação inversa e procurar os caracteres no outro sentido da tabela de mapeamento. É legal notar algo sobre a tabela de mapeamento do ROT-13: estamos deslocando o alfabeto em 13 caracteres. 13 é exatamente a metade do alfabeto. Isso significa que a cifra do ROT-13 é o inverso de si mesma. Ou seja, você pode recuperar o texto simples a partir do texto cifrado executando o próprio ROT-13. Se escolhêssemos uma chave diferente, digamos "8", daria para fazer a mesma coisa? Vamos verificar. Aqui está a tabela de mapeamento para o deslocamento de oito caracteres, que nos dá o texto cifrado "OLSSV DVYSK". Se rodarmos a cifra mais uma vez, obtemos o seguinte resultado: "VSZZC KCFZR". Não funciona para reverter o processo de criptografia, não é?

Existem mais duas categorias em que podemos usar as cifras de chave simétricas. São as cifras de bloco ou cifras de fluxo. A diferença está no modo como as cifras operam no texto simples para serem criptografadas. Uma cifra de fluxo, como o nome indica, pega um fluxo de informações e criptografa esse fluxo usando um caractere ou um dígito por vez, resultando em um caractere ou dígito criptografado por vez. Portanto, há uma relação de um para um entre os dados originais e os dados criptografados. A outra categoria de cifras simétricas é a cifra de bloco. A cifra coleta os dados, coloca-os em um bloco de dados de tamanho fixo e codifica todo esse bloco enquanto unidade. Se os dados a serem criptografados forem menores que o bloco, o espaço adicional será preenchido para que o texto simples se encaixe nos blocos uniformemente.

Agora, em linhas gerais, as cifras de fluxo são mais rápidas e menos complexas de implementar, mas podem ser menos seguras que as cifras de bloco. Se a geração e manipulação das chaves não for feita corretamente, se a mesma chave for usada para criptografar dados duas ou mais vezes, é possível quebrar a cifra e recuperar o texto simples. Para evitar a reutilização de chaves, usa-se o vetor de inicialização, ou VI. Trata-se de dados aleatórios que são integrados à chave de criptografia e o resultado passa a ser usado para criptografar os dados. A ideia por trás disso é que se você tiver uma chave mestra compartilhada e gerar uma chave de criptografia única, essa chave de criptografia é usada apenas uma vez criando-se uma nova chave usando a mestra e o VI. Para que a mensagem criptografada seja decodificada, o VI deve ser enviado em texto simples juntamente com a mensagem criptografada. Um bom exemplo pode ser visto ao inspecionar o quadro 802.11 de um pacote sem fio criptografado por WEP. O VI é incluído no texto simples antes da carga de dados criptografados. No próximo vídeo, veremos mais detalhes da criptografia simétrica ilustrando alguns dos algoritmos mais comuns e falaremos dos prós e dos contras de usar a criptografia simétrica.

Postar um comentário

0 Comentários