1 unstable release
0.1.3 | Jul 12, 2024 |
---|---|
0.1.2 |
|
0.1.1 |
|
0.1.0 |
|
#660 in Command line utilities
29 downloads per month
1MB
769 lines
Hermetica
Hardware-Accelerated File Encryption and Decryption
Overview
Hermetica is a high-performance Rust application for rapid file encryption and decryption. It leverages hardware acceleration and efficient multithreading to maximize performance across all available CPU cores.
Important Security Disclaimer: Hermetica uses a custom, from-scratch AES-GCM implementation. It has not undergone formal security audits and is not recommended for production or security-critical applications without thorough review and testing.
Key Features
- Hardware acceleration using x86
AES-NI
andPCLMULQDQ
instruction sets - Highly efficient multithreading utilizing all available CPU cores
- Seamless integration of Rust and x86 assembly for optimal performance
Technical Details
- Algorithm: AES-GCM
- Hardware Requirements: x86 processor with
AES-NI
andPCLMULQDQ
support - Tools used:
- Rust for application logic and safe concurrency
- x86 Assembly for performance-critical cryptographic operations
- Concurrency Model: Rust's
std::thread
for low-overhead parallel processing
Performance
Hermetica is engineered for speed and efficiency:
- Fully utilizes all available CPU threads for parallel processing
- Dedicated instruction sets significantly outperform plain software implementation
- Performance is orders of magnitude faster than Rayon-based parallelism
- For this specific use case rayon did not yield performance improvements
- Speed limited by disk I/O operations
- Cryptographic operations are highly optimized and intensive computation is not the limiting factor
Getting Started
- run
cargo install hermetica
Usage
Hermetica provides simple command-line operations for file encryption and decryption:
- Encryption:
hermetica -e <file>
- Decryption:
hermetica -d <file>
Limitations and Considerations
- Compatible only with x86 processors supporting
AES-NI
andPCLMULQDQ
instructions - Not suitable for production or security-critical applications without thorough review and testing
License
This project is licensed under the GNU General Public License v3.0 (GPLv3). See the LICENSE file for full details.
Dependencies
~5–15MB
~204K SLoC