<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.23 (Ruby 3.4.1) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

<!ENTITY RFC8126 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8126.xml">
<!ENTITY RFC8179 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8179.xml">
<!ENTITY RFC8789 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8789.xml">
<!ENTITY RFC9371 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9371.xml">
]>


<rfc ipr="trust200902" docName="draft-paulwh-crypto-components-03" category="info" submissionType="IETF">
  <front>
    <title abbrev="Crypto components">Documenting and Referencing Cryptographic Components in IETF Documents</title>

    <author initials="P." surname="Wouters" fullname="Paul Wouters">
      <organization>Aiven</organization>
      <address>
        <email>paul.wouters@aiven.io</email>
      </address>
    </author>
    <author initials="P." surname="Hoffman" fullname="Paul Hoffman">
      <organization>ICANN</organization>
      <address>
        <email>paul.hoffman@icann.org</email>
      </address>
    </author>

    <date year="2025" month="February" day="18"/>

    
    
    

    <abstract>


<?line 29?>

<t>This document describes the history of how cryptographic components have been documented and referenced in the IETF, particularly in RFCs.
It also gives guidance for how such specification should happen in the future.</t>

<t>%%
(To be removed before publication as an RFC)
This document is being developed in SAAG.
There is a git repo for the document at <eref target="https://github.com/paulehoffman/draft-paulwh-crypto-components">https://github.com/paulehoffman/draft-paulwh-crypto-components</eref>.
%%</t>



    </abstract>



  </front>

  <middle>


<?line 40?>

<section anchor="introduction"><name>Introduction</name>

<t>The IETF has many diverse ways to document and reference cryptographic components that are used in protocols. 
These practices have changed over time, based on the IETF community, the IETF leadership, and the types of components needed by protocols.</t>

<t>The purpose of this document is to increase consistency and transparency in how the IETF handles cryptographic components.
It provides input to IETF working groups that are defining new cryptographic components or updating the way they specify cryptographic components, such as in IANA registries.
This document does not define any new policies, but instead describes the many practices that have been used, particularly the practices that are considered best current practices today.</t>

<t>In this document, items such as cryptographic algorithms, base primitives, functions, methods, and constructions are all lumped under the term "cryptographic components".
Doing so avoids the conflicting definitions of what differentiates, for example, a method from a construction.</t>

<t>This document is informative, and thus does not prohibit exceptions from the current practices.
Given the wide variety of historical practices, the difficulty of differentiating what is a base primitive and what is a cryptographic component, and the variety of needs in IETF working groups, the guidance in this document gives leeway for future specifications.</t>

</section>
<section anchor="referencing-cryptography-in-rfcs"><name>Referencing Cryptography in RFCs</name>

<t>RFCs that define secure protocols need to reference cryptographic components, or those RFCs define the components themselves.
It is uncommon for IETF protocols to define cryptographic components; instead, those components are defined elsewhere and referenced in the protocol RFC.</t>

<t>There are many sources for cryptographic references for RFCs.</t>

<section anchor="external"><name>External References for Specifying Cryptography</name>

<t>There are many sources of references for cryptography other than RFCs.
Such sources include:</t>

<t><list style="symbols">
  <t>National standards development organizations (SDOs) such as the U.S. National Institute of Standards and Technology (NIST) and the German Federal Office for Information Security (BSI)</t>
  <t>International SDOs such as the International Standards Organization (ISO) and the International Telecommunications Union (ITU)</t>
  <t>Academic papers and articles</t>
  <t>Internet Drafts not meant to proceed to RFC status</t>
  <t>Web sites of individual cryptographers</t>
</list></t>

</section>
<section anchor="rfcs-for-specifying-cryptography"><name>RFCs for Specifying Cryptography</name>

<t>In order to be published as an RFC, an Internet Draft must be sponsored by one of the following:</t>

