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