Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
openentropy — 비전통적인 하드웨어 소스로부터의 오픈소스 엔트로피 수집. Rust + Python SDK. | Kitploit
도구/GitHubGitHub/amenti-labs/openentropy
Static AnalysisCryptographyHardware SecurityPapers & ResearchLearning & Education
GitHubamenti-labs/openentropy

openentropy

비전통적인 하드웨어 소스로부터의 오픈소스 엔트로피 수집. Rust + Python SDK.

저장소 보기
2825개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
openentropy 로고

openentropy

하드웨어 엔트로피를 연구와 보안을 위해 측정하고 운영화합니다.

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

온보드 하드웨어 소스에서 엔트로피를 수집하고, 통계적 테스트로 소스 품질을 분석하며, CLI, Rust, Python 및 HTTP 인터페이스를 통해 원시 또는 컨디셔닝된 출력을 제공합니다.

엔트로피 연구, 검증 및 암호화 배포를 위한 하나의 워크플로우.

Amenti Labs 제공


빠른 시작

root@kitploit:~
# Install
cargo install openentropy-cli

# Discover entropy sources on your machine
openentropy scan

# Benchmark all fast sources
openentropy bench

# Output 64 random hex bytes
openentropy stream --format hex --bytes 64

# Live TUI dashboard
openentropy monitor

기본적으로 빠른 소스(<2초)만 사용됩니다. 느린 소스(DNS, TCP, GPU, BLE)를 포함하려면 --all을 전달하세요. 위치 인수 all도 호환성을 위해 허용됩니다.

외부 QRNG 하드웨어

대부분의 OpenEntropy 소스는 호스트 시스템 자체에서 제공됩니다. OpenEntropy는 연결되어 있고 검색 가능한 경우 외부 하드웨어 장치도 지원합니다:

  • Crypta Labs QCicada USB QRNG — qcicada 소스로 제공됩니다. OpenEntropy는 장치의 양자 출력을 읽고, 온호스트 소스와 함께 벤치마킹, 분석, 기록 또는 비교할 수 있습니다. 장치의 자체 출력 모드는 raw, sha256, samples로 매핑되며, OpenEntropy는 이제 qcicada 0.2.2의 fresh-start 연속 모드 도우미를 사용하므로 연속 모드 진입 후 한 번 이미 버퍼링된 장치 입력을 폐기하여 첫 번째 읽기가 오래된 대기열 바이트에서 제공되지 않도록 합니다. 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 테스트 배터리, 최소 엔트로피 분석, SHA-256 컨디셔닝을 하나의 플래그로 활성화합니다.

연구자는 하드웨어 서브시스템의 원시 노이즈 특성을 연구합니다. --conditioning raw를 전달하면 각 소스의 실제 노이즈 신호를 보존하는 표백되지 않은, 컨디셔닝되지 않은 바이트를 얻을 수 있습니다. deep 프로필은 100K 샘플, 상호 상관 관계 및 PEAR 스타일 시행 분석을 활성화합니다.

원시 모드는 다음을 가능하게 합니다:

  • 하드웨어 특성화 — 개별 노이즈 소스의 최소 엔트로피, 자기 상관 및 스펙트럼 특성 측정
  • 실리콘 검증 — 칩 개정판, 열 상태 및 전압 도메인 간 노이즈 프로파일 비교
  • 이상 탐지 — 하드웨어 저하 또는 변조 징후에 대한 엔트로피 소스 상태 모니터링
  • 도메인 간 분석 — 독립적인 엔트로피 도메인(열 vs 타이밍 vs IPC) 간의 상관 관계 연구

차별화 요소

대부분의 난수 생성기는 **의사 난수(pseudorandom)**입니다 — 한 번 시드된 결정론적 알고리즘입니다. OpenEntropy는 하드웨어에서 실제 물리적 노이즈를 지속적으로 수집합니다:

  • 열 노이즈 — 세 개의 독립적인 오실레이터 비트(CPU 크리스탈 vs 오디오 PLL, 디스플레이 PLL, PCIe PHY PLL)
  • 타이밍 및 마이크로아키텍처 — 클록 위상 노이즈, DRAM 행 버퍼 충돌, 추측 실행 변동성, TLB 슛다운, DVFS 경쟁, ICC 버스 경합, 프리페처 상태, APRR JIT 타이밍, ANE 클록 도메인 교차
  • I/O 및 IPC — 디스크 및 NVMe 지연 시간(IOKit 센서 폴링, 원시 장치, 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=을 사용하세요:

원시 모드는 OpenEntropy를 연구에 유용하게 만드는 요소입니다. 대부분의 HWRNG API는 DRBG 후처리를 수행하여 모든 소스를 균일한 임의 바이트처럼 보이게 만들어 연구자에게 필요한 정보를 파괴합니다. 원시 출력은 소스별 노이즈 구조(편향, 자기 상관, 스펙트럼 특징, 소스 간 상관 관계)를 보존합니다. 자세한 내용은 컨디셔닝을 참조하세요.


문서

  • 문서 사이트: 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             # 100K + 포렌식 + 교차 상관 + 시행
openentropy record clock_jitter --duration 30s
openentropy sessions sessions/<id> --profile deep
openentropy compare sessions/<id-a> sessions/<id-b> --profile deep

session에서 프로필 프리셋은 특정 세션 경로가 제공된 경우에만 적용됩니다. 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);

// 두 스트림의 차등 비교
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 코드 예제
문제 해결일반적인 문제 및 해결 방법
보안위협 모델 및 책임 있는 공개
범주개수
열 (Thermal)4
타이밍 (Timing)7
스케줄링 (Scheduling)6
I/O6
IPC4
마이크로아키텍처 (Microarchitecture)16
GPU3
네트워크 (Network)3
시스템 (System)6
신호 (Signal)3
센서 (Sensor)4
양자 (Quantum)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 패스스루