Computer Projects Designed To Enhance Student’s Learning Experience With Public Key Cryptography

Abstract NOTE: The first page of text has been automatically extracted and included below in lieu of an abstract Computer Projects Designed to Enhance Student’s Learning Experience with Public-Key Cryptography Abstract Cryptography plays a fundamental role in safeguarding today’s information infrastructure. Public-key cryptography is a cryptographic approach utilized by many cryptographic algorithms and cryptosystems. In contrast to symmetric key systems, it eliminates the need to share a key secretly. This distinguishing characteristic makes it a widely and successfully used technology around the world. It is the foundation for public-key infrastructure (PKI) and Internet standards such as Transport Layer Security (TLS) and Pretty Good Privacy (PGP). A thorough understanding of public-key cryptography is indispensable to not only engineering and science students, but also engineering technology students in the general fields of computing, networking, communications and information technology. This paper describes an approach to teaching public-key cryptography to electrical and computer engineering technology students utilizing three computer projects designed to provide hands-on experience with public-key cryptography. These projects introduce students JAVA BigInteger class and its built-in methods and open source cryptography libraries such as crypto++ allowing students develop public-key cryptographic applications. Instead of using a small modulus for solely instructional demonstration, these projects allow student’s natural curiosity to be stimulated and result in a deeper understanding of real world applications. To date, feedback from students has been very positive. Introduction With the increasing dependence of industry, businesses, education and society on computing and digital communications, the need for providing security through effective and efficient cryptographic algorithms has became more important than ever. Cryptography is the science of using mathematics to encrypt and decrypt data. Besides its traditional role of ensuring confidentiality, it has been utilized to ensure integrity, authentication, and non-repudiation which are the basic requirements in today’s information systems or data communications. It is imperative to teach cryptography to students in the general areas of computing, information, networking and data communications. Recently, educators have also confirmed the importance of teaching encryption basics to general students 1. Public-key cryptography is one of the major topics in our computer security course. Thought students seem to be very interested in this topic, teaching public-key cryptography is somewhat challenging since understanding the theory requires a high level of mathematical knowledge and skills. This particularly presents a challenge to engineering technology students. This paper shares our experience of teaching engineering technology students public-key cryptography. The paper is organized as follows. First, it briefly introduces the public-key cryptography basics and describes our approach to teach public-key cryptography. Then, it describes the computer projects we developed to enhance the student’s learning experience. Finally, it illustrates the