Introduction to basic ideas of modern cryptography with emphasis on mathematical background and practical implementation. Topics include:Here is another description of this course:Touches upon some of the societal issues of cryptography. Crosslisted as MA 479 and CSSE 479.
- the history of cryptography and cryptanalysis,
- public and private key cryptography,
- digital signatures, and
- limitations of modern cryptography.
Alice and Bob are connected by a public communication channel. Any message transmitted over this channel might be altered arbitrarily (by some attacker). One central question of this course is: How can Alice send a message M to Bob in such a way that:This seminar investigates both methods for addressing the above question and attacks on such methods. The methods to be discussed include classical approaches (like Caesar's cipher), block-cipher systems (like DES) and public-key cryptosystems (like RSA).
- No one except Bob can see M, and
- In the end, Bob knows that what he received is what Alice intended to send.
In addition, this seminar will:
- Touch upon some of the societal issues of cryptography.
- Provide an opportunity for you to:
- Investigate and present a research topic in cryptography.
- Hear many such presentations from your fellow students.
- Mathematical maturity and familiarity with discrete mathematics, as evidenced by (for example) successful completion of MA 215 (Discrete and Combinatorial Algebra 1).
- The ability to design and implement software solutions to small problems, in the language of your choice, as evidenced by (for example) successful completion of CSSE 220 (Fundamentals of Software Development II).
|
|
There will be regular readings from each of these required textbooks.
Late work will generally be accepted, but only for half (50%) credit.
There are no exams.
Paper-and-pencil exercises,
perhaps with assistance from Maple60%
(Perhaps 30% each
but don't hold us to that)Small programming projects Oral report on a research article 20% Research proposal 10% Discussions of the readings
from Crypto10%
Collaboration is encouraged, and sometimes required, on paper-and-pencil problems and most programming projects. When you collaborate, you must properly credit your collaborators and clearly indicate the extent of the collaboration. Failure to properly acknowledge collaboration can be considered cheating.See the departmental statement on academic honesty. Dishonesty on homeworks, programming projects or exams may result in a lowered course grade or a grade of an F in the course. More important, such dishonesty steals your own self-esteem. So don't cheat.
- On paper-and-pencil problems: working out a solution as a group is acceptable collaboration. Each individual is responsible for understanding the entire solution. Once a group solution has been achieved, each collaborator must rework the problem and write up the solution independently. Copying someone else's homework is cheating, not collaboration.
- On group programming projects, the group will normally turn in a single solution. All members of the group should understand the solution, and are responsible for helping each other do so.
- On individual programming projects, it is OK to ask for help, but you should completely understand everyting that you turn in and the design and implementation should be largely your own.
There is a newsgroup for this course:rhit.cs.crypto. This is the forum for continuing discussions begun in class, asking general questions (of interest to the entire class) about homework and assignments, and other announcements of general interest. You are responsible for information posted to the newsgroup. Assistants and instructors will read the newsgroup.
We want your feedback on how the course is going and how it could be improved. We appreciate suggestions that are made in person. However, we'd like to know what you are thinking, even if you do not feel comfortable with letting us know who made the suggestion. The course web page contains a link to an anonymous Suggestion Box. It sends us an email with no way for us to trace the sender. All we ask is that you will use it for serious suggestions, not just to vent when you are momentarily frustrated. Take a deep breath, count to 10, and if you still have something to say, by all means say it. You can also use it to tell us about things you like in the course and don't want to change. :)