What you will learn in Elliptic Curve Cryptography for Developers
Chapter by chapter
Chapter 10: Description of polynomial division using Euclid’s algorithm
What you learn in chapter 10 →Chapter 19: Proving knowledge and keeping secrets: Zero knowledge using pairings
What you learn in chapter 19 →Concepts explained in this book
- group orderElliptic curve cardinality is the number of points on an elliptic curve over a specified finite field, including the point at infinity.
- field extensionA field extension is a field that contains a given base field as a subfield and adds elements needed for further algebraic operations.
- irreducible polynomialAn irreducible polynomial is a nonconstant polynomial that cannot be factored into lower-degree nonconstant polynomials over the specified coefficient field.
- elliptic curve over finite fieldAn elliptic curve over a finite field extension is an elliptic curve whose coefficients and points are defined over an extension field of a finite field.
- j-invariantAn invariant of an elliptic curve that classifies its isomorphism class over an algebraic closure up to standard equivalence.
- point orderThe base point order is the smallest positive scalar whose multiple of the designated base point is the point at infinity.
- quadratic residueA polynomial quadratic residue is a polynomial congruent to the square of another polynomial modulo a specified polynomial modulus.
- quadratic arithmetic programA quadratic arithmetic program is a polynomial constraint representation of an arithmetic computation in which the computation's validity is expressed through quadratic polynomial relationships.
- root of unityA root of unity is an element of a field whose positive integer power equals one.
- embedding degreeThe embedding degree is the smallest positive integer k for which a specified subgroup order divides the multiplicative-group order of the extension field of degree k.
- zero-knowledge proofA zero-knowledge proof is a cryptographic protocol that lets a prover demonstrate that a statement is true or that secret information is known without revealing the secret information itself.
- cross termA cross term is a product involving distinct Lagrange interpolant functions that arises when sums of those functions are multiplied.
- multi-signatureA multi-signature is a cryptographic signature scheme in which multiple signers jointly authorize a message or produce a signature representing their participation.
- common reference stringA common reference string is publicly available setup data shared by the prover and verifier in a cryptographic proof system.
- accountable subgroup multi-signatureA digital signature scheme in which a selected subset of registered participants collectively signs a message and the resulting signature identifies that subset for verification.
- Hilbert class polynomialA Hilbert class polynomial is a polynomial whose roots are j-invariants associated with elliptic curves having complex multiplication by a specified imaginary quadratic order.
- elliptic curve point multiplicationElliptic-curve point multiplication multiplies a point by an integer scalar through repeated point addition and doubling.
- base pointA designated elliptic-curve point whose scalar multiples generate the relevant cyclic subgroup.
- toxic wasteToxic waste is secret randomness and intermediate setup data whose disclosure can compromise the security assumptions of a cryptographic reference string.
- elliptic curveElliptic curve mathematics is the study of algebraic curves defined by nonsingular cubic equations and the mathematical structures on their points.
- elliptic curve point additionElliptic-curve point addition combines two curve points according to the curve's group law to produce another curve point.
- membership keyA membership key is a node-specific cryptographic key computed from the node's row of membership-matrix components and used in that node's signature.
- point at infinityThe point at infinity is the distinguished ideal point included in an elliptic curve's group structure and represented here by the coordinate pair (0, 0).
- square rootA square root is an element whose square equals a specified element in a field or other algebraic system.
- twist curveA twist curve is an elliptic curve related to a given elliptic curve by a field transformation while retaining the same j-invariant and related structural properties.
- public keyA public key is a cryptographic value distributed openly and paired with a private key for encryption, signature verification, or related public-key operations.
- quadratic nonresidueA quadratic nonresidue modulo n is a number that is not congruent to the square of any integer modulo n.
- polynomial functionA polynomial is an algebraic expression formed from coefficients, variables, and nonnegative integer powers combined by addition and multiplication.
- finite fieldA finite field is a field containing a finite number of elements, with addition, subtraction, multiplication, and division by nonzero elements defined within the set.
- zk-SNARKA zk-SNARK is a zero-knowledge SNARK that proves knowledge of a witness without revealing the witness.
- Weil pairingThe Weil pairing is a bilinear, alternating map from pairs of elliptic-curve torsion points to roots of unity in a suitable field extension.
- field primeA field prime is the prime modulus that defines the elements and arithmetic of a prime field used for elliptic-curve computations.
- polynomial divisionPolynomial division expresses a dividend as a divisor times a quotient plus a remainder of lower degree than the divisor.
- nondegeneracyThe property that a pairing does not map every admissible pair of inputs to the identity element.
- MQV key exchange algorithmA full authenticated elliptic-curve MQV key-agreement algorithm that combines static and ephemeral key pairs.
- discriminantAn arithmetic value identifying a quadratic order or related algebraic object that determines a Hilbert class polynomial.
- private keyThe secret key in an asymmetric cryptographic key pair that is controlled by its owner and used for signing or decryption operations.
- polynomial resultantThe resultant of two polynomials is an algebraic scalar that vanishes exactly when the polynomials share a root in an appropriate extension field.
- elliptic curve cofactorThe integer ratio of an elliptic-curve group's order to the order of its selected cryptographic subgroup.
- Tate pairingA Tate pairing is a bilinear elliptic-curve pairing that maps suitable point groups into a multiplicative group of a finite-field extension.
- polynomial pseudo-divisionPolynomial pseudo-division is a division procedure that avoids coefficient inverses by scaling intermediate results by powers of the divisor's leading coefficient.
- modulusThe modulus is the positive integer that defines the equivalence classes and wraparound behavior in modular arithmetic.
- rhoThe rho parameter is the ratio of the logarithmic size of the finite-field modulus to the logarithmic size of the relevant subgroup order in pairing-friendly curve construction.
- signature verificationThe cryptographic procedure that checks whether a signature satisfies the verification equation for specified data and public keys.
- lagrange polynomialA Lagrange polynomial is a polynomial basis function that equals one at its associated interpolation point and zero at the other interpolation points.
- polynomial degreeThe degree of a polynomial is the greatest exponent of the variable having a nonzero coefficient.
- cyclic groupA group generated by a single element, so every group element is an integer multiple or power of that generator.
- ephemeral keyA cryptographic key generated for temporary use in a session or protocol execution rather than retained as a long-term identity key.
- proof of knowledgeA proof of knowledge is a cryptographic proof that demonstrates a prover possesses a witness satisfying a specified statement.
- Fermat’s Little TheoremFermat's little theorem states that a number raised to the appropriate power modulo a prime satisfies a fixed congruence, and its field-extension analogue gives the corresponding finite-field exponent relation.
- modular square rootA square root modulo a prime is an element whose square is congruent to a given element modulo a prime modulus.
- elliptic-curve discrete logarithm problemThe elliptic curve discrete logarithm problem is the problem of recovering a scalar from a base point and its scalar multiple on an elliptic curve.
- Euclid's algorithmThe Euclidean algorithm computes the greatest common divisor of two elements by repeatedly replacing a pair with the divisor and remainder.
- Miller's algorithmAn iterative algorithm for computing an elliptic-curve pairing by evaluating the required rational functions through doubling and addition steps.
- prime fieldA prime field is a finite field with a prime number of elements, commonly represented by the integers modulo a prime.
- greatest common divisorThe greatest common divisor of polynomials is a highest-degree polynomial that divides each given polynomial, defined up to multiplication by a nonzero constant.
- trace of FrobeniusThe integer trace parameter that determines the point count of an elliptic curve over a finite field through the relation #E = p + 1 − t.
- PARI/GPlibpari is the programmable library underlying PARI/GP, providing its computational number-theory functionality for use by other programs.
- Schnorr signatureA public-key digital-signature scheme based on a discrete-logarithm proof of knowledge using a commitment, hash-derived challenge, and response.
- digital signatureA digital signature is a cryptographic value produced with a private key that authenticates data and can be checked with the corresponding public key.
- witnessA witness variable is a secret wire value that supplies private information satisfying a proof statement.
- prime numberA prime number is a positive integer greater than one that has no positive divisors other than one and itself.
- polynomial contentThe content of a polynomial is the common factor of its coefficients, typically normalized according to the coefficient domain.
- Tonelli-Shanks algorithmThe Tonelli-Shanks algorithm computes modular square roots, especially modulo an odd prime.
- monic polynomialA monic polynomial is a nonzero polynomial whose leading coefficient is 1.
- polynomial multiplicationPolynomial multiplication multiplies polynomial expressions and combines terms having equal powers.
- G1G1 is the designated elliptic-curve group serving as the first input group in a pairing whose inputs are written G1 × G2.
- G2G2 is the group of elliptic-curve points on the field-extension curve used as one input group for a pairing.
- proof statementA proof statement is the public claim and associated public inputs whose validity a cryptographic proof establishes.
- multiplication tableA lookup table is a precomputed collection of values arranged for retrieval according to an associated key or index.
- ECDSAThe Elliptic Curve Digital Signature Algorithm, a public-key signature scheme that generates and verifies signatures using elliptic-curve group operations and message hashes.
- elliptic-curve pointAn elliptic curve point is a solution point of an elliptic curve equation over a specified field.
- Ben-Or algorithmBen-Or's algorithm is a randomized or coefficient-search procedure for testing whether a polynomial over a finite field is irreducible.
- complex multiplicationComplex multiplication is a method for constructing elliptic curves with specified endomorphism properties using complex-analytic or algebraic number theory.
- wireA wire is a computational-circuit connection that carries an input or computed value between arithmetic gates.
- GNU Multiple Precision Arithmetic LibraryGNU Multiple Precision Arithmetic Library (GMP) is a software library that provides arbitrary-precision arithmetic for integers, rational numbers, and floating-point values.
- wire variableA wire value is the scalar assigned to a variable or wire in an arithmetic circuit or quadratic arithmetic program.
- key exchangeA cryptographic process in which parties establish a common secret over a network without transmitting that secret directly.
- random pointA random point is an elliptic-curve point selected according to a randomization procedure rather than a deterministic fixed choice.
- inverseAn inverse is a polynomial that multiplies with another polynomial to produce the multiplicative identity modulo a specified irreducible polynomial.
- ellinitellinit is a PARI/GP function that initializes an elliptic-curve data structure from curve coefficients and a defining field or modulus.
- square and multiplySquare-and-multiply is an exponentiation algorithm that repeatedly squares and conditionally multiplies according to the binary representation of the exponent.
- extension degreeThe degree of a finite field extension is the exponent relating the extension size p^k to the size p of its base field.
- bilinearityBilinearity is the property that a map is linear in each of its two arguments, converting addition in either argument into multiplication or addition in the output according to the map's codomain operation.
- Diffie–Hellman key exchangeA public-key key-agreement protocol that lets parties establish a shared secret over an insecure network using private values and exchanged public values.
- membership matrixA matrix whose entries encode the key-membership contributions used to derive each subgroup member's membership key.
- public key aggregationThe operation of combining the public keys of selected signers into a single group element by group addition.
- power methodA modular square-root technique that obtains the root by exponentiating when the prime modulus is congruent to 3 modulo 4.
- elliptic-curve cryptographyElliptic curve cryptography is public-key cryptography based on algebraic operations over elliptic curves.
- elliptic curve data embeddingElliptic curve data embedding is a technique for mapping arbitrary data to a point on an elliptic curve by adjusting a candidate x-coordinate until the curve equation has a square-root solution.
- associate value functionAn MQV protocol function that derives an auxiliary value from a public key, including a truncated x-coordinate in the NIST variant.
- identity elementAn identity element is an element that leaves another element unchanged under a specified operation, such as zero for addition or one for multiplication.
- pairing sweepA pairing sweep is a systematic enumeration of parameter values for pairing-friendly curve formulas followed by tests for acceptable prime and size conditions.
- h0H0 is a BLS hash-to-curve function that maps a message to a point in the G1 subgroup.
- h1H1 is a BLS hash function that maps concatenated public keys to an integer modulo the large prime subgroup order.
- resultant algorithmAn algorithm that computes the resultant of two polynomials through content removal, pseudo-division, and coefficient updates.
- security levelA security level is an estimate of the computational work, commonly expressed in bits, required to defeat a cryptographic system.
- subgroup sizeSubgroup size is the size or bit length of a subgroup, often a large prime-order subgroup of an elliptic-curve group.
- ordinary elliptic curveAn elliptic curve in the ordinary class, as distinguished from supersingular elliptic curves by its arithmetic properties over finite fields.
- statement variableA statement variable is a public wire value that specifies the publicly known part of a proof statement.
- elliptic curve groupAn elliptic curve group is a group formed by the points of an elliptic curve under the curve's algebraically defined group operation.
- proverA prover is the party in a proof protocol that claims a statement or knowledge of secret information and supplies evidence for that claim.
- verifierA verifier is the party in a proof protocol that checks whether the prover's claim and evidence satisfy the required conditions.
- double-and-add algorithmThe double-and-add algorithm computes scalar multiplication using repeated point doubling and conditional point addition while processing the scalar's binary representation.
- complex planeThe complex plane is the two-dimensional plane in which complex numbers are represented by their real and imaginary components.
- extended Euclidean algorithmThe extended Euclidean algorithm computes a greatest common divisor together with coefficients expressing it as a linear combination of the input elements.
- rootA polynomial root is a value in the relevant algebraic structure that satisfies a polynomial equation by making it equal to zero.
- mpz_invertmpz_invert is a GMP function that computes a modular multiplicative inverse when one exists.
- mpz_tmpz_t is GMP's type for representing arbitrary-precision integers.
- mod_addmod_add is a book-defined routine that computes the sum of two values modulo a modulus.
- Legendre symbolThe Legendre symbol is a value in {−1, 0, 1} indicating whether an integer is a quadratic residue modulo an odd prime, whether it is divisible by that prime, or whether it is a quadratic nonresidue.
- polynomial normalizationPolynomial normalization scales every coefficient by the inverse of the leading coefficient to make a polynomial monic.
- subset signatureA subset signature is a multi-signature produced by a specified subset of the participants in an accountable subgroup multi-signature scheme.
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.
