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 logo

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バイトの16進形式でランダム出力
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)} 個のエントロピーソースが利用可能")

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

2つの対象ユーザー

セキュリティエンジニアは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 プロファイルは1つのフラグでNISTテストバッテリー、最小エントロピー分析、SHA-256調整を有効にします。

研究者はハードウェアサブシステムの生ノイズ特性を研究します。--conditioning raw を渡すと、各ソースからの実際のノイズ信号を保持する、白色化されていない未調整のバイトを取得します。deep プロファイルは10万サンプル、相互相関、PEARスタイルの試行分析を有効にします。

Rawモードで可能になること:

  • ハードウェア特性評価 — 個々のノイズソースの最小エントロピー、自己相関、スペクトル特性を測定
  • シリコンバリデーション — チップリビジョン、熱状態、電圧ドメイン間のノイズプロファイルを比較
  • 異常検出 — ハードウェアの劣化や改ざんの兆候を監視するためのエントロピーソースの健全性監視
  • ドメイン間分析 — 独立したエントロピードメイン(熱 vs タイミング vs IPC)間の相関を研究

何が違うのか

ほとんどの乱数生成器は 疑似ランダム — 一度シードされた決定論的アルゴリズムです。OpenEntropyはハードウェアから 実際の物理ノイズ を継続的に収穫します:

  • 熱ノイズ — 3つの独立した発振器ビート(CPUクリスタル vs オーディオPLL、ディスプレイPLL、PCIe PHY PLL)
  • タイミングとマイクロアーキテクチャ — クロック位相ノイズ、DRAM行バッファ競合、投機的実行のばらつき、TLBシャットダウン、DVFSレース、ICCバス競合、プリフェッチャ状態、APRR JITタイミング、ANEクロックドメインクロッシング
  • I/OとIPC — ディスクおよびNVMeレイテンシ(IOKitセンサーポーリング、rawデバイス、Linuxパススルーを含む)、USB列挙、MachポートIPC、パイプバッファ割り当て、kqueueイベント、fsyncジャーナル
  • GPUとコンピュート — GPUワープダイバージェンス、IOSurfaceクロスドメインタイミング、Neural Engine推論タイミング
  • スケジューリングとシステム — nanosleepドリフト、GCDディスパッチキュー、スレッドライフサイクル、P/Eコアマイグレーション、タイマーコアレッシング、カーネルカウンター、プロセステーブルスナップショット
  • ネットワークとセンサー — DNS解決タイミング、TCPハンドシェイクばらつき、WiFi RSSI、BLE環境RF、オーディオADCノイズ
  • 深層ハードウェア — デュアルクロックドメインビート、SITVA、AES-XTSコンテキストスイッチング、SEVブロードキャスト、COMMPAGE seqlock、SMCサーミスタ、getentropy TRNGリシード

プールは独立したストリームをXOR結合します。単一のソース障害がプールを危険にさらすことはありません。

調整モード

調整は オプションで設定可能 です。CLIでは --conditioning、HTTP APIでは ?conditioning= を使用します:

RawモードがOpenEntropyを研究に役立つものにしています。ほとんどのHWRNG APIはDRBG後処理を実行し、すべてのソースを一様なランダムバイトに見せかけ、研究者が必要とする情報を破壊します。Raw出力はソースごとのノイズ構造(バイアス、自己相関、スペクトル特徴、ソース間相関)を保持します。詳細は 調整 を参照してください。


ドキュメント

  • ドキュメントサイト: https://amenti-labs.github.io/openentropy/
  • PyPIパッケージ: https://pypi.org/project/openentropy/

謝辞

拡張された統計分析ロードマップと手法インベントリは、以下に影響を受けました:

  • vikingdude81/qrng-analysis-toolkit

この比較QRNG/PRNG分析面を形作るのに役立ったオープンソースの作業に感謝します。


エントロピーソース

現在のソースレジストリは13のメカニズムベースのカテゴリに及びます。実際の可用性はプラットフォームによって異なります:

ソースごとの完全な説明、プラットフォームの可用性、物理ノートについては、 ソースカタログ を参照してください。

現在サポートされている外部ハードウェア:

  • qcicada — Crypta Labs QCicada USB QRNG (マニュアル)

CLIリファレンス

完全なコマンドリファレンスと例については、CLIリファレンス を参照してください。

最もよく使われるワークフロー:

root@kitploit:~
openentropy scan
openentropy bench
openentropy stream --format hex --bytes 64
openentropy analyze --profile security         # NISTバッテリー + エントロピー + sha256
openentropy analyze --profile deep             # 10万 + フォレンジック + 相互相関 + 試行
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、重み付きStouffer合成、キャリブレーションゲーティング)は、 試行分析手法 に文書化されています。


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

// 2つのストリームの差分比較
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);

アーキテクチャ

6つのクレートからなるCargoワークスペース:

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]

プラットフォームサポート

ライブラリは実行時に利用可能なハードウェアを検出し、動作するソースのみをアクティブにします。


ソースからビルド

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 — カオス理論分析手法(Hurst指数、Lyapunov指数、相関次元、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

ツールをダウンロード
モードフラグ説明
SHA-256 (デフォルト)--conditioning sha256SHA-256調整。暗号品質の出力。
Von Neumann--conditioning vonneumannデバイアスのみ — バイアスを除去しつつ、生の信号構造をより多く保持。
Raw--conditioning raw処理なし。白色化ゼロのソースバイト — 研究用に実際のハードウェアノイズ信号を保持。
ドキュメント説明
ソースカタログ物理的説明とプラットフォームノート付きソースカタログ
CLIリファレンス完全なコマンドリファレンスと例
調整Raw vs VonNeumann vs SHA-256調整モード
試行分析手法PEARスタイル200ビット試行、キャリブレーションゲート、参考文献
テレメトリモデル実験的 telemetry_v1 コンテキストモデルと統合ポイント
Rust APIリファレンスコアRust APIサーフェス
アーキテクチャクレート構造と設計判断
Python SDKPyO3バインディングとPython APIリファレンス
例RustおよびPythonコード例
トラブルシューティング一般的な問題と修正
セキュリティ脅威モデルと責任ある開示
カテゴリ数
熱4
タイミング7
スケジューリング6
I/O6
IPC4
マイクロアーキテクチャ16
GPU3
ネットワーク3
システム6
信号3
センサー4
量子1
クレート説明
openentropy-coreコアライブラリ — ソース、プール、調整
openentropy-cliTUIダッシュボード付きCLIバイナリ
openentropy-serverAxum HTTPエントロピーサーバー
openentropy-testsNIST SP 800-22に触発されたテストバッテリー
openentropy-pythonPyO3/maturinによるPythonバインディング
openentropy-wasmWebAssembly/ブラウザエントロピークレート
プラットフォームソース数備考
MacBook (Mシリーズ)63/63全機能 — WiFi、BLE、カメラ、マイク
Mac Mini / Studio / Pro50–55一部モデルにカメラ、マイクなし
Intel Mac~20一部のシリコン/マイクロアーキテクチャソースはARM固有
Linux12–15タイミング、ネットワーク、ディスク、プロセスソース + NVMeパススルー