Além do Conhecimento Zero: O que vem a seguir em Criptografia Programável?

IntermediárioJan 01, 2024
Este artigo apresenta principalmente tecnologias de encriptação programável, tais como MPC, FE, IO, para além da história do ZK.
Além do Conhecimento Zero: O que vem a seguir em Criptografia Programável?

Criptografia programável

Embora a encriptação já existe há milhares de anos, a criptografia programável é uma tecnologia moderna. Descrita como “criptografia de uso geral... [ou] uma linguagem expressiva para reivindicações”, é a ideia de que um primitivo criptográfico como uma prova ZK poderia ser flexível e adaptável o suficiente para que um programador pudesse programar praticamente qualquer função em cima dela. Que pode existir uma cadeia ininterrupta de lógica desde alguém clicar num botão num site até a prova matemática que garante a segurança de uma operação criptográfica.

https://youtu.be/qAfprVCBhdQ?t=1024

Enquanto a criptografia tradicional dependia de conjuntos fixos de funcionalidades, o que exigia um criptógrafo habilidoso para construir um sistema especializado para cada novo mecanismo, a criptografia programável permite que os programadores implementem propriedades criptográficas e funcionalidades numa linguagem mais próxima do que já entendem. Dá aos programadores que não são especialistas em criptografia uma interface mais familiar.

As provas ZK foram concebidas pela primeira vez em 1989 mas permaneceram maioritariamente teóricas até 2012, quando foi descoberto um tipo de prova ZK chamado ZK-SNARK. Esta nova primitiva permitiu que as provas ZK provassem ou autenticassem quase qualquer função ou cálculo arbitrário.

Desde que o ZKSNARKs se tornou possível, recursos e talentos foram investidos na construção do ZCash, ZKRollups, zkeVMS e uma série de outras aplicações que começam com a letra z. Acontece que sistemas descentralizados como o Ethereum, e blockchains em geral, foram a motivação perfeita para fazer com que as pessoas se interessassem pela criptografia, transformando um campo de pesquisa antes impraticável num ecossistema ativo com aplicações reais para o utilizador final.

Não há garantias de que a Multi-Party Computation (MPC), Fully Homomorphic Encryption (FUE) e Indistinguishable Obfuscation (iO) sigam o mesmo caminho que o ZK, tornando-se mais práticos, otimizados e de uso geral com o passar do tempo. Mas nesta fase inicial, é certamente possível.

Se pensa na criptografia programável como um tipo de computador digital, construído sobre certas suposições que permitem certas propriedades e garantias, então ainda estamos na fase de hardware. Ainda estamos a descobrir ativamente a melhor maneira de construir as portas lógicas ou circuitos para este novo computador.

Comparações relativamente intuitivas

Para entender melhor o panorama geral da criptografia programável, vamos começar aproximando muito aproximadamente onde MPC, FHEE e IO estão em relação ao ZK e um ao outro. Nesta secção, e realmente em todas as secções que vêm depois, vamos compensar nuances, precisão e formalidade em favor da simplicidade e acessibilidade.

A maneira mais simples de raciocinar sobre criptografia é quais informações são mantidas ocultas ou secretas. E o que o sistema prova ou revela.

Também pode pensar em cada um destes sistemas como substituindo um amigo imaginário em comum. A Wikipedia chama este amigo de “Tony”. O Tony é infalível, incorruptível e totalmente confiável. O trabalho do Tony é guardar segredos. Na tabela abaixo, pense nos “Elementos Privados” como os segredos que o Tony pode confiar para manter, os “Casos de Uso” como tarefas que o Tony poderia desempenhar razoavelmente bem e a “Praticidade” como o Tony habilmente poderia executar essas tarefas hoje.

As tabelas acima destinam-se a dar uma ideia aproximada para diferentes áreas da criptografia programável. Agora, vamos aprofundar um pouco e rever o que o MPC, o FHA e o iO fazem junto com algumas informações interessantes sobre cada campo.

Computação Multipartidária (MPC)

A Computação Multipartidária (MPC) permite que muitas partes calculem conjuntamente alguma função acordada sem revelar quaisquer dados aos outros participantes. Com o MPC, o mesmo cálculo é aplicado aos dados de todos, mas a entrada de cada parte é mantida em segredo. Os valores intermédios também ficariam secretos. Apenas a saída é revelada no final.

