|
A Cryptome DVD is offered by Cryptome. Donate $25 for a DVD of the Cryptome 11-years archives of 41,000 files from June 1996 to June 2007 (~4.4 GB). Click Paypal or mail check/MO made out to John Young, 251 West 89th Street, New York, NY 10024. Archives include all files of cryptome.org, jya.com, cartome.org, eyeball-series.org and iraq-kill-maim.org. Cryptome offers with the Cryptome DVD an INSCOM DVD of about 18,000 pages of counter-intelligence dossiers declassified by the US Army Information and Security Command, dating from 1945 to 1985. No additional contribution required -- $25 for both. The DVDs will be sent anywhere worldwide without extra cost. |
3 November 2007
[Federal Register: November 2, 2007 (Volume 72, Number 212)][Notices] [Page 62212-62220] From the Federal Register Online via GPO Access [wais.access.gpo.gov] [DOCID:fr02no07-33] ----------------------------------------------------------------------- DEPARTMENT OF COMMERCE National Institute of Standards and Technology [Docket No.: 070911510-7512-01] Announcing Request for Candidate Algorithm Nominations for a New Cryptographic Hash Algorithm (SHA-3) Family AGENCY: National Institute of Standards and Technology, Commerce. ACTION: Notice and request for nominations for candidate hash algorithms. ----------------------------------------------------------------------- SUMMARY: This notice solicits nominations from any interested party for candidate algorithms to be considered for SHA-3, and specifies how to submit a nomination package. It presents the nomination requirements and the minimum acceptability requirements of a ``complete and proper'' candidate algorithm submission. The evaluation criteria that will be used to appraise the candidate algorithms are also described. DATES: Candidate algorithm nomination packages must be received by October 31, 2008. Further details are available in section 2. ADDRESSES: Candidate algorithm submission packages should be sent to: Ms. Shu-jen Chang, Information Technology Laboratory, Attention: Hash Algorithm Submissions, 100 Bureau Drive--Stop 8930, National Institute of Standards and Technology, Gaithersburg, MD 20899-8930. FOR FURTHER INFORMATION CONTACT: For general information, send e-mail to hash-function@nist.gov. For questions related to a specific submission package, contact Ms. Shu-jen Chang, National Institute of Standards and Technology, 100 Bureau Drive--Stop 8930, Gaithersburg, MD 20899-8930; telephone: 301-975-2940 or via fax at 301-975-8670, e-mail: shu-jen.chang@nist.gov. SUPPLEMENTARY INFORMATION: This notice contains the following sections: 1. Background 2. Requirements for Candidate Algorithm Submission Packages 2.A Cover Sheet 2.B Algorithm Specifications and Supporting Documentation 2.C Optical Media 2.D Intellectual Property Statements/Agreements/Disclosures 2.E General Submission Requirements 2.F Technical Contacts and Additional Information 3. Minimum Acceptability Requirements 4. Evaluation Criteria 4.A Security 4.B Cost 4.C Algorithm and Implementation Characteristics 5. Initial Planning for the First SHA-3 Candidate Conference 6. Plans for the Candidate Evaluation Process 6.A Overview 6.B Round 1 Technical Evaluation 6.C Round 2 Technical Evaluation 7. Miscellaneous Authority: This work is being initiated pursuant to NIST's responsibilities under the Federal Information Security Management Act (FISMA) of 2002, Public Law 107-347. 1. Background Modern, collision resistant hash functions were designed to create small, fixed size message digests so that a digest could act as a proxy for a possibly very large variable length message in a digital signature algorithm, such as RSA or DSA. These hash functions have since been widely used for many other ``ancillary'' applications, including hash-based message authentication codes, pseudo random number generators, and key derivation functions. A series of related hash functions have been developed, such as MD4, MD5, SHA-0, SHA-1 and the SHA-2 family, (which includes 224, 256, 384 and 512-bit variants); all of these follow the Merkle-Damgard construct. NIST began the standardization of the SHA hash functions in 1993, with a specification of SHA-0 in the Federal Information Processing Standards Publication (FIPS PUBS) 180, the Secure Hash Standard; subsequent revisions of the FIPS have replaced SHA-0 with SHA-1 and added the SHA-2 family in FIPS 180-1 and FIPS 180-2, respectively. Recently, cryptanalysts have found collisions on the MD4, MD5, and SHA-0 algorithms; moreover, a method for finding SHA-1 collisions with less than the expected amount of work has been published, although at this time SHA-1 collisions have not yet been demonstrated. Although there is no specific reason to believe that a practical attack on any of the SHA-2 family of hash functions is imminent, a successful collision attack on an algorithm in the SHA-2 family could have catastrophic effects for digital signatures. NIST has decided that it is prudent to develop a new hash algorithm to augment and revise FIPS 180-2. The new hash algorithm will be referred to as ``SHA-3'', and will be developed through a public competition, much like the development of the Advanced Encryption Standard (AES). NIST intends that SHA-3 will specify an unclassified, publicly disclosed algorithm(s), which is available worldwide without royalties or other intellectual property restrictions, and is capable of protecting sensitive information for decades. Following the close of the submission period, NIST intends to make all ``complete and proper'' (as defined in section 3) submissions publicly available for review and comment. NIST does not currently plan to withdraw SHA-2 or remove it from the revised Secure Hash Standard; however, it is intended that SHA-3 can be directly substituted for SHA-2 in current applications, and will significantly improve the robustness of NIST's overall hash algorithm toolkit. Therefore, the submitted algorithms for SHA-3 must provide message digests of 224, 256, 384 and 512 bits to allow substitution for the SHA-2 family. The 160-bit hash value produced by SHA-1 is becoming too small to use for digital signatures, therefore, a 160-bit replacement hash algorithm is not contemplated. Many cryptographic applications that are currently specified in FIPS and NIST Special Publications require the use of a NIST-approved hash algorithm. These publications include:FIPS 186-2, Digital Signature Standard; FIPS 198, The Keyed-Hash Message Authentication Code (HMAC); SP 800-56A, Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography; and SP 800-90, Recommendation for Random Number Generation Using Deterministic Random Bit Generators (DRBGs). [[Page 62213]] The SHA-3 algorithm is expected to be suitable for these applications. Since SHA-3 is expected to provide a simple substitute for the SHA- 2 family of hash functions, certain properties of the SHA-2 hash functions must be preserved, including the input parameters; the output sizes; the collision resistance, preimage resistance, and second- preimage resistance properties; and the ``one-pass'' streaming mode of execution. However, it is also desirable that the selected SHA-3 algorithm offer features or properties that exceed, or improve upon, the SHA-2 hash functions. For example, the selected SHA-3 algorithm may offer efficient integral options, such as randomized hashing, that fundamentally improve security, or it may be parallelizable, more efficient to implement on some platforms, more suitable for certain applications, or may avoid some of the incidental ``generic'' properties (such as length extension) of the Merkle-Damgard construct that often result in insecure applications. NIST expects SHA-3 to have a security strength that is at least as good as the hash algorithms currently specified in FIPS 180-2, and that this security strength will be achieved with significantly improved efficiency. NIST also desires that the SHA-3 hash functions will be designed so that a possibly successful attack on the SHA-2 hash functions is unlikely to be applicable to SHA-3. The SHA-3 family should be suitably flexible for a wide variety of implementations, even though it may not operate with optimal efficiency in each and every potential application. For interoperability, NIST strongly desires a single hash algorithm family (that is, that different size message digests be internally generated in as similar a manner as possible) to be selected for SHA-3. However, if more than one suitable candidate family is identified, and each provides significant advantages, NIST may consider recommending more than one family for inclusion in the revised Secure Hash Standard. 2. Requirements for Candidate Algorithm Submission Packages Candidate algorithm nomination packages must be received by October 31, 2008. Submission packages received before August 31, 2008 will be reviewed for completeness by NIST; the submitters will be notified of any deficiencies by September 30, 2008, allowing time for deficient packages to be amended by the submission deadline. No amendments to packages will be permitted after the submission deadline. Requests for the withdrawal of submission packages will only be honored until the submission deadline. Due to the specific requirements of the submission package such as Intellectual Property Statements / Agreements / Disclosures as specified in section 2.D, e-mail submissions will not be accepted for these statements or for the initial submission package. However, e-mail submissions of amendments to the initial submission package will be allowed prior to the submission deadline. ``Complete and proper'' submission packages received in response to this notice will be posted at http://www.nist.gov/hash-competition for inspection. To be considered as a ``complete'' submission package (and continue further in the hash algorithm consideration process), candidate algorithm submission packages must contain the following (as described in detail below): Cover Sheet. Algorithm Specifications and Supporting Documentation. Optical Media. Intellectual Property Statements/Agreements/Disclosures. General Submission Requirements. Each of these items is discussed in detail below. 2.A Cover Sheet A cover sheet shall contain the following information: Name of the submitted algorithm. Principal submitter's name, e-mail address, telephone, fax, organization, and postal address. Name(s) of auxiliary submitter(s). Name of the algorithm inventor(s)/developer(s). Name of the owner, if any, of the algorithm. (normally expected to be the same as the submitter). Signature of the submitter. (optional) Backup point of contact (with telephone, fax, postal address, e-mail address). 2.B Algorithm Specifications and Supporting Documentation 2.B.1 A complete written specification of the algorithm shall be included, consisting of all necessary mathematical operations, equations, tables, diagrams, and parameters that are needed to implement the algorithm. The document shall include design rationale (e.g., the rationale for choosing the specific number of rounds for computing the hashes) and an explanation for all the important design decisions that are made. It should also include 1) any security argument that is applicable, such as a security reduction proof, and 2) a preliminary analysis, such as possible attack scenarios for collision-finding, first-preimage-finding, second-preimage-finding, length-extension attack, multicollision attack, or any cryptographic attacks that have been considered and their results. In addition, the submitted algorithm may include a tunable security parameter, such as the number of rounds, which would allow the selection of a range of possible security/performance tradeoffs. If such a parameter is provided, the submission document must specify a recommended value for each digest size specified in Section 3, with justification. The submission should also provide any bounds that the designer feels are appropriate for the parameter, including a bound below which the submitter expects cryptanalysis to become practical. The tunable parameter may be used to produce weakened versions of the submitted algorithm for analysis, and permit NIST to select a different security/performance tradeoff than originally specified by the submitter, in light of discovered attacks or other analysis, and in light of the alternative algorithms that are available. NIST will consult with the submitter of the algorithm if it plans to select that algorithm for SHA-3, but with a different parameter value than originally specified by the submitter. Submissions that do not include such a parameter should include a weakened version of the submitted algorithm for analysis, if at all possible. NIST is open to, and encourages, submissions of hash functions that differ from the traditional Merkle-Damgard model, using other structures, chaining modes, and possibly additional inputs. However, if a submitted algorithm cannot be used directly in current applications of hash functions as specified in FIPS or NIST Special Publications, the submitted algorithm must define a compatibility construct with the same input and output parameters as the SHA hash functions such that it can replace the existing SHA functions in current applications without any loss of security. The replacement of all SHA functions in any standardized application by this compatibility construct shall require no additional modification of the standard application beyond the alteration of any algorithm specific parameters already present in the standard, such as algorithm name and message block length. Submissions may optionally define other variants, constructs, or iterated structures for specific useful applications. [[Page 62214]] It should be noted that standards which refer to a block length are generally designed with the Merkle-Damgard model in mind, and a number of applications make additional assumptions--for example HMAC implicitly assumes that the message block length is larger than the message digest size. This is not to say that NIST requires the candidate algorithm to satisfy these assumptions, but in cases where the appropriate choice for a parameter such as message block length is not obvious, the submission package must specify a value that will preserve the security properties and functionality of any of the current standard applications. 2.B.2 A statement of the algorithm's estimated computational efficiency and memory requirements in hardware and software across a variety of platforms shall be included. At a minimum, the submitter shall state efficiency estimates for the ``NIST SHA-3 Reference Platform'' (specified in section 6.B) and for 8-bit processors. (Efficiency estimates for other platforms may be included at the submitters' discretion.) These estimates shall each include the following information, at a minimum: a. Description of the platform used to generate the estimate, in sufficient detail so that the estimates could be verified in the public evaluation process (e.g., for software running on a PC, include information about the processor, clock speed, memory, operating system, etc.). For hardware estimates, a gate count (or estimated gate count) should be included. b. Speed estimate for the algorithm on the platform specified in section 6.B. At a minimum, the number of clock cycles required to: 1. Generate one message digest, and 2. Set up the algorithm (e.g., build internal tables) shall be specified for each message digest size required in the Minimum Acceptability Requirements section (section 3) of this announcement. c. Any available information on tradeoffs between speed and memory. 2.B.3 A series of Known Answer Tests (KATs) and Monte Carlo Tests (MCTs) shall be included as specified below. All of these KAT and MCT values shall be submitted electronically, in separate files, on a CD- ROM or DVD as described in section 2.C.3. Each file shall be clearly labeled with header information listing: 1. Algorithm name, 2. Test name, 3. Description of the test, and 4. Message digest size being tested. All values within the file shall be clearly labeled (e.g., message, message digest, etc.), and shall be in the exact format specified by NIST at http://www.nist.gov/hash-competition. a. All applicable KATs shall be included that can be used to exercise various features of the algorithm. A set of KATs shall be included for each message digest size specified in section 3. Required KATs include: i. If the candidate algorithm calculates intermediate values (e.g., internal rounds) for a message digest computation, then the submitter shall include known answers for those intermediate values for a 1-block and a 2-block message digest computation for each of the required message digest sizes. Examples of providing such intermediate values for the SHA family of hash functions are available at: http://www.nist.gov/CryptoToolkitExamples . ii. If tables are used in the algorithm, then a set of KAT vectors shall be included to exercise every table entry. Note: The submitter is encouraged to include any other KATs that exercise different features of the algorithm (e.g., for permutation tables, etc.). The purposes of these tests shall be clearly described in the file containing the test values. b. Four MCTs, to be specified at the web site indicated below, shall be included, with message and message digest values, for each of the message digest sizes specified in section 3. A link to a description of the required tests will be available at http://www.nist.gov/hash-competition. Required submission data for the MCTs will also be found at that location. 2.B.4 A statement of the expected strength (i.e., work factor) of the algorithm shall be included, along with any supporting rationale, for each of the security requirements specified in sections 4.A.ii and 4.A.iii, and for each message digest size specified in section 3. 2.B.5 An analysis of the algorithm with respect to known attacks (e.g., differential cryptanalysis) and their results shall be included. To prevent the existence of possible ``trap-doors'' in an algorithm, the submitter shall explain the provenance of any constants or tables used in the algorithm, with justification of why these were not chosen to make some attack easier. The submitter shall provide a list of known references to any published materials describing or analyzing the security of the submitted algorithm. The submission of copies of these materials (accompanied by a waiver of copyright or permission from the copyright holder for the SHA-3 public evaluation purposes) is encouraged. 2.B.6 A statement that lists and describes the advantages and limitations of the algorithm shall be included. Such advantages and limitations may address the ability to: a. Implement the algorithm in various environments, including--but not limited to: 8-bit processors (e.g., smartcards), voice applications, satellite applications, or other environments where low power, constrained memory, or limited real-estate are factors. To demonstrate the efficiency of a hardware implementation of the algorithm, the submitter may include a specification of the algorithm in a nonproprietary Hardware Description Language (HDL). b. Use the algorithm with message digest sizes other than those specified in section 3. If the submitter believes that the algorithm has certain features that are deemed advantageous, then these should be listed and described, along with supporting rationale. Some examples of these features might include, for example: Mathematically (rather than empirically) designed tables, statistical basis for inter-round mixing, etc. 2.C Optical Media All electronic data shall be provided on a single CD-ROM or DVD labeled with the submitter's name, and the algorithm name. 2.C.1 Reference Implementation A reference implementation shall be submitted in order to promote the understanding of how the candidate algorithm may be implemented. This implementation shall consist of source code written in ANSI C; appropriate comments should be included in the code, and the code should clearly map to the algorithm description included under section 2.B.1. Since this implementation is intended for reference purposes, clarity in programming is more important than efficiency. The reference implementation shall be capable of fully demonstrating the operation of the candidate algorithm. The reference implementation shall support all message digest sizes specified in section 3. Additionally, it must support all other message digest sizes that are claimed to be supported by the algorithm. NIST will specify a set of cryptographic service calls, namely a cryptographic API, for the ANSI C implementations, which will be made available at http://www.nist.gov/hash-competition. All ANSI C submissions shall implement that API so that the [[Page 62215]] NIST test system can be compatible with all the submissions. Separate source code for implementing the required KATs with the reference implementation shall also be included. This code shall be able to process input specified in the format indicated by NIST (on the web site as referred to under section 2.B.3) and run the required tests. The reference implementation shall be provided in a directory labeled: \Reference Implementation. 2.C.2 Optimized Implementations Two optimized implementations of the candidate algorithm shall be submitted--one implementation that is optimized for a 32-bit platform, and another for a 64-bit platform. The optimized implementations shall be specified in the ANSI C programming language. These implementations will be evaluated on 32- and 64-bit platforms. General Requirements for Both Optimized Implementations: Both of the optimized implementations shall support the message digest sizes specified in section 3. Separate source code for implementing the required KATs and MCTs with the optimized implementations shall also be included. This code shall be able to process the input specified in the format indicated by NIST (on the Web site as referred to under section 2.B.3) and run the required tests. The submitter shall provide the optimized implementations in two separate directories labeled: [cir] \Optimized--32 bit [cir] \Optimized--64 bit respectively. Additionally, submitters may, at their discretion, submit revised optimized implementations (for both the 32- and 64-bit implementations) for use in the Round 2 evaluation process, allowing additional time for improvements. These must be received prior to the beginning of the Round 2 evaluation; submitters will be notified of the specific deadline, as appropriate. Note that the optimized implementations on file with NIST at the close of the initial submission period will be the ones used by NIST in the Round 1 evaluation. 2.C.3 Test Values--Known Answer Tests and Monte Carlo Tests The files on the CD-ROM or DVD shall contain all of the test values required under section 2.B.3 of this announcement. That section includes descriptions of the required tests, as well as a list of the values that must be provided. The required format for the test vectors will be specified by NIST at http://www.nist.gov/hash-competition. The test values shall be provided in a directory labeled: \KAT-- MCT. 2.C.4 Supporting Documentation To facilitate the electronic distribution of submissions to all interested parties, copies of all written materials must also be submitted in electronic form in PDF. Submitters are encouraged to use the thumbnail and bookmark features, to have a clickable table of contents (if applicable), and to include other links within the PDF as appropriate. This electronic version of the supporting documentation shall be provided in a directory labeled: [bs ]Supporting Documentation. 2.C.5 General Requirements for Optical Media For the portions of the submissions that may be provided electronically, the information shall be provided on a single CD-ROM or DVD using the ISO 9660 format. This disc shall have the following structure: [bs ]README. [bs ]Reference Implementation. [bs ]Optimized--32 bit. [bs ]Optimized--64 bit. [bs ]KAT--MCT. [bs ]Supporting Documentation. The ``README'' file shall list all files that are included on this disc with a brief description of each. All optical media presented to NIST must be free of viruses or other malicious code. The submitted media will be scanned for the presence of such code. If malicious code is found, NIST will notify the submitter and ask that a clean version of the optical media be re- submitted. NIST will define a set of cryptographic service calls for the ANSI C implementations. These calls will be used by the NIST test software to make appropriate calls to the optimized and reference implementations, so that the test software does not have to be rewritten for each submitted algorithm. Therefore, both the optimized and reference implementations are required to conform to these specific calls. The implementations shall be supplied in source code so that NIST can compile and link them appropriately with the test software. The two selected sets of required calls will be available at the following location: http://www.nist.gov/hash-competition. NIST intends to make these available within three months after publication of this notice. 2.D Intellectual Property Statements/Agreements/Disclosures Each submitted algorithm must be available worldwide on a royalty