﻿<?xml version='1.0' encoding='utf-8'?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<?rfc iprnotified="no" ?>
<?rfc strict="no" ?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" consensus="true" docName="draft-moskowitz-ads-b-auth-01"
	category="info" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" tocDepth="5"
	xml:lang="en" tocInclude="true" symRefs="true" sortRefs="true" version="3">

<front> <title abbrev="ADS-B Auth">ADS-B Authentication</title>
    <seriesInfo name="Internet-Draft" value="draft-moskowitz-ads-b-auth-01"/>
	<author fullname="Robert Moskowitz" initials="R" surname="Moskowitz" role='editor'>
    <organization>HTT Consulting</organization>
    <address>
      <postal> 
	    <street></street>
        <city>Oak Park</city>
        <region>MI</region>
        <code>48237</code>
        <country>USA</country>
      </postal>
      <email>rgm@labs.htt-consult.com</email>
	</address>
	</author>
	<author fullname="José M. Fernandez" initials="J.M." surname="Fernandez">
	<organization>Bastionnage Consulting</organization>
	<address>
	  <postal>
	    <city>Montreal</city>
	    <country>Canada</country>
	  </postal>
	  <email>jose.fernandez@bastionnage.ca</email>
	</address>
	</author>
	<author fullname="Mikaëla Ngamboé" initials="M." surname="Ngamboé">
	<organization>Polytechnique Montréal</organization>
	<address>
	  <postal>
	    <city>Montreal</city>
	    <country>Canada</country>
	  </postal>
	  <email>mikaela-stephanie-2.ngamboe-mvogo@polymtl.ca</email>
	</address>
	</author>
	<author fullname="Stuart W. Card" initials="S." surname="Card">
	<organization>AX Enterprize, LLC</organization>
	<address>
	  <postal>
	    <street>4947 Commercial Drive</street>
	    <city>Yorkville</city>
	    <region>NY</region>
	    <code>13495</code>
	    <country>USA</country>
	  </postal>
	  <email>stu.card@axenterprize.com</email>
	</address>
	</author>
	<author fullname="Adam Wiethuechter" initials="A." surname="Wiethuechter">
	<organization>AX Enterprize</organization>
	<address>
	  <postal>
	    <street>4947 Commercial Drive</street>
	    <city>Yorkville</city>
	    <region>NY</region>
	    <code>13495</code>
	    <country>USA</country>
	  </postal>
	  <email>adam.wiethuechter@axenterprize.com</email>
	</address>
	</author>
<date year="2026" />
   <area>sec</area>
   <workgroup>TBD</workgroup>
    <keyword>RFC</keyword>
     <keyword>Request for Comments</keyword>
     <keyword>I-D</keyword>
     <keyword>Internet-Draft</keyword>
     <keyword>TESLA</keyword>
     <keyword>ADS-B</keyword>
<abstract>
<t>
	The Automatic Dependent Surveillance – Broadcast (ADS-B) is a 
	surveillance technology mandated in many airspaces.  It is now 
	widely deployed but suffers a lack of security and privacy.  From a 
	security point of view, it is relatively easy to spoof the ADS-B 
	messages. With the appropriate readily available hardware and 
	software.  From a privacy point of view, all the messages contain 
	the aircraft’s assigned 24-bit ICAO address, which makes it easy to 
	link to data about the aircraft, in particular to know when a 
	particular aircraft has flown and where to.  In addition, the main 
	transmission medium utilized for ADS-B, i.e. the 1090 MHz frequency 
	used by Extended Squitter (1090ES), is approaching saturation in 
	some parts of the world with ADS-B and other protocol messages, 
	resulting in packet loss in certain areas <xref 
	target="RF_Usage"/>.
</t>
<t>
	This paper presents the IETF TESLA protocol along with 
	X.509 certificates issued by ICAO member states for each aircraft 
	to authenticate all ADS-B messaging.  It leverages the 8PSK phase 
	overlay (PO) scheme proposed in the Minimum Operational Performance 
	Standards (MOPS) for ADS-B (RTCA <xref target="DO-260C"/>), 
	which enables 1090ES ADS-B transmissions to convey three times more 
	information, to support the transmission of the extra security 
	information required by the authentication scheme.  By doing so, 
	the impact of authentication on channel usage is negligible. Beyond 
	message authentication, this scheme protocol has two important 
	additional benefits: 1) the possibility to implement a Flight 
	Authorization scheme, allowing ATC and intercepting aircraft to not 
	only authenticate an aircraft but to verify that it is authorizes 
	to conduct that flight and 2) a methodology for adequately 
	protecting the privacy by assigning rotating 24-bit identifiers to 
	designated aircraft, while maintaining the possibility to (blindly) 
	authenticate their ADS-B transmissions.
</t>
</abstract>
</front>
<middle>   
<section numbered="true" toc="default"> <name>Introduction</name>
<section anchor="Problem" numbered="true" toc="default"> <name>Problem statement</name>
<t>
	The Automatic Dependent Surveillance – Broadcast (ADS-B) technology 
	is an aviation surveillance protocol that periodically broadcasts 
	the aircraft’s position and other related data, enabling the 
	aircraft to be tracked.  ADS-B does not require an interrogation 
	signal from the ground or from other aircraft to activate its 
	transmissions. ADS-B can also function point-to-point with other 
	nearby ADS-B equipped aircraft to provide traffic situational 
	awareness and support self-separation.
</t>
<t>
	ADS-B messaging is subject to spoofing attacks with readily 
	available hardware and software, an important security threat.  In 
	addition, it exposes potentially confidential information about the 
	aircraft, which is problematic for general and business aviation 
	(i.e. disclosure of Personally Identifiable Information (PII) such 
	as itinerary), as well as military aircraft (disclosure of 
	classified flight trajectories).  Both the security and the privacy 
	threats are recognized to have an impact on aviation safety and 
	need to be addressed.
</t>
<t>
	Another problem, unrelated to ADS-B, is the difficulty for Air 
	Traffic Control (ATC) or a military air force to quickly ensure 
	that a given aircraft approaching restricted airspace (e.g. 
	Temporary Flight Restriction (TFR) zones, or Air Defense 
	Identification Zone (ADIZ)) is indeed authorized to fly through 
	that airspace.  Current solutions rely on the cross-verification of 
	flight authorizations issued prior to the flight (e.g. flight plan, 
	authorization code) with immediate aircraft identification through 
	transponder code or other visual means.  This is problematic and 
	can lead to potentially dangerous situations, especially in zones 
	of conflict or during emergency situations (e.g. ESCAT, ATC Zero).
</t>
</section>
<section anchor="Solution" numbered="true" toc="default"> <name>Protocol Overview</name>
<t>
	This protocol provides an authentication augmentation to ADS-B.
</t>
<ul empty="true">
	<li>
		<ol>
			<li>
				It effectively prevents spoofing attacks by providing a 
				means to verify the authenticity and origin of each 
				ADS-B message.
			</li>
			<li>
				Optionally, it allows for the off-line verification of 
				flight authorization for airborne aircraft, from ADS-B 
				transmissions alone.
			</li>
			<li>
				It retransmits an ADS-B message via the next message’s 
				Phase Overlay, increasing the probability of content 
				reception.
			</li>
			<li>
				It provides an optional mechanism to eliminate the 
				transmission of sensitive information that might lead 
				to undesired disclosure of PII (general and business 
				aviation) or classified information (military 
				aviation).
			</li>
		</ol>
 	</li>
</ul>
<t>
	The protocol uses TESLA <xref target="RFC4082"/> to provide message 
	origin authentication, while it relies on the use of Public-Key 
	Infrastructure (PKI) to provide sender identity (entity) 
	authentication. In the overall process, identity authentication 
	(using certificates and signatures) is performed to verify that the 
	sender is who they claim to be. The challenge presented by needing 
	a very large namespace for globally unique identities is provided 
	by using the IETF DRIP Entity Tag (DET) <xref target="RFC9374"/>.  
	DETs are much more than an extremely large namespace for aviation.  
	They are condensed Identifiers for the Entity certificate and its 
	verifying certificate chain to a trusted root.  These condensed 
	Identifiers can fit within the  additional data capacity enabled by 
	Phase Overlay (PO) mechanisms, whereas even the smallest 
	purpose-built certificate can’t.  They then function as a reference 
	to the full certificates needed for authentication.  Their embedded 
	trust hierarchy provides the needed management connection for such 
	a namespace.
</t>
<t>
	With the sender’s identity established, TESLA is used to ensure 
	that the received messages were indeed generated by that sender and 
	have not been forged.  This is done by having the transponder sign the 
	TESLA “Key Anchor”, K<sub>0</sub> (<xref 
	target="TESLA_Key_Chain"/>), for a particular flight. The Air 
	Navigation Service Provider (ANSP) can also sign the  TESLA key 
	anchor, which provides a means to verify flight authorization, i.e. 
	that the aircraft is authorized to fly at that time and in that 
	airspace.
</t>
<t>
	Optionally, the confidentiality problem can also be handled by 
	replacing the fixed 24-bit aircraft address with a 24-bit 
	identifier different for every flight that only authorized 
	organizations can resolve to the underlying identifier. This is 
	similar to the FAA Privacy ICAO Address program, except that the 
	protocol supports a different identifier for every flight.
</t>
<t>
	Our protocol relies on the use of the 8PSK Phase Overlay (PO) 
	modulation proposed in the Minimum Operational Performance 
	Standards (MOPS) for 1090 MHz Extended Squitter (1090ES) ADS-B 
	(RTCA DO-260C <xref target="DO-260C"/>).  We do this to minimize 
	the impact of message authentication and entity authentication on 
	1090ES channel use.
</t>
<t>
	This protocol herewith builds on the Compatible Authenticated 
	Bandwidth-efficient Broadcast protocol for ADS-B (CABBA) proposal 
	published in March 2025  <xref 
	target="DOI_10.1016_j.ijcip.2024.100728" format="default"/>.  It 
	provides additional detail on implementation with the DO-260C 
	standard and how to implement the PKI based on the Drone Remote 
	Identification Protocol (DRIP) standard <xref target="RFC9374"/>.
</t>
</section>
<section anchor="PDU" numbered="true" toc="default"> <name>The new ADS-B Protocol Data Unit</name>
<t>
	In ISO networking stack terms, the new RTCA DO-260C <xref 
	target="DO-260C"/> 8PSK PO is not a separate data unit, but an 
	expansion of the base 1090ES pulse position modulation (PPM).  The 
	PPM portion provides data source information for receivers via:
</t>
<ul empty="true">
	<li>
		<ul>
			<li>
				Downlink Format (DF, how the PPM is formatted)
			</li>
			<li>
				Device Address (24AA)
			</li>
			<li>
				Type Code (TC)
			</li>
		</ul>
 	</li>
</ul>
<t>
	The PO portion will extend the PPM with additional (204 bits) data 
	capacity.
</t>
<t>
	This protocol uses DF of 17 and 18.  For DF=17 and DF=18 with CF=0, 
	the address field is the ICAO 24-bit Aircraft Address.  For DF=18 
	with CF=1, the address field is an unstructured (i.e. 
	anonymous/random) 24-bit address.  The Type Code only applies to 
	the PPM Message.  The PO portion will need its own Message Type 
	(MT, see below).
</t>
<t>
	As this protocol is authentication for ADS-B, the principal content 
	in the PO is the TESLA MAC and supporting data.  It will be shown 
	that minimally, a packet counter is needed along with the TESLA MAC 
	and a timestamp provides additional functionality beyond a counter.  
	Thus, MOST PO message content will be:
</t>
<ul empty="true">
	<li>
		<ul>
			<li>
				Message Type (MT, 8 bits)
			</li>
			<li>
				Timestamp (24 bits)
			</li>
			<li>
				TESLA MAC (28 bits)
			</li>
		</ul>
 	</li>
</ul>
<t>
	Thus 144 bits remain for data content. The content options will be 
	defined below.
</t>
<t>
	There are some special, large, messages that exceed this 144 bits 
	and are public key signed, thus internally authenticated.  These 
	messages either use the full 196 bits (left after the MT) or the 
	proposed “Extended” messaging with the 51 bits of the PPM ME (via a 
	unique “Extended” TC) for 247 bits.  These messages will also be 
	defined further down.
</t>
</section>
<section anchor="Power-levels" numbered="true" toc="default"> <name>Reduced transmission power for short-range use cases</name>
<t>
	FAA Advisory Circular (AC) 20-165B for the 1090ES link requires 125 
	watts minimum transmit power at the antenna output which equates to 
	40 Nautical Miles (NM) range (RTCA DO-260C standard transmit 
	power).  Power is often up to 200 watts for commercial Mode-S 
	transponders and a 90 NM range.  These power levels can result in 
	significant channel over-use in busy airspace.
</t>
<t>
	A lower power level may be a better approach for ground systems, 
	AAM, and air-to-air applications.  DO-260C does provide for 70 W 
	(range 10NM).  A Mitre report from 2017 on ADS-B Performance with 
	Small UAS at Low Altitudes <xref target="Low_Power"/> shows that 25 
	watts (3-5 NM) is a good choice for these use cases.
</t>
<t>
	This lower power level may make ADS-B battery-powered devices more 
	practical.  An example might be a visor-clipped unit for “visiting” 
	vehicles.  With this proposed authentication feature, ATC would be 
	assured as to what vehicle was showing on their system.
</t>
<t>
	As this protocol is authentication for ADS-B, the principal content 
	in the PO is the TESLA MAC and supporting data.  It will be shown 
	that minimally, a packet counter is needed along with the TESLA MAC 
	and a timestamp provides additional functionality beyond a counter.  
	Thus, MOST PO message content will be:
</t>
<t>
	Although the lower power level will not decrease channel usage 
	around these new participating group vehicles, with proper range 
	limits will not impact approaching aircraft before final decent.
</t>
<t>
	In air-to-air use, the lower power may enable reception of the 
	multi-frame Signed Key Disclosure and Compact Signed Token 
	messages, but this will need testing.
</t>
<t>
	In AAM, the lower power could make it practical for ADS-B use, 
	again for air-to-air.
</t>
</section>
</section>
<section anchor="terms" numbered="true" toc="default"> <name>Terms and Definitions</name>
<section numbered="true" toc="default"> <name>Requirements Terminology</name>
	<t>
		The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL 
		NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", 
		"MAY", and "OPTIONAL" in this document are to be interpreted as 
		described in BCP 14 <xref target="RFC2119" /> <xref 
		target="RFC8174" /> when, and only when, they appear in all 
		capitals, as shown here.
	</t>
</section>
<section anchor="notation" title="Notation">
	<dl newline="true" spacing="normal">
		<dt>||</dt>
		<dd>
			Signifies concatenation of information (e.g., X || Y is the             
			concatenation of X with Y).
		</dd>
		<dt>Ltrunc (x, K)</dt>
		<dd>
			Denotes the lowest order K bits of the input x.
		</dd>
	</dl>
