O que é criptografia simétrica e quais seus usos?

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. 

imagem com chave e digital de uma criptografia simétrica

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 anosFoi inventada em 1976
É rápidaÉ lenta
Usa somente uma chaveUsa uma chave privada e uma chave pública por por participante
Precisa de um canal de comunicação seguro para compartilhar a chaveNão precisa de canais de comunicação seguros
Pode ser usada para encriptar grandes volumes de dadosCostuma 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.