
rscrypto v0.8.0
تشفير Rust بدون أي تبعيات افتراضية: BLAKE3، Ed25519/X25519، تجزئات، MACs، KDFs، AEADs، ومجاميع فحص مع تسريع كامل عبر SIMD/ASM
rscrypto
يضع rscrypto البدائيات التشفيرية، والتجزئات التشفيرية والسريعة، وتجزئة كلمات المرور،
والمجاميع الاختبارية خلف نموذج ميزات واحد.
تعمل SIMD والتجميع المقيّدان بالهدف على تسريع الواجهات الخلفية المحمولة بلغة Rust دون اعتماد على C/FFI إنتاجي،
أو OpenSSL، أو مكتبة نظام.
rscrypto هو crate للبدائيات، وليس حزمة TLS، أو مجموعة أدوات PKI، أو مخزن مفاتيح، أو تنفيذ بروتوكول.
الأداء المقاس
تقتصر ادعاءات الأداء على الحملات المحتفظ بها بدقة وأحمال العمل المكافئة. تحتوي حملة سبتمبر 2026 المصححة على 19,614 حالة مكتملة، بما في ذلك مقارنات ML-KEM وArgon2 المصححة، لكن لم يتم تنسيق بطاقة تقييم إجمالية بديلة. تبقى التجميعات الأقدم التي خلطت الإنتروبيا، أو تحضير المفاتيح، أو تمثيل المخرجات، أو أطوال الملح سجلات تاريخية وليست ادعاءات أداء حالية.
يوثّق benchmark overview الحملات، والنتائج الخاصة بكل هدف، والحدود المتبقية.
تحدد comparison contracts أحمال عمل ML-KEM وArgon2 المكافئة.
الضمان
تفشل ادعاءات الأمان بشكل مغلق: الأدلة المفقودة أو القديمة تُزيل الادعاء بدلاً من إضعاف البوابة.
- تجمع أدلة الصحة بين متجهات NIST وRFC والمنبع الأصلي وWycheproof مع تطبيقات منفصلة، وخصائص، واختبارات سلبية، وMiri.
- تستهدف أهداف Fuzz تطبيقات الإنتاج عبر حدود البدائيات، والمحللات، وآلات الحالة، والسمات. تُعاد البذور المُصغّرة كاختبارات، مع مسار منفصل لأدوات التعقيم.
- تغطي اختبارات الفروق بين المحمول والمعجّل الأطوال، والمحاذاة، والذيل، وانتقالات الحالة، والتوزيع، وسلوك الاحتياط على الأهداف الأصلية.
- يجرد مِرفق الزمن الثابت العمليات الدقيقة في
ct.tomlويجمع بين فحص الملف التنفيذي المرتبط المُحسّن، وإثباتات BINSEC للنوى ذات الشكل الثابت المُعلنة، واختبارات توقيت DudeCT للحالات الشاملة المُعلنة. - يقوم مالكو الأسرار بحجب
Debugومسح التخزين المُهيأ عند الإسقاط. تختلف قواعد التكرار حسب النوع: حالة BLAKE2/BLAKE3 المُفتاحية تدعمClone. تسرد جرد الملكية هذه الحدود. إخفاقات التحقق غامضة؛ عمليات فتح AEAD الفاشلة تمسح النص الصريح غير الموثق.
يوجد ادعاء الزمن الثابت فقط عندما تنجح الأدلة للهدف والميزة والمترجم والملف التعريفي والعملية المطلوبة. لا يُعتبر الكود الذي يبدو بلا تفرعات دليلاً.
افحص test evidence، وconstant-time model، وsecret lifecycle، وthreat model.
الفجوة المتبقية للمراجعة المستقلة هي تدقيق أمني من طرف ثالث.
لا يستطيع المشروع تمويله حالياً.
لا تحل الأدلة الآلية محل تلك المراجعة، لذا لا يدّعي rscrypto أنه مدقق،
أو معتمد FIPS 140-3، أو مُثبت رسمياً، أو ثابت الزمن كـ crate بأكمله.
أبلغ عن الثغرات المشتبه بها عبر GitHub Private Vulnerability Reporting وفق
عملية SECURITY.md، وليس عبر مشكلة عامة.
ثبّت فقط ما تستخدمه
بناء no_std أدنى لـ SHA-2:
[dependencies]
rscrypto = { version = "0.10", default-features = false, features = ["sha2"] }
حزمة البدائيات الكاملة مع تمكين عشوائية نظام التشغيل:
[dependencies]
rscrypto = { version = "0.10", features = ["full", "getrandom"] }
الميزة الافتراضية هي std؛ وdefault-features = false يزيلها.
مكّن getrandom فقط لواجهات API التي تحصل على الأملاح، أو المفاتيح، أو الأرقام العشوائية المستخدمة مرة واحدة،
أو إنتروبيا توليد مفاتيح RSA من نظام التشغيل.
يوضح feature guide اختيار البناء؛ وCargo.toml يملك مخطط الميزات الدقيق.
البدء السريع
use rscrypto::Sha256;
let one_shot = Sha256::digest(b"hello world");
let mut hasher = Sha256::new();
hasher.update(b"hello ");
hasher.update(b"world");
assert_eq!(hasher.finalize(), one_shot);
تدعم واجهات API للتجزئة الاستخدام لمرة واحدة والتدفق.
توجد سير عمل قابلة للتشغيل لـ AEAD، والتوقيعات، وRSA، وP-256 وP-384 ECDH، وX25519، وML-KEM، وتجزئة كلمات المرور،
وintrospection للواجهة الخلفية في examples/README.md.
خريطة البدائيات والميزات
| العائلة | المتضمن | التمكين |
|---|---|---|
| المجاميع الاختبارية | CRC-16, CRC-24, CRC-32, CRC-32C, CRC-64/XZ, CRC-64/NVMe | checksums أو ميزات ورقية |
| التجزئات التشفيرية | SHA-2, SHA-3, SHAKE, cSHAKE, BLAKE2, BLAKE3, Ascon-Hash/XOF/CXOF | crypto-hashes أو ميزات ورقية |
| التجزئات السريعة | XXH3-64/128, RapidHash V3-64 | fast-hashes أو ميزات ورقية |
| MACs وKDFs | HMAC-SHA-2/SHA-3, KMAC128/256, Poly1305, HKDF-SHA-2, PBKDF2-HMAC-SHA-2 | macs، kdfs، أو ميزات ورقية |
| تجزئة كلمات المرور | Argon2d/i/id, scrypt, سجلات كلمات مرور PHC محدودة | password-hashing أو ميزات ورقية |
| التوقيعات وRSA | ECDSA P-256/P-384, Ed25519, ML-DSA-44/65/87, توقيع RSA، والتحقق، والتشفير، وتوليد المفاتيح | signatures أو ميزات ورقية |
| تبادل المفاتيح وKEMs | P-256 ECDH, P-384 ECDH, X25519, ML-KEM-512/768/1024 | key-exchange أو ميزات ورقية |
| AEADs | AES-GCM, AES-GCM-SIV, AES-SIV-CMAC, ChaCha20-Poly1305, XChaCha20-Poly1305, AEGIS-256, Ascon-AEAD128 | aead أو ميزات ورقية |
يتطلب ملخص قبول WebSocket الخاص بالتوافق فقط websocket-sha1،
وهو مستبعد من full ومن كل ميزة شاملة أخرى.
استخدم docs.rs للأنواع والطرق الدقيقة.
المنصات والتوزيع
تنفيذ Rust المحمول هو المرجع بايت ببايت.
يختار دعم الهدف وقت الترجمة، ومع std،
قدرات وحدة المعالجة المركزية المكتشفة وقت التشغيل نوى SIMD أو التجميع المؤهلة.
يعود التسريع غير المدعوم إلى Rust المحمول.
يوضح platform guide كتالوج الأهداف المدعومة، والتوزيع، وتغطية no_std،
وحدود portable-only.
المشروع
تصف الأدلة والأمثلة الكود المصدري المرافق. استخدم الإصدار المطابق من وثائق API لتبعية منشورة.
اقرأ CONTRIBUTING.md قبل تغيير الكود.
توجد التغييرات المنشورة في CHANGELOG.md.
الترخيص
مرخّص بشكل مزدوج تحت Apache-2.0 أو MIT، حسب اختيارك.