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