Computer Encryption Software
A software engineer, working for a multinational corporation, creates some software that provides security for email documents. The engineer realizes that there is a federal law prohibiting the distribution of security algorithms and information outside the United States. Ethical issues arise when the engineer's boss does not share this concern about the distribution of the software.
Greg is a recently hired software engineer who has been recruited directly out of college. For his first assignment, Greg's boss asked him to write a piece of software to provide some sort of security from "prying eyes" over emailed documents; these documents would be used internally by the company. This software will subsequently be distributed to different departments.
Upon completion of his software project, Greg saw a program on the local news about an individual in California who has made similar software available overseas. This individual is currently under prosecution in a federal court for the distribution of algorithms and information which (by law) must remain within the United States for purposes of national security.
It occurs to Greg that his company is a multinational corporation (MNC) and that the software might have been distributed overseas.
Greg discovers that the software has indeed been sent overseas to other offices within the corporation. Greg speaks with his boss, informing him of the program from the night before. Greg's boss shrugs off this comment, stating that "The company is based in the United States and we are certainly no threat to national security in any way. Besides, there's no way anyone will find out about software we use internally."
Greg agreed with his boss, and let it go. Later on however, Greg received a letter from a gentleman working as a contractor for his company overseas. Through some correspondence regarding the functionality of the software and technical matters, Greg learned the Middle Eastern office had been supplying his software outside the company to contractors and clients so that they could exchange secure emailed documents.
- Design and write a program to encrypt/decrypt a text file. (Additional specifications to be added dependent upon course level. e.g. language, level of encryption.)
Questions on Ethics and Professionalism
- What are Greg's ethical responsibilities as the designer of the software? To his company? To himself? As a citizen?
- Rank these responsibilities along with a brief explanation as to why you made your decisions. Ties are allowed.
- Write a proposal that would satisfy as many of Greg's obligations as possible. Explain why this is his best course of action.
- (For class discussion) Should a software engineer think about the implications of the material he or she develops?
Solution for Numerical Problem
The solution to this problem greatly depends upon additional specifications imposed by the instructor.
An example for the freshman/sophomore level would be to construct a program which opens a file, reads one character at a time, increments the ASCII value by an arbitrary number, writes the character in a new file, and repeats.
In a more senior level course, the instructor could require the development of a more complex algorithm for the encryption process. (It might be interesting to introduce code breaking topics as well.)
Author: Jeremy Hanzlik, Texas A&M University College Station, TX 77843.
These problems were originally developed as part of an NSF-funded project to create numerical problems that raise ethical issues for use in engineering and other course assignments. The problems presented here have been edited slightly for clarity.