Home Lab Setup SEED Labs Books Lectures Workshops
SEED Logo

RSA Encryption and Signature Lab

Overview

RSA (Rivest-Shamir-Adleman) is one of the first public-key cryptosystems and is widely used for secure communication. The RSA algorithm first generates two large random prime numbers, and then use them to generate public and private key pairs, which can be used to do encryption, decryption, digital signature generation, and digital signature verification. The RSA algorithm is built upon number theories, and it can be quite easily implemented with the support of libraries.

The learning objective of this lab is for students to gain hands-on experiences on the RSA algorithm. From lectures, students should have learned the theoretic part of the RSA algorithm, so they know how to generate public and private keys and can conduct operations, such as encryption, decryption, signature generation, and signature verification. This lab enhances student's learning by requiring students to conduct RSA operations on actual numbers, and see whether they can get the calculations right. This way, they are given a chance to apply the RSA theories learned from the class.

Tasks (PDF)

Time (Suggested)

  • Supervised (closely-guided lab session): 2 hours
  • Unsupervised (take-home project): 1 week

SEED Books (English) (Chinese)

  • Computer & Internet Security: A Hands-on Approach, 2nd edition (§ 23)
  • Computer Security: A Hands-on Approach, 2nd edition (§ 17)
  • Internet Security: A Hands-on Approach, 2nd edition (§ 10)

Feedback and Help

Please give us your feedback on this lab using this feedback form.
The SEED Labs project is open source. If you are interested in contributing to this project, please check out our Github page: https://github.com/seed-labs/seed-labs.