Programa de avaliação de algoritmos criptográficos pós-quânticos da biblioteca quantCrypt.
Coletar métricas de desempenho e hardware durante a execução de algoritmos pós-quânticos:
- MLKEM_1024 (Key Encapsulation Mechanism)
- MLDSA_87 (Digital Signature Scheme)
- Krypton (Cipher)
- CPU Time (ms) - Tempo total de execução
- Memory (MB) - Consumo máximo de memória
- CPU Cycles - Ciclos de CPU utilizados
- Cache Misses - Falhas de cache L1/L2/L3
- Hardware Info - CPU, cores, frequência, RAM
src/
├── algorithms/ # Implementações usando quantCrypt
├── metrics/ # Profiling e coleta de métricas
└── orchestration/ # Execução e configuração
tests/
├── unit/ # Testes unitários
├── integration/ # Testes de integração
└── contract/ # Testes de contrato
docs/results/ # Relatórios Markdown gerados
pip install -r requirements.txt# Executar avaliação de um algoritmo
python -m src.orchestration.run_single MLKEM_1024 --volume 1000
# Gerar relatório individual
python -m src.orchestration.generate_report MLKEM_1024
# Análise de escalabilidade
python -m src.orchestration.run_scalability MLKEM_1024 --volumes 100,500,1000,5000pytestGerados em docs/results/<algorithm>/ no formato Markdown com timestamp PT-BR.
O projeto garante reprodutibilidade através de:
Todas as execuções utilizam seeds configuráveis:
# config.py
SEED = 42 # Seed global padrãoCada algoritmo aceita seed como parâmetro:
python -m src.orchestration.run_single MLKEM_1024 --volume 1000 --seed 12345Gere snapshot do ambiente para documentar configuração:
python scripts/hardware_audit.py --output audit.jsonO audit inclui:
- Hash SHA256 do ambiente (hardware + dependências)
- Versão Python e implementação
- Especificações CPU (modelo, arquitetura, frequência, núcleos)
- Memória total e disponível
- Versões exatas de todas as dependências
Relatórios incluem timestamp com precisão de milissegundos (formato PT-BR):
MLKEM_1024 - 04-11-2025 14h30m15s.123.md
Garante unicidade mesmo em execuções rápidas sucessivas.
Cada relatório inclui seção completa de hardware e configuração:
- CPU: modelo, arquitetura, frequência, núcleos
- Memória: total, disponível
- Sistema operacional
- Versão Python
- Seed utilizado
- Volume de operações
Verifique que profiling adiciona <10% de overhead (Princípio IV):
python scripts/measure_overhead.pySaída esperada:
=== Overhead de Profiling ===
Absoluto: 2.34 ms
Relativo: 4.56%
✓ PASS: Overhead < 10% (Princípio IV OK)
Valide que ProfilerManager é usado identicamente em todos os algoritmos:
python scripts/check_neutrality.pyGarante comparabilidade das métricas (Princípio VII).
Confirme que nenhuma implementação criptográfica customizada existe:
# Scan manual ou script automatizado
grep -r "def encrypt\|def decrypt\|def sign\|def verify" src/algorithms/
# Deve retornar vazio (apenas chamadas a quantCrypt)Execute suite completa de testes:
# Testes unitários
pytest tests/unit/ -v
# Testes de integração (incluindo overhead)
pytest tests/integration/ -v
# Testes de contrato
pytest tests/contract/ -v
# Coverage report
pytest --cov=src --cov-report=htmlEste projeto segue a Constituição v1.0.0:
- Princípio I: Uso exclusivo de quantCrypt (sem implementações customizadas)
- Princípio II: Métricas padronizadas (CPU, Memória, Ciclos, Cache, Hardware)
- Princípio III: TDD obrigatório (pytest)
- Princípio IV: Perfilamento com overhead <10%
- Princípio V: Reprodutibilidade via seeds, versões, hardware audit
- Princípio VI: Saída Markdown com tabulate
- Princípio VII: Neutralidade entre algoritmos (ProfilerManager idêntico)