DRAFT Special Publication 800-56A, Recommendation for Pair-Wise Key
Total Page:16
File Type:pdf, Size:1020Kb
The attached DRAFT document (provided here for historical purposes) has been superseded by the following publication: Publication Number: NIST Special Publication (SP) 800-56A Revision 2 Title: Recommendation for Pair-Wise Key-Establishment Schemes Using Discrete Logarithm Cryptography Publication Date: 05/13/2013 • Final Publication: https://doi.org/10.6028/NIST.SP.800-56Ar2 (which links to http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar2.pdf). • Information on other NIST Computer Security Division publications and programs can be found at: http://csrc.nist.gov/ The following information was posted with the attached DRAFT document: Aug 20, 2012 SP 800-56 A Rev.1 DRAFT Recommendation for Pair-Wise Key-Establishment Schemes Using Discrete Logarithm Cryptography (Draft Revision) NIST announces the release of draft revision of Special Publication 800-56A, Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography. SP 800-56A specifies key-establishment schemes based on the discrete logarithm problem over finite fields and elliptic curves, including several variations of Diffie-Hellman and MQV key establishment schemes. The revision is made on the March 2007 version. The main changes are listed in Appendix D. Please submit comments to 56A2012rev-comments @ nist.gov with "Comments on SP 800-56A (Revision)" in the subject line. The comment period closes on October 31, 2012. NIST Special Publication 800-56A Recommendation for Pair-Wise August 2012 Key-Establishment Schemes Using Discrete Logarithm Cryptography (Draft Revision) Elaine Barker, Lily Chen, Miles Smid and Allen Roginsky C O M P U T E R S E C U R I T Y Abstract This Recommendation specifies key-establishment schemes based on the discrete logarithm problem over finite fields and elliptic curves, including several variations of Diffie-Hellman and MQV key establishment schemes. KEY WORDS: assurances; Diffie-Hellman; elliptic curve cryptography; finite field cryptography; key agreement; key confirmation; key derivation; key establishment; key management; key recovery; key transport; MQV. 2 Acknowledgements The authors gratefully acknowledge and appreciate the contributions by Rich Davis of the National Security Agency and Dustin Moody of the National Institute of Standards and Technology. 3 Authority This document has been developed by the National Institute of Standards and Technology (NIST) in furtherance of its statutory responsibilities under the Federal Information Security Management Act (FISMA) of 2002, Public Law 107-347. NIST is responsible for developing standards and guidelines, including minimum requirements, for providing adequate information security for all agency operations and assets, but such standards and guidelines shall not apply to national security systems. This Recommendation has been prepared for use by federal agencies. It may be used by nongovernmental organizations on a voluntary basis and is not subject to copyright. (Attribution would be appreciated by NIST.) Nothing in this document should be taken to contradict standards and guidelines made mandatory and binding on federal agencies by the Secretary of Commerce under statutory authority. Nor should these guidelines be interpreted as altering or superseding the existing authorities of the Secretary of Commerce, Director of the OMB, or any other federal official. Conformance testing for implementations of this Recommendation will be conducted within the framework of the Cryptographic Module Validation Program (CMVP) and the Cryptographic Algorithm Validation Program(CAVP). The requirements of this Recommendation are indicated by the word “shall.” Some of these requirements may be out-of-scope for CMVP or CAVP validation testing, and thus are the responsibility of entities using, implementing, installing or configuring applications that incorporate this Recommendation. 4 Table of Contents 1. Introduction............................................................................................................ 12 2. Scope and Purpose ............................................................................................... 12 3. Definitions, Symbols and Abbreviations ............................................................. 13 3.1 Definitions...................................................................................................................... 13 3.2 Symbols and Abbreviations ........................................................................................... 17 4. Overview of Key-Establishment Schemes........................................................... 22 4.1 Key Establishment Preparations .................................................................................... 23 4.2 Key Agreement Process................................................................................................. 25 4.3 DLC-based Key Transport Process................................................................................ 27 5. Cryptographic Elements ....................................................................................... 29 5.1 Cryptographic Hash Functions ...................................................................................... 29 5.2 Message Authentication Code (MAC) Algorithm......................................................... 29 5.2.1 MAC Tag Computation for Key Confirmation ................................................. 29 5.2.2 MAC Tag Verification for Key Confirmation................................................... 30 5.3 Random Number Generation ......................................................................................... 30 5.4 Nonces........................................................................................................................... 30 5.5 Domain Parameters........................................................................................................ 31 5.5.1 Domain Parameter Generation........................................................................... 31 5.5.1.1 FFC Domain Parameter Generation.................................................... 31 5.5.1.2 ECC Domain Parameter Generation................................................... 32 5.5.2 Assurances of Domain Parameter Validity........................................................ 34 5.5.3 Domain Parameter Management........................................................................ 34 5.6 Key-Establishment Key Pairs ........................................................................................ 34 5.6.1 Key-Pair Generation .......................................................................................... 35 5.6.1.1 FFC Key-Pair Generation ................................................................... 35 5.6.1.2 ECC Key-Pair Generation................................................................... 35 5.6.2 Required Assurances.......................................................................................... 35 5 5.6.2.1 Assurances Required by the Key Pair Owner..................................... 36 5.6.2.1.1 Owner Assurance of Correct Generation............................. 38 5.6.2.1.2 Owner Assurance of Private-Key Validity .......................... 38 5.6.2.1.3 Owner Assurance of Public-Key Validity ........................... 38 5.6.2.1.4 Owner Assurance of Pair-wise Consistency........................ 39 5.6.2.1.5 Owner Assurance of Possession of the Private Key ............ 41 5.6.2.2 Assurances Required by a Public Key Recipient................................ 41 5.6.2.2.1 Recipient Assurance of Static Public-Key Validity............. 42 5.6.2.2.2 Recipient Assurance of Ephemeral Public-Key Validity..... 43 5.6.2.2.3 Recipient Assurance of the Owner’s Possession of a Static Private Key........................................................................... 43 5.6.2.2.4 Recipient Assurance of the Owner’s Possession of an Ephemeral Private Key ........................................................ 45 5.6.2.3 Public Key Validation Routines.......................................................... 46 5.6.2.3.1 FFC Full Public-Key Validation Routine ............................ 46 5.6.2.3.2 ECC Full Public-Key Validation Routine............................ 46 5.6.2.3.3 ECC Partial Public-Key Validation Routine........................ 47 5.6.3 Key Pair Management........................................................................................ 48 5.6.3.1 Common Requirements on Static and Ephemeral Key Pairs.............. 48 5.6.3.2 Specific Requirements on Static Key Pairs ........................................ 48 5.6.3.3 Specific Requirements on Ephemeral Key Pairs ................................ 49 5.7 DLC Primitives .............................................................................................................. 50 5.7.1 Diffie-Hellman Primitives ................................................................................. 50 5.7.1.1 Finite Field Cryptography Diffie-Hellman (FFC DH) Primitive........ 50 5.7.1.2 Elliptic Curve Cryptography Cofactor Diffie-Hellman (ECC CDH) Primitive 51 5.7.2 MQV Primitives................................................................................................. 51 5.7.2.1 Finite Field Cryptography MQV (FFC MQV) Primitive ................... 51 5.7.2.1.1 MQV2 Form of the FFC MQV Primitive............................ 52 5.7.2.1.2 MQV1 Form of the FFC MQV Primitive............................ 53 6 5.7.2.2 ECC MQV Associate Value Function