< draft-ietf-jose-json-web-encryption-24.txt   draft-ietf-jose-json-web-encryption-25.txt >
JOSE Working Group M. Jones JOSE Working Group M. Jones
Internet-Draft Microsoft Internet-Draft Microsoft
Intended status: Standards Track J. Hildebrand Intended status: Standards Track J. Hildebrand
Expires: September 19, 2014 Cisco Expires: October 2, 2014 Cisco
March 18, 2014 March 31, 2014
JSON Web Encryption (JWE) JSON Web Encryption (JWE)
draft-ietf-jose-json-web-encryption-24 draft-ietf-jose-json-web-encryption-25
Abstract Abstract
JSON Web Encryption (JWE) represents encrypted content using JSON Web Encryption (JWE) represents encrypted content using
JavaScript Object Notation (JSON) based data structures. JavaScript Object Notation (JSON) based data structures.
Cryptographic algorithms and identifiers for use with this Cryptographic algorithms and identifiers for use with this
specification are described in the separate JSON Web Algorithms (JWA) specification are described in the separate JSON Web Algorithms (JWA)
specification and IANA registries defined by that specification. specification and IANA registries defined by that specification.
Related digital signature and MAC capabilities are described in the Related digital signature and MAC capabilities are described in the
separate JSON Web Signature (JWS) specification. separate JSON Web Signature (JWS) specification.
skipping to change at page 1, line 37 skipping to change at page 1, line 37
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 19, 2014. This Internet-Draft will expire on October 2, 2014.
Copyright Notice Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 36, line 11 skipping to change at page 36, line 11
encryption. These results can be used to validate JWE decryption encryption. These results can be used to validate JWE decryption
implementations for these algorithms. Note that since the RSAES- implementations for these algorithms. Note that since the RSAES-
PKCS1-V1_5 computation includes random values, the encryption results PKCS1-V1_5 computation includes random values, the encryption results
above will not be completely reproducible. However, since the AES above will not be completely reproducible. However, since the AES
CBC computation is deterministic, the JWE Encrypted Ciphertext values CBC computation is deterministic, the JWE Encrypted Ciphertext values
will be the same for all encryptions performed using these inputs. will be the same for all encryptions performed using these inputs.
A.3. Example JWE using AES Key Wrap and AES_128_CBC_HMAC_SHA_256 A.3. Example JWE using AES Key Wrap and AES_128_CBC_HMAC_SHA_256
This example encrypts the plaintext "Live long and prosper." to the This example encrypts the plaintext "Live long and prosper." to the
recipient using AES Key Wrap for key encryption and AES GCM for recipient using AES Key Wrap for key encryption and
content encryption. The representation of this plaintext is: AES_128_CBC_HMAC_SHA_256 for content encryption. The representation
of this plaintext is:
[76, 105, 118, 101, 32, 108, 111, 110, 103, 32, 97, 110, 100, 32, [76, 105, 118, 101, 32, 108, 111, 110, 103, 32, 97, 110, 100, 32,
112, 114, 111, 115, 112, 101, 114, 46] 112, 114, 111, 115, 112, 101, 114, 46]
A.3.1. JWE Header A.3.1. JWE Header
The following example JWE Protected Header declares that: The following example JWE Protected Header declares that:
o the Content Encryption Key is encrypted to the recipient using the o the Content Encryption Key is encrypted to the recipient using the
AES Key Wrap algorithm with a 128 bit key to produce the JWE AES Key Wrap algorithm with a 128 bit key to produce the JWE
skipping to change at page 42, line 5 skipping to change at page 42, line 5
"KDlTtXchhZTGufMYmOYGS4HffxPSUrfmqCHXaI9wOGY", "KDlTtXchhZTGufMYmOYGS4HffxPSUrfmqCHXaI9wOGY",
"tag": "tag":
"Mz-VPPyU4RlcuYv1IwIvzw" "Mz-VPPyU4RlcuYv1IwIvzw"
} }
Appendix B. Example AES_128_CBC_HMAC_SHA_256 Computation Appendix B. Example AES_128_CBC_HMAC_SHA_256 Computation
This example shows the steps in the AES_128_CBC_HMAC_SHA_256 This example shows the steps in the AES_128_CBC_HMAC_SHA_256
authenticated encryption computation using the values from the authenticated encryption computation using the values from the
example in Appendix A.3. As described where this algorithm is example in Appendix A.3. As described where this algorithm is
defined in Sections 4.8 and 4.8.3 of JWA, the AES_CBC_HMAC_SHA2 defined in Sections 5.2 and 5.2.3 of JWA, the AES_CBC_HMAC_SHA2
family of algorithms are implemented using Advanced Encryption family of algorithms are implemented using Advanced Encryption
Standard (AES) in Cipher Block Chaining (CBC) mode with PKCS #5 Standard (AES) in Cipher Block Chaining (CBC) mode with PKCS #5
padding to perform the encryption and an HMAC SHA-2 function to padding to perform the encryption and an HMAC SHA-2 function to
perform the integrity calculation - in this case, HMAC SHA-256. perform the integrity calculation - in this case, HMAC SHA-256.
B.1. Extract MAC_KEY and ENC_KEY from Key B.1. Extract MAC_KEY and ENC_KEY from Key
The 256 bit AES_128_CBC_HMAC_SHA_256 key K used in this example is: The 256 bit AES_128_CBC_HMAC_SHA_256 key K used in this example is:
[4, 211, 31, 197, 84, 157, 252, 254, 11, 100, 157, 250, 63, 170, 106, [4, 211, 31, 197, 84, 157, 252, 254, 11, 100, 157, 250, 63, 170, 106,
skipping to change at page 44, line 45 skipping to change at page 44, line 45
Nat Sakimura, Jim Schaad, Hannes Tschofenig, and Sean Turner. Nat Sakimura, Jim Schaad, Hannes Tschofenig, and Sean Turner.
Jim Schaad and Karen O'Donoghue chaired the JOSE working group and Jim Schaad and Karen O'Donoghue chaired the JOSE working group and
Sean Turner and Stephen Farrell served as Security area directors Sean Turner and Stephen Farrell served as Security area directors
during the creation of this specification. during the creation of this specification.
Appendix D. Document History Appendix D. Document History
[[ to be removed by the RFC Editor before publication as an RFC ]] [[ to be removed by the RFC Editor before publication as an RFC ]]
-25
o Corrected two external section number references that had changed.
o Corrected a typo in an algorithm name in the prose of an example.
-24 -24
o Corrected complete JSON Serialization example. o Corrected complete JSON Serialization example.
o Replaced uses of the term "associated data" wherever it was used o Replaced uses of the term "associated data" wherever it was used
to refer to a data value with "additional authenticated data", to refer to a data value with "additional authenticated data",
since both terms were being used as synonyms, causing confusion. since both terms were being used as synonyms, causing confusion.
o Updated the JSON reference to RFC 7159. o Updated the JSON reference to RFC 7159.
 End of changes. 6 change blocks. 
7 lines changed or deleted 14 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/