Download free course A Graduate Course in Applied Cryptography, pdf file on 900 pages by by Dan Boneh, Victor Shoup.
Cryptography is an indispensable tool used to protect information in computing systems. It is used everywhere and by billions of people worldwide on a daily basis. It is used to protect data at rest and data in motion. Cryptographic systems are an integral part of standard protocols, most notably the Transport Layer Security (TLS) protocol, making it relatively easy to incorporate strong encryption into a wide range of applications.
While extremely useful, cryptography is also highly brittle. The most secure cryptographic system can be rendered completely insecure by a single specification or programming error. No amount of unit testing will uncover a security vulnerability in a cryptosystem.
Instead, to argue that a cryptosystem is secure, we rely on mathematical modeling and proofs to show that a particular system satisfies the security properties attributed to it. We often need to introduce certain plausible assumptions to push our security arguments through.
This book is about exactly that: constructing practical cryptosystems for which we can argue security under plausible assumptions. The book covers many constructions for different tasks in cryptography. For each task we define a precise security goal that we aim to achieve and then present constructions that achieve the required goal. To analyze the constructions, we develop a unified framework for doing cryptographic proofs. A reader who masters this framework will be capable of applying it to new constructions that may not be covered in the book.
Table of contentsSecret key cryptography
Introduction
Encryption
Stream ciphers
Block ciphers
Chosen plaintext attacks
Message integrity
Message integrity from universal hashing
Message integrity from collision resistant hashing
Authenticated encryption
Public key cryptography
Public key tools
Public key encryption
Chosen ciphertext secure public-key encryption
Digital signatures
Fast signatures from one-way functions
Elliptic curve cryptography and pairings
Post-quantum cryptography: lattices and isogenies
Analysis of number theoretic assumptions
Protocols
Protocols for identification and login
Identification and signatures from sigma protocols
Proving properties in zero-knowledge
Modern proof systems
Authenticated key exchange
Two-party and multi-party secure computation
Basic number theory
Basic probability theory
Basic complexity theory
Probabilistic algorithms
Others related eBooks about A Graduate Course in Applied Cryptography
Think Complexity
Download free course Think Complexity, pdf file on 228 pages by Allen Downey....
GNU SED
Download free course GNU SED, pdf file on 100 pages by Sundeep Agarwal....
Discovering the STM32 Microcontroller
This book is intended as a hands-on manual for learning how to design systems using the STM32 F1 family of micro-controllers. It was written to support a junior-level computer science course at Indiana University. ...
Principles of Computer System Design: An Introduction
This is a unique, ambitious, and important book. It is about computer system design principles, and not the usual mechanics of how things work. These principles are typically embedded in research papers....
The Haskell School of Music
Download free course The Haskell School of Music, pdf file on 441 pages by Paul Hudak, Donya Quick....
Open Data Structures
Download free course Open Data Structures, pdf file on 336 pages by Pat Morin....
Made With Creative Commons
Download free course Made With Creative Commons, pdf file on 176 pages by Paul Stacey, Sarah Hinchliff Pearson....
Reinforcement Learning: An Introduction, Second Edition
Reinforcement Learning (RL), one of the most active research areas in artificial intelligence, is a computational approach to learning whereby an agent tries to maximize the total amount of reward it receives while interacting with a complex, uncertain environment. In Reinforcement Learning, Richard...
Programming from the Ground Up: An Introduction to Programming using Linux Assembly Language
Programming from the Ground Up uses Linux assembly language to teach new programmers the most important concepts in programming. It takes you a step at a time through these concepts: * How the processor views memory * How the processor operates * How programs interact with the operating system * H...
SAT/SMT by Example
Download free course SAT/SMT by Example, pdf file on 585 pages by Dennis Yurichev....