Pesquisa · Mapa mental

Computação multipartidária segura

A computação multi-partes segura é um subcampo da criptografia com o objetivo de criar métodos para que várias partes computem conjuntamente uma função sobre suas entradas, mantendo essas entradas privadas. Ao contrário das tarefas criptográficas tradicionais, onde a criptografia garante a segurança e a integridade da comunicação ou do armazenamento e o adversário está fora do sistema de participantes, a criptografia neste modelo protege a privacidade dos participantes uns dos outros.

Fonte: Wikipédia (pt)Atualizado em 16/07/2026
01

História

Protocolos de propósito específico para tarefas específicas começaram no final da década de 1970. Mais tarde, a computação segura foi formalmente introduzida como computação de duas partes segura (2PC) em 1982 (para o chamado Problema dos Milionários, um problema específico que é um predicado booleano), e de forma generalizada (para qualquer computação viável) em 1986 por Andrew Yao. A área também é referida como Avaliação de Função Segura (SFE). O caso de duas partes foi seguido por uma generalização para multi-partes por Oded Goldreich, Silvio Micali e Avi Wigderson. A computação baseia-se no compartilhamento de segredo de todas as entradas e em provas de conhecimento zero para um caso potencialmente malicioso, onde a maioria de jogadores honestos no cenário de adversário malicioso garante que o comportamento inadequado seja detectado e a computação continue com a pessoa desonesta eliminada ou sua entrada revelada. Este trabalho sugeriu o esquema geral básico a ser seguido por essencialmente todos os futuros protocolos multi-partes para computação segura. Este trabalho introduziu uma abordagem, conhecida como paradigma GMW, para compilar um protocolo de computação multi-partes que é seguro contra adversários semi-honestos em um protocolo que é seguro contra adversários maliciosos. Este trabalho foi seguido pelo primeiro protocolo seguro robusto que tolera comportamentos falhos graciosamente sem revelar a saída de ninguém, através de um trabalho que inventou para este propósito a frequentemente utilizada "ideia de compartilhamento de compartilhamentos" e um protocolo que permite que uma das partes oculte sua entrada incondicionalmente. O paradigma GMW foi considerado ineficiente por anos devido às enormes sobrecargas que traz ao protocolo base. No entanto, foi demonstrado que é possível alcançar protocolos eficientes, o que torna esta linha de pesquisa ainda mais interessante de uma perspectiva prática. Os resultados acima estão em um modelo onde o adversário é limitado a computações em tempo polinomial e observa todas as comunicações, sendo, portanto, chamado de "modelo computacional". Além disso, o protocolo de transferência inconsciente demonstrou ser completo para estas tarefas. Os resultados acima estabeleceram que é possível, sob as variações mencionadas, alcançar a computação segura quando a maioria dos usuários é honesta.

02

Definição e visão geral

Em um MPC, um dado número de participantes, p1, p2, ..., pN, cada um possui dados privados, respectivamente d1, d2, ..., dN. Os participantes desejam computar o valor de uma função pública sobre esses dados privados: F(d1, d2, ..., dN) enquanto mantêm suas próprias entradas em segredo. Por exemplo, suponha que tenhamos três partes Alice, Bob e Charlie, com as respectivas entradas x, y e z denotando seus salários. Eles querem descobrir qual o maior dos três salários, sem revelar uns aos outros quanto cada um ganha. Matematicamente, isso se traduz na computação de: Se houvesse alguma parte externa confiável (digamos, se eles tivessem um amigo mútuo, Tony, que soubessem que poderia guardar segredo), cada um poderia contar seu salário ao Tony, ele calcularia o máximo e diria esse número a todos eles. O objetivo do MPC é projetar um protocolo onde, trocando mensagens apenas entre si, Alice, Bob e Charlie ainda possam aprender F(x, y, z) sem revelar quem ganha o quê e sem ter que depender do Tony. Eles não devem aprender mais ao participar do protocolo do que aprenderiam interagindo com um Tony incorruptível e perfeitamente confiável.

03

Definições de segurança

Um protocolo de computação multi-partes deve ser seguro para ser eficaz. Na criptografia moderna, a segurança de um protocolo está relacionada a uma prova de segurança. A prova de segurança é uma prova matemática onde a segurança de um protocolo é reduzida à segurança de suas primitivas subjacentes. No entanto, nem sempre é possível formalizar a verificação de segurança do protocolo criptográfico baseando-se apenas no conhecimento da parte e na correção do protocolo. Para protocolos MPC, o ambiente no qual o protocolo opera é associado ao Paradigma Mundo Real/Mundo Ideal. Não se pode dizer que as partes não aprendem nada, pois elas precisam aprender a saída da operação, e a saída depende das entradas. Além disso, a correção da saída não é garantida de forma absoluta, pois a correção da saída depende das entradas das partes, e as entradas devem ser assumidas como corretas. O Paradigma Mundo Real/Mundo Ideal estabelece dois mundos: (i) No modelo de mundo ideal, existe uma parte confiável incorruptível para quem cada participante do protocolo envia sua entrada. Essa parte confiável computa a função por conta própria e envia de volta a saída apropriada para cada parte. (ii) Em contraste, no modelo de mundo real, não existe uma parte confiável e tudo o que as partes podem fazer é trocar mensagens entre si. Diz-se que um protocolo é seguro se for possível aprender não mais sobre as entradas privadas de cada parte no mundo real do que se poderia aprender no mundo ideal. No mundo ideal, nenhuma mensagem é trocada entre as partes, portanto, as mensagens trocadas no mundo real não podem revelar nenhuma informação secreta.

