Skip to content
This repository has been archived by the owner on Jan 15, 2025. It is now read-only.

Data Compression project applied to Information Security.

License

Notifications You must be signed in to change notification settings

Endless077/HP_SBWT_Compression

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

High Performance SBWT 📦🔑

High Performance SBWT is a Python-based project that implements a cryptographic compression pipeline using advanced algorithms such as SBWT, Huffman coding, Arithmetic coding, LZW, and BZip2. It provides tools for compressing and encrypting data with a modular and extensible approach.

🔑 Key Features

  • User-Friendly: Command-line interface for easy usage and configuration.

  • Benchmarking Tools: Comes with utilities for testing and comparing performance.

  • Pipeline Integration: Implements SBWT-based cryptographic compression pipeline.

  • Multi-Algorithm Support: Includes Huffman, Arithmetic coding, BZip2, and LZW.

🛠️ Installation

📋 Prerequisites

Ensure you have the following installed:

  • Python 3.8+: Download it from python.org.

⚙️ Installation Steps

  1. Install Dependencies: Install required packages from requirements.txt:
pip install -r requirements.txt
  1. Verify Installation: Check the help options for the main scripts:
python3 hpswbt.py -h
python3 testing.py -h

⚠️ Notes

Ensure you have sufficient disk space for benchmarking large datasets.

📜 Usage

  1. Compress and Encrypt Run the main script with desired options:
python3 hpswbt.py compress -i input -m mode -k key [-l log]
python3 hpswbt.py decompress -i input -o output -k key [-l log]
  1. Benchmarking Use the testing.py script to evaluate performance:
python3 testing.py -i input -m mode -k key [-l log]

📜 API Reference

  • hpswbt.py: Implements the cryptographic compression pipeline. Options for selecting algorithms: huffman, arithmetic, lzw, bzip2.

  • testing.py: Provides benchmarking utilities for testing performance and compression ratios.

  • Other Modules: Additional modules are available separately for modular usage.

🙏 Acknowledgements

Huffman Coding 🌲

Huffman coding is a lossless data compression algorithm.

Arithmetic Coding 🔢

Arithmetic coding provides high compression ratios for specific data types.

BZip2 🗜️

BZip2 is a block-sorting compression algorithm for high efficiency.

LZW 🔡

LZW is a simple and fast algorithm widely used in file formats like GIF.

SBWT 📊

SBWT is a method used for data transformations in the pipeline.

💾 License

This project is licensed under the GNU General Public License v3.0.

GNU General Public License v3.0

Static Badge

🖐 Author

Contributors:

Project Manager:

🔔 Support

For support, email antonio.garofalo125@gmail.com or contact the project contributors.

📝 Documentation

See the documentation project here.