Introduction to Public Key Cryptography Lecture 4 CPSC415 Biometrics and Cryptography
CPSC415 Biometrics and Cryptography Outline Public Key Encryption Public Key Cryptographic System Public Key vs. Symmetric Key Digital Signatures Digital Envelope CPSC415 Biometrics and Cryptography
Insufficiencies with Symmetric Encryption Symmetric encryption is not enough to address two key issues key distribution – how to have secure communications in general without having to trust a KDC with your key? digital signatures – how to verify that a received message really comes from the claimed sender? CPSC415 Biometrics and Cryptography
Advent of Asymmetric Encryption Probably most significant advance in the 3000 year history of cryptography Use two keys: a public key and a private key Asymmetric since parties are not equal Clever application of number theory concepts instead of merely substitution and permutation CPSC415 Biometrics and Cryptography
How Asymmetric Encryption Works Asymmetric encryption uses two keys that are related to each other a public key, which may be known to anybody, is used to encrypt messages, and verify signatures a private key, known only to the owner, is used to decrypt messages encrypted by the matching public key, and create signatures the key used to encrypt messages or verify signatures cannot decrypt messages or create signatures CPSC415 Biometrics and Cryptography
CPSC415 Biometrics and Cryptography Public key Encryption Alice has a key pair: public and private publish the public key such that the key is publicly known Alice keeps the private key secret Other people use Alice’s public key to encrypt messages for Alice Alice uses her private key to decrypt Only Alice can decrypt since only Alice has the private key Public key Message Encrypt rfwekfs Private key Message Decrypt rfwekfs Trick: To compute the private key from the public key is a difficult problem. CPSC415 Biometrics and Cryptography
Asymmetric Encryption for Confidentiality Bob Alice CPSC415 Biometrics and Cryptography
Asymmetric Encryption for Authentication Bob Alice CPSC415 Biometrics and Cryptography
Applications for Asymmetric Encryption Three categories Encryption/decryption: sender encrypts a message with receiver’s public key Digital signature: sender “signs” a message with its private key Key exchange: two sides exchange a session key CPSC415 Biometrics and Cryptography
Security of Asymmetric Encryption Like symmetric schemes brute-force exhaustive search attack is always theoretically possible, but keys used are too large (>512bits) Not more secure than symmetric encryption, dependent on size of key Security relies on a large enough difference in difficulty between easy (en/decrypt) and hard (cryptanalyse) problems Generally the hard problem is known, just made too hard to do in practice Require using very large numbers, so is slow compared to symmetric schemes CPSC415 Biometrics and Cryptography
Public key Cryptographic System cryptanalysis M private key Eve M M C encryption decryption Alice Alice’s public key private key Public key directory C = EPK(M) M = DSK(C) = DSK(EPK(M)) Public keys are published. Each private key is known to the receiver only. Difficult for Eve to find out SK from PK. CPSC415 Biometrics and Cryptography
Public key vs. Symmetric key Two parties MUST trust each other Two parties DO NOT need to trust each other Both share same key Two separate keys: a public and a private key (or one key is computable from the other) Typically faster Typically slower Examples: DES, IDEA, RC5, CAST, AES, … Examples: RSA, ElGamal Encryption, ECC… CPSC415 Biometrics and Cryptography
CPSC415 Biometrics and Cryptography Digital signatures Is there a functional equivalent to a handwritten signature? Easy for legitimate user to sign But hard for anyone else to forge Easy for anyone to verify Dependent on message & signer (key) Public key! Sign: “invert” function using private key Verify: compute function using public key CPSC415 Biometrics and Cryptography
CPSC415 Biometrics and Cryptography Digital signatures Private key Sign Message rfwekfs (fixed-length signature) Public key Message Verify Valid/Invalid rfwekfs Only the signer (who has a private key) can generate a valid signature Everyone (since the corresponding public key is published) can verify if a signature with respect to a message is valid CPSC415 Biometrics and Cryptography
Digital Envelopes -- Symmetric + Asymmetric Generate a secret key (session key) at random. Encrypt the message using the session key and symmetric algorithm. Encrypt the session key with the recipient’s public key. This becomes the “digital envelope”. Send the encrypted message and the digital envelope to the recipient. Figure … CPSC415 Biometrics and Cryptography
CPSC415 Biometrics and Cryptography Digital Envelopes Session Key Session Key Cipher Plain Cipher Plain Digital Envelope Digital Envelope Session Key Recipient’s Public key Session Key CPSC415 Biometrics and Cryptography
CPSC415 Biometrics and Cryptography RSA CPSC415 Biometrics and Cryptography
CPSC415 Biometrics and Cryptography Motivation Revision One problem with symmetric key algorithms is that the sender needs a secure method of telling the receiver the key. Plus, you need a separate key for everyone you might communicate with. Public key algorithms use a public-key and private-key pair to tackle key management problem. Each receiver has a public key pair. The public key is publicly known (published). A sender uses the receiver’s public key to encrypt a message. Only the receiver can decrypt it with the corresponding private key. CPSC415 Biometrics and Cryptography
CPSC415 Biometrics and Cryptography RSA Invented by Rivest, Shamir & Adleman of MIT in 1977 Best known and widely used public-key scheme Based on exponentiation in a finite (Galois) field over integers modulo a prime exponentiation takes O((log n)3) operations (easy) Use large integers (e.g. 1024 bits) Security due to cost of factoring large numbers factorization takes O(e log n log log n) operations (hard) CPSC415 Biometrics and Cryptography
CPSC415 Biometrics and Cryptography RSA Key Setup Each user generates a public/private key pair by select two large primes at random: p, q compute their system modulus n=p·q note ø(n)=(p-1)(q-1) select at random the encryption key e where 1<e<ø(n), gcd(e,ø(n))=1 solve following equation to find decryption key d e·d=1 mod ø(n) and 0≤d≤n publish their public encryption key: KU= {e,n} keep secret private decryption key: KR= {d,n} CPSC415 Biometrics and Cryptography
CPSC415 Biometrics and Cryptography RSA Usage To encrypt a message M: sender obtains public key of receiver KU={e,n} computes: C=Me mod n, where 0≤M<n To decrypt the ciphertext C: receiver uses its private key KR={d,n} computes: M=Cd mod n Message M must be smaller than the modulus n (cut into blocks if needed) CPSC415 Biometrics and Cryptography
RSA Example: Computing Keys Select primes: p=17, q=11 Compute n=pq=17×11=187 Compute ø(n)=(p–1)(q-1)=16×10=160 Select e: gcd(e,160)=1 and e<160 choose e=7 Determine d: de=1 mod 160 and d<160 d=23 since 23×7=161=10×160+1 Publish public key KU={7,187} Keep secret private key KR={23,187} CPSC415 Biometrics and Cryptography
RSA Example: Encryption and Decryption Given message M = 88 (88<187) Encryption KU={7,187} : C = 887 mod 187 = 11 Decryption KR={23,187} : M = 1123 mod 187 = 88 CPSC415 Biometrics and Cryptography