Materials that I can suggest for Cryptography and Computer Science

6 minute read

Published:

These books and other materials helped my study of cryptography. If there is an English version of the book/paper - I first give a link to that book, if there is a Russian version - the link is given in a tag “RUS”. Some materials are only in Russian, some are only in English. The links are intended to give more details about the book/paper and not as an advertisement for any platform/shop. I am sure someone would prefer a different book or material on some topics - the following list is what I used and liked during my work and studies.

Materials that I can suggest for Cryptography and Computer Science

Combinatorics: Combinatorics by N. Ya. Vilenkin(RUS)

Algebra and Linear Algebra: Introduction to Algebra by Kostrikin (RUS vol 1;RUS vol 2; RUS vol 3)

Discrete math: Лекции по дискретной математике - А. В. Чашкин

Mathematical Analysis: Mathematical Analysis by V. A. Zorich and Vol. 2 (RUS vol 1; RUS vol 2)

Probability Theory: Probability and Statistics for Computer Scientists by Michael Baron

Finite Fields and their applications: Finite Fields by Lidl, Niederreiter (RUS), Элементы конечной алгебры: группы, кольца, поля, линейные пространства - Чашкин А.В., Жуков Д. А.

Mathematical tools: Concrete Mathematics by Rondald L. Graham, Donald E. Knuth, Oren Patashnik (RUS); generatingfunctionology by Herbert S. Wilf;

Coding theory: Error-Correcting Codes by W. Wesley Peterson, E. J. Weldon Jr. (RUS)

Algorithms and Data structures: Algorithms by Dasgupta, Papadimitriou, Vazirani (RUS); Grokking Algorithms by Aditya Bhargava (RUS); Introduction to Algorithms by Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L (RUS)

Advanced algorithms: Advanced algorithms part 1, part 2.

Computational complexity: Computational Complexity: A Modern Approach by Sanjeev Arora and Boaz Barak

Programming: C++ How to Program by Paul Deitel, Harvey Deitel (RUS); Practical Cryptography in Python by Seth James Nielson, Christopher K. Monson; SageMath; Project Euler;

Computer security: Hacking: The Art of Exploitation by Jon Erickson (RUS)

Algorithms for Cryptography: Введение в теоретико-чиcловые методы криптографии - Глухов М.М.; Prime Numbers: A Computational Perspective by Richard Crandall, Carl B. Pomerance; (RUS); Number-theoretic Algorithms in Cryptography by O.N. Vasilenko (RUS);

Boolean functions: Ирина Панкратова: Булевы функции в криптографии.; Boolean Functions in Coding Theory and Cryptography (Translations of Mathematical Monographs) by O. A. Logachev, A. A. Salnikov, V. V. Yashchenko;(RUS) 2 Videos - Analysis of Boolean Functions by Eyan O’Donnell;

Cryptography overview: Practical Cryptography by Niels Ferguson, Bruce Schneier (RUS); Real World Cryptography by David Wong; Implementing and Exploiting Cryptography by Kamran Khan and Bill Cox

A more in-depth Cryptography overview: Handbook of Applied Cryptography (Discrete Mathematics and Its Applications) by Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone

A Graduate Course in Applied Cryptography: A Graduate Course in Applied Cryptography by Dan Boneh and Victor Shoup

Theoretical foundations of cryptography: The Foundations of cryptography by Oded Goldreich

Elliptic curve cryptography: Elliptic Curves, Number Theory, and Cryptography by LAWRENCE C. WASHINGTON

Provable security: The Joy of cryptography by Mike Rosulek

Hash functions: The Theory of Hash Functions and Random Oracles by Arno Mittelbach, Marc Fischlin

Key Establishment: Protocols for Authentication and Key Establishment by Colin Boyd, Anish Mathuria, Douglas Stebila

Multiparty Computation and Secret Sharing: Secure Multiparty Computation and Secret Sharing by Ronald Cramer, Ivan Bjerre Damgård, Jesper Buus Nielsen

