Os impactos da computação quântica em cibersegurança


computação quântica


Conforme tem sido anunciado na mídia, o Google (assim como outras gigantes de Tecnologia) vem desenvolvendo e evoluindo com estudos em computação quântica, e recentemente anunciou ter atingido a supremacia quântica. De maneira geral, este termo é utilizado quando um computador consegue executar cálculos complexos em um tempo curto, como jamais um super computador tradicional conseguiria.

Segundo o Google, o seu computador quântico chamado Sycamore, conseguiu realizar operações complexas com um gerador de número aleatórios em apenas 200 segundos. Um computador tradicional levaria 10.000 anos para fazer a mesma operação.

Para entender porque isso é importante no universo de segurança da informação, vamos falar rapidamente de computação quântica.

Uma (muito) breve introdução sobre computação quântica

Computadores tradicionais como os que temos em casa, processam bits representados por 0 ou 1, sendo executados em grupos. Porém um bit só poder assumir um estado, sendo 0 ou 1.

Além disso, o aumento da capacidade de processamento dos processadores atuais se dá basicamente através de processos de paralelização (múltiplos processadores processando bits paralelamente) e pela velocidade de processamento, o que é popularmente chamado como "clock" do processador.

A computação quântica nos apresenta um conceito diferente, baseado na mecânica quântica, onde um bit pode assumir vários estados ao mesmo tempo, o que é chamado de sobreposição. Um bit quântico, o qubit, pode ser 0, 1 ou 0 e 1.

Como um qubit pode assumir vários estados ao mesmo tempo, a capacidade de computação cresce exponencialmente, assim como a capacidade de realizar cálculos paralelos, dado que não existe mais a "limitação" de bits terem apenas um único estado. Operações matemáticas probabilísticas tendem a ser executadas de maneira infinitamente mais rápida.

Equivalências entre bit e qubit

Sabendo-se que na computação quântica um bit poder ter valores sobrepostos, podemos dizer que 1 qubit pode ter dois estados simultâneos, sendo 0 e 1, ou seja, 1 qubit equivale a 2 bits.

Quando vamos para 2 qubits, temos 4 estados simultâneos descritos por 00 e 01 e 10 e 11. Neste caso, 2 qubits equivalem a 4 bits.

Parece pouco, mas quando olhamos exponencialmente, é possível perceber até onde podemos ir:

bit vs qubit

Impactos na criptografia

Primeiramente, precisamos esclarecer algo importante. A criptografia é o principal mecanismo de segurança, quando falamos em confidencialidade, integridade e autenticidade de dados. Na verdade, quando falamos em proteção de dados, estamos falando em aplicação de mecanismos de criptografia.

Quando sua comunicação é transmitida de maneira segura para um site, a criptografia dos dados em trânsito está sendo utilizada para prover confidencialidade, integridade e autenticidade para esta comunicação. Smartphones modernos usam criptografia de dados em repouso para proteger as informações armazenadas neles.

Apesar dos algorítimos de criptografia atuais serem considerados seguros desde que a chave usada na codificação seja forte, eles são suscetíveis à ataques de força bruta, que nada mais são que tentativas repetidas de tentar adivinhar a chave através de combinações.

Se fossemos usar combinações de 2 algarismo numéricos, um ataque de força bruta funcionaria da seguinte forma:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12......99

Ele faria uma série de combinações, uma a uma, até que conseguisse chegar na chave, e com isso teria acesso ao conteúdo criptografado. Computadores modernos conseguem quebrar com incrível facilidade esta sequência, e até mesmo tamanhos de caracteres bem maiores.

A criptografia moderna baseia-se no fato de que, com um tamanho de chave longo, e um bom algoritmo, o tempo necessário para quebrar a chave seria impraticável.

Falamos acima que um bit pode assumir apenas um estado por vez é uma limitação em termos computacionais, mas para criptografia acaba se tornando uma vantagem, visto que a limitação imposta pelo processamento sequencial (ainda que multiprocessado) de bits permite que chaves grandes, sejam incalculáveis dentro de um limite aceitável de tempo.

A capacidade da computação quântica em permitir que um qubit tenha múltiplos estados simultâneos, faz com que seja possível testar múltiplas possibilidades simultâneas, e em teoria ataques de força bruta poderiam acontecer em poucos segundos.

Uma breve introdução à criptografia

Para avaliar o impacto que a computação quântica pode causar através da possibilidade exponencial de cálculos probabilísticos sendo executados paralelamente, precisamos entender como a criptografia funciona.

