** The original version with just the powerMod calculator was attained from:* https://www.mtholyoke.edu/courses/quenell/s2003/ma139/js/powermod.html

This is a piece of work created to help with identifying and understanding the beginner levels of IT Security and encryption techniques

This version uses the BigInteger.js Library which can handle very large numbers in JavaScript and can be found at: https://github.com/peterolson/BigInteger.js

__#For fun__, you input an extremely large number into the maximum field,

open the
console in inspector and watch how many calculations are made before finding a match...

depending on the
number can take some time...

**Sender** has: y, g, p values

**Receiver** has all values and has secret x value

*Use C2 value from __Step 4
(Exponential) - Calculate Code 2 (C2)__

***Warning - before running this method, if it is a large number is will take alot
of time and computing power to get the answer**

**Sender** has: n,g Values

**Receiver** has all values including secret λ and μ values

__*If you want to manually enter the values, enter them in the inputs instead of
clicking on compute button__

*Secretly Multiplying 2 messages and returning a result *(M = M _{1} *
M_{2})*

__#For fun__, you can input an extremely large number into the maximum field,

open the
console in inspector and watch how many calculations are made before finding a match for * [p], and
[g]....*

depending on the number can take some time....

Created by: @sqeel404

This project was put together during the mid semester break to help identify and understand the underlying concepts, formulas and principles within the Cryptography classes.

There are 3 main pages:

This is the original site, it holds the standard base calculations in javascript, however due to the javascript large number limitations it can not hadle substantially large numbers, so it ony contains the basic concepts and tools, such as:

- Modulus calculation
- Power modulus calculations
- Modulus Inverse Calculations
- Random Prime number
- Random number
- Elgamal Encryption
- Elgamal Decryption
- Paillier Encryption
- Paillier Decryption

This is a child of the original site, it has the same initial calculations, however this version uses the BigInteger.js javascript library which allows uses to do calculations on substantially large numbers. Due to this, further examples have been added as they can use substantially larger numbers for their calculations.

The tools so far are:

- Modulus calculation
- Power modulus calculations
- Modulus Inverse Calculations
- Random Prime number
- Random number
- Convert Number to Binary
- Convert Binary to Number
- Elgamal Encryption
- Elgamal Decryption
- Paillier Encryption
- Paillier Decryption
- Elgamal Homomorphic encryption/decryption and multiplication of secret numbers

***The Paillier version for secret addition of numbers will be added shortly for reference.**

This is the new main site and holds all the original calculators, plus extra General tools, hashing examples, IPFS examples and more.

The main site is now the updated version to follow and use as it has substantially higher calculations, resources and tools.

Enjoy, and hope it helps fellow users in their cryptographic learnings and education.