Post-Quantum Blockchain (Parte 2)

Aranea Science
9 min readApr 10, 2021

--

Tombark, pixabay.

By Michael R. dos Santos

Essa é a continuação da nossa série sobre em que falamos sobre os prós e contras da vinda da computação quântica e o seu impacto em sistemas descentralizados como o Blockchain.

https://solifugae123.medium.com/post-quantum-blockchain-parte-1-bbdac576e50b

Na introdução passada, vimos como computadores quânticos no futuro, poderiam ser uma ameaça à internet atual como um todo e a própria Blockchain.

Podemos tirar como aprendizado, que única forma de proteger sistemas contra ataques quânticos no futuro: é a criação de sistemas quantum-safe.

Mas como fazer isso? Que elementos devemos utilizar dentro da blockchain na sua criptografia e no seu design para alinharmos ao novo modelo?

https://csrc.nist.gov/projects/post-quantum-cryptography

A NIST (National Institute of Standards and Technology) é uma instituição do Governo do Estados Unidos que busca desenvolver novas tecnologias do mais alto nível.

Ela sempre costuma fazer competições para o desenvolvimentos de novos algoritmos. Uma das pérolas da NIST foi a AES, foi um modelo criptográfico simétrico criado pelos belgas Rijmen and Joan Daemen(com apenas uma chave) chamado antes de Rijndael block cipher.

E foi o ganhadora de uma competição da NIST no fim dos anos 90, e o legal é que agora estamos no mesmo estágio — vinte anos depois — que busca agora modelos criptográficos para computação quântica.

Esses são propostas feitas por diversos grupos de pesquisa para a criação de algoritmos de Criptografia Pública quântica:

https://csrc.nist.gov/news/2019/pqc-standardization-process-2nd-round-candidates

É impossível falarmos de todos, escolhemos o SIKE — pela sua popularidade e buscamos entender a possibilidade de uma implementação em um sistema de Criptomoedas.

I. Sike (Supersingular isogeny key exchange)

O Sike usa um conjunto de mapas de curvas elípticas singulares como base do seu sistema que vai ser usado na distribução das chaves definidas como K.

Acima a função j(E) é o cálculo do J-invariant de uma curva elíptica é dado pela equação de Weirstrass mostrada acima, você deve lembrar desse conceito como uma parte fundamental do Sike.

Costello, Supersingular isogeny key exchangefor beginners, Microsoft Research, 2019.

(Costello, 2009) exemplifica o conceito de que você tem 2 mapas isógenos φ e ψ que no fim permite uma conexão entre os dois ilustrada abaixo:

Costello, Supersingular isogeny key exchangefor beginners, Microsoft Research, 2019.

O algoritmo busca mapear as Invariantes J nesse campo espacial mostrado por esses círculos e elipses acima:

Bob cria um mapa isógeno em ψ, usa ψ para criar uma curva elíptica no campo espacial mostrado abaixo que seja isógena a E.

Depois de criada ele calcula o J-invariant dela que permite uma comunicação que não pode ser facilmente exploitada por um adversário, pois só Alice e Bob tem acesso à K.

Costello, Supersingular isogeny key exchangefor beginners, Microsoft Research, 2019.

Esse é um gráfico que mostra visualmente a computação dos nodes dentro do sistema F.

Todo esse processo serve para garantir que as Curvas Elípticas que Alice e Bob criaram usem a função K para compartilhar a chave secreta e no fim conseguir se comunicarem com segurança.

SIKE escrito em linguagem C

https://github.com/microsoft/PQCrypto-SIDH

O modelo está disponível em um repositório da Microsoft no Github, é basicamente a mesma coisa descrita nos artigos sobre o tema só quem C ou assembly.

https://github.com/microsoft/PQCrypto-SIDH/blob/master/src/ec_isogeny.c

O Código acima mostra uma das primeiras partes do algoritmo em que eles usam a curva elíptica de Montegomery como base para a multiplicação das elipses.

https://github.com/microsoft/PQCrypto-SIDH/blob/master/src/ec_isogeny.c

Aqui é a computação do J-invariant no campo espacial do sistema que citamos mais acima. O algoritmo está pronto para uso, mas como implementar ele na prática?

Implementação do SIKE

Para responder isso,(Elkhatib, Azarderakhsh e Kermani 2020) demonstram a implementação do SIKE em um FPGA.

