Pedra, papel ou tesoura e outras maneiras de se comprometer agora e revelar o compromisso depois

Gonzalo Álvarez Marañón    19 noviembre, 2020
Pedra, papel ou tesoura e outras maneiras de se comprometer agora e revelar o compromisso depois

Você já jogou pedra, papel ou tesoura? Aposto que sim. Ok, vamos enrolar o cacho: como você jogaria no telefone? Uma coisa é certa: o primeiro a revelar sua escolha perde o seguro. Se você gritar «pedra!», O outro dirá «papel» e você perderá de novo e de novo. A questão é: como você faz com que vocês dois se comprometam com uma garantia sem revelá-la à outra parte?

Na vida real, os envelopes e caixas de papel são usados ​​para comprometer um valor sem revelá-lo. Por exemplo, um juiz de um júri escreve seu veredicto em um pedaço de papel e o coloca em um envelope lacrado. Quando os envelopes são abertos, você não pode mais recuar. A criptografia será capaz de criar uma caixa ou envelope digital ainda mais seguro? Que pergunta, claro que sim! Vamos ver como jogar pedra-papel-tesoura no telefone graças à criptografia.

Criação de esquemas de compromisso usando protocolos criptográficos

Na criptografia, um esquema de compromisso permite que você se comprometa com uma segurança que permanecerá oculta até o momento em que precisa ser revelada e não haverá volta. Usando a analogia da caixa: você mantém sua mensagem em uma caixa trancada e dá a caixa para outra pessoa. Sem a chave, ele não pode ler sua mensagem. Nem você pode trocá-lo, porque a caixa está em sua posse. Quando você der a chave, ele abrirá a caixa e, sim, poderá ler a mensagem. Como você pode ver com este exemplo simples, um esquema de compromisso consiste em duas fases:

  1. A fase de engajamento: você trava a mensagem em uma caixa e a envia.
  2. A fase de revelaçao: o destinatário da caixa abre com sua chave e lê a mensagem.

Matematicamente, este esquema pode ser representado da seguinte forma:

c = C (rm)

Ou seja, o compromisso c é o resultado da aplicação de uma função pública C a um valor aleatório r e a uma mensagem m. Quando o remetente posteriormente revelar os valores de r e m, o receptor poderá recalcular c, se corresponder ao original, saberá que não houve trapaça ou papelão.

Para ser considerado seguro, qualquer esquema de compromisso deve satisfazer as duas propriedades a seguir:

  1. Segredo (ou ocultação): ao final da primeira fase, o receptor não obtém nenhuma informação sobre o valor comprometido. Este requisito deve ser satisfeito mesmo que o receptor trapaceie. A ocultação protege os interesses do emitente.
  2. Unambíguo (ou vinculativo): dada a mensagem cometida na primeira fase, o receptor encontrará esse mesmo valor na segunda fase após a “abertura” legal do compromisso. Este requisito deve ser cumprido mesmo se o emissor trapacear. A vinculaçao protege os interesses do destinatário.

Uma simples maneira de fazer este esquema digitalmente é usando funções de hash criptograficamente segura como uma função de compromisso C. Imagine nossos velhos amigos Alice e Bob que querem jogar pedra, papel ou tesoura pelo telefone. As seguintes informações podem ser enviadas usando a função hash genérica H e um valor aleatório rA, conforme mostrado na figura:

Ao final do protocolo, Bob precisa verificar se o valor do hash h A enviado por Alice é igual ao valor HA || «pedra») calculado por ele mesmo. Se os dois valores corresponderem, você sabe que Alice não trapaceou. O resultado desse protocolo é que Alice perde o jogo porque o papel envolve a pedra.

Vamos seguir o protocolo acima da perspectiva de Alice. Ela primeiro concorda com a «pedra» valor Bob enviando o valor do hash hA. Por sua parte, Bob ainda não pode determinar que Alice se comprometeu a esse valor, já que Bob não sabe o valor aleatório rA usado e Bob é incapaz de inverter a função hashO fato de Bob não poder determinar qual valor foi comprometido é a propriedade «secreta» (ou «ocultação») do esquema de confirmação.

