RFC 9374

DRIP Entity Tag (DET) for Unmanned Aircraft System Remote ID (UAS RID)

๐Ÿ“… published March 2023, from ietf

DRIP Entity Tag (DET) for Unmanned Aircraft System Remote ID (UAS RID) ๐Ÿฆ‹

Part 1 of 7 ๐Ÿงš

Okay bestie, this is RFC 9374 ๐Ÿ’–. It's a Standards Track doc from the IETF (Internet Engineering Task Force), dated March 2023. It was written by R. Moskowitz (HTT Consulting), S. Card, A. Wiethuechter (AX Enterprize, LLC), and A. Gurtov (Linkรถping University). It's ISSN 2070-1721, and it updates RFC 7343 and RFC 7401. The header has no Obsoletes line, so it doesn't obsolete anything ๐Ÿ™ˆ.

Abstract โœจ

This doc describes using Hierarchical Host Identity Tags (HHITs) as self-asserting IPv6 addresses. That makes them trustable identifiers for Unmanned Aircraft System Remote Identification (UAS RID) and tracking, which is so iconic ๐Ÿ˜ญ๐Ÿ”ฅ.

Inside RID, HHITs get called DRIP Entity Tags (DETs). HHITs come with an explicit hierarchy that lets you find the registry (through things like DNS or RDAP) for third-party identifier endorsement ๐Ÿซถ.

This document updates RFCs 7343 and 7401.

Status of This Memo ๐ŸŽ€

This is an Internet Standards Track document.

It's a product of the Internet Engineering Task Force (IETF) and represents the consensus of the IETF community. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). For more on Internet Standards, check Section 2 of RFC 7841 ๐Ÿ’….

Info about the current status of this document, any errata, and how to send feedback is at https://www.rfc-editor.org/info/rfc9374 ๐ŸŒธ.

Copyright (c) 2023 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication. Please read these carefully, because they spell out your rights and restrictions for this document. Code Components pulled out of this document must include Revised BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as described in the Revised BSD License โญ.

Table of Contents ๐ŸŒˆ

1.  Introduction
  1.1.  HHIT Statistical Uniqueness Different from UUID or X.509
        Subject
2.  Terms and Definitions
  2.1.  Requirements Terminology
  2.2.  Notation
  2.3.  Definitions
3.  The Hierarchical Host Identity Tag (HHIT)
  3.1.  HHIT Prefix for RID Purposes
  3.2.  HHIT Suite IDs
    3.2.1.  HDA Custom HIT Suite IDs
  3.3.  The Hierarchy ID (HID)
    3.3.1.  The Registered Assigning Authority (RAA)
    3.3.2.  The HHIT Domain Authority (HDA)
  3.4.  Edwards-Curve Digital Signature Algorithm for HHITs
    3.4.1.  HOST_ID
    3.4.2.  HIT_SUITE_LIST
  3.5.  ORCHIDs for HHITs
    3.5.1.  Adding Additional Information to the ORCHID
    3.5.2.  ORCHID Encoding
    3.5.3.  ORCHID Decoding
    3.5.4.  Decoding ORCHIDs for HIPv2
4.  HHITs as DRIP Entity Tags
  4.1.  Nontransferablity of DETs
  4.2.  Encoding HHITs in CTA 2063-A Serial Numbers
  4.3.  Remote ID DET as one Class of HHITs
  4.4.  Hierarchy in ORCHID Generation
  4.5.  DRIP Entity Tag (DET) Registry
  4.6.  Remote ID Authentication Using DETs
5.  DRIP Entity Tags (DETs) in DNS
6.  Other UAS Traffic Management (UTM) Uses of HHITs Beyond DET
7.  Summary of Addressed DRIP Requirements
8.  IANA Considerations
  8.1.  New Well-Known IPv6 Prefix for DETs
  8.2.  New IANA DRIP Registry
    8.2.1.  HHIT Prefixes
    8.2.2.  HHIT Suite IDs
  8.3.  IANA CGA Registry Update
  8.4.  IANA HIP Registry Updates
9.  Security Considerations
  9.1.  Post-Quantum Computing Is Out of Scope
  9.2.  DET Trust in ASTM Messaging
  9.3.  DET Revocation
  9.4.  Privacy Considerations
  9.5.  Collision Risks with DETs
10. References
  10.1.  Normative References
  10.2.  Informative References
Appendix A.  EU U-Space RID Privacy Considerations
Appendix B.  The 14/14 HID split
  B.1.  DET Encoding Example
Appendix C.  Base32 Alphabet
Appendix D.  Calculating Collision Probabilities
Acknowledgments
Authors' Addresses

1. Introduction ๐Ÿฆ‹

The Drone Remote ID Protocol (DRIP) Requirements [RFC9153] describe an Unmanned Aircraft System Remote ID (UAS ID) as unique (ID-4), non-spoofable (ID-5), and as naming a registry where the ID is listed (ID-2). All of that fits in a 19-character identifier (ID-1) ๐Ÿ’….

This RFC is a foundational DRIP doc. It describes using Hierarchical Host Identity Tags (HHITs) (Section 3) as self-asserting IPv6 addresses, which makes them a trustable identifier for the UAS Remote ID (see Section 3 of [DRIP-ARCH]). Every other DRIP technology will enable or use HHITs as multipurpose remote identifiers โœจ. HHITs add explicit hierarchy to the 128-bit HITs. That lets you do DNS HHIT queries (Host ID for authentication, e.g., [DRIP-AUTH]) and use a Differentiated Access Control (e.g., Registration Data Access Protocol (RDAP) [RFC9224]) for 3rd-party identification endorsement (e.g., [DRIP-AUTH]). It's giving hierarchy ๐Ÿ‘‘.

Adding hierarchy to HITs is an extension to [RFC7401], and it needs an update to [RFC7343]. This doc also adds EdDSA (Section 3.4) for Host Identities (HIs), so a bunch of Host Identity Protocol (HIP) parameters in [RFC7401] get updated too. But those shouldn't be needed in a DRIP implementation that doesn't use HIP ๐Ÿ™ˆ.

When HHITs are used for UAS, they're labeled DRIP Entity Tags (DETs). This doc uses HHIT and DET carefully: HHIT when talking about the technology, and DET when it's about UAS RID ๐ŸŒธ.

HHITs provide self-claims of the HHIT registry. A HHIT can only be in a single registry within a registry system (e.g., DNS) ๐Ÿงš.

HHITs are valid, though non-routable, IPv6 addresses [RFC8200]. So they fit in lots of ways across different IETF technologies ๐Ÿ’–.

1.1. HHIT Statistical Uniqueness Different from UUID or X.509 Subject

HHITs are statistically unique thanks to the cryptographic hash feature of second-preimage resistance. Binding the hierarchy in cryptographically, plus a HHIT registration process [DRIP-REG], gives complete, global HHIT uniqueness ๐Ÿ”ฅ. If a HHIT can't be looked up through services from the DRIP Identity Management Entity (DIME) named in its embedded hierarchical info, or its registration can't be validated by registration endorsement messages [DRIP-AUTH], then the HHIT is either fraudulent or revoked/expired. The in-depth details of these processes are out of scope for this document ๐Ÿซถ.

This is different from using general identifiers (like Universally Unique IDentifiers (UUIDs) [RFC4122] or device serial numbers) as the subject in an X.509 [RFC5280] certificate. Either way, there's no unique proof of ownership or registration ๐Ÿ˜ญ.

For example, in a multi-Certificate Authority (multi-CA) PKI alternative to HHITs, a Remote ID as the Subject (Section 4.1.2.6 of [RFC5280]) can show up in multiple CAs, possibly fraudulently ๐Ÿ’€. CAs inside that PKI would need their own approach to enforce the uniqueness that HHITs get for free.

2. Terms and Definitions ๐Ÿ’œ

2.1. Requirements Terminology

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here ๐ŸŽ€.

The document includes a set of algorithms and recommends the ones that should be supported by implementations. The following term is used for that purpose: RECOMMENDED โœจ.

2.2. Notation

Here's the notation block, copied exactly:

   |  Signifies concatenation of information, e.g., X | Y is the
      concatenation of X and Y.

2.3. Definitions

This doc uses the terms defined in Section 2.2 of [RFC9153] and in Section 2 of [DRIP-ARCH]. These terms are also used in the document ๐ŸŒˆ:

cSHAKE (The customizable SHAKE function [NIST.SP.800-185]): Extends the SHAKE scheme [NIST.FIPS.202] so users can customize how they use the SHAKE function ๐Ÿงš.

HDA (HHIT Domain Authority): The 14-bit field that identifies the HHIT Domain Authority under a Registered Assigning Authority (RAA). See Figure 1 ๐Ÿฆ‹.

HHIT (Hierarchical Host Identity Tag): A HIT with extra hierarchical information that you won't find in a standard HIT [RFC7401] ๐Ÿ‘‘.

HI (Host Identity): The public key portion of an asymmetric key pair, as defined in [RFC9063] ๐Ÿ’–.

HID (Hierarchy ID): The 28-bit field that provides the HIT Hierarchy ID. See Figure 1 โœจ.

HIP (Host Identity Protocol): The origin of HI, HIT, and HHIT [RFC7401] ๐ŸŒธ.

HIT (Host Identity Tag): A 128-bit handle on the HI. HITs are valid IPv6 addresses ๐Ÿ’….

Keccak (KECCAK Message Authentication Code): The family of all sponge functions that use the KECCAK-f permutation as the underlying function and multi-rate padding as the padding rule. In particular, it refers to all the functions referenced from [NIST.FIPS.202] and [NIST.SP.800-185] ๐Ÿ”ฅ.

KMAC (KECCAK Message Authentication Code [NIST.SP.800-185]): A Pseudo Random Function (PRF) and keyed hash function based on KECCAK ๐Ÿซถ.

RAA (Registered Assigning Authority): The 14-bit field that identifies the business or organization managing a registry of HDAs. See Figure 1 ๐Ÿ™ˆ.

RVS (Rendezvous Server): A Rendezvous Server, such as the HIP Rendezvous Server for enabling mobility, as defined in [RFC8004] ๐Ÿงš.

SHAKE (Secure Hash Algorithm KECCAK [NIST.FIPS.202]): A secure hash that allows an arbitrary output length ๐ŸŒˆ.

XOF (eXtendable-Output Function [NIST.FIPS.202]): A function on bit strings (also called messages) whose output can be extended to any desired length โญ.

3. The Hierarchical Host Identity Tag (HHIT) โœจ

okay so the HHIT is a small but seriously mighty upgrade to the flat Host Identity Tag (HIT) space ๐Ÿ’… It's built as an Overlay Routable Cryptographic Hash IDentifier (ORCHID) [RFC7343]. By adding two levels of hierarchical administration control, the HHIT lets you do device registration/ownership, which totally levels up the trust framework for HITs ๐Ÿ”ฅ

The 128-bit HHITs represent the HI in only a 64-bit hash, rather than the 96 bits in HITs. 4 of these 32 freed-up bits expand the Suite ID to 8 bits, and the other 28 bits are used to create a hierarchical administration organization for HIT domains ๐Ÿงš HHIT construction is defined in Section 3.5. The input values for the encoding rules are described in Section 3.5.1.

A HHIT is built from the following fields (Figure 1):

  • p = an IPv6 prefix (max 28 bit)
  • 28-bit HID which provides the structure to organize HITs into administrative domains. HIDs are further divided into two fields:
    • 14-bit Registered Assigning Authority (RAA) (Section 3.3.1)
    • 14-bit HHIT Domain Authority (HDA) (Section 3.3.2)
  • 8-bit HHIT Suite ID (HHSI)
  • ORCHID hash (92 - prefix length, e.g., 64) See Section 3.5 for more details.
              14 bits| 14 bits              8 bits
             +-------+-------+         +--------------+
             |  RAA  | HDA   |         |HHIT Suite ID |
             +-------+-------+         +--------------+
              \              |    ____/   ___________/
               \             \  _/    ___/
                \             \/     /
  |    p bits    |  28 bits   |8bits|      o=92-p bits       |
  +--------------+------------+-----+------------------------+
  | IPv6 Prefix  |    HID     |HHSI |      ORCHID hash       |
  +--------------+------------+-----+------------------------+

                       Figure 1: HHIT Format

The Context ID (generated with openssl rand) for the ORCHID hash is:

   Context ID :=  0x00B5 A69C 795D F5D5 F008 7F56 843F 2C40

Context IDs are allocated out of the namespace introduced for Cryptographically Generated Addresses (CGA) Type Tags [RFC3972].

3.1. HHIT Prefix for RID Purposes

The IPv6 HHIT prefix MUST be distinct from that used in the flat-space HIT as allocated in [RFC7343]. Without this distinct prefix, the first 4 bits of the RAA would be interpreted as the HIT Suite ID per HIPv2 [RFC7401] ๐Ÿ™ˆ

Initially, the IPv6 prefix listed in Table 1 is assigned for DET use. It has been registered in the "IANA IPv6 Special-Purpose Address Registry" [RFC6890].

                +==========+======+==============+
                | HHIT Use | Bits | Value        |
                +==========+======+==============+
                | DET      | 28   | 2001:30::/28 |
                +----------+------+--------------+

                 Table 1: Initial DET IPv6 Prefix

Other prefixes may be added in the future either for DET use or other applications of HHITs. For a prefix to be added to the registry in Section 8.2, its usage and HID allocation process have to be publicly available ๐Ÿฆ‹

3.2. HHIT Suite IDs

The HHIT Suite IDs specify the HI and hash algorithms. These are a superset of the 4-bit and 8-bit HIT Suite IDs as defined in Section 5.2.10 of [RFC7401].

The HHIT values 1 - 15 map to the basic 4-bit HIT Suite IDs. HHIT values 17 - 31 map to the extended 8-bit HIT Suite IDs. HHIT values unique to HHIT will start with value 32.

As HHIT introduces a new Suite ID, EdDSA/cSHAKE128, and because this is of value to HIPv2, it will be allocated out of the 4-bit HIT space and result in an update to HIT Suite IDs. Future HHIT Suite IDs may be allocated similarly, or they may come out of the additional space made available by going to 8 bits ๐ŸŒธ

The following HHIT Suite IDs are defined:

                 +=================+=============+
                 | HHIT Suite      | Value       |
                 +=================+=============+
                 | RESERVED        | 0           |
                 +-----------------+-------------+
                 | RSA,DSA/SHA-256 | 1 [RFC7401] |
                 +-----------------+-------------+
                 | ECDSA/SHA-384   | 2 [RFC7401] |
                 +-----------------+-------------+
                 | ECDSA_LOW/SHA-1 | 3 [RFC7401] |
                 +-----------------+-------------+
                 | EdDSA/cSHAKE128 | 5           |
                 +-----------------+-------------+

                  Table 2: Initial HHIT Suite IDs

3.2.1. HDA Custom HIT Suite IDs

Support for 8-bit HHIT Suite IDs allows for HDA custom HIT Suite IDs (see Table 3) ๐ŸŽ€

                   +===================+=======+
                   | HHIT Suite        | Value |
                   +===================+=======+
                   | HDA Private Use 1 | 254   |
                   +-------------------+-------+
                   | HDA Private Use 2 | 255   |
                   +-------------------+-------+

                      Table 3: HDA Custom HIT
                             Suite IDs

These custom HIT Suite IDs, for example, may be used for large-scale experimentation with post-quantum computing hashes or similar domain-specific needs. Note that currently there is no support for domain-specific HI algorithms.

They should not be used to create a "de facto standardization". Section 8.2 states that additional Suite IDs can be made through IETF Review. ๐Ÿ’€

3.3. The Hierarchy ID (HID)

The HID provides the structure to organize HITs into administrative domains. HIDs are further divided into two fields:

  • 14-bit Registered Assigning Authority (RAA)
  • 14-bit HHIT Domain Authority (HDA)

The rationale for splitting the HID into two 14-bit domains is described in Appendix B.

The two levels of hierarchy allow for Civil Aviation Authorities (CAAs) to have at least one RAA for their National Air Space (NAS). Within its RAAs, the CAAs can delegate HDAs as needed. There may be other RAAs allowed to operate within a given NAS; this is a policy decision of each CAA โœˆ๏ธ

3.3.1. The Registered Assigning Authority (RAA)

An RAA is a business or organization that manages a registry of HDAs. For example, the Federal Aviation Authority (FAA) or Japan Civil Aviation Bureau (JCAB) could be RAAs.

The RAA is a 14-bit field (16,384 RAAs). Management of this space is further described in [DRIP-REG]. An RAA MUST provide a set of services to allocate HDAs to organizations. It SHOULD have a public policy on what is necessary to obtain an HDA. The RAA need not maintain any HIP-related services. At minimum, it MUST maintain a DNS zone for the HDA zone delegation for discovering HIP RVS servers [RFC8004] for the HID. Zone delegation is covered in [DRIP-REG] ๐Ÿง 

As DETs under administrative control may be used in many different domains (e.g., commercial, recreation, military), RAAs should be allocated in blocks (e.g., 16-19) with consideration of the likely size of a particular usage. Alternatively, different prefixes can be used to separate different domains of use of HHITs.

The RAA DNS zone within the UAS DNS tree may be a PTR for its RAA. It may be a zone in a HHIT-specific DNS zone. Assume that the RAA is decimal 100. The PTR record could be constructed as follows (where 20010030 is the DET prefix):

100.20010030.hhit.arpa.   IN PTR      raa.example.com.

Note that if the zone 20010030.hhit.arpa is ultimately used, a registrar will need to manage this for all HHIT applications. Thus, further thought will be needed in the actual DNS zone tree and registration process [DRIP-REG] ๐Ÿ‘‘

3.3.2. The HHIT Domain Authority (HDA)

An HDA may be an Internet Service Provider (ISP), UAS Service Supplier (USS), or any third party that takes on the business to provide UAS services management, HIP RVSs or other needed services such as those required for HHIT and/or HIP-enabled devices.

The HDA is a 14-bit field (16,384 HDAs per RAA) assigned by an RAA and is further described in [DRIP-REG]. An HDA must maintain public and private UAS registration information and should maintain a set of RVS servers for UAS clients that may use HIP. How this is done and scales to the potentially millions of customers are outside the scope of this document; they are covered in [DRIP-REG]. This service should be discoverable through the DNS zone maintained by the HDA's RAA ๐ŸŒˆ

An RAA may assign a block of values to an individual organization. This is completely up to the individual RAA's published policy for delegation. Such a policy is out of scope for this document.

3.4. Edwards-Curve Digital Signature Algorithm for HHITs

The Edwards-Curve Digital Signature Algorithm (EdDSA) [RFC8032] is specified here for use as HIs per HIPv2 [RFC7401] โญ

The intent in this document is to add EdDSA as a HI algorithm for DETs, but doing so impacts the HIP parameters used in a HIP exchange. Sections 3.4.1 through 3.4.2 describe the required updates to HIP parameters. Other than the HIP DNS RR (Resource Record) [RFC8005], these should not be needed in a DRIP implementation that does not use HIP.

See Section 3.2 for use of the HIT Suite in the context of DRIP.

3.4.1. HOST_ID

The HOST_ID parameter specifies the public key algorithm, and for elliptic curves, a name. The HOST_ID parameter is defined in Section 5.2.9 of [RFC7401]. Table 4 adds a new HI Algorithm.

               +===================+=======+===========+
               | Algorithm profile | Value | Reference |
               +===================+=======+===========+
               | EdDSA             | 13    | [RFC8032] |
               +-------------------+-------+-----------+

                       Table 4: New EdDSA Host ID

3.4.1.1. HIP Parameter support for EdDSA โœจ

okay so EdDSA as a HI algorithm needs its own subfield in the HIP HOST_ID parameter (Section 5.2.9 of [RFC7401]) ๐Ÿซถ same way ECDSA got one when it's used in a HIP exchange. the layout is totally giving neat little boxes ๐Ÿ“ฆ

For HIP hosts that implement EdDSA as the algorithm, the following EdDSA curves are represented by the fields in Figure 2.

      0                   1                   2                   3
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |         EdDSA Curve           |             NULL              |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                         Public Key                            |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 2: EdDSA Curves Fields

  • EdDSA Curve: the curve label ๐Ÿท๏ธ
  • Public Key: represented in Octet-string format [RFC8032] ๐Ÿ”‘

For hosts that implement EdDSA as a HIP algorithm, the following EdDSA curves are defined. The recommended ones are tagged accordingly ๐Ÿ’œ

      +===========+==============+===========================+
      | Algorithm | Curve        | Values                    |
      +===========+==============+===========================+
      | EdDSA     | RESERVED     | 0                         |
      +-----------+--------------+---------------------------+
      | EdDSA     | EdDSA25519   | 1 [RFC8032] (RECOMMENDED) |
      +-----------+--------------+---------------------------+
      | EdDSA     | EdDSA25519ph | 2 [RFC8032]               |
      +-----------+--------------+---------------------------+
      | EdDSA     | EdDSA448     | 3 [RFC8032] (RECOMMENDED) |
      +-----------+--------------+---------------------------+
      | EdDSA     | EdDSA448ph   | 4 [RFC8032]               |
      +-----------+--------------+---------------------------+

Table 5: EdDSA Curves

3.4.1.2. HIP DNS RR support for EdDSA ๐ŸŒธ

the HIP DNS RR is defined in [RFC8005] ๐Ÿ“œ and it reuses the values from the 'Algorithm Type' of the IPSECKEY RR [RFC4025] for its PK Algorithm field. the 'Algorithm Type' value and the EdDSA HI encoding are assigned per [RFC9373] โœจ

3.4.2. HIT_SUITE_LIST ๐Ÿงš

the HIT_SUITE_LIST parameter is basically the Responder's list of the HIT suite IDs it supports ๐Ÿ’… so the HIP Initiator can check which source HIT Suite IDs the Responder is down with. it's defined in Section 5.2.10 of [RFC7401].

the following HIT Suite ID is defined:

                     +=================+=======+
                     | HIT Suite       | Value |
                     +=================+=======+
                     | EdDSA/cSHAKE128 | 5     |
                     +-----------------+-------+

Table 6: HIT Suite ID

Table 7 gives more detail on that HIT Suite combination ๐Ÿ‘€

  +=======+===========+=========+===========+====================+
  | Index | Hash      | HMAC    | Signature | Description        |
  |       | function  |         | algorithm |                    |
  |       |           |         | family    |                    |
  +=======+===========+=========+===========+====================+
  |     5 | cSHAKE128 | KMAC128 | EdDSA     | EdDSA HI hashed    |
  |       |           |         |           | with cSHAKE128,    |
  |       |           |         |           | output is variable |
  +-------+-----------+---------+-----------+--------------------+

Table 7: HIT Suites

the output of cSHAKE128 is variable depending on what a specific ORCHID construction needs ๐ŸŒˆ It's at most 96 bits long and gets used directly in the ORCHID, no truncation ๐Ÿ™…โ€โ™€๏ธ

3.5. ORCHIDs for HHITs ๐Ÿฆ‹

this section levels up ORCHIDv2 [RFC7343] with three enhancements, and honestly they're all iconic:

  • an optional "Info" field that goes between the Prefix and the ORCHID Generation Algorithm (OGA) ID ๐ŸŽ€
  • more flexibility in the length of each component in the ORCHID construction, as long as the resulting ORCHID is 128 bits ๐Ÿ’–
  • cSHAKE [NIST.SP.800-185] used as the hashing function ๐Ÿ”ฅ

the cSHAKE XOF hash function, which is based on Keccak [Keccak], is a variable output length hash function. so it doesn't need the truncation step that other hashes do ๐Ÿ™Œ You specify the number of bits you want in the output when you invoke it. cSHAKE also has a parameter 'S' that works as a customization bit string, and that's where the ORCHID Context Identifier gets included in a standard way ๐Ÿงฉ

this ORCHID construction puts the fields of the ORCHID into the hash so they're protected against substitution attacks ๐Ÿ›ก๏ธ It also lets you include extra info (especially the hierarchical bits of the HHIT) when generating the ORCHID. This should be viewed as an update to ORCHIDv2 [RFC7343], since it can produce ORCHIDv2 output too โœจ

the following subsections define the new general ORCHID construct along with its specific application for HHITs. So things like hash size are only talked about in terms of how they affect the HHIT's 64-bit hash. Other hash sizes should be discussed for other specific uses of this new ORCHID construct ๐Ÿ’œ

3.5.1. Adding Additional Information to the ORCHID ๐ŸŽ€

ORCHIDv2 [RFC7343] is made up of three components:

ORCHID     :=  Prefix | OGA ID | Encode_96( Hash )

where:

Prefix : A constant 28-bit-long bitstring value (IPv6 prefix)

OGA ID : A 4-bit-long identifier for the Hash_function in use within the specific usage context. When used for HIT generation, this is the HIT Suite ID.

Encode_96( ) : An extraction function in which output is obtained by extracting the middle 96-bit-long bitstring from the argument bitstring.

The new ORCHID function looks like this ๐Ÿ‘‘

ORCHID     :=  Prefix (p) | Info (n) | OGA ID (o) | Hash (m)

where:

Prefix (p) : An IPv6 prefix of length p (max 28 bits long).

Info (n) : n bits of information that define a use of the ORCHID. 'n' can be zero, which means no additional information.

OGA ID (o) : A 4- or 8-bit long identifier for the Hash_function in use within the specific usage context. When used for HIT generation, this is the HIT Suite ID [IANA-HIP]. When used for HHIT generation, this is the HHIT Suite ID [HHSI].

Hash (m) : An extraction function in which output is 'm' bits.

Sizeof(p + n + o + m) = 128 bits

The ORCHID length MUST be 128 bits. For HHITs with a 28-bit IPv6 prefix, that leaves 100 bits to split up in any manner between the additional information ("Info"), the OGA ID, and the hash output. You've gotta consider the size of the hash portion and risks like pre-image attacks ๐Ÿ˜ฌ 64 bits, as used here for HHITs, may be as small as is acceptable. The size of 'n' for the HID is whatever is left over. In the case of the 8-bit OGA used for HHIT, that works out to 28 bits ๐Ÿงฎ

3.5.2. ORCHID Encoding ๐Ÿ’…

this update uses a different encoding process than the one in ORCHIDv2. The input to the hash function explicitly includes all the header content plus the Context ID. The header content is the Prefix, the Additional Information ("Info"), and the OGA ID (HIT Suite ID). Also, the length of the resulting hash is set by the sum of the lengths of the ORCHID header fields. For example, a 28-bit prefix with 28 bits for the HID and 8 bits for the OGA ID leaves 64 bits for the hash length ๐Ÿ™†โ€โ™€๏ธ

to get variable length output consistently, the cSHAKE hash is used, and cSHAKE128 is the right one for this. The cSHAKE function call looks like this:

    cSHAKE128(Input, L, "", Context ID)

    Input      :=  Prefix | Additional Information | OGA ID | HOST_ID
    L          :=  Length in bits of the hash portion of ORCHID

For full Suite ID support (the ones that use fixed length hashes like SHA256), the following hashing can be used. Heads up: this does not produce output identical to ORCHIDv2 for a /28 prefix and Additional Information of zero length โš ๏ธ

    Hash[L](Context ID | Input)

    Input      :=  Prefix | Additional Information | OGA ID | HOST_ID
    L          :=  Length in bits of the hash portion of ORCHID

    Hash[L]    :=  An extraction function in which output is obtained
                   by extracting the middle L-bit-long bitstring
                   from the argument bitstring.

The middle L-bits are the bits from the source number where either there is an equal number of bits before and after them, or there is one more bit before them (when the difference between hash size and L is odd) ๐ŸŽฏ

HHITs use the Context ID defined in Section 3.

3.5.2.1. Encoding ORCHIDs for HIPv2 ๐ŸŽ€

this section covers backwards compatibility for ORCHIDv2 [RFC7343] as used in HIPv2 [RFC7401] ๐Ÿซถ

For HIPv2, the Prefix is 2001:20::/28 (Section 6 of [RFC7343]). 'Info' is zero-length (so not included), and the OGA ID is 4-bit. That makes the HI Hash 96 bits long. Also, the Prefix and OGA ID are not included in the hash calculation. So for fixed output length hashes, the ORCHID calculation is:

    Hash[L](Context ID | Input)

    Input      :=  HOST_ID
    L          :=  96
    Context ID :=  0xF0EF F02F BFF4 3D0F E793 0C3C 6E61 74EA

    Hash[L]    :=  An extraction function in which output is obtained
                   by extracting the middle L-bit-long bitstring
                   from the argument bitstring.

