
تشفير Rust بدون أي تبعيات افتراضية: BLAKE3، Ed25519/X25519، تجزئات، MACs، KDFs، AEADs، ومجاميع فحص مع تسريع كامل عبر SIMD/ASM
يضع rscrypto البدائيات التشفيرية، والتجزئات التشفيرية والسريعة، وتجزئة كلمات المرور، والمجاميع الاختبارية خلف نموذج ميزات واحد. تعمل تعليمات SIMD والتجميع المقيّدة بالهدف على تسريع الخلفيات الخلفية لـ Rust المحمولة دون الاعتماد على C/FFI إنتاجي، أو OpenSSL، أو مكتبات النظام.
rscrypto هو صندوق بدائيات، وليس حزمة TLS، أو مجموعة أدوات PKI، أو مخزن مفاتيح، أو تنفيذ بروتوكول.
تقارن لقطة 2026-08-18 الالتزام 7eb44e9 بأسرع تنفيذ خارجي مطابق لكل منصة، وبدائية، وعملية، وشكل إدخال عبر ثمانية مشغّلات CI لنظام Linux. يتم اختيار خط الأساس الخارجي حالة بحالة، وليس كمتوسط عبر المنافسين. النسب هي ؛ الأعلى أفضل.
external / rscryptoعبر 6,144 مقارنة حالة دقيقة، كان rscrypto أسرع بنسبة تزيد عن 5% في 3,780 حالة، وضمن 5% في 1,695 حالة، وأبطأ في 669 حالة. كان متوسط السرعة الهندسي 1.62x إجمالاً، بما في ذلك 6.18x للمجاميع الاختبارية، و1.65x لـ RSA، و1.61x لـ AEAD، و1.55x لـ ML-KEM.
نتيجة Apple Silicon في الرسم البياني هي لقطة محلية منفصلة بتاريخ 2026-07-04؛ وهي غير مدرجة في إجمالي Linux.
هذه ميزة شاملة للمجموعة، وليست ادعاءً بأن كل عملية تفوز. تنشر اللقطة نفسها تراجع ECDSA على s390x ومسار rapidhash-stream/one-write الأبطأ إلى جانب كل صف خام. اقرأ نظرة عامة على المعايير للحصول على بطاقة النتائج الكاملة ودليل قياس الأداء قبل تطبيق أي نتيجة على عبء عمل نشر.
تفشل ادعاءات الأمان بشكل مغلق: الأدلة المفقودة أو القديمة تزيل الادعاء بدلاً من إضعاف البوابة.
ct.toml ويجمع بين فحص الروابط الثنائية المُحسَّنة، وبراهين BINSEC للنوى المعلنة ذات الشكل الثابت، واختبارات توقيت DudeCT للحالات المعلنة من البداية إلى النهاية.Debug، ويحذفون المساواة العادية، ويعيدون كتابة البايتات المملوكة عند الإفلات. إخفاقات التحقق مبهمة؛ وفتحات AEAD الفاشلة تمسح مخازن إخراج المتصل.يوجد ادعاء الوقت الثابت فقط عندما يتضمن الإصدار الموقّع المطابق حزمة أدلة موثقة تمر بوابات الهدف والميزة والمترجم والملف الشخصي والعملية المطلوبة. لا يُعتبر الكود المصدري الذي يبدو خالياً من الفروع دليلاً. تكون مصنوعات الإصدار مقيّدة بعلامات موقعة، وتُنشر عبر النشر الموثوق لـ crates.io، وتغطيها شهادات مصدر البناء في GitHub.
افحص أدلة الاختبار، ونموذج الوقت الثابت، ودورة حياة الأسرار، ونموذج التهديد، وعقد الإصدار.
الفجوة المتبقية في المراجعة المستقلة هي تدقيق أمني من طرف ثالث. لا يمكن للمشروع حالياً تمويله. لا تحل الأدلة الآلية محل تلك المراجعة، لذا لا يدّعي rscrypto أنه مُدقَّق، أو مُعتمد FIPS 140-3، أو مُتحقق منه رسمياً، أو ذو وقت ثابت كصندوق كامل.
أبلغ عن الثغرات المحتملة عبر
الإبلاغ الخاص عن الثغرات في GitHub
وفق عملية SECURITY.md، وليس عبر مشكلة عامة.
بناء SHA-2 الأدنى بدون std:
[dependencies]
rscrypto = { version = "0.9", default-features = false, features = ["sha2"] }
حزمة البدائيات الكاملة مع تمكين العشوائية من نظام التشغيل:
[dependencies]
rscrypto = { version = "0.9", features = ["full", "getrandom"] }
الميزة الافتراضية هي std؛ وdefault-features = false تزيلها. فعّل getrandom فقط لواجهات برمجة التطبيقات التي تحصل على الأملاح، أو المفاتيح، أو القيم غير المتكررة (nonces)، أو إنتروبيا توليد مفاتيح RSA من نظام التشغيل. يمتلك دليل الميزات التبعيات الدقيقة وضوابط النشر.
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);
تدعم واجهات التجزئة الاستخدام أحادي الدفعة والمتدفق. توجد سير عمل قابلة للتشغيل لـ AEAD، والتوقيعات، وRSA، وX25519، وML-KEM، وتجزئة كلمات المرور، والاستبطان الخلفي في 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, توقيع RSA، والتحقق، والتشفير، وتوليد المفاتيح | signatures أو ميزات فرعية |
| تبادل المفاتيح وKEMs | 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 أو ميزات فرعية |
استخدم docs.rs للأنواع والطرق الدقيقة. استخدم دليل الترحيل عند استبدال مكتبة أخرى.
تنفيذ Rust المحمول هو السلطة بايت ببايت. دعم الهدف في وقت الترجمة، ومع std، قدرات وحدة المعالجة المركزية المكتشفة في وقت التشغيل، تختار نوى SIMD أو التجميع المؤهلة. يتراجع التسريع غير المدعوم إلى Rust المحمول.
يمتلك دليل المنصات مصفوفة الأهداف، ونموذج التوزيع، وتغطية no_std، وحدود portable-only.
اقرأ CONTRIBUTING.md قبل تغيير الكود. التغييرات المنشورة موجودة في CHANGELOG.md.
مرخّص بترخيص مزدوج بموجب Apache-2.0 أو MIT، حسب اختيارك.