Elkhatib, Efficient and Fast Hardware Architectures for SIKE Round 2 on FPGA, 2020.

Primeiro eles mostram sobre todos os elementos que compõem a matemática em volta de computações isogêneas além de mostrar as principais etapas do Sike:

  1. Criação das Chaves criptográficas (Bob escolhe uma chave randômica e computa a chave elíptica no sistema)
  2. Encapsulação da Chave (Criação da Chave secreta de Alice e da chave pública)
  3. Decapsulação da Chave (Bob usa a chave secreta enviada por Alice para desencriptar a mensagem que terá um j-invariant igual)
  4. E no fim calcular o mapa isógeno das chaves.
Elkhatib, Efficient and Fast Hardware Architectures for SIKE Round 2 on FPGA, 2020.

Os autores implementaram o Sike em uma Xilinx Virtex-7 FPGA, eles não parecem ter usado Dual port Ram como os próximos artigos nem um MAC, mas possuem uma compactação interessante das operações para rodar o algoritmo.

Kozielm, SIKE’d Up: Fast Hardware Architectures forSupersingular Isogeny Key Encapsulation, 2019.

(Kozielm,2019) propõe um modelo ainda mais customizado, especialmente feita para cálculos de curvas elípticas de Montgomery usando Dual-Port RAM que permite interações múltiplas de 2 leituras e escritas na memória a cada ciclo de CPU, aumentando a velocidade do Sike.

Além disso, o uso de um script customizado em assembly na ROM (Read-only memory) que aumenta a performance ainda mais.

Nain e Virdi, Multiplier-Accumulator (MAC) Unit, International Journal of Digital Application & Contemporary Research, (Volume 5, Issue 3, October 2016)

(Massolino,2020) usam um MAC (multiply–accumulate operation) com 2 dual port ram e a ALU (arithmetic logic unit) é uma FPGA DSP: que permite o uso de MathLab e Simulink, que a torna muito poderosa para Montgomery Ladder, que parte importante da aritmética do sistema.

https://www.intel.com.br/content/www/br/pt/products/programmable/fpga/arria-10/features.html

Esse é um exemplo da Intel® Arria® 10 Architecture, e eles mostram visualmente os blocos de memória relacionados a cada operação, relacionados aos blocos DSP (Bit-Serial-Adder-Unit), em geral é uma forma legal de aumentar a eficiência do algoritmo..

Mas alguém pode pensar, não deveria em si ser uma implementação quântica em vez de clássica desse algoritmo? Embora computadores quânticos no momento usem ambas de certa forma, será que não precisaríamos da parte quântica para proteger a blockchain?

Outra pergunta é: como provar que esse sistema de chave pública é quantum-safe?

P 128-qubit superconducting adiabatic quantum optimization processor.

É aí que entra o paper de (Manninen, 2017), que até joga alguns contrapontos ao hype em computação quântica:

  1. Não temos qubits o suficiente para quebrar a RSA ou AES.
  2. Os algoritmos atuais — assim como o SIKE podem vir a ser considerados inúteis caso hajam novos avanços na matemática que provem que eles não são quantum-safe.
Um dos produtos da Toshiba QKD é um sistema quântico distribuição capaz de 120 Km de distância, https://www.toshiba.co.jp/qkd/en/products.htm

Os autores usaram Wavelength division multiplexing (WDM) operando com a ID Quantique’s ID3110 Clavis2 commercial QKD platform para as medir os resultados.

Além da QKDMenu e QKDSequence da Toshiba quantum key distribution, mostrada acima.

Manninen, Practical Test of a Quantum Key Distribution System, Aalto University, 2017.

A arquitetura acima mostra dois computares conectados em que a transmissão clássica ocorre à 1310nm de frequência e a parte quântica à 1550nm, usando os conversores MCA e MCB.

Cabo óptico usado.
Conversores de Sinal MCA E MCB.

No Setup do experimento, eles usaram também os equipamentos acima, lembrando que a distância em que enviaram os Qubits foi de 50 Km.

Eu gostei do artigo principalmente pela questão que eles foram abertos mostrar todos os equipamentos usados no experimento, o que normalmente não acontece na maioria dos artigos nesse tópico.

Wavelength division multiplexing permite condensar vários sinais de transmissão em uma fibra óptica para depois dividir elas de novo usando Demultiplexing.

