Syllabus - Computer Science

advertisement
Cryptography
COSC 4301-01/COSC 5340-01
Summer 2006
Instructor: Dr. Lawrence J. Osborne
Office: Maes 201
Phone: (409) 880-8775
E-mail: ljosborne@my.lamar.edu
Office Hrs: MWF 2:30 -- 4:00 p.m.
Department Website http://cs.lamar.edu/osborne
Class Schedule
MTWRF 9:35 AM --10:55 A.M. Maes 111
Course Description
In this course we will survey some contemporary cryptographic methods and the theory
behind those methods. We start with an introduction to the basic structure and definition
of a cryptosystem and some intuitive ways of encryption. These intuitive encryption
method are either vulnerable to cryptanalysis attacks or simply too expensive for parties
to communicate. Then, we will move into several protocols that are widely used in
contemporary cryptosystems such as DES, AES, RSA, ElGamal, Elliptic Curve.
Since the greatest fun here is to understand the theory behind those modern
cryptosystems and number theory is the key foundation that builds up the entire
enterprize, we will spend a great deal of time on the subject before we move into any
subtle cryptosystem. Besides number theory, the subject in fact intimately relates to many
other disciplines such as algorithm analysis, theoretical complexity theory, and machine
learning. We will also scratch these touches in the class. Nevertheless, this is not a pure
theoretical course, students will be asked to implement several cryptographic algorithms,
analyze them, point out the weakness, attack peer student's cryptosystem or some
ciphertexts given by the instructor as programming assignment.
Programming Language
C++
Prerequisites
Data Structures, Algorithm Analysis, Discrete Math, Mature C++ programming skill.
Textbooks -- Required !

Introduction to Cryptography with Coding Theory,} by Wade Trappe and
Lawrence C. Washington, Prentice Hall, 2nd Edition , 2006
Reference Books:




Cryptography: Theory and Practice, Douglas Stinson, Chapman and Hall; 2
edition, 2002
Chapter 6, Problems on Discrete Mathematics, Chung-Chih Li
Introduction to Cryptography, by Hans Delfs and Helmut Knebl, Springer-Verlag,
2002
Introduction to Algorithms, Thomas H. Cormen and Charles E. Leiserson and
Ronald L. Rivest, The MIT Press, 1989
No makeup-test will be given unless documented evidence of a medical or family
emergency is presented to the instructor. And, no test will be given before the
scheduled dates and times under any circumstances.
Grading:
 3 HW Assignments: 45 %
 Midterm: 25 %
 Project: 30 %
Programming Assignments:
About 7 or 8 programming assignments will be given. The weight of each program
depends on its difficulty. Students are encouraged to discuss assignments and help each
other. However, this does not mean that you can either entirely or partially copy or
modify someone else's work.
Any form and any degree of plagiarism in an assignment will result in a grade of 0
points on that assignment.
Late work assignments will not be accepted unless there is a documented family or
medical emergency.
Attendance: Attendance is mandatory. Students are responsible for all lecture material
and assignments made during class. Also, students should check the Department website
and the email regularly for information and announcements.
Grading Policy:
Percentage
85-100
70-84
60-70
Grade
A Excellent
B Good
C Satisfactory
40-59
Below 40
D
F
Passing
Failure
Academic Honesty
Cheating, plagiarism, collusion, abuse of resource materials, and their consequences
of doing so are defined and described under the section of Academic Affairs in the
Student Handbook. Students giving away academic work for an assignment offered for
credit to other students working on the same assignment will be considered as guilty as
those who turn in another’s work and will receive the same penalty. Students are
expected to follow the Computer Science Department Policy on Academic Honesty.
Tentative Topics






Introduction and Classical Cryptosystems: Secure communication. Attacks to
cryptosystems. Classical cryptographic techniques and algorithms.
Monoalphabetic and polyalphabetic systems.
Mathematical Foundations: Number theory. Finite fields. Primitive roots.
Squareroots. Exponentiation and discrete logarithm.
Secret-Key Cryptography: Block ciphers and stream ciphers. DES, AES, RC4.
Modes of operation.
Public-Key Cryptography: One-way functions. Trapdoor one-way functions.
Public-key cryptosystems. RSA, Diffie-Hellman, ElGamal, and elliptic curve
cryptosystems.
Authentication and Digital Signatures: Cryptographic checksums. Hash
functions and message-digest functions. Digital signatures. Authentication
protocols.
Protocols: Digital cash. Sharing and partial disclosure of secrets. Games. Zeroknowledge proof systems. Identification protocols. Key management
architectures.
Project: The project work involves the implementation of a cryptographic algorithm,
method, or a protocol, and its demonstration. A project team consists of one or two
individuals.
Please follow the guidelines below.



Search the Internet and other resources, e.g., books, technical reports, and papers,
to select your cryptographic method.
Select a computer platform and a language to implement the method. The
computer platform examples are PC, Mac, Sun, Palm, etc. The programming
language examples are C, C++, Java, Java Script, Matlab, Maple, Mathematica,
Assembly Language, etc.
You need to devise an acceptable method of verification for the results produced
by your implementation. A typical way is to check if the software produces the

same set of output strings for a set of given input strings, as provided by a
standard document (for example, ANSI, X9, IEEE standards).
An important aspect of the project that it needs to have a method of demonstration
built into it. I am planning to place your demonstration on the class webpage.
1. Select your method an write a 2-3 line description of the project.
2. Send me your name, project title, and project description by e-mail.
3. After finishing your implementation, submit an electronic copy of the
implementation and the demonstration system.
 Proposal Due Date: Wednesday, June 14, 2006
 Project Due Date: Wednesday, July 5, 2006
Example Project Title and Abstract:
Title:
Hardware Implementation of IDEA (International Data Encryption
Algorithm)
Members: Gerald Lai <laige@ece.orst.edu>
Abstract:
In 1973, the National Bureau of Standards (NBS, now known as the
National Institute of Standards and Technology, or NIST) selected
the Data Encryption Algorithm (DEA, later known as DES) to serve
as a common standard. DES was designed at the IBM TJ Watson Research
Center at the request of the NBS for protecting sensitive data.
It is a block cipher operating on a 64-bit plaintext to produce a
64-bit ciphertext. The symmetric key used is a 56-bit encryption
key that was strong at the time. In other words, there are
72,057,594,037,927,936 (or 2 to the 56th power) possible combinations
of keys. It was claimed that a message encrypted with DES would take
an immensely long time to crack.
Yet, despite its sophistication, many future attempts at cracking DES
showed significant signs of success. For example, the distributive
computing approach of spreading cracking computation power over the
Internet earned Rocke Verser and Michael Sanders the prize of the 1997
DES Challenge. DES Challenge II was also cracked the following year.
With the invention of the Electronic Frontier Foundation DES Cracker,
it was shown that a 56-bit key protection is insufficient against
exhaustive search employed with today's technology. Therefore, there
was an urgent call for a stronger secret-key encryption algorithm.
IDEA was one of the algorithms to answer that call.
The International Data Encryption Algorithm (IDEA) was developed in
Zurich, Switzerland by James Massey and Xuejia Lai and published in
1990. It operates on 64-bit plaintext and ciphertext blocks with a
128-bit key. IDEA is used by the popular program Pretty Good Privacy
(PGP) to encrypt files and electronic mail. Unfortunately, wider use
of IDEA has been hampered by a series of software patents on the
algorithm, which is currently held until 2011 by Ascom-Tech AG in
Solothurn, Switzerland. MediaCrypt offers a royalty-free license for
non-commercial use.
IDEA is somewhat different from the rest of the symmetric key
encryption algorithms in that it uses algebraic operations completely
and does without table lookup methods. It employs a modified 4-word
Feistel style round function system. The strength of IDEA lies in its
modulo multiplication operations and therefore, it relies heavily on
modular inversion.
In this project, I will design a hardware implementation of IDEA using
VHDL. The implementation will be simulated using Mentor Graphics tools.
The demonstration system will be available on the web.
Some Project Ideas:











Polynomial-Time Algorithm for Primality Testing
Analysis of the Statistical Cipher Feedback Mode of Block Ciphers
Physical One-Way Functions
Properties of NTRU Cryptosystem
Recent Results on OAEP Security
Attacks on RC4 and WEP
Modes of Operation
Secure Hashing
Random Number Generation
Message Authentication
Password Usage and Generation
Download