"Cryptography with Lab"

MCIS 4680 Course Details


REGISTER NOW

Alan Turing and the Enigma Cipher Machine

 
 

Course Description:
    In this course students will explore the world of cryptography from many perspectives. We will study the historical battle between those who tried desperately to keep secrets and those who worked tirelessly to tease the hidden meaning out of encrypted messages. We will examine the mathematical underpinnings of cryptography, including information theory topics and the "trap door" problems of number theory that make public key methods possible. We will explore the technical tradeoffs involved in deciding whether to deploy cryptographic functionality in the form of hardware or software. We will also consider some of the legal and public policy implications of choosing to implement this technology.

Each student will be required to complete a weekly lab exercise and participate in an online discussion of the assigned reading topics. (A description of the lab exercises can be found further down on this page.)
     
  Credit:
    Students who take this class for credit will earn 3 graduate credit hours upon completion.
     
  Tuition and Fees:
    Rates are dependent on student program and enrollment status. Certain groups may qualify for special rates. See the University College Tuition and Fees page for complete information.
     
  Schedule:
    "Cryptography with Lab" will be offered as an online course during the winter term (January 2 through March) of 2008.
     
  Prerequisite:
    MCIS 3125 - Introduction to C++ Programming; or equivalent work experience.
(The lab exercises are designed to build and strengthen the programming skills of the students. Those who may feel that their programming skills are a little rusty need not worry. On the other hand, those who are not able to compile and execute a simple "Hello, World!" program are probably not ready to take this course. If you have questions, please contact
info@TimberlineTechnologies.com.)
     
  Objectives:
   

At the conclusion of this course, students will be able to:

  • Write C++ programs that include cryptographic functionality.
  • Analyze the basic mathematical principles on which modern cryptographic algorithms are based.
  • Appreciate the role that cryptography has played in human history and culture.
  • Explore in detail the inner workings of commonly used cryptographic algorithms.
  • Comprehend the need for public key infrastructure technology.
  • Model techniques used for cryptanalysis and code-breaking.
  • Make intelligent choices among competing cryptographic implementation options.
  • Understand the legal implications involved in the use of cryptographic techniques and products.
     
  Textbook:
    Fergeson, Niels and Schneier, Bruce Practical Cryptography, John Wiley & Sons, New York, NY, 2003
     
  Technology:
   
  • Each student will need to have access to an ANSI standard C++ compiler. All lab exercises will consist of "command line" programs that will not employ any graphical user interface (GUI) functionality. Microsoft Visual C++ .NET® as well as the C++ compilers distributed with most Linux systems will be adequate for the needs of this class.
  • The lecture material will be published in the form of Microsoft Word® 2003 documents. Students will, therefore, need access to a Microsoft Office® environment.
  • Class discussions will be conducted via the World Wide Web. Students will need to have access to Internet Explorer® or other suitable Web browser.
     
  Lab Exercises:
    There will be no tests or quizzes administered as part of this course. Each student's progress rating will be based on practical mastery of the skills required as demonstrated by participation in the discussion forum and completion of assigned lab exercises. The weekly programming exercises will consist of C++ source code files, provided by the instructor, in which certain sections have not been completed and must be filled in by the student. The lab exercises are designed to provide "hands-on" experimentation with cryptographic techniques and to give the student an appreciation of the interplay between cryptography and cryptanalysis.
     
  Weekly Topic Schedule:

  Week 1 - Introduction to Cryptography
   
  • Symmetric-Key Encryption
  • Public-Key Encryption
  • Authentication
  • Digital Signatures
  • PKI
    Lab: "Ancient Encryption Schemes and Brute-Force Attacks"
     
  Week 2 - Block Ciphers
   
  • DES
  • AES
  • Block Cipher Modes
    Lab: "Rotational Ciphers and Statistical Pattern Matches"
     
  Week 3 - Hash Functions
   
  • Message Authentication
  • MD5
  • SHA-1 and SHA-256
    Lab: "Cracking the Newspaper Cryptogram"
     
  Week 4 - Secure Channels
   
  • Sending and Receiving Messages
  • Order of Authentication and Encryption
  • Implementation Issues
    Lab: "How Babbage Broke the Vigenère Cipher"
     
  Week 5 - Randomness and Prime Numbers
   
  • Pseudo-Random Number Generators
  • Large Numbers
  • Divisibility and Primes
    Lab: "Using and Abusing One-Time Pads"
     
  Week 6 - Diffie-Hellman and RSA
   
  • Key Exchange
  • Modular Arithmetic
  • Chinese Remainder Theorem
    Lab: "SHA-256 Implementation"
     
  Week 7 - Cryptographic Protocols
   
  • Trust
  • Key Negotiation
  • Implementation Issues
    Lab: "AES Implementation"
     
  Week 8 - Key Servers
   
  • Reliable Clocks
  • Kerberos
  • Key Server Alternatives
    Lab: "Diffie-Hellman Implemenation"
     
  Week 9 - Public Key Infrastructure
   
  • Certificates and Expiration
  • Revocation
  • Formats
    Lab: "RSA Implementation"
     
  Week 10 - Standards
   
  • PKCS
  • Patents
  • Licensing
    Lab: "A Real-World Example"


For additional information about this course email
info@TimberlineTechnologies.com.

Back to the Timberline Technologies Home Page

© 2005 by Timberline Technologies LLC