UMBC CMSC-443
Spring 2009 Cryptography and Data Security
MW 4:00-5:15 ITE 237
____________________________________________________
443syl.html
Syllabus
Instructor
Brooke Stephens (stephens@cs.umbc.edu)
Computer Science and Electrical Engineering Department
Room ITE 221
Tele. (410) 455-3535,
455-3500 (department secretary)
Office hours: MW 2:15-3:15 or by appointment
teaching assistant...Travis Mayberry
office hours Tu 3-4 ITE 340
Prerequisites
The formal prerequisites are CMSC-203 Discrete Structures, and Math-221
Introduction to Linear Algebra. Students are expected to be able to
program in some high-level programming language (such as Basic, C,C++,Java, Perl).
Texts
1. Mark Stamp, Information Security, Principles and Practices, Wiley 2006
2. Simon Singh, The Code Book, Doubleday, 1999
see www.simonsingh.com
Helpful references are:
1. William Stallings, Cryptography and Network Security, Third Edition
Prentice-Hall
2. Menenzes, Van Oorshot, Vanstone, Handbook of Applied Cryptography
CRC, 1996
3. Richard J. Spillman, Classical and Contemporary Cryptology Pearson Prentice Hall 2004
Course Web Page
A good deal of material associated with this course can
be found on my web site at www.cs.umbc.edu/~stephens/crypto
Topics that can be found at this site include: ciphers past and
present, homework, class programming projects, course information, class
software development, table of contents, links to other sites
Topics
See class web site .(topics) We will try to cover many of the topics in Stamp (our primary text),
and our readings will include all of Singh's book.
Grading Policy
One of the goals of this class is "learning by doing". As a result of this philosiphy the
grading method used in this class is a little different from most other classes.
Grades will be based on how many points a student can accumulate from a maximum
number of 875 points.
These points can be accumulated from
1. exams
2. decryption projects
3. programming projects
4. selected homework problems.
5. bonus points
The breakdown of possible points is as follows:
total max allowed %
i exams 400 400 46
ii decryption projects 250 175 20
iii programming projects 250 200 22
iv homework problems 100 100 12
925 875
=
The various points needed for each grade are:
points %
A 760* 87
B 648** 74 Be aware of these values and how
C 590 67 you stand in relation to them
D 437 50 during the semester !
* In order to receive an A, a student must accumulate at least 760
points and have an average of at least 83 on the exams.
** In order to receive a B, a student must accumulate at least 648
points and have an average of at least 73 on the exams.
Grades are posted on the class 'Blackboard' site.
Incomplete grades are given only under extreme conditions described by University policy for granting
incompletes.
1. exams
There will be three 75 minute exams and one two hour final.
** Each exam will be worth 100 points.
** Exams, for the most part, are not cumulative. The emphasis is on material covered since
the last exam.
** Sometimes, extra credit questions will be given which are drawn from handouts given to the
class or deal with
more advanced material.
** Usually before an exam sample questions will be posted on the class web site.
2. decryption projects (breaking ciphers)
**We will give the class 6 instances of encrypted material. In each case the material must be decrypted
to reveal the plaintext.
There will be a spectrum of difficulty associated with the encrypted materials.
Some of them will be relatively easy, some of them of medium difficulty, and a few
will be more challenging.
**Most of the ciphers will have both an "easy" and a "hard" version.In that case, a
student can only receive credit for one of the versions.
The number of points each cipher is worth will be proportional to its
difficulty. See the courses Web page for examples of past
ciphers that have been used for CMSC 443.
**In addition, bonus points are given to the
first four students to solve each cipher.
**decryption tools available
Also I will try and provide a few programs written in C, C++, Perl and Java
which can be used as tools to help decipher the encrypted material. These
tools are available from the course Web Page. These tools in almost every case
are programs that previous students have written as projects.You are also free to use any
other tools that you develop or find.
**submitting solutions - possible bonus points
Whenever you are able to decrypt one the ciphers and believe that you are one of the first
then you should write up a very brief description of the technique you used, together with any
interesting details and submit it to me (stephens@cs.umbc.edu)
electronically as soon as possible.
**All students who solve a cipher need to turn in a hard copy of their
solution on or before the due date. See "rules for turning in ciphers"
(if you believe that you are one of the first four solvers then send your
solution to me as soon as possible by e- mail; see the e-mail address on the first page of this
syllabus). This "write-up" must be in type-written
form and not handwritten. Examples of such a write-up can be found on
this course's Web page.
The details of how you should turn in your solution are on our web site.
Remember - You must turn in a hardcopy of your solution even if you initially sent your solution by
email.
Be Aware of Due Dates
**None of these ciphers are to be turned in
after an announced due date. This date is will be announced in class.
Be sure that you are aware of it.
There is only one exception to this rule.That one exception is: an illness (certified by a
physican) where a student misses four or more class periods.
There is a maximum (excluding bonus points) of 175 points associated with
this category. Additional bonus points may be earned by being one of the
first solvers or by solving one or more "challenge ciphers"
which I sometimes make available during the semester. These challenge
ciphers are not included in the regular six ciphers mentioned above.
They are apt to be more difficult or of some historical interest.
***All work on these ciphers must be your own work. No team efforts unless
specified. This is important.
3. programming projects
We will give the class approximately ten different projects concerning
different aspects of cryptography. These projects will be programming projects
(with very rare exception). Most students complete two or three of these projects (the category has a maximum point value of 200 points).
**Any programs associated with each project can be written in any language
available on machines accessible from your accounts or can be written on a
home computer. However, if you are writing in a Windows environment you
should talk to me before starting.
**The programs will be graded in a manner similar to the way that programs are evaluated in
beginning programming courses.
**IMPORTANT NOTE (an issue of Academic Integrity) Although you may talk about
these projects with your classmates, all programs must be your own work. Copying someone
else's code or allowing someone else to copy your code will result in a 0 for the project
at the very least. The two best programs for the semester will quite possibly earn extra
bonus points.
** There is an emphasis on correctness, style, readability and documentation.
**Turning in undocumented code is a sure way to lose points. If your
program does not give correct answers or has serious errors then no
points will be given.
**In some cases, (when your program is interactive),I will ask you to demonstrate it to me
and/or the teaching assistant. Your completed project should be as close as possible to
a polished product.
**The number of points assigned to a project depends on the project's difficulty, how many
students elect to try the project (the more students,the fewer the points), a comparison
of your project to past efforts of former students and in the case where the project is
open-ended how much the student has accomplished.
*IMPORTANT* For projects there are two due dates. Projects turned in by the
first due date receive no penalty. Projects turned in between the first and second due
dates receive an immediate 30% reduction in points. Projects are not accepted beyond
the second due date even if they are near completion. These due dates will be
announced in class (and posted on the web page) for each project. A little partial credit
will be given to incomplete projects turned in on the second due date.
See important dates.
4. homework problems
**Some of the homework problems tend to be of a theoretical nature
and some of them are computational.Some homework problems involve programming.
More difficult problems are worth more points. There is a due date for
each homework problem. Each problem cannot be turned in after its due date
**There is a maximum of 100 points in this category. Choose the homework
problems that you attempt carefully. Don't turn in more than 120 points
worth of problems. (For instance, don't turn in 200 points worth of
problems hoping to get a 100 points credit).
**to read 'Rules for turning in homework' see our web page.
5.class handouts
** Various handouts are given in class. These handouts pertain to homework, projects,
ciphers, extra reading assignments, etc.
**If you miss class and are unable to get the handouts then you are
responsible for getting the handouts from classmates Do not
ask us for these handouts at a later time.
6.Important Dates
Note -- Spring break is from March 15 - 22 - last day of classes May 12
see important dates
www.umbc.edu/registrar/schedule/S09dates&deadlines.html
exam 1 Feb. 25
exam 2 March 25
exam 3 April 22
final
due date for homework problems March 11 (I),
April 8 (II), May 6 (III)
due date for ciphers 1-3 March 11
due date for ciphers 4-6 May 6
due dates for projects (I) TBA
(II) TBA
last day to drop April 13
last day of classes May 12
final exams May 14-20
7. Supplemental Reading
Survey Textbooks and related reading
1. Denning, Dorothy, Cryptography and Data Security
Addison-Wesley (Reading, MA 1983) Past text
for CMSC 443
2. Welsh, D. Codes and Cryptography, Oxford Univ.
Press
3. Brassard, Gilles, Modern Cryptography: A Tutorial, Springer
Verlag, Lecture Notes in Computer Science
4. Beutelspacher, Albrect,, Cryptology, translation from German
into English by J. Chris Fisher, The American Mathematical Association of America, Spectrum Series (1994)
5. Garrett, Paul Making, Breaking Codes, Prentice-Hall, (2001)
6. Buchman, Johannes Introduction to Cryptography, Springer,
7. Stinson, Douglas Cryptography Theory and Practice, CRC Press
8. Rhee, Man Chu Cryptography and Secure Communications, McGraw-Hill
Cryptanalysis
1. Gaines, Helen, Cryptanalysis: A Study of Ciphers
and Their Solution, Dover
2. Sinkov, Abraham, Elementary Cryptanalysis, A
Mathematical Approach, The Mathematical
Association of America, New Mathematical Library
No. 22 (1966)
Number-Theoretic Cryptology
1. Kranakis, E. Primality and Cryptography, John
Wiley
2. Bressoud G. .Factorization and Primality Testing, Springer 1989
Algorithms and Complexity Theory
1. Cormen, T., Leiserson, and Rivest, Introduction to
Algorithms, MIT Press and McGraw-Hill
2. Garey, M. and Johnson, Computers and
Intractability: A Guide to Theory of NP-
Completeness, W. H. Freeman
History and General Reading
1. Clark, R., The Man Who Broke Purple: The Life of
William F. Friedman, who Decrypted the=20
Japanese Code of World War II, Little, Brown and
Company
2. Hodges, A., Alan Turing: The Enigma, Simon and
Schuster
3. Hoffman, Paul Archimedes Revenge, Fawcett Crest
4. Kahn, D., The Codebreakers: The Story of Secret
Writing, Macmillan (There is also an abridged
version).
5. Kippenhahn, Rudolf Code Breaking, The Overlook Press
6. Stallings, William, Network Security Essentials, Prentice-Hall
7. Yardley, H. , The American Black Chamber, Bobbs-
Merrill
Specialized Reading
1. Colin Williams , Scott Clearwater,
Explorations in Quantum Computing, Springer
2. Gareth Penn , Times 17, Foxglove
Press