Public Key Cryptosystem

Download Report

Transcript Public Key Cryptosystem

Public Key Cryptosystem
Introduced in 1976 by Diffie and Hellman [2]
In PKC different keys are used for encryption and decryption
1978: First Two Implementations
RSA:
Rivest-Shamir-Adleman
ACM 2002 Turing Award
Based on integer
factorization
Additive
Knapsack
Cryptosystem
Merkle-Hellman
Knapsack Cryptosystem [1]
Based on the
subset-sum problem,
variant of knapsack problem
Multiplicative
Knapsack
Cryptosystem
Multiply-Iterated
Knapsack
Cryptosystem
Public Key Cryptosystems
 Elliptic curve cryptography (ECC) is an approach to
PKC based on the algebraic structure of elliptic curves
over finite fields. The use of elliptic curves in
cryptography was suggested independently by Neal
Koblitz and Victor S. Miller in 1985.
 The NTRUEncrypt public key cryptosystem, also known
as the NTRU encryption algorithm, is a lattice-based
alternative to RSA and ECC and is based on the shortest
vector problem in a lattice.
Public Key Cryptosystems
 ElGamal encryption system is an asymmetric
key encryption algorithm for PKC which is based
on the Diffie–Hellman key exchange. It was
described by Taher Elgamal in 1985.
 The Digital Signature Algorithm (DSA) is a
United States Federal Government standard or
FIPS for digital signatures.
Links
 http://www.nytimes.com/keyword/adi-shamir
 http://simson.net/ref/1988/Landau_Zero_Knowledge.pdf
 http://en.wikipedia.org/wiki/Public-key_cryptography
 http://en.wikipedia.org/wiki/Zero-knowledge_proof
RSA
Alice:
1. Chooses secret (private) key
2. Create and publishes public key
3. Receives ciphertext from Bob
4. Decrypts ciphertext using secret key to recover
the plaintext – original message
Bob
1. Uses Alice Public Key to encrypt the message
2. Sends ciphertext – encrypted message to Alice
ALICE Preparation Step – Creates
Private and Public Key
 Selects two primes p and q
 Calculates


m = pq
n= (p–1)(q–1)
 Selects e that relatively prime to n, gcd (e, n ) = 1
 Finds the multiplicative inverse of e mod n.
Denotes the multiplicative inverse by d:
ed  1 (mod n)
 Publishes e and m – this is the public key
BOB - Encryption
 Plaintext is number x
 x  m -1
 gcd (x, m) =1
 Ciphertext y is calculated as follows:
 y = xe mod m
 y is sent to Alice
0
Alice - Decryption
 Alice receives the ciphertext y
 Calculates yd mod m and this is a plaintext x, so the
final formula is: x  yd ( mod m )
 Why is it working?
 d ( mod n ) means: ed  1 (mod n) means:
ed = 1 + kn = 1 + k ( p -1 )( q -1 ) (for some integer k )
 yd  (xe mod m )d  xed  x 1 + k(p-1)(q-1)  x (mod m)
(Theorem 4.3.2 from your textbook, x has to be
relatively prime to m = pq)
 e-1