Skip to content

Implementation of different cryptography algorithms

Notifications You must be signed in to change notification settings

mysteryon88/Cryptography

Repository files navigation

Polybius

Implementation of Russian message encryption using Polybius Square

RSA

Implementation of a simple version of the RSA algorithm, organized through files

RC4

Implementation of a simple version of the RC4 algorithm, it is possible to generate a new random key

Diffie-Hellman

The simplest implementation of the diffie-hellman protocol, class fields should be private, but public for clarity

TinyHash

A simple implementation of a hash function for another project, the hash can be generated in different lengths (HASH_LEN)

Vigenère cipher

My first golang program. Latin-only implementation of the Vigenère cipher.

PS-network

The algorithm encrypts pictures in size multiples of a power of two, you can adjust the number of rounds and block size

Elliptic Curve

Elliptic Curve $y^2 = x^3 - a*x + b$ where $4a^3 + 27b^2≠0$. Added Point addition and Scalar multiplication in R and GF

Paillier cryptosystem

Partially homomorphic cryptosystem

ECDSA

Recovering a private key from an address that erred in creating a signature and reused the parameter k + Create a signature

HMAC

Simple implementations of two hash-based signature systems

NTRU

Tutorial implementation of the NTRU algorithm (lattice based cryptography)

Does not always decrypt, the problem is in the choice of the polynomial $r(x)$

Chaum-Pedersen

A simple implementation of the non-interactive Chaum-Pedersen protocol.

The protocol proves that two different discrete logarithms are equivalent without revealing the logarithms themselves:

$log_g(p)=log_h(p)$

Shamir's secret sharing

Realization of a threshold scheme for secret partitioning

Fiat-Shamir Protocol

Implementing a zero-knowledge protocol in python and running 20 rounds.