CS 276: Cryptographics Systems

Spring 2025, Willamette College, Salem

TTh 1450-1620, Ford 102 | YouTube Live

Syllabus

Instructor

Calvin Deutschbein

ckdeutschbein@willamette.edu

Ford 3rd Floor

Course Description

A semester-long study of topics in Computer Science that specifically includes a collaborative programming project that applies or extends the content of CS 152 or more advanced classes.

Systems research joins together the theory and the practice of computing, and cryptography is a perfect microcosm of this dynamic. As a guided study of low-level implementation of computer systems, this course will study the RSA and SHA cryptographic at once in theory and practice, and then build these cryptographic elements into emergent systems using data structures and algorithms such as Merkle trees and blockchains.

CS 540: Cybersecurity

Spring 2025, School of Computing and Information Sciences, Portland

Th 1800-2100 GPC 212 | YouTube Live

Syllabus

Instructor

Calvin Deutschbein

ckdeutschbein@willamette.edu

Ford 3rd Floor

Course Description

Cybersecurity can be understood as a mindset or approach rather than a subfield of computer science, such as secure mobile computing, network and operating system security, secure data bases, and secure cryptography algorithms. This course prepares a general audience to incorporate security concepts and ethics into their daily lives and offers some basic familiarity with writing security oriented code.

Students,

All lectures and supplementary talks will be recorded and broadcast via YouTube Live through user @cd-public, for which there is a course specific playlist.

All course material will be hosted via GitHub pages at the following url, for which this is a course specific page.

In addition to office hours by appointment, as a collaboration and student support tool I will host a course Discord. Discord is not required, but I will use it a lot.

All technologies used in the course are available free and open source. There is no textbook, but supplemental options for texts will be provided.

There is a strong trend in academia toward learning management systems like Canvas and toward maintaining student visible gradebooks, which have strong benefits for other courses but not, I think, for mine. I note that:

  1. I do not use LMS systems, which I find difficult to integrate with the technology stacks used within courses in the computational sciences.
  2. I do not use a student visible gradebook because I use ungrading, wherein students have a good grade unless informed privately.

Reach out via email or Discord if you want a grade check or cannot find some course materials.

Best,

-c

P.S.: Resources

"Cheat Sheets":

This course will be conducted via Podman containers on a host machine.

This course will use GitHub to distribute source code.

This course will use vim to edit code.

Week Talk VoDs Demo MSCS HW's
Part 0
0x0 (13 Jan) Podman SLMPDX Alpine Cipher Enigma
Part 1: Cryptography
0x1 (20 Jan) C89/99 SLMPDX Printb x86-64 Macros
0x2 (27 Jan) Encode SLMPDX Travel Encode Travel
0x3 (03 Feb) SHA256 SLMPDX Endian Atomic SHAinC
0x4 (10 Feb) Finite SLMPDX Hazard
0x5 (17 Feb) SLMPDX BigAdd LibGMP 4096_t
0x6 (24 Feb) Fermat SLMPDX KeyGen genrsa RSAinC
0x7 (03 Mar) Euclid SLMPDX Ops_ui Caches BigRSA
0x8 (10 Mar) Midterm
0x9 (17 Mar) Mounts SLMPDX Linker Curves
0xA (24 Mar) Spring break; Spring break;
Part 2: Cryptocurrency
0xB (31 Mar) Blocks SLMPDX struct object list.c
0xC (07 Apr) Chains SLMPDX GPGPUs CDwork Proofs
0xD (14 Apr) Graphs SLMPDX B-tree xorlst heap.c
0xE (21 Apr) Merkle SLMPDX Wallet NLynch TxTree
0xF (28 Apr) BTCinC