</section>
<section numbered="true" toc="default"> <name>Definitions</name>
	<dl newline="true" spacing="normal">
		<dt>EUROCAE</dt>
		<dd>
			European Organisation for Civil Aviation Equipment.  
			Aviation SDO, originally European, now with broader 
			membership.  Cooperates extensively with RTCA.
		</dd>
		<dt>CAA</dt>
		<dd>
			Civil Aviation Authority of a regulatory jurisdiction.  
			Often so named, but other examples include the United 
			States Federal Aviation Administration (FAA) and the Japan 
			Civil Aviation Bureau.			
		</dd>
		<dt>DET</dt>
		<dd>
			DRIP Entity Tags (DETs) are a specific type of Hierarchical 
			Host Identit Tags (HHIT) as defined in <xref 
			target="RFC9374" section="3"/>.
		</dd>
		<dt>HDA (HHIT Domain Authority):</dt>
		<dd>
			The 14-bit field in a DET that identifies the HHIT Domain 
			Authority under a Registered Assigning Authority (RAA).
		</dd>
		<dt>ICAO</dt>
		<dd>
			International Civil Aviation Organization.  A specialized 
			agency of the United Nations that develops and harmonizes 
			international standards relating to aviation.
		</dd>
		<dt>RAA (Registered Assigning Authority):</dt>
		<dd>
			The 14-bit field in a DET identifying the business or 
			organization that manages a registry of HDAs.  RAAs are 
			typically allocated to CAAs as in <xref target="RFC9886" 
			section="6.2.1"/>.
		</dd>
		<dt>RTCA</dt>
		<dd>
			Radio Technical Commission for Aeronautics.  US aviation 
			SDO.  Cooperates extensively with EUROCAE.
		</dd>
		<dt>Safety</dt>
		<dd>
			"The state in which risks associated with aviation 
			activities, related to, or in direct support of the 
			operation of aircraft, are reduced and controlled to an 
			acceptable level" (from Annex 19 of the Chicago Convention, 
			quoted in <xref target="ICAODEFS" />).
		</dd>
		<dt>Security</dt>
		<dd>
			"Safeguarding civil aviation against acts of unlawful 
			interference" (from Annex 17 of the Chicago Convention, 
			quoted in <xref target="ICAODEFS" />).
		</dd>
 	</dl>
</section>
</section>
<section anchor="Protocol_Mechanism" numbered="true" toc="default"> <name>ADS-B Authentication Protocol Mechanism</name>
<t>
	This paper presents a framework to secure ADS-B communications. It 
	uses X.509 certificates issued within a state-managed PKI for 
	identity authentication and TESLA for message origin 
	authentication. The RTCA <xref target="DO-260C"/> 8PSK phase 
	overlay is leveraged to convey additional data within 1090ES 
	transmissions with minimal communication overhead.
</t>
<section anchor="Protocol_Sketch" numbered="true" toc="default"> <name>Protocol Sketch</name>
<t>
	The solution operates in two mechanisms:
</t>
<ul empty="true">
	<li>
		<ol>
			<li>
				Message origin authentication
			</li>
			<li>
				Identity authentication
			</li>
		</ol>
 	</li>
</ul>
<section anchor="Message_Origin" numbered="true" toc="default"> <name>Message Origin Authentication</name>
<t>
	The ADS-B messages are authenticated using TESLA with a 28-bit 
	TESLA MAC carried in the PO.
</t>
<t>
	The processing is as follows:
</t>
<t>
	At the Sender
</t>
<ul empty="true">
	<li>
		<ol>
			<li>
				The PPM and PO payloads are built with the MAC set to ZERO.
			</li>
			<li>
				The MAC is calculated over the full 112 bits of the PPM 
				and the first 216 bits of the PO (PO less Parity 
				Correction Data) with the MAC field set to ZERO.
			</li>
			<li>
				Insert the MAC into the payload.
			</li>
			<li>
				Apply RS/LDPC encoding.
			</li>
			<li>
				Transmit.
			</li>
		</ol>
 	</li>
</ul>
<t>
	At the Receiver
</t>
<ul empty="true">
	<li>
		<ol>
			<li>
				FEC Decode.
			</li>
			<li>
				Verify MAC (after Key Disclosure below).
			</li>
		</ol>
 	</li>
</ul>
<t>
	Note that the MAC is generated using a TESLA interval key known 
	only to the sender at the time of transmission. This key evolves at 
	fixed intervals according to a predetermined key chain. The 
	interval key is disclosed after a short delay, ensuring that the 
	messages and the MAC are received before the key becomes available, 
	thereby preventing real-time forgery.
</t>
<t>
	Upon key disclosure, the receiver performs two checks:
</t>
<ul empty="true">
	<li>
		<ol>
			<li>
				It verifies that the newly disclosed interval key is 
				valid, by checking that it belongs to the same key 
				chain as previously disclosed keys, hence ensuring that 
				it was sent by the same sender.
			</li>
			<li>
				It computes the MAC of messages received in the 
				previous interval with the newly disclosed key, and 
				compares it with the received MAC, to verify that the 
				corresponding group of messages covered by those MAC 
				originate from the key’s owner and have not been 
				altered in transit.
			</li>
		</ol>
 	</li>
</ul>
</section>
<section anchor="Sender_ID_Auth" numbered="true" toc="default"> <name>Sender Identity Authentication</name>
<t>
	Each aircraft transmitter is provisioned with a cryptographic key 
	pair and an X.509 certificate issued by its operator (or ANSP or 
	CAA) within a state-managed PKI. The certificate binds the 
	aircraft’s 24-bit address (ICAO or anonymous) to a DRIP Entity Tag 
	(DET <xref target="RFC9575"/>), enabling receivers to verify that 
	the sender controls the corresponding private key.  A signed 
	“token”, extracted from the certificate is periodically broadcast 
	to support real-time, over the air, validation.  This token is 
	designed to provide the cryptographic proofs needed by receivers, 
	yet fit within the ADS-B transmission constants. Alternatively, the 
	certificates can be cached or pre-loaded by the receiver which 
	obviates the need to broadcast the tokens often (this will be 
	discussed further in <xref target="Impl-Deply"/>). This step 
	authenticates the sender’s identity but does not guarantee alone 
	the integrity or authenticity of the ADS-B messages it transmits.
</t>
<t>
	Note, receivers having access to the certificate validation chain 
	is a separate problem.  In many cases they may be cached in the 
	receiver, or using their DETs, retrieved via DNS.  Over-the-air 
	transmission of these certificates for air-to-air use cases are not 
	covered here.
</t>
<t>
	While TESLA ensures message origin authentication (two messages 
	come from the same sender because they were MACed with interval 
	keys in the same key schedule), it does not ensure who that sender 
	is.  In order to bind a particular key schedule, and hence a 
	sender, to an identity, it is necessary to periodically send a 
	signed interval key.  This key is signed by the aircraft and 
	optionally also by an ANSP (flight authorization).
</t>
</section>
</section>
<section anchor="ADSB_Message" numbered="true" toc="default"> <name>ADS-B Messaging</name>
<t>
	This section describes the structure of ADS-B messages, focusing on 
	the additional capability the PO adds to the baseline PPM messages.
</t>
<t>
	PO messages, introduced in MOPS DO-260C, allow additional 
	information to be transmitted using the same PPM-modulated carrier. 
	This additional information is encoded in the phase of said signal 
	by applying 8PSK modulation. As a result, a single transmission can 
	carry both a baseline ADS-B message and additional data, which may 
	correspond to another ADS-B message or to other types of 
	information.
</t>
<t>
	The PO capability enables the simultaneous use of both amplitude 
	and phase domains.  DO-260C treats PO as a new message.   This 
	protocol, however, treats it as expanded capacity to the baseline 
	PPM message.
</t>
<t>
	This can be exploited in three main ways:
</t>
<ul empty="true">
	<li>
		<ol>
			<li>
				to transmit independent and unrelated messages in each domain
			</li>
			<li>
				to transmit related information, such as a message 
				together with its associated authentication data (e.g., 
				MAC, signature, certificate)
			</li>
			<li>
				to extend a single message by distributing its content 
				across both domains
			</li>
		</ol>
 	</li>
</ul>
<section anchor="Baseline_Message" numbered="true" toc="default"> <name>Baseline Message</name>
<t>
	The current, “baseline”, ADS-B datagram is 112 bits of which only 
	51 are for message data.  As noted, this is either DF=17 or DF=18 
	with CF={0,1}.  This 51-bit message is identified by an ICAO 24-bit 
	aircraft address or 24-bit random address (herein referred to as 
	24AA) and a 5-bit Message Type Code (TC).
</t>
<figure anchor="baseline-fig"> <name>ADS-B baseline message DF=17 &amp; 18</name>
	<artset>
	<artwork align="center" name="" type="svg" alt="" >
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="384" width="528" viewBox="0 0 528 384" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,48 L 8,176" fill="none" stroke="black"/>
<path d="M 8,240 L 8,368" fill="none" stroke="black"/>
<path d="M 88,48 L 88,112" fill="none" stroke="black"/>
<path d="M 88,240 L 88,304" fill="none" stroke="black"/>
<path d="M 136,48 L 136,80" fill="none" stroke="black"/>
<path d="M 136,240 L 136,272" fill="none" stroke="black"/>
<path d="M 264,144 L 264,176" fill="none" stroke="black"/>
<path d="M 264,336 L 264,368" fill="none" stroke="black"/>
<path d="M 392,112 L 392,144" fill="none" stroke="black"/>
<path d="M 392,304 L 392,336" fill="none" stroke="black"/>
<path d="M 520,48 L 520,144" fill="none" stroke="black"/>
<path d="M 520,240 L 520,336" fill="none" stroke="black"/>
<path d="M 8,48 L 520,48" fill="none" stroke="black"/>
<path d="M 8,80 L 520,80" fill="none" stroke="black"/>
<path d="M 8,112 L 88,112" fill="none" stroke="black"/>
<path d="M 392,112 L 520,112" fill="none" stroke="black"/>
<path d="M 8,144 L 520,144" fill="none" stroke="black"/>
<path d="M 8,176 L 264,176" fill="none" stroke="black"/>
<path d="M 8,240 L 520,240" fill="none" stroke="black"/>
<path d="M 8,272 L 520,272" fill="none" stroke="black"/>
<path d="M 8,304 L 88,304" fill="none" stroke="black"/>
<path d="M 392,304 L 520,304" fill="none" stroke="black"/>
<path d="M 8,336 L 520,336" fill="none" stroke="black"/>
<path d="M 8,368 L 264,368" fill="none" stroke="black"/>
<g class="text">
<text x="16" y="20">0</text>
<text x="176" y="20">1</text>
<text x="336" y="20">2</text>
<text x="496" y="20">3</text>
<text x="16" y="36">0</text>
<text x="32" y="36">1</text>
<text x="48" y="36">2</text>
<text x="64" y="36">3</text>
<text x="80" y="36">4</text>
<text x="96" y="36">5</text>
<text x="112" y="36">6</text>
<text x="128" y="36">7</text>
<text x="144" y="36">8</text>
<text x="160" y="36">9</text>
<text x="176" y="36">0</text>
<text x="192" y="36">1</text>
<text x="208" y="36">2</text>
<text x="224" y="36">3</text>
<text x="240" y="36">4</text>
<text x="256" y="36">5</text>
<text x="272" y="36">6</text>
<text x="288" y="36">7</text>
<text x="304" y="36">8</text>
<text x="320" y="36">9</text>
<text x="336" y="36">0</text>
<text x="352" y="36">1</text>
<text x="368" y="36">2</text>
<text x="384" y="36">3</text>
<text x="400" y="36">4</text>
<text x="416" y="36">5</text>
<text x="432" y="36">6</text>
<text x="448" y="36">7</text>
<text x="464" y="36">8</text>
<text x="480" y="36">9</text>
<text x="496" y="36">0</text>
<text x="512" y="36">1</text>
<text x="48" y="68">DF=17</text>
<text x="116" y="68">CA</text>
<text x="332" y="68">24AA</text>
<text x="52" y="100">TC</text>
<text x="304" y="100">MSG</text>
<text x="456" y="132">CRC</text>
<text x="136" y="164">CRC</text>
<text x="16" y="212">0</text>
<text x="176" y="212">1</text>
<text x="336" y="212">2</text>
<text x="496" y="212">3</text>
<text x="16" y="228">0</text>
<text x="32" y="228">1</text>
<text x="48" y="228">2</text>
<text x="64" y="228">3</text>
<text x="80" y="228">4</text>
<text x="96" y="228">5</text>
<text x="112" y="228">6</text>
<text x="128" y="228">7</text>
<text x="144" y="228">8</text>
<text x="160" y="228">9</text>
<text x="176" y="228">0</text>
<text x="192" y="228">1</text>
<text x="208" y="228">2</text>
<text x="224" y="228">3</text>
<text x="240" y="228">4</text>
<text x="256" y="228">5</text>
<text x="272" y="228">6</text>
<text x="288" y="228">7</text>
<text x="304" y="228">8</text>
<text x="320" y="228">9</text>
<text x="336" y="228">0</text>
<text x="352" y="228">1</text>
<text x="368" y="228">2</text>
<text x="384" y="228">3</text>
<text x="400" y="228">4</text>
<text x="416" y="228">5</text>
<text x="432" y="228">6</text>
<text x="448" y="228">7</text>
<text x="464" y="228">8</text>
<text x="480" y="228">9</text>
<text x="496" y="228">0</text>
<text x="512" y="228">1</text>
<text x="48" y="260">DF=18</text>
<text x="116" y="260">CF</text>
<text x="332" y="260">24AA</text>
<text x="52" y="292">TC</text>
<text x="304" y="292">MSG</text>
<text x="456" y="324">CRC</text>
<text x="136" y="356">CRC</text>
</g>
</svg>
	</artwork>
	<artwork align="center" name="" type="ascii-art" alt="">
<![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  DF=17  |  CA |                      24AA                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    TC   |                         MSG                         |
+-+-+-+-+-+                                     +-+-+-+-+-+-+-+-+
|                                               |      CRC      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              CRC              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  DF=18  |  CF |                      24AA                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    TC   |                         MSG                         |
+-+-+-+-+-+                                     +-+-+-+-+-+-+-+-+
|                                               |      CRC      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              CRC              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]>
	</artwork>
	</artset>
</figure>
</section>
<section anchor="PO_Message" numbered="true" toc="default"> <name>Phase Overlay Messages</name>
<t>
	In 2020, RTCA proposed the use of Phase Overlay (PO) encoding for 
	ADS-B in 1090ES <xref target="DO-260C"/>.  The phase shift keying 
	schemed proposed was 8PSK, which allows for 3 bits encoded in phase 
	in each 1 µs pulse encoding 1 bit of the baseline signal.  The 
	alternate scheme 16PSK has been proposed by some researchers, but 
	was not retained in the MOPS. While 16PSK has greater spectral 
	efficiency than 8PSK, preliminary analysis of Bit Error Rate (BER) 
	in typical ADS-B use-case scenarios <xref 
	target="DOI_10.1016_j.ijcip.2024.100728" format="default"/>, 
	indicates that the BER using 16PSK would be too high.  In the rest 
	of this paper, we therefore propose and use 8PSK as mandated in the 
	MOPS.
