Cálculo multipartidário seguro do número de 1s vezes o número de 0s em uma sequência compartilhada

8

Suponha que haja partes , cada uma com um pouco . Eu quero calcular a multiplicação do número de vezes o número de zeros, ou seja, .p j b j{ 0 , 1 } R = ( b j ) × ( N - b j )N>2pjbj{0,1}R=(bj)×(Nbj)

O cálculo deve ser seguro no sentido de que nenhum partido pode aprender mais do que o resultado final . Por exemplo, não há problema em executar uma soma segura, porque então se tornará conhecido e a soma é sensível no meu problema. Então, existe algum protocolo de computação seguro existente que atenda à demanda?b jRbj

Edit: O número no problema é grande, pelo menos mais de . É necessária uma computação multipartidária segura e eficiente. Um protocolo de soma segura pode ser eficiente, mas SMC genérico, como circuitos booleanos, pode exigir muita computação. Então, eu preciso de um protocolo eficiente.N1000

Richard
fonte
4
você está ciente dos resultados gerais de viabilidade para computação segura com várias partes, bem como do trabalho recente sobre criptografia totalmente homomórfica? porque ambos resolvem seu problema.
Sasho Nikolov
1
Talvez deva ser uma resposta, @SashoNikolov
Suresh Venkat
2
@Suresh, pensei em dar a ele a chance de esclarecer restrições adicionais, porque, se ele souber sobre quantia segura, deve saber sobre os resultados de viabilidade.
Sasho Nikolov
3
O problema é equivalente à computação segura min {∑b_j, N-∑b_j}? Nesse caso, o foco na multiplicação parece apenas uma distração para mim.
Tsuyoshi Ito
2
@TsuyoshiIto é equivalente
Sasho Nikolov

Respostas:

2

Esta resposta é sobre soluções viáveis ​​baseadas em criptografia homomórfica que NÃO é totalmente homomórfica, pois a última pode ser extremamente ineficiente (se houver sistemas criptográficos eficientes e totalmente homomórficos comparáveis ​​aos fornecidos abaixo em termos de eficiência, ficaria feliz em ouvir sobre eles).

Como você só precisa de uma multiplicação, existem soluções potencialmente mais baratas que a criptografia totalmente homomórfica: [1] e [2]. O último funciona em decomposições de bits criptografadas da entrada, portanto, será necessário um protocolo de decomposição de bits como [3] e [6], mas o primeiro funciona com valores inteiros. Apenas para completar, o primeiro foi estendido para a multiplicação do operado em [4], mesmo que o OP possa não precisar disso. Essas soluções não são interativas e devem funcionar no caso de duas partes.d

Se você tiver mais de duas partes e puder pagar alguma interação, [5] fornecerá uma "porta de multiplicação segura" que é potencialmente mais eficiente e permite um número ilimitado de multiplicações. Funciona basicamente convertendo os valores criptografados homomorficamente em algum tipo de compartilhamento secreto, multiplica o resultado (interativamente) e depois o converte novamente em criptografia homomórfica.

[1] Avaliando fórmulas 2-DNF em textos cifrados

[2] Criptocomputador não interativo para NC1

[3] Computação multilateral segura incondicionalmente com rodadas constantes para igualdade, comparação, bits e exponenciação

[4] Criptografia aditivamente homomórfica com multiplicações do d-operando

[5] Computação multipartidária a partir da criptografia homomórfica de limite

[6] Conversão binária eficiente para valores criptografados em Paillier

Mohammad Alaggan
fonte
4
Para ser sincero, não vejo a conexão desta resposta com a pergunta.
Tsuyoshi Ito
@TsuyoshiIto: Esta resposta lista algumas referências que podem ser usadas para fornecer "computação segura para multiplicação" e são especialmente adaptadas para a fórmula fornecida pelo OP, que inclui apenas uma multiplicação. Ele também lista métodos relativamente "eficientes", conforme a solicitação do OP. Na verdade, falho em ver sua objeção.
Mohammad Alaggan
4
Como escrevi em um comentário à pergunta, a multiplicação não é essencial na questão. O título da pergunta está simplesmente errado.
Tsuyoshi Ito
1
Portanto, o título deve ser modificado. Caso contrário, talvez alguém venha mais tarde a essa pergunta, esperando encontrar algo semelhante à minha resposta.
Mohammad Alaggan 27/02
2

Nova resposta (24/10): Acho que o artigo a seguir fornece uma solução elegante e eficiente para o seu problema:

Eles mostram como criar um algoritmo de criptografia de chave pública com as duas propriedades úteis a seguir:E()

  • Aditivamente homomórfico. Dados e E ( y ) , qualquer um pode calcular E ( x + y ) .E(x)E(y)E(x+y)

  • Pode multiplicar (uma vez). Dado e E ( y ) (nenhum dos quais foi gerado como resultado de uma operação de multiplicação), qualquer um pode calcular E ( x y ) . Você pode usar o resultado em operações de adição, mas não pode usá-lo em nenhuma operação de multiplicação (o resultado de uma multiplicação está corrompido e os valores contaminados não podem ser usados ​​como entrada para outra multiplicação).E(x)E(y)E(xy)

A conseqüência é que, dado um polinômio quadrático multivariado e dado E ( x 1 ) , , E ( x n ) , qualquer um pode calcular uma criptografia de Ψ ( x 1 , , x n ) . Isso é super útil para a sua situação.Ψ(x1,,xn)E(x1),,E(xn)Ψ(x1,,xn)

Em particular, em sua situação, podemos formar o polinômio Observe que este é um polinômio quadrático multivariado, portanto, considerando todos os E ( b i ) , qualquer um pode calcular E ( Ψ ( b 1 , , b N ) )

Ψ(b1,b2,,bN)=ij[bi(1bj)].
E(bi)E(Ψ(b1,,bN)). Observe também que , então estamos tentando calcular exatamente o valor desse polinômio.R=Ψ(b1,,bN)

Isso sugere um protocolo natural para o seu problema, usando uma versão de limite do esquema de criptografia no documento mencionado acima:

  • Todos juntos geram um par de chaves pública / privada para uma versão limiar desse esquema, de modo que a chave pública seja conhecida por todos, mas a chave privada seja compartilhada entre todos (requer cooperação de todas as partes para descriptografar um texto cifrado criptografado sob essa chave pública ) A chave pública é transmitida a todos os N participantes.NN
  • iE(bi)E(bi)
  • E(R)=E(Ψ(b1,,bN))E(b1),,E(bN)
  • NRE(R)
  • Todo mundo prova de alguma forma (talvez por meio de provas do ZK) que eles executaram cada etapa corretamente.

Você precisaria preencher alguns detalhes, mas aposto que você poderia expandir este esboço / estrutura de tópicos para obter um protocolo que resolvesse seu problema de maneira eficiente e segura.


Minha antiga resposta:

S=jbj

S<N/2

SRSRQS{Q,NQ}

i,jE(ci,j)ci,j=bibjEi<jci,j=Rdisso. Há alguns detalhes a serem resolvidos e o modelo de ameaça pode não ser o que você esperava, mas é possível que você consiga fazer algo assim funcionar.

DW
fonte
essa é uma ideia muito interessante. embora não produza exatamente a produção, usar xor realmente oculta a informação, seja 0 ou 1. Porém, um problema é xor computado em texto sem formatação no esquema? qualquer computação segura para xor?
Richard
1
ibijbjE(ci,j)ci,j=bibj.ijibi