Coder Social home page Coder Social logo

saransh-cpp / chaoticencryption.jl Goto Github PK

View Code? Open in Web Editor NEW
31.0 31.0 5.0 5.02 MB

Fast image encryption and decryption algorithms in Julia!

Home Page: https://saransh-cpp.github.io/ChaoticEncryption.jl/

License: MIT License

Julia 100.00%
encryption-decryption julia julia-package pseudo-random-generator

chaoticencryption.jl's Introduction

You are probably looking for my website, specifically, the open-source page.

I am currently based at CERN, working as a Research Software intern with the Princeton Research Computing Group and IRIS-HEP. I am an engineering senior at the University of Delhi, pursuing a major in IT and Mathematics.

I am broadly interested in {Research Software Engineering, Scientific Computing, DevOps}, {Theory of Computation, Programming Languages, Type Theory}, {Scientific Machine Learning, Computer Vision, and Machine Learning for BioMedical Data}. I am extremely passionate about Open-Source and Open-Science.

Open-Source Software

Better here.

Main software

The software I am (or I was once) involved with as a maintainer, core developer, core contributor, or was funded to work on.

pybamm-team/PyBaMM | conda-forge/pybamm-feedstock | scikit-hep/vector | conda-forge/vector-feedstock | scikit-hep/awkward | FluxML/Flux.jl | agda/agda-stdlib | pybamm-team/liionpack | pybamm-team/BattBot | smaranjitghose/DocLense | asmeurer/removestar | conda-forge/removestar-feedstock

Significant contributions

Significant voluntary contributions or spin-off projects (was not directly funded to work on them but my work expanded and encompassed them).

FluxML ecosystem | Scikit-HEP ecosystem | luluxvi/DeepXDE | zarr-developers/zarr-python | scientific-python/cookie | CoffeaTeam/coffea

Small but nice contributions

Small contributions (not a spam spelling fix in README) that I did spend some time on.

sosy-lab/benchexec | colour-science/colour | bmcage/odes | idris-lang/Idris2 | numpy/numpy | astropy/astropy


chaoticencryption.jl's People

Contributors

adarshpalaskar1 avatar allcontributors[bot] avatar github-actions[bot] avatar gitter-badger avatar muthukumar-muthu avatar saransh-cpp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

chaoticencryption.jl's Issues

TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.

If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.

If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Add more documentation

Description

Current documentation has only API documentation. Add more documentation and link the jupyter notebook examples.

Motivation

No response

Possible Implementation

No response

Additional context

No response

Create a table of results in the README file

Description

Right now the results look bland, add a table that looks something like this -

Results

S. No. Original Image Image Dimensions Encrypted Image Decrypted Image PRNG used Algorithm used
1 x (512, 512) y z Logistic Map (logistic_key) Substitution (substitution_encryption, substitution_decryption)

Motivation

Would look good

Possible Implementation

No response

Additional context

No response

Vectorize substitution algorithm's functions

Description

Vectorize both the functions using the . operator to fasten the execution.

Motivation

Fast encryption and decryption!

Possible Implementation

No response

Additional context

No response

Create examples

Separate out examples from the docstrings into a new examples folder. Maybe try out Pluto.jl for julia notebooks!

Add docstring for the module

Description

Right now the documentation for the module as a whole is missing. This should be added.

Motivation

No response

Possible Implementation

No response

Additional context

No response

Use pre-allocation

ChaoticEncryption.jl Version

0.1.1

Julia Version

1.7.2

Describe the bug

The push! function is slower in comparison to pre-allocating the array and replacing its element -

keys = Vector{Int64}()
x = x_init
for i = 1:num_keys
x = r * x * (1 - x)
key = x * scaling_factor % upper_bound
push!(keys, trunc(Int, key))
end

Steps to Reproduce

No response

Expected behaviour

No response

Relevant log output

No response

Additional context

Change the implementation to speed up the package

[Bug]: Failing doctests (passing as warning right now)

ChaoticEncryption.jl Version

dev

Julia Version

1.7.1

Describe the bug

Look at the documentation workflow. The tests are failing (are passing as warning intentionally) because of a type mismatch.

Steps to Reproduce

No response

Expected behaviour

No response

Relevant log output

No response

Additional context

No response

Remove redundant dependencies

Description

I think a lot of deps are not being used, remove them.

Motivation

Redundant code

Possible Implementation

No response

Additional context

No response

Migrate to the latest julia version

Description

Migrate the code, examples, and documentation to Julia 1.7.2

Motivation

The failing doctests might pass, plus good to be on the latest Julia version as our CI runs on the same.

Possible Implementation

No response

Additional context

No response

Add CI to clean gh-pages

Description

name: Doc Preview Cleanup

on:
  pull_request:
    types: [closed]

jobs:
  doc-preview-cleanup:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout gh-pages branch
        uses: actions/checkout@v2
        with:
          ref: gh-pages
      - name: Delete preview and history + push changes
        run: |
            if [ -d "previews/PR$PRNUM" ]; then
              git config user.name "Documenter.jl"
              git config user.email "[email protected]"
              git rm -rf "previews/PR$PRNUM"
              git commit -m "delete preview"
              git branch gh-pages-new $(echo "delete history" | git commit-tree HEAD^{tree})
              git push --force origin gh-pages-new:gh-pages
            fi
        env:
            PRNUM: ${{ github.event.number }}

Motivation

No response

Possible Implementation

No response

Additional context

No response

Add benchmarks

Description

Using Julia gives us the advantage of speed, hence adding some benchmarks would make sure that the speed doesn't go low. Add some benchmarks and also a new workflow to benchmark periodically and on a PR.

Motivation

The package should be fast, given that it is operating on 1000s of pixels.

Possible Implementation

BenchmarkTools.jl

Additional context

No response

Add more results in README

Description

Add more results by combining different images, dimensions, PRNGs etc.

Motivation

No response

Possible Implementation

No response

Additional context

No response

Add examples for `!` methods

Description

The documentation right now lacks examples for encrypting and decrypting images in-place. Add a small section showing the same.

Motivation

No response

Possible Implementation

No response

Additional context

No response

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.