A Internet: Criptografia e chaves públicas
Olá!
O meu nome é Mia Gil-Epner,
estudo Informática na UC Berkeley e
trabalho para o Departamento de Defesa,
onde tento manter a informação segura.
A internet é um sistema aberto e público.
Todos nós enviamos e recebemos informações
através de fios e ligações partilhadas.
Mas apesar de ser um sistema aberto,
ainda trocamos muitos dados privados.
Coisas como números de cartões de crédito,
informações bancárias, senhas, e e-mails.
Então… como é que todas estas
coisas privadas são mantidas em segredo?
Dados de qualquer tipo podem ser mantidos
em segredo através de um processo chamado encriptação,
misturando ou alterando a mensagem
para esconder o texto original.
Agora, a decifragem é o processo de desencriptação
dessa mensagem para a tornar legível.
Esta é uma ideia simples, e as pessoas
têm vindo a fazê-lo há séculos.
Um dos primeiros métodos de encriptação
mais conhecidos foi a Cifra de César,
cujo nome é uma homenagem a Júlio César,
um general romano que encriptou
os seus comandos militares para garantir que
se uma mensagem fosse interceptada por inimigos,
eles não seriam capazes de a ler.
A Cifra de César é um algoritmo que substitui
cada letra da mensagem original por uma letra
um certo número de posições
atrás no alfabeto.
Se esse número só for conhecido pelo remetente
e pelo destinatário, então é chamado de "chave".
Isto permite ao leitor desbloquear a mensagem secreta.
. Por exemplo, se o seu original
Por exemplo, se a mensagem original
for "HELLO",
utilizando então o algoritmo da Cifra de César
com uma chave de 5, a mensagem encriptada
a mensagem encriptada seria esta…
Para decifrar a mensagem, o destinatário usaria
simplesmente a chave para inverter o processo.
No entanto, a Cifra de César tem um grande
defeito.
Qualquer pessoa pode decifrar ou
descobrir a mensagem encriptada,
ao tentar com todas as chaves possíveis,
e, no alfabeto latino,
existem apenas 26 letras
o que significa que seriam precisas só
26 tentativas para desencriptar a mensagem.
Experimentar 26 chaves não seria muito difícil.
Levaria, no máximo, uma hora ou duas.
Então, vamos tornar isto mais difícil.
Em vez de alterar cada letra no mesmo número,
vamos mudar cada letra num número diferente.
Neste exemplo, uma chave de dez dígitos mostra quantas
posições de cada letra sucessiva será alterada
para encriptar uma mensagem mais longa.
Adivinhar isto seria realmente difícil.
Utilizando a encriptação de 10 dígitos,
existiriam 10 mil milhões de chaves possíveis.
Obviamente, isto é muito mais do que qualquer humano
poderia resolver — levaria muitos séculos.
Mas, hoje, um computador mediano
demoraria apenas alguns segundos
a experimentar todas as
10 mil milhões de chaves possíveis.
Num mundo moderno em que os maus da fita estão
armados com computadores em vez de com lápis,
como podemos encriptar as mensagens de forma
tão segura que as torne demasiado difíceis de decifrar?
Demasiado difícil, neste caso, significa
que existem demasiadas possibilidades
a considerar num
período razoável de tempo.
Hoje, as comunicações são encriptadas
usando chaves de 256 bits.
Isso significa que o computador
de um mau da fita,
que intercepte a tua mensagem,
teria de tentar muitas destas opções possíveis...
até descobrir a chave
e decifrar a mensagem.
Mesmo que tivesses 100.000 super computadores
e cada um deles conseguisse testar
um milhão de biliões de chaves a cada segundo,
seriam necessários triliões de triliões de anos
para testar todas as opções, apenas para decifrar
uma única mensagem protegida com encriptação de 256 bit.
É claro que os chips de computador têm o
dobro da velocidade e metade do tamanho a cada ano.
Se o progresso continuar a este ritmo exponencial,
os problemas impossíveis de hoje serão resolvidos
em poucas centenas de anos no futuro,
e 256 bits não serão suficientes para dar segurança.
Na verdade, já tivemos de aumentar o tamanho padrão
da chave para acompanhar a velocidade dos computadores.
A boa notícia é que usar uma chave mais longa não
torna a encriptação de mensagens muito mais difícil,
mas aumenta exponencialmente o número de
palpites necessários para decifrar uma cifra.
Quando remetente e destinatário partilham a mesma
chave para codificar e descodificar uma mensagem,
chamamos a isso "encriptação simétrica".
Com a Encriptação Simétrica, como a da Cifra de César,
a chave secreta tem de ser previamente acordada
por duas pessoas em privado.
Isso é óptimo para as pessoas,
mas a Internet é aberta e pública,
pelo que é impossível dois computadores "encontrarem-se"
em privado para fixarem uma chave secreta.
Em vez disso, os computadores usam
chaves de encriptação assimétrica,
uma chave pública que pode ser trocada com
toda a gente, e uma privada, não partilhada.
A chave pública é utilizada para encriptar dados,
sendo que qualquer pessoa pode usá-la
para criar uma mensagem secreta.
Mas o segredo só pode ser decifrado por
um computador com acesso à chave privada.
Isto funciona com alguma matemática,
que não vamos explorar agora.
Pensa nisto: imagina que tens
uma caixa de correio pessoal,
onde qualquer um pode deixar correio,
mas precisa de uma chave para o fazer.
Podes fazer várias cópias da chave
de depósito, enviando uma ao teu amigo
ou até partilhá-la num local público.
O teu amigo, ou um estranho, pode usar a chave
para aceder à tua caixa de depósito e deixar uma mensagem
mas só tu podes abrir a caixa, com a tua chave privada,
tirar todas as mensagens secretas que recebeste.
E tu podes enviar uma mensagem secreta ao teu amigo,
usando a chave pública para a depositar na caixa dele.
Desta forma, as pessoas podem trocar mensagens
seguras, sem precisarem de acordar numa chave privada.
A criptografia de chaves públicas é a base
de todas as mensagens seguras na internet aberta,
incluindo os Protocolos de Segurança
conhecidos como SSL e TLS,
que nos protegem quando
estamos a navegar na web.
O teu computador usa-os, hoje em dia.
Sempre que vires um pequeno cadeado ou as
letras 'https' na barra de endereços do teu navegador,
isso significa que o teu computador
está a utilizar a encriptação de chave pública
para trocar dados de forma segura
com a página web que estás a visitar.
À medida que mais e mais pessoas entram na internet,
mais e mais dados privados serão transmitidos,
e a necessidade de manter esses dados
seguros será ainda mais importante.
E, à medida que os computadores se tornam mais rápidos
teremos que desenvolver novas formas de encriptação
demasiado difíceis de decifrar pelos computadores.
Isto é o que faço no meu trabalho,
e as coisas estão sempre a mudar.