</t>
<t>
	The PPM packets consist of 112 pulses, encoding 112 bits, with a 
	total duration of 112 µs; with 8PSK PO additional 336 bits can be 
	sent during that same period.  However, as depicted in <xref 
	target="PO-fig"/>, there is a 12-bit Reference Synchronization 
	Phase (Sync) and 120-bit Parity Correction which leaves only 204 
	bits for data.  From which the first 8 bits are for the Message 
	Type field (MT) leaving 196 bits for actual message content.  With 
	the 24-bit Timestamp and 28-bit TELSA MAC, there remains 144 bits 
	for message content.
</t>
<figure anchor="PO-fig"> <name>ADS-B Phase Overlay (PO) message with Authentication including TESLA MAC</name>
	<artset>
	<artwork align="center" name="" type="svg" alt="" >
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" width="688" viewBox="0 0 688 320" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,48 L 8,304" fill="none" stroke="black"/>
<path d="M 104,208 L 104,240" fill="none" stroke="black"/>
<path d="M 200,48 L 200,80" fill="none" stroke="black"/>
<path d="M 328,48 L 328,80" fill="none" stroke="black"/>
<path d="M 328,176 L 328,208" fill="none" stroke="black"/>
<path d="M 616,144 L 616,176" fill="none" stroke="black"/>
<path d="M 680,48 L 680,304" fill="none" stroke="black"/>
<path d="M 8,48 L 680,48" fill="none" stroke="black"/>
<path d="M 8,80 L 328,80" fill="none" stroke="black"/>
<path d="M 616,144 L 680,144" fill="none" stroke="black"/>
<path d="M 8,176 L 680,176" fill="none" stroke="black"/>
<path d="M 8,208 L 680,208" fill="none" stroke="black"/>
<path d="M 8,240 L 104,240" fill="none" stroke="black"/>
<path d="M 8,304 L 680,304" fill="none" stroke="black"/>
<g class="text">
<text x="16" y="20">0</text>
<text x="176" y="20">1</text>
<text x="336" y="20">2</text>
<text x="496" y="20">3</text>
<text x="656" y="20">4</text>
<text x="16" y="36">0</text>
<text x="32" y="36">1</text>
<text x="48" y="36">2</text>
<text x="64" y="36">3</text>
<text x="80" y="36">4</text>
<text x="96" y="36">5</text>
<text x="112" y="36">6</text>
<text x="128" y="36">7</text>
<text x="144" y="36">8</text>
<text x="160" y="36">9</text>
<text x="176" y="36">0</text>
<text x="192" y="36">1</text>
<text x="208" y="36">2</text>
<text x="224" y="36">3</text>
<text x="240" y="36">4</text>
<text x="256" y="36">5</text>
<text x="272" y="36">6</text>
<text x="288" y="36">7</text>
<text x="304" y="36">8</text>
<text x="320" y="36">9</text>
<text x="336" y="36">0</text>
<text x="352" y="36">1</text>
<text x="368" y="36">2</text>
<text x="384" y="36">3</text>
<text x="400" y="36">4</text>
<text x="416" y="36">5</text>
<text x="432" y="36">6</text>
<text x="448" y="36">7</text>
<text x="464" y="36">8</text>
<text x="480" y="36">9</text>
<text x="496" y="36">0</text>
<text x="512" y="36">1</text>
<text x="528" y="36">2</text>
<text x="544" y="36">3</text>
<text x="560" y="36">4</text>
<text x="576" y="36">5</text>
<text x="592" y="36">6</text>
<text x="608" y="36">7</text>
<text x="624" y="36">8</text>
<text x="640" y="36">9</text>
<text x="656" y="36">0</text>
<text x="672" y="36">1</text>
<text x="108" y="68">Sync</text>
<text x="268" y="68">MT</text>
<text x="344" y="132">MSG</text>
<text x="652" y="164">TS</text>
<text x="168" y="196">Timestamp</text>
<text x="488" y="196">TESLA</text>
<text x="528" y="196">MAC</text>
<text x="56" y="228">MAC</text>
<text x="300" y="276">Parity</text>
<text x="372" y="276">Correction</text>
</g>
</svg>
	</artwork>
	<artwork align="center" name="" type="ascii-art" alt="">
<![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Sync         |       MT      |                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                       +
|                                                               |
+                                                               +
|                              MSG                              |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       |                   Timestamp                   |  MAC  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                   TESLA MAC                   |               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               +
|                                                               |
+                                                               +
|                       Parity Correction                       |
+                                                               +
|                                                               |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]>
	</artwork>
	</artset>
</figure>
<t>
	RTCA in DO-260C, and perhaps other entities, are providing 
	PO-specific messages that are more efficient than the baseline 
	messages they replace.  Support of these messages require changes 
	in the ADS-B application both in the sender and receiver.
</t>
<!-- <t>
	Where the Phase Overlay frame content is being covered, with either 
	baseline or new PO messages, all diagrams will only show the makeup 
	of these 196 bits.
</t> -->
<t>
	The new PO message from RTCA, and potentially other entities, 
	present a challenge if they do not allow for the TESLA MAC.  For 
	this protocol, ALL PO messages (other than the TESLA specific 
	messages below) MUST have the 28-bit TESLA MAC and should have the 
	24-bit timestamp .  As illustrated in <xref 
	target="PO-fig"/>, this leaves 144 bits for content (more 
	than two 56-bit legacy baseline messages).
</t>
<t>
	The current (baseline) and the new PO ADS-B messaging do NOT 
	include any message ordering content (e.g. no Sequence Number or 
	Timestamp).  Due to the ADS-B rebroadcast (ADS-R) and space-based 
	ADS-B feature to enlarge coverage area, receivers MUST expect 
	duplication and out-of-order packet delivery.  This has significant 
	impact on the authentication approach used herein.  The addition of 
	a timestamp as shown in <xref target="PO-fig"/>, above, is highly 
	recommended for all new PO messages.
</t>
</section>
</section>
<section anchor="ADSB_Auth" numbered="true" toc="default"> <name>ADS-B Authentication</name>
<t>
	This section describes the mechanisms used to authenticate ADS-B 
	messages, including data origin authentication using TESLA and 
	sender identity authentication using digital certificates managed 
	by PKI.
</t>
<section anchor="Timestamp" numbered="true" toc="default"> <name>The Timestamp</name>
<t>
	TESLA needs packet ordering, at least within the TESLA key 
	interval.  ADS-B practically assures out-of-order delivery.  Here a 
	timestamp with a degree of accuracy, within the TESLA key interval, 
	is used to clearly tag messages associated with a particular TESLA 
	key.  A counter could also provide this functionality, but a 
	timestamp can have other uses within the ADS-B system and thus 
	used.
</t>
<t>
	A 24-bit unsigned timestamp is used. At one-second resolution, it 
	provides approximately 194 days of coverage, slightly more than six 
	months.  The timestamp is therefore defined over consecutive 
	six-month epochs beginning at 00:00 UTC on January 1 and July 1.
</t>
<t>
	The timestamp represents a continuous count of elapsed seconds from 
	the start of the current epoch, analogous to GPS Time and 
	International Atomic Time (TAI), and is not adjusted for leap 
	seconds. Since leap seconds are inserted only at the end of June or 
	December, coincident with the epoch boundaries, this definition 
	inherently eliminates any one-second ambiguity at the epoch 
	transition.
</t>
<t>
	The transmitted timestamp contains the elapsed time, in one-second 
	intervals, from start of current epoch for the transmitter. 
	Consequently, the receiver must reconstruct the complete timestamp 
	by determining the appropriate six-month epoch.
</t>
<t>
	In normal operation, this reconstruction is straightforward.  The 
	receiver compares the received timestamp with its own synchronized 
	UTC clock and selects the epoch that produces a reconstructed time 
	closest to its current time.  Since transponder and receiver clocks 
	are expected to remain synchronized within a bounded tolerance, 
	only one epoch will normally satisfy this condition.
</t>
<t>
	An ambiguity exists only during the brief interval surrounding the 
	epoch rollover at 00:00 UTC on January 1 and July 1.  During this 
	period, a timestamp value could represent either the final seconds 
	of the preceding epoch or the initial seconds of the new epoch.
</t>
<t>
	The receiver resolves this ambiguity by selecting the epoch that 
	minimizes the difference between the reconstructed timestamp and 
	its local clock.  As a practical consequence, timestamp values near 
	zero are interpreted as belonging to the new epoch, while values 
	near the maximum count are interpreted as belonging to the 
	preceding epoch.  Because the maximum permissible clock offset 
	between the transmitter and receiver is limited to a few hours, the 
	ambiguity window is likewise limited to only a few hours on either 
	side of the epoch boundary.
</t>
<t>
	Outside this narrow rollover interval, the reconstructed timestamp 
	is unique, and the correct epoch is immediately determined without 
	additional processing.
</t>
</section>
<section anchor="Auth_Tech" numbered="true" toc="default"> <name>Authentication Technologies</name>
<t>
	TESLA <xref target="RFC4082"/> is the authentication technology 
	used here.  X.509 digital certificates, managed within a 
	globally-scoped PKI (or Federated PKIs) provide the trust mechanism 
	required by TESLA.
</t>
<section anchor="TESLA_Basic" numbered="true" toc="default"> <name>TESLA Basics</name>
<t>
	Author's Note:  This section is still missing some technical 
	details.  For example, K<sub>N</sub> itself is hashed to make the 
	key used in the key MAC.  The missing details will be added in 
	later revisions.
</t>
<t>
	TESLA is a protocol that provides data origin authentication for 
	broadcast and multicast messages. Each message carries a Keyed 
	Message Authentication Code (Keyed MAC). The TESLA key used to 
	generate the MAC is disclosed only after a short delay, allowing 
	receivers to verify the authenticity of past messages while 
	preventing forgeries.  This delayed disclosure does create a window 
	when messages are unauthenticated.
</t>
<section anchor="TESLA_Key_Chain" numbered="true" toc="default"> <name>TESLA Key Chain Generation</name>
<t>
	Before broadcasting, the sender divides the broadcast period into N 
	equal time intervals and generates a one-way key chain of at least 
	N+1 keys: one key for each interval and an additional key 
	K<sub>0</sub> that serves as a commitment or “anchor” for the 
	entire chain.
</t>
<t>
	The key chain is generated as follows:
</t>
<ul empty="true">
	<li>
		<ol>
			<li>
				Randomly choose the key for the last interval, K<sub>N</sub>.
			</li>
			<li>
				Compute the preceding keys and the commitment 
				K<sub>0</sub> by repeatedly applying a one-way function 
				F to the next key in the chain:
			</li>
		</ol>
 	</li>
</ul>
<blockquote>
	K<sub>i</sub>=F(K<sub>i+1</sub>) for i=N-1,n-2,...,0
</blockquote>
<t>
	This produces the key chain in generation order:
</t>
<blockquote>
	K<sub>N</sub> -&gt; K<sub>N-1</sub> -&gt; ... -&gt; K<sub>1</sub> -&gt; K<sub>0</sub>
</blockquote>
<t>
	During message authentication, TESLA keys are used and disclosed in 
	forward order:
</t>
<blockquote>
	K<sub>1</sub> -&gt; K<sub>2</sub> -&gt; ... -&gt; K<sub>N</sub>
</blockquote>
<t>
	K<sub>0</sub> is never used to generate MACs; it serves solely as a 
	commitment, allowing the receiver to verify the authenticity of all 
	TESLA keys.
</t>
<t>
	Once the key chain is generated, the sender securely communicates a 
	key disclosure schedule to the receivers. This schedule specifies:
</t>
<ul empty="true">
 <li><t></t>
    <ul>
	  <li>Interval duration T<sub>int</sub>, broadcast start time 
	  t<sub>i</sub>, and total number of intervals N</li>
      <li>Key disclosure delay d</li>
      <li>Commitment to the key chain K<sub>0</sub></li>
    </ul>
 </li>
</ul>
<t>
	Using this schedule, receivers can verify each disclosed TESLA key 
	against the commitment K<sub>0</sub>, ensuring that all messages 
	originate from the legitimate sender.
</t>
</section>
<section anchor="Sender_Msg_Trans" numbered="true" toc="default"> <name>Message Transmission (Sender side)</name>
<t>
	For each message m<sub>i</sub> transmitted during interval i, the 
	sender performs the following steps:
</t>
<ol type="%d." group="Sender">
  <li>Derive the authentication key from the interval key K<sub>i</sub> 
  using a one-way function F:</li>
</ol>
<blockquote>
	K<sub>i</sub>=F(K<sub>i</sub>)
</blockquote>
<ol type="%d." group="Sender">
  <li>Compute the MAC of the message using the derived key:</li>
</ol>
<blockquote>
	MAC<sub>j</sub>=MAC<sub>Ki</sub>(m<sub>j</sub>)
</blockquote>
<ol type="%d." group="Sender">
  <li>Construct the TESLA packet containing only the message and its MAC:</li>
</ol>
<blockquote>
	P<sub>j</sub>=m<sub>j</sub>||MAC<sub>K<sub>i</sub></sub>(m<sub>j</sub>)
</blockquote>
<ol type="%d." group="Sender">
  <li>Transmit the packet over the network.</li>
</ol>
<t>
	The interval key (or TESLA key) K<sub>i</sub> is disclosed only 
	after a predefined delay d, so the receiver must temporarily store 
	(or treat them as “authentication pending”) the received packets 
	until the corresponding key is revealed.
</t>
</section>
<section anchor="Recept_Msg" numbered="true" toc="default"> <name>Messages reception and authentication (Receiver side)</name>
<t>
	Upon receiving TESLA packets, the receiver uses the time 
	synchronization protocol to determine whether the TESLA key for the 
	corresponding interval has been disclosed. If not, the packets are 
	temporarily stored or flagged “authentication pending”.
</t>
<t>
	Once the TESLA key K<sub>i-d</sub> for a past interval is disclosed the receiver:
</t>
<ol type="%d." group="Receiver">
  <li>Verify the key’s authenticity against the chain commitment K<sub>0</sub>:</li>
</ol>
<blockquote>
	K<sub>0</sub>=F<sup>v</sup>(K<sub>i-d</sub>)
</blockquote>
<ol type="%d." group="Receiver">
  <li>Derive the authentication key for the interval:</li>
</ol>
<blockquote>
	K<sup>'</sup><sub>i-d</sub>=F<sup>'</sup>(K<sub>i-d</sub>)
</blockquote>
<ol type="%d." group="Receiver">
  <li>Recompute the MACs for all stored messages from interval i – d 
  and compare them with the received MACs. A match confirms that the 
  messages were indeed sent by the entity who generated the key chain 
  and have not been altered.</li>
</ol>
</section>
</section>
</section>
<section anchor="TSLA_ADSB" numbered="true" toc="default"> <name>TESLA in ADS-B</name>
<t>
	Even with only 196 bits of message in each PO frame, the ADS-B 
	TESLA MAC can follow the TESLA RFC with the MAC as part of the 
	message (<xref target="PO-fig"/> above).  It is not 
	necessary to follow the TESLA design done for GNSS SBAS (Global 
	Navigation Satellite System, Satellite-Based Augmentation Systems) 
	Authentication, i.e. with the MAC is in a separate frame.
