| 
    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