<t><list style="symbols">
  <t>An IETF working group (and then the working group's Area Director)</t>
  <t>A research group in the Internet Research Task Force (IRTF)</t>
  <t>An Area Director who is individually sponsoring the draft</t>
  <t>The Independent Submissions Editor (ISE)</t>
  <t>The Internet Architecture Board</t>
</list></t>

<t>RFCs describing cryptographic components have been published by the first four of those.
Note, however, that Area Directors may not be willing to individually sponsor drafts for cryptographic components because other venues for RFC publication can garner better reviews, and because RFCs are often not required for specifying cryptographic components (see <xref target="external"/>).
Documents from working groups and those sponsored by Area Directors must get IETF consensus (as determined by the IESG) before publication as RFCs; see <xref target="RFC8789"/>.</t>

<t>Many RFCs are specifications of cryptographic components, some are specific use cases of cryptography where additional operational constraints apply, and still others simply list cryptographic identifiers such as OIDs or IANA registration values.</t>

<t>Whenever possible, cryptographic components related to a specific protocol should be specified separately from the protocol itself.
This allows better review of the cryptography by cryptographers, and better review of the protocol by protocol experts.</t>

</section>
</section>
<section anchor="using-identifiers-for-cryptography-in-protocols"><name>Using Identifiers for Cryptography in Protocols</name>

<t>IETF working groups often produce RFCs that create registries for cryptographic components.
IRTF research groups, particularly the Crypto Forum Research Group (CFRG), also produce RFCs that create registries for cryptographic components.
Cryptographic components that originate in the IRTF can appear in IETF protocols.</t>

<t>Although a proliferation of cryptographic components is a barrier to interoperability, the IETF encourages experimenting with new cryptographic components.
Identifiers used in IETF protocols are meant to be easy to obtain, as the IETF encourages experimentation and operational testing.
These identifiers are often called "code points" when they are listed in IANA registries, but might also be object identifiers (OIDs).
OIDs are covered in <xref target="oids"/>.</t>

<t>IANA registries are described in depth in <xref target="RFC8126"/>.
The following sections cover aspects of using IANA registries for cryptographic protocols; most of these aspects are the same for non-cryptographic protocols as well.</t>

<section anchor="per-registry-requirements-for-adding-code-points"><name>Per-Registry Requirements for Adding Code Points</name>

<t>In the past, some working groups allowed only a narrow ability to add cryptographic component code points to IANA registries for their protocols, by requiring an RFC.
Recently, the rules for many registries have been updated to make it easier to get code points.
Registry rules with looser requirement may reduce the likelihood that vendors will just take unallocated codepoints (also known as "squatting") because they can create a stable document for their uses; this also leads to more well-documented experimentation.
While the specific registration conditions for "Expert Review" and "Specification Required" are a matter for the WG to specify when creating or updating a registry, overall IETF policies do not require that these specifications be RFCs; they should, however, be stable references.</t>

<t>Stable specifications are important references for developers who rely on a registry with code points.
Individual web sites are probably the least-used references for cryptographic components for good reasons: the URLs for them might change or disappear, the content of the web sites might change in ways that would affect the components' definition, and so on.</t>

<t>Although there is no IETF-wide consensus at the time of this writing as to whether an Internet Drafts are appropriate for all registries as stable references, they have been used in the past.
Most RFCs do not define whether drafts are acceptable a stable reference, but some do give guidance to designated experts on this topic.</t>

<t>There are some IANA registries where the limited allocation space does not allow for handing out many experimental code points, such as those where the number of code points is limited to 256 or fewer.
This necessitates a more conservative approach to code point allocation, and might instead force experiments to use private use code points instead of having allocations for code points that might only be used occasionally.</t>

</section>
<section anchor="private-use-code-points"><name>Private-Use Code Points</name>

<t>Every IANA registry for cryptographic components should reserve some code points for "private use".
These private-use code points can be used by protocol implementers to indicate components that do not have their own code points.
Generally, the RFC describing the protocol will define how the private-use code points can be used in practice.</t>

</section>
<section anchor="vendor-space-code-points"><name>Vendor Space Code Points</name>

<t>Some IANA registries use an allocation scheme that allows for unlimited code points based on "vendor strings".
This allows for wide experimentation in a "vendor space" that acts as a private-use registration.
Such registrations might later be converted to an allocation not based on vendor names if the cryptographic component achieves IETF-wide consensus.</t>

</section>
<section anchor="recommendations-in-iana-registries"><name>Recommendations in IANA Registries</name>

<t>%%
This section needs major work.
It needs to incorporate different models for recommendations in registries, such the differences between TLS and DNSSEC algorithm registries.
It might have suggestions for models.
%%</t>

<t>Each IETF working group and IRTF research group gets to specify the rules for the registries for the cryptographic components they create.</t>

<t>Some IANA registries for specific cryptographic protocols have a column with a name such as "status" or "recommended" that indicates whether the the IETF recommends that a cryptographic component be used in that protocol.
The definition of the column should differentiate between recommending for implementation and recommending for deployment.</t>

<t><list style="symbols">
  <t>Recommendations for implementation tell developers of the protocol whether they should or must include the cryptographic component in their software or hardware implementations.
Such recommendations make the component available to users, letting them choose whether or not to use the component in their deployments.</t>
  <t>Recommendations for deployment tell the users of the protocol whether they should or must use the component in their deployments.</t>
</list></t>

<t>In the former case, the IETF is only speaking to developers; in the latter, the IETF is speaking directly to users who configure their use of the protocol.
This difference between "implementation" and "deployment" has sometimes tripped up working groups, but it is quite important to people trying to understand the IANA registry contents.</t>

<t>Working groups setting up such registries should strongly consider mandating that
decisions on setting the values in these columns to anything other than "MAY" require a standards track RFC.
That is, Independent Stream and IRTF RFCs would not be able to set or change the values in such a table in an IANA registry.</t>

<t>A working group's decision about whether a particular cryptographic component is mandatory, suggested, suggested against, or must not be used, might not be an easy one to make, particularly in light of also having to decide for both implementation and deployment.
Deployed cryptographic components that are known to be weak, such as those with keys that are now considered to be too small, present a significant challenge for working groups.
For such a weak component, clearly the recommendation should be against deployment, but a similar recommend against allowing implementation can make deployed systems unusable.
Such decisions are left to working groups, an are not covered here in any significant depth.
Working groups might batch their decision-making into periodic chosen intervals.
Working groups that choose to go against IETF-wide trends for cryptographic component should clearly state why their choices differ.</t>

<t>Having too many algorithms with a "recommended" status complicates implementations and deployments, and can delay migrations to newer algorithms.</t>

<t>Registries that do not have columns for "implementation" and/or "deployment" can be updated by working groups or the IETF to add those columns.</t>

</section>
<section anchor="oids"><name>OIDs</name>

<t>Some IETF cryptographic protocols (notably CMS, CMP, S/MIME, and PKIX) use OIDs as code points instead of values in IANA registries.
OIDs are a hierarchical numbering system, normally stored in ASN.1 DER or BER encoding, and displayed as a series of positive integers separated by period (".") characters.</t>

<t>In IETF standards, many OIDs for cryptographic components normally are based on a part of the OID tree that was established in the early 1990s.
However, many OIDs come from other parts of the OID tree, and no particular part of the OID tree is better or worse than any other for unique identification of cryptographic components.
In fact, individuals who want to control part of the OID tree (called "private enterprise numbers") can get their own OID prefix directly from IANA as described in <xref target="RFC9371"/>.
The ASN.1 prefix for the IANA PEN tree is 1.3.6.1.4.1.</t>

<t>There is no definitive central source for OID assignments like the IANA registries.
Further, assigning OIDs for cryptographic components in RFCs does not have the flexibility and semantic richness available in IANA registries.
Because of this, OIDs are rarely used for cryptographic identifiers in new protocols unless those new protocols are closely aligned with protocols that already use OIDs.</t>

</section>
<section anchor="identifiers-and-intellectual-property"><name>Identifiers and Intellectual Property</name>

<t>Assigning code points for proprietary cryptographic components or cryptographic components that have known intellectual property rights (IPR) is acceptable as long as any IETF protocol using those code points also allow the protocol to be run without using those components.
The IETF policy on IPR can be found in <xref target="RFC8179"/>.</t>

</section>
</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document contains no actions for IANA.
However, it discusses the use of IANA registries in many places.</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>This document is about the use of cryptography in IETF protocols, and how that cryptography is referenced in those protocols.</t>

<t>Reusing cryptographic components that have already been reviewed and approved in the IETF is usually better than creating new cryptography that must be reviewed before it is used in protocols.</t>

</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">

&RFC8126;


    </references>

    <references title='Informative References' anchor="sec-informative-references">

&RFC8179;
&RFC8789;
&RFC9371;


    </references>

</references>



  </back>

<!-- ##markdown-source:
H4sIAAAAAAAAA6VbXXPbRrJ956+YomtrpSqKtpN7k7WytbWKLTuqu7ZVonyz
+zgEhuTEAAbBAKJ5Xfnv93T3DDAARSVb+2BbIoGZnv44fbp7fHFxMWttW5hL
9cZlXWmq1lZbpatc3ZmNaUyV0e+vm0Pdum2j653N1GtX1q7Co17ZSt1c37/t
X/YzvV435uEyvKKy/tlZ7rJKl9gpb/Smvah1V+x3Fxk/dzE8d/Hi25mtm0vV
Np1vv3nx4tWLb2a+W5fWe+uq9lBjCdp0lun2EhJs3Gymu3bnmsuZUhf4o/Cp
v1S3S/Wz61rTeP5MNr/FtqOPXbPVlf0/3WLxS3VlH0zFn5tS2+JSkZjLvTz/
d03fLq072ucnt9mUupruk3483ufm9dWHD0f77OT5v9tMV9USb8xmdL6mxFsP
ho539/b1X15+/yr++P1f4o+vvv3+5eVsVh09/M13+Pji4kLptW8bnbWz2f3O
epUHk6nc+Kyxa+NVuzMKX7WuOSi3UTu3V9nI8oOV1E4/GLU2puoXMjn7TRP8
Br/CO2hJMtYCB2xam3WFbooDfQPh/HJ20ypdeKe2ENmrbWdzjVcVzszb+y7b
KV+bzG6gE1Kd8jvXFTn2r2tsHrbYdG3XmOVs9qc/zc7uHQSDHKV7gBBrg8WM
qrt1EZfQHpKSAOcTVeDntSGHz82DKVwtZ1hdXb1b4kkci57QELbF8rVjMWn7
fgHdqr/u2rb2l8+f46ldt15CZ8/JuCYY9/nT7v+3JZ2BDVbaPC/MbPZM3VRt
4/IuI+nJfKJT6MArrHhQObTXeKP2+gArukSe1CCnjdnuILjG8TovR64b17rM
FX6paDssXZPr2MwEy2c7XW3xLFQMFdjSLNRa08tusDntUHaVbQ+L4bPC6Byy
7my9YOnoC4ppTx6XiFQZk5P1DokscvS6a2oHifB8O7Uezm6rrDEQBYtVHs6M
kx9kp0ZXHl7IH+CM5F/toMoKuvYnVcSeCkkeLMIFb9ddS5vxu3vXfCan2Tau
qxNl5mZjK/qiMk8EElyoq3PNuEviwIb07yG4/eHkmwuJDi0ofPXhCpbe4sCN
NX45jXEHqSvXikxGkdOQVLVDUOB5WA8HApq1MM8EEdjDBvPz8YboJ4+ZBDe9
NHme1MH2gO05Jn2rsq5pSLbkUZfrA6x8U40tu1C2NaXvzzvWiC62rkGslV58
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

-->

</rfc>

