
Сбор энтропии из нетрадиционных аппаратных источников с открытым исходным кодом. Rust + Python SDK.
Измеряйте и используйте аппаратную энтропию для исследований и безопасности.
Собирайте энтропию из аппаратных источников устройства, анализируйте качество источника с помощью статистических тестов и выдавайте сырой или обработанный результат через интерфейсы CLI, Rust, Python и HTTP.
Единый рабочий процесс для исследования энтропии, валидации и криптографического развертывания.
От Amenti Labs
# Установка
cargo install openentropy-cli
# Обнаружение источников энтропии на вашем устройстве
openentropy scan
# Бенчмаркинг всех быстрых источников
openentropy bench
# Вывод 64 случайных байт в шестнадцатеричном формате
openentropy stream --format hex --bytes 64
# Интерактивная TUI-панель
openentropy monitor
По умолчанию используются только быстрые источники (<2 с). Укажите
--all, чтобы включить более медленные источники (DNS, TCP, GPU, BLE). Для совместимости также принимается позиционный псевдонимall.
Большинство источников OpenEntropy поступают с самого хоста. OpenEntropy также поддерживает внешние аппаратные устройства, когда они подключены и обнаружимы:
qcicada. OpenEntropy может читать квантовый вывод устройства, проводить бенчмаркинг, анализ, запись или сравнение наряду с собственными источниками. Режимы вывода самого устройства сопоставляются с raw, sha256 и samples; теперь OpenEntropy использует вспомогательную функцию свежего старта в непрерывном режиме из qcicada 0.2.2, поэтому она отбрасывает уже буферизированные байты устройства один раз после входа в непрерывный режим вместо того, чтобы обслуживать первое чтение из устаревшей очереди байтов. См. руководство QCicada.pip install openentropy
from openentropy import EntropyPool, detect_available_sources
sources = detect_available_sources()
print(f"{len(sources)} entropy sources available")
pool = EntropyPool.auto()
source = sources[0]["name"]
data = pool.get_source_bytes(source, 256, conditioning="sha256")
Сборка из исходного кода (нативное расширение):
git clone https://github.com/amenti-labs/openentropy.git && cd openentropy
pip install maturin
maturin develop
Инженеры по безопасности используют OpenEntropy для проверки качества энтропии и инициализации CSPRNG:
openentropy analyze --profile security --output audit.md
Исследователи используют OpenEntropy для изучения характеристик сырого шума:
openentropy analyze --profile deep --output analysis.json
Инженеры по безопасности инициализируют CSPRNG, генерируют ключи и дополняют /dev/urandom независимой аппаратной энтропией. Вывод с SHA-256-обработкой (--conditioning sha256, по умолчанию) даёт криптографически качественные случайные байты. Профиль security включает набор тестов NIST, анализ min-энтропии и SHA-256-обработку одним флагом.
Исследователи изучают характеристики сырого шума аппаратных подсистем. Укажите --conditioning raw, чтобы получить неотбеленные, необработанные байты, сохраняющие реальный шумовой сигнал от каждого источника. Профиль deep включает 100K выборок, кросс-корреляцию и анализ испытаний в стиле PEAR.
Сырой режим позволяет:
Большинство генераторов случайных чисел являются псевдослучайными — детерминированными алгоритмами, инициализированными один раз. OpenEntropy непрерывно собирает реальный физический шум с вашего оборудования:
Пул XOR-комбинирует независимые потоки. Отказ одного источника не может скомпрометировать пул.
Обработка опциональна и настраиваема. Используйте --conditioning в CLI или ?conditioning= в HTTP API:
| Режим | Флаг | Описание |
|---|---|---|
| SHA-256 (по умолчанию) | --conditioning sha256 | SHA-256 обработка. Криптографически качественный вывод. |
| Von Neumann | --conditioning vonneumann | Только устранение смещения — убирает смещение, сохраняя больше структуры исходного сигнала. |
| Сырой | --conditioning raw | Без обработки. Исходные байты с нулевым отбеливанием — сохраняет реальный аппаратный шумовой сигнал для исследований. |
Сырой режим делает OpenEntropy полезным для исследований. Большинство HWRNG API выполняют пост-обработку DRBG, которая делает все источники похожими на равномерные случайные байты, уничтожая информацию, необходимую исследователям. Сырой вывод сохраняет структуру шума для каждого источника: смещение, автокорреляцию, спектральные особенности и кросс-источниковые корреляции. Подробнее см. Обработка.