O objetivo deste artigo não é falar sobre criptografia em detalhes, mas tentar abordar conceitualmente e de maneira simples o seu funcionamento, de modo a suportar o entendimento.

Basicamente existem dois tipos de criptografia. De chave simétrica e assimétrica. Ambas tem vantagens e desvantagens, e são utilizadas em situações diferentes, conforme falaremos a seguir.

Algorítimo de chave simétrica

Este algorítimo recebe este nome pois utiliza uma única chave. A chave usada para criptografar é a mesma que será usada para descriptografar. Quando um arquivo zip é criado com senha, o conceito de chame simétrica é utilizado, uma vez que a mesma senha que codifica o arquivo é o mesmo que decodifica.

Este tipo de algorítimo realiza uma operação booleana XOR, que somada à um requerimento não tão alto de tamanho de chave (o padrão atual é de 256 bits ao oposto dos 2048 bits assimétrico RSA) faz com que sua execução seja muito rápida. Como contra-partida, é necessária a proteção da chave, tanto quando armazenada, quanto quando enviada. Caso caia em mãos erradas, será possível ter acesso ao dado criptografado.

Este tipo de algoritmo é utilizado para criptografar grandes volumes de dados, dado que suas operações binárias são muito rápidas. O algoritmo recomendado atualmente para uso seguro é o AES256.
Um grande problema com este algorítimo é: como negociar uma chave simétrica (geralmente uma senha ou código), através de um meio não seguro? 
Vamos responder mais à frente.

Algorítimo de chave assimétrica

Ao contrário do algorítimo de chave simétrica, aqui são utilizadas duas chaves para cada ponto da comunicação: uma pública e uma privada.

Este algoritmo é baseado na matemática dos números primos, cuja operação de multiplicação entre eles é muito simples e rápida, mas difícil de ser revertida via fatoração, principalmente quando estamos falando de números primos realmente grandes, como 2048 bits (padrão mínimo recomendado atualmente), é uma tarefa difícil, ou impossível com computadores convencionais.

Cada ponta de comunicação do algorítimo possui uma chave pública e uma privada, e a maneira na qual vão ser usadas, irá depender do objetivo.

Porém um conceito importante que precisamos ter em mente é que, uma chave pública só pode ser aberta com sua respectiva chave privada, e vice-versa.

Para os exemplos abaixo, usaremos sempre comunicadores A e B, cada um com um par de chaves públicas e privadas. Suas chaves privadas estão protegidas, e suas chaves públicas estão disponíveis publicamente.

Confidencialidade

Quando o objetivo é criptografar a comunicação entre dois pontos utilizando criptografia de chave assimétrica:
  1. A solicita chave pública de B
  2. A criptografa o dado utilizando a chave pública de B
  3. O dado criptografado é enviado para B
  4. Como apenas B possui a chave privada, apenas ele é capaz de descriptografar o dado gerado com sua chave pública
  5. Para B se comunicar de volta com A, é seguido o processo inverso. 

Repare como é importante que a chave privada seja fortemente protegida.

A mágica deste algorítimo permite sua escalabilidade. Seu uso mais comum é no uso dos certificados digitais SSL/TLS em web sites, onde iremos falar mais adiante.

Integridade e autenticidade

Este tipo de algoritmo também é muito utilizado para garantir integridade de autenticidade na comunicação. Um caso conhecido é para autenticar remetentes de e-mail, e quando uma mensagem de e-mail for assinada, funcionará assim:
  1. O remetente gera um hash da mensagem a ser enviada, utilizando alguns parâmetros da mensagem como corpo, endereços e etc.
  2. O remetente criptografa o hash utilizando sua chave privada, gerando a assinatura digital.
  3. A mensagem é enviada com a assinatura.
  4. Quando o destinatário recebe a mensagem, ele consulta a chave pública do remente.
  5. Ele descriptografa a assinatura, utilizando a chave pública do remetente.
  6. Com o hash original em mãos, o destinatário gera um hash da mesma mensagem e os compara.
  7. Como somente  a chave pública do remetente pode descriptografar corretamente o hash gerado com a chave privada do mesmo, se os hashes forem iguais, pode se concluir que:

Integridade: A mensagem recebida é realmente a mensagem original, sem alterações.
Autenticidade: Quem realmente enviou foi o remetente.

Criptografia em sites web

Um uso muito comum na criptografia se dá com dados em trânsito entre browser e website, através de protocolos SSL e TLS. Neste caso, ambos algorítimos simétrico e assimétrico são utilizados, sendo chamados por vezes de híbridos.

