
अपरंपरागत हार्डवेयर स्रोतों से ओपन-सोर्स एंट्रॉपी हार्वेस्टिंग। Rust + Python SDK.
हार्डवेयर एन्ट्रॉपी को अनुसंधान और सुरक्षा के लिए मापें और संचालित करें।
ऑन-डिवाइस हार्डवेयर स्रोतों से एन्ट्रॉपी एकत्र करें, सांख्यिकीय परीक्षणों के साथ स्रोत गुणवत्ता का विश्लेषण करें, और CLI, Rust, Python, और HTTP इंटरफेस के माध्यम से कच्चा या वातानुकूलित आउटपुट प्रदान करें।
एन्ट्रॉपी अनुसंधान, सत्यापन और क्रिप्टोग्राफिक तैनाती के लिए एक कार्यप्रवाह।
Amenti Labs द्वारा
# 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
डिफ़ॉल्ट रूप से, केवल तेज़ स्रोत (<2s) का उपयोग किया जाता है। धीमे स्रोतों (DNS, TCP, GPU, BLE) को शामिल करने के लिए
--allपास करें। संगतता के लिए स्थितीय उपनामallभी स्वीकार किया जाता है।
अधिकांश OpenEntropy स्रोत होस्ट मशीन से ही आते हैं। OpenEntropy बाहरी हार्डवेयर उपकरणों का भी समर्थन करता है जब वे संलग्न और खोजने योग्य हों:
qcicada स्रोत के रूप में उजागर। OpenEntropy डिवाइस के क्वांटम आउटपुट को पढ़ सकता है और ऑन-होस्ट स्रोतों के साथ बेंचमार्क, विश्लेषण, रिकॉर्ड या तुलना कर सकता है। डिवाइस के अपने आउटपुट मोड raw, sha256, और samples पर मैप होते हैं, और OpenEntropy अब qcicada 0.2.2 से QCicada के फ्रेश-स्टार्ट कंटीन्यूअस-मोड हेल्पर का उपयोग करता है, इसलिए यह कंटीन्यूअस मोड में प्रवेश करने के बाद एक बार पहले से बफ़र किए गए डिवाइस इनपुट को त्याग देता है, बजाय पुराने क्यू किए गए बाइट्स से पहली रीड परोसने के। 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
सुरक्षा इंजीनियर एन्ट्रॉपी गुणवत्ता को मान्य करने और CSPRNGs को बीज करने के लिए OpenEntropy का उपयोग करते हैं:
openentropy analyze --profile security --output audit.md
शोधकर्ता कच्चे शोर विशेषताओं का अध्ययन करने के लिए OpenEntropy का उपयोग करते हैं:
openentropy analyze --profile deep --output analysis.json
सुरक्षा इंजीनियर CSPRNGs को बीज करते हैं, कुंजियाँ उत्पन्न करते हैं, और स्वतंत्र हार्डवेयर एन्ट्रॉपी के साथ /dev/urandom को पूरक करते हैं। SHA-256 वातानुकूलित आउटपुट (--conditioning sha256, डिफ़ॉल्ट) क्रिप्टोग्राफिक गुणवत्ता वाले यादृच्छिक बाइट्स उत्पन्न करता है। security प्रोफ़ाइल एक झंडे में NIST परीक्षण बैटरी, मिन-एन्ट्रॉपी ब्रेकडाउन और SHA-256 कंडीशनिंग को सक्षम करती है।
शोधकर्ता हार्डवेयर उप-प्रणालियों की कच्ची शोर विशेषताओं का अध्ययन करते हैं। प्रत्येक स्रोत से वास्तविक शोर संकेत को संरक्षित करने वाले अनव्हाइटेड, अनकंडीशनड बाइट्स प्राप्त करने के लिए --conditioning raw पास करें। deep प्रोफ़ाइल 100K नमूने, क्रॉस-सहसंबंध और PEAR-शैली परीक्षण विश्लेषण को सक्षम करती है।
कच्चा मोड सक्षम करता है:
अधिकांश यादृच्छिक संख्या जनरेटर छद्म-यादृच्छिक हैं — एक बार बीजित नियतात्मक एल्गोरिदम। OpenEntropy आपके हार्डवेयर से वास्तविक भौतिक शोर लगातार एकत्र करता है:
पूल स्वतंत्र स्ट्रीम को XOR-संयोजित करता है। कोई एकल स्रोत विफलता पूल से समझौता नहीं कर सकती।
कंडीशनिंग वैकल्पिक और कॉन्फ़िगरेबल है। CLI पर --conditioning या HTTP API पर ?conditioning= का उपयोग करें:
| मोड | फ़्लैग | विवरण |
|---|---|---|
| SHA-256 (डिफ़ॉल्ट) | --conditioning sha256 | SHA-256 कंडीशनिंग। क्रिप्टोग्राफिक गुणवत्ता आउटपुट। |
| वॉन न्यूमैन | --conditioning vonneumann | केवल डीबायसिंग — पूर्वाग्रह हटाता है जबकि कच्ची संकेत संरचना को अधिक संरक्षित करता है। |
| कच्चा | --conditioning raw | कोई प्रसंस्करण नहीं। शून्य व्हाइटनिंग के साथ स्रोत बाइट्स — अनुसंधान के लिए वास्तविक हार्डवेयर शोर संकेत को संरक्षित करता है। |
कच्चा मोड ही OpenEntropy को अनुसंधान के लिए उपयोगी बनाता है। अधिकांश HWRNG API DRBG पोस्ट-प्रोसेसिंग चलाते हैं जो प्रत्येक स्रोत को एकसमान यादृच्छिक बाइट्स जैसा दिखता है, जो शोधकर्ताओं को आवश्यक जानकारी को नष्ट कर देता है। कच्चा आउटपुट प्रति-स्रोत शोर संरचना को संरक्षित करता है: पूर्वाग्रह, ऑटोसहसंबंध, वर्णक्रमीय विशेषताएं और क्रॉस-स्रोत सहसंबंध। विवरण के लिए कंडीशनिंग देखें।