Visão geral do procedimento de anonimato do sistema de votação eletrônica remota

В publicações anteriores Decidimos que no sistema de votação eletrônica remota que estamos considerando, um algoritmo criptográfico de “assinatura eletrônica cega” é utilizado para garantir o sigilo da votação e anonimizar o eleitor. Neste artigo veremos isso com mais detalhes.

Primeiro, vamos nos voltar para o conhecido e familiar algoritmo de assinatura eletrônica, que é amplamente utilizado em sistemas de informação para diversos fins. A assinatura eletrônica é baseada em algoritmos de criptografia criptográfica assimétrica. A criptografia assimétrica é a criptografia que usa 2 chaves: uma delas é usada para criptografia e a outra para descriptografia. Eles são chamados de chave aberta (pública) e privada. A chave pública é conhecida por terceiros, e a chave privada é conhecida apenas pelo proprietário da assinatura eletrônica e é armazenada em local inacessível a terceiros.

Ao assinar, acontece o seguinte: primeiro, o documento eletrônico, por meio de transformações matemáticas, é reduzido a uma sequência de caracteres de determinado tamanho - isso é chamado de função hash.

A sequência de caracteres resultante (um hash do documento) é criptografada pelo remetente do documento usando uma chave privada e, juntamente com a chave pública, é enviada ao destinatário. O destinatário descriptografa a sequência de caracteres usando a chave pública, aplica exatamente a mesma função hash ao documento e compara o resultado da conversão com o resultado da descriptografia. Se tudo corresponder, nenhuma alteração foi feita no documento após sua assinatura pelo remetente.

As ações descritas permitem verificar se o documento não foi alterado, mas não permitem verificar se o remetente é realmente quem afirma ser. Portanto, precisamos de um terceiro em quem o remetente e o destinatário confiem. Para isso, antes de enviar o documento, o remetente entra em contato com um terceiro e solicita que ele assine sua chave pública com sua assinatura eletrônica. O remetente agora envia ao destinatário o documento, sua chave pública e uma assinatura de sua chave por terceiros. O destinatário verifica a assinatura do terceiro na chave pública e confia na assinatura do documento resultante.

Agora vamos ver o que é uma “assinatura cega” e como ela pode nos ajudar no anonimato.

Imaginemos que no exemplo descrito acima, o remetente é o eleitor, o documento é a cédula e o destinatário é a comissão eleitoral, ou como dissemos “o componente de contagem de votos”. Teremos o componente “Lista de Eleitores” como terceiro (validador). Neste caso, o processo pode ocorrer da seguinte forma.

Visão geral do procedimento de anonimato do sistema de votação eletrônica remota

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

Usando essas chaves, ele assinará a cédula para controlar sua integridade. Ele envia a cédula assinada e a chave pública à comissão eleitoral. Para que uma cédula seja aceita pelo componente Armazenamento e Contagem Distribuída de Votos, ele deve verificar se a chave pública está assinada pelo validador.

O validador (componente Lista de Eleitores) assinará a chave pública somente após verificar se o eleitor está na lista de eleitores.

Para resolver o problema da preservação do sigilo do voto, a chave pública do eleitor criada em seu aparelho não deve ser do conhecimento de ninguém. Acontece que o validador deve assinar algo que lhe é desconhecido. A tarefa parece impossível, mas aqui os algoritmos criptográficos vêm em socorro - neste caso, o algoritmo de “assinatura cega”

Primeiro, a chave pública deve ser mascarada no dispositivo do eleitor. Mascaramento é a execução de operações matemáticas individuais no dispositivo do usuário. Imagine que você pensou em um número aleatório de 1 a 100, depois pensou em um segundo número aleatório de 1 a 10 e um terceiro, de 10 a 50, elevou o número inicialmente pensado à potência do segundo número, e o dividiu sem um resto pelo terceiro. O resultado foi relatado a outras pessoas. Não será difícil restaurar o número original, pois você conhece a sequência de ações e os números que tem em mente. Mas aqueles ao seu redor não serão capazes de fazer isso.

O mascaramento (cegueira) da chave pública é realizado de acordo com um algoritmo criptográfico especial. Como resultado, o validador assina uma chave pública mascarada sem conhecer a chave original. Mas a peculiaridade do algoritmo é que o usuário (eleitor), tendo recebido uma assinatura para uma chave mascarada, pode fazer transformações reversas e obter uma assinatura válida para a chave original não mascarada.

O algoritmo descrito é amplamente utilizado em protocolos de votação secreta. O sistema de votação eletrônica remota utiliza atualmente o algoritmo RSA com um comprimento de chave de 4096 bits para assinaturas cegas.

Em geral, o procedimento de anonimato é o seguinte.

  1. Quando uma votação é criada, um par de chaves “validador” separado é criado e a chave pública é registrada no blockchain. Um par de chaves exclusivo é criado para cada voto.
  2. O utilizador é identificado no sistema de identificação (neste caso, no ESIA), e dá permissão para transferir os seus dados de identificação do sistema de identificação para o DEG PTC.
  3. A componente “Lista de Eleitores” do DEG PTC verifica a presença do utilizador na lista de eleitores.
  4. No dispositivo do usuário são criadas suas chaves pessoais - privadas e públicas, conhecidas apenas por ele.
  5. A chave pública está mascarada no dispositivo do usuário
  6. Juntamente com os dados de identificação e uma chave pública mascarada, o utilizador acede à componente “Lista de Eleitores”
  7. O componente verifica mais uma vez a presença do usuário na lista e o fato de ele não ter recebido assinatura antes
  8. Se todas as verificações forem bem-sucedidas, a chave será assinada
  9. O fato de assinar a chave fica registrado no blockchain
  10. O usuário em seu dispositivo remove a máscara da chave pública e recebe uma chave privada, uma chave pública e uma assinatura na chave pública, sendo que todas as chaves são conhecidas apenas por ele.
  11. Depois disso, o usuário é transferido para uma zona anônima - para um site separado edg2020.gov.ru, onde é impossível identificá-lo (por exemplo, antes da transição ele pode conectar uma VPN ou mudar de provedor de Internet, mudando completamente o Endereço de IP)
  12. A aceitação da cédula dependerá apenas da verificação da assinatura do “validador” e de tal chave não ter sido utilizada anteriormente.

A seguir, fornecemos uma descrição do algoritmo do ponto de vista da criptografia.
Opções de assinatura e designação:

Visão geral do procedimento de anonimato do sistema de votação eletrônica remota
Visão geral do procedimento de anonimato do sistema de votação eletrônica remota

M – em formato de preenchimento FDN para assinatura.

Fonte: habr.com

Adicionar um comentário