
Récolte open-source d'entropie à partir de sources matérielles non conventionnelles. SDK Rust + Python.
Mesurer et opérationnaliser l'entropie matérielle pour la recherche et la sécurité.
Collectez l'entropie des sources matérielles de l'appareil, analysez la qualité des sources avec des tests statistiques, et fournissez une sortie brute ou conditionnée via les interfaces CLI, Rust, Python et HTTP.
Un workflow unique pour la recherche sur l'entropie, la validation et le déploiement cryptographique.
Par Amenti Labs
# Installation
cargo install openentropy-cli
# Découvrir les sources d'entropie sur votre machine
openentropy scan
# Tester toutes les sources rapides
openentropy bench
# Générer 64 octets hexadécimaux aléatoires
openentropy stream --format hex --bytes 64
# Tableau de bord TUI en direct
openentropy monitor
Par défaut, seules les sources rapides (<2s) sont utilisées. Passez
--allpour inclure les sources plus lentes (DNS, TCP, GPU, BLE). L'alias positionnelallest également accepté pour la compatibilité.
La plupart des sources OpenEntropy proviennent de la machine hôte elle-même. OpenEntropy prend également en charge les périphériques matériels externes lorsqu'ils sont connectés et détectables :
qcicada. OpenEntropy peut lire la sortie quantique du périphérique et effectuer des tests, des analyses, des enregistrements ou des comparaisons aux côtés des sources de l'hôte. Les modes de sortie du périphérique correspondent à raw, sha256 et samples, et OpenEntropy utilise désormais l'assistant de démarrage à nouveau en mode continu de qcicada 0.2.2, ce qui lui permet de jeter une fois les données déjà mises en mémoire tampon après être entré en mode continu, au lieu de servir la première lecture à partir d'octets obsolètes mis en file d'attente. Consultez le manuel QCicada.pip install openentropy
from openentropy import EntropyPool, detect_available_sources
sources = detect_available_sources()
print(f"{len(sources)} sources d'entropie disponibles")
pool = EntropyPool.auto()
source = sources[0]["name"]
data = pool.get_source_bytes(source, 256, conditioning="sha256")
Construire à partir des sources (extension native) :
git clone https://github.com/amenti-labs/openentropy.git && cd openentropy
pip install maturin
maturin develop
Les ingénieurs en sécurité utilisent OpenEntropy pour valider la qualité de l'entropie et ensemencer les CSPRNG :
openentropy analyze --profile security --output audit.md
Les chercheurs utilisent OpenEntropy pour étudier les caractéristiques du bruit brut :
openentropy analyze --profile deep --output analysis.json
Les ingénieurs en sécurité ensemencent les CSPRNG, génèrent des clés et complètent /dev/urandom avec une entropie matérielle indépendante. La sortie conditionnée par SHA-256 (--conditioning sha256, par défaut) produit des octets aléatoires de qualité cryptographique. Le profil security active la batterie de tests NIST, la décomposition de l'entropie minimale et le conditionnement SHA-256 en un seul indicateur.
Les chercheurs étudient les caractéristiques du bruit brut des sous-systèmes matériels. Passez --conditioning raw pour obtenir des octets non blanchis et non conditionnés qui préservent le signal de bruit réel de chaque source. Le profil deep active 100 000 échantillons, la corrélation croisée et l'analyse par essais de type PEAR.
Le mode brut permet :
La plupart des générateurs de nombres aléatoires sont pseudo-aléatoires — des algorithmes déterministes ensemencés une seule fois. OpenEntropy collecte en continu du bruit physique réel à partir de votre matériel :
Le pool combine par XOR des flux indépendants. Aucune défaillance d'une seule source ne peut compromettre le pool.
Le conditionnement est optionnel et configurable. Utilisez --conditioning sur la CLI ou ?conditioning= sur l'API HTTP :
| Mode | Drapeau | Description |
|---|---|---|
| SHA-256 (par défaut) | --conditioning sha256 | Conditionnement SHA-256. Sortie de qualité cryptographique. |
| Von Neumann | --conditioning vonneumann | Débiaisage uniquement — supprime le biais tout en préservant davantage la structure du signal brut. |
| Brut | --conditioning raw | Aucun traitement. Octets source sans aucun blanchiment — préserve le signal de bruit matériel réel pour la recherche. |
Le mode brut est ce qui rend OpenEntropy utile pour la recherche. La plupart des API HWRNG appliquent un post-traitement DRBG qui donne l'impression que chaque source produit des octets aléatoires uniformes, détruisant ainsi les informations dont les chercheurs ont besoin. La sortie brute préserve la structure de bruit par source : biais, autocorrélation, caractéristiques spectrales et corrélations entre sources. Voir Conditionnement pour plus de détails.