Uma chave é um grupo de caracteres aleatórios em uma ordem específica. Os protocolos de criptografia usam uma chave para alterar os dados de forma que sejam embaralhados e que ninguém sem a chave possa decodificar as informações.
Após ler este artigo, você será capaz de:
Conteúdo relacionado
Assine o theNET, uma recapitulação mensal feita pela Cloudflare dos insights mais populares da internet.
Copiar o link do artigo
Na criptografia, uma chave é uma sequência de caracteres usada em um algoritmo de criptografia para alterar os dados de forma que pareçam aleatórios. Como uma chave física, ele bloqueia (criptografa) os dados para que apenas alguém com a chave certa possa desbloqueá-los (descriptografá-los).
Os dados originais são conhecidos como texto não criptografado e os dados após a chave criptografá-los são conhecidos como texto criptografado.
A fórmula:
plaintext
+ key
= ciphertext
Antes do advento dos computadores, o texto criptografado costumava ser criado simplesmente substituindo uma letra por outra no texto não criptografado, um método conhecido como "cifra de substituição". Por exemplo, suponha que alguém envie uma mensagem dizendo "Hello" para outra pessoa e cada letra seja substituída pela letra seguinte no alfabeto: "Hello" torna-se "Ifmmp"
H | e | L | L | O |
+1 | +1 | +1 | +1 | +1 |
I | F | M | M | P |
"Ifmmp" parece uma sequência de letras sem sentido, mas se alguém souber a chave, pode substituí-la pelas letras adequadas e descriptografar a mensagem como "Hello". Para este exemplo, a chave é (letra) - 1, movendo cada letra um ponto abaixo no alfabeto para chegar à letra real.
I | F | M | M | P |
-1 | -1 | -1 | -1 | -1 |
H | e | L | L | O |
Essas cifras são relativamente fáceis de quebrar com uma análise estatística simples, uma vez que certas letras aparecerão com mais frequência do que outras em qualquer texto (por exemplo, E é a letra mais comum no idioma inglês). Para combater isso, os criptógrafos desenvolveram um sistema chamado one-time pad (cifra de chave única).
O one-time pad é uma chave de uso único que tem pelo menos tantos valores quanto o texto simples tem caracteres. Em outras palavras, cada letra será substituída por uma letra que é um número exclusivo de letras removidas dela no alfabeto.
Por exemplo, suponha que alguém precise criptografar a mensagem "Hello" e essa pessoa use um teclado único com os valores 7, 17, 24, 9, 11.
H | e | L | L | O |
7 | 17 | 24 | 9 | 11 |
Enquanto antes simplesmente subíamos uma posição para cada letra (letra + 1), agora movemos um número diferente de lugares no alfabeto para cada letra. Adicionamos 7 à primeira letra, H; adicionamos 17 à segunda letra; e assim por diante. Para qualquer cálculo que nos leve além de Z, simplesmente voltamos ao início do alfabeto e continuamos adicionando.
H | e | L | L | O |
7 | 17 | 24 | 9 | 11 |
O | V | J | U | Z |
Partindo do texto simples "Hello", agora temos o texto cifrado "Ovjuz", usando a chave "7, 17, 24, 9, 11".
Para que a comunicação por meio de one-time pad funcione, os dois lados da conversa devem usar a mesma chave para cada mensagem individual (criptografia simétrica), embora uma chave diferente seja usada sempre que houver uma nova mensagem. Embora para terceiros "Ovjuz" pareça um absurdo aleatório, a pessoa que receber o texto cifrado "Ovjuz" saberá usar a chave "7, 17, 24, 9, 11" para decifrá-lo (subtraindo em vez de adicionar):
O | V | J | U | Z |
7 | 17 | 24 | 9 | 11 |
H | e | L | L | O |
Assim, uma mensagem simples pode ser alterada por uma sequência de dados aleatórios, uma chave, para ser criptografada ou descriptografada.
Embora os exemplos acima de criptografia inicial ilustrem como funciona o uso de uma sequência aleatória de informações para transformar texto simples em texto cifrado, as chaves criptográficas hoje são muito mais complexas.
Por exemplo, a chave pública de um site pode ser algo parecido com:
04 CE D7 61 49 49 FD 4B 35 8B 1B 86 BC A3 C5 BC D8 20 6E 31 17 2D 92 8A B7 34 F4 DB 11 70 4E 49 16 61 FC AE FA 7F BA 6F 0C 05 53 74 C6 79 7F 81 12 8A F7 E2 5E 6C F5 FA 10 69 6B 67 D9 D5 96 51 B0 (Copiado do certificado SSL da cloudflare.com)
Isso é muito mais complexo do que a chave "7 17 24 9 11" que usamos acima para criptografar "Hello".
Em vez de simplesmente adicionar ou subtrair, a criptografia moderna usa fórmulas matemáticas complexas conhecidas como algoritmos. E, em vez de uma simples sequência de números aleatórios para uma chave, as chaves modernas são normalmente ainda mais aleatórias.
Isso ocorre por vários motivos:
Combinada com um algoritmo de criptografia, uma chave criptográfica irá embaralhar um texto além do reconhecimento humano.
Existem dois tipos de criptografia: criptografia simétrica e criptografia assimétrica, também conhecida como criptografia de chave pública. Na criptografia simétrica, os dois lados de uma conversa usam a mesma chave para transformar texto não criptografado em texto criptografado e vice-versa.
Na criptografia assimétrica ou de chave pública, cada um dos dois lados da conversa usa uma chave diferente. Uma chave é chamada de chave pública e outra chave é chamada de chave privada – assim chamada porque uma das partes a mantém em segredo e nunca a compartilha com ninguém. Quando o texto não criptografado é criptografado com a chave pública, apenas a chave privada pode descriptografá-lo, não a chave pública.
SSL(ou TLS, como é chamado hoje), é um protocolo de criptografia usado para manter as comunicações da internet seguras e um site que é servido por HTTPS em vez disso de HTTP usa esse tipo de criptografia. Em TLS/SSL, um site ou aplicativo web terá uma chave pública e uma chave privada. A chave pública é compartilhada publicamente no certificado SSL do site para que todos possam ver. A chave privada é instalada no servidor de origem e nunca é compartilhada.
As sessões de comunicação TLS/SSL começam com um handshake TLS, durante o qual o site e o cliente usam a chave pública e a chave privada para gerar novas chaves, que são chamadas de chaves de sessão. Essas chaves de sessão são então usadas por ambos os lados para criptografar suas mensagens de um lado para outro.
Portanto, o TLS começa com a criptografia assimétrica (com duas chaves) e passa para a criptografia simétrica (com uma chave). Ambos os lados usam as mesmas chaves durante a sessão de comunicação, mas quando eles iniciam uma nova sessão, eles irão gerar novas chaves juntos.