IEEE Std 1363-2000 IEEE Standard Specifications for Public-Key Cryptography -Description
Abstract: This standard specifies common public-key cryptographic techniques, including mathematical primitives for secret value (key) derivation, public-key encryption, and digital signatures, and cryptographic schemes based on those primitives. It also specifies related cryptographic parameters, public keys, and private keys. The purpose of this standard is to provide a reference for specifications on a variety of techniques from which applications may select.
Keywords: digital signature, encryption, key agreement, public-key cryptography
Content
1. Overview
1.1 Scope
1.2 Purpose
1.3 Organization of the document
1.3.1 Structure of the main document
1.3.2 Structure of the annexes
2. References
3. Definitions
4. Types of cryptographic techniques
4.1 General model
4.2 Primitives
4.3 Schemes
4.4 Additional methods
4.5 Table summary
5. Mathematical conventions
5.1 Mathematical notation
5.2 Bit strings and octet strings
5.3 Finite fields
5.3.1 Prime finite fields
5.3.2 Characteristic two finite fields
5.4 Elliptic curves and points
5.5 Data type conversion
5.5.1 Converting between integers and bit strings (I2BSP and BS2IP)
5.5.2 Converting between bit strings and octet strings (BS2OSP and OS2BSP)
5.5.3 Converting between integers and octet strings (I2OSP and OS2IP)
5.5.4 Converting between finite field elements and octet strings (FE2OSP and OS2FEP)
5.5.5 Converting finite field elements to integers (FE2IP)
6. Primitives based on the discrete logarithm problem
6.1 The DL setting
6.1.1 Notation
6.1.2 DL domain parameters
6.1.3 DL key pairs
6.2 Primitives
6.2.1 DLSVDP-DH
6.2.2 DLSVDP-DHC
6.2.3 DLSVDP-MQV
6.2.4 DLSVDP-MQVC
6.2.5 DLSP-NR
6.2.6 DLVP-NR
6.2.7 DLSP-DSA
6.2.8 DLVP-DSA
7. Primitives based on the elliptic curve discrete logarithm problem
7.1 The EC setting
7.1.1 Notation
7.1.2 EC domain parameters
7.1.3 EC key pairs
7.2 Primitives
7.2.1 ECSVDP-DH
7.2.2 ECSVDP-DHC
7.2.3 ECSVDP-MQV
7.2.4 ECSVDP-MQVC
7.2.5 ECSP-NR
7.2.6 ECVP-NR
7.2.7 ECSP-DSA
7.2.8 ECVP-DSA
8. Primitives based on the integer factorization problem
8.1 The IF setting
8.1.1 Notation
8.1.2 Domain parameters in the IF family
8.1.3 Keys in the IF family
8.2 Primitives
8.2.1 IF private-key operation
8.2.2 IFEP-RSA
8.2.3 IFDP-RSA
8.2.4 IFSP-RSA1
8.2.5 IFVP-RSA1
8.2.6 IFSP-RSA2
8.2.7 IFVP-RSA2
8.2.8 IFSP-RW
8.2.9 IFVP-RW
9. Key agreement schemes
9.1 General model
9.2 DL/ECKAS-DH1
9.2.1 Scheme options
9.2.2 Key agreement operation
9.3 DL/ECKAS-DH2
9.3.1 Scheme options
9.3.2 Key agreement operation
9.4 DL/ECKAS-MQV
9.4.1 Scheme options
9.4.2 Key agreement operation
10. Signature schemes
10.1 General model
10.2 DL/ECSSA
10.2.1 Scheme options
10.2.2 Signature generation operation
10.2.3 Signature verification operation
10.3 IFSSA
10.3.1 Scheme options
10.3.2 Signature generation operation
10.3.3 Signature verification operation
11. Encryption schemes
11.1 General model
11.2 IFES
11.2.1 Scheme options
11.2.2 Encryption operation
11.2.3 Decryption operation
12. Message-encoding methods
12.1 Message-encoding methods for signatures with appendix
12.1.1 EMSA1
12.1.2 EMSA2
12.2 Message-encoding methods for encryption
12.2.1 EME1
13. Key derivation functions
13.1 KDF1
14. Auxiliary functions
14.1 Hash functions
14.1.1 SHA-1
14.1.2 RIPEMD-160
14.2 Mask generation functions
14.2.1 MGF1
Annex A Number-theoretic background
A.1 Integer and modular arithmetic: overview
A.1.1 Modular arithmetic
A.1.2 Prime finite fields
A.1.3 Composite moduli
A.1.4 Modular square roots
A.2 Integer and modular arithmetic: algorithms
A.2.1 Modular exponentiation
A.2.2 The extended Euclidean algorithm
A.2.3 Evaluating Jacobi symbols
A.2.4 Generating Lucas sequences
A.2.5 Finding square roots modulo a prime
A.2.6 Finding square roots modulo a power of 2
A.2.7 Computing the order of a given integer modulo a prime
A.2.8 Constructing an integer of a given order modulo a prime
A.2.9 An implementation of IF signature primitives
A.3 Binary finite fields: overview
A.3.1 Finite fields
A.3.2 Polynomials over finite fields
A.3.3 Binary finite fields
A.3.4 Polynomial basis representations
A.3.5 Normal basis representations
A.3.6 Checking for a Gaussian normal basis
A.3.7 The multiplication rule for a Gaussian normal basis
A.3.8 A Multiplication algorithm for a Gaussian normal basis
A.3.9 Binary finite fields (continued from A.3.3)
A.3.10 Parameters for common key sizes
A.4 Binary finite fields: algorithms
A.4.1 Squaring and square roots
A.4.2 The squaring matrix
A.4.3 Exponentiation
A.4.4 Division
A.4.5 Trace
A.4.6 Half-trace
A.4.7 Solving quadratic equations over GF (2m)
A.5 Polynomials over a finite field
A.5.1 Exponentiation modulo a polynomial
A.5.2 GCDs over a finite field
A.5.3 Factoring polynomials over GF (p) (special case)
A.5.4 Factoring polynomials over GF (2) (special case)
A.5.5 Checking polynomials over GF (2r) for irreducibility
A.5.6 Finding a root in GF (2m) of an irreducible binary polynomial
A.5.7 Embedding in an extension field
A.6 General normal bases for binary fields
A.6.1 Checking for a normal basis
A.6.2 Finding a normal basis
A.6.3 Computing the multiplication matrix
A.6.4 Multiplication
A.7 Basis conversion for binary fields
A.7.1 The change-of-basis matrix
A.7.2 The field polynomial of a Gaussian normal basis
A.7.3 Computing the change-of-basis matrix
A.7.4 Conversion to a polynomial basis
A.8 Bases for binary fields: tables and algorithms
A.8.1 Basis table
A.8.2 Random search for other irreducible polynomials
A.8.3 Irreducibles from other irreducibles
A.8.4 Irreducibles of even degree
A.8.5 Irreducible trinomials
A.9 Elliptic curves: overview
A.9.1 Introduction
A.9.2 Operations on elliptic curves
A.9.3 Elliptic curve cryptography
A.9.4 Analogies with DL
A.9.5 Curve orders
A.9.6 Representation of points
A.10 Elliptic curves: algorithms
A.10.1 Full addition and subtraction (prime case)
A.10.2 Full addition and subtraction (binary case)
A.10.3 Elliptic scalar multiplication
A.10.4 Projective elliptic doubling (prime case)
A.10.5 Projective elliptic addition (prime case)
A.10.6 Projective elliptic doubling (binary case)
A.10.7 Projective elliptic addition (binary case)
A.10.8 Projective full addition and subtraction
A.10.9 Projective elliptic scalar multiplication
A.11 Functions for elliptic curve parameter and key generation
A.11.1 Finding a random point on an elliptic curve (prime case)
A.11.2 Finding a random point on an elliptic curve (binary case)
A.11.3 Finding a point of large prime order
A.11.4 Curve orders over small binary fields
A.11.5 Curve orders over extension fields
A.11.6 Curve orders via subfields
A.12 Functions for elliptic curve parameter and key validation