Assim que Bob envia seu próprio valor «papel» para Alice, ela sabe que perdeu, mas não pode trapacear, pois para trapacear Bob ela teria que inventar um valor diferente para o valor aleatório rA , digamos rA‘ , que cumpre HrA‘|| «tesoura») = HrA || «pedra»). Mas essa fraude implicaria que Alice pode encontrar colisões na função hash, o que é considerado (computacionalmente) impossível (tecnicamente, a função hash deve ser resistente à segunda pré-imagem). Esta é a propriedade “inequívoca” (ou “vinculativa”) do esquema de compromisso: Alice não pode mudar de ideia após a fase de revelação.

Usar hashes como uma função de confirmação é a maneira mais simples de implementar um esquema de confirmação. No entanto, em aplicações reais, o compromisso pode ser necessário para exibir algumas propriedades especiais, como homomorfismo, que exigem funções matemáticas mais sofisticadas, com base em variantes Diffie-Hellman, ElGamal ou Schnorr. Um dos exemplos mais conhecidos é o compromisso Pedersen , muito simples e com a seguinte propriedade que é muito útil em muitas situações: se você cometeu duas mensagens m1 e m2 para os valores c1 e c2, respectivamente, então o produto dos dois compromissos, c1 × c2, é igual ao compromisso da soma das mensagens m1 + m2.

Aplicações dos esquemas de compromisso

Os esquemas de compromisso estão vendo novas aplicações graças ao recente desenvolvimento de novos protocolos criptográficos:

  • Assim como começamos o artigo jogando pedra-papel-tesoura pelo telefone, poderíamos usar versões dos esquemas de compromisso para qualquer outro jogo de azar jogado remotamente: desde jogar uma moeda a jogar pôquer mental e outros jogos de azar.  
  • Outra aplicação de esquemas de compromisso em conjunto com testes de conhecimento nulo é a construção de bancos de dados de conhecimento nulo , nos quais podem ser feitas consultas que apenas revelam se uma propriedade consultada é verdadeira ou não, como, por exemplo, se uma pessoa é maior de idade ou se tem saldo suficiente na conta, mas sem divulgar a idade ou saldo. Nesta aplicação, é usado um esquema especial denominado compromisso mercurial.
  • Os esquemas de compromisso também são uma parte fundamental de um esquema de compartilhamento de segredos verificável: a distribuição do segredo entre vários indivíduos é acompanhada por compromissos das partes do segredo que cada um possui. Os compromissos não revelam nada que possa ajudar uma parte desonesta, mas após a divulgação dos compromissos das partes cada indivíduo pode verificar se as partes estão corretas.
  • Esquemas de compromisso também estão sendo usados ​​em leilões ideais e confiáveis, nos quais o licitante deve se comprometer com o valor de uma oferta sem a possibilidade de recuar.
  • Polyswarm usa esquemas de compromisso em conjunto com contratos inteligentes no Ethereum. Polyswarm é um mercado de inteligência de ameaças descentralizado onde a detecção de ameaças é incentivada colocando dinheiro em jogo: a moeda virtual Nectar (NCT). Motores de diferentes fabricantes podem apostar dinheiro com base na confiança em suas próprias detecções. Eles comprometem seu veredicto calculando o hash Keccak na amostra de malware potencial junto com um número aleatório. Este hash representa seu compromisso com o artefato. Depois que um motor fala, não há como voltar atrás. Depois que a janela de compromisso é fechada, durante a qual os mecanismos podem fazer suas previsões, eles revelam seu veredicto original e seu número aleatório. Aqueles que fizeram avaliações corretas são recompensados, enquanto aqueles que falharam em suas previsões perdem suas apostas. Dessa forma, o Polyswarm recompensa a participação honesta no mercado, incentivando a qualidade e a detecção de malware exclusivo.

Leilões online, jogos de azar na Internet, assinatura de contrato inteligente, pesquisa segura de banco de dados, computação multiparte segura, testes de conhecimento zero, … há muitos aplicativos que exigem que as informações sejam ocultadas com segurança até agora em que pode ser revelado. Conforme o interesse em ambientes de computação públicos como blockchain cresce, os esquemas de engajamento continuarão a trazer confiança e impulsionar o florescimento de novas tecnologias seguras.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *