Visão geral do procedimento de anonimização do sistema de votação eletrônica remoto

Em publicações anteriores Paramos no ponto em que, no sistema de votação eletrônica à distância que estamos analisando, um algoritmo criptográfico de "assinatura eletrônica cega" é utilizado para garantir o sigilo do voto e a anonimizacão do eleitor. Neste artigo, iremos aprofundar este tema.

Primeiro, vamos nos referir ao algoritmo de assinatura eletrônica conhecido e familiar, que é amplamente aplicado em sistemas de informação de diferentes finalidades. A base da assinatura eletrônica são os algoritmos criptográficos de criptografia assimétrica. A criptografia assimétrica envolve a utilização de 2 chaves: uma para criptografar e outra para descriptografar. Elas são denominadas chave pública e chave privada. A chave pública é conhecida por todos, enquanto a chave privada é mantida em um local inacessível, somente pelo detentor da assinatura eletrônica.

Ao assinar, ocorre o seguinte: primeiro, o documento eletrônico é transformado, através de transformações matemáticas, em uma sequência de símbolos de tamanho específico – isso é chamado de função hash.

A sequência de símbolos obtida (hash do documento) é criptografada pelo remetente do documento usando a chave privada e, junto com a chave pública, é enviada ao destinatário. O destinatário descriptografa a sequência de símbolos usando a chave pública, aplica a mesma função hash ao documento e compara o resultado da transformação com o resultado da descriptografia. Se tudo coincidir, significa que o documento não foi alterado após ser assinado pelo remetente.

As ações descritas permitem assegurar que o documento não foi alterado, mas não garantem que o remetente é realmente quem diz ser. Portanto, precisamos de uma terceira parte, que seja confiável tanto para o remetente quanto para o destinatário. Para isso, antes de enviar o documento, o remetente consulta a terceira parte e pede que ela assine sua chave pública com sua assinatura eletrônica. Agora, o remetente envia ao destinatário o documento, sua chave pública e a assinatura da terceira parte de sua chave. O destinatário verifica a assinatura da terceira parte da chave pública e confia na assinatura do documento recebida.

Agora, vamos abordar o que é uma "assinatura cega" e como ela pode nos ajudar na anonimização.

Vamos imaginar que, no exemplo acima, o remetente é um eleitor, o documento é um boletim e o destinatário é a comissão eleitoral, ou como mencionamos, o "componente de contabilização e contagem de votos". Como terceira parte (validador), teremos o componente "Lista de Eleitores". Neste caso, o processo pode ocorrer da seguinte maneira.

Visão geral do procedimento de anonimização do sistema de votação eletrônica remoto

O eleitor gera em seu dispositivo um par de chaves – uma privada e uma pública. Como essas chaves são criadas em seu dispositivo pessoal no navegador, elas são conhecidas apenas por ele.

Com essas chaves, ele assinará o boletim para garantir sua integridade. O boletim assinado e a chave pública são enviados à comissão eleitoral. Para que o boletim seja aceito pelo componente "Armazenamento e contagem de votos distribuídos", ele deve verificar se a chave pública foi assinada pelo validador.

O validador (componente "Lista de Eleitores") assinará a chave pública apenas após confirmar que o eleitor está presente na lista de eleitores.

Para resolver a tarefa de manter o voto em segredo, a chave pública do eleitor, gerada em seu dispositivo, não deve ser conhecida por ninguém. Isso significa que o validador deve assinar algo que ele desconhece. A tarefa parece impossível, mas aqui entram os algoritmos criptográficos – neste caso, o algoritmo de "assinatura cega".

Primeiro, no dispositivo do eleitor, a chave pública deve ser mascarada. A maskagem envolve realizar operações matemáticas específicas no dispositivo do usuário. Imagine que você pensou em um número aleatório de 1 a 100, depois pensou em um segundo aleatório de 1 a 10 e em um terceiro, de 10 a 50, elevou o número inicialmente pensado à potência do segundo e o dividiu sem resto pelo terceiro. O resultado obtido foi comunicado aos outros. Você não terá dificuldade em recuperar o número original, pois conhece a sequência de operações e os números que pensou. Mas os outros não conseguirão fazer isso.

A mascaramento (ofuscamento) da chave pública é realizado de acordo com um algoritmo criptográfico especial. Como resultado, o validador assina a chave pública ofuscada, enquanto a chave original permanece desconhecida para ele. No entanto, a particularidade do algoritmo é que o usuário (eleitor), ao receber a assinatura da chave ofuscada, pode realizar a reversão e obter uma assinatura válida também para a chave original, não ofuscada.

O algoritmo descrito é amplamente utilizado em protocolos de votação secreta. No sistema de votação eletrônica à distância, atualmente, o algoritmo RSA com um comprimento de chave de 4096 bits é utilizado para assinatura cega.

De forma geral, o procedimento de anonimização é o seguinte.

  1. Na criação da votação, é gerado um par de chaves separado para o "validador", com a chave pública sendo registrada na blockchain. Para cada votação, um par de chaves único é criado.
  2. O usuário se identifica no sistema de identificação (neste caso, no ESIA) e fornece permissão para a transmissão de seus dados de identificação do sistema de identificação para o sistema de votação eletrônica.
  3. O componente "Lista de Eleitores" do sistema de votação eletrônica verifica a presença do usuário na lista de eleitores.
  4. No dispositivo do usuário, suas chaves pessoais – privada e pública, conhecidas apenas por ele – são criadas.
  5. No dispositivo do usuário, a chave pública é ofuscada.
  6. Juntamente com os dados de identificação e a chave pública ofuscada, o usuário se dirige ao componente "Lista de Eleitores".
  7. O componente verifica novamente a presença do usuário na lista e o fato de que ele não recebeu uma assinatura anteriormente.
  8. Se todas as verificações forem bem-sucedidas, a chave é assinada.
  9. O fato da assinatura da chave é registrado na blockchain.
  10. O usuário, em seu dispositivo, remove a máscara da chave pública e obtém a chave privada, a chave pública e a assinatura da chave pública, sabendo que todas as chaves são conhecidas apenas por ele.
  11. Após isso, o usuário é redirecionado para uma zona anônima – para um site separado edg2020.gov.ru, onde não é possível identificá-lo (por exemplo, antes de ser redirecionado, ele pode conectar-se a VPN ou mudar de provedor de internet, alterando completamente o endereço IP)
  12. A aceitação do boletim dependerá apenas de a assinatura do "validador" passar na verificação e se tal chave não foi utilizada anteriormente.

A seguir, apresentaremos uma descrição do algoritmo do ponto de vista da criptografia.
Parâmetros de assinatura e anotações:

Visão geral do procedimento de anonimização do sistema de votação eletrônica remoto
Visão geral do procedimento de anonimização do sistema de votação eletrônica remoto

M – no formato padding FDN para assinatura.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster