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

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc rfcedstyle="yes"?>
<?rfc toc="yes"?>
<?rfc tocindent="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc text-list-symbols="-o*+"?>
<?rfc docmapping="yes"?>
<?rfc toc_levels="4"?>

<rfc ipr="trust200902" docName="draft-moran-suit-mti-00" category="std">

  <front>
    <title abbrev="MTI SUIT Algorithms">Mandatory-to-Implement Algorithms for Creators and Consumers of Software Update for the Internet of Things manifests</title>

    <author initials="B." surname="Moran" fullname="Brendan Moran">
      <organization>Arm Limited</organization>
      <address>
        <email>Brendan.Moran@arm.com</email>
      </address>
    </author>

    <date year="2022" month="July" day="11"/>

    <area>Security</area>
    <workgroup>SUIT</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document specifies algorithm profiles for SUIT manifest parsers and authors to ensure better interoperability.</t>



    </abstract>


  </front>

  <middle>


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

<t>Mandatory algorithms may change over time due to an evolving threat landscape. As a result these are grouped into profiles that a device should use.</t>

<t>the mandatory-to implement algorithms for SUIT are described in this draft in order to provide flexibility in the definition of algorithm profiles.</t>

<t>An authentication algorithm is REQUIRED for ALL SUIT manifests. Encryption algorithms MAY be provided.</t>

</section>
<section anchor="algorithms"><name>Algorithms</name>

<t>The algorithms that form a part of the profiles defined in this document are grouped into:</t>

<t><list style="symbols">
  <t>Digest Algorithms</t>
  <t>Authentication Algorithms</t>
  <t>Key Exchange Algorithms</t>
  <t>Encryption Algorithms</t>
</list></t>

<section anchor="digest-algorithms"><name>Digest Algorithms</name>

<t><list style="symbols">
  <t>SHA-256 (-16)</t>
  <t>SHAKE128 (-18)</t>
  <t>SHA-384 (-43)</t>
  <t>SHA-512 (-44)</t>
  <t>SHAKE256 (-45)</t>
</list></t>

</section>
<section anchor="authentication-algorithms"><name>Authentication Algorithms</name>

<t>Authentication Algorithms are divided into three categories:</t>

<section anchor="symmetric-authentication-algorithm"><name>Symmetric Authentication Algorithm</name>

<t><list style="symbols">
  <t>HMAC-256 (5)</t>
  <t>HMAC-384 (6)</t>
  <t>HMAC-512 (7)</t>
</list></t>

</section>
<section anchor="asymmetric-classical-authentication-algorithms"><name>Asymmetric Classical Authentication Algorithms</name>

<t><list style="symbols">
  <t>ES256 (-7)</t>
  <t>EdDSA (-8)</t>
  <t>ES384 (-35)</t>
  <t>ES512 (-36)</t>
</list></t>

</section>
<section anchor="asymmetric-post-quantum-authentication-algorithms"><name>Asymmetric Post-Quantum Authentication Algorithms</name>

<t><list style="symbols">
  <t>HSS-LMS (-46) <xref target="RFC8778"/></t>
  <t>XMSS (TBD)</t>
  <t>Falcon-512 (TBD)</t>
  <t>SPHINCS+ (TBD)</t>
  <t>Crystals-Dilithium (TBD)</t>
</list></t>

</section>
</section>
<section anchor="key-exchange-algorithms"><name>Key Exchange Algorithms</name>

<t>Key Exchange Algorithms are divided into two three groups: Symmetric, Classical Asymmetric, and Post-Quantum Asymmetric</t>

<section anchor="symmetric"><name>Symmetric</name>

<t><list style="symbols">
  <t>A128 (-3)</t>
  <t>A192 (-4)</t>
  <t>A256 (-5)</t>
</list></t>

</section>
<section anchor="classical-asymmetric"><name>Classical Asymmetric</name>

<t><list style="symbols">
  <t>HPKE (TBD)</t>
  <t>ECDH-ES + HKDF-256 (-25)</t>
  <t>ECDH-ES + HKDF-512 (-26)</t>
  <t>ECDH-ES + A128KW (-29)</t>
  <t>ECDH-ES + A192KW (-30)</t>
  <t>ECDH-ES + A256KW (-31)</t>
</list></t>

</section>
<section anchor="post-quantum-asymmetric"><name>Post-Quantum Asymmetric</name>

<t><list style="symbols">
  <t>CRYSTALS-KYBER (TBD)</t>
</list></t>

</section>
</section>
<section anchor="encryption-algorithms"><name>Encryption Algorithms</name>

<t><list style="symbols">
  <t>A128GCM (1)</t>
  <t>A192GCM (2)</t>
  <t>A256GCM (3)</t>
  <t>ChaCha20/Poly1305 (24)</t>
  <t>AES-MAC 128/128 (25)</t>
  <t>AES-MAC 256/128 (26)</t>
  <t>AES-CCM-16-128-128 (30)</t>
  <t>AES-CCM-16-128-256 (31)</t>
  <t>AES-CCM-64-128-128 (32)</t>
  <t>AES-CCM-64-128-256 (33)</t>
</list></t>

</section>
</section>
<section anchor="profiles"><name>Profiles</name>

<t>The following profiles are defined by this draft:</t>

<t><list style="symbols">
  <t>suit-sha256-es256-hpke-a128gcm
  <list style="symbols">
      <t>SHA-256</t>
      <t>ES256</t>
      <t>HPKE</t>
      <t>AES-128-GCM</t>
    </list></t>
  <t>suit-sha256-hmac-a128-ccm
  <list style="symbols">
      <t>SHA-256</t>
      <t>HMAC-256</t>
      <t>A128W Key Wrap</t>
      <t>AES-CCM-16-128-128</t>
    </list></t>
  <t>suit-sha256-eddsa-ecdh-es-chacha-poly
  <list style="symbols">
      <t>SHA-256</t>
      <t>EdDSA</t>
      <t>ECDH-ES + HKDF-256</t>
      <t>ChaCha20 + Poly1305</t>
    </list></t>
  <t>suit-sha256-hsslms-hpke-a128gcm
  <list style="symbols">
      <t>SHA-256</t>
      <t>HSS-LMS</t>
      <t>HPKE</t>
      <t>AES-128-GCM</t>
    </list></t>
  <t>suit-sha256-falcon512-hpke-a128gcm
  <list style="symbols">
      <t>SHA-256</t>
      <t>HSS-LMS</t>
      <t>HPKE</t>
      <t>AES-128-GCM</t>
    </list></t>
  <t>suit-shake256-dilithium-kyber-a128gcm
  <list style="symbols">
      <t>SHAKE256</t>
      <t>Crystals-Dilithium</t>
      <t>Crystal-Kyber</t>
      <t>AES-128GCM</t>
    </list></t>
</list></t>

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

<t>TODO</t>

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

<t>TODO</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference anchor='RFC8152' target='https://www.rfc-editor.org/info/rfc8152'>
<front>
<title>CBOR Object Signing and Encryption (COSE)</title>
<author fullname='J. Schaad' initials='J.' surname='Schaad'><organization/></author>
<date month='July' year='2017'/>
<abstract><t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size.  There is a need for the ability to have basic security services defined for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol.  This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization.  This specification additionally describes how to represent cryptographic keys using CBOR.</t></abstract>
</front>
<seriesInfo name='RFC' value='8152'/>
<seriesInfo name='DOI' value='10.17487/RFC8152'/>
</reference>



<reference anchor='RFC8778' target='https://www.rfc-editor.org/info/rfc8778'>
<front>
<title>Use of the HSS/LMS Hash-Based Signature Algorithm with CBOR Object Signing and Encryption (COSE)</title>
<author fullname='R. Housley' initials='R.' surname='Housley'><organization/></author>
<date month='April' year='2020'/>
<abstract><t>This document specifies the conventions for using the Hierarchical Signature System (HSS) / Leighton-Micali Signature (LMS) hash-based signature algorithm with the CBOR Object Signing and Encryption (COSE) syntax. The HSS/LMS algorithm is one form of hash-based digital signature; it is described in RFC 8554.</t></abstract>
</front>
<seriesInfo name='RFC' value='8778'/>
<seriesInfo name='DOI' value='10.17487/RFC8778'/>
</reference>




    </references>

    <references title='Informative References'>




<reference anchor='I-D.ietf-suit-manifest'>
   <front>
      <title>A Concise Binary Object Representation (CBOR)-based Serialization Format for the Software Updates for Internet of Things (SUIT) Manifest</title>
      <author fullname='Brendan Moran'>
	 <organization>Arm Limited</organization>
      </author>
      <author fullname='Hannes Tschofenig'>
	 <organization>Arm Limited</organization>
      </author>
      <author fullname='Henk Birkholz'>
	 <organization>Fraunhofer SIT</organization>
      </author>
      <author fullname='Koen Zandberg'>
	 <organization>Inria</organization>
      </author>
      <date day='28' month='April' year='2022'/>
      <abstract>
	 <t>   This specification describes the format of a manifest.  A manifest is
   a bundle of metadata about code/data obtained by a recipient (chiefly
   the firmware for an IoT device), where to find the that code/data,
   the devices to which it applies, and cryptographic information
   protecting the manifest.  Software updates and Trusted Invocation
   both tend to use sequences of common operations, so the manifest
   encodes those sequences of operations, rather than declaring the
   metadata.

	 </t>
      </abstract>
   </front>
   <seriesInfo name='Internet-Draft' value='draft-ietf-suit-manifest-17'/>
   <format target='https://www.ietf.org/archive/id/draft-ietf-suit-manifest-17.txt' type='TXT'/>