For variable output length hashes, use:

    Hash[L](Context ID | Input)

    Input      :=  HOST_ID
    L          :=  96
    Context ID :=  0xF0EF F02F BFF4 3D0F E793 0C3C 6E61 74EA

    Hash[L]    :=  The L-bit output from the hash function

Then the ORCHID gets built like this:

    Prefix | OGA ID | Hash Output

3.5.3. ORCHID Decoding ๐Ÿ”

with this update, decoding an ORCHID is determined by the Prefix and the OGA ID. ORCHIDv2 [RFC7343] decoding gets selected when the Prefix is 2001:20::/28.

For HHITs, decoding is determined by the presence of the HHIT Prefix, as specified in Section 8.2 โœจ

3.5.4. Decoding ORCHIDs for HIPv2 ๐ŸŒธ

this section is here to keep backwards compatibility for ORCHIDv2 [RFC7343] as used for HIPv2 [RFC7401] ๐Ÿ’œ

HITs are identified by a Prefix of 2001:20::/28. The next 4 bits are the OGA ID, and the remaining 96 bits are the HI Hash.


4. HHITs as DRIP Entity Tags ๐Ÿ›ธ

HHITs for UAS ID (called DETs) use the new EdDSA/SHAKE128 HIT suite defined in Section 3.4 (GEN-2 in [RFC9153]) ๐ŸŒˆ This hierarchy, cryptographically bound within the HHIT, is what provides the info for finding the UA's HHIT registry (ID-3 in [RFC9153]).

The ASTM Standard Specification for Remote ID and Tracking [F3411-22a] adds support for DETs. It's only available through the new UAS ID type 4, "Specific Session ID (SSI)" ๐Ÿš

This new SSI uses the first byte of the 20-byte UAS ID for the SSI Type, which means UAS IDs of this type are capped at a maximum of 19 bytes. The SSI Types initially assigned are:

  • SSI 1: IETF - DRIP Drone Remote ID Protocol (DRIP) entity ID. ๐Ÿซถ
  • SSI 2: 3GPP - IEEE 1609.2-2016 HashedID8 ๐Ÿ’ซ

4.1. Nontransferablity of DETs ๐Ÿ”

A HI and its DET SHOULD NOT be transferable between UAs, or even between replacement electronics (e.g., replacing a damaged controller CPU) for a UA. The private key for the HI SHOULD be held in a cryptographically secure component ๐Ÿ”’

4.2. Encoding HHITs in CTA 2063-A Serial Numbers โœจ

okay so sometimes it's actually super useful to squish a HHIT into a CTA 2063-A Serial Number [CTA2063A] ๐ŸŽ€ For example, the FAA Remote ID Rules [FAA_RID] say a Remote ID Module (i.e., not integrated with UA controller) must only use "the serial number of the unmanned aircraft", and CTA 2063-A meets that requirement. it's giving compliance ๐Ÿ’…

Encoding a HHIT inside CTA 2063-A is not simple, bestie ๐Ÿ˜ญ The format is defined like this:

Serial Number   :=  MFR Code | Length Code | MFR SN

where:

  • MFR Code: 4 character code assigned by ICAO (International Civil Aviation Organization, a UN Agency).
  • Length Code: 1 character Hex encoding of MFR SN length (1-F).
  • MFR SN: US-ASCII alphanumeric code (0-9, A-Z except O and I). Maximum length of 15 characters.

There's no place for the HID, so there will need to be a mapping service from Manufacturer Code to HID ๐Ÿ—บ๏ธ The HHIT Suite ID and ORCHID hash will take the full 15 characters (as described below) of the MFR SN field.

A character in a CTA 2063-A Serial Number "shall include any combination of digits and uppercase letters, except the letters O and I, but may include all digits". This would allow for a Base34 encoding of the binary HHIT Suite ID and ORCHID hash in 15 characters. Programmatically, that conversion is not hard, but other technologies (e.g., credit card payment systems) that have used such odd base encoding have had performance challenges ๐Ÿ’€ So here, a Base32 encoding will be used by also excluding the letters Z and S (because they look too similar to the digits 2 and 5, respectively). See Appendix C for the encoding scheme.

The low-order 72 bits (HHIT Suite ID | ORCHID hash) of the HHIT SHALL be left-padded with 3 bits of zeros. This 75-bit number will be encoded into the 15-character MFR SN field using the digits/letters as described above. The manufacturer MUST use a Length Code of F (15) ๐Ÿ”ฅ

Note: The manufacturer MAY use the same Manufacturer Code with a Length Code of 1 - E (1 - 14) for other types of serial numbers.

Using the sample DET from Section 5 that is for HDA=20 under RAA=10 and having the ICAO CTA MFR Code of 8653, the 20-character CTA 2063-A Serial Number would be:

    8653F02T7B8RA85D19LX

A mapping service (e.g., DNS) MUST provide a trusted (e.g., via DNSSEC [RFC4034]) conversion of the 4-character Manufacturer Code to high-order 58 bits (Prefix | HID) of the HHIT. That is, given a Manufacturer Code, a returned Prefix|HID value is reliable ๐Ÿซถ Definition of this mapping service is out of scope of this document.

It should be noted that this encoding would only be used in the Basic ID Message (Section 2.2 of [RFC9153]). The DET is used in the Authentication Messages (i.e., the messages that provide framing for authentication data only) ๐Ÿฆ‹


4.3. Remote ID DET as one Class of HHITs

UAS Remote ID DET may be one of a number of uses of HHITs ๐ŸŒธ However, it is out of the scope of the document to elaborate on other uses of HHITs. As such, these follow-on uses need to be considered when allocating the RAAs (Section 3.3.1) or HHIT prefix assignments (Section 8).

4.4. Hierarchy in ORCHID Generation

ORCHIDS, as defined in [RFC7343], do not cryptographically bind an IPv6 prefix or the OGA ID (the HIT Suite ID) to the hash of the HI. At the time ORCHID was being developed, the rationale was that attacks against these fields are Denial-of-Service (DoS) attacks against protocols using ORCHIDs, and thus it was up to those protocols to address the issue ๐Ÿคทโ€โ™€๏ธ

HHITs, as defined in Section 3.5, cryptographically bind all content in the ORCHID through the hashing function โœจ A recipient of a DET that has the underlying HI can directly trust and act on all content in the HHIT. This gives a strong, self-claim for using the hierarchy to find the DET Registry based on the HID (Section 4.5). main character energy ๐Ÿ‘‘

4.5. DRIP Entity Tag (DET) Registry

DETs are registered to HDAs. The registration process defined in [DRIP-REG] ensures DET global uniqueness (ID-4 in Section 4.2.1 of [RFC9153]). It also allows the mechanism to create UAS public/private data that are associated with the DET (REG-1 and REG-2 in Section 4.4.1 of [RFC9153]) ๐Ÿ“‡

4.6. Remote ID Authentication Using DETs

The EdDSA25519 HI (Section 3.4) underlying the DET can be used in an 88-byte self-proof evidence (timestamps, HHIT, and signature of these) to provide proof to Observers of Remote ID ownership (GEN-1 in Section 4.1.1 of [RFC9153]) ๐Ÿ” In practice, the Wrapper and Manifest authentication formats (Sections 6.3.3 and 6.3.4 of [DRIP-AUTH]) implicitly provide this self-proof evidence. A lookup service like DNS can provide the HI and registration proof (GEN-3 in [RFC9153]).

Similarly, for Observers without Internet access, a 200-byte offline self-endorsement (Section 3.1.2 of [DRIP-AUTH]) could provide the same Remote ID ownership proof ๐Ÿงš This endorsement would contain the HDA's signing of the UA's HHIT, itself signed by the UA's HI. Only a small cache (also Section 3.1.2 of [DRIP-AUTH]) that contains the HDA's HI/HHIT and HDA meta-data is needed by the Observer. However, such an object would just fit in the ASTM Authentication Message (Section 2.2 of [RFC9153]) with no room for growth ๐Ÿ˜… In practice, [DRIP-AUTH] provides this offline self-endorsement in two authentication messages: the HDA's endorsement of the UA's HHIT registration in a Link authentication message, whose hash is sent in a Manifest authentication message.

Hashes of any previously sent ASTM messages can be placed in a Manifest authentication message (GEN-2 in [RFC9153]). When a Location/Vector Message (i.e., a message that provides UA location, altitude, heading, speed, and status) hash, along with the hash of the HDA's UA HHIT endorsement, are sent in a Manifest authentication message and the Observer can visually see a UA at the claimed location, the Observer has very strong proof of the UA's Remote ID ๐Ÿ‘€๐Ÿ”ฅ

This behavior and how to mix these authentication messages into the flow of UA operation messages are detailed in [DRIP-AUTH] ๐Ÿ’œ


5. DRIP Entity Tags (DETs) in DNS

There are two approaches for storing and retrieving DETs using DNS ๐ŸŒˆ The following are examples of how this may be done. This serves as guidance to the actual deployment of DETs in DNS. However, this document does not provide a recommendation about which approach to use. Further DNS-related considerations are covered in [DRIP-REG].

  • As FQDNs, for example, "20010030.hhit.arpa.".
  • Reverse DNS lookups as IPv6 addresses per [RFC8005].

A DET can be used to construct an FQDN that points to the USS that has the public/private information for the UA (REG-1 and REG-2 in Section 4.4.1 of [RFC9153]). For example, the USS for the HHIT could be found via the following: assume the RAA is decimal 100 and the HDA is decimal 50. The PTR record is constructed as follows:

100.50.20010030.hhit.arpa.   IN PTR      foo.uss.example.org.

The HDA SHOULD provide DNS service for its zone and provide the HHIT detail response ๐Ÿ“

