
Recolección de entropía de código abierto desde fuentes de hardware no convencionales. SDK de Rust + Python.
Mide y operacionaliza la entropía de hardware para investigación y seguridad.
Recopila entropía de fuentes de hardware del dispositivo, analiza la calidad de la fuente con pruebas estadísticas y entrega salida cruda o acondicionada a través de interfaces CLI, Rust, Python y HTTP.
Un flujo de trabajo para investigación, validación y despliegue criptográfico de entropía.
Por Amenti Labs
# Instalar
cargo install openentropy-cli
# Descubrir fuentes de entropía en tu máquina
openentropy scan
# Medir el rendimiento de todas las fuentes rápidas
openentropy bench
# Generar 64 bytes hexadecimales aleatorios
openentropy stream --format hex --bytes 64
# Panel TUI en vivo
openentropy monitor
Por defecto, solo se usan fuentes rápidas (<2s). Pasa
--allpara incluir fuentes más lentas (DNS, TCP, GPU, BLE). El alias posicionalalltambién se acepta para compatibilidad.
La mayoría de las fuentes de OpenEntropy provienen del propio equipo anfitrión. OpenEntropy también admite dispositivos de hardware externos cuando están conectados y son detectables:
qcicada. OpenEntropy puede leer la salida cuántica del dispositivo y medir, analizar, registrar o comparar su rendimiento junto con las fuentes locales. Los modos de salida del dispositivo se corresponden con raw, sha256 y samples, y OpenEntropy ahora utiliza el asistente de modo continuo de inicio nuevo de QCicada desde qcicada 0.2.2, por lo que descarta cualquier entrada ya almacenada en el búfer del dispositivo una vez al entrar en modo continuo en lugar de servir la primera lectura a partir de bytes obsoletos en cola. Consulta el manual de QCicada.pip install openentropy
from openentropy import EntropyPool, detect_available_sources
sources = detect_available_sources()
print(f"{len(sources)} fuentes de entropía disponibles")
pool = EntropyPool.auto()
source = sources[0]["name"]
data = pool.get_source_bytes(source, 256, conditioning="sha256")
Compilar desde el código fuente (extensión nativa):
git clone https://github.com/amenti-labs/openentropy.git && cd openentropy
pip install maturin
maturin develop
Los ingenieros de seguridad usan OpenEntropy para validar la calidad de la entropía y sembrar CSPRNGs:
openentropy analyze --profile security --output audit.md
Los investigadores usan OpenEntropy para estudiar las características del ruido crudo:
openentropy analyze --profile deep --output analysis.json
Los ingenieros de seguridad siembran CSPRNGs, generan claves y complementan /dev/urandom con entropía de hardware independiente. La salida acondicionada con SHA-256 (--conditioning sha256, el valor predeterminado) produce bytes aleatorios de calidad criptográfica. El perfil security habilita la batería de pruebas NIST, el desglose de entropía mínima y el acondicionamiento SHA-256 en un solo indicador.
Los investigadores estudian las características del ruido crudo de los subsistemas de hardware. Pasa --conditioning raw para obtener bytes sin blanquear ni acondicionar que preserven la señal de ruido real de cada fuente. El perfil deep habilita 100K muestras, correlación cruzada y análisis de ensayos estilo PEAR.
El modo crudo permite:
La mayoría de los generadores de números aleatorios son pseudoaleatorios — algoritmos deterministas sembrados una vez. OpenEntropy cosecha continuamente ruido físico real de tu hardware:
El pool combina flujos independientes mediante XOR. Ningún fallo de una sola fuente puede comprometer el pool.
El acondicionamiento es opcional y configurable. Usa --conditioning en la CLI o ?conditioning= en la API HTTP:
| Modo | Bandera | Descripción |
|---|---|---|
| SHA-256 (predeterminado) | --conditioning sha256 | Acondicionamiento SHA-256. Salida de calidad criptográfica. |
| Von Neumann | --conditioning vonneumann | Solo desviación — elimina el sesgo mientras preserva más de la estructura de la señal cruda. |
| Crudo | --conditioning raw | Sin procesamiento. Bytes de fuente sin blanqueo — preserva la señal de ruido real del hardware para investigación. |
El modo crudo es lo que hace que OpenEntropy sea útil para la investigación. La mayoría de las API de HWRNG ejecutan postprocesamiento DRBG que hace que toda fuente parezca bytes aleatorios uniformes, destruyendo la información que los investigadores necesitan. La salida cruda preserva la estructura de ruido por fuente: sesgo, autocorrelación, características espectrales y correlaciones entre fuentes. Consulta Acondicionamiento para más detalles.