liveBook · Manning

What you will learn in Elliptic Curve Cryptography for Developers

by Michael Rosing

Chapter by chapter

Chapter 1: Pairings over elliptic curves in cryptography

1.1 What is elliptic curve cryptography? · 1.2 Why use elliptic curve cryptography? · 1.3 Elliptic curves come to public key cryptography · 1.3.1 General description of key exchange · 1.3.2 Digital signature algorithms explained · 1.3.3 How multiple people can sign the same document · 1.3.4 Zero knowledge, or how to keep a secret and prove you have one · 1.4 Who this book is for · 1.5 Summary

What you learn in chapter 1 →

Chapter 2: Description of finite field mathematics

2.1 Basic mathematics of finite fields · 2.2 Elliptic curves form groups of points over a finite field · 2.3 Basic subroutines for finite field arithmetic · 2.4 Computing quadratic residues over a prime field · 2.5 Computing the square root mod p · 2.6 Answers to exercises · 2.7 Summary

What you learn in chapter 2 →

Chapter 3: Explaining the core of elliptic curve mathematics

3.1 Elliptic curve algebra · 3.1.1 Point representation · 3.1.2 Elliptic curves over finite fields · 3.1.3 Point addition · 3.1.4 Point multiplication · 3.1.5 Embedding data on a curve · 3.2 Elliptic curve subroutines · 3.2.1 Code to represent curves and points · 3.2.2 Code for point addition · 3.2.3 Code for point multiplication · 3.3 Code for embedding data on a curve · 3.4 Miscellaneous routines · 3.5 Answers to exercises · 3.6 Summary

What you learn in chapter 3 →

Chapter 4: Key exchange using elliptic curves

4.1 Diffie-Hellman algorithm description · 4.1.1 Elliptic curve math · 4.1.2 Hash function · 4.1.3 Key generation · 4.1.4 Computing shared keys · 4.2 MQV algorithm · 4.2.1 Elliptic curve math for the MQV algorithm · 4.2.2 MQV code · 4.3 Example test code · 4.3 Full ECC MQV · 4.3.1 Test curves · 4.3.2 Diffie-Hellman test routines · 4.3.3 MQV test routine · 4.4 Answers to exercises · 4.5 Summary

What you learn in chapter 4 →

Chapter 5: Prime field elliptic curve digital signatures explained

5.1 Schnorr digital signature · 5.1.1 Schnorr elliptic curve math · 5.1.2 Schnorr sign subroutine · 5.1.3 Schnorr verify subroutine · 5.1.4 Schnorr test example · 5.2 NIST elliptic curve digital signature algorithm · 5.2.1 ECDSA sign subroutine · 5.2.2 ECDSA verify subroutine · 5.2.3 ECDSA example code · 5.3 Answers to exercises · 5.4 Summary

What you learn in chapter 5 →

Chapter 6: Finding good cryptographic elliptic curves

6.1 PARI/gp for elliptic curves · 6.1.1 Starting PARI/gp · 6.1.2 PARI/gp elliptic curves over finite fields · 6.1.3 Libpari with elliptic curves · 6.2 General ordinary curves · 6.2.1 Variables and initialization · 6.2.2 Main loop · 6.3 Bad curves · 6.4 Answers to exercises · 6.5 Summary

What you learn in chapter 6 →

Chapter 7: Description of finite field polynomial math

7.1 Field extension · 7.2 Polynomial setup · 7.3 Polynomial addition · 7.4 Polynomial utilities · 7.5 Answer to exercise · 7.6 Summary

What you learn in chapter 7 →

Chapter 8: Multiplication of polynomials explained

8.1 Defining irreducible polynomials · 8.2 Irreducible polynomial as modulus · 8.3 Building the matrix · 8.4 Multiplication code · 8.4.1 Creating the multiplication table · 8.4.2 Polynomial multiply · 8.5 Miscellaneous multiply routines · 8.6 Answers to exercises · 8.7 Summary

What you learn in chapter 8 →

Chapter 9: Computing powers of polynomials

9.1 Using square and multiply to rapidly compute powers · 9.2 Polynomial powers code for general exponents · 9.3 Explicit polynomial example · 9.4 Powers of field prime · 9.5 Answer to exercise · 9.6 Summary

What you learn in chapter 9 →

Chapter 10: Description of polynomial division using Euclid’s algorithm

10.1 Euclid’s algorithm and gcd · 10.2 Inversion and division of polynomials · 10.3 Euclid’s algorithm code · 10.4 Gcd code · 10.5 Inversion modulo a prime polynomial · 10.6 Division modulo a prime polynomial · 10.7 Answers to exercises · 10.8 Summary