The DET reverse lookup can be a standard IPv6 reverse lookup, or it can leverage the HHIT structure. Using the allocated prefix for HHITs 2001:30::/28 (see Section 3.1), the RAA is decimal 10 and the HDA is decimal 20, the DET is:

       2001:30:280:1405:a3ad:1952:ad0:a69e

See Appendix B.1 for how the upper 64 bits, above, are constructed. A DET reverse lookup could be:

       a69e.0ad0.1952.a3ad.1405.0280.20.10.20010030.hhit.arpa.

or:

       a3ad19520ad0a69e.5.20.10.20010030.hhit.arpa.

A 'standard' ip6.arpa RR has the advantage of only one Registry service supported ๐ŸŒŸ

       $ORIGIN  5.0.4.1.0.8.2.0.0.3.0.0.1.0.0.2.ip6.arpa.
       e.9.6.a.0.d.a.0.2.5.9.1.d.a.3.a    IN   PTR
       a3ad1952ad0a69e.20.10.20010030.hhit.arpa.

This DNS entry for the DET can also provide a revocation service. For example, instead of returning the HI RR, it may return some record showing that the HI (and thus DET) has been revoked. Guidance on revocation service will be provided in [DRIP-REG] โ˜ ๏ธ


6. Other UAS Traffic Management (UTM) Uses of HHITs Beyond DET

HHITs will be used within the UTM architecture beyond DET (and USS in UA ID registration and authentication), for example, as a Ground Control Station (GCS) HHIT ID ๐Ÿ›ฐ๏ธ Some GCS will use its HHIT for securing its Network Remote ID (to USS HHIT) and Command and Control (C2, Section 2.2.2 of [RFC9153]) transports.

Observers may have their own HHITs to facilitate UAS information retrieval (e.g., for authorization to private UAS data) ๐Ÿ‘€ They could also use their HHIT for establishing a HIP connection with the UA Pilot for direct communications per authorization. Details about such issues are out of the scope of this document ๐Ÿ™ˆ


7. Summary of Addressed DRIP Requirements

This document provides the details to solutions for GEN 1 - 3, ID 1 - 5, and REG 1 - 2 requirements that are described in [RFC9153] โœ…


8. IANA Considerations

8.1. New Well-Known IPv6 Prefix for DETs

Since the DET format is not compatible with [RFC7343], IANA has allocated the following prefix per this template for the "IANA IPv6 Special-Purpose Address Registry" [IPv6-SPECIAL] ๐ŸŽ€

   Address Block:
      2001:30::/28

   Name:
      Drone Remote ID Protocol Entity Tags (DETs) Prefix

   Reference
      This document

   Allocation Date:
      2022-12

   Termination Date:
      N/A

   Source:
      True

   Destination:
      True

   Forwardable:
      True

   Globally Reachable:
      True

   Reserved-by-Protocol:
      False

8.2. New IANA DRIP Registry

IANA has created the "Drone Remote ID Protocol" registry ๐Ÿ›ธ The following two subregistries have been created within the "Drone Remote ID Protocol" group.

8.2.1. HHIT Prefixes

Initially, for DET use, one 28-bit prefix has been assigned out of the IANA IPv6 Special Purpose Address Block, namely 2001::/23, as per [RFC6890]. Future additions to this subregistry are to be made through Expert Review (Section 4.5 of [RFC8126]). Entries with network-specific prefixes may be present in the registry ๐Ÿ“‹

   +==========+======+==============+===========+
   | HHIT Use | Bits | Value        | Reference |
   +==========+======+==============+===========+
   | DET      | 28   | 2001:30::/28 | RFC 9374  |
   +----------+------+--------------+-----------+

        Table 8: Registered DET IPv6 Prefix

Criteria that should be applied by the designated experts include determining whether the proposed registration duplicates existing functionality and whether the registration description is clear and fits the purpose of this registry ๐Ÿง

Registration requests MUST be sent to drip-reg-review@ietf.org and be evaluated within a three-week review period on the advice of one or more designated experts ๐Ÿ“ฌ Within that review period, the designated experts will either approve or deny the registration request, and communicate their decision to the review list and IANA. Denials should include an explanation and, if applicable, suggestions to successfully register the prefix.

Registration requests that are undetermined for a period longer than 28 days can be brought to the IESG's attention for resolution โฐ

8.2.2. HHIT Suite IDs โœจ

okay so this subregistry is a total superset of the 4/8-bit "HIT Suite ID" one in the "Host Identity Protocol (HIP) Parameters" registry [IANA-HIP] ๐Ÿ’… Future additions go through IETF Review (Section 4.8 of [RFC8126]). Here are the HHIT Suite IDs that are defined rn ๐ŸŽ€

              +===================+=======+===========+
              | HHIT Suite        | Value | Reference |
              +===================+=======+===========+
              | RESERVED          | 0     | RFC 9374  |
              +-------------------+-------+-----------+
              | RSA,DSA/SHA-256   | 1     | [RFC7401] |
              +-------------------+-------+-----------+
              | ECDSA/SHA-384     | 2     | [RFC7401] |
              +-------------------+-------+-----------+
              | ECDSA_LOW/SHA-1   | 3     | [RFC7401] |
              +-------------------+-------+-----------+
              | EdDSA/cSHAKE128   | 5     | RFC 9374  |
              +-------------------+-------+-----------+
              | HDA Private Use 1 | 254   | RFC 9374  |
              +-------------------+-------+-----------+
              | HDA Private Use 2 | 255   | RFC 9374  |
              +-------------------+-------+-----------+

                  Table 9: Registered HHIT Suite IDs

so the HHIT Suite ID values 1 - 31 are reserved for IDs that MUST be replicated as HIT Suite IDs (Section 8.4), and 5 is one of those too ๐Ÿฆ‹ Anything from 32 - 255 is for Suite IDs that don't need to be, or can't be, fit into a HIT Suite ID ๐ŸŒธ

8.3. IANA CGA Registry Update ๐Ÿงš

this document has been added as a reference for the "CGA Extension Type Tags" registry [IANA-CGA] ๐Ÿ’œ IANA has this Context ID in there:

Context ID:

The Context ID (Section 3) shares the namespace that was introduced for CGA Type Tags. The following Context ID is defined under the rules in Section 8 of [RFC3972] ๐Ÿซถ

         +===========================================+===========+
         | CGA Type Tag                              | Reference |
         +===========================================+===========+
         | 0x00B5 A69C 795D F5D5 F008 7F56 843F 2C40 | RFC 9374  |
         +-------------------------------------------+-----------+

                     Table 10: CGA Extension Type Tags

8.4. IANA HIP Registry Updates ๐Ÿ”ฅ

IANA has updated the "Host Identity Protocol (HIP) Parameters" registry [IANA-HIP] like this, bestie ๐Ÿ‘‘

Host ID:

this document defines a brand new EdDSA Host ID with value 13 (Section 3.4.1) in the "HI Algorithm" subregistry of the "Host Identity Protocol (HIP) Parameters" registry ๐ŸŒˆ

                 +===================+=======+===========+
                 | Algorithm Profile | Value | Reference |
                 +===================+=======+===========+
                 | EdDSA             | 13    | [RFC8032] |
                 +-------------------+-------+-----------+

                     Table 11: Registered HI Algorithm

EdDSA Curve Label:

this document specifies a new algorithm-specific subregistry called "EdDSA Curve Label" โœจ Its values are defined in Section 3.4.1.1, and future additions go through IETF Review (Section 4.8 of [RFC8126]) ๐Ÿ’–

            +===========+==============+=========+============+
            | Algorithm | Curve        | Value   | Reference  |
            +===========+==============+=========+============+
            | EdDSA     | RESERVED     | 0       | RFC 9374   |
            +-----------+--------------+---------+------------+
            | EdDSA     | EdDSA25519   | 1       | [RFC8032]  |
            +-----------+--------------+---------+------------+
            | EdDSA     | EdDSA25519ph | 2       | [RFC8032]  |
            +-----------+--------------+---------+------------+
            | EdDSA     | EdDSA448     | 3       | [RFC8032]  |
            +-----------+--------------+---------+------------+
            | EdDSA     | EdDSA448ph   | 4       | [RFC8032]  |
            +-----------+--------------+---------+------------+
            |           |              | 5-65535 | Unassigned |
            +-----------+--------------+---------+------------+

                  Table 12: Registered EdDSA Curve Labels

HIT Suite ID:

this document defines a new HIT Suite of EdDSA/cSHAKE with value 5 (Section 3.4.2) in the "HIT Suite ID" subregistry of the "Host Identity Protocol (HIP) Parameters" registry ๐Ÿ“

                  +=================+=======+===========+
                  | Suite ID        | Value | Reference |
                  +=================+=======+===========+
                  | EdDSA/cSHAKE128 | 5     | RFC 9374  |
                  +-----------------+-------+-----------+

                     Table 13: Registered HIT Suite of
                                EdDSA/cSHAKE

and the HIT Suite ID 4-bit values 1 - 15 and 8-bit values 0x00 - 0x0F MUST be replicated as HHIT Suite IDs (Section 8.2), 5 included ๐Ÿ’…

9. Security Considerations ๐Ÿ’€

okay this section is serious, so buckle up ๐Ÿ˜ญ The 64-bit hash in HHITs presents a real risk of a second pre-image cryptographic hash attack (see Section 9.5). There are no known studies (to the authors, anyway) on how hash size affects cryptographic hash attacks ๐Ÿ™ˆ

however, with today's computing power, producing 2^64 EdDSA keypairs and then generating the matching HHIT is economically feasible. Think about it: a single bitcoin mining ASIC can do on the order of 2^46 sha256 hashes per second, or about 2^62 hashes in a single day ๐Ÿ”ฅ The point is that 2^64 is not prohibitive, especially since this can be done in parallel.

Note that the 2^64 attempts are for stealing a specific HHIT. Now consider a street photography company with 1,024 UAs (each with its own HHIT). An attacker may well be satisfied stealing any one of them ๐Ÿ‘€ In that case, rather than needing to satisfy a 64-bit condition on the cSHAKE128 output, an attacker only needs to satisfy what is equivalent to a 54-bit condition (since there are 2^10 more opportunities for success) ๐Ÿซฃ

so although the probability of a collision or pre-image attack is low in a collection of 1,024 HHITs out of a total population of 2^64 (per Section 9.5), it is computationally and economically feasible ๐Ÿ’” Therefore, the HHIT registration is a MUST, and HHIT/HI registration validation SHOULD be performed by Observers, either through registry lookups or via broadcasted registration proofs (Section 3.1.2 of [DRIP-AUTH]) ๐Ÿšจ

The DET Registry services effectively block attempts to "take over" or "hijack" a DET. They do not stop a rogue from trying to impersonate a known DET ๐Ÿ˜ค This attack can be mitigated by the receiver of messages containing DETs using DNS to find the HI for the DET. So use of DNSSEC by the DET registries is recommended to provide trust in HI retrieval ๐Ÿ”

Another mitigation of HHIT hijacking is when the HI owner (UA) supplies an object containing the HHIT that is signed by the HI private key of the HDA, as detailed in [DRIP-AUTH] โœ๏ธ

The two risks with HHITs are the use of an invalid HID and forced HIT collisions. Using a DNS zone (e.g., "det.arpa.") is strong protection against invalid HIDs ๐Ÿ›ก๏ธ Querying an HDA's RVS for a HIT under the HDA protects against talking to unregistered clients. The Registry service [DRIP-REG], through its HHIT uniqueness enforcement, provides protection against forced or accidental HHIT hash collisions ๐Ÿ’œ

Cryptographically Generated Addresses (CGAs) provide an assurance of uniqueness, and it's two-fold ๐Ÿง  The address (in this case the UAS ID) is a hash of a public key and a Registry hierarchy naming. Collision resistance (and more importantly, the implied second-preimage resistance) makes attacks statistically challenging. A registration process [DRIP-REG] within the HDA provides a level of assured uniqueness that is unattainable without mirroring this approach โœจ

The second aspect of assured uniqueness is the digital signing (evidence) process of the DET by the HI private key, plus the further signing (evidence) of the HI public key by the Registry's key. This completes the ownership process ๐ŸŽ€ At this point the observer doesn't know what owns the DET, but is assured (other than the risk of theft of the HI private key) that this UAS ID is owned by something and is properly registered ๐Ÿฆ‹

9.1. Post-Quantum Computing Is Out of Scope ๐ŸŒธ

as stated in Section 8.1 of [DRIP-ARCH], there has been no effort to address post-quantum computing cryptography ๐Ÿ™ƒ UAs and Broadcast Remote ID communications are so constrained that current post-quantum computing cryptography isn't applicable. Also, because a UA may use a unique DET for each operation, the attack window could be limited to the duration of the operation โฑ๏ธ

HHITs contain the ID for the cryptographic suite used in their creation, so a future algorithm that is safe for post-quantum computing and fits the Remote ID constraints may readily be added ๐Ÿงšโ€โ™€๏ธ

9.2. DET Trust in ASTM Messaging ๐Ÿซ 

the DET in the ASTM Basic ID Message (Msg Type 0x0, the actual Remote ID message) does not provide any assertion of trust. Truncating 4 bytes from a HI signing of the HHIT (the UA ID field is 20 bytes and a HHIT is 16) within this Basic ID Message is the best that can be done. This is not trustable, as it is too open to a hash attack. Minimally, it takes 88 bytes (Section 4.6) to prove ownership of a DET with a full EdDSA signature. So no attempt has been made to add DET trust directly within the very small Basic ID Message ๐Ÿฃ

The ASTM Authentication Message (Msg Type 0x2), as shown in Section 4.6, can provide actual ownership proofs in a practical manner โœ… The endorsements and evidence include timestamps to defend against replay attacks, but they do not prove which UA sent the message. The messages could have been sent by a dog running down the street with a Broadcast Remote ID module strapped to its back ๐Ÿถ๐Ÿ’€

Proof of UA transmission comes, for example, when the Authentication Message includes proof of the ASTM Location/Vector Message (Msg Type 0x1) and either a) the observer can see the UA or b) the location information is validated by ground multilateration. Only then does an observer gain full trust in the DET of the UA ๐Ÿ†

DETs obtained via the Network RID path provide a different approach to trust. Here the UAS SHOULD be securely communicating to the USS, thus asserting DET trust ๐Ÿค

9.3. DET Revocation ๐Ÿšซ

the DNS entry for the DET can also provide a revocation service ๐Ÿ“ก For example, instead of returning the HI RR, it may return some record showing that the HI (and thus the DET) has been revoked. Guidance on revocation service will be provided in [DRIP-REG] ๐Ÿ’…

9.4. Privacy Considerations ๐Ÿซฃ

Okay bestie, let's talk privacy ๐Ÿ™ˆ There is no expectation of privacy for DETs ๐Ÿ’€, and that's not part of the normative privacy requirements in Section 4.3.1 of [RFC9153]. DETs are broadcast in the clear over the open air via Bluetooth and Wi-Fi ๐Ÿ“ก, so they'll get collected and collated with other public info about the UAS ๐Ÿ‘€. That includes DET registration info plus the location and times of operations for a DET. A DET can last for the whole life of a UA if nobody is worried about DET/UA activity harvesting ๐Ÿซ .

Also, the MAC address of the wireless interface used for Remote ID broadcasts is a target for UA operation aggregation, and MAC address randomization may not fix that ๐Ÿ˜ค. For Bluetooth 4 Remote ID messaging, observers use the MAC address to link the Basic ID Message that contains the RID with other Remote ID messages, so it must be constant for a UA operation ๐Ÿ”—. That linking may not be needed with the Bluetooth 5 or Wi-Fi PHYs. Those PHYs have a bigger message payload and can use the Message Pack (Msg Type 0xF) and the Authentication Message to send the RID with other Remote ID messages โœจ. But sending the RID in a Message Pack or Authentication Message is not mandatory, so using the MAC address to link UA messages must be allowed. Basically, the MAC address should be stable for at least a UA operation ๐Ÿ’….

Finally, it is not adequate to simply change the DET and MAC for a UA per operation to defeat tracking the history of the UA's activity ๐Ÿ™….

Any changes to the UA MAC may have impacts on C2 setup and use ๐Ÿ›ฐ๏ธ. A constant GCS MAC may well defeat any privacy gains from UA MAC and RID changes ๐Ÿ˜ฌ. UA/GCS binding gets complicated if the UA MAC address can change. Historically, UAS design assumed these were "forever" and made setup a one-time process. If IP is used for C2, a changing MAC may mean a changing IP address, which further impacts the UAS bindings. And an encryption wrapper's identifier (such as ESP [RFC4303] SPI) would need to change per operation to keep operation tracking separated ๐Ÿ”.

Creating and maintaining UAS operational privacy is a multifaceted problem ๐Ÿงฉ. Many communication pieces need to be considered to truly separate UA operations. Changing the DET is only the start of the changes that need to be implemented ๐ŸŒฑ.

These privacy realities may present challenges for the European Union (EU) U-space (Appendix A) program ๐Ÿ‡ช๐Ÿ‡บ.


9.5. Collision Risks with DETs ๐Ÿ’ฅ

The 64-bit hash size here for DETs does have an increased risk of collisions over the 96-bit hash size used for the ORCHID [RFC7343] construct ๐Ÿ“‰. There is a 0.01% probability of a collision in a population of 66 million. The probability goes up to 1% for a population of 663 million. See Appendix D for the collision probability formula ๐Ÿงฎ.

However, this risk of collision is within a single "Additional Information" value, i.e., an RAA/HDA domain ๐Ÿท๏ธ. The UAS/USS registration process should include registering the DET and MUST reject a collision, forcing the UAS to generate a new HI and thus HHIT and reapplying to the DET registration process (Section 6 of [DRIP-REG]).

The "reject a collision" part is the big one, bestie. It's the whole reason a collision can't turn into a stolen DET ๐Ÿ›ก๏ธ

Thus, an adversary trying to generate a collision and 'steal' the DET would run afoul of this registration process and the associated validation process mentioned in Section 1.1 ๐Ÿšซ.


10. References ๐Ÿ“š

10.1. Normative References

Here's the must-read homework list ๐Ÿงพ

   [NIST.FIPS.202]
              Dworkin, M. J. and National Institute of Standards and
              Technology, "SHA-3 Standard: Permutation-Based Hash and
              Extendable-Output Functions", DOI 10.6028/nist.fips.202,
              July 2015, <http://dx.doi.org/10.6028/nist.fips.202>.

   [NIST.SP.800-185]
              Kelsey, J., Change, S., Perlner, R., and National
              Institute of Standards and Technology, "SHA-3 derived
              functions: cSHAKE, KMAC, TupleHash and ParallelHash",
              DOI 10.6028/nist.sp.800-185, December 2016,
              <http://dx.doi.org/10.6028/nist.sp.800-185>.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC6890]  Cotton, M., Vegoda, L., Bonica, R., Ed., and B. Haberman,
              "Special-Purpose IP Address Registries", BCP 153,
              RFC 6890, DOI 10.17487/RFC6890, April 2013,
              <https://www.rfc-editor.org/info/rfc6890>.

   [RFC7343]  Laganier, J. and F. Dupont, "An IPv6 Prefix for Overlay
              Routable Cryptographic Hash Identifiers Version 2
              (ORCHIDv2)", RFC 7343, DOI 10.17487/RFC7343, September
              2014, <https://www.rfc-editor.org/info/rfc7343>.

   [RFC7401]  Moskowitz, R., Ed., Heer, T., Jokela, P., and T.
              Henderson, "Host Identity Protocol Version 2 (HIPv2)",
              RFC 7401, DOI 10.17487/RFC7401, April 2015,
              <https://www.rfc-editor.org/info/rfc7401>.

   [RFC8005]  Laganier, J., "Host Identity Protocol (HIP) Domain Name
              System (DNS) Extension", RFC 8005, DOI 10.17487/RFC8005,
              October 2016, <https://www.rfc-editor.org/info/rfc8005>.

   [RFC8032]  Josefsson, S. and I. Liusvaara, "Edwards-Curve Digital
              Signature Algorithm (EdDSA)", RFC 8032,
              DOI 10.17487/RFC8032, January 2017,
              <https://www.rfc-editor.org/info/rfc8032>.

   [RFC8126]  Cotton, M., Leiba, B., and T. Narten, "Guidelines for
              Writing an IANA Considerations Section in RFCs", BCP 26,
              RFC 8126, DOI 10.17487/RFC8126, June 2017,
              <https://www.rfc-editor.org/info/rfc8126>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [RFC9373]  Moskowitz, R., Kivinen, T., and M. Richardson, "EdDSA
              Value for IPSECKEY", RFC 9373, DOI 10.17487/RFC9373, March
              2023, <https://www.rfc-editor.org/info/rfc9373>.

10.2. Informative References