Contrariamente ao ZK, o MPC é colaborativo. Permite que diferentes partes colaborem no mesmo cálculo, cada uma contribuindo com os seus próprios dados, para obter algum resultado mútuo que todos desejam.

Podemos comparar o ZK e o MPC no contexto de um sistema de IA para obter mais contexto. O ZK seria bom em autenticar ou verificar se um dado veio de uma pessoa real ou do telefone de uma pessoa. O MPC é melhor para treinar um sistema de IA porque diferentes indivíduos, grupos ou organizações podem partilhar dados confidenciais com o sistema de IA mas confiar que os dados não serão revelados a mais ninguém.

Problemas milionários

O MPC foi pensado em 1982 por Andrew Yao para resolver uma experiência mental chamada “Problema do Milionário” onde dois milionários querem saber quem é mais rico sem dizer um ao outro quanto dinheiro têm. A solução foi usar circuitos distorcido, o que de acordo com Vitalik Buterin, explicador frequente de conceitos criptográficos, é também uma das formas mais básicas de entender o MPC.

[Antes de aprender sobre um circuito distorcido, precisa saber o que é um circuito aritmético em geral. Se é novo na ideia de circuitos, há uma explicação simples aqui.]

O MPC é um processo interativo de várias etapas onde a milionária #1 (Alice the Garbler) deve primeiro criar o circuito, inserir o seu património líquido e depois transformá-lo numa forma distorcida ou encriptada antes de passá-lo para o milionário #2 (Bob o Avaliador). Quando Bob põe as mãos no circuito, o seu trabalho é adicionar o seu próprio património líquido, depois avaliar ou executar o circuito para ter a certeza de que está correto. Finalmente, Bob descriptografa a saída final e, por exemplo, aprende que Alice é mais rica, mas nunca aprende que Alice é, na verdade, muito mais rica, e ele não deveria ter feito suposições.

O Problema do Milionário e os circuitos distorcido como solução foram cruciais para o desenvolvimento inicial do MPC. Mas a sua aplicação era limitada. Uma versão mais complexa e matizada do problema, chamada Problema do Milionário Socialista, verificou se os dois milionários eram igualmente ricos, em vez de revelar qual deles tinha mais dinheiro. Esta diferença sutil alargou significativamente a funcionalidade do MPC mas exigiu soluções e técnicas criptográficas mais complexas para além do âmbito deste artigo.

Encriptação totalmente homomórfica (FH)

A Encriptação Totalmente Homomórfica (FHA) permite cálculos em dados encriptados. Pode desempenhar uma função em dados encriptados como se tivesse permanecido não encriptado. A saída da função só é descriptografada pela parte com a chave secreta. Se pensarmos na encriptação como uma caixa preta que esconde segredos, o FHA garante que os dados e os cálculos desses dados permanecem dentro dessa caixa preta.

Embora não existam experiências de pensamento famosas como o Problema do Milionário para o MPC, o FHA resolve uma fraqueza fundamental de segurança: “a necessidade de descriptografar antes de processar dados.”

https://www.zama.ai/post/the-revolution-of-fhe

Num contexto de IA, o FHA manteria todos os dados entre o utilizador (titular da chave secreta) e o sistema de IA encriptados. O utilizador interage com o sistema normalmente, mas o utilizador pode estar confiante de que a IA nunca “aprendeu” nada sobre os dados que estão a ser fornecidos. Toda a interação seria encriptada. A IA nunca aprende o que digitou ou perguntou, que fotos enviou ou quem as enviou, mas ainda pode responder como se soubesse a informação.

Se funcionar, o FHA será uma das tecnologias de preservação da privacidade mais poderosas disponíveis. E quem sabe? Em 10 anos, podemos até ter FHE-EVM.

Gestão de ruído

Comparado ao MPC e ao ZK, o FH está — neste momento — no extremo mais teórico ou menos prático do espectro. A tecnologia só foi considerada viável em 2009, quando Craig Gentry descobriu como lidar com o ruído.

