Zurück zu den Updates
New releaseSep 3, 2026

rscrypto v0.9.0

Rust-Krypto mit null Standardabhängigkeiten: BLAKE3, Ed25519/X25519, Hashes, MACs, KDFs, AEADs und Prüfsummen mit vollständiger SIMD/ASM-Beschleunigung

Teilen

rscrypto

Crates.io Docs.rs CI MSRV 1.91.0 License: MIT OR Apache-2.0

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.

Gemessene Leistung

Der Snapshot vom 18.08.2026 vergleicht Commit 7eb44e9 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 extern / rscrypto; höher ist besser.

Ü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.

rscrypto-Benchmark-Diagramm: 1,62x Linux und 1,37x Apple Silicon schnellste passende Geomeans, Prüfsummen bei 6,18x gegenüber crc-fast, crc, crc32fast, crc32c und crc64fast, plus Primitiv-Geomean-Balken und M1-MBP-Apple-Silicon-Hinweise.

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.

Zusicherung

Sicherheitsansprüche schlagen fehlgeschlossen fehl: fehlende oder veraltete Nachweise entfernen den Anspruch, anstatt das Tor zu schwächen.

  • Korrektheitsnachweise kombinieren NIST-, RFC-, Upstream- und Wycheproof-Vektoren mit separaten Implementierungen, Eigenschaften, Negativtests und Miri.
  • Fuzz-Ziele üben Produktionsimplementierungen über Primitiv-, Parser-, Zustandsmaschinen- und Trait-Grenzen hinweg. Minimierte Seeds werden als Tests wiedergegeben, mit einer separaten Sanitizer-Spur.
  • Differenzielle Tests portabler versus beschleunigter Implementierungen decken Längen, Ausrichtungen, Enden, Zustandsübergänge, Dispatch und Fallback-Verhalten auf nativen Zielen ab.
  • Die Konstantzeit-Harness inventarisiert exakte Operationen in 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.
  • Besitzer fester Geheimnisgrößen maskieren 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.

Nur installieren, was Sie nutzen

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.

Schnellstart

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.

Primitiv- und Feature-Karte

FamilieEnthaltenAktivieren
PrüfsummenCRC-16, CRC-24, CRC-32, CRC-32C, CRC-64/XZ, CRC-64/NVMechecksums oder Blatt-Features
Kryptografische HashesSHA-2, SHA-3, SHAKE, cSHAKE, BLAKE2, BLAKE3, Ascon-Hash/XOF/CXOFcrypto-hashes oder Blatt-Features
Schnelle HashesXXH3-64/128, RapidHash V3-64fast-hashes oder Blatt-Features
MACs und KDFsHMAC-SHA-2/SHA-3, KMAC128/256, Poly1305, HKDF-SHA-2, PBKDF2-HMAC-SHA-2macs, kdfs oder Blatt-Features
Passwort-HashingArgon2d/i/id, scrypt, begrenzte PHC-Passwortdatensätzepassword-hashing oder Blatt-Features
Signaturen und RSAECDSA P-256/P-384, Ed25519, RSA-Signierung, -Verifikation, -Verschlüsselung und -Schlüsselerzeugungsignatures oder Blatt-Features
Schlüsselaustausch und KEMsX25519, ML-KEM-512/768/1024key-exchange oder Blatt-Features
AEADsAES-GCM, AES-GCM-SIV, AES-SIV-CMAC, ChaCha20-Poly1305, XChaCha20-Poly1305, AEGIS-256, Ascon-AEAD128aead oder Blatt-Features

Nutzen Sie docs.rs für exakte Typen und Methoden. Nutzen Sie den Migrationsleitfaden, wenn Sie eine andere Bibliothek ersetzen.

Plattformen und Dispatch

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.

Projekt

Lesen Sie CONTRIBUTING.md, bevor Sie Code ändern. Veröffentlichte Änderungen befinden sich in CHANGELOG.md.

Lizenz

Dual-lizenziert unter Apache-2.0 oder MIT, nach Ihrer Wahl.

Kategorien