## Public key
[Home] This page outlines a wide range of methods used in encryption.
## Public Key## Public-key encryption (RSA)The following are the tips related to encryption: **RSA**. Simple RSA Calculation. This is a simple tutorial for RSA key generation.**RSA**. RSA Encryption. This uses RSA key generation and encryption.**RSA encryption/decryption**. RSA Encryption/Decryption (Python). This uses RSA encryption/decryption with Python.**RSA (range of keys)**. RSA Encryption. This uses RSA key generation and encryption using a range of key sizes from 512-bits up to 16,384 bit.**RSA with Commutative Keys**. Comm. Commutative encryption allows Bob and Alice to encrypt in any order, and then they can decrypt in any order.**Commutative Keys (with SRA - Shamir, Rivest and Aldeman)**. Comm. Commutative encryption examples.**Real-life Commutative Keys with RSA**. Comm. Uses an example with varing sizes of prime numbers.**RSA Decrypt**. RSA. This outlines RSA decryption.**RSA -partially homomorphic cryptosystem: Multiply**. RSA. This outlines RSA as a partially homomorphic cryptosystem for multiplication.**RSA -partially homomorphic cryptosystem: Divide**. RSA. This outlines RSA as a partially homomorphic cryptosystem for integer divide (and using the extended euclidean method for the divide).**Public Key (ASCII format)**. RSA Public Key. Often we have to convert the public key to an ASCII format.**RSA with Weak Prime Numbers (RSALib)**. copper. Weak generation of prime numbers within RSA (using RSALib).**RSA Optimal asymmetric encryption padding (RSA-OAEP)**. RSA OAEP. This uses RSA encryption and integrates a padding scheme. It was defined by Bellare and Rogaway, and has been standardized in PKCS#1 v2 and RFC 2437.**Montgomery reduction algorithm**. Montgomery. This performs multipication using Montgomery reduction algorithm.**Multiply and Square algorithm**. MSM. This performs exponent calculation.**RSA in 12 lines of Python**. RSA in 12 lines. This is a simple key generation, encryption and decryption program in 12 lines of Python code.**RSA in Python with varying prime number sizes**. RSA with prime lengths. This generates keys for differing lengths of prime numbers.**RSA Crack in 12 lines of Python**. RSA Crack in 12 lines. This is a simple RSA crack, in 12 lines of Python code.
## Public-key encryption (Elliptic Curve)The following are the tips related to encryption: **Elliptic Curve**. Elliptic Curve. Elliptic Curve is a public key method which can also be used to generate a shared key.**First 100 Elliptic Curve points in Finite Field**. Elliptic Curve points. Locating the first 100 points in an elliptic curve in a finite field.**Elliptic Curve - Point addition**. Elliptic Curve Point Addition. This shows the addition of two points on an elliptic curve.**First 20 Elliptic Curve points in Finite Field**. Elliptic Curve points. Locating the first 20 points in an elliptic curve in a finite field.**First 20 Elliptic Curve points in Finite Field (**. Elliptic Curve points. Locating the first 20 points in an elliptic curve in a finite field.**improved method**)**First 20 Elliptic Curve points in Finite Field (plot)**. Elliptic Curve points (plot). Locating the first 20 points in an elliptic curve in a finite field.**First 20 Elliptic Curve points in Finite Field for common curves**. Elliptic Curve points. Locating the first 20 points in an elliptic curve in a finite field for curves including Curve25519 (Tor), secp256k1 (Bitcoin) and NIST P-256.**Elliptic Curve - Blinding factor**. Elliptic Curve Blinding. This shows the addition of transactions with a blinding factor.**Elliptic Curve Diffie-Hellman (ECDH) with simple parameters**. ECDH. Elliptic Curve Diffie Hellman is used to create a shared key.**Elliptic Curve Diffie-Hellman (ECDH) with secp256k1**. ECDH. Elliptic Curve Diffie Hellman is used to create a shared key.**Elliptic Curve Diffie-Hellman (ECDH) with different curves**. ECDH. Elliptic Curve Diffie Hellman is used to create a shared key using different curves, including secp256k1, p192 and p224.**Elliptic Curve Digital Signature Algorithm (ECDSA)**. ECDSA. Elliptic Curve Digital Signature Algorithm (ECDSA) is used to sign data.**Elliptic Curve Digital Signature Algorithm (ECDSA) with core operations**. ECDSA. Elliptic Curve Digital Signature Algorithm (ECDSA) is used to sign data with core operations.**Edwards-curve Digital Signature Algorithm (EdDSA) with core operations**. EdDSA. Edwards-curve Digital Signature Algorithm (EdDSA) is used to sign data with core operations.**Elliptic Curve (Plot)**. Elliptic Curve (Plot). Elliptic Curve is a public key method which can also be used to generate a shared key. This page outlines a graphic of the curve.**Elliptic Curve (Real plots)**. Elliptic Curve (Real plot). This provides a range of well-defined elliptic curve plots.**Elliptic Curve (Keys)**. Elliptic Curve (Keys). Elliptic Curv is a public key method. This page outline the generation of ECC keys in Bitcoin.**Elliptic Curve Integrated Encryption Scheme (ECIES with Rabbit Encryption)**. Elliptic Curve (Encryption). Elliptic Curv is a public key method. This page outlines how we can use it to encrypt with Rabbit (a light-weight stream cipher).**Elliptic Curve Integrated Encryption Scheme (ECIES with AES Encryption)**. Elliptic Curve (Encryption). Elliptic Curv is a public key method. This page outlines how we can use it to encrypt with AES.**Hash to Elliptic Curve**. Hash to ECC. In this we match a value to the nearest point on an elliptic curve.**Elliptic Curve (Point Adding)**. Elliptic Curve. Creating 2P from P.**Elliptic Curve (Point Adding with real curves)**. Elliptic Curve. Creating 2P from P with real curves (eg Curve 25519).**Elliptic Curve (Calculating nP - ECC Calculator)**. Elliptic Curve. Creating nP from P with real curves.**Elliptic Curve (Point addition - ECC Calculator)**. Elliptic Curve. This calculator adds two points on an elliptic curve.**Elliptic Curve (Point addition - ECC Calculator - range of points)**. Elliptic Curve. This calculator takes one point on the elliptic curve, and then adds the other the other points on the curve to see the result.
## Public-key encryption (Others)The following are the tips related to encryption: **PGP Encryption**. PGP. This uses PGP encryption.**PGP Encryption (Key Generation - RSA) with Node.js**. PGP Keys. This uses PGP encryption with Node.js.**PGP Encryption (Key Generation - Elliptic Curve) with Node.js**. PGP Keys. This uses PGP encryption with Node.js.**DSA**. DSA Encryption. This uses DSA key and fingerprint generation.**ElGamal**. ElGamal. ElGamal is a public key method which uses discrete logarithms.**ElGamal in Python**. ElGamal in Python. ElGamal is a public key method which uses discrete logarithms.**Selecting G in ElGamal**. G in ElGamal. ElGamal is a public key method which uses discrete logarithms.**Knapsack Encryption (Theory)**. Knapsack. This outlines Knapsack public encryption**Knapsack Encryption (Example)**. Knapsack. This outlines Knapsack public encryption**Paillier crypto system (JavaScript)**. Paillier. Outlines Paillier crypto system using JavaScript.**Simple Paillier example (Python)**. Paillier. Outlines a simple Paillier crypto system using Python.**Identity Based Encryption (IBE)**. IBE. Outlines Identity Based Encryption.**Cramer-Shoup**. Cramer-Shoup. Outlines Cramer-Shoup public key encryption.**Goldwasser–Micali method: probablitistic encryption**. Goldwasser–Micali. The uses the Goldwasser–Micali and which is a probabilistic encryption met**Okamoto–Uchiyama**. OU. This performs the Okamoto–Uchiyama public key method.**Schmidt-Samoa**. SS. This performs the Schmidt-Samoa public key method.**Rabin**. Rabin. This performs the Rabin public key method.**Congruential Public Key**. Congruential. A public key method.
## Crypto Pairing**Simple pairing**. Key pairing. This page outlines simple examples of pair-based cryptography.**Tripartite Diffie Hellman with Pairing**. Tripartite. This page outlines Tripartite Diffie Hellman with pairing-based cryptography.**Key pairing over BN-curves**. Key pairing over BN-curves. This page demonstrates key pairing over BN-curves.**Shared key over BN-curves**. Shared key over BN-curves. This page demonstrates key generation over three parties with pairing over BN-curves.**IBE using elliptic curves**. IBE using elliptic curves. This page demonstrates IBE.**Boneh–Lynn–Shacham (BLS) signature**. BLS. Example of BLS signature.**Camenisch-Lysyanskaya Signatures**. CL. Example of Camenisch-Lysyanskaya Signatures.**Attributed-based Encryption (ABE)**. ABE. Example of ABE.**CP-Attributed-based Encryption (CP-ABE)**. ABE. Example of CP-ABE using Java.**BN254 with key and signature aggregation with MIRACL**. BN254. BN254 using Go lang, and merges the public keys and signatures.**BN254 for tripartite key sharing with MIRACL**. Tripartite. BN254 using Go lang for three-party key sharing.**BN254 for pairing with MIRACL**. Pairing. BN254 using Go for pairing of \(e(aU,bV)=e(abU,V)\).**BN254 for pairing with MIRACL**. Pairing. BN254 using Go for pairing of \(e(aU,bV)=e(U,V)^{ab}\).**BN254 for pairing with MIRACL**. Pairing. BN254 using Go for pairing of \(e(U1+U2,V)=e(U1,V) \times e(U2,V)\).**BN254 for pairing with MIRACL**. Pairing. BN254 using Go for pairing of \(e(aU,bV)=e(bU,aV)\).**BN254 for pairing with MIRACL**. Pairing. BN254 using Go for pairing for ID-based AKE.**Pair-based cryptography Identity Based Encryption (IBE) with MIRACL**. IBE. IBE Encryption.**BBS Signatures**. BBS. Group signatures using BBS for short signatures.**PS Signatures**. PS. Signatures using PS for short signatures.**Randomized PS Signatures**. PS. Signatures using PS for randomized short signatures.**Group PS Signatures**. Group PS. Group signatures using PS for the signing of multiple messages.
## Quantum-robust Public Key (Key exchange and encryption)**McEliece cryptosystem**. mce. Outlines McEliece cryptosystem.**Lattice plot**. Lattice (Plot). Outlines how lattices are created.**Lattice Encryption**. Lattice. This outlines Lattice encryption.**Unbalanced Oil and Vinegar (UOV)**. UOV. Outlines Unbalanced Oil and Vinegar (UOV) cryptosystem.**Generalised Merkle Signature Scheme**. GMSS. Outlines Generalised Merkle Signature Scheme.**Very simple LWE**. LWE. Outlines Learning With Errors.**BGV - (Ring LWE)**. BGV. Outlines BGV.**Public Key Encryption with Learning With Errors (LWE)**. LWE. Outlines public key encryption with Learning With Errors (LWE).**Multibit Encryption with Learning With Errors (LWE)**. LWE. Outlines multibit Encryption encryption with Learning With Errors (LWE).**Homomorphic Encryption with Learning With Errors (LWE)**. LWE. Outlines homomorphic encryption with Learning With Errors (LWE).**Ring Learning With Errors for Key Exchange (RLWE-KEX)**. LWE. Outlines RLWE-KEX.**LWE and Ring LWE**. LWE. Outlines Learning With Errors and RLWE.**NewHope for Key Exchange**. NewHope. Outlines NewHope for shared key generation.**Lattice Encryption: NTRU (Python)**. NTRU. Outlines how NTRU operates for key generation.**Lattice Encryption: Mod P polynomial operations**. Poly. Outlines Mod P polynomial operations.**Supersingular Isogeny Diffie-Hellman for Key Generation**. SIDH. Outlines SIDH.**\(R=\mathbb{Z}[X]/ ( X^{n}+1 ) \)**. (X^N+1). Outlines dividing by (\(X^{n}+1\)).**\(R=\mathbb{Z}[X]/ ( X^{n}+1 )\) - Additional of polynomimals**. (X^N+1). Outlines dividing by (\(X^{n}+1\)).
## Quantum-robust Public Key (Hash-based signature)**Lamport Signatures**. Lamport. Outlines Lamport signatures.**Winternitz Signatures**. Winternitz. Outlines Winternitz signatures.**Merkle Signatures**. Merkle Signature. Outlines Merkle signatures.**Hash to Obtain Random Subset (HORS) Signatures**. HORS Signature. Outlines Hash to Obtain Random Subset (HORS) signatures.**SPHINCS**. SPHINCS. Outlines SPHINCS.
## PresentationThe following is an outline presentation on encryption: |