</reference>




    </references>



  </back>

<!-- ##markdown-source:
H4sIACd/zGIAA61X227bOBB911cQyEvTLl1fYifx0yq2uzEct2mUotunBS1R
NhFJFEjKqbbov+8MKSmSY3exwAZGoOEM53LmzMimlHpGmIRPyZplETNSldRI
ukzzhKc8M8RPtlIJs0s1iaUiM8XRSBOwJjOZ6SLlIMmYBDI2z0xx8iUHP9xa
mx0ny8xwlXGDNo87kW01SVkmYq6N9thmo/gegj8uSfBl+dgK50UyzFgKmUWK
xYamUrGM6kLAoxG03/dCCAPW5ZRoE3kexGZTEvCwAAel9yzV01bJIp9az94T
L+EomjYJ0Tn69TyRqykxqtBm2O9f94eeF0JdHErTU5JJz9MGiv2LJTKDZEqu
vVxMPUJUHPJImzKpTgkxMmw9iiwCAOsDLZVRPNaNXKYd0SgRNsahTBH8Riuy
RGQvYfh3QxOhDQUnG5mAGZVv34EGIEtZngPIrTz+Svieo9EFYFSYnVSQPQUd
/okMFDc9skZ0qzOH+o3iQIiso5FqC637mxkhsynxVUruRCoMjyo9T5lImqs9
e/V3ptIeFOR5mVQpXN1zRO/hw+xqMB7Wj5eXV1NoRRa3bZZ03hPcxFXXK9aA
HaWUsA1gxkJoILBKY+mFJazOeShiwYGiNZdIrmQsEu4obHlWOyM5U5pXfHbo
aACNYPuByxtugCyAEvyXOVdsIxIgV8+lkIooSrjnnREklZJRESIyntfM0ksO
yPqShDuWbTmRe3BqRMpJVHAMBzjzvUz20DkYGpwxkoAPHbKc94gP6RHFdZEY
HCnNCc6ZJTePMDn5UqHZwV1GIr4XISd6J4skIoUGL56H45i2xpyIZsxZd8wt
Rhgk4jpUYmPDgG8EGqcGJRgmrMLG3osIJj7h34UDyFnj9VhkAkHB8X/dEADS
zyzukIQILbFaZhDuYfH5y/JhMbdp+Xd33fbpHllkoSrz7kVN1v43aF6dWtTD
JrV2C3CGt80tasg9gA4YYZcV5t/Aagtpo1DT7bATwM63ZC62yK1WwLfE7xbZ
0a14SRbfK3J0NK3q2umfnR2JAebBrU+H4wl5QweTcyevFoPhFR5cVQd0dHUB
8sWolseDIcoXzQXn4WJ8bgOdTtw7qXLcERZ7R1BkNSfVyobpnKLvMxKUsOlw
950Mg2Xdrv2Zq2t8Xou2ikkj2iIuz51XXzduZwnTGpwmv6oDcA5c0ZfocBHN
Ax8Ei9gicHiNxk5yaI0mr0PdS1jJnwuWmSL9dbTbIKB36wBBnpyTHz+qDfjz
J+j+XAegeLyZY7gPLIGXkSuuOgrub5cfZ8G75mCmSnhDJZrOcfR2AoI7FTbv
FLO8E4ojjXuum2dpDq+Lpme/tdHVL6e4S7tgNMqDriMYvuOnpaM/uLZctM+u
I+MK6GOhLJb3q0WDxWI2v6WLgLwjt6v5h2oUhuMjKtfG4aSrwlxWX1Fxfai4
HlrFqH+ggBhOMagSPVk5tOrhW/Do3wV09e1m8dBq04kxd+D8MVuTN4MaHisN
a4CsZKGb7Rh8hv339zIpB6P+GKwcjouAwoQQ8PTeQu3wqI/BSXU8qY9nszXs
Dwqn1GpczQcai+1o0NZMLlp3hkc07s4Iayb31Wp1uziWSSKf8fXXrFz3+nFr
d1O2Xj52xdqvBBoKHk8o1/h/lz9xyiDMNkzt95FmHVaSnfHqGVlTPWKOmBxA
eeB3l7LQeqThCZf1Yqpdge1XO3NfFctb/ruIHqYfRZpRHkY7qITCSMKH5tDF
41XgcqqfX9G9UtRkAE1Nh8PatE5S/e+gVavqv8AW26UFA/a/e3/i6D+q9xx9
KjdcvQ5g32A1Eq+2Y1dBV+ijGxWDAkPrnxL2dw4sRGVXORL20/wTGiz9j/5x
5T9/hdF4WA0AAA==

-->

</rfc>

