This assignment is a simple practice of using the RSA algorithm with sourcing parameters from your NetID. If you complete this assignment in pairs, decide which one’s NetID you will use, and keep it consistent.
- Obtain the first two **distinct** letters in your NetID. Call them
letter1
andletter2
. Do not swap the order.- If all letters in your NetID are the same, use z for
letter2.
- If all letters in your NetID are the same, use z for
- Obtain the ASCII code of
letter1
andletter2
(both in lowercase) respectively. Call themascii1
andascii2
. Both numbers should therefore be between 97 and 122 (inclusive). - Obtain the
ascii1
-th prime using this webpage. It will be your p. - Obtain the
ascii2
-th prime using this webpage. It will be your q. - Choose r (and s) yourself.
If this is a regular programming assignment in CS330, we will have you implement your own code for the Euclidean Algorithm and modular exponentiation. You are still welcome to, but we promise no mandatory programming in this course. Therefore, check out the webpages below:
Then, submit to Gradescope only the following information:
- The NetID in use
- The public key pair (r,n)
You do NOT need to include any other intermediate steps/work.
We will then send you (through a comment in your Gradescope submission) a ciphertext. You should then decrypt the ciphertext and update your submission to include the plaintext. Therefore, your final submission should have the information below:
- The NetID in use
- The public key pair (r,n)
- The plaintext
You earn the assignment credit as we verify the plaintext you submit is the plaintext we use.
Note that all EM assignments are due LDoC on paper, but there will not be any penalty until 5/1 11:59pm.
Any submissions by LDoC midnight will get at least one round of feedback, although we will try our best to give everyone feedback.
Since you do need at least one round of feedback for this assignment, we recommend everyone to submit once by LDoC.