Internet DRAFT - draft-dang-turner-sha-512-224-256

draft-dang-turner-sha-512-224-256





Individual draft                                                Q. Dang
Internet Draft                                                     NIST
Intended status: <Informational>                              S. Turner
Expires: November 22, 2013                                         IECA
                                                           May 22, 2013
                                                



              Recommended Usages of SHA-512/224, SHA-512/256
               draft-dang-turner-sha-512-224-256-00.txt


Abstract

   This document provides recommendations on the use of the secure hash
   functions SHA-512/224 and SHA-512/256 specified in FIPS 180. SHA-
   512/224 and SHA-512/256 are SHA-512-based and truncated to match the
   output size of SHA-224 and SHA-256. On 64-bit platforms, the SHA-512-
   truncated algorithms provide better performance than their comparably
   sized SHA-224 and SHA-256 variants.

Status of this Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups. Note that other
   groups may also distribute working documents as Internet-Drafts. 
   
   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/1id-abstracts.html.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time. It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on November 22, 2013.

Copyright Notice

   Copyright (c) 2013 IETF Trust and the persons identified as the
   document authors. All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of



Dang & Turner         Expires November 22, 2013                [Page 1]

Internet-Draft   SHA-512/224 and SHA-512/256                   May 2013


   publication of this document. Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document. Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of 
   the Trust Legal Provisions and are provided without warranty as 
   described in the Simplified BSD License.

Table of Contents


1. Introduction..................................................... 2
2. Conventions used in this document.................... ........... 3
3. Usage Recommendation for Digital Signatures with SHA-512/224 and 
   SHA-512/256...................................................... 3
4. SHA-512/224 and SHA-512/256 in HMAC ............................. 5
5. Security Considerations.......................................... 5
6. IANA Considerations.............................................. 5
7. Conclusions...................................................... 5
8. References ...................................................... 5
 8.1. Normative References ......................................... 5                                                                             5
 8.2. Informative References ....................................... 6                                                                             6
9. Acknowledgments.................................................. 6
10. Authors'Addresses............................................... 7

1. Introduction

   NIST specified two hash algorithms, SHA-512/224 and SHA-512/256, in
   the hash algorithms standard: FIPS 180 [FIPS180]. These two hash
   algorithms have the same performance characteristics of SHA-512 
   since the only differences between them and SHA-512 are the initial
   hash values (IVs) and the truncation step to reduce the 512-bit last
   internal hash value to become 224 or 256-bit final hash value for
   SHA-512/224 and SHA-512/256 respectively.
   
   SHA-512 consumes roughly 10-45% fewer clock cycles per byte than 
   SHA-256 as shown from performance-comparison data for SHA-256 and
   SHA-512 on many different 64-bit platforms by [SHA256]. This means
   that SHA-512 runs roughly 10-80% faster than SHA-256 and SHA-224
   on these 64-bit machines, which are becoming more prevalent. 
   Also, [512/256] provides performance comparison data for SHA-256
   and SHA-512 on a specific 2010 Intel architecture, the Xeon X5670
   processor. The data shows that SHA-512 consumes roughly 37% fewer
   clock cycles per byte than SHA-256. Put another way, SHA-512 is
   roughly 60% faster (more efficient) than SHA-256 on this machine.



Dang & Turner          Expires November 22,2013                [Page 2]

Internet-Draft   SHA-512/224 and SHA-512/256                   May 2013


   This internet draft discusses the choices between using SHA-224 and
   SHA-256 verses SHA-512/224 and SHA-512/256 in digital signature
   applications and HMACs based on their performance advantages to each
   other.

2.  Conventions used in this document

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].