</t>
<t>
	TESLA uses a keyed-hash function to start the hash-chain 
	construction and then a hash function to build the hash-chain and 
	for receivers to authenticate disclosed K<sub>n</sub>  back to 
	K<sub>0</sub>.  Further, TESLA uses a keyed-hash to MAC messages 
	with the currently undisclosed K<sub>n</sub>  and for receivers to 
	authenticate these messages after K<sub>n</sub>  is disclosed and 
	authenticated back to K<sub>0</sub> (or the last authenticated 
	disclosed Key).
</t>
<t>
	For the TESLA hash-chain and MAC, cSHAKE128 and KMAC128 <xref 
	target="DOI_10.6028_NIST.SP.800-185"/> are recommended for their 
	lower timing operation over a truncated HMAC (2 SHA operations 
	compared to one sponge SHA3 operation).  ASCON-CXOF128 and 
	ASCON-KMAC128 <xref target="DOI_10.6028_NIST.SP.800-232"/> are a 
	more efficient choice to use here.  ASCON is specially designed for 
	applications like ADS-B Authentication.  Note that an ASCON-KMAC is 
	not specifically provided in NIST SP800-232, but it is a direct 
	function of CXOF. Thus, this being “greenfield”, ASCON should be 
	given serious consideration over even cSHAKE/KMAC.
</t>
<t>
	PQC Notes: for the longer symmetric keys for PQC, cSHAKE256 and 
	KMAC256 should be used.  Further, ASCON is not PQC ready.  ASCON 
	was specifically designed for 128 bit keys which are considered too 
	short against QC attacks. There is the ASCON-80pq variant with 160 
	bit keys.  But this may still be considered too small a key.  This 
	remains an open issue with ASCON and may be the issue that directs 
	the use of KMAC.
</t>
<t>
	For authenticating the TESLA hash-chain, EdDSA25519 X.509 
	certificates are used here.  This provides the smallest, 
	NIST-approved, signature (64 bytes) and public key (32 bytes) 
	available.  ”raw” encoding of key fields of the X.509 certificates 
	are used to reduce the signing certificate size for in-band 
	transmissions (what amounts to a signed token, rather than classic 
	“certificate”).
</t>
<t>
	At this writing, it is unclear which Post-Quantum Cryptography 
	(PQC) algorithms will fit within the current ADS-B messaging 
	constraints.  None of the current approved PQC algorithms are 
	workable within these constraints.
</t>
<section anchor="TSLA_Auth_msg" numbered="true" toc="default"> <name>Authentication Messages</name>
<t>
	Four PO payloads are used with ADS-B Authentication. The four 
	messages are:
</t>
<ul empty="true">
 <li>
    <ul>
      <li><t>Just MAC</t>
      <ul empty="true">
		<li>This message’s 144-bit content area is ZERO.  It provides 
		authentication for the PPM portion.</li>
      </ul></li>
    </ul>
    <ul>
      <li><t>PPM Resiliency 1</t>
      <ul empty="true">
		<li>The 56-bit ME from the prior transmission is included to 
		increase likelihood of reception.</li>
      </ul></li>
    </ul>
    <ul>
      <li><t>PPM Resiliency 2</t>
      <ul empty="true">
		<li>The 56-bit ME from the prior two transmission is included 
		to increase likelihood of reception.</li>
      </ul></li>
    </ul>
    <ul>
      <li><t>DET</t>
      <ul empty="true">
		<li>The DET associated with the transmitting device.  For 
		out-of-band retrieval of the TESLA Signed Key Disclosure and 
		Compact Signed Token.</li>
      </ul></li>
    </ul>
 </li>
</ul>
<t>
	There is one PO payload without the ADS-B TELSA Authentication.  It 
	does not need the TESLA Authentication, as it has its own 
	Authentication mechanism.  The message is:
</t>
<ul empty="true">
 <li>
    <ul>
      <li><t>TESLA Unsigned Key Disclosure</t>
      <ul empty="true">
		<li>The TESLA key to authenticate the messages for the current 
			interval.  This is the last message for that interval, 
			though actually sent in the next interval.</li>
      </ul></li>
    </ul>
 </li>
</ul>
<t>
	As will be discussed this protocol should send this with TESLA 
	Authentication.  This is to authenticate the PPM content.  For the, 
	larger, PQC keys, the timestamp and MAC are dropped, leaving 
	authentication of the PPM content to a following Resiliency 
	messages.
</t>
<t>
	Finally there are two messages that establish the trust binding 
	between the TESLA hash-chain and the PKI Entity trust world.
</t>
<ul empty="true">
 <li>
    <ul>
      <li><t>TESLA Signed Key Disclosure</t>
      <ul empty="true">
		<li>The TESLA key, along with other data, signed by the 
		Entities PKI key.</li>
      </ul></li>
    </ul>
    <ul>
      <li><t>Compact Signed Token</t>
      <ul empty="true">
		<li>A minimal X.509 content token to validate the  TESLA Signed 
		Key Disclosure.</li>
      </ul></li>
    </ul>
 </li>
</ul>
<t>
	These messages exceed the capacity of a single PO payload, as they 
	contain Public Key signatures plus other large datum.  They do not 
	need to be TESLA MAC signed, nor timestamp.  They are still too 
	large for a single payload and would have to be spread across 
	multiple PPM frames.  Given the DET, a receiver with Internet 
	connectivity should be able to retrieve them from DNS per <xref 
	target="RFC9886"/>.  It is only for air-to-air (and non-connected 
	ground receivers) that need these messages.  This will be detailed 
	further in this protocol.
</t>
<t>
	It is this critical addition in the 128-bit DET <xref 
	target="RFC9374"/> in the TESLA messaging, above.  It is the DET 
	that provides the linkage to the full certificates (and situations 
	where in-band certificate transmission is not possible or not 
	needed) and the trustworthy identifier for use in back-end systems.  
	It is the inclusion of the DET that provides the trustworthy 
	indirection to safely remove the PII-revealing 24AA, i.e. the 
	possibility of replacing a fixed 24AA with a randomized per-flight 
	24AA.
</t>
<t>
	For receivers with DNS lookup access, the DET can be used directly 
	to get the Compact Signed Token.  It is possible to even get the 
	K<sub>0</sub> TESLA Signed Key Disclosure via DNS as well.  This is 
	especially valuable in congested channel situations where these 
	multi-frame messages may be lost.
</t>
<t>
	The TESLA parameters include:
</t>
<ul empty="true">
	<li>
		<ol group="Params">
			<li>Interval duration</li>
			<li>Unsigned key disclosure frequency</li>
			<li>TESLA key size in bytes</li>
			<li>TESLA keyed MAC algorithm</li>
		</ol>
 	</li>
</ul>
<t>
	The ADS-B TESLA parameters further include:
</t>
<ul empty="true">
	<li>
		<ol group="Params">
			<li>Signed key disclosure frequency (note: not all interval 
			keys must necessarily be signed)</li>	
			<li>in-band certificate transmission frequency</li>
		</ol>
 	</li>
</ul>
<t>
	For per-flight certificates (i.e. for privacy or flight 
	authorization purposes), the Certificate Validity Dates provides 
	the Broadcast Start Time (Not Before Date) and total intervals N 
	((Not After Date – Not Before Date) / interval duration).  Thus, 
	only the TESLA key parameters are sent over the channel.  
	Otherwise, for longer-lived certificates, e.g. those issued for 
	individual aircraft by Civil Aviation Authorities (CAA), their 
	distribution method can either be in-band or through other means 
	(e.g. Internet-based PKI certificate lookup leveraging the DET).
</t>
<t>
	Note, for example, that if the interval duration is 5s and the 
	flight is 20h, N=14400.
</t>
<t>
	The TESLA Broadcast Start Time (1 minute accuracy), and Total 
	number of intervals (N) parameters are encoded in the Signed Key 
	Disclosure messages, as they are specific to each authentication 
	chain.  For per-flight certificates, the following conditions must 
	additionally be met:
</t>
<ul empty="true">
	<li>
		<ol>
			<li>
				The Broadcast Start Time MUST be after the 
				notBeforeTime in the certificate,
			</li>
			<li>
				The beginning of the last transmission interval MUST be 
				before the notAfterTime in the certificate, however,
			</li>
			<li>
				The last transmission (i.e. Broadcast Start Time + N * 
				interval duration) MAY be after notAfterTime in the 
				certificate, but MUST be before notAfterTime + interval 
				duration (or a at least fraction thereof).
			</li>
		</ol>
 	</li>
</ul>
<t>
	For reference, the CABBA proposal <xref 
	target="DOI_10.1016_j.ijcip.2024.100728"/> explored the compromise 
	between Channel Occupancy Rate (COR) and safety margins (in both 
	ATC and airborne traffic awareness scenarios) for the following 
	possible parameter values:
</t>
<ul empty="true">
	<li>
		<ol>
			<li>
				Interval duration: 5 seconds
			</li>
			<li>
				Unsigned key disclosure frequency: every 5 seconds (every interval)
			</li>
			<li>
				Signed key disclosure frequency: every 5, 10, 15 
				seconds (every interval, every 2<sup>nd</sup> or 
				3<sup>rd</sup> interval)
			</li>
			<li>
				In-band signed token transmission: every 5, 15, 20 and 
				30 seconds (every interval, every 3<sup>rd</sup>, 
				4<sup>th</sup> or 5<sup>th</sup> interval)
			</li>
		</ol>
 	</li>
</ul>
<t>
	All of these values provided limited overhead in terms of COR, 
	while providing mostly adequate safety margins.  Nonetheless, 
	further analysis is required to determine adequate values for 
	deployment in a new ADS-B standard.
</t>
<t>
	Note that there is ongoing discussions on the overhead of the 
	Signed key disclosure, particularly with a PQ Signed key disclosure.
</t>
<t>
	At the start of a flight the transmitter starts using the Signed 
	Key Disclosure message with a Start Time as close as possible to 
	and before the current time.  It discards any unused interval keys 
	that are for a prior start time.  The transmitter SHOULD send the 
	Signed Key Disclosure messages at the start of flight and at some 
	pre-determined frequency.  The receivers may cache previously 
	received batches of Signed Key Disclosure messages even before 
	receiving any ADS-B messages or certificates for that transponder. For 
	any Unsigned Key Disclosure message received there MAY be more than 
	one possible Signed Key Disclosure message to consider, but only 
	one will validate the Key, or the Key is fraudulent.
</t>
<t>
	The receiver may have multiple Signed Key Disclosures for a single 
	24AA with different Start Times.  The transmitter may have 
	distributed these in advance to cover the day’s flights.  Thus when 
	hashing an unsigned Key back to a Signed key, the receiver must 
	check against all such Signed Keys.  Once this unsigned Key is 
	validated to a Signed Key, all Signed Keys with an earlier Start 
	Time may be discarded.
</t>
<t>
	This caching authenticates previously received messages.  The 
	receivers (avionics and ground stations) should be appropriately 
	engineered to support caching of multiple aircraft within the time 
	window of interest (a few minutes for aircraft to fractions of an 
	hour for ATC).
</t>
</section>
<section anchor="J_TESLA_MAC" numbered="true" toc="default"> <name>Just TESLA MAC within PO</name>
<t>
	This message simply provides authentication for the PPM content.  
	It is included more as an example. In practice, it is unlikely to 
	be used.
</t>
<t>
	The PO Message Type of &lt;JTM-TBD&gt; is used.
</t>
</section>
<section anchor="Resiliency_1" numbered="true" toc="default"> <name>Baseline messaging within PO – PPM Resiliency 1</name>
<t>
	This message resends the prior PPM’s 56-bit ME.  By resending this 
	ME, it increases the likelihood of its receipt.  There are 88 bits 
	unused.  It will be future work on how new DO-260 work may use it.
</t>
<t>
	The PO Message Type of &lt;PR1-TBD&gt; is used.  The message is as 
	follows:
</t>
<figure anchor="Resiliency_1-fig"> <name>PO PPM Resiliency 1 message</name>
	<artset>
	<artwork align="center" name="" type="svg" alt="" >
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="416" width="528" viewBox="0 0 528 416" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,48 L 8,400" fill="none" stroke="black"/>
<path d="M 72,208 L 72,240" fill="none" stroke="black"/>
<path d="M 200,48 L 200,80" fill="none" stroke="black"/>
<path d="M 200,112 L 200,144" fill="none" stroke="black"/>
<path d="M 264,368 L 264,400" fill="none" stroke="black"/>
<path d="M 328,48 L 328,80" fill="none" stroke="black"/>
<path d="M 392,240 L 392,272" fill="none" stroke="black"/>
<path d="M 456,208 L 456,240" fill="none" stroke="black"/>
<path d="M 520,48 L 520,368" fill="none" stroke="black"/>
<path d="M 8,48 L 520,48" fill="none" stroke="black"/>
<path d="M 8,80 L 328,80" fill="none" stroke="black"/>
<path d="M 200,112 L 520,112" fill="none" stroke="black"/>
<path d="M 8,144 L 200,144" fill="none" stroke="black"/>
<path d="M 72,208 L 520,208" fill="none" stroke="black"/>
<path d="M 8,240 L 520,240" fill="none" stroke="black"/>
<path d="M 8,272 L 392,272" fill="none" stroke="black"/>
<path d="M 264,368 L 520,368" fill="none" stroke="black"/>
<path d="M 8,400 L 264,400" fill="none" stroke="black"/>
<g class="text">
<text x="16" y="20">0</text>
<text x="176" y="20">1</text>
<text x="336" y="20">2</text>
<text x="496" y="20">3</text>
<text x="16" y="36">0</text>
<text x="32" y="36">1</text>
<text x="48" y="36">2</text>
<text x="64" y="36">3</text>
<text x="80" y="36">4</text>
<text x="96" y="36">5</text>
<text x="112" y="36">6</text>
<text x="128" y="36">7</text>
<text x="144" y="36">8</text>
<text x="160" y="36">9</text>
<text x="176" y="36">0</text>
<text x="192" y="36">1</text>
<text x="208" y="36">2</text>
<text x="224" y="36">3</text>
<text x="240" y="36">4</text>
<text x="256" y="36">5</text>
<text x="272" y="36">6</text>
<text x="288" y="36">7</text>
<text x="304" y="36">8</text>
<text x="320" y="36">9</text>
<text x="336" y="36">0</text>
<text x="352" y="36">1</text>
<text x="368" y="36">2</text>
<text x="384" y="36">3</text>
<text x="400" y="36">4</text>
<text x="416" y="36">5</text>
<text x="432" y="36">6</text>
<text x="448" y="36">7</text>
<text x="464" y="36">8</text>
<text x="480" y="36">9</text>
<text x="496" y="36">0</text>
<text x="512" y="36">1</text>
<text x="108" y="68">Sync</text>
<text x="268" y="68">MT</text>
<text x="264" y="100">ME1</text>
<text x="268" y="164">RESERVED</text>
<text x="264" y="228">Timestamp</text>
<text x="488" y="228">MAC</text>
<text x="184" y="260">TESLA</text>
<text x="224" y="260">MAC</text>
<text x="220" y="324">Parity</text>
<text x="292" y="324">Correction</text>
</g>
</svg>
	</artwork>
	<artwork align="center" name="" type="ascii-art" alt="">
