CS 178 Introduction to Cryptography
Winter Term 2020
Department of Computer Science
University of California Santa Barbara
http://koclab.cs.ucsb.edu/teaching/cs178
Announcements
 Instructor: Professor Koç
→ Koç is pronounced as "Coach"
 Class Schedule: Monday, Wednesday 2:003:15pm
 Classroom: Girvetz 2128
 Instructor's Office hours: Tue 4:005:30pm
 Instructor's Office: Phelps 1408 (Koç Lab 
map)
 The TAs are
Kalyan Garapaty  kalyan@ucsb.edu
Suriya Dakshina Murthy  suriya@ucsb.edu
 TA Office Hours are
Tuesday 2:004:00pm Suriya
Thursday 12:002:00pm Kalyan
 TA Office: Trailer 936
 Discussion Schedule and Room:
Thursday 2:002:50pm; Trailer 387 1015 (Kalyan)
Thursday 3:003:50pm; Trailer 387 1011 (Suriya)
 Please join the cs178
Piazza
page for class discussions.
←
 Check the class website, the Piazza page, and/or your email once a day.
 Course material is in the folder docx
←
 The grades:
cs178.htm
Code = 2047*StudentPerm mod 9973
←
Homework Assignments
There will be 5 homework assignments during the term, and
they are to be uploaded via Dropbox. The links will be
provided. Submit your homework assignment as a single PDF file.
You may also handwrite and submit a scanned image (as a single PDF).
Do not submit unreadable, poor phone camera images; if you do,
we will not grade them and your grade will be 0.
No late homework is accepted. ←
 Homework Assignment 1: (due 5pm on Monday Jan 20)
From the Rubinstein book, answer the
following questions:
(Page 7: 2.4 Problems) 2, 4, 6
(Page 52: 5.6 Problems) 1, 5
(Page 62: 6.4 Problems) 1, 2
 Homework Assignment 2: hw2.pdf
 due 5pm on Monday Feb 3
 Homework Assignment 3: hw3.pdf
 due 11pm on Saturday Feb 15 ←
 Homework Assignment 4: hw4.pdf
 due 11pm on Saturday Feb 29 ←
 Homework Assignment 5: hw5.pdf
 due 11pm on Saturday Mar 14 ←
Midterm and Final Exams
The Midterm exam date: Wednesday Feb 26
←
The TakeHome Final exam is here:
final.pdf
The deadline for submission is
10pm on Monday March 16.
Link for submission: is closed now
←
Weekly Course Plan
 Week 01:
Cryptography, cryptanalysis, cryptology
 Week 02:
Classical ciphers, Shift, Affine, Hill, Vigenere,
Affine Block Ciphers
 Week 03:
Number theory, stream ciphers, onetime pad, Vernam, RNGs
 Week 04:
LCGs, LFSRs, and CAs
 Week 05:
DES, perfect secrecy, basic modes of operation, 3DES,
timememory tradeoff
 Week 06:
Groups, finite fields, AES, advanced modes;
 Week 07:
RSA Algorithm
 Week 08:
Factoring, primality testing, discrete logs, DiffieHellman
 Week 09:
Hash functions and digital signatures
 Week 10:
Cryptographic protocols
Rijndael Animator & Inspector
Crypto Journals and Archives
Useful Crypto Links
Crypto Documents
History
Motivation
This is an introductory course on methods, algorithms, techniques,
and tools of cryptography. We study in detail algorithmic and
mathematical aspects of cryptographic methods and protocols, such as
secretkey cryptography, publickey cryptography, hash functions, and
digital signatures. We show how these techniques are used to solve
particular data and communication security problems. This course
material is useful for computer science, electrical engineering, and
mathematics students who are interested in learning how cryptographic
algorithms and methods are embedded in information systems, providing
confidentiality, integrity, nonrepudiation, and authenticity of stored
and transmitted digital data.
Topics
 SecretKey Cryptography: Symmetric and asymmetric systems; cryptanalysis;
alphabets and words; permutations; block ciphers; stream ciphers;
matrices and linear maps; Vigenere, Hill and permutation ciphers;
perfect secrecy; birthday paradox; Vernam cipher and onetime pad;
deterministic and true random numbers; DES and AES.
 Mathematical Background: Integers; cost of arithmetic operations;
gcd and extended gcd computation; Euclidean algorithm; factoring into
primes; modular arithmetic; groups, rings, and fields; orders of elements,
groups and subgroups; exponentiaton; Chinese remainder theorem;
polynomials and finite fields.
 PublicKey Cryptography: RSA algorithm, Rabin's algorithm,
DiffieHellman key exchange, ElGamal; Factoring and generating
prime numbers, Fermat test, MillerRabin test; Discrete logarithms,
Pollar rho algorithm, index calculus.
 Hash Functions: Fundamentals, oneway functions, preimage
and second preimage computations, compression functions, MD5,
SHA1, an SHA2 and SHA3 family; Message authentication functions.
 Digital Signatures: RSA, ElGamal, DSA, ECDSA, special signatures.
 Advanced Topics: Elliptic curve cryptography, secret sharing,
onetime passwords, challengeresponse protocols, certificates.
Textbook
 Simon RubinsteinSalzedo.
Cryptography, Springer, 2018.
 Available without cost to UCSB students:
URL
Grading Rules
 Homework Assignments: 30 %
 Midterm Exam: 30 %
 Final Exam: 40 %
Catalog Description
An introduction to the basic concepts and techniques of cryptography
and cryptanalysis. Topics include: The Shannon theory, classical systems,
the enigma machine, the data encryption standard, public key systems,
digital signatures, file security.
Prerequisites
CS 10 or CS 24; CS 40; PSTAT 120A or PSTAT 121A or ECE 139
or permission of instructor.
This class is open to all undergraduate CS, ECE, and MATH students,
with appropriate discrete mathematics background.
Academic Integrity ←
Çetin Kaya Koç
