|
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