
Coleta de entropia de código aberto a partir de fontes de hardware não convencionais. SDK em Rust + Python.
Meça e operacionalize entropia de hardware para pesquisa e segurança.
Colete entropia de fontes de hardware no dispositivo, analise a qualidade da fonte com testes estatísticos e forneça saída bruta ou condicionada através de interfaces CLI, Rust, Python e HTTP.
Um único fluxo de trabalho para pesquisa, validação e implantação criptográfica de entropia.
Por Amenti Labs
# Instalar
cargo install openentropy-cli
# Descobrir fontes de entropia na sua máquina
openentropy scan
# Benchmark de todas as fontes rápidas
openentropy bench
# Saída de 64 bytes hexadecimais aleatórios
openentropy stream --format hex --bytes 64
# Painel TUI ao vivo
openentropy monitor
Por padrão, apenas fontes rápidas (<2s) são usadas. Passe
--allpara incluir fontes mais lentas (DNS, TCP, GPU, BLE). O alias posicionalalltambém é aceito para compatibilidade.
A maioria das fontes do OpenEntropy vem da própria máquina hospedeira. O OpenEntropy também suporta dispositivos de hardware externos quando estão conectados e detectáveis:
qcicada. O OpenEntropy pode ler a saída quântica do dispositivo e fazer benchmark, analisar, gravar ou compará-la juntamente com as fontes do hospedeiro. Os modos de saída do próprio dispositivo mapeiam para raw, sha256 e samples, e o OpenEntropy agora usa o helper de modo contínuo de início fresco do qcicada 0.2.2, que descarta a entrada já armazenada em buffer do dispositivo uma vez após entrar no modo contínuo, em vez de servir a primeira leitura a partir de bytes enfileirados obsoletos. Consulte o manual do QCicada.pip install openentropy
from openentropy import EntropyPool, detect_available_sources
sources = detect_available_sources()
print(f"{len(sources)} fontes de entropia disponíveis")
pool = EntropyPool.auto()
source = sources[0]["name"]
data = pool.get_source_bytes(source, 256, conditioning="sha256")
Compilar a partir do código fonte (extensão nativa):
git clone https://github.com/amenti-labs/openentropy.git && cd openentropy
pip install maturin
maturin develop
Engenheiros de segurança usam o OpenEntropy para validar a qualidade da entropia e semear CSPRNGs:
openentropy analyze --profile security --output audit.md
Pesquisadores usam o OpenEntropy para estudar características de ruído bruto:
openentropy analyze --profile deep --output analysis.json
Engenheiros de segurança semeiam CSPRNGs, geram chaves e complementam /dev/urandom com entropia de hardware independente. A saída condicionada por SHA-256 (--conditioning sha256, o padrão) produz bytes aleatórios de qualidade criptográfica. O perfil security ativa a bateria de testes NIST, a análise de min-entropia e o condicionamento SHA-256 em um único parâmetro.
Pesquisadores estudam as características de ruído bruto de subsistemas de hardware. Passe --conditioning raw para obter bytes não branqueados e não condicionados que preservam o sinal de ruído real de cada fonte. O perfil deep ativa 100K amostras, correlação cruzada e análise de tentativas estilo PEAR.
O modo bruto permite:
A maioria dos geradores de números aleatórios são pseudorrandômicos — algoritmos determinísticos semeados uma vez. O OpenEntropy coleta continuamente ruído físico real do seu hardware:
O pool combina fluxos independentes via XOR. Nenhuma falha de fonte única pode comprometer o pool.
O condicionamento é opcional e configurável. Use --conditioning na CLI ou ?conditioning= na API HTTP:
| Modo | Bandeira | Descrição |
|---|---|---|
| SHA-256 (padrão) | --conditioning sha256 | Condicionamento SHA-256. Saída de qualidade criptográfica. |
| Von Neumann | --conditioning vonneumann | Apenas desbiasedor — remove viés enquanto preserva mais da estrutura do sinal bruto. |
| Bruto | --conditioning raw | Nenhum processamento. Bytes da fonte sem branqueamento — preserva o sinal de ruído real do hardware para pesquisa. |
O modo bruto é o que torna o OpenEntropy útil para pesquisa. A maioria das APIs HWRNG executa pós-processamento DRBG que faz toda fonte parecer bytes aleatórios uniformes, destruindo as informações que os pesquisadores precisam. A saída bruta preserva a estrutura de ruído por fonte: viés, autocorrelação, características espectrais e correlações entre fontes. Consulte Condicionamento para detalhes.