Sergey Nikolenko

Sergey Nikolenko

Main page

Books
Research papers
Talks and posters
Students
Popular science
Other stuff

   Research
CS and crypto
Bioinformatics
Machine learning
Algebraic geometry
Algebra
Bayesian networks
Earth sciences

   Teaching
 2014
ML, KFU
Game Theory, HSE
Mech. Design, HSE
ML, CSClub Kazan
Game theory, HSE
Math. logic, AU
Machine learning, STC
Machine learning, AU
 2013
Discrete math, HSE
Machine learning, STC
Math. logic, AU
Cryptography, AU
 2012
Machine learning, STC
Math. logic, AU
Machine learning II, AU
Machine learning, AU
Machine learning, EMC
 2011
Cryptography, AU
Math. logic, AU
Machine learning, AU
 2010
Math. logic, AU
Machine learning, AU
Cryptography, AU
 2009
Crypto in CS Club
Statistics
Machine learning, AU
Cryptography
 2008
Speech recognition
MD for CS Club
ML for CS Club
Mechanism design
 2007
Machine Learning
Probabilistic learning

  External links
Google Scholar profile
DBLP profile
LiveJournal account
userinfonikolenko (in Russian)

Teaching activities

Cryptography

This course is presented in the fall of 2011 at the St. Petersburg Academic University as part of the Chair of Mathematics and Computer Science.

1. Introduction. The subject and history of cryptography. Cryptographic attacks. Cryptographic primitives: hash functions, secret key, and public key protocols.
Slides (.pdf, 2184kb)
2-3. Secret key cryptography. Block ciphers: ECB, CBC, CFB, and OFB. Message authenticity codes. Secret key cryptography via hash functions.
Slides (.pdf, 1906kb)
4. Stream ciphers: synchronous and asynchronous codes, pseudorandom sequences, pn-sequences, LFSRs, linear complexity, non-linear shift registers.
Slides (.pdf, 536kb)
5-6. Euclid's algorithm for polynomials, reconstructing rational functions, learning LFSRs. Reed-Solomon codes.
See Chapter 17 of A Computational Introduction to Number Theory and Algebra
7. Key agreement protocols. Diffie-Hellman. AKEP. Shamir's protocol. Otway–Rees protocol. Kerberos. Needham–Shroeder protocol. X.509. Attacks: man-in-the-middle, reflection, interleaving, misplaced trust. Key distribution. Secret sharing.
Slides (.pdf, 4776kb)
8. Factoring. Fermat's method. Kraitchik's method. Smooth numbers, their distribution. Quadratic sieve and its complexity. Solving linear systems: Wiedemann's algorithm.
Slides (.pdf, 647kb)
9. Discrete logarithm. O(sqrt(n))-methods: Pollard's rho and Pollard's lambda. Index calculus: main idea and the first two phases.
Slides (.pdf, 625kb)
10. Index calculus: third phase and complexity bound.
Slides (.pdf, 1226kb)
11. Elliptic curves: basic definitions, singular and nonsingular curves, projective plane and projective curves. Resultants.
See, e.g., J.S. Milne, Elliptic Curves.
12. Intersection numbers. Bezout's theorem. The group law on the elliptic curves.
See, e.g., J.S. Milne, Elliptic Curves.
13. Lenstra's ECM algorithm.
14. Quantum computing: basics. Entanglement, interference, parallelism. Deutsch-Jozsa problem. Quantum Fourier transform. Shor's algorithm.
Slides (.pdf, 461kb)
15. Noncommutative cryptography: groups in cryptography, Ko-Lee protocol, Anshel-Anshel-Goldfeld protocol. Braid groups. Attacks: length-based attacks and linearization.
Slides (.pdf, 482kb)