Question

In: Computer Science

We are working on Public Key Crypto, RSA, Extended Euclidean algo Let n = 2419 =...

We are working on Public Key Crypto, RSA, Extended Euclidean algo

Let n = 2419 = 41 ∗ 59 and e = 7. (1) Find the private key d. (2) Encrypt the message 6. (3) Sign the message 10. Assume RSA is used. Use the egcd.py program at the lecture attachments folder, described in section 10.3.3, to compute d. For parts 2 and 3, you only need to show the formula; there is no need to calculate the final results.

egcd.py

#!/usr/bin/python3

def egcd(a, b):
if a == 0:
return (b, 0, 1)
else:
g, x, y = egcd(b % a, a)
return (g, y - (b // a) * x, x)


print ('This program gets two integers and calculates their gcd')
print ('Example: input e=18 phi=24, output gcd(18,24)=6 d=-1 y=1')
e = int(input('Input a number for e: '))
phi = int(input('Input a number for phi: '))
g, x, y = egcd(e, phi)

print ('gcd = ', g)
print ('d = ', x)
print ('y = ', y)

Solutions

Expert Solution

    • Generate the RSA modulus (n)

    • Select two large primes, p and q.

    • Calculate n=p*q. For strong unbreakable encryption, let n be a large number, typically a minimum of 512 bits.

  • Find Derived Number (e)

    • Number e must be greater than 1 and less than (p − 1)(q − 1).

    • There must be no common factor for e and (p − 1)(q − 1) except for 1. In other words two numbers e and (p – 1)(q – 1) are coprime.

  • Form the public key

    • The pair of numbers (n, e) form the RSA public key and is made public.

    • Interestingly, though n is part of the public key, difficulty in factorizing a large prime number ensures that attacker cannot find in finite time the two primes (p & q) used to obtain n. This is strength of RSA.

  • Generate the private key

    • Private Key d is calculated from p, q, and e. For given n and e, there is unique number d.

    • Number d is the inverse of e modulo (p - 1)(q – 1). This means that d is the number less than (p - 1)(q - 1) such that when multiplied by e, it is equal to 1 modulo (p - 1)(q - 1).

    • This relationship is written mathematically as follows −

ed = 1 mod (p − 1)(q − 1)

The Extended Euclidean Algorithm takes p, q, and e as input and gives d as output.

Example

An example of generating RSA Key pair is given below. (For ease of understanding, the primes p & q taken here are small values. Practically, these values are very high).

  • Let two primes be p = 7 and q = 13. Thus, modulus n = pq = 7 x 13 = 91.

  • Select e = 5, which is a valid choice since there is no number that is common factor of 5 and (p − 1)(q − 1) = 6 × 12 = 72, except for 1.

  • The pair of numbers (n, e) = (91, 5) forms the public key and can be made available to anyone whom we wish to be able to send us encrypted messages.

  • Input p = 7, q = 13, and e = 5 to the Extended Euclidean Algorithm. The output will be d = 29.

  • Check that the d calculated is correct by computing −

de = 29 × 5 = 145 = 1 mod 72
  • Hence, public key is (91, 5) and private keys is (91, 29).


Related Solutions

a) In a public-key system using RSA, n=77 and its public key is e=23. What is...
a) In a public-key system using RSA, n=77 and its public key is e=23. What is the private key d? Show your steps of calculation. b) Let M=3. Compute its cipher text under the above RSA. Please use the divide conquer algorithm to compute the exponential function for the cipher text.
In the RSA cryptosystem, Alice’s public key (N, e) is available to everyone. Suppose that her...
In the RSA cryptosystem, Alice’s public key (N, e) is available to everyone. Suppose that her private key d is compromised and becomes known to Eve. Show that if e = 3 (a common choice) then Eve can efficiently factor N.
In the RSA public-key encryption scheme, each user has a public key, e, and a private...
In the RSA public-key encryption scheme, each user has a public key, e, and a private key, d. Suppose Alice leaks her private key. Rather than generating a new modulus, she decides to generate a new public key and a new private key. Is this safe? why or why not?
Exercise 9.9.1: Breaking RSA by factoring. Bob publishes his public key (e, N) = (109, 221)...
Exercise 9.9.1: Breaking RSA by factoring. Bob publishes his public key (e, N) = (109, 221) (a) Show that if Eve can factor N (N = 13 · 17), then she can determine Bob's private key d. What is Bob's private key? (b) Now suppose that Eve intercepts the message 97. Use Bob's private key to decrypt the message.
it is a question of discrete math RSA is the most widely used public key cryptosystem....
it is a question of discrete math RSA is the most widely used public key cryptosystem. In this discussion, you will apply RSA to post and read messages. For this reflection discussion, use the prime numbers p = 3 and q = 11. Using the public key e = 3, post a phrase about something that you found interesting or relevant in this course. Include only letters and spaces in your phrase. Represent the letters A through Z by using...
RSA: Public and Private Key Encryption im doing this on an ubuntu virtual machine but unsure...
RSA: Public and Private Key Encryption im doing this on an ubuntu virtual machine but unsure how to Create your public and private keys and create and encrypted message using python Then encrypt the message with your private key I need output of a Message you sent (in plain text and encrypted) Message you received (in plain text and encrypted)
RSA: Public and Private Key Encryption im doing this on an ubuntu virtual machine but unsure...
RSA: Public and Private Key Encryption im doing this on an ubuntu virtual machine but unsure how to Create your public and private keys and create and encrypted message using python Then encrypt the message with your private key I need output of a Message you sent (in plain text and encrypted) Message you received (in plain text and encrypted)
In python Write a program to implement RSA algorithm based on the public key. def encryptmessage():...
In python Write a program to implement RSA algorithm based on the public key. def encryptmessage(): def decryptmessage(): encryptmessage () decryptmessage () No in-built functions and third-party APIs will be allowed.
8. (20 pts) a. RSA encryption. Let n = pq = (7)(17) = 119 and e...
8. (20 pts) a. RSA encryption. Let n = pq = (7)(17) = 119 and e = 5 define a (very modest) RSA public key encryption. Since 25 < 119 < 2525, we can only encode one letter (two digit representation) at a time. Use the function ? = ? mod ? to encode the word MATHY into a series of five numbers that are less than n. b. To decrypt an RSA encrypted message, we need to find d,...
Please perform encryption and decryption given the following values of an RSA public key cryptosystem; p=17,...
Please perform encryption and decryption given the following values of an RSA public key cryptosystem; p=17, q=31, e=7 and M=2
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT