300 likes | 543 Views
Introduction to Public Key Cryptography. Lecture 4. Outline. Public Key Encryption Public Key Cryptographic System Public Key vs. Symmetric Key Digital Signatures Digital Envelope. Insufficiencies with Symmetric Encryption. Symmetric encryption is not enough to address two key issues
E N D
Introduction to Public Key Cryptography Lecture 4 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
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 Encrypt Message rfwekfs Private key Decrypt Message rfwekfs • Trick: To compute the private key from the public key is a difficult problem. CPSC415 Biometrics and Cryptography
Asymmetric Encryptionfor Confidentiality Bob Alice CPSC415 Biometrics and Cryptography
Asymmetric Encryptionfor 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 M private key cryptanalysis Eve M C M 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 Symmetric key Public 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
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
Digital signatures Private key • 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 Sign rfwekfs Message (fixed-length signature) Public key Message Verify rfwekfs Valid/Invalid 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
Digital Envelope Digital Envelope Digital Envelopes Session Key Session Key Cipher Plain Cipher Plain Session Key Recipient’s Public key Session Key CPSC415 Biometrics and Cryptography
RSA 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
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
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
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 • Computen=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