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. |