TODO: trocar imagens por arquivos locais
A criptografia permeia nossas vidas digitais porque permite que as informações que recebemos e enviamos sejam confidenciais, ou seja, inacessíveis para pessoas não autorizadas. E isto é importante para nos proteger de golpes e ataques de pessoas má intencionadas e para garantir nosso direito à privacidade.
O processo de criptografar envolve a realização de várias operações matemáticas em uma mensagem não criptografada. O resultado é uma mensagem cifrada que só consegue ler quem tem a chave para decifrar (como uma senha).
É intuitivo pensar que, se quando ciframos a mensagem uma vez traz segurança, então cifrar duas ou mais vezes aumentará ainda mais a segurança, certo? Na verdade, não é bem assim. Esse artigo vai mostrar porque cifrar várias vezes não necessariamente traz mais segurança.

As matrioscas são bonecas russas constituídas de várias camadas de bonecas, uma dentro da outra.
1. O ataque Meet-in-the-Middle (MitM)
O DES (Data Encryption Standard) é uma cifra de bloco de chave simétrica, publicada em 1977 [1]. Em outras palavras, é um algoritmo que cifra uma mensagem em blocos de 64 bits (por isso é uma cifra de bloco) e utiliza uma única chave para criptografar e descriptografar (por isso é uma cifra de chave simétrica).
1.1 Ataque ao DES
O DES foi desenvolvido na IBM no começo da década de 1970 e publicado pela primeira vez em 1975. Em 1976, se tornou um padrão do governo dos EUA para criptografia de dados, porém sendo bastante criticado pelo fato da chave ser pequena (56 bits) [2] e pelo envolvimento da NSA (agência de segurança dos EUA) no desenvolvimento do algoritmo.
A chave pequena permitia que o ataque por força bruta fosse possível na prática, como argumentado por Diffie e Hellman em 1977 [3]. Além disso, outros fatos levaram ao fim do DES:
-
Em 1991, Biham e Shamir mostraram um ataque teórico ao DES chamado de criptoanálise diferencial [4].
-
Em 1994, Matsui implementou um ataque com a criptoanálise linear [5].
-
Em 1997, o projeto DESCHALL quebrou, pela primeira vez em público, uma mensagem cifrada com DES.
Depois disso, o DES começou a ser quebrado em cada vez menos tempo, mostrando sua insegurança.

