This paper is dedicated to helping students learn to apply algorithms used in public key cryptography. The basic idea is that pencil-and-paper exercises in public key cryptography are important in order to learn the subject. It is important that a student doing such an exercise does not get the right answer using the wrong method. This paper offers a modality to construct exercises that are sound: a student who makes one of several common errors will get a wrong answer.
The authors also introduce diagnostic exercises, in which the right answer and each of the most common error paths lead to different answers; therefore, the answer given by a student may suggest the nature of its error. All these types of exercises can be generated automatically by software proposed here.
The exercises considered are generally based on the operations of encryption and decryption in various public key cryptosystems. Only the main tasks concerning these operations, for which certain kinds of errors continually come up, are covered.
The paper is organized as follows. The first part is an introduction, and the next section contains some formal definitions of the concepts of sound and diagnostic examples. Section 3 discusses common errors. In section 4, sample exercises and anticipated errors are outlined for the cryptosystems RSA, Diffie-Hellman, Massey-Omura, El Gamal, and Knapsack. Section 5 contains an overview of the software, describing the main functions present in the system. Some conclusions and suggestions for further work are given in the last section.