RSA encryption

Relevant sections in text: 1.2.6, 2.2.1

The assignment begins with the fast exponentiation and primality testing in section 1.2 and expands it to produce an implementation of the RSA system for public-key encryption. Students will also need to use lists to represent sequences and write simple car-cdr manipulations.

Before assigning this, you should consider updating "the story" to something more contemporary and less MIT-specific.

Disclaimer for all the cryptographers who are waiting to pounce on us: The system described here is a "pure RSA" system, which is not secure in practice.

Files for download:

TeX source for the assignment and postscript for the figures.
rsa.scm Scheme source code required for this assignment. Postscript file for printing the assignment

Copyright © 1985-1996 Massachusetts Institute of Technology.
The material in these problem sets may be duplicated, modified, and redistributed for any non-commercial use in conjunction with the book Structure and Interpretation of Computer Programs.

Return to sample assignment page

Return to SICP page

Last modified August 30, 1996