
حصاد الإنتروبيا مفتوح المصدر من مصادر أجهزة غير تقليدية. SDK بلغة Rust و Python.
قياس وتشغيل إنتروبيا الأجهزة لأغراض البحث والأمان.
اجمع الإنتروبيا من مصادر الأجهزة على الجهاز، وحلل جودة المصادر باستخدام اختبارات إحصائية، ثم قدّم مخرجات أولية أو مكيفة عبر واجهات CLI، Rust، Python، وHTTP.
سير عمل واحد لأبحاث الإنتروبيا والتحقق والاستخدام التشفيري.
بواسطة Amenti Labs
# تثبيت
cargo install openentropy-cli
# اكتشاف مصادر الإنتروبيا على جهازك
openentropy scan
# قياس أداء جميع المصادر السريعة
openentropy bench
# إخراج 64 بايت عشوائي بصيغة سداسية عشرية
openentropy stream --format hex --bytes 64
# لوحة تحكم تفاعلية في الوضع الطرفي
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)} مصادر إنتروبيا متاحة")
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 للتحقق من جودة الإنتروبيا وتغذية المولدات العشوائية الآمنة تشفيريًا (CSPRNGs):
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. لا يمكن لأي فشل في مصدر واحد أن يخرق التجمع.
التكييف اختياري وقابل للتخصيص. استخدم --conditioning في CLI أو ?conditioning= في واجهة HTTP API:
| الوضع | العلم | الوصف |
|---|---|---|
| SHA-256 (افتراضي) | --conditioning sha256 | تكييف SHA-256. مخرجات بجودة تشفيرية. |
| Von Neumann | --conditioning vonneumann | إزالة التحيز فقط — يزيل التحيز مع الحفاظ على هيكل الإشارة الخام قدر الإمكان. |
| خام | --conditioning raw | بدون معالجة. بايتات المصدر بدون تبييض — يحافظ على إشارة ضوضاء الأجهزة الفعلية للبحث. |
الوضع الخام هو ما يجعل OpenEntropy مفيدًا للبحث. معظم واجهات HWRNG API تقوم بعمليات ما بعد معالجة DRBG تجعل كل مصدر يبدو كبايتات عشوائية متناسقة، مما يدمر المعلومات التي يحتاجها الباحثون. المخرجات الخام تحافظ على هيكل الضوضاء لكل مصدر: التحيز، الارتباط الذاتي، الخصائص الطيفية، والارتباطات بين المصادر. راجع التكييف للتفاصيل.