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.