Fall 2017

- Optimization Methods   50:198:461, 56:198:561
Introduction to various methods based on linear programming (LP) to solve discrete optimization problems. The topics covered include introduction to non-linear optimization, and especially linear optimization (linear programming with the simplex algorithm); network flows, and application of LP-based techniques to solve certain optimization problem. Prerequisites: 50:640:121 or 50:640:130; and 50:640:250.
Required textbook:   J. Matoušek, B. Gärtner, Understanding and using linear programming, Springer (2007).

- Cryptography and Computer Security   50:198:475, 56:198:575
Secret-key cryptography, one-way function, cryptographic hash functions; public-key cryptography, key agreement, digital signatures; secret sharing; message and user authentication; key management; attacks; practical applications to computer and communications security. Prerequisites: 50:198:113; and 50:640:237 or 50:198:171.
Required textbooks:
A. Menezes, P. van Oorschot and S. Vanstone, Handbook of applied cryptography, CRC Press (1996)   (see ).
N. Ferguson, B. Schneier, and T. Kohno, Cryptography engineering, Wiley (2010).

[Reference page on C, Unix, Python, etc.:   Ref. page.]


Computational complexity, cryptography and computer security (graphical passwords), automata theory, complexity of problems in combinatorial group theory.   Publications.

The Graphical Passwords Project in cooperation with D. Hong, N. Memon, S. Man, and S. Wiedenbeck:   Page.