TOC 
Network Working GroupS. Josefsson
Internet-DraftSJD AB
Intended status: InformationalSeptember 14, 2010
Expires: March 18, 2011 


PKCS #5 Password Based Key Derivation Function 2 (PBKDF2) Test Vectors
draft-josefsson-pbkdf2-test-vectors-06

Abstract

This document contains test vectors for the Public-Key Cryptography Standards (PKCS) #5 Password Based Key Derivation Function 2 (PBKDF2) with the Hash-based Message Authentication Code (HMAC) Secure Hash Algorithm (SHA-1) pseudorandom function.

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). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.

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 March 18, 2011.

Copyright Notice

Copyright (c) 2010 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 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.  PBKDF2 HMAC-SHA1 Test Vectors
3.  Acknowledgements
4.  Copying conditions
5.  Security Considerations
6.  IANA Considerations
7.  References
    7.1.  Normative References
    7.2.  Informative References
§  Author's Address




 TOC 

1.  Introduction

The Public-Key Cryptography Standards (PKCS) #5 (Kaliski, B., “PKCS #5: Password-Based Cryptography Specification Version 2.0,” September 2000.) [RFC2898] Password Based Key Derivation Function 2 (PBKDF2) is used by several protocols to derive encryption keys from a password.

For example, Salted Challenge Response Authentication Mechanism (SCRAM) (Newman, C., Menon-Sen, A., Melnikov, A., and N. Williams, “Salted Challenge Response Authentication Mechanism (SCRAM) SASL and GSS-API Mechanisms,” July 2010.) [RFC5802] uses PBKDF2 with Hash-based Message Authentication Code (HMAC) (Krawczyk, H., Bellare, M., and R. Canetti, “HMAC: Keyed-Hashing for Message Authentication,” February 1997.) [RFC2104] and Secure Hash Algorithm (SHA-1) (National Institute of Standards and Technology, “Secure Hash Standard,” April 1995.) [FIPS.180‑1.1995].

Test vectors for the algorithm were not included in the original specification, but are often useful for implementers. This document addresses the shortcoming.



 TOC 

2.  PBKDF2 HMAC-SHA1 Test Vectors

The input strings below are encoded using ASCII (American National Standards Institute, “Coded Character Set - 7-bit American Standard Code for Information Interchange,” 1986.) [ANSI.X3‑4.1986]. The sequence "\0" (without quotation marks) means a literal ASCII NUL value (1 octet).

  Input:
    P = "password" (8 octets)
    S = "salt" (4 octets)
    c = 1
    dkLen = 20

  Output:
    DK = 0c 60 c8 0f 96 1f 0e 71
         f3 a9 b5 24 af 60 12 06
         2f e0 37 a6             (20 octets)
  Input:
    P = "password" (8 octets)
    S = "salt" (4 octets)
    c = 2
    dkLen = 20

  Output:
    DK = ea 6c 01 4d c7 2d 6f 8c
         cd 1e d9 2a ce 1d 41 f0
         d8 de 89 57             (20 octets)
  Input:
    P = "password" (8 octets)
    S = "salt" (4 octets)
    c = 4096
    dkLen = 20

  Output:
    DK = 4b 00 79 01 b7 65 48 9a
         be ad 49 d9 26 f7 21 d0
         65 a4 29 c1             (20 octets)
  Input:
    P = "password" (8 octets)
    S = "salt" (4 octets)
    c = 16777216
    dkLen = 20

  Output:
    DK = ee fe 3d 61 cd 4d a4 e4
         e9 94 5b 3d 6b a2 15 8c
         26 34 e9 84             (20 octets)
  Input:
    P = "passwordPASSWORDpassword" (24 octets)
    S = "saltSALTsaltSALTsaltSALTsaltSALTsalt" (36 octets)
    c = 4096
    dkLen = 25

  Output:
    DK = 3d 2e ec 4f e4 1c 84 9b
         80 c8 d8 36 62 c0 e4 4a
         8b 29 1a 96 4c f2 f0 70
         38                      (25 octets)
  Input:
    P = "pass\0word" (9 octets)
    S = "sa\0lt" (5 octets)
    c = 4096
    dkLen = 16

  Output:
    DK = 56 fa 6a a7 55 48 09 9d
         cc 37 d7 f0 34 25 e0 c3 (16 octets)


 TOC 

3.  Acknowledgements

Barry Brachman and Love Hörnquist Åstrand confirmed the test vectors (using independent implementations) and pointed out a mistake in the salt octet length count.



 TOC 

4.  Copying conditions

This document should be considered a Code Component and is thus available under the BSD license.



 TOC 

5.  Security Considerations

The security considerations in [RFC2898] (Kaliski, B., “PKCS #5: Password-Based Cryptography Specification Version 2.0,” September 2000.) apply. This document does not introduce any new security considerations.



 TOC 

6.  IANA Considerations

None.



 TOC 

7.  References



 TOC 

7.1. Normative References

[ANSI.X3-4.1986] American National Standards Institute, “Coded Character Set - 7-bit American Standard Code for Information Interchange,” ANSI X3.4, 1986.
[RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, “HMAC: Keyed-Hashing for Message Authentication,” RFC 2104, February 1997 (TXT).
[RFC2898] Kaliski, B., “PKCS #5: Password-Based Cryptography Specification Version 2.0,” RFC 2898, September 2000 (TXT).
[FIPS.180-1.1995] National Institute of Standards and Technology, “Secure Hash Standard,” FIPS PUB 180-1, April 1995.


 TOC 

7.2. Informative References

[RFC5802] Newman, C., Menon-Sen, A., Melnikov, A., and N. Williams, “Salted Challenge Response Authentication Mechanism (SCRAM) SASL and GSS-API Mechanisms,” RFC 5802, July 2010 (TXT).


 TOC 

Author's Address

  Simon Josefsson
  SJD AB
  Hagagatan 24
  Stockholm 113 47
  SE
Email:  simon@josefsson.org
URI:  http://josefsson.org/