Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
openentropy — Сбор энтропии из нетрадиционных аппаратных источников с открытым исходным кодом. Rust + Python SDK. | Kitploit
Инструменты/GitHubGitHub/amenti-labs/openentropy
Статический анализКриптографияАппаратная БезопасностьСтатьи и ИсследованияОбучение и Образование
GitHubamenti-labs/openentropy

openentropy

Сбор энтропии из нетрадиционных аппаратных источников с открытым исходным кодом. Rust + Python SDK.

Репозиторий
28226 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
логотип openentropy

openentropy

Измеряйте и используйте аппаратную энтропию для исследований и безопасности.

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

Собирайте энтропию из аппаратных источников устройства, анализируйте качество источника с помощью статистических тестов и выдавайте сырой или обработанный результат через интерфейсы CLI, Rust, Python и HTTP.

Единый рабочий процесс для исследования энтропии, валидации и криптографического развертывания.

От Amenti Labs


Быстрый старт

root@kitploit:~
# Установка
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.

Внешнее QRNG-оборудование

Большинство источников OpenEntropy поступают с самого хоста. OpenEntropy также поддерживает внешние аппаратные устройства, когда они подключены и обнаружимы:

  • Crypta Labs QCicada USB QRNG — представлен как источник qcicada. OpenEntropy может читать квантовый вывод устройства, проводить бенчмаркинг, анализ, запись или сравнение наряду с собственными источниками. Режимы вывода самого устройства сопоставляются с raw, sha256 и samples; теперь OpenEntropy использует вспомогательную функцию свежего старта в непрерывном режиме из qcicada 0.2.2, поэтому она отбрасывает уже буферизированные байты устройства один раз после входа в непрерывный режим вместо того, чтобы обслуживать первое чтение из устаревшей очереди байтов. См. руководство QCicada.

Python

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

Сборка из исходного кода (нативное расширение):

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

Два типа пользователей

Инженеры по безопасности используют OpenEntropy для проверки качества энтропии и инициализации CSPRNG:

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

Исследователи используют OpenEntropy для изучения характеристик сырого шума:

root@kitploit:~
openentropy analyze --profile deep --output analysis.json

Инженеры по безопасности инициализируют CSPRNG, генерируют ключи и дополняют /dev/urandom независимой аппаратной энтропией. Вывод с SHA-256-обработкой (--conditioning sha256, по умолчанию) даёт криптографически качественные случайные байты. Профиль security включает набор тестов NIST, анализ min-энтропии и SHA-256-обработку одним флагом.

Исследователи изучают характеристики сырого шума аппаратных подсистем. Укажите --conditioning raw, чтобы получить неотбеленные, необработанные байты, сохраняющие реальный шумовой сигнал от каждого источника. Профиль deep включает 100K выборок, кросс-корреляцию и анализ испытаний в стиле PEAR.

Сырой режим позволяет:

  • Характеризация аппаратуры — измерение min-энтропии, автокорреляции и спектральных свойств отдельных источников шума
  • Валидация кремния — сравнение шумовых профилей между ревизиями чипов, тепловыми состояниями и доменами напряжения
  • Обнаружение аномалий — мониторинг работоспособности источника энтропии для выявления признаков деградации или вмешательства
  • Кросс-доменный анализ — изучение корреляций между независимыми доменами энтропии (тепловой vs временной vs IPC)

Что делает это особенным

