The Course

Syllabus

A syllabus, per se, is not available for this course. Please see instructor's Web site for course-related documents and information.

Course Design

Each time I've taught the subject, the topics and their order have changed somewhat, so certainly what's there is a (considered!) snapshot of the course dated 5/27/2000. Lectures and other material I have prepared for the New Jersey Governor's School of Engineering and Technology is also relevant because some of the topics are the same.

Some guiding principles might be:

  1. Bring in the math to discuss and "solve" social problems.
  2. Investigate the math, maybe simplify, but don't lie.
  3. Ask students to do the math: construct simple examples and engage in simple contests.
  4. Have students write papers and give class presentations. Organize class discussions. These activities may encourage students whose past encounters with mathematical instruction have not been happy.

Beginning the course has its own difficulties. Nervous students who historically have had weak performance and little interest in mathematics courses need to be encouraged, even inveigled. In 2000, I began with some discussion of the history of cryptography and some simple examples (modular arithmetic was introduced here, along with some other constructions). More recently, I have begun with secret sharing, the material of lecture #3 in my Web outline.

Lecture Schedule

  1. Introduction & Caesar cipher
  2. More basic crypto & meeting Maple
  3. Secret sharing
  4. Medical record privacy
  5. Modular arithmetic
  6. More modular arithmetic
  7. The difficulty of arithmetic
  8. Algorithms and hardness
  9. Guest lecture by J. Reeds
  10. P vs. NP and experimentation
  11. Diffie-Hellman key exchange
  12. Fermat's little theorem
  13. RSA
  14. Working with RSA
  15. Attacking Diffie-Hellman; digital signatures & trust
  16. Beginning binary
  17. Randomness & one-time pads
  18. The first crypto policy presentations
  19. Bitstreams & xor
  20. More policy presentations
  21. Beginning authentication
  22. Hashing
  23. Intellectual property
  24. Protecting digital intellectual property
  25. A discussion about DES
  26. Enigma on videotape
  27. Enigma discussion & review for the final
  28. Conclusion & evaluation

Pedagogical Methodologies

Pedagogy from across the river

I teach at a Rutgers campus with some serious geographic problems. Chunks of the campus are separated by the Raritan River. Many of the humanities and social science departments are headquartered across the river, in New Brunswick. Most of the science departments and the Engineering School are on the Piscataway side of the river.

I decided to try the pedagogy of the disciplines "across the river." In particular, I wanted students to write essays. Then I needed to learn how to read essays. I've certainly read mathematics written by students earlier in my career and tried, with both undergraduate and graduate students, to encourage clear statements and good writing. In this course, I might have students writing about medical record privacy or the cryptological policies of the French government. I might read papers which attacked or supported positions on complex issues. I sought help, and found it by consulting Professor Kurt Spellmeyer of the English Department, who is also Director of the Writing Program. The Writing Program instructs almost every student at Rutgers. Professor Spellmeyer very kindly spent time with me discussing how to help students write (more directly: how to grade essays usefully!) and he supplied me with the material he uses to help his instructional staff. This was truly helpful. I should report that my first attempts to grade 25 two-page essays took much more time than grading 100 calculus exams would have!

We also talked about managing class discussions. I had little experience with this instructional skill. I now know that presiding over a class discussion, encouraging participation by students, and learning how to elicit various points of view is an additional teaching tool. I haven't mastered it but at least I now recognize it more clearly!

Outside speakers: Bring the world in

I have invited one or two outside speakers each time I've given this course. I want to get people who work in areas directly affected by the controversies discussed in the course. Such people are available everywhere. You can look for lawyers dealing with intellectual property. You can look in your own institution. In the biological sciences, there might well be faculty members who have strongly held opinions about who owns the information in "my" DNA. You can look at the staff of your own institution. In computer services, there's bound to be people who handle hacker attacks, or who service electronic mail. One of the most important Rutgers computer services people was very interested in speaking. He told me about a pet horror: students who send their social security numbers over "open" e-mail.

Computational help

Certainly cryptography can be done "by hand" as it was during most of human history (although helpful devices like Jefferson's wheel have been used for hundreds of years). Realistic examples of what's used for Web commerce, for instance, need help that's electronic and fast. I've seen some effective programs on graphic calculators which show various cryptographic protocols. But, for the most part, graphing calculators don't have the storage, the programs, and the speed to be useful here.

See (link) for one example. I divided a class into groups to prepare presentations on crypto policies of various organizations. I also used those groups to "break" RSA messages which were titles of some of the Sherlock Holmes short stories. I used numbers which were 42 decimal digits long. I don't know currently available, reasonably priced hand-held devices which can cope with arithmetic on such integers. Also, experimentation showing the difficulty of factoring and discrete logs only really begins to show results with "big" numbers.

I strongly recommend that students use programs like Maple or Mathematica whenever possible. I used Maple because Rutgers has a campus-wide license for it, and the program is present on various systems that students use. I did not ask or require that students become Maple programmers, just that they be able to use the program as a large calculator. I did create some simple programs which helped me construct examples. I wrote these programs in Maple but similar routines certainly can be written in other languages.