Lembre que algoritmos simétricos são muito rápidos, porém possuem um processo manual de governança de chaves, o que os tornam inviáveis para uma arquitetura tão distribuída quanto a WWW, além da falta de um processo seguro de transmissão das chaves. Por outro lado, algorítimos assimétricos são escaláveis, permitem troca segura de chaves, porém são mais lentos.

PKI

Como garantir que a chave pública de um web site é realmente do web site? Esta parte do processo é feita através do que é chamado de PKI, que basicamente é fazer com que uma autoridade certificadora (CA) confiada pelos browsers, seja responsável por assinar a chave pública e gerar o certificado digital. Quando o browser exibe o "cadeado", ele basicamente está dizendo que o certificado digital foi realmente assinado para chave publica do domínio que está na barra.

Processo hibrido (SSL/TLS)

Acessos web via https utilizam o melhor dos dois mundos. Quando uma sessão é iniciada com o site, browser recebe o certificado digital (que como falamos, é a chave pública validada por uma CA) e estabelece o primeiro canal seguro. Mas como já sabemos, algorítimos de chave assimétrica são mais lentos, então uma vez estabelecido este canal seguro assimétrico, uma chave simétrica para esta sessão é gerada e negociada através deste canal. Com browser e site possuindo uma chave simétrica negociada, eles podem estabelecer uma canal através de um algorítimo simétrico, mais rápido.

Mas e a computação quântica?

Apesar desta introdução básica sobre criptografia, ela é importante para entendermos dois pontos fundamentais:
  • Um dos conceitos que os padrões criptográficos se apoiam hoje, é que os protocolos e tamanhos de chaves hoje, são grandes o suficientes para inviabilizar sua quebra até mesmo pelos super computadores atuais.
  • Os conceitos usados atualmente são amplamente utilizados no nosso dia a dia, tendo como exemplos mais comuns a segurança de transações web, e confidencialidade de informações armazenadas em dispositivos, além de alguns outros.
Basicamente, todo e qualquer mecanismo de proteção de dados, incluindo o próprio controle de acesso utiliza-se de criptografia, fazendo uso de mecanismos criptográficos para evitar intercepção de credenciais, por exemplo. Transações seguras online, comunicação privada, armazenamento de dados, e etc, que poderiam ser quebrados em pouquíssimo tempo.

Com a capacidade que computadores quânticos tem de executar cálculos com valores sobrepostos, um dos princípios da criptografia atual possivelmente será derrubado. As chaves podem vir não ser mais tão longas ao ponto que um computador não consiga fatorá-la.

Hoje em dia, os padrões estabelecidos como seguros são:
  1. AES256 para chaves simétricas
  2. RSA 2048 para chaves assimétricas

Precisamos nos preocupar (pelo menos por enquanto)?

O NIST já está atento e vem trabalhando em um processo chamado Post-Quantum Cryptography Standardization, onde 69 propostas já foram aprovadas na primeira fase, concorrendo para ser o novo algorítimo criptográfico à prova de computação quântica.

Apesar de computadores quânticos estarem longe de estarem disponíveis para uso comercial, a  possibilidade de um "ataque quântico" criptográfico já começa a gerar preocupação.

Somado a isso, existe o Algorítimo de Shor, que utiliza-se de mecânica quântica para potencializar através de suposições a velocidade de fatoração de números primos grandes.

Por enquanto computadores quânticos ainda são uma realizada muito distante, ainda sendo desenvolvidos e testados nos laboratórios das gigantes em tecnologia, e ainda não tão estáveis. E ainda existem os desafios físicos, como espaço e refrigeração.

Certamente levará um bom tempo para que eventualmente estejam disponíveis para uso comercial e disponíveis para consumidores. E até lá, provavelmente problemas como este terão sido solucionados.

Mas olhando para a imagem de capa deste artigo, quem diria que teríamos computadores infinitamente mais poderosos que os da imagem no bolso da calça?


Para saber mais

Wikipedia, Algoritmo de Shor
https://pt.wikipedia.org/wiki/Algoritmo_de_Shor

Breve introdução à computação quântica/Algoritmos quânticos
https://pt.wikibooks.org/wiki/Breve_introdu%C3%A7%C3%A3o_%C3%A0_computa%C3%A7%C3%A3o_qu%C3%A2ntica/Algoritmos_qu%C3%A2nticos

Criptografia quântica
https://pt.wikipedia.org/wiki/Criptografia_qu%C3%A2ntica

Comente

Postagem Anterior Próxima Postagem