Now the extra-credit reading ๐Ÿค“๐ŸŽ€

   [CFRG-COMMENT]
              Gajcowski, N., "Please review draft-ietf-drip-rid",
              message to the CFRG mailing list, 23 September 2021,
              <https://mailarchive.ietf.org/arch/msg/cfrg/
              tAJJq60W6TlUv7_pde5cw5TDTCU/>.

   [CORUS]    CORUS, "SESAR Concept of Operations for U-space", 9
              September 2019, <https://www.sesarju.eu/node/3411>.

   [CTA2063A] ANSI/CTA, "Small Unmanned Aerial Systems Serial Numbers",
              September 2019, <https://shop.cta.tech/products/small-
              unmanned-aerial-systems-serial-numbers>.

   [DRIP-ARCH]
              Card, S. W., Wiethuechter, A., Moskowitz, R., Zhao, S.,
              and A. Gurtov, "Drone Remote Identification Protocol
              (DRIP) Architecture", Work in Progress, Internet-Draft,
              draft-ietf-drip-arch-31, 6 March 2023,
              <https://datatracker.ietf.org/doc/html/draft-ietf-drip-
              arch-31>.

   [DRIP-AUTH]
              Wiethuechter, A., Card, S. W., and R. Moskowitz, "DRIP
              Entity Tag Authentication Formats & Protocols for
              Broadcast Remote ID", Work in Progress, Internet-Draft,
              draft-ietf-drip-auth-29, 15 February 2023,
              <https://datatracker.ietf.org/doc/html/draft-ietf-drip-
              auth-29>.

   [DRIP-REG] Wiethuechter, A. and J. Reid, "DRIP Entity Tag (DET)
              Identity Management Architecture", Work in Progress,
              Internet-Draft, draft-ietf-drip-registries-07, 5 December
              2022, <https://datatracker.ietf.org/doc/html/draft-ietf-
              drip-registries-07>.

   [F3411-22a]
              ASTM International, "Standard Specification for Remote ID
              and Tracking - F3411-22a", July 2022,
              <https://www.astm.org/f3411-22a.html>.

   [FAA_RID]  United States Federal Aviation Administration (FAA),
              "Remote Identification of Unmanned Aircraft", 15 January
              2021, <https://www.govinfo.gov/content/pkg/FR-2021-01-15/
              pdf/2020-28948.pdf>.

   [HHSI]     IANA, "Hierarchical HIT (HHIT) Suite IDs",
              <https://www.iana.org/assignments/drip>.

   [IANA-CGA] IANA, "Cryptographically Generated Addresses (CGA) Message
              Type Name Space",
              <https://www.iana.org/assignments/cga-message-types>.

   [IANA-HIP] IANA, "Host Identity Protocol (HIP) Parameters",
              <https://www.iana.org/assignments/hip-parameters>.

   [IPv6-SPECIAL]
              IANA, "IANA IPv6 Special-Purpose Address Registry",
              <https://www.iana.org/assignments/iana-ipv6-special-
              registry/>.

   [Keccak]   Bertoni, G., Daemen, J., Peeters, M., Van Assche, G., and
              R. Van Keer, "Keccak Team",
              <https://keccak.team/index.html>.

   [RFC3972]  Aura, T., "Cryptographically Generated Addresses (CGA)",
              RFC 3972, DOI 10.17487/RFC3972, March 2005,
              <https://www.rfc-editor.org/info/rfc3972>.

   [RFC4025]  Richardson, M., "A Method for Storing IPsec Keying
              Material in DNS", RFC 4025, DOI 10.17487/RFC4025, March
              2005, <https://www.rfc-editor.org/info/rfc4025>.

   [RFC4034]  Arends, R., Austein, R., Larson, M., Massey, D., and S.
              Rose, "Resource Records for the DNS Security Extensions",
              RFC 4034, DOI 10.17487/RFC4034, March 2005,
              <https://www.rfc-editor.org/info/rfc4034>.

   [RFC4122]  Leach, P., Mealling, M., and R. Salz, "A Universally
              Unique IDentifier (UUID) URN Namespace", RFC 4122,
              DOI 10.17487/RFC4122, July 2005,
              <https://www.rfc-editor.org/info/rfc4122>.

   [RFC4303]  Kent, S., "IP Encapsulating Security Payload (ESP)",
              RFC 4303, DOI 10.17487/RFC4303, December 2005,
              <https://www.rfc-editor.org/info/rfc4303>.

   [RFC5280]  Cooper, D., Santesson, S., Farrell, S., Boeyen, S.,
              Housley, R., and W. Polk, "Internet X.509 Public Key
              Infrastructure Certificate and Certificate Revocation List
              (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, May 2008,
              <https://www.rfc-editor.org/info/rfc5280>.

   [RFC8004]  Laganier, J. and L. Eggert, "Host Identity Protocol (HIP)
              Rendezvous Extension", RFC 8004, DOI 10.17487/RFC8004,
              October 2016, <https://www.rfc-editor.org/info/rfc8004>.

   [RFC8200]  Deering, S. and R. Hinden, "Internet Protocol, Version 6
              (IPv6) Specification", STD 86, RFC 8200,
              DOI 10.17487/RFC8200, July 2017,
              <https://www.rfc-editor.org/info/rfc8200>.

   [RFC9063]  Moskowitz, R., Ed. and M. Komu, "Host Identity Protocol
              Architecture", RFC 9063, DOI 10.17487/RFC9063, July 2021,
              <https://www.rfc-editor.org/info/rfc9063>.

   [RFC9153]  Card, S., Ed., Wiethuechter, A., Moskowitz, R., and A.
              Gurtov, "Drone Remote Identification Protocol (DRIP)
              Requirements and Terminology", RFC 9153,
              DOI 10.17487/RFC9153, February 2022,
              <https://www.rfc-editor.org/info/rfc9153>.

   [RFC9224]  Blanchet, M., "Finding the Authoritative Registration Data
              Access Protocol (RDAP) Service", STD 95, RFC 9224,
              DOI 10.17487/RFC9224, March 2022,
              <https://www.rfc-editor.org/info/rfc9224>.

Okay so this is the final stretch bestie ๐ŸŽ€ Appendix A is all about privacy for EU U-space RID, and it's giving "the privacy stuff actually matters" energy ๐Ÿ”ฅ

Appendix A. EU U-Space RID Privacy Considerations โœจ

The EU is building a whole future of airspace management called U-space, which lives inside the Single European Sky ATM Research (SESAR) undertaking ๐ŸŒธ. The CORUS project (Concept of Operation for EuRopean UTM Systems) put out low-level Concept of Operations [CORUS] for UAS in the EU, and it comes with serious privacy requirements based on the European General Data Protection Regulation (GDPR) ๐Ÿ›ก๏ธ. The vibe is that UAs get identified with agnostic IDs, and those IDs carry no info about UA type, the operators, or the flight trajectory ๐Ÿฆ‹. Only authorized people should be able to look up flight details, and every lookup has to leave a record of access ๐Ÿ“.

Because the privacy bar is so high, a casual observer can only query U-space if they already know about a UA spotted in a certain area ๐Ÿ‘€. A general observer can use a public U-space portal to look up UA details based on the UA's transmitted "Remote identification" signal ๐Ÿ“ก. Direct remote identification (DRID) is based on a signal the UA sends out directly ๐Ÿ’ซ. Network remote identification (NRID) only works for UAs that U-space is tracking, and it works by matching the current UA position to one of the tracks ๐Ÿ›ฐ๏ธ.

ngl this is kind of a contrary expectation to what Section 9.4 presented ๐Ÿ™ˆ. U-space is going to have to deal with this reality inside the GDPR rules ๐Ÿ’…. Still, DETs as defined here are a huge step in the right direction for agnostic IDs ๐Ÿ’–.

The project lists "E-Identification" and "E-Registrations" services as still to be developed ๐Ÿงš. These services can use DETs and follow the privacy considerations outlined in this document for DETs ๐Ÿซถ.

Here's the tea ๐Ÿต: if an "agnostic ID" refers to a completely random identifier, it creates a problem with identity resolution and detection of misuse ๐Ÿ˜ญ. On the other hand, a classical HIT has a flat structure, which makes it really hard to resolve ๐Ÿ’€. The DET (HHIT) gives us a balanced solution by associating a registry with the UA identifier โœจ. This is not likely to cause a major conflict with U-space privacy requirements, because the registries are typically few at a country level (for example civil personal, military, law enforcement, or commercial) ๐Ÿ‘‘.

Appendix B. The 14/14 HID split ๐Ÿ“

The following explains the logic behind dividing the 28 bits of the HID into two 14-bit components ๐Ÿงฎ.

At this writing, the International Civil Aviation Organization (ICAO) has 193 member "States", and each one may want to control RID assignment within its National Air Space (NAS) ๐ŸŒ. Some members may want separate RAAs for Civil, general Government, and Military use ๐ŸŽ–๏ธ. They may also want allowances for competing Civil RAA operations ๐Ÿข. It's reasonable to plan for eight RAAs per ICAO member (plus regional aviation organizations, like in the EU) ๐Ÿ‡ช๐Ÿ‡บ. So, as a start, a space of 4,096 RAAs is advised ๐Ÿ’œ.

There will be requests from commercial entities for their own RAA allotments ๐Ÿ’ผ. Examples could include international organizations that will be using UAS and international delivery service associations ๐Ÿ“ฆ. These may be smaller than the RAA space needed by ICAO member States, and could be met with a 2,048 space allotment ๐Ÿ™Œ. However, as we'll see, these might as well be 4,096 too ๐Ÿคทโ€โ™€๏ธ.

This may well cover the RAA entities we currently understand ๐Ÿง . In the future there will be new applications branching off into new areas, so yet another space allocation should be set aside ๐Ÿš€. If this is equal to all that has been reserved, we should allow for 16,384 (2^14) RAAs ๐ŸŒˆ.

The HDA allocation follows a different logic from the RAAs ๐ŸŽ€. Per Appendix D, an HDA should be able to easily assign 63M RIDs and even manage 663M with a "first come, first assigned" registration process ๐Ÿง. For most HDAs, that's more than enough, and a single HDA assignment within their RAA will do the job โœ…. Most RAAs will only delegate to a couple of HDAs for their operational needs ๐Ÿค. But there are major exceptions that point to some RAAs needing large numbers of HDA assignments ๐Ÿ˜ณ.

Delivery service operators like Amazon (est. 30K delivery vans) and UPS (est. 500K delivery vans) may choose, for anti-tracking reasons, to use unique RIDs per day or even per operation ๐Ÿ“ฎ. 30K delivery UAs could need between 11M and 44M RIDs ๐Ÿ”ข. Anti-tracking would be hard to provide if the HID were the same for a whole delivery service fleet, so such a company may turn to an HDA that provides this service to multiple companies, so that whose UA is whose isn't evident in the HID ๐Ÿ•ต๏ธโ€โ™€๏ธ. A USS providing this service could well use multiple HDA assignments per year, depending on strategy ๐Ÿ—“๏ธ.

Heads up: the lines above describe possibilities and speculation, not guarantees, so don't treat them as settled facts ๐Ÿ™ˆ.

Perhaps a single RAA providing HDAs for delivery service (or a similar purpose) UAS could "get by" with a 2048 HDA space (11 bits) ๐Ÿฆ„. So the HDA space could well be served with only 12 bits allocated out of the 28-bit HID space ๐Ÿซง. However, since this is speculation and deployment experience will take years, a 14-bit HDA space has been selected ๐Ÿ’ซ.

There may also be "small" ICAO member States that opt for a single RAA and allocate their HDAs for all UAs permitted in their NAS ๐Ÿ‡บ๐Ÿ‡ณ. The HDA space is big enough that a portion can be used for government needs, as stated above, and for small commercial needs ๐ŸŽ. Alternatively, the State may use a separate, consecutive RAA for commercial users ๐Ÿ”—. So it would be "easy" to recognize a State-approved UA by the high-order bits of the HID ๐Ÿ‘€โœจ.

B.1. DET Encoding Example ๐Ÿ’–

The upper 64 bits of a DET look oddly constructed from nibbled fields, when you'd typically see them in 8-bit representations ๐Ÿค“. The following works out the construction of the example in Section 5 ๐Ÿงฉ.

In that example, the prefix is 2001:30::/28, the RAA is decimal 10, and the HDA is decimal 20 ๐ŸŽฏ. Below is the RAA and HDA in 14-bit format:

RAA 10 = 00000000001010
HDA 20 = 00000000010100

The leftmost 4 bits of the RAA, all zeros, combine with the prefix to form 2001:0030:, which leaves the remaining RAA and HDA to combine to:

0000|0010|1000|0000|0001|0100|

Which, when combined with the OGA of x05, is 0280:1405, so the whole upper 64 bits are 2001:0030:0280:1405 ๐ŸŽ€โœจ.

Appendix C. Base32 Alphabet ๐Ÿ”ค

The alphabet used in CTA 2063-A Serial Number doesn't map to any published Base32 encoding scheme ๐Ÿ˜ฌ. Therefore, the following Base32 Alphabet is used ๐Ÿซถ.

Each 5-bit group is used as an index into an array of 32 printable characters ๐Ÿ”ข. The character referenced by the index is placed in the output string ๐Ÿ“. These characters are selected from US-ASCII digits and uppercase letters ๐Ÿ” .

 +=====+========+=====+==========+=====+==========+=====+==========+
 |Value|Encoding|Value| Encoding |Value| Encoding |Value| Encoding |
 +=====+========+=====+==========+=====+==========+=====+==========+
 |    0|0       |    8| 8        |   16| G        |   24| Q        |
 +-----+--------+-----+----------+-----+----------+-----+----------+
 |    1|1       |    9| 9        |   17| H        |   25| R        |
 +-----+--------+-----+----------+-----+----------+-----+----------+
 |    2|2       |   10| A        |   18| J        |   26| T        |
 +-----+--------+-----+----------+-----+----------+-----+----------+
 |    3|3       |   11| B        |   19| K        |   27| U        |
 +-----+--------+-----+----------+-----+----------+-----+----------+
 |    4|4       |   12| C        |   20| L        |   28| V        |
 +-----+--------+-----+----------+-----+----------+-----+----------+
 |    5|5       |   13| D        |   21| M        |   29| W        |
 +-----+--------+-----+----------+-----+----------+-----+----------+
 |    6|6       |   14| E        |   22| N        |   30| X        |
 +-----+--------+-----+----------+-----+----------+-----+----------+
 |    7|7       |   15| F        |   23| P        |   31| Y        |
 +-----+--------+-----+----------+-----+----------+-----+----------+

                    Table 14: The Base 32 Alphabet

Appendix D. Calculating Collision Probabilities ๐ŸŽฒ

The accepted formula for calculating the probability of a collision is ๐Ÿง :

p = 1 - e^({-k^2/(2n)})

P: Collision Probability ๐Ÿ“Š

n: Total possible population ๐ŸŒ

k: Actual population ๐Ÿ‘ฅ

The following table gives the approximate population size for a collision at a given total population ๐Ÿ’….

  +==================+============================================+
  | Total Population | Deployed Population With Collision Risk of |
  |                  +=====================================+======+
  |                  | .01%                                | 1%   |
  +==================+=====================================+======+
  | 2^96             | 4T                                  | 42T  |
  +------------------+-------------------------------------+------+
  | 2^72             | 1B                                  | 10B  |
  +------------------+-------------------------------------+------+
  | 2^68             | 250M                                | 2.5B |
  +------------------+-------------------------------------+------+
  | 2^64             | 66M                                 | 663M |
  +------------------+-------------------------------------+------+
  | 2^60             | 16M                                 | 160M |
  +------------------+-------------------------------------+------+

      Table 15: Approximate Population Size With Collision Risk

Acknowledgments ๐Ÿซถ

Dr. Gurtov is an adviser on Cybersecurity to the Swedish Civil Aviation Administration ๐Ÿ‡ธ๐Ÿ‡ช.

Quynh Dang of NIST gave considerable guidance on using Keccak and the supporting NIST documents ๐Ÿ“š. Joan Deamen of the Keccak team was especially helpful in many aspects of using Keccak ๐Ÿ™Œ. Nicholas Gajcowski [CFRG-COMMENT] provided a concise hash pre-image security assessment via the CFRG list ๐Ÿ”.

Many thanks to Michael Richardson and Brian Haberman for the iotdir review, Magnus Nystrom for the secdir review, Elwyn Davies for the genart review, and the DRIP co-chair and document shepherd, Mohamed Boucadair, for his extensive comments and help on document clarity ๐Ÿ’•. And finally, many thanks to the Area Directors: Roman Danyliw, Erik Kline, Murray Kucherawy, Warren Kumari, John Scudder, Paul Wouters, and Sarker Zaheduzzaman, for the IESG review ๐Ÿ‘‘๐ŸŒŸ.

Authors' Addresses ๐Ÿ“ฎ

Robert Moskowitz HTT Consulting Oak Park, MI 48237 United States of America Email: rgm@labs.htt-consult.com

Stuart W. Card AX Enterprize, LLC 4947 Commercial Drive Yorkville, NY 13495 United States of America Email: stu.card@axenterprize.com

Adam Wiethuechter AX Enterprize, LLC 4947 Commercial Drive Yorkville, NY 13495 United States of America Email: adam.wiethuechter@axenterprize.com

Andrei Gurtov Linkรถping University IDA SE-58183 Linkรถping Sweden Email: gurtov@acm.org

๐Ÿ“ฆ where this page comes from