Ficheiros de configuração Preparação Preparação Geração de chaves para as assinaturas cegas e protocolo RSA

Geração de chaves para as assinaturas cegas e protocolo RSA

A geração de mais um conjunto de chaves para usar no protocolo das assinaturas cegas é também uma das partes de preparação da eleição. Estas chaves vão ser geradas pela mesa de voto, antes de começar o processo eleitoral.

Será o programa servidorG.py, que irá cumprir esse papel. Para o executar corre-se o comando:

python servidorG.py

É então necessário que a chave pública seja distribuída aos eleitores e que a chave privada fique em segredo. O local onde se colocará a chave privada deve ser configurado no ficheiro de configuração.

Essa geração é feita através dos seguintes passos:

      p = getPrime(200) 
      q = getPrime(200) 
      n = p*q 
      m = (p-1)*(q-1) 
      e = getPrime(30) 
      d = inverse(e,m)

A função gerPrime(N) gera um número primo. Ele é calculado através da geração aleatória de um número ímpar de N dígitos e a sua soma por 2 até se encontrar um primo. Para a verificação de primalidade, usa-se o teste de Rabin-Miller.

As operações seguintes, correspondem aos passos da geração de chaves para o protocolo RSA e a função inverse(e,m) é a implementação do teorema de Euclides para o cálculo do inverso de e módulo m

No final, temos na variável (e,n) a chave publica e em d a chave privada. Esses valores têm que ser gravados nos ficheiros que estão descritos na variável pubkey e prikey do ficheiro de configuração. A chave publica, deve ser publicada para todos os eleitores.


Nuno Pereira, 2 Junho 2004

Ficheiros de configuração Preparação Preparação Geração de chaves para as assinaturas cegas e protocolo RSA