Большинство генераторов случайных чисел являются псевдослучайными — детерминированными алгоритмами, инициализированными один раз. OpenEntropy непрерывно собирает реальный физический шум с вашего оборудования:

  • Тепловой шум — три независимых биения генераторов (кварц CPU против PLL аудио, PLL дисплея, PLL PHY PCIe)
  • Тайминг и микроархитектура — фазовый шум тактового генератора, конфликты буферов строк DRAM, вариативность спекулятивного выполнения, TLB shootdowns, гонки DVFS, конкуренция шины ICC, состояние префетчера, тайминг APRR JIT, пересечение тактовых доменов ANE
  • I/O и IPC — задержки диска и NVMe (включая опрос датчиков IOKit, raw-устройство и Linux passthrough), перечисление USB, IPC Mach-портов, выделение буферов pipe, события kqueue, журнал fsync
  • GPU и вычисления — дивергенция варпов GPU, кросc-доменный тайминг IOSurface, тайминг вывода Neural Engine
  • Планировщик и система — дрейф nanosleep, очереди GCD dispatch, жизненный цикл потоков, миграция P/E-ядер, таймер coalescing, счётчики ядра, снимки таблицы процессов
  • Сеть и датчики — тайминг DNS-разрешения, вариативность TCP-рукопожатия, RSSI WiFi, фоновый RF BLE, шум аудио-АЦП
  • Глубокое оборудование — биения двойного тактового домена, SITVA, переключение контекста AES-XTS, широковещание SEV, seqlock COMMPAGE, термистор SMC, переинициализация TRNG getentropy

Пул XOR-комбинирует независимые потоки. Отказ одного источника не может скомпрометировать пул.

Режимы обработки

Обработка опциональна и настраиваема. Используйте --conditioning в CLI или ?conditioning= в HTTP API:

РежимФлагОписание
SHA-256 (по умолчанию)--conditioning sha256SHA-256 обработка. Криптографически качественный вывод.
Von Neumann--conditioning vonneumannТолько устранение смещения — убирает смещение, сохраняя больше структуры исходного сигнала.
Сырой--conditioning rawБез обработки. Исходные байты с нулевым отбеливанием — сохраняет реальный аппаратный шумовой сигнал для исследований.

Сырой режим делает OpenEntropy полезным для исследований. Большинство HWRNG API выполняют пост-обработку DRBG, которая делает все источники похожими на равномерные случайные байты, уничтожая информацию, необходимую исследователям. Сырой вывод сохраняет структуру шума для каждого источника: смещение, автокорреляцию, спектральные особенности и кросс-источниковые корреляции. Подробнее см. Обработка.


Документация

  • Сайт документации: https://amenti-labs.github.io/openentropy/
  • Пакет PyPI: https://pypi.org/project/openentropy/
ДокументОписание
Source CatalogКаталог источников с физическими объяснениями и платформенными заметками
CLI ReferenceПолная справка по командам и примеры
ConditioningРежимы обработки: сырой, VonNeumann, SHA-256
Trial Analysis MethodologyИспытания в стиле PEAR по 200 бит, калибровочный гейт и ссылки
Telemetry ModelЭкспериментальная контекстная модель telemetry_v1 и точки интеграции
Rust API ReferenceОсновной API-интерфейс Rust
ArchitectureСтруктура крейтов и дизайнерские решения
Python SDKПривязки PyO3 и справочник Python API
ExamplesПримеры кода на Rust и Python
TroubleshootingЧастые проблемы и их решения
SecurityМодель угроз и ответственное раскрытие

Благодарности

Расширенная дорожная карта статистического анализа и инвентарь методов были сформированы под влиянием:

  • vikingdude81/qrng-analysis-toolkit

Мы ценим открытый исходный код, который помог сформировать эту поверхность сравнительного анализа QRNG/PRNG.


Источники энтропии

Текущий реестр источников охватывает 13 категорий на основе механизмов; фактическая доступность зависит от платформы:

КатегорияКоличество
Thermal4
Timing7
Scheduling6
IO6
IPC4
Microarchitecture16
GPU3
Network3
System6
Signal3
Sensor4
Quantum1

Полные описания каждого источника, доступность на платформах и физические заметки см. в Каталог источников.

Поддерживаемое внешнее оборудование:

  • qcicada — Crypta Labs QCicada USB QRNG (руководство)

CLI-справочник

Полную справку по командам и примеры см. в CLI Reference.

