Quantum Key Distribution (QKD)
Você já ouviu falar de Distribuição de Chaves Quânticas (QKD)?
À medida que a tecnologia avança o mundo se torna cada vez mais digital, manter a segurança na transferência de dados se tornou uma obrigatoriedade. Para se comunicar com segurança é necessário criptografar a mensagem de maneira que apenas quem está enviando e recebendo entendam mensagem. A criptografia evoluiu com o passar dos anos e continua evoluindo, já que suas técnicas se tornam obsoletas muito rapidamente, devido a uma constante busca por brechas.
O grande desafio na criptografia não é encriptar os dados em si, mas compartilhar, de maneira segura, a chave para descriptografar a mensagem entre as pessoas que estão se comunicando. Esse compartilhamento se chama distribuição de chaves. Atualmente, a abordagem mais comum entre criptologistas é criar protocolos de criptografia baseados na dificuldade de resolver cálculos matemáticos. Entretanto, esse método é vulnerável ao aumento do poder computacional e/ou a novos algoritmos, tornando-o eventualmente quebrável. É vulnerável também à computação quântica, que vem se fortalecendo muito nos últimos anos.
Criptografia Pós-quântica
O NIST tem estudado os protocolos existentes e identificado possíveis ameaças da computação quântica a protocolos como RSA (via algoritmo de Shor) e AES (via algoritmo de Grover — ameaçado dependendo do tamanho da chave).
Em 2016 o NIST lançou uma competição para encontrar novos protocolos de criptografia chamados de Quantum Resistent que se baseiam em problemas complexos demais para serem resolvidos tanto por computadores clássicos como quânticos e provavelmente irão compor os novos protocolos de comunicação segura. Recentemente o NIST concluiu a terceira rodada do processo de padronização da Criptografia Pós-Quântica (PQC), que seleciona algoritmos criptográficos de chave pública para proteger as informações através do advento dos computadores quânticos. Um total de quatro algoritmos candidatos foram selecionados para padronização e quatro algoritmos adicionais continuarão na quarta rodada (ver mais detalhes aqui).
Criptografia Quântica
Criptografia é o processo de criptografar e proteger os dados tal que somente as pessoas que têm a chave secreta correta consigam descriptografar os dados e ter a acesso à mensagem. A criptografia quântica usa as propriedades naturais da Mecânica Quântica para transmitir dados de maneira segura de tal forma que não possa ser hackeado.
Distribuição de chaves
A comunicação segura consiste na habilidade de criptografar a mensagem que se deseja enviar de uma maneira que somente o receptor e o remetente possam descriptografá-la, mas que seja impossível para algum espião descobri-la. Uma maneira de conseguir fazer isso é por meio do compartilhamento de chaves secretas que são utilizadas para criptografar e descriptografar a mensagem. O grande problema consiste em compartilhar a chave de maneira segura de forma que apenas o remetente e o receptor tenham acesso à chave. O QKD utiliza os princípios da Mecânica Quântica para garantir o compartilhamento seguro da chave secreta e assim criptografar e descriptografar a mensagem.
Para tornar nosso exemplo um pouco mais claro, suponha que tenhamos duas pessoas querendo se comunicar: Alice e Bob.
- Alice envia a mensagem (transmissor)
- Bob recebe a mensagem (receptor)
A segurança é geralmente é feita com o uso de uma chave, a qual é conhecida somente pelo transmissor e receptor da mensagem.
Se a chave pode ser distribuída com segurança entre o trasmissor e o receptor, a mensagem criptografada pode ser enviada com segurança por meio de um canal público de comunicação. Sem a chave, a probabilidade de descriptografar com êxito a mensagem é praticamente zero.
Em geral, a chave é somente um bitstring — sequência de 0s e 1s, e somente é conhecida por Alice e Bob, as duas partes que estão se comunicando.
Portanto, o problema da comunicação segura consiste em garantir segurança na distribuição da chave.
Quantum Key Distribution usa as leis da mecânica quântica para garantir a segurança na distribuição das chaves utilizando um canal quântico de comunicação.
Normalmente, as informações são codificadas em fótons únicos, conforme mostrado na figura acima. Alice pode escolher codificá-los em uma “sequência de bits” usando um dos dois estados, como polarização vertical (V) ou horizontal (H), e ela também pode escolher codificar em dois estados diferentes; aqui, duas combinações desses estados rotulados +45° e -45°.
Bob então escolhe medir em um dos dois, o que chamamos de bases — ou ele mede H,V, ou ele mede +45°, -45°. Se ele medir em uma base diferente daquela que Alice usou para preparar, então sua resposta será aleatória e descartada, mas se eles escolherem a mesma, terão resultados perfeitamente correlacionados; Alice envia H e Bob detecta H, e estes são mantidos. Esta última etapa exige que Alice e Bob se comuniquem sobre qual base foi usada, mas não revela nenhuma informação sobre o resultado, que agora se torna a chave secreta.
É importante observar que a criptografia quântica só será utilizada para produzir e distribuir as chaves, não para transmitir a mensagem. A chave gerada poderá ser utilizada com qualquer algoritmo de criptografia escolhido. O algoritmo mais comumente associado com a criptografia quântica é o one-time pad, pois ele tem comprovadamente uma segurança perfeita [1] quando usado com uma chave aleatória do mesmo tamanho que a mensagem [2][3].
A beleza que a física quântica traz para essa solução é que, se um espião ou um hacker tentar interceptar a geração da chave, eles introduzirão erros e se revelarão. É importante ressaltar que isso acontece antes que qualquer informação seja codificada ou comunicada!
- Ver mais em: Provably Secure
- C.E. Shannon, A Mathematical Theory of Communication, Bell System Technical Journal, July (1948) p.379; October (1948) p.623.
- C.E. Shannon, Communication Theory of Secrecy Systems, Bell System Technical Journal, vol.28–4, (1949) pp.656–715.
Protocolo BB84
O protocolo BB84 foi criado por Charles Bennett e Gilles Brassard em 1984. Esse foi o primeiro protocolo de QKD e se baseia nos postulados da Mecânica Quântica para garantir segurança nos protocolos de distribuição de chave.
O protocolo se baseia na possibilidade de enviar estados quânticos via um canal quântico de comunicação para gerar a chave secreta que será compartilhada entre as partes que estão comunicando.
Protocolo BB84 step by step:
- Alice pode enviar um dos quatro estados abaixo:
Os estados |0> e |+> estão associados ao bit 0 e os estados |1> e | — > estão associados ao bit 1. A sequência de estados é aleatória e cada dupla de estados está associado a uma base de preparação, como descrito abaixo.
Cada um dos estados acima está associado a uma base de medição ou preparação como mostrado na imagem abaixo:
2. Aleatoriamente Alice escolhe as bases de preparação dos estados. Uma maneira de fazer isso pode ser utilizando a algoritmo abaixo:
3. Alice envia os estados quânticos para Bob usando um canal quântico de comunicação.
4. Bob aleatoriamente escolhe a base para medir os estados que a Alice enviou.
5. Ao final do protocolo Alice e Bob anunciam suas bases de medição e ficam apenas com a sequência de bits em que as bases escolhidas foram as mesmas.
Bem, espero que tenham gostado do conteúdo e na próxima postagem estarei mostrando como simular a distribuição de chaves quânticas usando o Qiskit.
Até mais!!!