<![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Sync         |       MT      |                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                       +
|                              ME1                              |
+                       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       |                                       |
+-+-+-+-+-+-+-+-+-+-+-+-+                                       +
|                            RESERVED                           |
+                                                               +
|                                                               |
+       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       |                   Timestamp                   |  MAC  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                   TESLA MAC                   |               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               +
|                                                               |
+                                                               +
|                       Parity Correction                       |
+                                                               +
|                                                               |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]>
	</artwork>
	</artset>
</figure>
<t>
	The ADS-B transmitter determines the prior PPM message ME to 
	transmit in the PO.
</t>
<t>
	On the receiver side, the prior ME is extracted from the PO.  A 
	full PPM message is constructed, and sent through the normal PPM 
	processing path.  There, it is either a duplication of the prior 
	message, or provides the message that was lost from whatever event.
</t>
<t>
	The TESLA MAC is authenticated on receipt of the disclosed interval 
	key.  Below is an visualization of a 5 second stream (at 6.2 
	msg/sec) of the PPM Resiliency 1 messages (shown on the PO line as 
	“1”) including an Unsigned Key Disclosure message (“U”) and DET 
	message (“D”).
</t>
<figure anchor="Resiliency_1-strm-fig"> <name>PPM Resiliency 1 message stream</name>
	<artset>
	<artwork align="center" name="" type="svg" alt="" >
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="96" width="536" viewBox="0 0 536 96" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 32,48 L 528,48" fill="none" stroke="black"/>
<g class="text">
<text x="40" y="20">0</text>
<text x="200" y="20">1</text>
<text x="360" y="20">2</text>
<text x="520" y="20">3</text>
<text x="40" y="36">1</text>
<text x="56" y="36">2</text>
<text x="72" y="36">3</text>
<text x="88" y="36">4</text>
<text x="104" y="36">5</text>
<text x="120" y="36">6</text>
<text x="136" y="36">7</text>
<text x="152" y="36">8</text>
<text x="168" y="36">9</text>
<text x="184" y="36">0</text>
<text x="200" y="36">1</text>
<text x="216" y="36">2</text>
<text x="232" y="36">3</text>
<text x="248" y="36">4</text>
<text x="264" y="36">5</text>
<text x="280" y="36">6</text>
<text x="296" y="36">7</text>
<text x="312" y="36">8</text>
<text x="328" y="36">9</text>
<text x="344" y="36">0</text>
<text x="360" y="36">1</text>
<text x="376" y="36">2</text>
<text x="392" y="36">3</text>
<text x="408" y="36">4</text>
<text x="424" y="36">5</text>
<text x="440" y="36">6</text>
<text x="456" y="36">7</text>
<text x="472" y="36">8</text>
<text x="488" y="36">9</text>
<text x="504" y="36">0</text>
<text x="520" y="36">1</text>
<text x="12" y="68">AM</text>
<text x="40" y="68">B</text>
<text x="56" y="68">B</text>
<text x="72" y="68">B</text>
<text x="88" y="68">B</text>
<text x="104" y="68">B</text>
<text x="120" y="68">B</text>
<text x="136" y="68">B</text>
<text x="152" y="68">B</text>
<text x="168" y="68">B</text>
<text x="184" y="68">B</text>
<text x="200" y="68">B</text>
<text x="216" y="68">B</text>
<text x="232" y="68">B</text>
<text x="248" y="68">B</text>
<text x="264" y="68">B</text>
<text x="280" y="68">B</text>
<text x="296" y="68">B</text>
<text x="312" y="68">B</text>
<text x="328" y="68">B</text>
<text x="344" y="68">B</text>
<text x="360" y="68">B</text>
<text x="376" y="68">B</text>
<text x="392" y="68">B</text>
<text x="408" y="68">B</text>
<text x="424" y="68">B</text>
<text x="440" y="68">B</text>
<text x="456" y="68">B</text>
<text x="472" y="68">B</text>
<text x="488" y="68">B</text>
<text x="504" y="68">B</text>
<text x="520" y="68">B</text>
<text x="12" y="84">PO</text>
<text x="40" y="84">1</text>
<text x="56" y="84">1</text>
<text x="72" y="84">1</text>
<text x="88" y="84">1</text>
<text x="104" y="84">U</text>
<text x="120" y="84">1</text>
<text x="136" y="84">1</text>
<text x="152" y="84">D</text>
<text x="168" y="84">1</text>
<text x="184" y="84">1</text>
<text x="200" y="84">1</text>
<text x="216" y="84">1</text>
<text x="232" y="84">1</text>
<text x="248" y="84">1</text>
<text x="264" y="84">1</text>
<text x="280" y="84">1</text>
<text x="296" y="84">1</text>
<text x="312" y="84">1</text>
<text x="328" y="84">1</text>
<text x="344" y="84">1</text>
<text x="360" y="84">1</text>
<text x="376" y="84">1</text>
<text x="392" y="84">1</text>
<text x="408" y="84">1</text>
<text x="424" y="84">1</text>
<text x="440" y="84">1</text>
<text x="456" y="84">1</text>
<text x="472" y="84">1</text>
<text x="488" y="84">1</text>
<text x="504" y="84">1</text>
<text x="520" y="84">1</text>
</g>
</svg>
	</artwork>
	<artwork align="center" name="" type="ascii-art" alt="">
<![CDATA[
    0                   1                   2                   3 
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
AM  B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B
PO  1 1 1 1 U 1 1 D 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
]]>
	</artwork>
	</artset>
</figure>
<t>
	Note that the messages prior to U and D are not repeated.  This can 
	be addressed by using the  PPM Resiliency 2 message following those 
	messages.
</t>
</section>
<section anchor="Resiliency_2" numbered="true" toc="default"> <name>Baseline messaging within PO – PPM Resiliency 2</name>
<t>
	A natural extension to the PPM Resiliency 1 message is the PPM 
	Resiliency 2 message.  Here the prior 2 PPM ME messages are resent.  
	This leaves 32 bits reserved.
</t>
<t>
	The PO Message Type of &lt;PR2-TBD&gt; is used.  The message is as 
	follows:
</t>
<figure anchor="Resiliency_2-fig"> <name>PO PPM Resiliency 2 message</name>
	<artset>
	<artwork align="center" name="" type="svg" alt="" >
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="416" width="528" viewBox="0 0 528 416" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,48 L 8,400" fill="none" stroke="black"/>
<path d="M 72,176 L 72,240" fill="none" stroke="black"/>
<path d="M 200,48 L 200,80" fill="none" stroke="black"/>
<path d="M 200,112 L 200,144" fill="none" stroke="black"/>
<path d="M 264,368 L 264,400" fill="none" stroke="black"/>
<path d="M 328,48 L 328,80" fill="none" stroke="black"/>
<path d="M 392,240 L 392,272" fill="none" stroke="black"/>
<path d="M 456,208 L 456,240" fill="none" stroke="black"/>
<path d="M 520,48 L 520,368" fill="none" stroke="black"/>
<path d="M 8,48 L 520,48" fill="none" stroke="black"/>
<path d="M 8,80 L 328,80" fill="none" stroke="black"/>
<path d="M 200,112 L 520,112" fill="none" stroke="black"/>
<path d="M 8,144 L 200,144" fill="none" stroke="black"/>
<path d="M 72,176 L 520,176" fill="none" stroke="black"/>
<path d="M 8,208 L 520,208" fill="none" stroke="black"/>
<path d="M 8,240 L 520,240" fill="none" stroke="black"/>
<path d="M 8,272 L 392,272" fill="none" stroke="black"/>
<path d="M 264,368 L 520,368" fill="none" stroke="black"/>
<path d="M 8,400 L 264,400" fill="none" stroke="black"/>
<g class="text">
<text x="16" y="20">0</text>
<text x="176" y="20">1</text>
<text x="336" y="20">2</text>
<text x="496" y="20">3</text>
<text x="16" y="36">0</text>
<text x="32" y="36">1</text>
<text x="48" y="36">2</text>
<text x="64" y="36">3</text>
<text x="80" y="36">4</text>
<text x="96" y="36">5</text>
<text x="112" y="36">6</text>
<text x="128" y="36">7</text>
<text x="144" y="36">8</text>
<text x="160" y="36">9</text>
<text x="176" y="36">0</text>
<text x="192" y="36">1</text>
<text x="208" y="36">2</text>
<text x="224" y="36">3</text>
<text x="240" y="36">4</text>
<text x="256" y="36">5</text>
<text x="272" y="36">6</text>
<text x="288" y="36">7</text>
<text x="304" y="36">8</text>
<text x="320" y="36">9</text>
<text x="336" y="36">0</text>
<text x="352" y="36">1</text>
<text x="368" y="36">2</text>
<text x="384" y="36">3</text>
<text x="400" y="36">4</text>
<text x="416" y="36">5</text>
<text x="432" y="36">6</text>
<text x="448" y="36">7</text>
<text x="464" y="36">8</text>
<text x="480" y="36">9</text>
<text x="496" y="36">0</text>
<text x="512" y="36">1</text>
<text x="108" y="68">Sync</text>
<text x="268" y="68">MT</text>
<text x="264" y="100">ME1</text>
<text x="264" y="148">ME2</text>
<text x="300" y="196">RESERVED</text>
<text x="44" y="228">RSVD</text>
<text x="264" y="228">Timestamp</text>
<text x="488" y="228">MAC</text>
<text x="184" y="260">TESLA</text>
<text x="224" y="260">MAC</text>
<text x="220" y="324">Parity</text>
<text x="292" y="324">Correction</text>
</g>
</svg>
	</artwork>
	<artwork align="center" name="" type="ascii-art" alt="">
<![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Sync         |       MT      |                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                       +
|                              ME1                              |
+                       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       |                                       |
+-+-+-+-+-+-+-+-+-+-+-+-+      ME2                              +
|                                                               |
+       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       |                        RESERVED                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  RSVD |                   Timestamp                   |  MAC  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                   TESLA MAC                   |               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               +
|                                                               |
+                                                               +
|                       Parity Correction                       |
+                                                               +
|                                                               |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]>
	</artwork>
	</artset>
</figure>
<t>
	The Resiliency 2 message is constructed similar to the Resiliency 1 
	message, and likewise process similarly on the receiver’s side.  
	The primary value in the Resiliency 2 message is to provide 
	resiliency for the message prior to the one carrying Unsigned Key 
	Disclosure or DET message.  A transmitter may choose to always sent 
	the Resiliency 2 over the Resiliency 1 message.
</t>
<t>
	Below is an visualization of a 5 second stream (at 6.2 msg/sec) of 
	the Resiliency 2  messages (shown on the PO line as “2”) including 
	an Unsigned Key Disclosure message (“U”) and DET message (“D”).
</t>
<figure anchor="Resiliency_2-strm-fig"> <name>PPM Resiliency 2 message stream</name>
	<artset>
	<artwork align="center" name="" type="svg" alt="" >
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="96" width="536" viewBox="0 0 536 96" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 32,48 L 528,48" fill="none" stroke="black"/>
<g class="text">
<text x="40" y="20">0</text>
<text x="200" y="20">1</text>
<text x="360" y="20">2</text>
<text x="520" y="20">3</text>
<text x="40" y="36">1</text>
<text x="56" y="36">2</text>
<text x="72" y="36">3</text>
<text x="88" y="36">4</text>
<text x="104" y="36">5</text>
<text x="120" y="36">6</text>
<text x="136" y="36">7</text>
<text x="152" y="36">8</text>
<text x="168" y="36">9</text>
<text x="184" y="36">0</text>
<text x="200" y="36">1</text>
<text x="216" y="36">2</text>
<text x="232" y="36">3</text>
<text x="248" y="36">4</text>
<text x="264" y="36">5</text>
<text x="280" y="36">6</text>
<text x="296" y="36">7</text>
<text x="312" y="36">8</text>
<text x="328" y="36">9</text>
<text x="344" y="36">0</text>
<text x="360" y="36">1</text>
<text x="376" y="36">2</text>
<text x="392" y="36">3</text>
<text x="408" y="36">4</text>
<text x="424" y="36">5</text>
<text x="440" y="36">6</text>
<text x="456" y="36">7</text>
<text x="472" y="36">8</text>
<text x="488" y="36">9</text>
<text x="504" y="36">0</text>
<text x="520" y="36">1</text>
<text x="12" y="68">AM</text>
<text x="40" y="68">B</text>
<text x="56" y="68">B</text>
<text x="72" y="68">B</text>
<text x="88" y="68">B</text>
<text x="104" y="68">B</text>
<text x="120" y="68">B</text>
<text x="136" y="68">B</text>
<text x="152" y="68">B</text>
<text x="168" y="68">B</text>
<text x="184" y="68">B</text>
<text x="200" y="68">B</text>
<text x="216" y="68">B</text>
<text x="232" y="68">B</text>
<text x="248" y="68">B</text>
<text x="264" y="68">B</text>
<text x="280" y="68">B</text>
<text x="296" y="68">B</text>
<text x="312" y="68">B</text>
<text x="328" y="68">B</text>
<text x="344" y="68">B</text>
<text x="360" y="68">B</text>
<text x="376" y="68">B</text>
<text x="392" y="68">B</text>
<text x="408" y="68">B</text>
<text x="424" y="68">B</text>
<text x="440" y="68">B</text>
<text x="456" y="68">B</text>
<text x="472" y="68">B</text>
<text x="488" y="68">B</text>
<text x="504" y="68">B</text>
<text x="520" y="68">B</text>
<text x="12" y="84">PO</text>
<text x="40" y="84">2</text>
<text x="56" y="84">2</text>
<text x="72" y="84">2</text>
<text x="88" y="84">2</text>
<text x="104" y="84">U</text>
<text x="120" y="84">2</text>
<text x="136" y="84">2</text>
<text x="152" y="84">D</text>
<text x="168" y="84">2</text>
<text x="184" y="84">2</text>
<text x="200" y="84">2</text>
<text x="216" y="84">2</text>
<text x="232" y="84">2</text>
<text x="248" y="84">2</text>
<text x="264" y="84">2</text>
<text x="280" y="84">2</text>
<text x="296" y="84">2</text>
<text x="312" y="84">2</text>
<text x="328" y="84">2</text>
<text x="344" y="84">2</text>
<text x="360" y="84">2</text>
<text x="376" y="84">2</text>
<text x="392" y="84">2</text>
<text x="408" y="84">2</text>
<text x="424" y="84">2</text>
<text x="440" y="84">2</text>
<text x="456" y="84">2</text>
<text x="472" y="84">2</text>
<text x="488" y="84">2</text>
<text x="504" y="84">2</text>
<text x="520" y="84">2</text>
</g>
</svg>
	</artwork>
	<artwork align="center" name="" type="ascii-art" alt="">
<![CDATA[
    0                   1                   2                   3 
    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
AM  B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B
PO  2 2 2 2 U 2 2 D 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
]]>
	</artwork>
	</artset>
