The University of Babylon Department of Software LECTURE NOTES ON PUBLIC‐ KEY CRYPTOGRAPHY (RSA and ElGamal) By Dr. Samaher Hussein Ali College of Information Technology, University of Babylon, Iraq Samaher_hussein@yahoo.com 4/11/2012 Public‐key cryptography Called also asymmetric cryptography The keys used to encrypt and decrypt are different. Anyone who wants to be a sender needs to “publish” an encryption key, which is known as the public key, KB. Anyone who wants to be a receiver needs a unique decryption key, which is known as the private key, kv. If B wants to send an enciphered text to A, B should knows the the encryption algorithm and A’s public key. 4/11/2012 Dr. Samaher Hussein Ali Notes of Lecture 8 Confidentiality via Public key cryptography Samaher wants to send a secret message m to Eman Eman should have 2 keys: public KB and private kv Prior to message encryption, samaher gets by some means an authentic copy of Eman’s public key (i.e., the encryption key) 4/11/2012 Dr. Samaher Hussein Ali Notes of Lecture 8 Public‐key Systems It provides confidentiality by depend on digital signatures. It reduce number of using keys , example; if we need communication among 100 users in tradition methods, we need (n(n-1)/2)= 100(99)/2=4950 keys while, when we use the public key system need only 100 keys RSA It is named after it inventors Ron Rivest, Adi Shamir and Len Adleman. Published in 1978۔ It is the most widely used public‐key encryption algorithm today. It provides confidentiality and digital signatures. Its security is based on the difficulty of integer factorization 4/11/2012 Dr. Samaher Hussein Ali Notes of Lecture 8 RSA algorithm (key generation for RSA public‐key encryption) Each entity A creates a public key and a corresponding private key by doing the following Who is capable of computing public key? Generate three prime numbers p and q, e Compute n=p*q A’s Public key: (e, n) // to be published Who is capable of computing d? d gcd( ( n )) * ( n ) 1 e ‐‐ (n)=(p‐1)(q‐1) To verification d : we must [e*d mod (n) 1] A’s private key: (d, n)) // to be kept secretly by A 4/11/2012 Dr. Samaher Hussein Ali Notes of Lecture 8 RSA Encryption/Decryption Summary: A encrypts a message m for B. Upon reception, B decrypts it using its private key. Encryption: A should do the following Obtain B’s authentic public key (n,e). Represent the message as an integer in the interval [0,n‐1] Compute c = me mod n // Encryption Send the ciphertext c to B Decryption: to recover plaintext m from c, B does the following Use the private key d to recover m = cd mod n // Decryption 4/11/2012 Dr. Samaher Hussein Ali Notes of Lecture 8 RSA Encryption/Decryption 4/11/2012 Dr. Samaher Hussein Ali Notes of Lecture 8 Example 1: Let, p=3, q=17, e=5: Find the public and Secret key then cipher the message ABC n=p*q=3*17=51 Public key ‐‐‐‐‐‐<e,n>=<5,51> d=(GCD((n))* (n)+1)/e (n)= (p‐1)(q‐1)=(3‐1)(17‐1)=(2*16)=32 GCD((n))= GCD[(P‐1)(q‐1)]=GCD(2,16)=2 d=((2*32+1)/5)= (64+1) /5 =65/5=13 Secret Key‐‐‐‐‐‐‐<d,n>=<13,51> To verification d : e.d mod (n)=1 5*13 mod 32 65 mod 32 =1 4/11/2012 Dr. Samaher Hussein Ali Notes of Lecture 8 Example 1: Let, p=3, q=17, e=5: Find the public and Secret key then cipher the message ABC 2. Find the cipher text using the public key <e,n>=<5,51> Ci=Mie mod n C1=(1)5 Mod 51=1 mod 51 =1 C2=(2)5 Mod 51=32 mod 51 =32 C1=(3)5 Mod 51=243 mod 51 =39 3. Find the cipher text using the Secret Key‐‐‐‐‐‐‐<d,n>=<13,51> Mi=Cid mod n M1=(1)13Mod 51=1 M2=(32)13 Mod 51=2 M1=(39)13 Mod 51=3 4/11/2012 Dr. Samaher Hussein Ali Notes of Lecture 8 Example 2: Confidentiality Take p = 7, q = 11, so n =p*q= 77 (n) =(p‐1)(q‐1) =(7‐1)(11‐1)=60 Let e = 17 ‐‐‐‐‐‐‐‐ public key(17,77) Compute d =[gcd(6,10)*60+1]/17= 53 17 x 53 mod 60 = 1 ‐‐‐‐‐‐‐‐ secret key(53,77) samaher wants to secretly send Eman the message HELLO [07 04 11 11 14] 0717 mod 77 = 28 0417 mod 77 = 16 1117 mod 77 = 44 1117 mod 77 = 44 1417 mod 77 = 42 samaher sends ciphertext [28 16 44 44 42] 4/11/2012 Dr. Samaher Hussein Ali Notes of Lecture 8 Example 2: Confidentiality Eman receives [28 16 44 44 42] Eman uses private key < 53,77>, to decrypt the message: 2853 mod 77 = 07 H 1653 mod 77 = 04 E 4453 mod 77 = 11 L 4453 mod 77 = 11 L 4253 mod 77 = 14 O No one else could read it, as only Eman knows his private key and that is needed for decryption 4/11/2012 Dr. Samaher Hussein Ali Notes of Lecture 8