Skip to content

Latest commit

 

History

History
110 lines (70 loc) · 3.5 KB

README.md

File metadata and controls

110 lines (70 loc) · 3.5 KB

Python 3.8.10

Totalizador de VVPATs por Visão Computacional

Construção de uma ferramenta para totalização de registros impressos de voto de forma auditável, utilizando visão computacional e primitivas da criptografia (Projeto de Iniciação Científica - DCOMP - UFSJ).

Requisitos

  • Python 3.6 ou superior e gerenciador de pacotes pip:

    sudo apt install python3 python3-pip build-essential python3-dev
    
  • Biblioteca OpenCV:

    pip install opencv-python
    
  • Biblioteca PyCryptodome:

    pip install pycryptodomex
    
  • Biblioteca python-barcode:

    pip install python-barcode
    
  • Biblioteca qrcode:

    pip install qrcode[pil]
    
  • Biblioteca numpy:

    pip install numpy
    
  • Para instalar todas as dependências:

    ./install_dependencies.sh
    

Software

Módulos Funcionais

  • digitalSignature.py
  • electionConfiguration.py
  • ellipticCurve.py
  • geradorBoletas.py
  • geradorVotos.py
  • imprimeResultado.py
  • readVote.py
  • voteMarking.py
  • voteTotalizationAndVideoRecording.py
  • voteTotalizationByCamera.py
  • voteTotalizationByVideo.py

Execução

Módulo electionConfiguration.py:

python3 electionConfiguration.py
  • Exemplo de entrada (*):

    Teste
    DCOMP
    3
    01/01/3022
    12:00
    03/01/3022
    12:00
    Cargo 1
    1
    2
    Cargo 2
    2
    1
    Cargo 3
    3
    3
    dcomp
    sjdr
    
  • (*) Devem existir arquivos JSON contendo informações sobre os candidatos e eleitores, assim como as informações dos cargos devem ser compatíveis com os mesmos para que a eleição seja configurada de forma correta.

Módulo geradorVotos.py (*):

python3 geradorVotos.py
  • (*) Deve existir uma eleição já cadastrada (por consequência um layout de boleta configurado) para que se possa simular uma escolha de voto isolada.

Módulo readVote.py (*):

python3 readVote.py
  • (*) Deve existir previamente uma boleta configurada (e possivelmente com votos marcados) para que esta possa ser lida de forma independente.

Módulo voteTotalizationAndVideoRecording.py (*):

python3 voteTotalizationAndVideoRecording.py
  • (*) Deve existir uma eleição já configurada e também escolhas de voto no diretório de urna, para que se possa aplicar os processos de totalização por diretório ou geração do vídeo de auditoria.

Módulo voteTotalizationAndVideoRecording.py (*):

python3 voteTotalizationByVideo.py
  • (*) Deve existir uma eleição já configurada e um vídeo de auditoria previamente gerado contendo as escolhas de voto para realizar a totalização por vídeo.

Outros

  • Artigo curto sobre o projeto, publicado nos Anais Estendidos do Simpósio Brasileiro de Segurança da Informação e de Sistemas Computacionais (SBSeg 2022)