What you learn in chapter 10 →

Chapter 11: Creating irreducible polynomials

11.1 Basic theory of irreducible polynomials · 11.2 Code for finding irreducible polynomials · 11.3 Answer to exercise · 11.4 Summary

What you learn in chapter 11 →

Chapter 12: Taking square roots of polynomials

12.1 Mathematics for square root modulo a prime polynomial · 12.2 Code for square roots modulo a prime polynomial · 12.2.1 Content routine · 12.2.2 Pseudo-division routine · 12.2.3 Resultant subroutine · 12.2.4 Quadratic residue · 12.2.5 Polynomial square root routine · 12.3 Answer to exercise · 12.4 Summary

What you learn in chapter 12 →

Chapter 13: Finite field extension curves described

13.1 Field extension properties · 13.2 Elliptic curve routines · 13.2.1 Polynomial curve setup · 13.2.2 Polynomial curve utilities · 13.2.3 Polynomial curve point embedding · 13.2.4 Polynomial curve random point · 13.2.5 Polynomial elliptic curve addition · 13.2.6 Polynomial elliptic curve point multiplication · 13.3 Tiny example · 13.3.1 Tiny example variables · 13.3.2 Tiny example base curve · 13.3.3 Tiny example field extension curve · 13.4 Answer to exercise · 13.5 Summary

What you learn in chapter 13 →

Chapter 14: Finding low embedding degree elliptic curves

14.1 Security of field extensions for elliptic curve pairing · 14.2 Low embedding degree · 14.3 Complex multiplication · 14.4 Factoring a Hilbert class polynomial · 14.5 Code for finding pairing-friendly curves · 14.5.1 Pairing sweep · 14.5.2 Finding the curve · 14.6 Answer to exercise · 14.7 Summary

What you learn in chapter 14 →

Chapter 15: General rules of elliptic curve pairing explained

15.1 Mathematical rules of elliptic curve pairings · 15.1.1 Elliptic curve point pairing rule of bilinearity · 15.1.2 Nondegeneracy rule with the point at infinity · 15.2 Algorithms for pairing · 15.2.1 Function \(h_{P,Q}(R)\) · 15.2.2 Miller’s algorithm · 15.3 Subroutine \(h_{P,Q}\) · 15.4 Miller’s algorithm code · 15.5 Answers to exercises · 15.6 Summary

What you learn in chapter 15 →

Chapter 16: Weil pairing defined

16.1 Weil pairing formula · 16.2 Pairing subroutines · 16.3 Example code with tiny curves · 16.4 Answer to exercise · 16.5 Summary

What you learn in chapter 16 →

Chapter 17: Tate pairing defined

17.1 Tate pairing mathematics · 17.2 The Tate pairing subroutine described · 17.3 Testing the Tate pairing using a tiny example · 17.4 Answer to exercise · 17.5 Summary

What you learn in chapter 17 →

Chapter 18: Exploring BLS multi-signatures

18.1 Introduction to multi-signatures · 18.2 Multi-signatures with key aggregation · 18.2.1 The hash functions used in key aggregation algorithms · 18.2.2 Key aggregation algorithm for multi-signatures · 18.2.3 Digital multi-signature mathematics and verification algorithm · 18.3 Multi-signatures code description · 18.3.1 Key generation code explained · 18.3.2 Hash functions code description · 18.3.3 Computing the public key hash \(a_j\) · 18.3.4 Multi-signature and verification subroutines · 18.4 Accountable subgroup multi-signatures · 18.5 Description of the subgroup multi-signatures code · 18.6 Aggregate BLS signatures example program · 18.6.1 Initial test parameters · 18.6.2 Multi-signatures simulated key generation test program · 18.6.3 Multi-signatures signing and verifying simulation · 18.6.4 Creating subgroup multi-signatures simulation program · 18.7 Answers to exercises · 18.8 Summary

What you learn in chapter 18 →

Chapter 19: Proving knowledge and keeping secrets: Zero knowledge using pairings

19.1 SNARK defined · 19.2 Concept of the quadratic arithmetic program explained · 19.3 Lagrange interpolant functions described · 19.4 The common reference string · 19.5 zk-SNARK example code · 19.5.1 Common subroutines in snarkbase.c · 19.5.2 Program to compute QAP parameters · 19.5.3 Common reference string creation · 19.5.4 Creating the proof for a record · 19.5.5 Zero-knowledge verification of a record · 19.6 Answers to exercises · 19.7 Summary

What you learn in chapter 19 →

Concepts explained in this book

These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.