Наиболее часто используемые рабочие процессы:

root@kitploit:~
openentropy scan
openentropy bench
openentropy stream --format hex --bytes 64
openentropy analyze --profile security         # батарея NIST + энтропия + sha256
openentropy analyze --profile deep             # 100K + форензика + кросс-корр + испытания
openentropy record clock_jitter --duration 30s
openentropy sessions sessions/<id> --profile deep
openentropy compare sessions/<id-a> sessions/<id-b> --profile deep

В команде sessions предустановки профиля применяются только при указании конкретного пути сессии. openentropy sessions без пути всегда остаётся в режиме списка.

Методология испытаний в стиле PEAR (200-битные испытания, терминальный Z, взвешенная композиция Стоуффера, калибровочный гейт) описана в Методология анализа испытаний.


Rust API

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

let sources = detect_available_sources();
println!("{} sources available", 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();

Анализируйте и сравнивайте данные энтропии программно:

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

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

// Статистический анализ каждого источника
let analysis = full_analysis(&source, &data);
println!("Shannon entropy: {:.4} bits/byte", analysis.shannon_entropy);

// Сравнительный анализ двух потоков
let other = pool.get_source_raw_bytes(&source, 5000).unwrap();
let diff = compare("stream_a", &data, "stream_b", &other);

// Анализ испытаний в стиле PEAR
let trials = trial_analysis(&data, &Default::default());
println!("Terminal Z: {:.4}, p = {:.4}", trials.terminal_z, trials.terminal_p_value);

Анализ теории хаоса (отличие истинной случайности от детерминированного хаоса):

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);

Архитектура

Cargo workspace с 6 крейтами:

КрейтОписание
openentropy-coreБазовая библиотека — источники, пул, обработка
openentropy-cliCLI-бинарник с TUI-панелью
openentropy-serverHTTP-сервер энтропии на Axum
openentropy-testsТестовая батарея, вдохновлённая NIST SP 800-22
openentropy-pythonПривязки Python через PyO3/maturin
openentropy-wasmКрейт энтропии для WebAssembly/браузера
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]

Поддержка платформ

ПлатформаИсточникиПримечания
MacBook (M-series)63/63Полный набор — WiFi, BLE, камера, микрофон
Mac Mini / Studio / Pro50–55Нет встроенной камеры, микрофона на некоторых моделях
Intel Mac~20Некоторые источники из кремния/микроархитектуры специфичны для ARM
Linux12–15Источники тайминга, сети, диска, процессов + NVMe passthrough

Библиотека обнаруживает доступное оборудование во время выполнения и активирует только рабочие источники.


Сборка из исходного кода

Требуется Rust 1.85+ и macOS или 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

Python-пакет

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

Вклад

См. CONTRIBUTING.md. Идеи:

  • Новые источники энтропии (особенно для Linux)
  • Улучшение производительности
  • Дополнительные реализации тестов NIST
  • Поддержка платформы Windows

Ссылки

  • NIST SP 800-22: A Statistical Test Suite for Random and Pseudorandom Number Generators
  • Bone, A. (2026): QRNG Analysis Toolkit — методы анализа теории хаоса (показатель Хёрста, показатель Ляпунова, корреляционная размерность, BiEntropy, Epiplexity) были переписаны на Rust из математических определений, вдохновлённых этим Python-тулкитом
  • Croll, G.J. (2013): BiEntropy — The Approximate Entropy of a Finite Binary String
  • Hurst, H.E. (1951): Long-term storage capacity of reservoirs
  • Rosenstein, M.T., Collins, J.J. & De Luca, C.J. (1993): A practical method for calculating largest Lyapunov exponents from small data sets
  • Grassberger, P. & Procaccia, I. (1983): Measuring the strangeness of strange attractors
  • Shannon, C.E. (1948): A Mathematical Theory of Communication

Лицензия

MIT — Copyright © 2026 Amenti Labs

Скачать инструмент