Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/saransh-cpp/chaoticencryption.jl

Fast image encryption and decryption algorithms in Julia!
https://github.com/saransh-cpp/chaoticencryption.jl

encryption-decryption julia julia-package pseudo-random-generator

Last synced: 9 days ago
JSON representation

Fast image encryption and decryption algorithms in Julia!

Awesome Lists containing this project

README

        




# ChaoticEncryption.jl

|Type|Badge/Status|
|-|-|
|CI|[![Build Status](https://github.com/Saransh-cpp/ChaoticEncryption.jl/actions/workflows/CI.yml/badge.svg?branch=master)](https://github.com/Saransh-cpp/ChaoticEncryption.jl/actions/workflows/CI.yml?query=branch%3Amaster) [![Coverage](https://codecov.io/gh/Saransh-cpp/ChaoticEncryption.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/Saransh-cpp/ChaoticEncryption.jl) [![pkgeval](https://juliahub.com/docs/ChaoticEncryption/pkgeval.svg)](https://juliahub.com/ui/Packages/ChaoticEncryption/dtMkN)|
|CD/Documentation|[![Documentation](https://github.com/Saransh-cpp/ChaoticEncryption.jl/actions/workflows/documentation.yml/badge.svg)](https://github.com/Saransh-cpp/ChaoticEncryption.jl/actions/workflows/documentation.yml) [![Dev](https://img.shields.io/badge/Docs-Dev-brightgreen)](https://saransh-cpp.github.io/ChaoticEncryption.jl/dev/)|
|Version|[![made-with-julia](https://img.shields.io/badge/Made%20with-Julia-ff69bf.svg)](https://julialang.org) [![version](https://juliahub.com/docs/ChaoticEncryption/version.svg)](https://juliahub.com/ui/Packages/ChaoticEncryption/dtMkN)|
|Statistics|[![Downloads](https://shields.io/endpoint?url=https://pkgs.genieframework.com/api/v1/badge/ChaoticEncryption)](https://pkgs.genieframework.com?packages=ChaoticEncryption) ![GitHub Repo stars](https://img.shields.io/github/stars/Saransh-cpp/ChaoticEncryption.jl)|
|Community|[![Join the chat at https://gitter.im/ChaoticEncryption-jl/community](https://badges.gitter.im/ChaoticEncryption-jl/community.svg)](https://gitter.im/ChaoticEncryption-jl/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![All Contributors](https://img.shields.io/badge/all_contributors-2-orange.svg?style=flat-square)](#contributors-)|

Encrypt and decrypt image files using Pseudo-Random Number Generators and various encryption techniques! `ChaoticEncryption.jl` comes loaded with Pseudo-Random Number Generators and various encryption techniques, which can be used to encrypt and decrypt any image file. The package is under active development, but the existing API is stable and might not change significantly.

## Installation
This package is available on Julia's Registry!
```julia
julia> using Pkg
julia> Pkg.add("ChaoticEncryption")
```
or
```julia
julia> ] add ChaoticEncryption
```

For developer installation or installation from source, refer [here](https://github.com/Saransh-cpp/ChaoticEncryption.jl/blob/master/CONTRIBUTING.md#local-installation).

## Examples

The example for a particular function is available in the function's docstring itself. These docstrings or the API documentation is also available [here](https://saransh-cpp.github.io/ChaoticEncryption.jl/dev/).

Other than the docstrings, comprehensive `Jupyter` notebooks displaying the features of `ChaoticEncryption.jl` are available in the [`examples`](https://github.com/Saransh-cpp/ChaoticEncryption.jl/tree/master/examples) directory.

## Testing

To run the tests, execute the following in your `Julia REPL` -
```julia
julia> ] test ChaoticEncryption
```

More information on tests is available [here](https://github.com/Saransh-cpp/ChaoticEncryption.jl/blob/master/CONTRIBUTING.md#testing).

To run calculate coverage while running tests, execute the following in your `Julia REPL` -
```julia
julia> using Pkg
julia> Pkg.add("Coverage")
julia> Pkg.test("ChaoticEncryption"; coverage=true)
```

More information on coverage is available [here](https://github.com/Saransh-cpp/ChaoticEncryption.jl/blob/master/CONTRIBUTING.md#coverage).

## Documentation

The documentation is available here - https://saransh-cpp.github.io/ChaoticEncryption.jl/dev/

The documentation can be built locally by executing -
```
julia docs/make.jl
```
The deployment will be visible on the webpage served at http://127.0.0.1:8000.

More information on documentation is available [here](https://github.com/Saransh-cpp/ChaoticEncryption.jl/blob/master/CONTRIBUTING.md#documentation).

## Infrastructure

A detailed guide on `ChaoticEncryption.jl`'s infrastructure is available [here](https://github.com/Saransh-cpp/ChaoticEncryption.jl/blob/master/CONTRIBUTING.md#infrastructure).

## Results
|S.No. | Original Image | Image Dimensions | Encrypted Image | Decrypted Image | PRNG used | Algorithm used |
|:----:|:--------------:|:----------------:|:---------------:|:---------------:|:---------:|:--------------:|
|1|![image](https://user-images.githubusercontent.com/74055102/154138746-cd49b7a7-bdf2-47c2-8260-35a90084c60a.png)| (225, 225) | ![encrypted](https://user-images.githubusercontent.com/74055102/154138976-5e60fe23-3644-4299-bc39-7d6b637cc744.png) | ![decrypted](https://user-images.githubusercontent.com/74055102/154139009-bd2a1de0-03a7-432e-bc34-2647f8c42425.png) | Logistic Map (`logistic_key`) | Substitution (`substitution_encryption, substitution_decryption`)|
|2|![image](https://github.com/Saransh-cpp/ChaoticEncryption.jl/assets/83298237/a4d8ab01-cf3b-4d87-8e6e-f559f1fab475)| (512, 512) | ![encrypted](https://user-images.githubusercontent.com/74055102/154138976-5e60fe23-3644-4299-bc39-7d6b637cc744.png) | ![decrypted](https://github.com/Saransh-cpp/ChaoticEncryption.jl/assets/83298237/24963f96-a50d-44af-b6d9-65f34c6b04fe) | Logistic Map (`logistic_key`) | Substitution (`substitution_encryption, substitution_decryption`)|
|3|![image](https://github.com/Saransh-cpp/ChaoticEncryption.jl/assets/83298237/a5515ec0-ca5d-4a7b-84d3-dbadc5bfe799)| (300, 451) | ![encrypted](https://github.com/Saransh-cpp/ChaoticEncryption.jl/assets/83298237/b05b422a-ff5f-402b-8868-5f8826537360) | ![decrypted](https://github.com/Saransh-cpp/ChaoticEncryption.jl/assets/83298237/2ffa0677-ed75-43fc-9c7a-2b38a35c0a16) | Logistic Map (`logistic_key`) | Substitution (`substitution_encryption, substitution_decryption`)|
|4|![image](https://github.com/Saransh-cpp/ChaoticEncryption.jl/assets/83298237/0d82e63b-e223-4e6b-84be-6519fa1f13dd)| (512, 768) | ![encrypted](https://github.com/Saransh-cpp/ChaoticEncryption.jl/assets/83298237/f1488f13-f58d-42e4-a4a9-72a49afe5c51) | ![decrypted](https://github.com/Saransh-cpp/ChaoticEncryption.jl/assets/83298237/cf49b39f-abe5-4467-9279-b0a0732ea47a) | Logistic Map (`logistic_key`) | Substitution (`substitution_encryption, substitution_decryption`)|

## Contributing to ChaoticEncryption.jl

All contributions to this repository are welcome. Please go through our [contribution guidelines](https://github.com/Saransh-cpp/ChaoticEncryption.jl/blob/master/CONTRIBUTING.md) to make the whole process smoother.

## Contributors ✨

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):



Saransh

💻 🐛 🎨 💡 🚇 🚧 👀 ⚠️ 📖

Muthukumar M

📖

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!