Skip to content

Data storage and management prototype that ensures data confidentiality, integrity, and recoverability through encryption, fragmentation, and zero-knowledge verification.

License

Notifications You must be signed in to change notification settings

jaygwelsh/CRYSTAL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CRYSTAL (Cryptographically Reversible Yoked Storage Layer)

CRYSTAL is a secure storage prototype ensuring data integrity and confidentiality through reversible encryption, data fragmentation, dynamic compression, and zero-knowledge verification. Prototype considered ideal for small-to-medium sized datasets (<1 GB).

Table of Contents

Features

  • Reversible Encryption: Enables data integrity checks and recovery without full decryption.
  • Data Fragmentation: Splits data into encrypted fragments for distribution across nodes.
  • Dynamic Compression: Reduces storage overhead while maintaining data fidelity.
  • Zero-Knowledge Verification: Verifies data integrity without exposing the actual data.

Getting Started

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/crystal.git
    cd crystal
  2. Install dependencies:

    pip install -r requirements.txt
  3. Generate Encryption Keys:

    Run the following Python script to generate and save encryption keys:

    from crystal_storage.encryption import EncryptionManager
    
    manager = EncryptionManager()
    manager.serialize_keys()

Configuration

Configure the system by editing the config/config.yaml file:

fragment_size: 1024  # Size in bytes
node_paths:
  - ../data/node1
  - ../data/node2
  - ../data/node3
encryption_keys:
  private_key: ../config/private_key.pem
  public_key: ../config/public_key.pem
logging:
  level: INFO  # Options: DEBUG, INFO, WARNING, ERROR, CRITICAL

Usage

Storing Data

python scripts/store_data.py

Verifying Data Integrity

python scripts/verify_integrity.py

Recovering Data

python scripts/recover_data.py

Running Benchmarks

python benchmarks/benchmark_test.py

Contributing

We welcome contributions to enhance CRYSTAL! Please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bugfix.
  3. Submit a pull request with a detailed description of your changes.
  4. For major changes, please open an issue first to discuss what you would like to change.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Final Notes

Ensure that you keep your encryption keys secure. Use version control systems responsibly, avoiding the accidental inclusion of sensitive data.

Conclusion

CRYSTAL provides an innovative, secure, and efficient way to manage and safeguard data. We look forward to your feedback and contributions!

About

Data storage and management prototype that ensures data confidentiality, integrity, and recoverability through encryption, fragmentation, and zero-knowledge verification.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages