Overview
Instructor  Dr. Armin Straub
MSPB 313 straub@southalabama.edu (251) 4607262 (please use email whenever possible) 
Office hours  MWF, 911am, or by appointment
Held virtually using Zoom; please make an appointment by email at least 2 hours in advance. 
Class schedule  MWF, 1:252:15pm, in MSPB 235
Due to COVID restrictions, you may only attend those meetings assigned to the cohort you signed up for. 
Midterm exams  The tentative dates for our two midterm exams are:
Monday, March 1 Wednesday, April 7 
Final exam  Wednesday, May 5 — 1:00pm3:00pm 
Online grades 
Homework Scores
Exams: USAonline (Canvas) 
Syllabus  syllabus.pdf 
Assignments and course material
In order to be able to view the lecture recordings, you need to be logged into USAonline (Canvas). If you are still running into access issues, then please view the recordings through Panopto Video in our course page on Canvas.
Dates  Assignments and course material  

#1  01/20 01/22 01/25 
Assignments:
Homework Set 1 (due 2/1) Lecture notes:
Lecture recordings:
lecture011congruences.mp4
(corresponding PDF)
lecture012euclideanalgorithm.mp4
(corresponding PDF)
lecture013extendedeuclideanalgorithm1.mp4
(corresponding PDF)
lecture014extendedeuclideanalgorithm2.mp4
(corresponding PDF)
lecture021modularinverses.mp4
(corresponding PDF)
lecture022creditcardnumbers.mp4
(corresponding PDF)
lecture031phifunction.mp4
(corresponding PDF)
lecture032historicalciphers.mp4
(corresponding PDF)
Class schedule:
01/20: online using prerecorded lectures
01/22: inperson meeting 01/25: online using prerecorded lectures 
#2  01/27 01/29 02/01 
Assignments:
Homework Set 2 (due 2/8) Lecture notes:
Lecture recordings:
lecture041attacks.mp4
(corresponding PDF)
lecture042littlefermat.mp4
(corresponding PDF)
lecture051eulerstheorem.mp4
(corresponding PDF)
lecture052binaryexponentiation.mp4
(corresponding PDF)
lecture053differentbases.mp4
(corresponding PDF)
lecture06onetimepad.mp4
(corresponding PDF)
Class schedule:
01/27: inperson meeting
01/29: inperson meeting 02/01: online using prerecorded lectures 
#3  02/03 02/05 02/08 
Assignments:
Homework Set 3 (due 2/15) Lecture notes:
Lecture recordings:
lecture071streamciphers.mp4
(corresponding PDF)
lecture072linearcongruentialgenerators.mp4
(corresponding PDF)
lecture081linearfeedbackshiftregisters.mp4
(corresponding PDF)
lecture082periodsofprgs.mp4
(corresponding PDF)
lecture091contentscramblesystem.mp4
(corresponding PDF)
lecture092breakingcss.mp4
(corresponding PDF)
Class schedule:
02/03: inperson meeting
02/05: inperson meeting 02/08: online using prerecorded lectures 
#4  02/10 02/12 02/15 
Assignments:
Homework Set 4 (due 2/22) Lecture notes:
Lecture recordings:
lecture10chineseremaindertheorem.mp4
(corresponding PDF)
lecture111quadraticequations.mp4
(corresponding PDF)
lecture112quadraticequationspart2.mp4
(corresponding PDF)
lecture12quadraticresidues.mp4
(corresponding PDF)
Class schedule:
02/10: inperson meeting
02/12: inperson meeting 02/15: online using prerecorded lectures 
#5  02/17 02/19 02/22 02/24 02/26 
Assignments:
Homework Set 5 (due 3/1) Lecture notes:
Lecture recordings:
lecture13blumblumshub.mp4
(corresponding PDF)
lecture141fermatprimalitytest.mp4
(corresponding PDF)
lecture142absolutepseudoprimes.mp4
(corresponding PDF)
lecture15millerrabinprimalitytest.mp4
(corresponding PDF)
lecture16primenumbertheorem.mp4
(corresponding PDF)
Class schedule:
02/17: inperson meeting
02/19: inperson meeting 02/22: online using prerecorded lectures 02/24: inperson meeting 02/26: online via Zoom zoom0226.mp4
(corresponding PDF)

lectures0116.pdf (all lecture notes up to now in one big file)  
03/01 
Midterm Exam #1
Practice material:
Midterm Exam #1 format:
 
#6  03/03 03/05 03/08 
Assignments:
Homework Set 6 (due 3/15) Lecture notes:
Lecture recordings:
lecture171desblockcipherdesign.mp4
(corresponding PDF)
lecture172desinternals.mp4
(corresponding PDF)
lecture183des.mp4
(corresponding PDF)
lecture19blockciphermodes.mp4
(corresponding PDF)
Class schedule:
03/03: inperson meeting
03/05: inperson meeting 03/08: online using prerecorded lectures 
#7  03/10 03/12 03/15 03/17 
Assignments:
Lecture notes:
Lecture recordings:
lecture20finitefields.mp4
(corresponding PDF)
lecture211finitefieldsmultiply.mp4
(corresponding PDF)
lecture212finitefieldsinversion.mp4
(corresponding PDF)
Class schedule:
03/10: student holiday
03/12: inperson meeting 03/15: online using prerecorded lectures 03/17: inperson meeting 
#8  03/19 03/22 03/24 
Assignments:
Lecture notes:
Lecture recordings:
lecture23multiplicativeorder.mp4
(corresponding PDF)
lecture24multiplicativeorder2.mp4
(corresponding PDF)
lecture25primitiveroots.mp4
(corresponding PDF)
lecture25rsa.mp4
(corresponding PDF)
Class schedule:
03/19: inperson meeting
03/22: online using prerecorded lectures 03/24: inperson meeting 
#9  03/26 03/29 03/31 04/02 04/05 
Assignments:
Lecture notes:
Lecture recordings:
lecture26rsacomments.mp4
(corresponding PDF)
lecture271diffiehellman.mp4
(corresponding PDF)
lecture272elgamal.mp4
(corresponding PDF)
lecture28elgamalcomments.mp4
(corresponding PDF)
Class schedule:
03/26: inperson meeting
03/29: online using prerecorded lectures 03/31: inperson meeting 04/02: inperson meeting 04/05: online via Zoom zoom0405.mp4
(corresponding PDF)

lectures1729.pdf (all lecture notes since the previous exam in one big file)  
04/07 
Midterm Exam #2
Practice material:
 
#10  04/09 04/12 04/14 
Assignments:
Lecture notes:
Lecture recordings:
lecture301hashfunctions.mp4
(corresponding PDF)
lecture302merkledamgard.mp4
(corresponding PDF)
lecture31passwords.mp4
(corresponding PDF)
lecture32digitalsignatures.mp4
(corresponding PDF)
Class schedule:
04/09: inperson meeting
04/12: online using prerecorded lectures 04/14: inperson meeting 
#11  04/16 04/19 04/21 04/23 04/26 04/28 04/30 
Assignments:
Lecture notes:
Lecture recordings:
lecture33birthdayparadox.mp4
(corresponding PDF)
lecture34ellipticcurves.mp4
(corresponding PDF)
lecture35ellipticcurvesmodp.mp4
(corresponding PDF)
Recommended extra material:
Class schedule:
04/16: inperson meeting
04/19: online using prerecorded lectures 04/21: inperson meeting 04/23: inperson meeting 04/26: online using prerecorded lectures 04/28: inperson meeting 04/30: online via Zoom 
About the homework
 Homework problems are posted for each unit. Homework is submitted online, and you have an unlimited number of attempts. Only the best score is used for your grade.
Most problems have a random component (which allows you to continue practicing throughout the semester without putting your scores at risk).
 Aim to complete the problems well before the posted due date.
A 15% penalty applies if homework is submitted late.
 Collect a bonus point for each mathematical typo you find in the lecture notes (that is not yet fixed online), or by reporting mistakes in the homework system. Each bonus point is worth 1% towards a midterm exam.
The homework system is written by myself in the hope that you find it beneficial. Please help make it as useful as possible by letting me know about any issues!
Sage
For more involved calculations, we will explore the opensource free computer algebra system Sage.
If you just want to run a handful quick computations (without saving your work), you can use the text box below.
An easy way to use Sage more seriously is http://cocalc.com. This free cloud service does not require you to make an account or to install anything: select Run CoCalc Now, followed by New and Sage worksheet and start computing. (To save your work for later, you can create a free account.)
Projects
If you take this class for graduate credit, you need to complete a project. The idea is to gain additional insight into a topic that you are particularly interested in. Some suggestions for projects are listed further below.
 The outcome of the project should be a short paper (about 4 pages)
 in which you introduce the topic, and then
 describe how you explored the topic.
 computations or visualizations you did in, say, Sage,
 working out representative examples, or
 combining different sources to get an overall picture.
Each project should have either a computational part (this is a great chance to play with Sage!) or have a more mathematical component. Here are some ideas:
 Compute and investigate the number of Fermat liars and/or strong liars. For instance, a theoretical result states that at most a quarter of the residues can be strong liars. What proportions do you observe numerically?
 Using frequency analysis (letters, digrams, trigrams and such), can you (more or less automatically) distinguish, say, different languages or maybe even individual authors. This would be a computational project. The exact focus is up to you.
 What are the periods of LFSRs and LCGs? When are they maximal? Discuss mathematical results in the spirit of what is hinted at in the lecture notes.
 When we say that a pseudorandom generator should have good statistical properties, what exactly do we mean? What tests do people apply in practice to evaluate pseudorandom generators?
 Go into more detail on the prime number theorem. How is it related to the Riemann zeta function and the Riemann hypothesis (this is advanced math)? What goes into its proof? Explore it numerically.
 Discuss finite fields and their classification. This would be a more mathematical project and should include proving basic results on finite fields.
 Describe the main ideas involved in finding the first collision found for SHA1
 Introduce RSAOAEP, which is RSA in randomized form with padding.
 Discuss Frobenius pseudoprimes, which feature in a 1998 primality test by Jon Grantham. You could either include mathematical details, such as proofs, or implement the primality test and experimentally analyze the failure rate.