JunHyuk Song Radha Poovendran University of Washington Jicheol Lee INTERNET DRAFT Samsung Electronics Expires: April 26, 2006 October 25 2005 The AES-CMAC-PRF-128 Algorithm for the Internet Key Exchange Protocol (IKE) draft-songlee-aes-cmac-prf-128-01.txt Status of This Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of 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. 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." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Copyright Notice Copyright (C) The Internet Society (2005). Abstract Some implementations of IP Security (IPsec) may want to use a pseudo-random function derived from the Advanced Encryption Standard (AES). This memo describes such an algorithm, called AES-CMAC- PRF-128. Song et al. Expires April 2006 [Page 1] Internet Draft October 2005 1. Introduction [AES-CMAC] describes a method to use the Advanced Encryption Standard (AES) as a message authentication code (MAC) whose output is 128 bits long. 128 bits output is useful as a long-lived pseudo- random function (PRF) in either IKE version 1 or version 2. This document specifies PRF that support fixed and variable key sizes for IKEv2 [IKEv2] Key Derivation Function (KDF) and authentication. 2. Basic definitions Key (K) Variable length key for AES-CMAC-PRF-128, Denoted by K. truncate(K,16) Truncate K(key) in msb-first order with 16 bytes. Padding (K,16) Padding 0 in lsb-first order with 16 bytes. 3. The AES-CMAC-PRF-128 Algorithm The AES-CMAC-PRF-128 algorithm is identical to AES-CMAC defined in [AES-CMAC] except that the 128 bits key length restriction is removed. IKEv2 [IKEv2] uses PRFs for multiple purposes, most notably for generating keying material and authentication of the the IKE_SA. The IKEv2 specification differentiates between PRFs with fixed key sizes and those with variable key sizes When using the PRF described in this document with IKEv2, the PRF is considered to be fixed-length for generating keying material but variable-length for authentication. The key for AES-CMAC-PRF-128 is created as follows: - If the key is exactly 128 bits long, use is as-is - If the key has fewer than 128 bits, lengthen it to exactly 128 bits by padding it on the right with zero bits. - If the key is 129 bits or longer, shorten it to exactly 128 bits by truncating msb-first order with 128 bits. Song et al. Expires April 2006 [Page 2] Internet Draft October 2005 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Algorithm AES-CMAC-PRF-128 + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + + + Input : VK ( Variable length key ) + + : M ( Message to be authenticated ) + + : len ( length of message in bytes ) + + : K ( 128-bits (16bytes) fixed key ) + + Output : PRV ( 128 bits Pseudo Random Variable) + + + +-------------------------------------------------------------------+ + + + Step 1. If length of VK > 16 bytes + + then K:= truncate (VK, 16); + + Else if length of VK < 16 bytes + + then K:= padding (VK, 16); + + Step 2. PRV := AES-CMAC-PRF-128 (K,M,len); + + + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Figure 1 Algorithm AES-CMAC-PRF-128 4. Test Vectors Test Case AES-CMAC-PRF-128 with 20-byte input Test Case AES-CMAC-PRF-128 with 20-byte input Key : 00010203 04050607 08090a0b 0c0d0e0f Key Length : 16 Message : 00010203 04050607 08090a0b 0c0d0e0f 10111213 PRF Output : 980ae87b 5f4c9c52 14f5b6a8 455e4c2d Test Case AES-CMAC-PRF-128 with 20-byte input Key : 00010203 04050607 0809 Key Length : 10 Message : 00010203 04050607 08090a0b 0c0d0e0f 10111213 PRF Output : 81a33ea4 0fc1a5a9 64c504b0 206b6d5c Test Case AES-CMAC-PRF-128 with 20-byte input Key : 00010203 04050607 08090a0b 0c0d0e0f edcb Key Length : 18 Message : 00010203 04050607 08090a0b 0c0d0e0f 10111213 PRF Output : 980ae87b 5f4c9c52 14f5b6a8 455e4c2d Song et al. Expires April 2006 [Page 3] Internet Draft October 2005 5. Security Considerations The security provided by AES-CMAC-PRF-128 is based upon the strength of AES. At the time of this writing, there are no known practical cryptographic attacks against AES or AES-CMAC-PRF-128. As is true with any cryptographic algorithm, part of its strength lies in the security of the key management mechanism, the strength of the associated secret key, and upon the correctness of the implementations in all of the participating systems. 6. IANA Consideration IPsec IKEv2 algorithms needs to be updated to refer this document when it is published. 7. Acknowledgement Portions of this text were borrowed from [AES-XCBC-MAC] and [AES-XCBC-MAC_bis] 8. Normative References [AES-CMAC] JunHyuk Song and Jicheol Lee, "The AES-CMAC Algorithm," draft-songlee-aes-cmac-02.txt, (work in progress) October 2005. [AES-XCBC-MAC] P. Hoffman, "The AES-XCBC-PRF-128 Algorithm for the Internet Key Exchange Protocol (IKE)," RFC3664, Jan 2004. [AES-XCBC-MAC_bis] P. Hoffman, "The AES-XCBC-PRF-128 Algorithm for the Internet Key Exchange Protocol (IKE)," draft-hoffman-rfc3664bis-05.txt (work in progress), October 2005. [IKEv2] Kaufman, C., Ed., "Internet Key Exchange (IKEv2) Protocol", draft-ietf-ipsec-ikev2-17 (work in progress), September 2004. Song et al. Expires April 2006 [Page 4] Internet Draft October 2005 Author's Address Junhyuk Song Samsung Electronics University of Washington (206) 853-5843 songlee@u.washington.edu junhyuk.song@samsung.com Jicheol Lee Samsung Electronics +82-31-279-3605 jicheol.lee@samsung.com Radha Poovendran Network Security Lab University of Washington (206) 221-6512 radha@ee.washington.edu Intellectual Property Statement The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Song et al. Expires April 2006 [Page 5] Internet Draft October 2005 Disclaimer of Validity This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Copyright Statement Copyright (C) The Internet Society (2005). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. Acknowledgment Funding for the RFC Editor function is currently provided by the Internet Society. Song et al. Expires April 2006 [Page 6]