Entre todos os métodos de cifragem de informações, a criptografia simétrica é um dos mais antigos. Ela tem esse nome porque tanto quem manda a mensagem como quem recebe têm a mesma chave privada.
E já que é rápida, segura e eficiente, a criptografia simétrica é um padrão de criptografia de dados e costuma ser usada na hora de encriptar volumes massivos de informação. Por um lado, isso torna os processos mais simples, por outro, acaba criando algumas limitações.
No artigo de hoje, vamos mergulhar no mundo da criptografia simétrica, seus diferentes tipos e principais diferenças em relação à criptografia assimétrica.
Contenidos
Como funciona a criptografia simétrica?
Back to the basics: o que é criptografia? Em termos simples, criptografar algo é transformar uma informação com um formato legível em uma saída incompreensível, melhor dizendo, uma saída criptografada.
O objetivo dessa técnica é proteger informações e comunicações usando códigos. Quando alguém cria uma mensagem criptografada, ninguém mais deveria entendê-la, a não ser o emissor ou a pessoa que vai ser capaz de ler nas entrelinhas do código.
✏️ Resumindo: uma mensagem encriptada permite que duas ou mais partes se comuniquem por qualquer meio público e aberto sem comprometer a integridade de seu conteúdo.
Voltando à criptografia de chave simétrica, nessa modalidade de encriptação, existe somente uma chave que pode ser usada para codificar as mensagens.
Se João quer mandar uma mensagem criptografada pra Maria, os dois precisam ter compartilhado a chave da encriptação entre si, previamente. Se as pessoas certas sabem como ‘abrir’ a mensagem, podem trocar comunicações tranquilamente.
Ou seja, João cifra uma mensagem usando uma chave criptográfica e manda, pelo canal que queira, pra Maria. Quando a mensagem chegar, ela usa a chave e a mensagem pode ser lida. Cool, não?
Etapas da comunicação criptografada
Vejamos como isso acontece, passo a passo? Se liga:
#1 Maria manda uma chave para João por algum canal privado.
#02 Maria escreve “Olá, João!”. Encripta com a chave → gera um código e envia.
#03 João recebe a mensagem. Decripta usando a chave no código → “Olá, João!”
Super simples, certo? A única vulnerabilidade da criptografia simétrica é o uso de somente uma chave entre todos os envolvidos.
Por que isso é uma fraqueza? Porque demanda que ambos tenham um canal privado para compartilharem a chave, antes que as mensagens comecem a ser enviadas.
Ou seja, João e Maria precisam se comunicar antes para entrar em acordo sobre qual será a chave usada na encriptação das mensagens.
Se alguém interceptar as mensagens tiver acesso a essa chave, todo esse sistema deixa de ser seguro. A questão é que João e Maria estão usando criptografia exatamente por não terem uma forma privada de comunicação.
Mesmo assim, há várias formas de trabalhar com criptografia simétrica. Na sequência, a gente mostra os principais tipos de algoritmos de chave simétrica.
Tipos de criptografia simétrica
Block Cipher
Os algoritmos do sistema block cipher cifram as informações em grupos ou blocos. Ou seja, durante o processo de codificação, a mensagem original é dividida em partes iguais e cada uma delas é encriptada com uma chave por bloco de forma separada. Depois, o processo junta tudo e manda pro receptor.
Na prática, funciona assim:
Mensagem:
wen juice airdrop
Mensagem em código binário:
0111011101100110111000100000011010101110100110100011000110110010100100000010000101101001011100100110010001110010011011110111000000001010
Mensagem separada em blocos:
0111011101100110111000100000011010101110100110100011000110110010100100000010000101101001011100100110010001110010011011110111000000001010
Encriptação de cada bloco:
0111 + chave → código 1
0111 + chave → código 2
0110 + chave → código 3
(…)
Códigos enviados:
Código 1 + código 2 + código 3 + … → mensagem encriptada
Stream Cipher
No algoritmo stream cipher, as informações não são separadas em blocos e sim por bits, de um em um.
Além disso, esse sistema usa um nonce, ou seja, um número único escolhido aleatoriamente. Dessa forma, cada bit é combinado com o nonce e com a chave na hora de criar o código encriptado. O processo é mais ou menos assim:
Mensagem:
lemmy
Mensagem em código binário:
01101100 01100101 01101101 01101101 01111001
Mensagem dividia em bits:
0110110001100101011011010110110101111001
Cada bit é encriptado e recebe um nonce:
0 + chave + nonce → código 1
1 + chave + nonce → código 2
1 + chave + nonce → código 3
(…)
Códigos enviados:
Código 1 + código 2 + código 3 + … → mensagem encriptada
Diferenças entre criptografia simétrica e criptografia assimétrica
A criptografia assimétrica é fundamental para as blockchains e soluciona a principal vulnerabilidade da criptografia de chave simétrica que mencionamos mais acima.
Como o próprio nome indica, a criptografia assimétrica se chama assim porque os envolvidos usam chaves diferentes para codificar e decodificar as mensagens.
No padrão de criptografia avançada da assimétrica, o processo começa com a criação de uma chave privada aleatória, que gera uma chave pública relacionada. What?
Detalhamos: quando Maria for mandar uma mensagem para João, ela vai escrever o conteúdo e encriptar com sua chave pública. E a única forma de decifrar a mensagem é usando a chave privada de João.
Quer ver um exemplo?
Maria e João compartilham suas chaves públicas entre si por qualquer canal (não é preciso que o meio de comunicação seja privado).
#01 Maria escreve “Olá, João!” + chave pública de João → código cifrado.
#02 João usa sua chave privada + código → “Olá, João!”
Percebe a diferença? Ao invés de que qualquer pessoa possa ter acesso ao conteúdo da mensagem, caso tenha a chave de encriptação (no caso da simétrica), neste caso, só quem pode decodificar a mensagem é o João.
Para dar uma resumida, confira as principais diferenças entre a criptografia simétrica e a assimétrica:
Criptografia Simétrica | Criptografia Assimétrica |
É usada há milhares de anos | Foi inventada em 1976 |
É rápida | É lenta |
Usa somente uma chave | Usa uma chave privada e uma chave pública por por participante |
Precisa de um canal de comunicação seguro para compartilhar a chave | Não precisa de canais de comunicação seguros |
Pode ser usada para encriptar grandes volumes de dados | Costuma ser usada para a troca de chaves ou de assinaturas digitais |
Criptografia simétrica + criptografia assimétrica
Que tal se a gente combinar as vantagens desses dois tipos de criptografia? Existe um método que combina os benefícios da criptografia simétrica e assimétrica e que é muito usado para manter comunicações privadas, seguras e rápidas.
Como funciona? Em primeiro lugar, a criptografia assimétrica é usada na hora de compartilhar a chave da criptografia simétrica. Em segundo, quando ambas as partes têm a chave, podem continuar usando o método mais simples.
Veja um exemplo:
#01 Maria e João compartilham suas chaves públicas entre si, por qualquer canal de comunicação.
#02 Maria usa sua chave (criada por ela) + chave pública de João → código.
#03 João pega o código + chave privada de Maria → chave criada por Maria = mensagem original.
Ou seja: os dois participantes da comunicação compartilham uma chave de criptografia simétrica sem usar um canal privado. Em outras palavras: problema resolvido, já que, quando os dois têm a chave, podem se comunicar de forma rápida, segura e eficiente usando a criptografia simétrica.
A criptografia é uma técnica essencial para o mundo das blockchains e, especialmente a assimétrica, é fundamental para o desenvolvimento do conceito de contratos inteligentes.
Em 2008, Satoshi Nakamoto criou todo o conceito de engenharia operacional das redes de blocos. Para isso, a criptografia ajudou a arquitetura programática dos smart contracts ajudou unir duas ciências: a computação e a social. Tudo para usar as melhores ferramentas na nova era das finanças descentralizadas.