</figure>
</section>
<section anchor="DET_Msg" numbered="true" toc="default"> <name>The ADS-B DET Message</name>
<t>
	The 128-bit DET is the indexing key to the Compact Signing Token, 
	the K<sub>0</sub> TESLA Signed Key Disclosure, and even the full 
	X.509 certificate.  It is carried in a TESLA MAC PO message to bind 
	the DET to the TESLA chain and thus the 24AA so that receivers can 
	trust that this is the DET to use for the DNS lookup (per <xref 
	target="RFC9886"/>) of the appropriate certificate(s).
</t>
<t>
	The PO Message Type of &lt;DET-TBD&gt; is used.  The message is as 
	follows:
</t>
<figure anchor="DET-fig"> <name>DET message</name>
	<artset>
	<artwork align="center" name="" type="svg" alt="" >
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="416" width="528" viewBox="0 0 528 416" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
<path d="M 8,48 L 8,400" fill="none" stroke="black"/>
<path d="M 72,208 L 72,240" fill="none" stroke="black"/>
<path d="M 200,48 L 200,80" fill="none" stroke="black"/>
<path d="M 264,368 L 264,400" fill="none" stroke="black"/>
<path d="M 328,48 L 328,80" fill="none" stroke="black"/>
<path d="M 328,176 L 328,208" fill="none" stroke="black"/>
<path d="M 392,240 L 392,272" fill="none" stroke="black"/>
<path d="M 456,208 L 456,240" fill="none" stroke="black"/>
<path d="M 520,48 L 520,368" fill="none" stroke="black"/>
<path d="M 8,48 L 520,48" fill="none" stroke="black"/>
<path d="M 8,80 L 328,80" fill="none" stroke="black"/>
<path d="M 328,176 L 520,176" fill="none" stroke="black"/>
<path d="M 8,208 L 520,208" fill="none" stroke="black"/>
<path d="M 8,240 L 520,240" fill="none" stroke="black"/>
<path d="M 8,272 L 392,272" fill="none" stroke="black"/>
<path d="M 264,368 L 520,368" fill="none" stroke="black"/>
<path d="M 8,400 L 264,400" fill="none" stroke="black"/>
<g class="text">
<text x="16" y="20">0</text>
<text x="176" y="20">1</text>
<text x="336" y="20">2</text>
<text x="496" y="20">3</text>
<text x="16" y="36">0</text>
<text x="32" y="36">1</text>
<text x="48" y="36">2</text>
<text x="64" y="36">3</text>
<text x="80" y="36">4</text>
<text x="96" y="36">5</text>
<text x="112" y="36">6</text>
<text x="128" y="36">7</text>
<text x="144" y="36">8</text>
<text x="160" y="36">9</text>
<text x="176" y="36">0</text>
<text x="192" y="36">1</text>
<text x="208" y="36">2</text>
<text x="224" y="36">3</text>
<text x="240" y="36">4</text>
<text x="256" y="36">5</text>
<text x="272" y="36">6</text>
<text x="288" y="36">7</text>
<text x="304" y="36">8</text>
<text x="320" y="36">9</text>
<text x="336" y="36">0</text>
<text x="352" y="36">1</text>
<text x="368" y="36">2</text>
<text x="384" y="36">3</text>
<text x="400" y="36">4</text>
<text x="416" y="36">5</text>
<text x="432" y="36">6</text>
<text x="448" y="36">7</text>
<text x="464" y="36">8</text>
<text x="480" y="36">9</text>
<text x="496" y="36">0</text>
<text x="512" y="36">1</text>
<text x="108" y="68">Sync</text>
<text x="268" y="68">MT</text>
<text x="264" y="132">DET</text>
<text x="428" y="196">RESERVED</text>
<text x="44" y="228">RSVD</text>
<text x="264" y="228">Timestamp</text>
<text x="488" y="228">MAC</text>
<text x="184" y="260">TESLA</text>
<text x="224" y="260">MAC</text>
<text x="220" y="324">Parity</text>
<text x="292" y="324">Correction</text>
</g>
</svg>
	</artwork>
	<artwork align="center" name="" type="ascii-art" alt="">
<![CDATA[
 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Sync         |       MT      |                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                       +
|                                                               |
+                                                               +
|                              DET                              |
+                                                               +
|                                                               |
+                                       +-+-+-+-+-+-+-+-+-+-+-+-+
|                                       |        RESERVED       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  RSVD |                   Timestamp                   |  MAC  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                   TESLA MAC                   |               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+               +
|                                                               |
+                                                               +
|                       Parity Correction                       |
+                                                               +
|                                                               |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]>
	</artwork>
	</artset>
</figure>
</section>
<section anchor="UKD-msg" numbered="true" toc="default"> <name>The ADS-B TESLA Unsigned Key Disclosure Message</name>
<t>
	Author's Note:  This section needs work.  The larger, PQ key size 
	was added after the original design for a 128-bit key.  This needs 
	clean up for better/clear support of larger key size for PQ.
</t>
<!--<t>
	The TESLA Delay time, d, is important in that it needs to be long 
	enough that an attacker cannot generate a spoofed message with an 
	earlier time using the disclosed key.  A delay time between .5 and 
	.7 seconds should work to defeat this attack.
</t> -->
<t>
	The TESLA Unsigned Key Disclosure is sent in one full PO message. 
	It could be sent as the sole content in the 196-bit message as the 
	current TESLA key (128 bits) with the rest of the message ZERO 
	padded.  The receiver validates this TESLA key by performing the 
	TESLA Key hashing function until reaching the most current prior 
	validated disclosed TESLA key.  This MAY be K<sub>0</sub>, or a 
	latter key K<sub>i</sub>, obtained via a TESLA Signed Key 
	Disclosure, or K<sub>0</sub> obtained through another out-of-band 
	authenticated channel.
</t>
<t>
	As this disclosed TESLA key is immediately hashed back to the last 
	validated TESLA hash-point, there is no direct value in sending it 
	in a TESLA MACed frame.  However, doing so MACs the PPM content and 
	thus this protocol actually sends Unsigned Key Disclosure in a 
	MACed message identical (other than the MT) to the DET message 
	(<xref target="DET-fig"/> above).
</t>
<t>
	One potential use of the Timestamp value in this message is to 
	calculate which was the last message MACed with this key (time &lt; 
	This-Timestamp – Disclosure-Delay).  Messages in “Validation 
	Pending” status are divided into those prior to this time and 
	SHOULD be authenticated with this key and those after this time and 
	are still Pending (waiting for next Key).
</t>
<t>
	The TESLA Delay time, d, is important in that it needs to be long 
	enough that an attacker cannot generate a spoofed message with an 
	earlier time using the disclosed key.  A delay time between 0.5 and 
	0.7 seconds should work to defeat this attack.
</t>
<t>
	Thus, the worst case is performing N hashes to K<sub>0</sub>.  For 
	example, with the proposed interval duration of 5s, a long 14-hour 
	flight from Sydney AU to London UK may require close to 10,000 hash 
	operations to verify the validity of the last interval keys.  If 
	signed keys are transmitted regularly, the number of hash 
	computations would never be so high.  For example, with the 
	parameters explored in the CABBA paper <xref 
	target="DOI_10.1016_j.ijcip.2024.100728"/>, signed keys were sent 
	at most at every 5<sup>th</sup> interval, thus limiting the number 
	of hash computations to five.  Nonetheless, a reasonable scenario 
	where computation of the full hash chain for a flight would be 
	required is where signed keys were never sent in-band but rather 
	sent through another authenticated channel, e.g. in future 
	PQC-compliant ADS-B Tesla implementations where signature sizes are 
	to large to be sent in-band.  In all cases, the use of the more 
	efficient ASCON-CXOF128 over cSHAKE128 (or even less efficient 
	HMAC) is preferable.
</t>
<t>
	There are operational approaches to receive prior authenticated 
	TESLA keys, through other connections, to avoid this long hashing 
	operation.
</t>
<t>
	Note that in the Post Quantum discussion below, a 192-bit TESLA key 
	is recommended.  This would take the whole available PO bits (196). 
	Using all 196 bits (or even 160 bits) for the key would leave the 
	PPM unauthenticated and thus requires the next message to be a 
	Resiliency 1 (or 2) message.
</t>
<t>
	The PO Message Type of &lt;UKD-TBD&gt; is used.
</t>
</section>
<section anchor="SKD-msg" numbered="true" toc="default"> <name>The ADS-B TESLA Signed Key Disclosure Message</name>
<t>
	The TESLA Signed Key Disclosure provides the trust of the TESLA 
	hash-chain to a specific ADS-B transmitter.  Initially, the key 
	here is K<sub>0</sub>, which is never used in the MACing process.  
	The first key used is K<sub>1</sub>.  Thus, any prepublication of 
	K<sub>0</sub> does not compromise the TESLA authentication.
</t>
<t>
	If the regular transmission of signed keys is implemented, then 
	transmitter may transmit a more “current” signed TESLA Ki key for a 
	past i-th interval.  Each such message will include 1) a Broadcast 
	Start Time (format TBD), corresponding to the beginning of the 
	interval of the signed key, and 2) the total number of intervals N, 
	each 3 bytes.  It may be more secure if this is the remaining 
	number of intervals.  This will require more study.
</t>
<t>
	If the signed key is NOT K<sub>0</sub>, it does not obviate the 
	first sending of that key unsigned.  The signed key ALWAYS comes 
	after the sending the signed key.
</t>
<t>
	This message needs 5 full PO messages when the ADS-B Certificate 
	Public Key algorithm is EdDSA25519.  This message has a 
	MT=&lt;SKD&gt;. The whole 810-bit message is:
</t>
<ul empty="true">
 <li><t></t>
    <ul>
	  <li>Current TESLA key (128 bits)</li>
      <li>DET of ADS-B signing certificate (128 bits)</li>
      <li>Signature (512 bits)</li>
      <li>TESLA Broadcast Start Time (24 bits)</li>
      <li>TESLA Total number of intervals N (18 bits)</li>
    </ul>
 </li>
</ul>
<t>
	These 810 bits would need 5 PO messages, thus either using that 
	many Message Types, or add a 3-bit subType field.  The subType 
	reduces the payload to 193 bits; this still fits into 5 messages.
</t>
<t>
	Note that compressing the DET to 94 bits (drop the prefix and limit 
	the RAA to 8-bit range) does not reduce this to 4 PO messages.  
	Plus, a PQC TESLA key of 192 bits pushes this message into a 
	5-frame requirement.
</t>
<t>
	The risk of dropping 1 out of 5 messages in ADS-B is real, thus a 
	FEC message is recommended.  If sent serially, these messages 
	occupy the channel for 0.6 ms, where any other transmission could 
	disrupt one or two messages.  Thus, it is recommended that the 
	transmitter use some strategy for ensuring complete reception of 
	the 5-message set.  The specific FEC algorithm is yet to be 
	selected.  See Appendix B for more discussions on FEC.
</t>
<t>
	It may well be that this Signed Key Disclosure message need only be 
	sent once per minute or even less often, as discussed in the
	<xref target="DOI_10.1016_j.ijcip.2024.100728"/> paper.  It depends 
	on how soon receivers need to identify the cryptographically true 
	source of the messages.  Note that the 24AA is in all ADS-B 
	messages (in the PPM portion), but any sender can make any claim 
	of a 24AA without this Signed Key Disclosure message or some other 
	trusted published link of the TESLA K<sub>0</sub> to the 24AA.
</t>
<t>
	For future asymmetric PostQuantumCrypto (PQC), a different Signed 
	Key Disclosure needing more than 5 PO messages and a single FEC may 
	not provide proper FEC behavior.  This is a challenge to be 
	addressed in future work.
</t>
</section>
<section anchor="Extended-SKD-msg" numbered="true" toc="default"> <name>The ADS-B TESLA Extended Signed Key Disclosure Message</name>
<t>
	An important consequence Signed Key Disclosure message is the PPM 
	content is NOT authenticated.  These 5 (or 6 including a FEC frame) 
	messages would have to be authenticated in a series of Resiliency 2 
	messages.  This is a potential negative impact to sending the 
	Signed Key Disclosure message.
</t>
<t>
	There is an alternate approach would create a new PPM message 
	called “PO Extended” with a TC=&lt;PO-Extended&gt;.
</t>
<t>
	As this TC is unknown to existing ADS-B receivers, it will be 
	ignored.  The 51 bits from ME are used as extended bits to the 196 
	bits in the PO portion of the message, for a total availability of 
	247 bits.  Even with the 3-bit subCode, the 810-bit Signed Key 
	Disclosure message would fit into 4 frames.
</t>
<t>
	The PO Message Type of &lt;SKD2-TBD&gt; is used.
</t>
<t>
	With the 4<sup>th</sup> frame only having 75 bits of the message, 
	there are design approaches that can limit the blocking of normal 
	PPM messaging.  For example only the first 2 segments are sent 
	“Extended”.  Then 2 segments of “regular” Signed Key Disclosure 
	message segments.  Those 2 PPM messages are authenticated by a 
	following Resiliency 2 message.  This calculation changes with a 
	TESLA key of 192 bits.
</t>
<t>
	More research is needed to the most effective way to send the 
	Signed Key Disclosure.  The burst-mode (7 msg/sec potential) may be 
	of value here to push out the 2 Extended PO messages, followed by 
	the PO+PPM frames.
</t>
</section>
<section anchor="CST-msg" numbered="true" toc="default"> <name>The ADS-B Compact Signed Token</name>
<t>
	Each member State’s PKI may have different certificate content, 
	making it challenging to work with.  ADS-B certificates are more 
	fully covered in <xref target="Certs-PKI"/>.
</t>
<t>
	The inclusion of the DET addresses a common, hierarchical, 
	identifier, but ALL these certificates will be too large to 
	transmit in-band.  For TESLA Signed Key Disclosure, only a few 
	X.509 OIDs (Object Identifiers) from the certificates are actually 
	needed.  These are:
</t>
<ul empty="true">
 <li><t></t>
    <ul>
	  <li>Certificate Validity Dates</li>
      <li>ADS-B 24AA</li>
      <li>ADS-B DET</li>
      <li>Certificate Issuer DET</li>
      <li>Certificate Public Key (note Algorithm is in SuiteID in DET)</li>
      <li>Signature of these fields only by Issuer</li>
    </ul>
 </li>
</ul>
<t>
	These OIDs can be encoded as:
</t>
<ul empty="true">
 <li><t></t>
    <ul>
	  <li>Certificate Validity Dates (32 bits)</li>
      <li>ADS-B 24AA (24 bits)</li>
      <li>ADS-B compressed DET (94 bits)</li>
      <li>Certificate Issuer compressed DET (94 bits)</li>
      <li>Certificate Public Key (note Algorithm is in SuiteID in DET) (256 bits)</li>
      <li>Signature of these fields only by Issuer (512 bits)</li>
    </ul>
 </li>
</ul>
<t>
	Such an encoded object is 1012 bits; this is NOT X.509; it is more 
	appropriately called a Signed Token.  Thus “Token” will be used in 
	all discussions of this object, to prevent confusion in that this 
	is NOT a form of an X.509 certificate.  Rather, it is an extraction 
	of those X.509 OIDs that are needed for validating the TESLA Signed 
	Key Disclosure.