Quantum computations: Quantum Computation and Quantum Information from CS teacher; Quantum Computation and Quantum Information by Michael A. Nielsen & Isaac L. Chuang (RUS

Overview of Post-quantum cryptography: Post-Quantum Cryptography, Editors: Daniel J. Bernstein, Johannes Buchmann, Erik Dahmen


Lattice-based Cryptography:

The Lattice Club

A Decade of Lattice Cryptography

Basic Lattice Cryptography: The concepts behind Kyber (ML-KEM) and Dilithium (ML-DSA)

A survey on the security of the lattice-based NIST finalists

Lattice Attacks on NTRU and LWE: A History of Refinements


Hash-based Cryptography:

Survey on Hash-based cryptography

SPHINCS+ resources

WOTS+

XMSS

Mitigating Multi-Target Attacks in Hash-based Signatures

SPHINCS+

Recovering the tight security proof of SPHINCS+

SPHINCS+C: Compressing SPHINCS+ With (Almost) No Cost


Zero Knowledge:

Proofs, Arguments, and Zero-Knowledge by Justin Thaler

The MoonMath Manual - The MoonMath Manual is a resource for anyone interested in understanding and unlocking the potential of zk-SNARKs, from beginners to experts.

ZK acronyms - The ZK Jargon Decoder aims to be a dictionary and reference guide for common jargon found in cryptography and the zero-knowledge literature.

ZK Bug Tracker

ZK Whiteboard Sessions - S1

ZK Whiteboard Sessions - S2

ZK news ___

Rust:

The Rust Programming Language by Steve Klabnik, Carol Nichols, and Chris Krycho - The Rust Programming Language, an introductory book about Rust.

A Gentle Introduction To Rust - The aim of this tutorial is to take you to a place where you can read and write enough Rust to fully appreciate the excellent learning resources available online.

100 exercises to lear rust - You’ll learn Rust by solving 100 exercises. You’ll go from knowing nothing about Rust to being able to start writing your own programs, one exercise at a time.

Rustlings - This project contains small exercises to get you used to reading and writing Rust code.

Rust by example - Testing

Build a RC5 Symmetric Block Cipher in Rust - This course teaches you how to build an RC5 symmetric block cipher in Rust.

Elliptic Curve Cryptography in Rust - This course teaches you how elliptic curve groups work together with finite fields and how to implement a Rust library from scratch to perform basic groups’ operations.

Zero-Knowledge Proofs in Rust - This Zero-Knowledge Proof course in Rust is designed to learn how to implement a cryptography ZKP algorithm and use it in real-world applications for user registration and authentication.


Good links:

International Association for Cryptologic Research - There, you can find information about good schools, conferences, workshops, job offers, Ph.D. and PostDoc positions, and more.

Ask questions on cryptography papers

Crypto Stack Exchange

Russian forum on math related topics

Computer Science club courses

Survey on Code-based cryptography

Cryptography for Big Data Security Book Chapter for Big Data: Storage, Sharing, and Security - Survey on modern applications of cryptography: Attribute-based encryption, Searchable encryption, Multi-party computations, Homomorphic encryption, Verifiable Computation, Functional encryption.

Homomorphic encryption: Good paper to start with; ZAMA tutorials and documentations


Some less severe content:

3Blue1Brown - Youtube channel on different mathematical topics

Numberphile - Youtube channel on various mathematical topics

Cryptography FM - Podcast on cryptography

Security. Cryptography. Whatever - Podcast on cryptography

Zero Knowledge Podcast - Podcast about decentralization and technology, open source communities & ZK proofs


Cryptography olympiads, CTF, online platforms:

NSUcrypto

CryptoHack

CryptoCTF

Cryptopals

MysteryTwister


One more list of good cryptography books

Как написать математическую статью по-ангийски - Сосинский А.Б.

How to write a Grant proposal

How to lead a research team in science