
Rust-Krypto mit null Standardabhängigkeiten: BLAKE3, Ed25519/X25519, Hashes, MACs, KDFs, AEADs und Prüfsummen mit vollständiger SIMD/ASM-Beschleunigung
rscrypto stellt kryptografische Primitive, kryptografische und schnelle Hashes,
Passwort-Hashing und Prüfsummen hinter einem einzigen Feature-Modell bereit. Zielgesteuerte SIMD- und
Assembly-Implementierungen beschleunigen portable Rust-Backends ohne eine produktive C/FFI-,
OpenSSL- oder Systembibliotheks-Abhängigkeit.
rscrypto ist eine Primitiven-Crate, kein TLS-Stack, PKI-Werkzeugkasten, Schlüsselspeicher oder
Protokollimplementierung.
Der Snapshot vom 18.08.2026 vergleicht Commit mit der schnellsten passenden externen Implementierung für jede Plattform, jedes Primitiv, jede Operation und jede Eingabeform auf acht Linux-CI-Runnern. Die externe Baseline wird fallweise ausgewählt, nicht über Wettbewerber gemittelt. Verhältnisse sind ; höher ist besser.
7eb44e9extern / rscryptoÜber 6.144 exakte Fallvergleiche war rscrypto in 3.780 Fällen mehr als 5 % schneller,
in 1.695 Fällen innerhalb von 5 % und in 669 Fällen langsamer. Der geometrische Mittelwert der
Beschleunigung betrug insgesamt 1,62x, einschließlich 6,18x für Prüfsummen, 1,65x für RSA, 1,61x für
AEAD und 1,55x für ML-KEM.
Das Apple-Silicon-Ergebnis im Diagramm ist ein separater lokaler Snapshot vom 04.07.2026; es ist nicht im Linux-Aggregat enthalten.
Dies ist eine Gesamtsuite-Führung, keine Behauptung, dass jede Operation gewinnt. Derselbe
Snapshot veröffentlicht die s390x-ECDSA-Regression und den langsameren
rapidhash-stream/one-write-Pfad neben jeder Rohzeile. Lesen Sie die
Benchmark-Übersicht für die vollständige Ergebnisliste
und den Benchmarking-Leitfaden, bevor Sie ein Ergebnis auf eine
Bereitstellungsworkload anwenden.
Sicherheitsansprüche schlagen fehlgeschlossen fehl: fehlende oder veraltete Nachweise entfernen den Anspruch, anstatt das Tor zu schwächen.
ct.toml
und kombiniert optimierte Linked-Binary-Inspektion, BINSEC-Beweise für deklarierte
Festform-Kernel und DudeCT-Timing-Tests für deklarierte End-to-End-Fälle.Debug, unterlassen gewöhnliche Gleichheit und überschreiben
eigene Bytes beim Drop. Verifikationsfehler sind undurchsichtig; fehlgeschlagene AEAD-Öffnungen
löschen Ausgabepuffer des Aufrufers.Ein Konstantzeit-Anspruch existiert nur, wenn die passende signierte Veröffentlichung ein attestiertes Nachweisbündel enthält, dessen erforderliche Ziel-, Feature-, Compiler-, Profil- und Operations-Gates bestehen. Quellcode, der verzweigungslos aussieht, wird nicht als Beweis behandelt. Veröffentlichungsartefakte sind signiert-Tag-gesteuert, werden über crates.io Trusted Publishing veröffentlicht und sind durch GitHub-Build-Provenance-Attestierungen abgedeckt.
Prüfen Sie die Testnachweise,
das Konstantzeit-Modell,
den Geheimnis-Lebenszyklus,
das Bedrohungsmodell und den Veröffentlichungsvertrag.
Die verbleibende Lücke unabhängiger Prüfung ist ein Sicherheitsaudit durch Dritte. Das
Projekt kann derzeit keines finanzieren. Automatisierte Nachweise ersetzen diese
Prüfung nicht, daher behauptet rscrypto nicht, auditiert, FIPS-140-3-validiert,
formal verifiziert oder als gesamte Crate konstantzeit zu sein.
Melden Sie vermutete Schwachstellen über
GitHub Private Vulnerability Reporting
gemäß dem SECURITY.md-Prozess, nicht über ein öffentliches Issue.
Minimaler no_std-SHA-2-Build:
[dependencies]
rscrypto = { version = "0.9", default-features = false, features = ["sha2"] }
Voller Primitiv-Stack mit aktiviertem OS-Zufall:
[dependencies]
rscrypto = { version = "0.9", features = ["full", "getrandom"] }
Das Standard-Feature ist std; default-features = false entfernt es. Aktivieren Sie
getrandom nur für APIs, die Salze, Schlüssel, Nonces oder RSA-Schlüsselerzeugungs-
Entropie vom Betriebssystem beziehen. Der Feature-Leitfaden
verwaltet exakte Abhängigkeiten und Bereitstellungssteuerungen.
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);
Hash-APIs unterstützen Einmal- und Streaming-Nutzung. Ausführbare Workflows für AEAD,
Signaturen, RSA, X25519, ML-KEM, Passwort-Hashing und Backend-Introspection finden Sie
in examples/README.md.
| Familie | Enthalten | Aktivieren |
|---|---|---|
| Prüfsummen | CRC-16, CRC-24, CRC-32, CRC-32C, CRC-64/XZ, CRC-64/NVMe | checksums oder Blatt-Features |
| Kryptografische Hashes | SHA-2, SHA-3, SHAKE, cSHAKE, BLAKE2, BLAKE3, Ascon-Hash/XOF/CXOF | crypto-hashes oder Blatt-Features |
| Schnelle Hashes | XXH3-64/128, RapidHash V3-64 | fast-hashes oder Blatt-Features |
| MACs und KDFs | HMAC-SHA-2/SHA-3, KMAC128/256, Poly1305, HKDF-SHA-2, PBKDF2-HMAC-SHA-2 | macs, kdfs oder Blatt-Features |
| Passwort-Hashing | Argon2d/i/id, scrypt, begrenzte PHC-Passwortdatensätze | password-hashing oder Blatt-Features |
| Signaturen und RSA | ECDSA P-256/P-384, Ed25519, RSA-Signierung, -Verifikation, -Verschlüsselung und -Schlüsselerzeugung | signatures oder Blatt-Features |
| Schlüsselaustausch und KEMs | X25519, ML-KEM-512/768/1024 | key-exchange oder Blatt-Features |
| AEADs | AES-GCM, AES-GCM-SIV, AES-SIV-CMAC, ChaCha20-Poly1305, XChaCha20-Poly1305, AEGIS-256, Ascon-AEAD128 | aead oder Blatt-Features |
Nutzen Sie docs.rs für exakte Typen und Methoden. Nutzen Sie den
Migrationsleitfaden, wenn Sie eine andere Bibliothek ersetzen.
Die portable Rust-Implementierung ist die byte-für-byte-Autorität. Kompilierzeit-
Zielunterstützung und, mit std, erkannte Laufzeit-CPU-Fähigkeiten wählen
geeignete SIMD- oder Assembly-Kernel aus. Nicht unterstützte Beschleunigung fällt auf
portables Rust zurück.
Der Plattform-Leitfaden verwaltet die Zielmatrix, das Dispatch-
Modell, die no_std-Abdeckung und die Grenzen von portable-only.
Lesen Sie CONTRIBUTING.md, bevor Sie Code ändern. Veröffentlichte Änderungen
befinden sich in CHANGELOG.md.
Dual-lizenziert unter Apache-2.0 oder MIT, nach Ihrer Wahl.