Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/amenti-labs/openentropy
Análisis EstáticoCriptografíaSeguridad de HardwarePapers e InvestigaciónAprendizaje y Educación
GitHubamenti-labs/openentropy

openentropy

Recolección de entropía de código abierto desde fuentes de hardware no convencionales. SDK de Rust + Python.

Ver Repositorio
2822hace 6 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
logotipo de openentropy

openentropy

Mide y operacionaliza la entropía de hardware para investigación y seguridad.

Crates.io PyPI docs.rs Docs License: MIT CI Platform

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


Inicio rápido

root@kitploit:~
# 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 --all para incluir fuentes más lentas (DNS, TCP, GPU, BLE). El alias posicional all también se acepta para compatibilidad.

Hardware QRNG externo

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:

  • Crypta Labs QCicada USB QRNG — expuesto como la fuente 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.

Python

root@kitploit:~
pip install openentropy
root@kitploit:~
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):

root@kitploit:~
git clone https://github.com/amenti-labs/openentropy.git && cd openentropy
pip install maturin
maturin develop

Dos audiencias

Los ingenieros de seguridad usan OpenEntropy para validar la calidad de la entropía y sembrar CSPRNGs:

root@kitploit:~
openentropy analyze --profile security --output audit.md

Los investigadores usan OpenEntropy para estudiar las características del ruido crudo:

root@kitploit:~
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:

  • Caracterización del hardware — medir entropía mínima, autocorrelación y propiedades espectrales de fuentes de ruido individuales
  • Validación de silicio — comparar perfiles de ruido entre revisiones de chip, estados térmicos y dominios de voltaje
  • Detección de anomalías — monitorear la salud de las fuentes de entropía en busca de signos de degradación o manipulación del hardware
  • Análisis entre dominios — estudiar correlaciones entre dominios de entropía independientes (térmico vs temporización vs IPC)

¿Qué lo hace diferente?

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:

  • Ruido térmico — tres latidos de osciladores independientes (cristal de CPU vs PLL de audio, PLL de pantalla, PLL de PHY PCIe)
  • Temporización y microarquitectura — ruido de fase de reloj, conflictos de búfer de fila DRAM, varianza de ejecución especulativa, TLB shootdowns, carreras DVFS, contención de bus ICC, estado de prefetcher, temporización JIT APRR, cruce de dominio de reloj ANE
  • E/S y IPC — latencia de disco y NVMe (incluyendo sondeo de sensores IOKit, dispositivo raw y paso a través de Linux), enumeración USB, IPC Mach port, asignación de búfer de pipe, eventos kqueue, journal fsync
  • GPU y computación — divergencia de warp GPU, temporización entre dominios IOSurface, temporización de inferencia Neural Engine
  • Planificación y sistema — deriva de nanosleep, colas de distribución GCD, ciclo de vida de hilos, migración P/E-core, temporización de coalescencia de temporizadores, contadores de kernel, instantáneas de tabla de procesos
  • Red y sensores — temporización de resolución DNS, varianza de handshake TCP, RSSI WiFi, RF ambiente BLE, ruido ADC de audio
  • Hardware profundo — latidos de dominio de reloj dual, SITVA, cambio de contexto AES-XTS, difusión SEV, seqlock COMMPAGE, termistor SMC, resiembra TRNG getentropy

El pool combina flujos independientes mediante XOR. Ningún fallo de una sola fuente puede comprometer el pool.

Modos de acondicionamiento

El acondicionamiento es opcional y configurable. Usa --conditioning en la CLI o ?conditioning= en la API HTTP:

ModoBanderaDescripción
SHA-256 (predeterminado)--conditioning sha256Acondicionamiento SHA-256. Salida de calidad criptográfica.
Von Neumann--conditioning vonneumannSolo desviación — elimina el sesgo mientras preserva más de la estructura de la señal cruda.
Crudo--conditioning rawSin 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.


Documentación

  • Sitio de documentación: https://amenti-labs.github.io/openentropy/
  • Paquete PyPI: https://pypi.org/project/openentropy/
DocumentoDescripción
Catálogo de fuentesCatálogo de fuentes con explicaciones físicas y notas de plataforma
Referencia de CLIReferencia completa de comandos y ejemplos
AcondicionamientoModos de acondicionamiento: Crudo vs VonNeumann vs SHA-256
Metodología de análisis de ensayosEnsayos de 200 bits estilo PEAR, puerta de calibración y referencias
Modelo de telemetríaModelo de contexto experimental telemetry_v1 y puntos de integración
Referencia de API RustSuperficie de API central de Rust
ArquitecturaEstructura de crates y decisiones de diseño
SDK de PythonEnlaces PyO3 y referencia de API de Python
EjemplosEjemplos de código en Rust y Python
Solución de problemasProblemas comunes y correcciones
SeguridadModelo de amenazas y divulgación responsable

Agradecimientos

El mapa de ruta ampliado de análisis estadístico y el inventario de métodos fueron informados por:

  • vikingdude81/qrng-analysis-toolkit

Agradecemos el trabajo de código abierto que ayudó a dar forma a esta superficie de análisis comparativo QRNG/PRNG.


Fuentes de entropía

El registro actual de fuentes abarca 13 categorías basadas en mecanismos; la disponibilidad real varía según la plataforma:

CategoríaCantidad
Térmica4
Temporización7
Planificación6
E/S6
IPC4
Microarquitectura16
GPU3
Red3
Sistema6
Señal3
Sensor4
Cuántica1

Para descripciones completas por fuente, disponibilidad en plataformas y notas físicas, consulta Catálogo de fuentes.

Hardware externo actualmente compatible:

  • qcicada — Crypta Labs QCicada USB QRNG (manual)

Referencia de CLI

Para la referencia completa de comandos y ejemplos, consulta Referencia de CLI.

Flujos de trabajo más usados:

root@kitploit:~
openentropy scan
openentropy bench
openentropy stream --format hex --bytes 64
openentropy analyze --profile security         # Batería NIST + entropía + sha256
openentropy analyze --profile deep             # 100K + forense + correlación cruzada + ensayos
openentropy record clock_jitter --duration 30s
openentropy sessions sessions/<id> --profile deep
openentropy compare sessions/<id-a> sessions/<id-b> --profile deep

En sessions, los ajustes predefinidos de perfil solo se aplican cuando se proporciona una ruta de sesión específica. openentropy sessions sin ruta siempre permanece en modo lista.

Las referencias de la metodología de ensayos estilo PEAR (ensayos de 200 bits, Z terminal, composición Stouffer ponderada, puerta de calibración) están documentadas en Metodología de análisis de ensayos.


API de Rust

root@kitploit:~
[dependencies]
openentropy-core = "0.12"
root@kitploit:~
use openentropy_core::{ConditioningMode, EntropyPool, detect_available_sources};

let sources = detect_available_sources();
println!("{} fuentes disponibles", sources.len());

let pool = EntropyPool::auto();
let source = pool.source_names()[0].clone();
let bytes = pool
    .get_source_bytes(&source, 256, ConditioningMode::Sha256)
    .unwrap();
let health = pool.health_report();

Analiza y compara datos de entropía mediante programación:

root@kitploit:~
use openentropy_core::{full_analysis, compare, trial_analysis};

let data = pool.get_source_raw_bytes(&source, 5000).unwrap();

// Análisis estadístico por fuente
let analysis = full_analysis(&source, &data);
println!("Entropía de Shannon: {:.4} bits/byte", analysis.shannon_entropy);

// Comparación diferencial de dos flujos
let other = pool.get_source_raw_bytes(&source, 5000).unwrap();
let diff = compare("stream_a", &data, "stream_b", &other);

// Análisis de ensayos estilo PEAR
let trials = trial_analysis(&data, &Default::default());
println!("Z terminal: {:.4}, p = {:.4}", trials.terminal_z, trials.terminal_p_value);

Análisis de teoría del caos (distinguir aleatoriedad real de caos determinista):

root@kitploit:~
use openentropy_core::chaos::chaos_analysis;

let result = chaos_analysis(&data);
println!("Hurst H={:.4}, Lyapunov λ={:.4}, D₂={:.4}",
    result.hurst.hurst_exponent,
    result.lyapunov.lyapunov_exponent,
    result.correlation_dimension.dimension);

Arquitectura

Workspace de Cargo con 6 crates:

CrateDescripción
openentropy-coreBiblioteca principal — fuentes, pool, acondicionamiento
openentropy-cliBinario CLI con panel TUI
openentropy-serverServidor HTTP de entropía con Axum
openentropy-testsBatería de pruebas inspirada en NIST SP 800-22
openentropy-pythonEnlaces para Python mediante PyO3/maturin
openentropy-wasmCrate de entropía para WebAssembly/navegador
root@kitploit:~
flowchart TD
    Sources[Sources 63] --> Raw[raw samples]
    Raw --> Pool[Entropy Pool XOR combine]
    Pool --> Modes{Conditioning mode}
    Modes -->|default| Sha[sha256]
    Modes --> Vn[vonneumann]
    Modes -->|passthrough| RawMode[raw]
    Sha --> Output[Output surfaces]
    Vn --> Output
    RawMode --> Output
    Output --> Rust[Rust API]
    Output --> CLI[CLI and TUI]
    Output --> Http[HTTP Server]
    Output --> Pipe[Named Pipe]
    Output --> Py[Python SDK]

Soporte de plataformas

PlataformaFuentesNotas
MacBook (M-series)63/63Suite completa — WiFi, BLE, cámara, micrófono
Mac Mini / Studio / Pro50–55Sin cámara integrada, micrófono en algunos modelos
Intel Mac~20Algunas fuentes de silicio/microarquitectura son específicas de ARM
Linux12–15Fuentes de temporización, red, disco, procesos + paso a través de NVMe

La biblioteca detecta el hardware disponible en tiempo de ejecución y solo activa las fuentes que funcionan.


Compilar desde el código fuente

Requiere Rust 1.85+ y macOS o Linux.

root@kitploit:~
git clone https://github.com/amenti-labs/openentropy.git
cd openentropy
cargo build --release --workspace --exclude openentropy-python
cargo test --workspace --exclude openentropy-python
cargo install --path crates/openentropy-cli

Paquete Python

root@kitploit:~
pip install maturin
maturin develop --release
python3 -c "from openentropy import EntropyPool; print(EntropyPool.auto().get_random_bytes(16).hex())"

Contribuir

Consulta CONTRIBUTING.md. Ideas:

  • Nuevas fuentes de entropía (especialmente específicas de Linux)
  • Mejoras de rendimiento
  • Implementaciones adicionales de pruebas NIST
  • Soporte para plataforma Windows

Referencias

  • NIST SP 800-22: Un conjunto de pruebas estadísticas para generadores de números aleatorios y pseudoaleatorios
  • Bone, A. (2026): QRNG Analysis Toolkit — los métodos de análisis de teoría del caos (exponente de Hurst, exponente de Lyapunov, dimensión de correlación, BiEntropy, Epiplexity) fueron reimplementados en Rust a partir de definiciones matemáticas, inspirados en este toolkit de Python
  • Croll, G.J. (2013): BiEntropy — La entropía aproximada de una cadena binaria finita
  • Hurst, H.E. (1951): Capacidad de almacenamiento a largo plazo de embalses
  • Rosenstein, M.T., Collins, J.J. & De Luca, C.J. (1993): Un método práctico para calcular los exponentes de Lyapunov más grandes a partir de conjuntos de datos pequeños
  • Grassberger, P. & Procaccia, I. (1983): Midiendo la extrañeza de atractores extraños
  • Shannon, C.E. (1948): Una teoría matemática de la comunicación

Licencia

MIT — Derechos de autor © 2026 Amenti Labs

Descargar herramienta