1 unstable release
Uses new Rust 2024
| 0.1.0-alpha.1 | Jul 16, 2026 |
|---|
#1140 in Cryptography
50KB
792 lines
Human Keys
Pure Rust implementation of human-derived attribute fingerprinting for cryptographic key derivation.
Browser and device fingerprinting derives a stable, unique identifier from a collection of otherwise unremarkable signals: screen size, installed fonts, timezone, operating system. None of these are secret or unique alone, but their combination is. Human Keys applies the same concept to human-derived attributes (name, date of birth, occupation, etc.).
A Profile collects these raw attribute values, keyed by kind. Hardening a Profile with Argon2id produces a Fingerprint, from which cryptographic keys can be derived by selecting which attribute kinds are treated as special attributes; different selections of special attributes produce independent keys, even when selections overlap. A Confirmation allows a selection to be checked, via a human-readable code, before committing to key derivation.
This crate is largely a wrapper around attrkey, specialising its generic attribute model to human-derived attributes by requiring attribute kinds to implement AttributeKind, supplying the Attribute enum of human attribute variants, and pinning the password hasher and RNG expansion to Argon2id and ChaCha20Rng.
Minimum Supported Rust Version
Rust 1.85.1 or higher.
License
Licensed under the MIT License.
Dependencies
~6.5MB
~135K SLoC