Title: Educational software for a cryptographic laboratory
Description:
Laboratory hands-on exercises permit learning many important concepts of cryptography in an informal and practical way. For the lack of educational software to teach cryptography, most often, these classes have to be based on existing public-domain or commercial cryptographic products. Unfortunately, the principles used to write secure cryptographic products differ significantly from the principles that enhance educational value of the software. For example, in real life products, the user ought to be hardly aware that security transformations take place and slow down a primary application, he/she should never see a cryptographic key, weak keys have to be automatically eliminated, and a choice of cryptographic parameters should be strictly limited (e.g., only safe sizes of cryptographic keys are allowed). Additionally, most of the current cryptographic products are tightly integrated with communication programs, such as web browsers or e-mail agents, making an independent analysis of cryptographic functions even more difficult. In comparison, educational software may allow an extended visualization, including values of secret parameters and partial results, as well as detailed contents of messages and corresponding ciphertexts. Educational programs should be flexible, enabling a choice of arbitrary parameters and key sizes, generation of weak keys, full range of operational modes, etc. Capabilities of these programs should include an exact measurement of the time taken by all cryptographic transformations (for the purpose of efficiency comparison, and timing cryptanalysis), editing messages, ciphertexts, and keys in the text, hexadecimal, and binary notations, performing statistical tests on the input, output, and intermediate values in the cryptoalgorithm. Your task would be to develop an educational program for a single exercise in the crypto course, illustrating features of a chosen cryptoalgorithm or a set of cryptoalgorithms. The programs should be accompanied by a detailed instruction for a laboratory exercise containing a list of interactive experiments to be performed using your program.
Literature:
Laboratory instructions for ECE 590