As operações FE são computacionalmente muito intensas porque “ruído” é adicionado durante o processo de encriptação para aumentar a segurança. O ruído no FHA é um pequeno valor acrescentado aleatório ao texto simples (dados não encriptados) antes de ser transformado em texto cifrado (dados encriptados). Cada operação aumenta o ruído. Embora as operações de adição e subtração causem um crescimento insignificante do ruído, a multiplicação é computacionalmente mais cara, o que resulta num crescimento significativo do ruído. Assim, à medida que a complexidade de um programa aumenta, o ruído — o espaço necessário para acomodar o ruído e os recursos computacionais necessários para processar o ruído — acumula-se.

O avanço de Gentry foi uma técnica chamada bootstrapping, que poderia reduzir o ruído e permitir mais computação em dados encriptados em sistemas FHA. O bootstrapping pega o texto cifrado e decodifica-o homomorficamente, o que significa reduzir o nível de ruído num dado encriptado sem realmente revelar o que é. O resultado é um texto cifrado com ruído pré-definido muito mais baixo, permitindo-nos calcular ainda mais o texto cifrado. O bootstrapping, em geral, permite-nos contornar a necessidade de ter maior espaço para o crescimento do ruído à medida que a complexidade da computação aumenta. Podemos limitar o espaço a algumas operações e inicializar repetidamente para calcular cálculos arbitrariamente grandes sem comprometer os dados originais.

Dependendo do esquema FE, o bootstrapping pode levar vários minutos ou milissegundos. Se o bootstrapping for mais lento, o custo computacional pode ser distribuído aplicando-o a vários textos cifrados de uma só vez. Se o bootstrapping for mais rápido, geralmente vem com a compensação de trabalhar apenas com pequenos pedaços de texto simples (geralmente 8 bits) de cada vez para se manter eficiente.

Indistinguibilidade ofuscação (iO)

Se o FHEE transformar todos os elementos do cálculo numa caixa preta, então o iO transforma o próprio cálculo numa caixa preta.

A ofuscação de indistinguibilidade (iO) é considerado o sistema criptográfico mais poderoso dentro do domínio da possibilidade teórica. Num artigo, o iO é descrito como uma “ferramenta mestre a partir da qual quase todos os outros protocolos criptográficos poderiam ser construídos” e referido pelos especialistas em criptografia como uma “joia da coroa” e “um primitivo criptográfico para governar todos”.

De acordo com Amit Sahai, o professor conhecido por explicar as provas de ZK às crianças, e um dos investigadores que inventaram uma maneira de construir o iO com base em suposições bem fundamentadas, o iO trabalha num paradigma fundamentalmente diferente dos sistemas criptográficos anteriores. IO assume que o adversário já pode ler a sua mente (uma metáfora para o seu computador). Os seus segredos já são conhecidos por isso não podem ser escondidos. A única coisa que pode fazer é ofuscar o que o adversário já pode ver.

https://youtu.be/v2RR_c5hn1E

O objetivo do iO é tornar duas funções ou cálculos igualmente obscuros. Se transformar dois cálculos numa forma indistinguível uma da outra, pode ocultar como o programa funciona. Se não consegue distinguir a diferença entre dois programas, não sabe qual dos dois programas está a ser executado e nenhuma informação pode ser deduzida de nenhum dos dois, a não ser que ambos desempenham a mesma função. Ambos os programas têm as mesmas entradas e produzem as mesmas saídas, mas o iO faz com que ninguém possa descobrir como.

Com o iO, pode ocultar a estrutura de todo o tipo de função, incluindo quase todas as funções que compõem a criptografia. Por outras palavras, ao obscureceres quase tudo, alcança a criptografia programável de uso mais geral sobre a qual outras primitivas podem ser programadas em cima.

Tecnicamente, há uma caixa preta maior que o iO. Chama-se literalmente ofuscação da caixa preta. Mas esse ainda é impossível.

Suposições bem fundamentadas

Ninguém sabia como construir o iO até 2013, quando os mapas multilineares foram propostos por Garg, Gentry, Halevi, Raykova, Sahai, Waters. Um programa de computador pode ser quebrado como peças de quebra-cabeça e depois obscurecido usando mapas multilineares. As peças obscurecidas podem ser remontadas para obter a mesma funcionalidade que o programa original sem revelar o seu funcionamento interno.

Os mapas multilineares são uma generalização dos mapas bilineares ou pares utilizados na Criptografia de Curvas Elípticas (ECC). Embora os mapas bilineares sejam fundamentais para esquemas criptográficos existentes, como assinaturas BLS, não são complexos ou expressivos o suficiente para o iO. E embora os mapas multilineares pudessem lidar com iO, esta estrutura algébrica recém-desenvolvida era facilmente atacável e não era segura, por isso depender de mapas multilineares era geralmente insatisfatório para os criptógrafos. O campo estava novamente preso.

Então, em 2020, Jain, Lin e Sahai propuseram uma solução que, embora incomum e nova, fosse simples o suficiente para os criptógrafos raciocinarem, e em vez de confiar em suposições recentemente desenvolvidas como mapas multilineares, esta versão do iO poderia ser construída com base em suposições mais padronizadas e bem fundamentadas que foram estudadas há décadas, como o Learning with Errros (LWE). Com este último avanço, o iO voltou a ser viável. O Santo Graal ainda estava ao seu alcance.

Selva indomável

Cada sistema criptográfico é feito de diferentes pressupostos matemáticos e técnicas criptográficas. Nenhum avanço único resolve todos os problemas num sistema. Em vez disso, as descobertas seguem uma série imprevisível de pequenos passos e grandes saltos que alteram as suposições e técnicas existentes, que por sua vez levam a mais descobertas e descobertas. E por cada descoberta que funcionou, muitos mais não.

Numa apresentação no iO, Sahai descreveu o campo como estando na “selva indomada”, onde nem estava claro o que não era compreendido e quais eram os problemas certos a resolver.

Equipas como o PSE trabalham principalmente no lado prático ou aplicado da criptografia programável, concentrando-se em primitivos como ZK e MPC com suposições bem fundamentadas que foram testadas em batalha, relativamente otimizadas e consideradas seguras e eficazes. Embora ainda restem muitas otimizações, o ZK está agora firmemente dentro do reino da praticidade. Mas também houve um tempo em que o ZK estava confinado à selva indomada.

Para maximizar o número de ferramentas de preservação da privacidade, garantia de segurança, verificação de reivindicação e criptografia às quais o mundo tem acesso, devemos manter, pelo menos, um olho voltado para o horizonte do que está por vir porque ninguém pode prever o que será prático daqui a 10 anos.

A apresentação de Sahai inclui uma citação de um artigo de 2003 da Nature de Steven Weinberg chamado Four Golden Lessons, que destaca outra razão para trabalhar no atualmente impraticável.

“Quando lecionava no Instituto de Tecnologia de Massachusetts no final dos anos 60, um estudante disse-me que queria entrar na relatividade geral em vez da área em que estava a trabalhar, física de partículas elementares, porque os princípios do primeiro eram bem conhecidos, enquanto o último parecia uma confusão para ele. Pareceu-me que ele tinha acabado de dar uma razão perfeitamente boa para fazer o oposto... O meu conselho é ir para a descabida — é aí que está a ação.”

A Criptografia Programável está a ser explorada por uma variedade de equipas, incluindo PSE e 0xPARC, co-organizadores de um evento de 2 dias chamado Programmable Cryptography Conference que acontece em Istambul, Turquia, a 16 de novembro & 17, 2023.

Venha dizer olá!

Ou encontre PSE online no Discord.

Isenção de responsabilidade:

  1. Este artigo foi reimpresso de [Explorações de Privacidade e Escalonamento]. Todos os direitos de autor pertencem ao autor original [kichong]. Se houver objeções a esta reimpressão, contacte a equipa do Gate Learn, e eles tratarão disso imediatamente.
  2. Isenção de responsabilidade: As opiniões e opiniões expressas neste artigo são exclusivamente do autor e não constituem nenhum conselho de investimento.
  3. As traduções do artigo para outras línguas são feitas pela equipa do Gate Learn. A menos que mencionado, é proibido copiar, distribuir ou plagiar os artigos traduzidos.
learn.articles.start.now
learn.articles.start.now.voucher
learn.articles.create.account