Aplicações

Os “pulsos” de números aleatórios podem ser utilizados em quaisquer aplicações que necessitem de números aleatórios públicos. O exemplo mais evidente é o de “sorteios”, mas outras aplicações podem ser consideradas, tais como aplicações de “amostragem” e diversos protocolos criptográficos. Descrevemos, a seguir, algumas aplicações que se beneficiam da disponibilidade de “pulsos de aleatoriedade” (exemplos adaptados de https://www.nist.gov/programs-projects/nist-randomness-beacon).

 

Amostragem

Proteção contra sabotagem industrial, assegurando controle de qualidade, evitando medidas protecionistas clandestinas, garantindo a precisão dos testes ambientais.

O cenário geral é o seguinte: de um grande número de itens, alguns devem ser testados para controle de qualidade. Isso ocorre em processos de fabricação, transações comerciais, inspeção agrícola, testes ambientais e muitos outros cenários.

Às vezes o teste destrói o item testado, outras vezes o teste é muito caro por item testado. Como decidimos quais poucos itens serão testados? O método usual é “escolher os itens aleatoriamente”. Para isso, precisamos de números aleatórios. Como e por quem são esses números a serem gerados?

Considere o seguinte cenário. Uma fábrica produz um componente específico para, digamos, computadores. Os componentes possuem números de série. Sob certas condições (por exemplo, quando os sistemas de controle ambiental da usina não estão funcionando adequadamente), o número de peças defeituosas aumenta. Correlações complexas (ou adulteração não detectada), com o gerador de números aleatórios usado para amostragem, podem levar a estimativas errôneas da porcentagem de peças defeituosas. A incerteza sobre esses fatores é frequentemente abordada pelo aumento da frequência e complexidade dos mecanismos de controle de qualidade. O “pulso de aleatoriedade” fornece uma solução muito mais simples para esse problema.

Cenários análogos aos anteriores ocorrem em muitas configurações.

Sabotagem industrial: uma garrafa de um medicamento vendido sem receita médica é adulterada (por exemplo, as pílulas podem ser substituídas por pílulas falsificadas). Se o sabotador puder fazer com que a garrafa seja testada como parte de um “regime de teste aleatório”, o fabricante poderá incorrer em perdas enormes.

Protecionismo clandestino: um carregamento de frutas chega a um porto estrangeiro. O governo local testa um caixote e descobre que ele está infectado por uma praga perigosa. O descarregamento da carga é evitado e a fruta apodrece. As instituições internacionais são informadas e um embargo temporário é emitido. Testes subseqüentes da remessa não encontram outra fruta infectada. O governo local admite que foi avisado por um interlocutor anônimo para testar essa caixa particular. Casos semelhantes a isso aconteceram no passado. Parcialmente em resposta a isso, as organizações internacionais de comércio estão revisando os protocolos que levam ao embargo. Uma fonte de aleatoriedade confiável, com registro de data e hora e autenticada poderia potencialmente permitir às diversas partes interessadas distinguir entre carga testada como parte de amostragem aleatória e carga testada “por outras razões”. Os protocolos seriam então capazes de levar em conta tais informações para conter os danos aos consumidores e produtores.

Testes ambientais: amostras de água de um rio devem ser coletadas e testadas quanto à contaminação. Quem decide onde e quando coletar as amostras? Se a hora e a localização da amostragem de água forem influenciadas por condições ambientais ou por adulteração do gerador de números aleatórios, as leituras incorretas podem levar a subestimativas ou superestimadas dos níveis de contaminação. Isso pode levar a danos ambientais não detectados ou causar perdas financeiras injustificadas a usinas industriais que usam o rio.

 

Novos Mecanismos de Autenticação Segura

Suponha que um cartão inteligente seja usado para autenticar o usuário em um dispositivo de verificação, como um caixa eletrônico ou uma fechadura eletrônica. Além disso, suponha que o método de autenticação consiste no cartão inteligente provando ao dispositivo de verificação que ele conhece o componente secreto de uma chave RSA registrada N. A prova deve ser tal que o dispositivo de verificação não aprende nenhuma informação sobre a chave secreta do cartão.

Os teóricos dos números há muito sabem que isso pode ser conseguido fazendo com que o cartão inteligente produza uma raiz quadrada modular de um número gerado aleatoriamente. O último número é chamado de “desafio”, e esse tipo de protocolo é chamado de “protocolo de desafio-resposta”. A necessidade de ambas as partes terem certeza de que a outra não controla o desafio é fundamental para a segurança. Neste exemplo, se o cartão inteligente tiver permissão para gerar o desafio, ele poderá emitir uma resposta, independentemente de saber ou não a fatoração de N. Por outro lado, se o dispositivo de verificação for capaz de gerar o desafio, ele pode “roubar” a chave secreta do cartão. Existem protocolos multi-round que permitem que duas partes gerem em conjunto um número aleatório. Os protocolos multi-round podem ser caros em termos de tempo e computação, especialmente se uma das partes envolvidas estiver altamente restrita em memória e velocidade. O Randomness Beacon permite uma prova de uma rodada (se o Beacon for acessado pelo verificador) ou até mesmo uma prova de uma mensagem (se a placa acessar o Beacon). Observe que o registro de data e hora e a assinatura na saída do Beacon permitem que um ou ambos os dispositivos estejam off-line no momento em que executam o protocolo de autenticação.

 

Computação multipartite segura

A computação multipartite segura resolve o seguinte problema: várias partes têm entradas privadas; eles desejam calcular uma função dessas entradas sem comprometer a privacidade das entradas. Um exemplo de tal cenário são as eleições via voto secreto. Outro é o chamado “problema do namoro”, em que duas pessoas gostariam de saber se ambos gostam um do outro, mas cada uma das partes reluta em dizer “eu gosto de você” e ser rejeitada pelo outro.

Outro exemplo é o seguinte. Um Comitê Executivo Departamental de 11 membros deve votar uma questão acadêmica contenciosa. A moção é aprovada se 7 ou mais votos “sim” forem recebidos. Para manter o sigilo do voto, é fundamental que o número real de votos não seja revelado. Ou seja, o Comitê só deseja saber o resultado da função booleana F (votos) = “pelo menos sete votos sim”.

Soluções para esses problemas de protocolo existem, mas podem ser caras e até impraticáveis, já que elas são tipicamente baseadas em métodos de desafio-resposta. O recurso “transmissão autenticada” do Beacon pode ser utilizado para construir soluções práticas para muitos desses problemas no ambiente on-line.