RSA and Zero Knowldge Proof
RSA and Zero Knowldge Proof
Cryptography
• Confidentiality
– stream ciphers (uses PRNG)
– block ciphers with encryption modes
• Integrity
– Cryptographic hash functions
– Message authentication code (keyed hash functions)
• Limitation: sender and receiver must share the same
key
– Needs secure channel for key distribution
– Impossible for two parties having no prior relationship
– Needs many keys for n parties to communicate
Fall 2010/Lecture 31 1
Public Key Encryption Overview
• Each party has a PAIR (K, K-1) of keys:
– K is the public key, and used for encryption
– K-1 is the private key, and used for decryption
– Satisfies DK-1[EK[M]] = M
• Knowing the public-key K, it is computationally infeasible to
compute the private key K-1
– How to check (K,K-1) is a pair?
– Offers only computational security. PK Encryption impossible when
P=NP, as deriving K-1 from K is in NP.
• The public-key K may be made publicly available, e.g., in a
publicly available directory
– Many can encrypt, only one can decrypt
• Public-key systems aka asymmetric crypto systems
Fall 2010/Lecture 31 2
Public Key Encryption Algorithms
• Almost all public-key encryption algorithms use
either number theory and modular arithmetic, or
elliptic curves
• RSA
– based on the hardness of factoring large numbers
• El Gamal
– Based on the hardness of solving discrete logarithm
– Basic idea: public key gx, private key x, to encrypt:
[gy, gxy M].
Fall 2010/Lecture 31 3
RSA Algorithm
• Invented in 1978 by Ron Rivest, Adi Shamir and
Leonard Adleman
– Published as R L Rivest, A Shamir, L Adleman, "On
Digital Signatures and Public Key Cryptosystems",
Communications of the ACM, vol 21 no 2, pp120-126,
Feb 1978
• Security relies on the difficulty of factoring large
composite numbers
• Essentially the same algorithm was discovered
in 1973 by Clifford Cocks, who works for the
British intelligence
Fall 2010/Lecture 31 4
RSA Public Key Crypto System
Key generation:
1. Select 2 large prime numbers of about the same size, p
and q
Typically each p, q has between 512 and 2048 bits
2. Compute n = pq, and (n) = (q-1)(p-1)
3. Select e, 1<e< (n), s.t. gcd(e, (n)) = 1
Typically e=3 or e=65537
4. Compute d, 1< d< (n) s.t. ed 1 mod (n)
Knowing (n), d easy to compute.
Fall 2010/Lecture 31 5
RSA Description (cont.)
Encryption
Given a message M, 0 < M < n M Zn {0}
use public key (e, n)
compute C = Me mod n C Zn {0}
Decryption
Given a ciphertext C, use private key (d)
Compute Cd mod n = (Me mod n)d mod n = Med
mod n = M
Fall 2010/Lecture 31 6
C = Me mod (n=pq)
Plaintext: M Ciphertext: C
Cd mod n
Fall 2010/Lecture 31 7
RSA Example
• p = 11, q = 7, n = 77, (n) = 60
• d = 13, e = 37 (ed = 481; ed mod 60 = 1)
• Let M = 15. Then C Me mod n
– C 1537 (mod 77) = 71
• M Cd mod n
– M 7113 (mod 77) = 15
Fall 2010/Lecture 31 8
RSA Example 2
• Parameters:
– p = 3, q = 5, q= pq = 15
(n) = ?
• Let e = 3, what is d?
• Given M=2, what is C?
• How to decrypt?
Fall 2010/Lecture 31 9
RSA Security
• Security depends on the difficulty of factoring n
– Factor n => (n) => compute d from (e, (n))
• The length of n=pq reflects the strength
– 700-bit n factored in 2007
– 768 bit factored in 2009
• 1024 bit for minimal level of security today
– likely to be breakable in near future
• Minimal 2048 bits recommended for current usage
• NIST suggests 15360-bit RSA keys are equivalent in
strength to 256-bit
• RSA speed is quadratic in key length
Fall 2010/Lecture 31 10
Real World Usage of Public Key
Encryption
• Often used to encrypt a symmetric key
– To encrypt a message M under a public key (n,e), generate a new
AES key K, compute [RSA(n,e,K), AES(K,M)]
• Plain RSA does not satisfy IND requirement.
– How to break it?
• One often needs padding, e.g., Optimal Asymmetric
Encryption Padding (OAEP)
– Roughly, to encrypt M, chooses random r, encode M as M’
= [X = M H1(r) , Y= r H2(X) ]where H1 and H2 are cryptographic
hash functions, then encrypt it as (M’) e mod n
– Note that given M’=[X,Y], r = Y H2(X), and M = X H1(r)
Fall 2010/Lecture 31 11
Digital Signatures: The Problem
Fall 2010/Lecture 31 12
Digital Signatures
• MAC: One party generates MAC, one party verifies integrity.
• Digital signatures: One party generates signature, many
parties can verify.
• Digital Signature: a data string which associates a message
with some originating entity.
• Digital Signature Scheme:
– a signing algorithm: takes a message and a (private) signing key,
outputs a signature
– a verification algorithm: takes a (public) key verification key, a
message, and a signature
• Provides:
– Authentication, Data integrity, Non-Repudiation
Fall 2010/Lecture 31 13
Digital Signatures and Hash
• Very often digital signatures are used
with hash functions, hash of a
message is signed, instead of the
message.
• Hash function must be:
– Pre-image resistant
– Weak collision resistant
– Strong collision resistant
Fall 2010/Lecture 31 14
RSA Signatures
Key generation (as in RSA encryption):
• Select 2 large prime numbers of about the
same size, p and q
• Compute n = pq, and = (q - 1)(p - 1)
• Select a random integer e, 1 < e < , s.t.
gcd(e, ) = 1
• Compute d, 1 < d < s.t. ed 1 mod
Fall 2010/Lecture 31 15
RSA Signatures (cont.)
Signing message M
• Verify 0 < M < n
• Compute S = Md mod n
Verifying signature S
• Use public key (e, n)
• Compute Se mod n = (Md mod n)e mod n = M
Fall 2010/Lecture 31 16
The Big Picture
Setting Setting
Secrecy / Stream ciphers Public key
Confidentiality Block ciphers + encryption: RSA,
encryption modes El Gamal, etc.
Fall 2010/Lecture 31 17
Fall 2010/Lecture 31 18
Zero Knowledge Proofs
19
Interactive Proof Systems
• Traditionally, a proof for a statement is a static
string such that one can verify for its correctness
– Follows axioms and deduction rules.
20
Zero Knowledge Proofs
• A protocol involving a prover and a verifier that
enables the prover to prove to a verifier without
revealing any other information
– E.g., proving that a number n is of the form of the
product of two prime number
– Proving that one knows p,q such that n=pq
– Proving that one knows x such gx mod p = y
CS555 Topic 23 21
Two Kinds of Zero-Knowledge Proofs
• ZK proof of a statement
– convincing the verifier that a statement is true without
yielding any other information
– example of a statement, a propositional formula is
satisfiable
• ZK proof of knowledge
– convincing the verifier that one knows a secret, e.g.,
one knows the discrete logarithm logg(y)
CS555 Topic 23 22
Properties of Interactive Zero-
Knowledge Proofs of Knowledge
• Completeness
– Given honest prover and honest verifier, the protocol
succeeds with overwhelming probability
• Soundness
– no one who doesn’t know the secret can convince the
verifier with nonnegligible probability
• Zero knowledge
– the proof does not leak any additional information
CS555 Topic 23 23
Honest Verifier ZK vs. Standard
ZK
• Honest Verifier ZK means that a simulator exists
for the Verifier algorithm V given in the protocol.
CS555 Topic 23 24
Zero Knowledge Proof of
Knowledge
• A ZKP protocol is a proof of knowledge if it
satisfies a stronger soundness property:
– The prover must know the witness of the statement
• Soundness property: If a prover A can convince a
verifier, then a knowledge exactor exists
– a polynomial algorithm that given A can output the
secret
• The Fiat-Shamir protocol is also a proof of
knowledge:
CS555 Topic 23 25
Elliptic Curve
• More Secure
Comparable Key Sizes for Equivalent
Security
56 512 112
80 1024 160
Once we have the domain parameters and have decided on the keys
to be used, the signature is generated by the following steps.
Given Input: d, G, n, hash Function H
This is how we know that the verification works the way we want it to:
We have, s = k-1(e + dr) mod n which we can rearrange to obtain, k = s-1(e + dr) which is
s-1e + s-1rd
Fall 2010/Lecture 31 38