hermetica

Crates.iohermetica
lib.rshermetica
version0.1.3
sourcesrc
created_at2024-07-12 15:31:01.102875
updated_at2024-07-12 20:15:47.132234
descriptionHardware accelerated file encryption/decryption
homepage
repositoryhttps://github.com/cdrso/hermetica
max_upload_size
id1300798
size3,443,609
(cdrso)

documentation

README

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 and PCLMULQDQ 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 and PCLMULQDQ 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

  1. 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 and PCLMULQDQ 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.

Commit count: 0

cargo fmt