3. Usage Recommendation for Digital Signatures with SHA-512/224 and SHA-
   512/256

   Obviously, SHA-512/224 and SHA-512/256 may be substituted for SHA-224
   and SHA-256 respectively in protocols and applications.

   One of the common uses of hash functions is in digital signature
   applications. There are three NIST-approved digital signature
   algorithms defined in [FIPS186]: RSA, DSA and ECDSA.

   When a 1024 or 2048-bit RSA digital signature algorithm is used, any
   of the approved hash functions can be used since their biggest hash
   value is only 512 bits (when SHA-512 is used). Different padding
   methods have different required fields in the data block that is
   signed by the RSA private key and the RSA moduli (1024 or 2048 bits).
   The total size of these required fields and the hash value is not
   greater than 1024 bits. Therefore, RSA digital signature applications
   will not have any technical issues in deploying any of the approved
   hash algorithms including SHA-512. Therefore, SHA-512/224 and SHA-
   512/256 are not preferred over SHA-512 for RSA digital signature
   applications. However, if a RSA digital signature application in a
   system that is a 64-bit platform, SHA-512/224 and SHA-512/256 are
   preferred over SHA-224 and SHA-256 respectively due to their
   performance advantage over these latter two hash functions.

   If communicating points in a protocol are mainly to be run on 64-bit
   platforms, SHA-512/224 or SHA-512/256 should be used in 2048-bit RSA
   digital signature application. It is important to note that 1024-bit
   RSA digital signature generation is disallowed by NIST after 2013,
   see SP 800-131A [131A] for more details.

   If digital signature algorithm is negotiable in a protocol where
   communicating points may be run on both 64-bit and smaller (32-bit
   for example) platforms, RSA digital signature with either SHA-512/224
   or SHA-512/256 should be an option if RSA digital signature algorithm
   is supported. For example, if both ends of a communication run on 64-


Dang & Turner          Expires November 22,2013                [Page 3]

Internet-Draft   SHA-512/224 and SHA-512/256                   May 2013


   bit platforms, they may want to use RSA with SHA-512/224 or SHA-
   512/256. If both ends of the communication run on 32-(or smaller) bit
   platforms (constrained environments), they may prefer to use RSA with
   SHA-224 or SHA-256 instead. And, if one end runs on 64-bit platform
   and the other end runs on a 32-(or smaller) bit platform, then it
   depends on the situation for which what digital signature algorithm:
   RSA with SHA-512/224 (or SHA-512/256) or RSA with SHA-224 (or SHA-
   256) should be used (from negotiation). A server running on a 64-bit
   machine that handles a lot of computation with many clients may
   prefer to use RSA with SHA-512/224 or SHA-512/256, but a constrained
   client may prefer to use RSA with SHA-224 or SHA-256 instead.



   For DSA, there are two key pair sizes, which are NIST-approved:
   (L=2048, N=224) and (L=3072, N=256) (the key pair size: (L = 1024, N
   = 160) is not NIST-allowed to generate new digital signatures after
   the end of 2013). In DSA digital signature generation process (see
   FIPS 186 for details), if the hash value of the message is greater
   than N (size of p), only N left-most bits of the hash value will be
   used in the signing operation. Therefore, there is no security
   reasons to deploy a hash function which produces hash output larger
   than N (in bits) such as SHA-512. So, when getting performance
   advantage from SHA-512/224 and SHA-512/256 over SHA-224 and SHA-256
   on the platforms which are optimized for 64-bit operations is a good
   thing, SHA-512/224 and SHA-512/256 should be used for (L=2048, N=224)
   and (L=3072, N=256) DSA digital signature applications respectively.

   If communicating points in a protocol are mainly to be run on 64-bit
   platforms, SHA-512/224 and SHA-512/256 should be used in (L=2048,
   N=224) and (L=3072, N=256) DSA digital signature applications
   respectively.

   If digital signature algorithm is negotiable in a protocol where
   communicating points may be run on both 64-bit and smaller (32-bit
   for example) platforms, DSA with SHA-512/224 or SHA-512/256 should be
   an option if DSA digital signature algorithm is supported

   ECDSA digital signature algorithms are specified in FIPS 186. Their
   NIST-approved key sizes and hash functions are described in SPs 800-
   57, part 1 [57] and 800-131A [131A]. After 2013, only curves with n
   at least 224 bits are NIST-approved for digital signature generation.
   In ECDSA, if the hash function produces the hash value bigger than
   the size of n, then only the n left-most bits of the hash value are
   used in computing and verifying the ECDSA digital signatures.




