| rfc9629.original.xml | rfc9629.xml | |||
|---|---|---|---|---|
| <?xml version='1.0' encoding='utf-8'?> | <?xml version='1.0' encoding='utf-8'?> | |||
| <!DOCTYPE rfc [ | <!DOCTYPE rfc [ | |||
| <!ENTITY nbsp " "> | <!ENTITY nbsp " "> | |||
| <!ENTITY zwsp "​"> | <!ENTITY zwsp "​"> | |||
| <!ENTITY nbhy "‑"> | <!ENTITY nbhy "‑"> | |||
| <!ENTITY wj "⁠"> | <!ENTITY wj "⁠"> | |||
| ]> | ]> | |||
| <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> | ||||
| <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.5 (Ruby 3.0.2 | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | |||
| ) --> | -ietf-lamps-cms-kemri-08" number="9629" category="std" consensus="true" submissi | |||
| <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | onType="IETF" obsoletes="" updates="5652" tocInclude="true" sortRefs="true" symR | |||
| -ietf-lamps-cms-kemri-08" category="std" consensus="true" submissionType="IETF" | efs="true" version="3" xml:lang="en"> | |||
| updates="5652" tocInclude="true" sortRefs="true" symRefs="true" version="3"> | ||||
| <!-- xml2rfc v2v3 conversion 3.19.3 --> | ||||
| <front> | <front> | |||
| <title abbrev="CMS KEMRecipientInfo">Using Key Encapsulation Mechanism (KEM) Algorithms in the Cryptographic Message Syntax (CMS)</title> | <title abbrev="CMS KEMRecipientInfo">Using Key Encapsulation Mechanism (KEM) Algorithms in the Cryptographic Message Syntax (CMS)</title> | |||
| <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-cms-kemri-08"/> | <seriesInfo name="RFC" value="9629"/> | |||
| <author fullname="Russ Housley"> | <author fullname="Russ Housley"> | |||
| <organization abbrev="Vigil Security">Vigil Security, LLC</organization> | <organization abbrev="Vigil Security">Vigil Security, LLC</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <city>Herndon, VA</city> | <city>Herndon</city> | |||
| <country>US</country> | <region>VA</region> | |||
| <country>United States of America</country> | ||||
| </postal> | </postal> | |||
| <email>housley@vigilsec.com</email> | <email>housley@vigilsec.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="John Gray"> | <author fullname="John Gray"> | |||
| <organization>Entrust</organization> | <organization>Entrust</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <city>Minneapolis, MN</city> | <city>Minneapolis</city> | |||
| <country>US</country> | <region>MN</region> | |||
| <country>United States of America</country> | ||||
| </postal> | </postal> | |||
| <email>john.gray@entrust.com</email> | <email>john.gray@entrust.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="大久保 智史" asciiFullname="Tomofumi Okubo"> | <author fullname="大久保 智史" asciiFullname="Tomofumi Okubo"> | |||
| <organization abbrev="DigiCert">DigiCert, Inc.</organization> | <organization>Penguin Securities Pte. Ltd.</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <city>Fairfax, VA</city> | <country>Singapore</country> | |||
| <country>US</country> | ||||
| </postal> | </postal> | |||
| <email>tomofumi.okubo+ietf@gmail.com</email> | <email>tomofumi.okubo+ietf@gmail.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date year="2024" month="February" day="06"/> | <date year="2024" month="August"/> | |||
| <area>Security</area> | <area>SEC</area> | |||
| <workgroup>LAMPS Working Group</workgroup> | <workgroup>lamps</workgroup> | |||
| <keyword>Internet-Draft</keyword> | ||||
| <abstract> | <keyword>kemri</keyword> | |||
| <?line 82?> | <keyword>KEMRecipientInfo</keyword> | |||
| <abstract> | ||||
| <t>The Cryptographic Message Syntax (CMS) supports key transport and | <t>The Cryptographic Message Syntax (CMS) supports key transport and | |||
| key agreement algorithms. In recent years, cryptographers have been | key agreement algorithms. In recent years, cryptographers have been | |||
| specifying Key Encapsulation Mechanism (KEM) algorithms, including | specifying Key Encapsulation Mechanism (KEM) algorithms, including | |||
| quantum-secure KEM algorithms. This document defines conventions for | quantum-secure KEM algorithms. This document defines conventions for | |||
| the use of KEM algorithms by the originator and recipients to encrypt | the use of KEM algorithms by the originator and recipients to encrypt | |||
| and decrypt CMS content. This document updates RFC 5652.</t> | and decrypt CMS content. This document updates RFC 5652.</t> | |||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <?line 91?> | ||||
| <section anchor="intro"> | <section anchor="intro"> | |||
| <name>Introduction</name> | <name>Introduction</name> | |||
| <t>This document updates the The Cryptographic Message Syntax (CMS) <xref | <t>This document updates "<xref target="RFC5652" format="title"/>" <xref t | |||
| target="RFC5652"/>.</t> | arget="RFC5652" format="default"/>.</t> | |||
| <t>The Cryptographic Message Syntax (CMS) enveloped-data content type | <t>The CMS enveloped-data content type | |||
| <xref target="RFC5652"/> and the CMS authenticated-enveloped-data content type | <xref target="RFC5652"/> and the CMS authenticated-enveloped-data content type | |||
| <xref target="RFC5083"/> support both key transport and key agreement algorithms to | <xref target="RFC5083"/> support both key transport and key agreement algorithms to | |||
| establish the key used to encrypt and decrypt the content. In recent | establish the key used to encrypt and decrypt the content. In recent | |||
| years, cryptographers have been specifying Key Encapsulation Mechanism | years, cryptographers have been specifying Key Encapsulation Mechanism | |||
| (KEM) algorithms, including quantum-secure KEM algorithms. This document | (KEM) algorithms, including quantum-secure KEM algorithms. This document | |||
| defines conventions for the use of KEM algorithms for the CMS | defines conventions for the use of KEM algorithms for the CMS | |||
| enveloped-data content type and the CMS authenticated-enveloped-data | enveloped-data content type and the CMS authenticated-enveloped-data | |||
| content type.</t> | content type.</t> | |||
| <t>A KEM algorithm is a one-pass (store-and-forward) mechanism for | <t>A KEM algorithm is a one-pass (store-and-forward) mechanism for | |||
| transporting random keying material to a recipient using the recipient's | transporting random keying material to a recipient using the recipient's | |||
| public key. This means that the originator and the recipients do not need | public key. This means that the originator and the recipients do not need | |||
| to be online at the same time. The recipient's private key is needed to | to be online at the same time. The recipient's private key is needed to | |||
| recover the random keying material, which is then treated as a pairwise | recover the random keying material, which is then treated as a pairwise | |||
| shared secret (ss) between the originator and recipient.</t> | shared secret (ss) between the originator and recipient.</t> | |||
| <t>The KEMRecipientInfo structure defined in this document uses the pairwi se | <t>The KEMRecipientInfo structure defined in this document uses the pairwi se | |||
| shared secret as an input to a key derivation function (KDF) to produce a | shared secret as an input to a key derivation function (KDF) to produce a | |||
| pairwise key-encryption key (KEK). Then, the pairwise KEK is used to encrypt a | pairwise key-encryption key (KEK). Then, the pairwise KEK is used to encrypt a | |||
| content-encryption key (CEK) or a content-authenticated-encryption key (CAEK) | content-encryption key (CEK) or a content-authenticated-encryption key (CAEK) | |||
| for that recipient. All of the recipients recieve the same CEK or CAEK.</t> | for that recipient. All of the recipients receive the same CEK or CAEK.</t> | |||
| <t>In this environment, security depends on three things. First, the KEM algorithm | <t>In this environment, security depends on three things. First, the KEM algorithm | |||
| must be secure against adaptive chosen ciphertext attacks. Second, the | must be secure against adaptive chosen ciphertext attacks. Second, the | |||
| key-encryption algorithm must provide confidentiality and integrity protection. Third, | key-encryption algorithm must provide confidentiality and integrity protection. Third, | |||
| the choices of the KDF and the key-encryption algorithm need to provide the same | the choices of the KDF and the key-encryption algorithm need to provide the same | |||
| level of security as the KEM algorithm.</t> | level of security as the KEM algorithm.</t> | |||
| <t>A KEM algorithm provides three functions:</t> | <t>A KEM algorithm provides three functions:</t> | |||
| <ul spacing="normal"> | <dl spacing="normal" newline="true"> | |||
| <li> | <dt>KeyGen() -> (pk, sk):</dt> | |||
| <t>KeyGen() -> (pk, sk):</t> | <dd>Generate the public key (pk) and a private key (sk).</dd> | |||
| </li> | <dt>Encapsulate(pk) -> (ct, ss):</dt> | |||
| </ul> | <dd>Given the recipient's public key (pk), produce a ciphertext (ct) t | |||
| <ul empty="true"> | o be | |||
| <li> | passed to the recipient and shared secret (ss) for the originator.</dd> | |||
| <t>Generate the public key (pk) and a private key (sk).</t> | <dt>Decapsulate(sk, ct) -> ss:</dt> | |||
| </li> | <dd>Given the private key (sk) and the ciphertext (ct), produce the | |||
| </ul> | shared secret (ss) for the recipient.</dd> | |||
| <ul spacing="normal"> | </dl> | |||
| <li> | ||||
| <t>Encapsulate(pk) -> (ct, ss):</t> | ||||
| </li> | ||||
| </ul> | ||||
| <ul empty="true"> | ||||
| <li> | ||||
| <t>Given the recipient's public key (pk), produce a ciphertext (ct) to | ||||
| be | ||||
| passed to the recipient and shared secret (ss) for the originator.</t> | ||||
| </li> | ||||
| </ul> | ||||
| <ul spacing="normal"> | ||||
| <li> | ||||
| <t>Decapsulate(sk, ct) -> ss:</t> | ||||
| </li> | ||||
| </ul> | ||||
| <ul empty="true"> | ||||
| <li> | ||||
| <t>Given the private key (sk) and the ciphertext (ct), produce the | ||||
| shared secret (ss) for the recipient.</t> | ||||
| </li> | ||||
| </ul> | ||||
| <t>To support a particular KEM algorithm, the CMS originator <bcp14>MUST</ bcp14> implement | <t>To support a particular KEM algorithm, the CMS originator <bcp14>MUST</ bcp14> implement | |||
| the KEM Encapsulate() function.</t> | the KEM Encapsulate() function.</t> | |||
| <t>To support a particular KEM algorithm, the CMS recipient <bcp14>MUST</b cp14> implement the KEM | <t>To support a particular KEM algorithm, the CMS recipient <bcp14>MUST</b cp14> implement the KEM | |||
| KeyGen() function and the KEM Decapsulate() function. The recipient's public ke y | KeyGen() function and the KEM Decapsulate() function. The recipient's public ke y | |||
| is usually carried in a certificate <xref target="RFC5280"/>.</t> | is usually carried in a certificate <xref target="RFC5280"/>.</t> | |||
| <section anchor="terms"> | <section anchor="terms"> | |||
| <name>Terminology</name> | <name>Terminology</name> | |||
| <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp | <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
| 14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", | |||
| NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECO | "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", | |||
| MMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | "<bcp14>SHOULD NOT</bcp14>", | |||
| "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be i | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| nterpreted as | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document | |||
| described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and | are to be interpreted as described in BCP 14 | |||
| only when, they | <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only | |||
| appear in all capitals, as shown here.</t> | when, they appear in all capitals, as shown here.</t> | |||
| <?line -18?> | ||||
| </section> | </section> | |||
| <section anchor="asn1"> | <section anchor="asn1"> | |||
| <name>ASN.1</name> | <name>ASN.1</name> | |||
| <t>CMS values are generated using ASN.1 <xref target="X.680"/>, which us es the Basic | <t>CMS values are generated using ASN.1 <xref target="X.680"/>, which us es the Basic | |||
| Encoding Rules (BER) and the Distinguished Encoding Rules (DER) <xref target="X. 690"/>.</t> | Encoding Rules (BER) and the Distinguished Encoding Rules (DER) <xref target="X. 690"/>.</t> | |||
| </section> | </section> | |||
| <section anchor="cms-version-numbers"> | <section anchor="cms-version-numbers"> | |||
| <name>CMS Version Numbers</name> | <name>CMS Version Numbers</name> | |||
| <t>As described in <xref section="1.3" sectionFormat="of" target="RFC565 2"/>, the major data structures | <t>As described in <xref section="1.3" sectionFormat="of" target="RFC565 2"/>, the major data structures | |||
| include a version number as the first item in | include a version number as the first item in | |||
| the data structure. The version number is intended to avoid ASN.1 decode | the data structure. The version number is intended to avoid ASN.1 decode | |||
| errors. Some implementations do not check the version number prior to | errors. Some implementations do not check the version number prior to | |||
| attempting a decode, and then if a decode error occurs, the version | attempting a decode, and then if a decode error occurs, the version | |||
| number is checked as part of the error handling routine. This is a | number is checked as part of the error-handling routine. This is a | |||
| reasonable approach; it places error processing outside of the fast path. | reasonable approach; it places error processing outside of the fast path. | |||
| This approach is also forgiving when an incorrect version number is used | This approach is also forgiving when an incorrect version number is used | |||
| by the originator.</t> | by the originator.</t> | |||
| <t>Whenever the structure is updated, a higher version number will be | <t>Whenever the structure is updated, a higher version number will be | |||
| assigned. However, to ensure maximum interoperability, the higher | assigned. However, to ensure maximum interoperability, the higher | |||
| version number is only used when the new syntax feature is employed. That | version number is only used when the new syntax feature is employed. That | |||
| is, the lowest version number that supports the generated syntax is used.</t> | is, the lowest version number that supports the generated syntax is used.</t> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="kem-processing-overview"> | <section anchor="kem-processing-overview"> | |||
| <name>KEM Processing Overview</name> | <name>KEM Processing Overview</name> | |||
| <t>KEM algorithms can be used with three CMS content types: the | <t>KEM algorithms can be used with three CMS content types: the | |||
| enveloped-data content type <xref target="RFC5652"/>, the authenticated-data | enveloped-data content type <xref target="RFC5652"/>, the authenticated-data | |||
| content type <xref target="RFC5652"/>, or the authenticated-enveloped-data | content type <xref target="RFC5652"/>, or the authenticated-enveloped-data | |||
| content type <xref target="RFC5083"/>. For simplicity, the terminology associat ed | content type <xref target="RFC5083"/>. For simplicity, the terminology associat ed | |||
| with the enveloped-data content type will be used in this overview.</t> | with the enveloped-data content type will be used in this overview.</t> | |||
| <t>The originator randomly generates the CEK (or the CAEK), and then | <t>The originator randomly generates the CEK (or the CAEK), and then | |||
| all recipients obtain that key as an encrypted object within the KEMRecipientInf o | all recipients obtain that key as an encrypted object within the KEMRecipientInf o | |||
| encryptedKey field explained in <xref target="kemri"/>. All recipients use | encryptedKey field explained in <xref target="kemri"/>. All recipients use | |||
| the originator-generated symmetric key to decrypt the CMS message.</t> | the originator-generated symmetric key to decrypt the CMS message.</t> | |||
| <t>A KEM algorithm and a key-derivation function are used to securely | <t>A KEM algorithm and a key derivation function are used to securely | |||
| establish a pairwise symmetric key-encryption key (KEK), which is used to encryp | establish a pairwise symmetric KEK, which is used to encrypt | |||
| t | ||||
| the originator-generated CEK (or the CAEK).</t> | the originator-generated CEK (or the CAEK).</t> | |||
| <t>In advance, each recipient uses the KEM KeyGen() function to create a k ey pair. | <t>In advance, each recipient uses the KEM KeyGen() function to create a k ey pair. | |||
| The recipient will often obtain a certificate <xref target="RFC5280"/> that incl udes the newly | The recipient will often obtain a certificate <xref target="RFC5280"/> that incl udes the newly | |||
| generated public key. Whether the public key is certified or not, the newly | generated public key. Whether the public key is certified or not, the newly | |||
| generated public key is made available to potential originators.</t> | generated public key is made available to potential originators.</t> | |||
| <t>The originator establishes the CEK (or the CAEK) using these steps:</t> | <t>The originator establishes the CEK (or the CAEK) using these steps:</t> | |||
| <ol spacing="normal" type="1"><li> | <ol spacing="normal" type="1"><li> | |||
| <t>The CEK (or the CAEK) is generated at random.</t> | <t>The CEK (or the CAEK) is generated at random.</t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>For each recipient: </t> | <t>For each recipient: </t> | |||
| <ul spacing="normal"> | <ul spacing="normal"> | |||
| <li> | <li> | |||
| <t>The recipient's public key is used with the KEM Encapsulate() f unction to obtain a pairwise shared secret (ss) and the ciphertext for the recip ient.</t> | <t>The recipient's public key is used with the KEM Encapsulate() f unction to obtain a pairwise shared secret (ss) and the ciphertext for the recip ient.</t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>The key-derivation function is used to derive a pairwise symmet ric KEK, from the pairwise ss and other data that is optionally sent in the ukm field.</t> | <t>The key derivation function is used to derive a pairwise symmet ric KEK, from the pairwise ss and other data that is optionally sent in the ukm field.</t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>The KEK is used to encrypt the CEK for this recipient.</t> | <t>The KEK is used to encrypt the CEK for this recipient.</t> | |||
| </li> | </li> | |||
| </ul> | </ul> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>The CEK (or the CAEK) is used to encrypt the content for all recipi ents.</t> | <t>The CEK (or the CAEK) is used to encrypt the content for all recipi ents.</t> | |||
| </li> | </li> | |||
| </ol> | </ol> | |||
| <t>The recipient obtains the CEK (or the CAEK) using these steps:</t> | <t>The recipient obtains the CEK (or the CAEK) using these steps:</t> | |||
| <ol spacing="normal" type="1"><li> | <ol spacing="normal" type="1"><li> | |||
| <t>The recipient's private key and the ciphertext are used with the KE M Decapsulate() function to obtain a pairwise ss.</t> | <t>The recipient's private key and the ciphertext are used with the KE M Decapsulate() function to obtain a pairwise ss.</t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>The key-derivation function is used to derive a pairwise symmetric KEK, from the pairwise ss and other data that is optionally sent in the ukm fiel d.</t> | <t>The key derivation function is used to derive a pairwise symmetric KEK, from the pairwise ss and other data that is optionally sent in the ukm fiel d.</t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>The KEK is used to decrypt the CEK (or the CAEK) .</t> | <t>The KEK is used to decrypt the CEK (or the CAEK).</t> | |||
| </li> | </li> | |||
| <li> | <li> | |||
| <t>The CEK (or the CAEK) is used to decrypt the content.</t> | <t>The CEK (or the CAEK) is used to decrypt the content.</t> | |||
| </li> | </li> | |||
| </ol> | </ol> | |||
| </section> | </section> | |||
| <section anchor="kemri"> | <section anchor="kemri"> | |||
| <name>KEM Recipient Information</name> | <name>KEM Recipient Information</name> | |||
| <t>This document defines KEMRecipientInfo for use with KEM algorithms. | <t>This document defines KEMRecipientInfo for use with KEM algorithms. | |||
| As specified in Section 6.2.5 of <xref target="RFC5652"/>, recipient information | As specified in <xref target="RFC5652" sectionFormat="of" section="6.2.5"/>, | |||
| for | recipient information for | |||
| additional key management techniques are represented in the | additional key management techniques is represented in the | |||
| OtherRecipientInfo type, and they are each identified by a unique | OtherRecipientInfo type. Each key management technique is identified by a unique | |||
| ASN.1 object identifier.</t> | ASN.1 object identifier.</t> | |||
| <t>The object identifier associated with KEMRecipientInfo is:</t> | <t>The object identifier associated with KEMRecipientInfo is:</t> | |||
| <artwork><![CDATA[ | <artwork><![CDATA[ | |||
| id-ori OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) | id-ori OBJECT IDENTIFIER ::= { iso(1) member-body(2) us(840) | |||
| rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) 13 } | rsadsi(113549) pkcs(1) pkcs-9(9) smime(16) 13 } | |||
| id-ori-kem OBJECT IDENTIFIER ::= { id-ori 3 } | id-ori-kem OBJECT IDENTIFIER ::= { id-ori 3 } | |||
| ]]></artwork> | ]]></artwork> | |||
| <t>The KEMRecipientInfo type is:</t> | <t>The KEMRecipientInfo type is:</t> | |||
| <artwork><![CDATA[ | <artwork><![CDATA[ | |||
| skipping to change at line 244 ¶ | skipping to change at line 226 ¶ | |||
| rid RecipientIdentifier, | rid RecipientIdentifier, | |||
| kem KEMAlgorithmIdentifier, | kem KEMAlgorithmIdentifier, | |||
| kemct OCTET STRING, | kemct OCTET STRING, | |||
| kdf KeyDerivationAlgorithmIdentifier, | kdf KeyDerivationAlgorithmIdentifier, | |||
| kekLength INTEGER (1..65535), | kekLength INTEGER (1..65535), | |||
| ukm [0] EXPLICIT UserKeyingMaterial OPTIONAL, | ukm [0] EXPLICIT UserKeyingMaterial OPTIONAL, | |||
| wrap KeyEncryptionAlgorithmIdentifier, | wrap KeyEncryptionAlgorithmIdentifier, | |||
| encryptedKey EncryptedKey } | encryptedKey EncryptedKey } | |||
| ]]></artwork> | ]]></artwork> | |||
| <t>The fields of the KEMRecipientInfo type have the following meanings:</t > | <t>The fields of the KEMRecipientInfo type have the following meanings:</t > | |||
| <ul empty="true"> | <t indent="3">version is the syntax version number. The version <bcp1 | |||
| <li> | 4>MUST</bcp14> be 0. The | |||
| <t>version is the syntax version number. The version <bcp14>MUST</bcp | CMSVersion type is described in <xref target="RFC5652" sectionFormat="of" sectio | |||
| 14> be 0. The | n="10.2.5"/>.</t> | |||
| CMSVersion type is described in Section 10.2.5 of <xref target="RFC5652"/>.</t> | <t indent="3">rid specifies the recipient's certificate or key that wa | |||
| </li> | s used by | |||
| </ul> | ||||
| <ul empty="true"> | ||||
| <li> | ||||
| <t>rid specifies the recipient's certificate or key that was used by | ||||
| the originator with the KEM Encapsulate() function. The | the originator with the KEM Encapsulate() function. The | |||
| RecipientIdentifier provides two alternatives for specifying the | RecipientIdentifier provides two alternatives for specifying the | |||
| recipient's certificate <xref target="RFC5280"/>, and thereby the recipient's pu blic | recipient's certificate <xref target="RFC5280"/>, and thereby the recipient's pu blic | |||
| key. The recipient's certificate <bcp14>MUST</bcp14> contain a KEM public key. Therefore, | key. The recipient's certificate <bcp14>MUST</bcp14> contain a KEM public key. Therefore, | |||
| a recipient X.509 version 3 certificate that contains a key usage | a recipient X.509 version 3 certificate that contains a key usage | |||
| extension <bcp14>MUST</bcp14> assert the keyEncipherment bit. The issuerAndSeri alNumber | extension <bcp14>MUST</bcp14> assert the keyEncipherment bit. The issuerAndSeri alNumber | |||
| alternative identifies the recipient's certificate by the issuer's | alternative identifies the recipient's certificate by the issuer's | |||
| distinguished name and the certificate serial number; the | distinguished name and the certificate serial number; the | |||
| subjectKeyIdentifier alternative identifies the recipient's certificate by a key | subjectKeyIdentifier alternative identifies the recipient's certificate by a key | |||
| identifier. When an X.509 certificate is referenced, the key identifier | identifier. When an X.509 certificate is referenced, the key identifier | |||
| matches the X.509 subjectKeyIdentifier extension value. When other | matches the X.509 subjectKeyIdentifier extension value. When other | |||
| certificate formats are referenced, the documents that specify the certificate | certificate formats are referenced, the documents that specify the certificate | |||
| format and their use with the CMS must include details on matching | format and their use with the CMS must include details on matching | |||
| the key identifier to the appropriate certificate field. For recipient | the key identifier to the appropriate certificate field. For recipient | |||
| processing, implementations <bcp14>MUST</bcp14> support both of these alternativ es for | processing, implementations <bcp14>MUST</bcp14> support both of these alternativ es for | |||
| specifying the recipient's certificate. For originator processing, | specifying the recipient's certificate. For originator processing, | |||
| implementations <bcp14>MUST</bcp14> support at least one of these alternatives.< /t> | implementations <bcp14>MUST</bcp14> support at least one of these alternatives.< /t> | |||
| </li> | <t indent="3">kem identifies the KEM algorithm, and any associated par | |||
| </ul> | ameters, used | |||
| <ul empty="true"> | ||||
| <li> | ||||
| <t>kem identifies the KEM algorithm, and any associated parameters, us | ||||
| ed | ||||
| by the originator. The KEMAlgorithmIdentifier is described in <xref target="kem alg"/>.</t> | by the originator. The KEMAlgorithmIdentifier is described in <xref target="kem alg"/>.</t> | |||
| </li> | <t indent="3">kemct is the ciphertext produced by the KEM Encapsulate( | |||
| </ul> | ) function for | |||
| <ul empty="true"> | ||||
| <li> | ||||
| <t>kemct is the ciphertext produced by the KEM Encapsulate() function | ||||
| for | ||||
| this recipient.</t> | this recipient.</t> | |||
| </li> | <t indent="3">kdf identifies the key derivation function, and any asso | |||
| </ul> | ciated parameters, | |||
| <ul empty="true"> | ||||
| <li> | ||||
| <t>kdf identifies the key-derivation algorithm, and any associated par | ||||
| ameters, | ||||
| used by the originator to generate the KEK. The | used by the originator to generate the KEK. The | |||
| KeyDerivationAlgorithmIdentifier is described in Section 10.1.6 of <xref target= | KeyDerivationAlgorithmIdentifier is described in <xref target="RFC5652" sectionF | |||
| "RFC5652"/>.</t> | ormat="of" section="10.1.6"/>.</t> | |||
| </li> | <t indent="3">kekLength is the size of the KEK in octets. This value | |||
| </ul> | is one | |||
| <ul empty="true"> | of the inputs to the key derivation function. The upper bound on the integer | |||
| <li> | ||||
| <t>kekLength is the size of the KEK in octets. This value is one | ||||
| of the inputs to the key-derivation function. The upper bound on the integer | ||||
| value is provided to make it clear to implementers that support for very | value is provided to make it clear to implementers that support for very | |||
| large integer values is not needed. Implementations <bcp14>MUST</bcp14> confirm that | large integer values is not needed. Implementations <bcp14>MUST</bcp14> confirm that | |||
| the value provided is consistent with the key-encryption algorithm | the value provided is consistent with the key-encryption algorithm | |||
| identified in the wrap field below.</t> | identified in the wrap field below.</t> | |||
| </li> | <t indent="3">ukm is optional user keying material. When the ukm valu | |||
| </ul> | e is provided, | |||
| <ul empty="true"> | ||||
| <li> | ||||
| <t>ukm is optional user keying material. When the ukm value is provid | ||||
| ed, | ||||
| it is used as part of the info structure described in <xref target="kdf"/> to | it is used as part of the info structure described in <xref target="kdf"/> to | |||
| provide a context input to the key-derivation function. For example, the | provide a context input to the key derivation function. For example, the | |||
| ukm value could include a nonce, application-specific context information, | ukm value could include a nonce, application-specific context information, | |||
| or an identifier for the originator. A KEM algorithm may place | or an identifier for the originator. A KEM algorithm may place | |||
| requirements on the ukm value. Implementations that do not support the | requirements on the ukm value. Implementations that do not support the | |||
| ukm field <bcp14>SHOULD</bcp14> gracefully discontinue processing when the ukm f ield is | ukm field <bcp14>SHOULD</bcp14> gracefully discontinue processing when the ukm f ield is | |||
| present. Note that this requirement expands the original purpose of the | present. Note that this requirement expands the original purpose of the | |||
| ukm described in Section 10.2.6 of <xref target="RFC5652"/>; it is not limited t o being | ukm described in <xref target="RFC5652" sectionFormat="of" section="10.2.6"/>; i t is not limited to being | |||
| used with key agreement algorithms.</t> | used with key agreement algorithms.</t> | |||
| </li> | <t indent="3">wrap identifies a key-encryption algorithm used to encry | |||
| </ul> | pt the | |||
| <ul empty="true"> | ||||
| <li> | ||||
| <t>wrap identifies a key-encryption algorithm used to encrypt the | ||||
| CEK. The KeyEncryptionAlgorithmIdentifier | CEK. The KeyEncryptionAlgorithmIdentifier | |||
| is described in Section 10.1.3 of <xref target="RFC5652"/>.</t> | is described in <xref target="RFC5652" sectionFormat="of" section="10.1.3"/>.</t | |||
| </li> | > | |||
| </ul> | <t indent="3">encryptedKey is the result of encrypting the CEK or the | |||
| <ul empty="true"> | CAEK (the content-authenticated-encryption key, as discussed in <xref target="RF | |||
| <li> | C5083"/>) with the KEK. | |||
| <t>encryptedKey is the result of encrypting the CEK or the | ||||
| content-authenticated-encryption key <xref target="RFC5083"/> (CAEK) with the KE | ||||
| K. | ||||
| EncryptedKey is an OCTET STRING.</t> | EncryptedKey is an OCTET STRING.</t> | |||
| </li> | ||||
| </ul> | ||||
| </section> | </section> | |||
| <section anchor="kemalg"> | <section anchor="kemalg"> | |||
| <name>KEM Algorithm Identifier</name> | <name>KEM Algorithm Identifier</name> | |||
| <t>The KEMAlgorithmIdentifier type identifies a KEM algorithm used to | <t>The KEMAlgorithmIdentifier type identifies a KEM algorithm used to | |||
| establish a pairwise ss. The details of establishment depend on | establish a pairwise ss. The details of establishment depend on | |||
| the KEM algorithm used. A Key derivation algorithm is used to transform | the KEM algorithm used. A key derivation function is used to transform | |||
| the pairwise ss value into a KEK.</t> | the pairwise ss value into a KEK.</t> | |||
| <artwork><![CDATA[ | <artwork><![CDATA[ | |||
| KEMAlgorithmIdentifier ::= AlgorithmIdentifier{ KEM-ALGORITHM, {...} } | KEMAlgorithmIdentifier ::= AlgorithmIdentifier{ KEM-ALGORITHM, {...} } | |||
| ]]></artwork> | ]]></artwork> | |||
| </section> | </section> | |||
| <section anchor="kdf"> | <section anchor="kdf"> | |||
| <name>Key Derivation</name> | <name>Key Derivation</name> | |||
| <t>This section describes the conventions of using the KDF to compute the | <t>This section describes the conventions of using the KDF to compute the | |||
| KEK for KEMRecipientInfo. For simplicity, the | KEK for KEMRecipientInfo. For simplicity, the | |||
| terminology used in the HKDF specification <xref target="RFC5869"/> is used here .</t> | terminology used in the HKDF specification <xref target="RFC5869"/> is used here .</t> | |||
| <t>Many KDFs internally employ a one-way hash function. When this is | <t>Many KDFs internally employ a one-way hash function. When this is | |||
| the case, the hash function that is used is indirectly indicated by | the case, the hash function that is used is indirectly indicated by | |||
| the KeyDerivationAlgorithmIdentifier. Other KDFs internally employ an | the KeyDerivationAlgorithmIdentifier. Other KDFs internally employ an | |||
| encryption algorithm. When this is the case, the encryption that is | encryption algorithm. When this is the case, the encryption that is | |||
| used is indirectly indicated by the KeyDerivationAlgorithmIdentifier.</t> | used is indirectly indicated by the KeyDerivationAlgorithmIdentifier.</t> | |||
| <t>The KDF inputs are:</t> | <t>The KDF inputs are as follows:</t> | |||
| <ul empty="true"> | <t indent="3">IKM is the input keying material. It is a symmetric secr | |||
| <li> | et input to | |||
| <t>IKM is the input key material. It is a symmetric secret input to | the KDF. The KDF may use a hash function or an encryption algorithm | |||
| the KDF which may use a hash function or an encryption algorithm | ||||
| to generate a pseudorandom key. The algorithm used to derive the | to generate a pseudorandom key. The algorithm used to derive the | |||
| IKM is dependent on the algorithm identified in the | IKM is dependent on the algorithm identified in the | |||
| KeyDerivationAlgorithmIdentifier.</t> | KeyDerivationAlgorithmIdentifier.</t> | |||
| </li> | <t indent="3">L is the length of the output keying material in octets. | |||
| </ul> | L is | |||
| <ul empty="true"> | ||||
| <li> | ||||
| <t>L is the length of the output keying material in octets which is | ||||
| identified in the kekLength of the KEMRecipientInfo. The | identified in the kekLength of the KEMRecipientInfo. The | |||
| value is dependent on the key-encryption algorithm that is used | value is dependent on the key-encryption algorithm used; | |||
| which is identified in the KeyEncryptionAlgorithmIdentifier.</t> | the key-encryption algorithm is identified in the KeyEncryptionAlgorithmIdentifi | |||
| </li> | er.</t> | |||
| </ul> | <t indent="3">info is contextual input to the KDF. The DER-encoded | |||
| <ul empty="true"> | ||||
| <li> | ||||
| <t>info is contextual input to the KDF. The DER-encoded | ||||
| CMSORIforKEMOtherInfo structure is created from elements of the | CMSORIforKEMOtherInfo structure is created from elements of the | |||
| KEMRecipientInfo structure. CMSORIforKEMOtherInfo is defined as:</t> | KEMRecipientInfo structure. CMSORIforKEMOtherInfo is defined as:</t> | |||
| </li> | ||||
| </ul> | ||||
| <artwork><![CDATA[ | <artwork><![CDATA[ | |||
| CMSORIforKEMOtherInfo ::= SEQUENCE { | CMSORIforKEMOtherInfo ::= SEQUENCE { | |||
| wrap KeyEncryptionAlgorithmIdentifier, | wrap KeyEncryptionAlgorithmIdentifier, | |||
| kekLength INTEGER (1..65535), | kekLength INTEGER (1..65535), | |||
| ukm [0] EXPLICIT UserKeyingMaterial OPTIONAL } | ukm [0] EXPLICIT UserKeyingMaterial OPTIONAL } | |||
| ]]></artwork> | ]]></artwork> | |||
| <t>The CMSORIforKEMOtherInfo structure contains:</t> | <t>The CMSORIforKEMOtherInfo structure contains the following:</t> | |||
| <ul empty="true"> | <t indent="3">wrap identifies a key-encryption algorithm; the output o | |||
| <li> | f the | |||
| <t>wrap identifies a key-encryption algorithm; the output of the | key derivation function will be used as a key for this algorithm.</t> | |||
| key-derivation function will be used as a key for this algorithm.</t> | <t indent="3">kekLength is the length of the KEK in octets; the | |||
| </li> | output of the key derivation function will be exactly this size.</t> | |||
| </ul> | <t indent="3">ukm is optional user keying material; see <xref target=" | |||
| <ul empty="true"> | kemri"/>.</t> | |||
| <li> | <t>The KDF output is as follows:</t> | |||
| <t>kekLength is the length of the KEK in octets; the | <t indent="3">OKM is the output keying material with the exact length | |||
| output of the key-derivation function will be exactly this size.</t> | of L octets. | |||
| </li> | ||||
| </ul> | ||||
| <ul empty="true"> | ||||
| <li> | ||||
| <t>ukm is optional user keying material; see <xref target="kemri"/>.</ | ||||
| t> | ||||
| </li> | ||||
| </ul> | ||||
| <t>The KDF output is:</t> | ||||
| <ul empty="true"> | ||||
| <li> | ||||
| <t>OKM is the output keying material with the exact length of L octets | ||||
| . | ||||
| The OKM is the KEK that is used to encrypt the CEK or the CAEK.</t> | The OKM is the KEK that is used to encrypt the CEK or the CAEK.</t> | |||
| </li> | ||||
| </ul> | ||||
| <t>An acceptable KDF <bcp14>MUST</bcp14> accept an IKM, L, and info as inp uts. An acceptable | <t>An acceptable KDF <bcp14>MUST</bcp14> accept an IKM, L, and info as inp uts. An acceptable | |||
| KDF <bcp14>MAY</bcp14> also accept a salt input value, which is carried as a par ameter to | KDF <bcp14>MAY</bcp14> also accept a salt input value, which is carried as a par ameter to | |||
| the KeyDerivationAlgorithmIdentifier if present. All of these | the KeyDerivationAlgorithmIdentifier if present. All of these | |||
| inputs <bcp14>MUST</bcp14> influence the output of the KDF.</t> | inputs <bcp14>MUST</bcp14> influence the output of the KDF.</t> | |||
| </section> | </section> | |||
| <section anchor="asn1-mod"> | <section anchor="asn1-mod"> | |||
| <name>ASN.1 Modules</name> | <name>ASN.1 Modules</name> | |||
| <t>This section provides two ASN.1 modules <xref target="X.680"/>. The fi rst ASN.1 | <t>This section provides two ASN.1 modules <xref target="X.680"/>. The fi rst ASN.1 | |||
| module is an extension to the AlgorithmInformation-2009 module in | module is an extension to the AlgorithmInformation-2009 module discussed in | |||
| <xref target="RFC5912"/>, and it defines the KEM-ALGORITHM CLASS. The second | <xref target="RFC5912"/>; it defines the KEM-ALGORITHM CLASS. The second | |||
| ASN.1 module defines the structures needed to use KEM Algorithms | ASN.1 module defines the structures needed to use KEM algorithms | |||
| with CMS <xref target="RFC5652"/>.</t> | with CMS <xref target="RFC5652"/>.</t> | |||
| <t>The first ASN.1 module uses EXPLICIT tagging, and the second | <t>The first ASN.1 module uses EXPLICIT tagging, and the second | |||
| ASN.1 module uses IMPLICIT tagging.</t> | ASN.1 module uses IMPLICIT tagging.</t> | |||
| <t>Both ASN.1 modules follow the conventions established in | <t>Both ASN.1 modules follow the conventions established in | |||
| <xref target="RFC5911"/>, <xref target="RFC5912"/>, and <xref target="RFC6268"/> .</t> | <xref target="RFC5911"/>, <xref target="RFC5912"/>, and <xref target="RFC6268"/> .</t> | |||
| <section anchor="asn1-mod-1"> | <section anchor="asn1-mod-1"> | |||
| <name>KEMAlgorithmInformation-2023 ASN.1 Module</name> | <name>KEMAlgorithmInformation-2023 ASN.1 Module</name> | |||
| <sourcecode type="asn.1" markers="true"><![CDATA[ | <sourcecode type="asn.1" markers="true"><![CDATA[ | |||
| KEMAlgorithmInformation-2023 | KEMAlgorithmInformation-2023 | |||
| { iso(1) identified-organization(3) dod(6) internet(1) | { iso(1) identified-organization(3) dod(6) internet(1) | |||
| security(5) mechanisms(5) pkix(7) id-mod(0) | security(5) mechanisms(5) pkix(7) id-mod(0) | |||
| id-mod-kemAlgorithmInformation-2023(TBD3) } | id-mod-kemAlgorithmInformation-2023(109) } | |||
| DEFINITIONS EXPLICIT TAGS ::= | DEFINITIONS EXPLICIT TAGS ::= | |||
| BEGIN | BEGIN | |||
| -- EXPORTS ALL; | -- EXPORTS ALL; | |||
| IMPORTS | IMPORTS | |||
| ParamOptions, PUBLIC-KEY, SMIME-CAPS | ParamOptions, PUBLIC-KEY, SMIME-CAPS | |||
| FROM AlgorithmInformation-2009 | FROM AlgorithmInformation-2009 | |||
| { iso(1) identified-organization(3) dod(6) internet(1) | { iso(1) identified-organization(3) dod(6) internet(1) | |||
| security(5) mechanisms(5) pkix(7) id-mod(0) | security(5) mechanisms(5) pkix(7) id-mod(0) | |||
| id-mod-algorithmInformation-02(58) } ; | id-mod-algorithmInformation-02(58) } ; | |||
| -- KEM-ALGORITHM | -- KEM-ALGORITHM | |||
| -- | -- | |||
| -- Describes the basic properties of a KEM algorithm | -- Describes the basic properties of a KEM algorithm | |||
| -- | -- | |||
| -- Suggested prefixes for KEM algorithm objects is: kema- | -- Suggested prefix for KEM algorithm objects is: kema- | |||
| -- | -- | |||
| -- &id - contains the OID identifying the KEM algorithm | -- &id - contains the OID identifying the KEM algorithm | |||
| -- &Value - if present, contains a type definition for the kemct; | -- &Value - if present, contains a type definition for the kemct; | |||
| -- if absent, implies that no ASN.1 encoding is | -- if absent, implies that no ASN.1 encoding is | |||
| -- performed on the kemct value | -- performed on the kemct value | |||
| -- &Params - if present, contains the type for the algorithm | -- &Params - if present, contains the type for the algorithm | |||
| -- parameters; if absent, implies no parameters | -- parameters; if absent, implies no parameters | |||
| -- ¶mPresence - parameter presence requirement | -- ¶mPresence - parameter presence requirement | |||
| -- &PublicKeySet - specifies which public keys are used with | -- &PublicKeySet - specifies which public keys are used with | |||
| -- this algorithm | -- this algorithm | |||
| skipping to change at line 493 ¶ | skipping to change at line 412 ¶ | |||
| [PARAMS [TYPE &Params] ARE ¶mPresence] | [PARAMS [TYPE &Params] ARE ¶mPresence] | |||
| [PUBLIC-KEYS &PublicKeySet] | [PUBLIC-KEYS &PublicKeySet] | |||
| [UKM [TYPE &Ukm] ARE &ukmPresence] | [UKM [TYPE &Ukm] ARE &ukmPresence] | |||
| [SMIME-CAPS &smimeCaps] | [SMIME-CAPS &smimeCaps] | |||
| } | } | |||
| END | END | |||
| ]]></sourcecode> | ]]></sourcecode> | |||
| </section> | </section> | |||
| <section anchor="asn1-mod-2"> | <section anchor="asn1-mod-2"> | |||
| <name>CMS-KEMRecipientInfo ASN.1 Module</name> | <name>CMS-KEMRecipientInfo-2023 ASN.1 Module</name> | |||
| <t>RFC Editor: Please replace "[THISRFC]" with the the number assigned | ||||
| to this document.</t> | ||||
| <sourcecode type="asn.1" markers="true"><![CDATA[ | <sourcecode type="asn.1" markers="true"><![CDATA[ | |||
| CMS-KEMRecipientInfo-2023 | CMS-KEMRecipientInfo-2023 | |||
| { iso(1) member-body(2) us(840) rsadsi(113549) | { iso(1) member-body(2) us(840) rsadsi(113549) | |||
| pkcs(1) pkcs-9(9) smime(16) modules(0) | pkcs(1) pkcs-9(9) smime(16) modules(0) | |||
| id-mod-cms-kemri-2023(TBD2) } | id-mod-cms-kemri-2023(77) } | |||
| DEFINITIONS IMPLICIT TAGS ::= | DEFINITIONS IMPLICIT TAGS ::= | |||
| BEGIN | BEGIN | |||
| -- EXPORTS ALL; | -- EXPORTS ALL; | |||
| IMPORTS | IMPORTS | |||
| OTHER-RECIPIENT, CMSVersion, RecipientIdentifier, | OTHER-RECIPIENT, CMSVersion, RecipientIdentifier, | |||
| EncryptedKey, KeyDerivationAlgorithmIdentifier, | EncryptedKey, KeyDerivationAlgorithmIdentifier, | |||
| KeyEncryptionAlgorithmIdentifier, UserKeyingMaterial | KeyEncryptionAlgorithmIdentifier, UserKeyingMaterial | |||
| FROM CryptographicMessageSyntax-2010 -- [RFC6268] | FROM CryptographicMessageSyntax-2010 -- RFC 6268 | |||
| { iso(1) member-body(2) us(840) rsadsi(113549) | { iso(1) member-body(2) us(840) rsadsi(113549) | |||
| pkcs(1) pkcs-9(9) smime(16) modules(0) | pkcs(1) pkcs-9(9) smime(16) modules(0) | |||
| id-mod-cms-2009(58) } | id-mod-cms-2009(58) } | |||
| KEM-ALGORITHM | KEM-ALGORITHM | |||
| FROM KEMAlgorithmInformation-2023 -- [THISRFC] | FROM KEMAlgorithmInformation-2023 -- RFC 9629 | |||
| { iso(1) identified-organization(3) dod(6) internet(1) | { iso(1) identified-organization(3) dod(6) internet(1) | |||
| security(5) mechanisms(5) pkix(7) id-mod(0) | security(5) mechanisms(5) pkix(7) id-mod(0) | |||
| id-mod-kemAlgorithmInformation-2023(TBD3) } | id-mod-kemAlgorithmInformation-2023(109) } | |||
| AlgorithmIdentifier{} | AlgorithmIdentifier{} | |||
| FROM AlgorithmInformation-2009 -- [RFC5912] | FROM AlgorithmInformation-2009 -- RFC 5912 | |||
| { iso(1) identified-organization(3) dod(6) internet(1) | { iso(1) identified-organization(3) dod(6) internet(1) | |||
| security(5) mechanisms(5) pkix(7) id-mod(0) | security(5) mechanisms(5) pkix(7) id-mod(0) | |||
| id-mod-algorithmInformation-02(58) } ; | id-mod-algorithmInformation-02(58) } ; | |||
| -- | -- | |||
| -- OtherRecipientInfo Types (ori-) | -- OtherRecipientInfo Types (ori-) | |||
| -- | -- | |||
| SupportedOtherRecipInfo OTHER-RECIPIENT ::= { ori-KEM, ... } | SupportedOtherRecipInfo OTHER-RECIPIENT ::= { ori-KEM, ... } | |||
| skipping to change at line 573 ¶ | skipping to change at line 490 ¶ | |||
| wrap KeyEncryptionAlgorithmIdentifier, | wrap KeyEncryptionAlgorithmIdentifier, | |||
| kekLength INTEGER (1..65535), | kekLength INTEGER (1..65535), | |||
| ukm [0] EXPLICIT UserKeyingMaterial OPTIONAL } | ukm [0] EXPLICIT UserKeyingMaterial OPTIONAL } | |||
| END | END | |||
| ]]></sourcecode> | ]]></sourcecode> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="sec-cons"> | <section anchor="sec-cons"> | |||
| <name>Security Considerations</name> | <name>Security Considerations</name> | |||
| <t>The Security Considerations of <xref target="RFC5652"/> are applicable to this document.</t> | <t>The security considerations discussed in <xref target="RFC5652"/> are a pplicable to this document.</t> | |||
| <t>To be appropriate for use with this specification, the KEM algorithm <b cp14>MUST</bcp14> | <t>To be appropriate for use with this specification, the KEM algorithm <b cp14>MUST</bcp14> | |||
| explicitly be designed to be secure when the public key is used many | explicitly be designed to be secure when the public key is used many | |||
| times. For example, a KEM algorithm with a single-use public key is not | times. For example, a KEM algorithm with a single-use public key is not | |||
| appropriate because the public key is expected to be carried in a | appropriate, because the public key is expected to be carried in a | |||
| long-lived certificate <xref target="RFC5280"/> and used over and over. Thus, K EM | long-lived certificate <xref target="RFC5280"/> and used over and over. Thus, K EM | |||
| algorithms that offer indistinguishability under adaptive chosen ciphertext | algorithms that offer indistinguishability under adaptive chosen ciphertext | |||
| attack (IND-CCA2) security are appropriate. A common design pattern for | attack (IND-CCA2) security are appropriate. A common design pattern for | |||
| obtaining IND-CCA2 security with public key reuse is to apply the | obtaining IND-CCA2 security with public key reuse is to apply the | |||
| Fujisaki-Okamoto (FO) transform <xref target="FO"/> or a variant of the FO | Fujisaki-Okamoto (FO) transform <xref target="FO"/> or a variant of the FO | |||
| transform <xref target="HHK"/>.</t> | transform <xref target="HHK"/>.</t> | |||
| <t>The KDF <bcp14>SHOULD</bcp14> offer at least the security level of the KEM.</t> | <t>The KDF <bcp14>SHOULD</bcp14> offer at least the security level of the KEM.</t> | |||
| <t>The choice of the key-encryption algorithm and the size of the | <t>The choice of the key-encryption algorithm and the size of the | |||
| KEK <bcp14>SHOULD</bcp14> be made based on the security level | KEK <bcp14>SHOULD</bcp14> be made based on the security level | |||
| provided by the KEM. The key-encryption algorithm and the | provided by the KEM. The key-encryption algorithm and the | |||
| KEK <bcp14>SHOULD</bcp14> at least have the security level of | KEK <bcp14>SHOULD</bcp14> offer at least the security level of | |||
| the KEM.</t> | the KEM.</t> | |||
| <t>KEM algorithms do not provide data origin authentication; therefore, wh en | <t>KEM algorithms do not provide data origin authentication; therefore, wh en | |||
| a KEM algorithm is used with the authenticated-data content type, the | a KEM algorithm is used with the authenticated-data content type, the | |||
| contents are delivered with integrity from an unknown source.</t> | contents are delivered with integrity from an unknown source.</t> | |||
| <t>Implementations <bcp14>MUST</bcp14> protect the KEM private key, the KE K, the CEK (or the | <t>Implementations <bcp14>MUST</bcp14> protect the KEM private key, the KE K, and the CEK (or the | |||
| CAEK). Compromise of the KEM private key may | CAEK). Compromise of the KEM private key may | |||
| result in the disclosure of all contents protected with that KEM private key. | result in the disclosure of all contents protected with that KEM private key. | |||
| However, compromise of the KEK, the CEK, or the CAEK may result in disclosure | However, compromise of the KEK, the CEK, or the CAEK may result in disclosure | |||
| of the encrypted content of a single message.</t> | of the encrypted content of a single message.</t> | |||
| <t>The KEM produces the IKM input value for the KDF. This IKM value <bcp1 4>MUST NOT</bcp14> | <t>The KEM produces the IKM input value for the KDF. This IKM value <bcp1 4>MUST NOT</bcp14> | |||
| be reused for any other purpose. Likewise, any random value used by | be reused for any other purpose. Likewise, any random value used by | |||
| the KEM algorithm to produce the shared secret or its encapsulation <bcp14>MUST NOT</bcp14> | the KEM algorithm to produce the shared secret or its encapsulation <bcp14>MUST NOT</bcp14> | |||
| be reused for any other purpose. That is, the originator <bcp14>MUST</bcp14> ge nerate a | be reused for any other purpose. That is, the originator <bcp14>MUST</bcp14> ge nerate a | |||
| fresh KEM shared secret for each recipient in the KEMRecipientInfo | fresh KEM shared secret for each recipient in the KEMRecipientInfo | |||
| structure, including any random value used by the KEM algorithm to produce | structure, including any random value used by the KEM algorithm to produce | |||
| the KEM shared secret. In addition, the originator <bcp14>MUST</bcp14> discard the KEM shared | the KEM shared secret. In addition, the originator <bcp14>MUST</bcp14> discard the KEM shared | |||
| secret, including any random value used by the KEM algorithm to produce | secret, including any random value used by the KEM algorithm to produce | |||
| the KEM shared secret, after constructing the entry in the KEMRecipientInfo | the KEM shared secret, after constructing the entry in the KEMRecipientInfo | |||
| structure for the corresponding recipient. Similarly, the recipient <bcp14>MUST </bcp14> | structure for the corresponding recipient. Similarly, the recipient <bcp14>MUST </bcp14> | |||
| discard the KEM shared secret, including any random value used by the KEM | discard the KEM shared secret, including any random value used by the KEM | |||
| algorithm to produce the KEM shared secret, after constructing the | algorithm to produce the KEM shared secret, after constructing the | |||
| KEK from the KEMRecipientInfo structure.</t> | KEK from the KEMRecipientInfo structure.</t> | |||
| <t>Implementations <bcp14>MUST</bcp14> randomly generate content-encryptio n keys, | <t>Implementations <bcp14>MUST</bcp14> randomly generate content-encryptio n keys, | |||
| content-authenticated-encryption keys, and message-authentication keys. | content-authenticated-encryption keys, and message-authentication keys. | |||
| Also, the generation of KEM key pairs relies on random numbers. The use | Also, the generation of KEM key pairs relies on random numbers. The use | |||
| of inadequate pseudo-random number generators (PRNGs) to generate these | of inadequate pseudorandom number generators (PRNGs) to generate these | |||
| keys can result in little or no security. An attacker may find it much | keys can result in little or no security. An attacker may find it much | |||
| easier to reproduce the PRNG environment that produced the keys, | easier to reproduce the PRNG environment that produced the keys, | |||
| searching the resulting small set of possibilities, rather than brute | searching the resulting small set of possibilities, rather than brute-force sear | |||
| force searching the whole key space. The generation of quality random | ching the whole key space. The generation of quality random | |||
| numbers is difficult. <xref target="RFC4086"/> offers important guidance in thi s area.</t> | numbers is difficult. <xref target="RFC4086"/> offers important guidance in thi s area.</t> | |||
| <t>If the cipher and key sizes used for the key-encryption and the | <t>If the cipher and key sizes used for the key-encryption algorithm and t | |||
| content-encryption algorithms are different, the effective security is | he | |||
| content-encryption algorithm are different, the effective security is | ||||
| determined by the weaker of the two algorithms. If, for example, the | determined by the weaker of the two algorithms. If, for example, the | |||
| content is encrypted with AES-CBC using a 128-bit CEK, and the CEK is | content is encrypted with AES-CBC using a 128-bit CEK and the CEK is | |||
| wrapped with AES-KEYWRAP using a 256-bit KEK, then at most 128 bits of | wrapped with AES-KEYWRAP using a 256-bit KEK, then at most 128 bits of | |||
| protection is provided.</t> | protection is provided.</t> | |||
| <t>If the cipher and key sizes used for the key-encryption and the | <t>If the cipher and key sizes used for the key-encryption algorithm and t | |||
| content-authenticated-encryption algorithms are different, the effective | he | |||
| content-authenticated-encryption algorithm are different, the effective | ||||
| security is determined by the weaker of the two algorithms. If, for example, | security is determined by the weaker of the two algorithms. If, for example, | |||
| the content is encrypted with AES-GCM using a 128-bit | the content is encrypted with AES-GCM using a 128-bit | |||
| CAEK, and the CAEK is wrapped with AES-KEYWRAP using a 192-bit KEK, then at | CAEK and the CAEK is wrapped with AES-KEYWRAP using a 192-bit KEK, then at | |||
| most 128 bits of protection is provided.</t> | most 128 bits of protection is provided.</t> | |||
| <t>If the cipher and key sizes used for the key-encryption and the | <t>If the cipher and key sizes used for the key-encryption algorithm and t | |||
| message-authentication algorithms are different, the effective security is | he | |||
| message-authentication algorithm are different, the effective security is | ||||
| determined by the weaker of the two algorithms. If, for example, the | determined by the weaker of the two algorithms. If, for example, the | |||
| content is authenticated with HMAC-SHA256 using a 512-bit | content is authenticated with HMAC-SHA256 using a 512-bit | |||
| message-authentication key, and the message-authentication key is wrapped | message-authentication key and the message-authentication key is wrapped | |||
| with AES-KEYWRAP using a 256-bit KEK, then at most 256 bits of | with AES-KEYWRAP using a 256-bit KEK, then at most 256 bits of | |||
| protection is provided.</t> | protection is provided.</t> | |||
| <t>Implementers should be aware that cryptographic algorithms, including K EM | <t>Implementers should be aware that cryptographic algorithms, including K EM | |||
| algorithms, become weaker with time. As new cryptoanalysis techniques are | algorithms, become weaker with time. As new cryptoanalysis techniques are | |||
| developed and computing capabilities advance, the work factor to break a | developed and computing capabilities advance, the work factor to break a | |||
| particular cryptographic algorithm will be reduced. As a result, | particular cryptographic algorithm will be reduced. As a result, | |||
| cryptographic algorithm implementations should be modular, allowing new | cryptographic algorithm implementations should be modular, allowing new | |||
| algorithms to be readily inserted. That is, implementers should be prepared | algorithms to be readily inserted. That is, implementers should be prepared | |||
| for the set of supported algorithms to change over time.</t> | for the set of supported algorithms to change over time.</t> | |||
| </section> | </section> | |||
| <section anchor="iana"> | <section anchor="iana"> | |||
| <name>IANA Considerations</name> | <name>IANA Considerations</name> | |||
| <t>For KEMRecipientInfo in <xref target="kemri"/>, IANA has assigned the o | <t>For KEMRecipientInfo as defined in <xref target="kemri"/>, IANA has | |||
| bject identifier (OID) | assigned the following OID in the "SMI Security for | |||
| for (1.2.840.113549.1.9.16.13.3) in the "SMI Security for S/MIME Other Recipient | S/MIME Other Recipient Info Identifiers (1.2.840.113549.1.9.16.13)" | |||
| Info Identifiers" registry (1.2.840.113549.1.9.16.13), and the Description | registry: | |||
| for the new OID has been set to "id-ori-kem".</t> | </t> | |||
| <t>For the ASN.1 Module in <xref target="asn1-mod-1"/>, IANA is requested | ||||
| to assign an | <table anchor="iana-table1" align="left"> | |||
| object identifier (OID) for the module identifier to replace TBD3. The | <name></name> | |||
| OID for the module should be allocated in the "SMI Security for PKIX | <thead> | |||
| Module Identifier" registry (1.3.6.1.5.5.7.0), and the Description | <tr> | |||
| for the new OID should be set to "id-mod-kemAlgorithmInformation-2023".</t> | <th>Decimal</th> | |||
| <t>For the ASN.1 Module in <xref target="asn1-mod-2"/>, IANA is requested | <th>Description</th> | |||
| to assign an | <th>References</th> | |||
| object identifier (OID) for the module identifier to replace TBD2. The | </tr> | |||
| OID for the module should be allocated in the "SMI Security for S/MIME | </thead> | |||
| Module Identifier" registry (1.2.840.113549.1.9.16.0), and the Description | <tbody> | |||
| for the new OID should be set to "id-mod-cms-kemri-2023".</t> | <tr> | |||
| </section> | <td>3</td> | |||
| <section numbered="false" anchor="acknowledgements"> | <td>id-ori-kem</td> | |||
| <name>Acknowledgements</name> | <td>RFC 9629</td> | |||
| <t>Our thanks to Burt Kaliski for his guidance and design review.</t> | </tr> | |||
| <t>Our thanks to Carl Wallace for his careful review of the ASN.1 modules. | </tbody> | |||
| </t> | </table> | |||
| <t>Our thanks to | ||||
| Hendrik Brockhaus, | <t>For the ASN.1 module defined in <xref target="asn1-mod-1"/>, IANA has | |||
| Jonathan Hammell, | assigned the following OID in the "SMI Security for PKIX Module | |||
| Mike Jenkins, | Identifier" registry (1.3.6.1.5.5.7.0): | |||
| David von Oheimb, | </t> | |||
| Francois Rousseau, and | ||||
| Linda Dunbar | <table anchor="iana-table2" align="left"> | |||
| for their careful review and thoughtful comments.</t> | <name></name> | |||
| <thead> | ||||
| <tr> | ||||
| <th>Decimal</th> | ||||
| <th>Description</th> | ||||
| <th>References</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td>109</td> | ||||
| <td>id-mod-kemAlgorithmInformation-2023</td> | ||||
| <td>RFC 9629</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| <t>For the ASN.1 module defined in <xref target="asn1-mod-2"/>, IANA has | ||||
| assigned the following OID in the "SMI Security for S/MIME Module | ||||
| Identifier (1.2.840.113549.1.9.16.0)" registry: | ||||
| </t> | ||||
| <table anchor="iana-table3" align="left"> | ||||
| <name></name> | ||||
| <thead> | ||||
| <tr> | ||||
| <th>Decimal</th> | ||||
| <th>Description</th> | ||||
| <th>References</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td>77</td> | ||||
| <td>id-mod-cms-kemri-2023</td> | ||||
| <td>RFC 9629</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| </section> | </section> | |||
| </middle> | </middle> | |||
| <back> | <back> | |||
| <references> | <references> | |||
| <name>References</name> | <name>References</name> | |||
| <references anchor="sec-normative-references"> | <references anchor="sec-normative-references"> | |||
| <name>Normative References</name> | <name>Normative References</name> | |||
| <reference anchor="RFC5083"> | ||||
| <front> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.50 | |||
| <title>Cryptographic Message Syntax (CMS) Authenticated-Enveloped-Da | 83.xml"/> | |||
| ta Content Type</title> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.52 | |||
| <author fullname="R. Housley" initials="R." surname="Housley"/> | 80.xml"/> | |||
| <date month="November" year="2007"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.56 | |||
| <abstract> | 52.xml"/> | |||
| <t>This document describes an additional content type for the Cryp | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.59 | |||
| tographic Message Syntax (CMS). The authenticated-enveloped-data content type is | 11.xml"/> | |||
| intended for use with authenticated encryption modes. All of the various key ma | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.59 | |||
| nagement techniques that are supported in the CMS enveloped-data content type ar | 12.xml"/> | |||
| e also supported by the CMS authenticated-enveloped-data content type. [STANDARD | ||||
| S-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5083"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5083"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5280"> | ||||
| <front> | ||||
| <title>Internet X.509 Public Key Infrastructure Certificate and Cert | ||||
| ificate Revocation List (CRL) Profile</title> | ||||
| <author fullname="D. Cooper" initials="D." surname="Cooper"/> | ||||
| <author fullname="S. Santesson" initials="S." surname="Santesson"/> | ||||
| <author fullname="S. Farrell" initials="S." surname="Farrell"/> | ||||
| <author fullname="S. Boeyen" initials="S." surname="Boeyen"/> | ||||
| <author fullname="R. Housley" initials="R." surname="Housley"/> | ||||
| <author fullname="W. Polk" initials="W." surname="Polk"/> | ||||
| <date month="May" year="2008"/> | ||||
| <abstract> | ||||
| <t>This memo profiles the X.509 v3 certificate and X.509 v2 certif | ||||
| icate revocation list (CRL) for use in the Internet. An overview of this approac | ||||
| h and model is provided as an introduction. The X.509 v3 certificate format is d | ||||
| escribed in detail, with additional information regarding the format and semanti | ||||
| cs of Internet name forms. Standard certificate extensions are described and two | ||||
| Internet-specific extensions are defined. A set of required certificate extensi | ||||
| ons is specified. The X.509 v2 CRL format is described in detail along with stan | ||||
| dard and Internet-specific extensions. An algorithm for X.509 certification path | ||||
| validation is described. An ASN.1 module and examples are provided in the appen | ||||
| dices. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5280"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5280"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5652"> | ||||
| <front> | ||||
| <title>Cryptographic Message Syntax (CMS)</title> | ||||
| <author fullname="R. Housley" initials="R." surname="Housley"/> | ||||
| <date month="September" year="2009"/> | ||||
| <abstract> | ||||
| <t>This document describes the Cryptographic Message Syntax (CMS). | ||||
| This syntax is used to digitally sign, digest, authenticate, or encrypt arbitra | ||||
| ry message content. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="STD" value="70"/> | ||||
| <seriesInfo name="RFC" value="5652"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5652"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5911"> | ||||
| <front> | ||||
| <title>New ASN.1 Modules for Cryptographic Message Syntax (CMS) and | ||||
| S/MIME</title> | ||||
| <author fullname="P. Hoffman" initials="P." surname="Hoffman"/> | ||||
| <author fullname="J. Schaad" initials="J." surname="Schaad"/> | ||||
| <date month="June" year="2010"/> | ||||
| <abstract> | ||||
| <t>The Cryptographic Message Syntax (CMS) format, and many associa | ||||
| ted formats, are expressed using ASN.1. The current ASN.1 modules conform to the | ||||
| 1988 version of ASN.1. This document updates those ASN.1 modules to conform to | ||||
| the 2002 version of ASN.1. There are no bits-on-the-wire changes to any of the f | ||||
| ormats; this is simply a change to the syntax. This document is not an Internet | ||||
| Standards Track specification; it is published for informational purposes.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5911"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5911"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5912"> | ||||
| <front> | ||||
| <title>New ASN.1 Modules for the Public Key Infrastructure Using X.5 | ||||
| 09 (PKIX)</title> | ||||
| <author fullname="P. Hoffman" initials="P." surname="Hoffman"/> | ||||
| <author fullname="J. Schaad" initials="J." surname="Schaad"/> | ||||
| <date month="June" year="2010"/> | ||||
| <abstract> | ||||
| <t>The Public Key Infrastructure using X.509 (PKIX) certificate fo | ||||
| rmat, and many associated formats, are expressed using ASN.1. The current ASN.1 | ||||
| modules conform to the 1988 version of ASN.1. This document updates those ASN.1 | ||||
| modules to conform to the 2002 version of ASN.1. There are no bits-on-the-wire c | ||||
| hanges to any of the formats; this is simply a change to the syntax. This docume | ||||
| nt is not an Internet Standards Track specification; it is published for informa | ||||
| tional purposes.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5912"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5912"/> | ||||
| </reference> | ||||
| <reference anchor="X.680" target="https://www.itu.int/rec/T-REC-X.680"> | <reference anchor="X.680" target="https://www.itu.int/rec/T-REC-X.680"> | |||
| <front> | <front> | |||
| <title>Information technology -- Abstract Syntax Notation One (ASN.1 ): Specification of basic notation</title> | <title>Information technology - Abstract Syntax Notation One (ASN.1) : Specification of basic notation</title> | |||
| <author> | <author> | |||
| <organization>ITU-T</organization> | <organization>ITU-T</organization> | |||
| </author> | </author> | |||
| <date year="2021" month="February"/> | <date year="2021" month="February"/> | |||
| </front> | </front> | |||
| <seriesInfo name="ITU-T Recommendation" value="X.680"/> | <seriesInfo name="ITU-T Recommendation" value="X.680"/> | |||
| <seriesInfo name="ISO/IEC" value="8824-1:2021"/> | <seriesInfo name="ISO/IEC" value="8824-1:2021"/> | |||
| </reference> | </reference> | |||
| <reference anchor="X.690" target="https://www.itu.int/rec/T-REC-X.680"> | ||||
| <reference anchor="X.690" target="https://www.itu.int/rec/T-REC-X.690"> | ||||
| <front> | <front> | |||
| <title>Information technology -- ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title> | <title>Information technology - ASN.1 encoding rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title> | |||
| <author> | <author> | |||
| <organization>ITU-T</organization> | <organization>ITU-T</organization> | |||
| </author> | </author> | |||
| <date year="2021" month="February"/> | <date year="2021" month="February"/> | |||
| </front> | </front> | |||
| <seriesInfo name="ITU-T Recommendation" value="X.690"/> | <seriesInfo name="ITU-T Recommendation" value="X.690"/> | |||
| <seriesInfo name="ISO/IEC" value="8825-1:2021"/> | <seriesInfo name="ISO/IEC" value="8825-1:2021"/> | |||
| </reference> | </reference> | |||
| <reference anchor="RFC2119"> | ||||
| <front> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | |||
| <title>Key words for use in RFCs to Indicate Requirement Levels</tit | 119.xml"/> | |||
| le> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | |||
| <author fullname="S. Bradner" initials="S." surname="Bradner"/> | 174.xml"/> | |||
| <date month="March" year="1997"/> | ||||
| <abstract> | ||||
| <t>In many standards track documents several words are used to sig | ||||
| nify the requirements in the specification. These words are often capitalized. T | ||||
| his document defines these words as they should be interpreted in IETF documents | ||||
| . This document specifies an Internet Best Current Practices for the Internet Co | ||||
| mmunity, and requests discussion and suggestions for improvements.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="14"/> | ||||
| <seriesInfo name="RFC" value="2119"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC2119"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8174"> | ||||
| <front> | ||||
| <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</ti | ||||
| tle> | ||||
| <author fullname="B. Leiba" initials="B." surname="Leiba"/> | ||||
| <date month="May" year="2017"/> | ||||
| <abstract> | ||||
| <t>RFC 2119 specifies common key words that may be used in protoco | ||||
| l specifications. This document aims to reduce the ambiguity by clarifying that | ||||
| only UPPERCASE usage of the key words have the defined special meanings.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="14"/> | ||||
| <seriesInfo name="RFC" value="8174"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8174"/> | ||||
| </reference> | ||||
| </references> | </references> | |||
| <references anchor="sec-informative-references"> | <references anchor="sec-informative-references"> | |||
| <name>Informative References</name> | <name>Informative References</name> | |||
| <reference anchor="RFC4086"> | ||||
| <front> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4 | |||
| <title>Randomness Requirements for Security</title> | 086.xml"/> | |||
| <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3 | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5 | |||
| rd"/> | 869.xml"/> | |||
| <author fullname="J. Schiller" initials="J." surname="Schiller"/> | <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | |||
| <author fullname="S. Crocker" initials="S." surname="Crocker"/> | 268.xml"/> | |||
| <date month="June" year="2005"/> | ||||
| <abstract> | <reference anchor="FO" target="https://doi.org/10.1007/s00145-011-9114-1 | |||
| <t>Security systems are built on strong cryptographic algorithms t | "> | |||
| hat foil pattern analysis attempts. However, the security of these systems is de | ||||
| pendent on generating secret quantities for passwords, cryptographic keys, and s | ||||
| imilar quantities. The use of pseudo-random processes to generate secret quantit | ||||
| ies can result in pseudo-security. A sophisticated attacker may find it easier t | ||||
| o reproduce the environment that produced the secret quantities and to search th | ||||
| e resulting small set of possibilities than to locate the quantities in the whol | ||||
| e of the potential number space.</t> | ||||
| <t>Choosing random quantities to foil a resourceful and motivated | ||||
| adversary is surprisingly difficult. This document points out many pitfalls in u | ||||
| sing poor entropy sources or traditional pseudo-random number generation techniq | ||||
| ues for generating such quantities. It recommends the use of truly random hardwa | ||||
| re techniques and shows that the existing hardware on many systems can be used f | ||||
| or this purpose. It provides suggestions to ameliorate the problem when a hardwa | ||||
| re solution is not available, and it gives examples of how large such quantities | ||||
| need to be for some applications. This document specifies an Internet Best Curr | ||||
| ent Practices for the Internet Community, and requests discussion and suggestion | ||||
| s for improvements.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="106"/> | ||||
| <seriesInfo name="RFC" value="4086"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC4086"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5869"> | ||||
| <front> | ||||
| <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)< | ||||
| /title> | ||||
| <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/> | ||||
| <author fullname="P. Eronen" initials="P." surname="Eronen"/> | ||||
| <date month="May" year="2010"/> | ||||
| <abstract> | ||||
| <t>This document specifies a simple Hashed Message Authentication | ||||
| Code (HMAC)-based key derivation function (HKDF), which can be used as a buildin | ||||
| g block in various protocols and applications. The key derivation function (KDF) | ||||
| is intended to support a wide range of applications and requirements, and is co | ||||
| nservative in its use of cryptographic hash functions. This document is not an I | ||||
| nternet Standards Track specification; it is published for informational purpose | ||||
| s.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5869"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5869"/> | ||||
| </reference> | ||||
| <reference anchor="RFC6268"> | ||||
| <front> | ||||
| <title>Additional New ASN.1 Modules for the Cryptographic Message Sy | ||||
| ntax (CMS) and the Public Key Infrastructure Using X.509 (PKIX)</title> | ||||
| <author fullname="J. Schaad" initials="J." surname="Schaad"/> | ||||
| <author fullname="S. Turner" initials="S." surname="Turner"/> | ||||
| <date month="July" year="2011"/> | ||||
| <abstract> | ||||
| <t>The Cryptographic Message Syntax (CMS) format, and many associa | ||||
| ted formats, are expressed using ASN.1. The current ASN.1 modules conform to the | ||||
| 1988 version of ASN.1. This document updates some auxiliary ASN.1 modules to co | ||||
| nform to the 2008 version of ASN.1; the 1988 ASN.1 modules remain the normative | ||||
| version. There are no bits- on-the-wire changes to any of the formats; this is s | ||||
| imply a change to the syntax. This document is not an Internet Standards Track s | ||||
| pecification; it is published for informational purposes.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="6268"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6268"/> | ||||
| </reference> | ||||
| <reference anchor="FO"> | ||||
| <front> | <front> | |||
| <title>Secure Integration of Asymmetric and Symmetric Encryption Sch emes</title> | <title>Secure Integration of Asymmetric and Symmetric Encryption Sch emes</title> | |||
| <author fullname="Eiichiro Fujisaki" initials="E." surname="Fujisaki "> | <author fullname="Eiichiro Fujisaki" initials="E." surname="Fujisaki "> | |||
| <organization/> | <organization/> | |||
| </author> | </author> | |||
| <author fullname="Tatsuaki Okamoto" initials="T." surname="Okamoto"> | <author fullname="Tatsuaki Okamoto" initials="T." surname="Okamoto"> | |||
| <organization/> | <organization/> | |||
| </author> | </author> | |||
| <date month="December" year="2011"/> | <date month="December" year="2011"/> | |||
| </front> | </front> | |||
| <seriesInfo name="Journal of Cryptology" value="vol. 26, no. 1, pp. 80 | ||||
| -101"/> | ||||
| <seriesInfo name="DOI" value="10.1007/s00145-011-9114-1"/> | ||||
| <refcontent>Springer Science and Business Media LLC</refcontent> | <refcontent>Springer Science and Business Media LLC</refcontent> | |||
| <refcontent>Journal of Cryptology, vol. 26, no. 1, pp. 80-101</refcont | ||||
| ent> | ||||
| <seriesInfo name="DOI" value="10.1007/s00145-011-9114-1"/> | ||||
| </reference> | </reference> | |||
| <reference anchor="HHK"> | ||||
| <reference anchor="HHK" target="https://doi.org/10.1007/978-3-319-70500- | ||||
| 2_12"> | ||||
| <front> | <front> | |||
| <title>A Modular Analysis of the Fujisaki-Okamoto Transformation</ti tle> | <title>A Modular Analysis of the Fujisaki-Okamoto Transformation</ti tle> | |||
| <author fullname="Dennis Hofheinz" initials="D." surname="Hofheinz"> | <author fullname="Dennis Hofheinz" initials="D." surname="Hofheinz"> | |||
| <organization/> | <organization/> | |||
| </author> | </author> | |||
| <author fullname="Kathrin Hövelmanns" initials="K." surname="Hövelma nns"> | <author fullname="Kathrin Hövelmanns" initials="K." surname="Hövelma nns"> | |||
| <organization/> | <organization/> | |||
| </author> | </author> | |||
| <author fullname="Eike Kiltz" initials="E." surname="Kiltz"> | <author fullname="Eike Kiltz" initials="E." surname="Kiltz"> | |||
| <organization/> | <organization/> | |||
| </author> | </author> | |||
| <date year="2017"/> | <date month="November" year="2017"/> | |||
| </front> | </front> | |||
| <seriesInfo name="Theory of Cryptography" value="pp. 341-371"/> | ||||
| <seriesInfo name="DOI" value="10.1007/978-3-319-70500-2_12"/> | ||||
| <seriesInfo name="ISBN" value="["9783319704999", "97833 | ||||
| 19705002"]"/> | ||||
| <refcontent>Springer International Publishing</refcontent> | <refcontent>Springer International Publishing</refcontent> | |||
| <refcontent>Theory of Cryptography, TCC 2017, Lecture Notes in Compute | ||||
| r Science, vol. 10677, pp. 341-371</refcontent> | ||||
| <refcontent>Print ISBN 9783319704999, Online ISBN 9783319705002</refco | ||||
| ntent> | ||||
| <seriesInfo name="DOI" value="10.1007/978-3-319-70500-2_12"/> | ||||
| </reference> | </reference> | |||
| </references> | </references> | |||
| </references> | </references> | |||
| <?line 685?> | <section numbered="false" anchor="acknowledgements"> | |||
| <name>Acknowledgements</name> | ||||
| <t>Our thanks to <contact fullname="Burt Kaliski"/> for his guidance and d | ||||
| esign review.</t> | ||||
| <t>Our thanks to <contact fullname="Carl Wallace"/> for his careful review | ||||
| of the ASN.1 modules.</t> | ||||
| <t>Our thanks to | ||||
| <contact fullname="Hendrik Brockhaus"/>, | ||||
| <contact fullname="Jonathan Hammell"/>, | ||||
| <contact fullname="Mike Jenkins"/>, | ||||
| <contact fullname="David von Oheimb"/>, | ||||
| <contact fullname="Francois Rousseau"/>, and | ||||
| <contact fullname="Linda Dunbar"/> | ||||
| for their careful reviews and thoughtful comments.</t> | ||||
| </section> | ||||
| </back> | </back> | |||
| <!-- ##markdown-source: | ||||
| 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 | ||||
| oooReFft1v8BfXD0GVNrAAA= | ||||
| </rfc> | </rfc> | |||
| End of changes. 78 change blocks. | ||||
| 659 lines changed or deleted | 269 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||