Skip to content
This repository was 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

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.