04

Protocolos

Existem grandes diferenças entre os protocolos propostos para computação de duas partes (2PC) e computação multi-partes (MPC). Além disso, frequentemente para protocolos de propósito especial de importância, um protocolo especializado que se desvia dos genéricos tem que ser projetado (votação, leilões, pagamentos, etc.)

Computação de duas partes

O cenário de duas partes é particularmente interessante, não apenas de uma perspectiva de aplicações, mas também porque técnicas especiais podem ser aplicadas no cenário de duas partes que não se aplicam ao caso multi-partes. De fato, a computação multi-partes segura (na verdade, o caso restrito de avaliação de função segura, onde apenas uma única função é avaliada) foi apresentada pela primeira vez no cenário de duas partes. O trabalho original é frequentemente citado como sendo de um dos dois artigos de Yao; embora os artigos não contenham realmente o que hoje é conhecido como protocolo de circuito embaralhado de Yao. O protocolo básico de Yao é seguro contra adversários semi-honestos e é extremamente eficiente em termos de número de rodadas, que é constante e independente da função alvo sendo avaliada. A função é vista como um circuito booleano, com entradas em binário de comprimento fixo. Um circuito booleano é uma coleção de portas conectadas com três tipos diferentes de fios: fios de entrada do circuito, fios de saída do circuito e fios intermediários. Cada porta recebe dois fios de entrada e tem um único fio de saída que pode ter fan-out (ou seja, ser passado para múltiplas portas no nível seguinte). A avaliação simples do circuito é feita avaliando cada porta por vez, assumindo que as portas foram ordenadas topologicamente. A porta é representada como uma tabela-verdade tal que para cada par possível de bits (aqueles vindos dos fios de entrada da porta) a tabela atribui um único bit de saída; que é o valor do fio de saída da porta. Os resultados da avaliação são os bits obtidos nos fios de saída do circuito.

Protocolos multi-partes

A maioria dos protocolos MPC, ao contrário dos protocolos 2PC e especialmente sob o cenário incondicional de canais privados, faz uso de compartilhamento de segredo. Nos métodos baseados em compartilhamento de segredo, as partes não desempenham papéis especiais (como em Yao, de criador e avaliador). Em vez disso, os dados associados a cada fio são compartilhados entre as partes, e um protocolo é então usado para avaliar cada porta. A função é agora definida como um "circuito" sobre um corpo finito, em oposição aos circuitos binários usados para Yao. Tal circuito é chamado de circuito aritmético na literatura, e consiste em "portas" de adição e multiplicação onde os valores operados são definidos sobre um corpo finito.

Outros protocolos

Em 2014, um "modelo de justiça em computação segura no qual uma parte adversária que aborta ao receber a saída é forçada a pagar uma multa monetária previamente definida" foi descrito para a rede Bitcoin ou para loteria justa, e foi implementado com sucesso no Ethereum.

05

Sistemas MPC práticos

Muitos avanços foram feitos em sistemas 2PC e MPC nos últimos anos. Em 2025, a empresa Partisia, co-fundada por Ivan Damgård, demonstrou várias aplicações práticas de MPC no campo da identidade digital e privacidade. Em colaboração com a Toppan e o Instituto de Ciência e Tecnologia de Okinawa, a Partisia executou uma prova de conceito no Japão usando reconhecimento facial e identificadores descentralizados para construir um sistema de identificação estudantil que preserva a privacidade e está em conformidade com os padrões eIDAS 2.0. O sistema comparou dados biométricos usando MPC sem descriptografá-los, permitindo a verificação e mantendo a privacidade total. A Partisia também fez parcerias com entidades na Dinamarca, Colômbia e Estados Unidos para aplicar o MPC em análises de saúde, identidade digital transfronteiriça e troca segura de dados bancários.

Protocolos baseados em Yao

Um dos principais problemas ao trabalhar com protocolos baseados em Yao é que a função a ser avaliada com segurança (que pode ser um programa arbitrário) deve ser representada como um circuito, geralmente consistindo de portas XOR e AND. Como a maioria dos programas do mundo real contém loops e estruturas de dados complexas, esta é uma tarefa altamente não trivial. O sistema Fairplay foi a primeira ferramenta projetada para enfrentar esse problema. O Fairplay compreende dois componentes principais. O primeiro deles é um compilador que permite aos usuários escrever programas em uma linguagem simples de alto nível e gerar esses programas em uma representação de circuito booleano. O segundo componente pode então embaralhar (garble) o circuito e executar um protocolo para avaliar com segurança o circuito embaralhado. Além da computação de duas partes baseada no protocolo de Yao, o Fairplay também pode realizar protocolos de múltiplas partes. Isso é feito usando o protocolo BMR, que estende o protocolo passivamente seguro de Yao para o caso ativo.

06

Implementações de análises de dados por computação multipartidária segura

Uma das principais aplicações da computação multipartidária segura é permitir a análise de dados mantidos por múltiplas partes, ou a análise cega de dados por terceiros sem permitir que o custodiante dos dados entenda o tipo de análise de dados que está sendo realizada.

Vídeos recomendados

Fontes consultadas

Continue pesquisando