Dang & Turner          Expires November 22,2013                [Page 4]

Internet-Draft   SHA-512/224 and SHA-512/256                   May 2013


   If communicating points in a protocol are mainly to be run on 64-bit
   platforms, SHA-512/224 and SHA-512/256 should be used in 224 and 256-
   bit ECDSA digital signature applications respectively.

   If digital signature algorithm is negotiable in a protocol where
   communicating points may be run on both 64-bit and smaller (32-bit
   for example) platforms, 224 or 256-bit ECDSA with SHA-512/224 or SHA-
   512/256 respectively should be an option if ECDSA digital signature
   algorithm is supported.

4. SHA-512/224 and SHA-512/256 in HMAC

   Besides being used in digital signature applications, hash functions
   are also used in HMAC [RFC2104]. If an exact 224-bit or 256-bit HMAC
   value is needed, SHA-512/224 and SHA-512/256 should be used instead
   of truncating SHA-512's hash output. And, HMAC with SHA-512/224 or
   SHA-512/256 is strongly recommended for protocols where communicating
   parties are mainly to be run on 64-bit platforms over HMAC with SHA-
   224 or SHA-256 respectively.

5. Security Considerations

   Note that SHA-512/224 and SHA-512/256 provide 112 and 128 bits of
   collision resistance for digital signatures. See NIST SP 800-107
   [107] for more discussion about security of these two hash functions.

6. IANA Considerations

   None.

7. Conclusions

   Will be added later.

8. References



8.1. Normative References

   [FIPS180]   Federal Information Processing Standard (FIPS) 180-4,
                Secure Hash Standard, National Institute of Standards
                and Technology, March 2012.

   [FIPS186]   Federal Information Processing Standard (FIPS) 186-3,
                Digital Signature Standard (DSS), National Institute of
                Standards and Technology, June 2009.


Dang & Turner          Expires November 22,2013                [Page 5]

Internet-Draft   SHA-512/224 and SHA-512/256                   May 2013


   [RFC2104]    Krawczyk, H., Bellare, M. and R. Canetti, "HMAC: Keyed-
                Hashing for Message Authentication", RFC 2104, February
                1997.



   [RFC2119]   Bradner, S., "Key words for use in RFCs to Indicate
                Requirement Levels", BCP 14, RFC 2119, March 1997.





8.2. Informative References

   [SHA256] http://bench.cr.yp.to/xweb-hash/long-sha256.html

   [512/256]Shay Gueron, Simon Johnson and Jesse Walker, SHA-512/256,
           2011 Eighth International Conference on Information
           Technology: New Generat 7.

   [57]    NIST Special Publication (SP) 800-57, Part 1, Recommendation
           for Key Management: General,(Revision 3) July 2012.

   [107]    NIST SP 800-107, Revision 1, Recommendation for Applications
           Using Approved Hash Algorithms, August 2012.

   [131A]   E. Barker and A. Roginsky, "Transitions: Recommendation for
           Transitioning the Use of Cryptographic Algorithms and Key
           Lengths", NIST Special Publication 800-131A, January 2011.

9. Acknowledgments

   Will be added later.















Dang & Turner          Expires November 22,2013                [Page 6]

Internet-Draft   SHA-512/224 and SHA-512/256                   May 2013


10. Authors' Addresses

   Quynh Dang
   NIST
   100 Bureau Drive, Stop 8930
   Gaithersburg, MD 20899-8930
   USA

   EMail: quynh.dang@nist.gov

   Sean Turner
   IECA, Inc.
   3057 Nutley Street, Suite 106
   Fairfax, VA 22031    USA

   EMail: turners@ieca.com

































Dang & Turner          Expires November 22,2013                [Page 7]