UMBC CMSC-443
Spring 2005 Cryptography and Data Security
TuTh 11:30-12:45
____________________________________________________
443syl.html
Syllabus
Instructor
Brooke Stephens (stephens@cs.umbc.edu)
Computer Science and Electrical Engineering Department
Room 221 ITE
Tele. (410) 455-3535,
455-3500 (department secretary)
Office hours: Tues 10:30-11:30 Th 2-3
or by appointment
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.
2. Simon Singh, The Code Book, Doubleday, 1999
see www.simonsingh.com
A related site and a site for Singh's cipher challenge of several years ago
Helpful references are:--------------------------------
1. William Stallings, Cryptography and Network Security, Third Edition Prentice-Hall
2. Wenbo Mao, Modern Cryptography - Theory and Practice, Prentice Hall
3. Menezes, van Oorschot, Vanstone, CRC Press
Recent texts
1. Thomas H. Barr, Invitation to Cryptology, Prentice Hall
2. Paul Garret, Making, Breaking Codes - An Invitation to Cryptography Prentice Hall
3. Richard Mollin, An Introduction to Cryptology , Chapman&Hall/CRC
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. We will try to cover many of the topics in Stinson (our primary text),
and our readings will include all of Singh's book.
Topics will include: Symmetric-Key Cryptosystems, Public Key Cryptosystems,
Cryptographic algorithms and protocols.
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.
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 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 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 imentioned above.
They are apt to be more difficult or of some historical interest.
***All work on these cyphers must be your own work. No team efforts unless
specified. This is important.
3. programming projects
We will give the class approximately five different projects concerning
different aspects of cryptography. These projects will be programming projects
(with very rare exception).
**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
exam 1 2/24
exam 2 3/31
exam 3 4/21
final
due dates-----------------------------------------------
ciphers 1-3 March 17
ciphers 4-6 May 12
projects 1-3 March 17 March 29 (with penalty)
projects 4-? May 10 May 17 (with penalty)
homework 1 March 3
homework 2 April 7
homework 3 May 10
----------------------------------------------------------
Spring break March 21-25
last day to drop Feb. 11 with refund, April 18
last day of classes May 17
final exams May 19-25
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. Patterson, Wayne, Mathematical Cryptography for
Computer Scientists and Mathematicians, Roman
and Littlefield
3. Seberry, J. and Josef Pieprzyk, Cryptography: An
Introduction to Computer Security, Prentice-Hall
4. Welsh, D. Codes and Cryptography, Oxford Univ.
Press
5. Brassard, Gilles, Modern Cryptography: A Tutorial, Springer
Verlag, Lecture Notes in Computer Science
6. Beutelspacher, Albrect,, Cryptology, translation from German
into English by J. Chris Fisher, The American Mathematical Association of America, Spectrum Series (1994)
7. Garrett, Paul Making, Breaking Codes, Prentice-Hall, (2001)
8. Buchman, Johannes Introduction to Cryptography, Springer,
9. Stinson, Douglas Cryptography Theory and Practice, CRC Press
10. 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
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. Stalllings, 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