</t>
<t>
	Following the payload formatting for the TESLA Signed Key 
	Disclosure (sec 2.3) this would take 6 PO payloads, with 
	MT=&lt;CC-TBD&gt;.  Adding a FEC is recommended for a total of 7 
	payloads. Thus, the subType SHOULD be 4-bits. Even with the drop to 
	192 bits payload, this still fits into 7 PO messages.
</t>
<t>
	This expands considerably with any of the PQC algorithms.
</t>
<t>
	Note that with the DET, a receiver with Internet access can 
	retrieve the full certificate as per <xref target="RFC9886"/>.
</t>
</section>
<section anchor="Extended-CST-msg" numbered="true" toc="default"> <name>The ADS-B Extended Compact Signed Token</name>
<t>
	As with the Signed Key Disclosure message, this Compact Signed 
	Token is challenging.  The 7 PPM messages would have to be 
	authenticated in a string following (or interlaced) Resiliency 2 
	messages.
</t>
<t>
	Here too, an Extended PO approach would be beneficial.  Only 5 
	Extended messages (MT=&lt;CC2&gt;) would be needed.  Also a mix of 
	Extended and “regular” messages may be a valid approach.
</t>
<t>
	Further study is needed for the most effective transmission method.
</t>
</section>
</section>
</section>
<section anchor="Certs-PKI" numbered="true" toc="default"> <name>ADS-B Certificates</name>
<t>
	Author's note:  PKI discussions will be in a separate ConOps document.
</t>
<t>
	The ADS-B Certificates follow the ICAO <xref target="DOC-10169"/> 
	(sec 10.2.7, Aircraft Equipment Signature Certificate) ACCP with 
	important additions.  Each ADS-B transmitter’s certificate MUST 
	contain these specific X.509 OIDs:
</t>
<ul empty="true">
 <li><t></t>
    <ul>
	  <li>Aircraft DET in subjectAlternateName (SAN) as IPv6</li>
      <li>Aircraft 24AA in SAN as IPv4 (with first octet of ZERO)</li>
      <li><t>Issuer’s DET (CAA) in issuerAlternateName (IAN) as IPv6</t>
      <ul>
	    <li>Note that IAN is NOT included in the current version of 10169</li>
      </ul></li>
    </ul>
 </li>
</ul>
<!--<t>
	Each member State may run their PKI as they need with whatever 
	other elements from sec 10.2.7 as appropriate provided the above 
	OIDs are included.  The transmitter’s certificate MUST have all 
	these OIDs.
</t>
<t>
	Each State runs their root according to <xref target="DOC-10169"/>.  
	They MUST have a long-lived intermediate level.  They MUST have an 
	issuing level that may be long-lived, or short-lived.  They MUST 
	support certificate roll-over at all levels, though not necessarily 
	for transmitters (see below).  The root, intermediate, and issuing 
	certificates MUST have the DETs in their SAN; the 24AA allocated 
	range under this level’s control may be stored in SAN or IAN as 
	IPv4Network.
</t>
<t>
	It is the presence of these DETs <xref target="RFC9886"/>, and 
	their storage in DNS (with DNSSEC at appropriate levels), that 
	creates the ADS-B Federated PKI.
</t>
<t>
	Aircraft certificates should be issued per Doc 10169 
	recommendations.  Validity dates SHOULD NOT exceed 3 years and 
	should be shorter.  CRL support in aircraft may be challenging and 
	short-lived certificates may lessen the need of CRLs.  EdDSA25519 
	is the best algorithm for ADS-B use, as explained below.  Although 
	ECDSA also has 64-byte signatures, support for the compressed 
	33-byte public keys is spotty (legacy of the Certicom patent <xref 
	target="Certicom_ECC"/>). This not only impacts cost of in-band 
	certificate transmissions, but also storage costs for the 65-byte 
	standard public key format.
</t>
<t>
	Aircraft certificates should be issued per Doc 10169 
	recommendations.  Validity dates SHOULD NOT exceed 3 years and 
	should be shorter.  CRL support in aircraft may be challenging and 
	short-lived certificates may lessen the need of CRLs.  EdDSA25519 
	is the best algorithm for ADS-B use, as explained below.  Although 
	ECDSA also has 64-byte signatures, support for the compressed 
	33-byte public keys is spotty (legacy of the Certicom patent).  
	This not only impacts cost of in-band certificate transmissions, 
	but also storage costs for the 65-byte standard public key format.
</t>
<t>
	Per-flight certificates MAY be issued per flight authorization with 
	the validity dates reflecting the planned start and ending of the 
	flight.  This may even be the preferred mode with permanent 24AA. 
	These certificates are stored in the DET DNS zone.  The Issuer 
	operator is responsible for storing the appropriate information (at 
	least that in <xref target="RFC9886"/>) in DNS and removing expired 
	certificates. Revocation is simply handled by removing the DET 
	structure from DNS.  This short lifetime obviates the need of 
	certificate roll-over support for transmitter certificates.
</t> -->
<section anchor="Algorithms" numbered="true" toc="default"> <name>Algorithms</name>
<t>
	EdDSA25519 is the default algorithm based on its public key and 
	signature sizes.  Thus, at this time, transponder certificates MUST 
	use EdDSA25519 and the issuing CA SHOULD use EdDSA25519.  If the 
	issuing CA does not (DOC 10169 calls for Ed448 for CAs), it will 
	have no impact on the TESLA Signed Key Disclosure message but it 
	will not be practical to send the transmitter Tokens in-band.
</t>
<t>
	Although ECDSA also has 64-byte signatures, support for the 
	compressed 33-byte public keys is spotty (legacy of the Certicom 
	patent <xref target="Certicom_ECC"/>). This not only impacts cost 
	of in-band certificate transmissions, but also storage costs for 
	the 65-byte standard public key format.
</t>
<t>
	With the real concern over Quantum Computer attacks on ECC, the 
	root and intermediate CAs should use some PQC algorithm.  To 
	maintain FIPS 140-3 compliance, DL-DSA or FN-DSA are preferred.  
	DL-DSA HSMs are “in the pipeline” with FN-DSA lagging behind.  
	However, FN-DSA is more attractive with its smaller sizes, based on 
	the number of root and intermediate certificates a receiver may 
	need to cache.  One issue is that the math for FN-DSA signing is 
	very complex and easy to get wrong.  Any CA signing with FN-DSA 
	MUST be developed and maintained by those that are able to deal 
	with its implementation complexities.  FN-DSA does not have this 
	challenge in verification.
</t>
<t>
	For transponder certificates with PQC, the expectation is that one 
	of the “NIST Additional Algorithms” will be available in time 
	before “Q Day” and the ensuing rush.  Even these have size 
	challenges that may make in-band transmissions problematic for the 
	Signed TESLA Key Disclosure, and impossible for even the Compact 
	Signed Token.  For example, SNOVA (37,17,2) has a 106-byte 
	signature with reasonable" public key size of 9842 bytes.  Thus, 
	PQC at these levels of the PKI is an open issue.
</t>
<t>
	Note that at this time, there is no DET SuiteID PQC Algorithm 
	assignments.
</t>
</section>
<section anchor="ADSB-DETs" numbered="true" toc="default"> <name>DETs for ADS-B</name>
<t>
	The DET format is defined in <xref target="RFC9374"/>; it is a 
	valid, though non-routable, IPv6 address.  Amongst a number of 
	advantages this provides, there is a well deployed distributed 
	database via the DNS ip.arpa zone.  Note the following discussion 
	may change for any PQC TESLA Signed Key Disclosure.
</t>
<t>
	Following <xref target="RFC9886" section="6.2.1"/>, RAAs 4048 – 
	5071 are allocated for ADS-B use.  Each member State gets 4 RAAs 
	assigned by an ICAO State numbering scheme (TBD).  Each of these 
	RAAs may have 163884 HDAs allocated per the State’s delegation 
	process (For RAA, Registered Assigning Authority, and HDA, HHIT 
	Domain Authority, in DETs see <xref target="RFC9374"/>).  In 
	practice, both the Intermediate CA and the Issuing CA have their 
	own HDA value, so there are potentially fewer HDA-level entities, 
	based on the State’s policies.  For example, as the Intermediate 
	level is long-lived, 64 entities, allocated 4 each HDAs to roll 
	through over the years would each have 12 HDAs for rolling Issuing 
	CAs.  The details of this need further study.
</t>
<t>
	Each RAA and HDA MUST maintain their respective DNS zone in 
	3.0.0.1.0.0.2.ip6.arpa., per <xref target="RFC9886"/>.  This zone 
	provides the global certificate retrieval database.  It also may 
	replace the CRL function.  For all this DNSSEC is mandatory.  This 
	does present signing challenges at the HDA level.  Further study is 
	needed here. Is hourly signing, similar to timing for CRLs 
	sufficient?
</t>
</section>
<!-- <section anchor="DETs-per-flight" numbered="true" toc="default"> <name>DETs per flight registration</name>
<t>
	It is envisioned that as part of registering a flight plan and 
	obtaining flight authorization, a Certificate Signing Request (CSR) 
	from the aircraft is included.  The party responsible for filing a 
	flight plan communicates the CSR plus other needed information 
	(e.g. validity dates) to their RA (i.e. the ANSP) to get the 
	per-flight certificate which is then loaded (along with any needed 
	PKI chains) into the ADS-B transmitter.
</t>
<t>
	An important edge case is when a flight starts without a flight 
	plan submission (there are legal situations where this does occur).  
	The aircraft certificate in the ADS-B transmitter is expired.  How 
	does the transmitter get a current certificate?  One possibility is 
	to break from standard practice and have the ADS-B transmitter 
	create a new compress certificate, signed by its expired 
	certificate and then BOTH certificates are sent in-band.  Further 
	study is needed on the preferred method to handle this operational 
	case.
</t>
<t>
	In all of these cases, per flight registration or renewal of 
	expired aircraft certificate, the process would be greatly 
	simplified if a means of authenticated digital communication is 
	provided between the aircraft avionics and the ANSP or CAA.  This 
	could be achieved through existing datalink communications (though 
	not currently authenticated), the planned future ATN infrastructure 
	or COTS Internet connectivity technologies available on aircraft 
	such as 5G or satellite communications.
</t>
</section> -->
</section>
</section>
<section anchor="Impl-Deply" numbered="true" toc="default"> <name>Implementation and Deployment Notes</name>
<t>
	This protocol has two significant additions to the current ADS-B 
	technology.  It requires the new Phase Overlay.  It adds 
	cryptographic functions.  Both of these require at least software 
	updates on both transmitters and receivers.  In some cases, new 
	hardware will be needed.
</t>
<t>
	Thus, a phased-in approach is the only practical roll-out plan.
</t>
<section anchor="Imp-T-R-PO" numbered="true" toc="default"> <name>Impact on Transponders and Receivers – the Phase Overlay</name>
<t>
	The team behind the CABBA proposal performed laboratory tests in 
	collaboration with Collins Aerospace to test backward compatibility 
	of this Phase Overlay approach.  These tests involved sending the 
	PO packets in D8PSK and making sure that that they did not 
	interfere with legacy equipment reading and interpreting the 112 
	bits in the baseline signal.  These tests were successfully tested 
	against two different COTS ADS-B receivers (one certified, the 
	other not).
</t>
<t>
	The question is how much would be involved for certified avionics 
	manufacturers of ADS-B equipment (this would typically include 
	transmitters, TCAS boxes, digital communication units, depending on 
	the type/size of aircraft) to support the Phase Overlay in the 
	MOPS.
</t>
<t>
	Our research is that most modern avionics use some kind of digital 
	architecture (similar to software defined radios) where this could 
	be achieved with a firmware upgrade, without adding new components.  
	Many of them could be using FPGA to do the heavy lifting in terms 
	of coding/decoding, and those could theoretically be reconfigured 
	by a firmware update.  That matters as it would influence the cost 
	and speed of deployment of such a solution.  As for old legacy 
	equipment (e.g. General Aviation ADS-B transceivers and 
	transmitters), we are most likely out of luck as encoding/decoding 
	is probably hard coded in the hardware.  Hence, the importance of 
	having a backward compatible solution for the transition period.
</t>
</section>
<section anchor="Imp-T-R-Crypto" numbered="true" toc="default"> <name>Impact on Transponders and Receivers – Cryptography</name>
<t>
	The transmitters are expected to generate their EdDSA25519 
	keypairs, and communicate the public key in an X.509 CSR during the 
	flight plan submission process.  The X.509 certificate is returned 
	for storage in the transmitter.  For key store, the transmitter 
	should have an HSM; few do.  To avoid requiring an immediate 
	hardware replacement for implementation, the keys could be stored 
	in secure memory (or such) and operate under ICAO doc 10169 Level 
	Of Assurance (LOA) of 2 (Low Device).  It may be possible to comply 
	with LOA=5.  The CAA may want to separate, for policy reasons those 
	transmitters operating at LOA=2 and/or 5 from those with HSM and 
	LOA of at least 9.  This separation can be handled by using 
	different HDAs.
</t>
<t>
	In addition to generating and using the EdDSA25519 keys, the 
	transmitters will need to maintain the TESLA hash chain and use it 
	in KMAC operations on the messages.  This is additional storage and 
	code.  Some currently deployed units may be able to handle this in 
	a software update.
</t>
<t>
	Future PQC requirements will most likely not be met with anything 
	but the most recent hardware.  This is a separate research issue.
</t>
</section>
<section anchor="Imp-R-Crypto" numbered="true" toc="default"> <name>Impact on Receivers – Cryptography</name>
<t>
	Receivers will not be generating EdDSA25519 keying material nor 
	signing messages.  They do need to store many certificates and 
	perform the EdDSA25519 and KMAC validations.  For an Internet 
	connected receiver, the storage requirement may be moderate.  All 
	certificates SHOULD be available via the DETs in a DNS lookup 
	(reverse IPv6 retrieval).  In a disconnected environment, the 
	storage may be considerable.  The FAA Aircraft test EdDSA25519 
	certificates with 600-800 bytes.  There are potentially 1024 RAAs 
	needing key rollover support.  There are at least that many 
	Intermediate HDAs and Issuing HDAs.  Thus, planning should be 
	upwards of 1024*3*1.5 = 55,296 certificates in a fully (every 
	member State nonparticipating) situation.
</t>
<t>
	Further if a PQC algorithm is used at the RAA and Intermediate HDA 
	levels to position for the anticipated PQ crypto world, those 
	certificates will be considerably larger (may be a magnitude 
	larger).  This further confounds the memory needs.
</t>
</section>
<section anchor="Pru-Deploy-Pln" numbered="true" toc="default"> <name>A prudent deployment plan</name>
<t>
	Any change to ADS-B will be disruptive.  Airspace safety is best 
	served by minimizing the disruption and spreading the changes out 
	over time.  With this change, however, the current Pulse Position 
	Modulation and the new Phase Overlay can exist in the same time.  A 
	transmitter sends them simultaneously over the same pulses.  A 
	receiver decodes them from the same pulses.  The two types of 
	transmissions completely co-exist.