NSA (Agência Nacional de Segurança dos EUA)
1.2 3DES
Em face da insegurança de uma chave tão pequena, em 1999, o governo dos EUA atualizou seu padrão de criptografia: o DES foi substituído pelo 3DES (ou DES Triplo), um esquema de criptografia que usa o DES três vezes (por isso o nome).
1.3 Como o 3DES funciona?
⚠ Atenção: esta seção contém conceitos teóricos e matemáticos. Caso queira uma leitura mais tranquila, sinta-se à vontade para pular esta seção.
- Criptografa a mensagem $M$ com a chave $K_1$
- Descriptografa o resultado de (1) com a chave $K_2$
- Criptografa o resultado de (2)
$$ \text{texto cifrado} = E_{K_3} ( D_{K_2} ( E_{K_1}(M) ) ) $$
Para decifrar a mensagem, fazemos o inverso:
- Descriptografa o texto cifrado $C$ com a chave $K_3$
- Criptografa o resultado de (1) com a chave $K_2$
- Descriptografa o resultado de (2) com a chave $K_1$
$$ \text{texto em claro} = D_{K_1} ( E_{K_2} ( D_{K_3}(M) ) ) $$
1.4 Mas e o 2DES?
As operações de criptografar e descriptografar do 3DES são, na verdade, três operações do DES simples. Em outras palavras, o 3DES significa usar o DES três vezes.
Assim, é intuitivo levantar a seguinte questão: se existe o DES e o 3DES, por que não existe o 2DES ou algo similar? A resposta é o ataque Meet-In-The-Middle.
1.5 Meet-in-the-Middle
O Meet-In-The-Middle (MITM) é um ataque que se aproveita de cifras que realizam mais de uma operação de criptografia em sequência (como o suposto 2DES e o 3DES) por meio do armazenamento dos resultados das operações intermediárias.
1.6 Como funciona o MITM?
⚠ Atenção: esta seção contém conceitos teóricos e matemáticos. Caso queira uma leitura mais tranquila, sinta-se à vontade para pular esta seção.
Primeiro, vamos definir o 2DES como sendo uma cifra que tem duas chaves DES ($K_1$ e $K_2$) e criptografa a mensagem duas vezes usando o DES. Em resumo, um DES duplo.
O MITM funciona da seguinte forma:
-
Você é o atacante e seu alvo usa o 2DES, ou seja, para criptografar algo, o seu alvo criptografa com a chave $K_1$ e depois criptografa de novo, mas com a chave $K_2$.
-
Você conhece um texto em claro $M$ e um texto cifrado $C$ e quer descobrir a chave $K = (K_1, K_2)$ que seu alvo usa, a fim de poder bisbilhotar as mensagens dele
-
Para todas as possíveis chaves $K_1$, você calcula $X = \text{Enc}(M)$ com $K_1$ (criptografa $M$ com a chave $K_1$)
-
Para todas as possíveis chaves $K_2$, você calcula $Y = \text{Dec}(C)$ com $K_2$ (descriptografa $C$ com a chave $K_2$)
-
O resultado são vários valores para $X$ e $Y$. Daí você compara todas as possibilidades de $X$ com $Y$. Se tiver algum $X = Y$, então você chegou na sua resposta.
1.7 2DES e o MITM
Como o 2DES e o 3DES usam o esquema de criptografar várias vezes em sequência, são suscetíveis ao ataque MITM [6]. A tabela abaixo mostra quantas operações são necessárias para quebrar a cifra usando os métodos de força bruta e o MITM.
| Cifra | Tamanho da Chave | Força Bruta | MITM |
|---|---|---|---|
| DES | 56 bits | $2^{56}$ | - |
| 2DES | 112 bits | $2^{112}$ | $2^{57}$ |
| 3DES | 168 bits | $2^{168}$ | $2^{112}$ |
O que se pode notar é que, apesar de ter uma chave maior e criptografar mais vezes, o 2DES não é muito mais seguro que o DES ($2^{56}$ operações de DES contra $2^{57}$ operações do 2DES).
Outro fato interessante é que o MITM reduz o número de operações para quebrar do 3DES (de $2^{168}$ para $2^{112}$), o que também torna o 3DES inseguro para os dias atuais.
Em suma, um esquema de criptografia usado várias vezes em sequência não torna o sistema muito mais seguro do que se fosse usado uma única vez graças ao ataque MITM.
2. Complexidade
Os sistemas criptográficos modernos, usados em lugares como bancos e infraestruturas críticas de vários países, são extremamente seguros quando implementados corretamente. Por exemplo, o AES-256 não possui nenhum ataque que permita a quebra da criptografia de forma prática.
Então, não há problemas, certo? Errado. A criptografia não consiste só em misturar os bits. O algoritmo precisa ser implementado via código, as chaves precisam ser geradas aleatoriamente e administradas etc. Se essas atividades auxiliares falharem, a segurança acaba.
De acordo com o OWASP Top 10, o segundo maior risco de aplicações web são falhas na criptografia [7], justamente por falhas nas atividades auxiliares e na implementação da criptografia.

OWASP Top 10
Criptografar mais de uma vez traz mais complexidade ao sistema, aumentando as chances de falhas na implementação da criptografia e na gestão das chaves, podendo comprometer dados sensíveis.
3. Aplicações da criptografia em cascata

“Cebolas têm camadas”
A ideia de criptografar várias vezes não é nova e é chamada de criptografia em cascata. Um exemplo da sua aplicação é o Azure da Microsoft que usa o TLS (criptografia na camada de transporte de redes) e outra criptografia na camada de enlace de dados [8].
A criptografia em cascata, apesar das já citadas desvantagens (como o ataque MITM e a complexidade), permite mitigar ameaças relacionadas com o comprometimento de uma das chaves usadas e caso um dos algoritmos venha a se tornar inseguro algum dia.
4. Conclusão
Usar a criptografia em cascata é uma decisão que depende das necessidades de segurança e nas restrições da situação. Em alguns casos, como já vimos, este método pode trazer riscos que não são compensados pelos seus benefícios.
Ao construir um sistema, é importante ponderar quais são os riscos e benefícios de cada decisão. E isto não se aplica somente à criptografia, mas a todos os requisitos de uma solução ou projeto.

Pondere suas decisões