Essa opção é interessante por permitir uma flexibilidade caso seja necessário aumentar o volume na rede.

E a implementação na BlockChain?

Atlam, Blockchain with Internet of Things: Benefits,Challenges, and Future Directions, I.J. Intelligent Systems and Applications, 2018, 6, 40–48Published Online June 2018 in MECS (http://www.mecs-press.org/)DOI: 10.5815/ijisa.2018.06.05

(Atlam,2018) dá um exemplo extremamente didático da blockchain apresentamdo acima. Imagine que cada node seja Quantum-Safe e que eles se comunicassem usando a tecnologia quântica supracitada .

Gyongyosi e Imre, Entanglement concentration service for the quantum Internet, Quantum Information Processing (2020) 19:221https://doi.org/10.1007/s11128-020-02716-3.

Para isso ia ser necessário uma internet quântica já implementada, usando Quantum Repeaters para permitir comunicação à longas distâncias.

O armazenamento seria apenas usando memória clássica — pois os computadores quânticos atuais não tem uma eficiência de memória suficiente pelas interferências no sistema ainda não terem sido corrigidas — mas tirando essa questão…

Imagine uma Blockchain que seja Quantum safe, se comunique usando Internet Quântica, e por fim mude seu sistema de ledger usando uma encadeamento de blocos que são armazenados em um Quantum Ledger para registrar as transações.

Resumindo:

  1. Embora implementar sistemas quantum-safe em hardwares clássicos é possível, não se sabe se eles realmente vão funcionar no futuro, é só na base teórica.
  2. Já é possível se comunicar usando computação quântica em pequena escala com equipamentos relativamente acessíveis para pesquisadores.
  3. Quem sabe, quando tivermos sistemas quânticos com uma memória e armazenamento eficiente, talvez podemos nos livrar no modelo quântico/clássico atual.
  4. Criptomoedas já podem implementar sistemas que se dizem quantum safe atualmente, mas não podem validar sua segurança no futuro.
  5. Um problema que posso adicionar, é a questão de mineração, como fazer o Proof-of-Work ser realmente um desafio para um computador quântico?
  6. Será que vamos ter que criar modelos quânticos de Proof-of-Work? Ou talvez devemos usar Proof-of-Stake, ou ambos com Proof-of-Activity?
Pixabay, WorldSpectrum.

Ao meu ver, precisamos mudar a identidade atual da Blockchain, criando uma Quantum Blockchain, só que não só na parte criptográfica, mas no design de comunicação da rede atual.

Mudar o design, vai exigir uma memória quântica eficiente, e uma internet quântica já distribuída e bem colocada, mas isso é assunto para o próximo post em que vamos falar de um design parcialmente quântico de Blockchain.

By, Mike.

Referências:

  1. Announcing the ADVANCED ENCRYPTION STANDARD (AES), NIST, November 26, 2001.
  2. Costello, Supersingular isogeny key exchangefor beginners, Microsoft Research.
  3. Elkhatib, Efficient and Fast Hardware Architectures for SIKE Round 2 on FPGA, 2020.
  4. Kozielm, SIKE’d Up: Fast Hardware Architectures forSupersingular Isogeny Key Encapsulation, 2019.
  5. Massolino, A Compact and Scalable Hardware/SoftwareCo-design of SIKE, 2020.
  6. Nain e Virdi, Multiplier-Accumulator (MAC) Unit, International Journal of Digital Application & Contemporary Research, (Volume 5, Issue 3, October 2016)
  7. Manninen, Practical Test of a Quantum Key Distribution System, Aalto University, 2017.
  8. Feo, Mathematics of Isogeny Based Cryptography, École mathématique africaine, 2017.
  9. Atlam, Blockchain with Internet of Things: Benefits,Challenges, and Future Directions, I.J. Intelligent Systems and Applications, 2018, 6, 40–48Published Online June 2018 in MECS (http://www.mecs-press.org/)DOI: 10.5815/ijisa.2018.06.05.
  10. Gyongyosi e Imre, Entanglement concentration service for the quantum Internet, Quantum Information Processing (2020) 19:221https://doi.org/10.1007/s11128-020-02716-3.

--

--

Aranea Science
Aranea Science

Written by Aranea Science

Converti muitos dos artigos desse blog em Livros publicados na Amazon, na editora Aranea Science. By Michael R. dos Santos

No responses yet