</t>
<t>
	This protocol specifies a 5 second TESLA Key disclosure.  In those 
	5 seconds, 31 baseline messages may be sent (5 * 6.2).  Higher 
	transmission rates are now allowed beyond the original 6.2 
	messages/sec, including 6.4 messages/sec, and a burst-mode of 7 
	messages/sec.  These higher transmission rates are not covered 
	here.
</t>
<t>
	The TESLA authentication will send 1 unsigned key disclosure in 
	that time interval (really the key for the prior interval, but 
	still a disclosure).  Those 31 baseline messages can be encoded in 
	16 Resiliency 2 messages.  A transmitter can send the 31 baseline 
	messages in 5 seconds and at the same time send the 17 PO messages, 
	spread out over the 5 seconds with 14 “slots” empty.
</t>
<t>
	On day one, a transmitter that is PO-capable can immediately send 
	both message types.  Also ground receivers can start listening for, 
	and use, PO messages and use their authentication to confirm proper 
	receipt of the baseline messages (is there spoofing occurring?).
</t>
<t>
	At some point, a region will be fully deployed to monitor use of PO 
	messaging.  The region can monitor baseline messaging without PO 
	and determine their course of action.  The Transmitter may stop 
	sending baseline messaging to reduce the channel congestion.  This 
	may impact air-to-air where the other aircraft cannot receive PO 
	messages.
</t>
<t>
	There are immediate uses for some of those 14 empty slots.  A FEC 
	may be sent for the TESLA Key disclosure.  The TESLA Signed Key 
	disclosure can fit into one of the 5 second intervals in a 5-minute 
	period as well as the compact token.
</t>
<t>
	Finally, at some point new PO messages will come out to replace use 
	of the Resiliency 2, further reducing PO channel usage.
</t>
<t>
	Deploying ADS-B authentication comes at no channel utilization.  As 
	regions deploy reception of these messages and aircraft turn off 
	their baseline messaging, overall channel utilization will 
	decrease.
</t>
</section>
</section>
<section anchor="IANA" numbered="true" toc="default"> <name>IANA Considerations</name>
<t>
	There are no items for IANA in this protocol.
</t>
</section>
<section anchor="security-considerations" numbered="true" toc="default"> <name>Security Considerations</name>
<section anchor="MAC_Size" numbered="true" toc="default"> <name>TESLA MAC size</name>
<t>
	TESLA <xref target="RFC4082"/> has no advise on the size of the 
	Keyed MAC.  For the ADS-B Authentication protocol, a MAC size of 28 
	bits was selected as adequate and fits within the payload 
	constraints of ADS-B.
</t>
<t>
	The key disclosure interval recommendation in this protocol is 5 
	seconds.  With the ADS-B message transmission rate of 6.2 
	messages/second (recent revisions allow 6.4 msg/sec with "burst 
	rate" of 7 msg/sec), the small number of messages protected by a 
	single key (31 - 35 messages) is deemed to be too little to afford 
	attackers with enough information to attack the MAC.
</t>
</section>
<section anchor="Time_Attack" numbered="true" toc="default"> <name>TESLA Key Disclosure timed attack</name>
<t>
	A known attack with TESLA is to use a disclosed key to MAC messages 
	and trick receivers into processing them as if they were sent prior 
	to the disclosure.
</t>
<t>
	With a disclosure delay of 0.5 seconds proposed here, even the 
	rebroadcast nature of ADS-B (via mechanisms like ADS-R) does not 
	make it possible for a reasonably time synchronized receiver to 
	erroneously accept a forged message.
</t>
<t>
	Any messages received after the key disclosure is expected (based 
	on time since last disclosure) are either MAC with the next key in 
	the hash-chain or are fraudulent.  This does present a 
	synchronization challenge for the first few time intervals observed 
	by receivers.
</t>
</section>
<section anchor="TESLA_PQC" numbered="true" toc="default"> <name>PQC concerns for ADS-B Authentication</name>
<t>
	None of the currently NIST-approved Post Quantum Cryptography (PQC) 
	algorithms are possible to send over the ADS-B channel.  The are 
	just too big.
</t>
<t>
	This only impacts the Signed Key Disclosure and Compact Token 
	messages.  For ground-based receivers with Internet connectivity, 
	this information could be gained using the DETs to retrieve this 
	information <xref target="RFC9886"/>.
</t>
<t>
	For A2A application, there is no clear way around the size of PQC 
	algorithms and their impact on ADS-B Authentication.  Further study 
	is needed.
</t>
<section anchor="TESLA_PQC_size" numbered="true" toc="default"> <name>PQC size impact on ADS-B</name>
<t>
	The SNOVA algorithm (under consideration by NIST for additional PQC 
	algorithms) is an example of PQC algorithm that MAY fit within 
	ADS-B.
</t>
<t>
	If EdDSA25519 is still used for the ADS-B certificate (as 
	short-lived per-flight keys) and SNOVA is used for the Issuer 
	certificate, only the Compact Token is impacted.
</t>
<t>
	Using SNOVA (37,17,16,2 {sig = 106bytes, PK=9,842bytes}), the 
	signature in the Compact Token grows by 42 bytes (106-64).
</t>
<t>
	If SNOVA (25,8,16,3 {sig = 165bytes, PK=2,230bytes}) is used for EE 
	as well, the impact is considerable.
</t>
<t>
	The Signed Key Disclosure grows by 101 bytes (165-64) and the 
	Compact Token grows by 2300 bytes (2230-32+165-64).
</t>
<t>
	These numbers show the physical limitations of the ADS-B messaging 
	and even the smallest considered PQC algorithm.
</t>
<t>
	
</t>
</section>
</section>
</section>
</middle>
<back>
<displayreference target="DOI_10.6028_NIST.SP.800-185" to="NIST.SP.800-185"/>
<displayreference target="DOI_10.6028_NIST.SP.800-232" to="NIST.SP.800-232"/>
<displayreference target="DOI_10.1016_j.ijcip.2024.100728" to="CABBA"/>
<references> <name>References</name>
<references title="Normative References">
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4082.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
<!--	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8949.xml"/> -->
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9374.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9575.xml"/>
</references>
<references title="Informative References">
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9886.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml7/reference.DOI.10.6028/NIST.SP.800-185.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml7/reference.DOI.10.6028/NIST.SP.800-232.xml"/>
	<reference anchor="DO-260C" target="https://my.rtca.org/productdetails?id=a1B1R00000LoY6mUAF">
		<front>
			<title>DO-260C - Minimum Operational Performance Standards for 1090 MHz Extended Squitter Automatic Dependent Surveillance – Broadcast (ADS-B) and Traffic Information Services – Broadcast (TIS-B)</title>
			<author><organization>Radio Technical Commission for Aeronautics</organization></author>
			<date month="12" year="2020" />
		</front>
	</reference>
	<reference anchor="DOC-10169" target="https://store.icao.int/en/aviation-common-certificate-policy-doc-10169">
		<front>
			<title>Aviation Common Certificate Policy (Doc 10169)</title>
			<author><organization>International Civil Aviation Organization</organization></author>
			<date month="03" year="2026" />
		</front>
	</reference>
	<reference anchor="ICAODEFS" target="https://www.icao.int/safety/cargosafety/Documents/Draft%20Glossary%20of%20terms.docx">
		<front>
			<title>Defined terms from the Annexes to the Chicago Convention and ICAO guidance material</title>
			<author><organization>International Civil Aviation Organization</organization></author>
			<date month="07" year="2017" />
		</front>
	</reference>
	<reference anchor="Low_Power" target="https://www.mitre.org/sites/default/files/2021-08/16-4497-AIAA-2017-ADS-B.pdf">
		<front>
			<title>ADS-B Performance with Small UAS at Low Altitudes</title>
			<author><organization>Mitre</organization></author>
			<date year="2017" />
		</front>
	</reference>
	<reference anchor="RF_Usage" target="www.eurocontrol.int/archive_download/all/node/15368">
		<front>
			<title>EUROCONTROL Guidelines on Mode S Interrogation Configuration to Reduce 1030/1090 MHz RF Usage</title>
			<author><organization>EUROCONTROL</organization></author>
			<date month="07" year="2025" />
		</front>
	</reference>
	<reference anchor="Certicom_ECC" target="https://patentimages.storage.googleapis.com/58/da/2a/2f64703655241f/US6141420.pdf">
		<front>
			<title>US Patent US6141420A, Elliptic Curve Encryption Systems</title>
			<author><organization>Certicom</organization></author>
			<date month="10" year="2000" />
		</front>
	</reference>
	<reference anchor="DOI_10.1016_j.ijcip.2024.100728"  target="https://www.sciencedirect.com/science/article/pii/S1874548224000696">
		<front>
			<title>CABBA: Compatible Authenticated Bandwidth-efficient Broadcast protocol for ADS-B</title>
			<author
				initials="M.N." surname="Ngamboé" fullname="Mikaëla Ngamboé">
			<organization>Polytechnique Montréal Technological University</organization></author>
			<author
				initials="X.N." surname="Niu" fullname="Xiao Niu">
			<organization>Polytechnique Montréal Technological University</organization></author>
			<author
				initials="J.F." surname="Fernandez" fullname="José M. Fernandez">
			<organization>Polytechnique Montréal Technological University</organization></author>
			<author
				initials="G.N." surname="Nicolescu" fullname="Gabriela Nicolescu">
			<organization>Polytechnique Montréal Technological University</organization></author>
			<author
				initials="P.B." surname="Berthier" fullname="Paul Berthier">
			<organization>Rhea Group</organization></author>
			<author
				initials="R.B." surname="Benito" fullname="Rémi Benito">
			<organization>Bombardier</organization></author>
			<author
				initials="B.J." surname="Joly" fullname="Benoit Joly">
			<organization>Collins Aerospace</organization></author>
			<author
				initials="S.P.B." surname="Biegler" fullname="Steven P. Biegler">
			<organization>Collins Aerospace</organization></author>
			<author
				initials="G.R." surname="Rice" fullname="Greg Rice">
			<organization>Collins Aerospace</organization></author>
			<date month="03" year="2025" />
		</front>
	</reference>
</references>
</references>
<section anchor="PO_MT" numbered="true" toc="default"> <name>Phase Overlay Message Types</name>
<t>
	Below is a list of PO Message Types:
</t>
	<dl newline="false" spacing="normal" indent="12">
		<dt>JTM</dt>
		<dd>
			Just TESLA MAC Message
		</dd>
		<dt>PR1</dt>
		<dd>
			PPM Resiliency 1 Message
		</dd>
		<dt>PR2</dt>
		<dd>
			PPM Resiliency 2 Message
		</dd>
        <dt>DET</dt>
        <dd>
			ADS-B DET Message
		</dd>
        <dt>UKD</dt>
        <dd>
			TESLA Unsigned Key Disclosure Message
		</dd>
        <dt>SKD</dt>
        <dd>
			TESLA Signed Key Disclosure Message
		</dd>
        <dt>SKD2</dt>
        <dd>
			TESLA Extended Signed Key Disclosure Message
		</dd>
        <dt>CC</dt>
        <dd>
			Compact Signed Token Message
		</dd>
        <dt>CC2</dt>
        <dd>
			Extended Compact Signed Token Message
		</dd>
 	</dl>
<t>
	The actual MT value needs to be assigned by the SDO maintaining 
	this field.
</t>
</section>
<section anchor="PPM_TC" numbered="true" toc="default"> <name>New PPM Type Code</name>
<t>
	One new PPM Type Code is defined in this protocol:
</t>
	<dl newline="false" spacing="normal" indent="16">
		<dt>PO-Extended</dt>
		<dd>
			The PPM data is an extension of the PO message
		</dd>
 	</dl>
</section>
<section anchor="FEC_Req" numbered="true" toc="default"> <name>FEC (Forward Error Correction) recommendations</name>
<t>
	In all cases, use of FEC here is recommended, not mandatory.  Use 
	of a FEC is based on the calculated risk of message loss as covered 
	in each section above.
</t>
<t>
	Consider the following:
</t>
<ul empty="true">
	<li>
		<ol>
			<li>
				The message frame size (196 bits) and k (number of 
				frames) into which the authentication structures are 
				segmented are critical parameters. EVENODD and its 
				derivative Row Diagonal Parity (RDP) are optimized for 
				RAID6 where there are, instead of transmission frames, 
				disks, typically k=4 for the original data. There we 
				are concerned with the smallest number of disk failures 
				(in an array) greater than 1, i.e. 2, because failure 
				of 1 disk is infrequent so failure of 2 is rare and 
				failure of more than 2 is very rare. Thus we have only 
				a 50% overhead for RAID6 vs the 100% overhead for RAID1 
				(mirroring).
			</li>
			<li>
				Both of these codes are defined only for w = number of 
				"packets" (not what we mean by that word, instead a 
				parameter that determines codeword substructure) that 
				are 1 less than a prime number. So for the first few 
				primes {2, 3, 5, 7, 11, 13} we get {1, 2, 4, 6, 10, 
				12}, of which 1 is useless.
			</li>
			<li>
				Both of these codes are CPU efficient only if w is very close to k.
			</li>
			<li>
				RDP requires w&gt;=k. EVENODD requires w&gt;k.
			</li>
			<li>
				In Signed Key Disclosure k=5 and don't yet know for 
				sure the others in a potential range from 4 to 7.
			</li>
			<li>
				So worst case w=10 (for compact token k=7 using 
				EVENODD) yielding (w-k)=6, a very inefficient code for 
				the CPU operations.
			</li>
			<li>
				If compact token can be reduced to k=6 and we use RDP 
				rather than EVENODD, we could set w=6, yielding (w-k)=2 
				which is not great but not terrible for CPU efficiency.
			</li>
			<li>
				Total number of "disks" (for us, transmission frames) 
				in an array is n = (k+m) where for both of these 
				erasure codes m=2 to correct for 2 lost "disks" 
				(transmission frames). This yields a 50% overhead which 
				is not great but not terrible for bandwidth efficiency.
			</li>
			<li>
				It is not clear yet how to handle varying k, due to 
				different sizes of different authentication structures, 
				in a single consistent scheme.  Zero filling parts of 
				the codeword in encoding &amp; decoding but not actually 
				transmitting frames containing only zero fills 
				presumably should work, probably at the cost of 
				additional CPU overhead.
			</li>
			<li>
				All this is to enable recovery from the loss of a 
				2nd frame out of fewer than 10 frames total (worst case 
				for compact token including the added parity frames). 
				That's a >20% frame loss rate when it happens (lower 
				than that on average). If losing 2 frames out of so few 
				is not rare, then losing 3 won't be very rare, and we 
				still have a problem. There is already a 50% FEC 
				overhead in the Phase Overlay frame to minimize such 
				losses. Should we back down to simple parity (e.g. XOR 
				FEC, see <xref target="RFC9575" section="5"/>), able to 
				recover only a single loss, but costing half as much 
				bandwidth overhead and less than half as much CPU 
				overhead? What are the expected frame loss statistics?
			</li>
		</ol>
 	</li>
</ul>
</section>
<section numbered="false" toc="default"> <name>Acknowledgments</name>
<t>
	TBD
</t>
</section>
</back>
</rfc>
