Internet-Draft GNSS FC Chimera Marker Key Package August 2026
Cole & Shah Expires 28 February 2027 [Page]
Workgroup:
Internet Engineering Task Force
Internet-Draft:
draft-cole-cose-encoded-gnss-chimera-marker-keys-00
Published:
Intended Status:
Experimental
Expires:
Authors:
M. H. Cole
The Aerospace Corporation
S. Shah
The Aerospace Corporation

Global Navigation Satellite System (GNSS) Fast Channel Chimera Marker Key Package using Concise Binary Object Representation (CBOR) Object Signing and Encryption (COSE)

Abstract

Chips Message Robust Authentication (Chimera) is a technique by which a Global Navigation Satellite System (GNSS) constellation, such as the Global Positioning System (GPS), may provide user equipment (i.e., receivers) with authentication of pseudorange measurements on one or more publicly available (i.e., open) Positioning, Navigation, and Timing (PNT) signals.

This specification describes a Fast Channel Chimera Marker Key Package, an efficient data structure for encoding one or more Fast Channel Chimera marker keys and associated metadata with a digital signature over all security relevant parameters. Concise Binary Object Representation (CBOR) Object Signing and Encryption (COSE) is used as the underlying message structure.

This specification also describes a streaming network protocol by which Fast Channel Chimera Marker Key Packages may be distributed over the Internet.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 28 February 2027.

Table of Contents

1. Introduction

Chimera is a technique by which a Global Navigation Satellite System (GNSS) constellation, such as the Global Positioning System (GPS), may provide authentication of user receivers' pseudorange measurements on one or more publicly available (i.e., open) Position, Navigation, and Timing (PNT) signals. Publicly available GPS and similar PNT signals transmitted on the same frequency are differentiated among each other using repeating bit (chip) patterns that are encoded on top of the carrier waveform (chipping sequences); this pattern is referred to as a pseudo-random noise (PRN) sequence. The repeating PRN sequence serves as the ranging code used by a GPS receiver to estimate the time interval between when the signal was broadcast by the satellite and when it was received (and thereby also the estimated distance); on some signals navigation message data is laid on top of this PRN sequence at a very slow encoding speed.

Chimera uses a bit commitment scheme in which a symmetric cipher key is used for a short cryptoperiod to generate markers (i.e. punctures) within the GNSS signal's ranging code, followed by the authenticated public disclosure of the key that was used. Users of Chimera record the observed chipping sequences in a buffer, receive the authenticated Chimera key shortly after the applicable cryptoperiod, calculate the expected Chimera marker locations and values for that timespan, and then compare these expected values against the buffered observed chipping sequences.

There are two categories of Chimera service: a slow channel (SC) and a fast channel (FC). A Chimera-capable constellation may provide either service or both services concurrently. In SC Chimera, the marker key is derived from information (such as a key generation key) distributed within the bandwidth-constrained navigation message that is broadcast by the constellation, at a relatively low frequency (on the order of minutes). In FC Chimera, the marker key is distributed out-of-band to network-enabled GNSS receivers more frequently, on the order of seconds, providing more frequent pseudorange authentication event opportunities. This specification focuses on the distribution of FC Chimera keys.

This specification describes a Fast Channel Chimera Marker Key Package, an efficient data structure for encoding one or more FC Chimera marker keys and associated metadata with a digital signature over all security relevant parameters. Concise Binary Object Representation (CBOR) Object Signing and Encryption (COSE) [RFC8949][RFC9052] is used as the underlying message structure.

Chimera is one of the experiments on the Air Force Research Lab Navigation Technology Satellite - 3 (NTS-3) [nts-3]. An adaptation of Chimera is proposed for inclusion in a future GPS civil signal authentication service [ion-itm-2025].

In practice, service providers might only enclose one Fast Channel Chimera key, applicable to the most recent complete cryptoperiod across a whole constellation. However, the FC Chimera Marker Key Package format specified in the initial draft of this document is flexible enough to accommodate inclusion of multiple FC Chimera keys and multiple constellations within a single FC Chimera Marker Key Package (i.e., all protected by the same digital signature). This accommodates, for example:

Section 2 specifies CBOR data items used within the FC Chimera Marker Key Package that are potentially useful for other GNSS applications that use GPS Time.

Section 3 specifies the FC Chimera Marker Key Package. The packages are intended to be self-contained so that they may be distributed over any transport protocol.

Section 4 documents a streaming multicast IP network protocol by which FC Chimera Marker Key Packages MAY be distributed over the Internet to an arbitrarily large community of consumers.

Section 6 includes considerations for IANA assignment of values.

Section 7 is reserved for additional security considerations associated with the FC Chimera Marker Key Package and its use with a Chimera-enabled GNSS signal.

Appendix A contains example FC Chimera Marker Key Packages.

1.1. Requirements Language

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 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

2. Common GNSS CBOR Data Items

This section specifies data structures used within the Fast Channel Chimera Marker Key Package that potentially have broader utility for GNSS applications. Assignment of CBOR Tag IDs are proposed in Section 6.

2.1. GPS Time

GPS Time is an epoch-based date/time representation expressed in a format used natively by the Global Positioning System as specified in IS-GPS-200 [is-gps-200]. GPS Time is encoded as an unsigned integer (Major Type 0), representing a whole number of GPS X1 epochs.

GPS Time is also used by PNT services that are based on GPS time, such as Satellite Based Augmentation Systems.

Fractions of an X1 epoch are not supported by this time representation. Applicaitons that require finer time granularity may adopt an alternate representation of time or supplement as needed to encode fractions of a X1 epoch (e.g., counting the number of chips into the X1 epoch).

The GPS Time value SHALL be formatted as defined in Section 3.3.4 of IS-GPS-200 [is-gps-200].

The 19 least significant bits are the GPS Time of Week (TOW), a value between 0 and 403,199 inclusive, in which each integer step represents an X1 epoch of 1.5 seconds. The most significant bits contain the full (non-truncated) GPS Week Number. The zero time-point is defined as midnight on the night of January 5, 1980/morning of January 6, 1980 Coordinated Universal Time (UTC).

The GPS Time value is 4 bytes long through GPS Week Number 8,191 (2^13 - 1) and is 8 bytes long starting at Week Number 8,192 (within the year 2137), plus one byte for CBOR raw data type and length encoding.

For example, (Week Number = 2377, TOW = 403,196 X1 Epochs) is encoded as the 4-byte unsigned integer value 1,246,635,772 (0100101001001_1100010011011111100). The CBOR-encoded byte sequence is 0x1A4A4E26FC, where the first byte indicates Major Type 0 and a value length of 4 bytes (000_11010).

Applications MAY choose to encode GPS Time with the GPS Week Number modulo 8,192 (2^13) to ensure GPS Time is represented using no more than a 32-bit integer; applications that choose to perform such Week Number truncation SHOULD document such behavior and account for GPS week number rollover.

2.2. GPS Time Span

A GPS Time Span represents a specific window of time expressed in GPS Time. A GPS Time Span is constrained to time spans that begin and end on X1 epoch boundaries. Fractions of an X1 epoch are not supported by this timespan representation.

A GPS Time Span is a two-element array (Major Type 4). The fields are defined as follows, in order:

  • start_time: A GPS Time data item (Section 2.1) representing the start of the time span.
  • duration: An unsigned integer (Major Type 0) encoding the length of time in the time span, expressed in X1 epochs. The duration SHALL be a positive value. An X1 Epoch is defined as 1.5 seconds (See Section 3.3.4 of IS-GPS-200 [is-gps-200]).

For example, the two-element array [1 246 635 772, 8] (which is CBOR-encoded as 0x821A4A4E26FC08) represents an eight X1-epoch (twelve-second) time span starting four X1 epochs (six seconds) before the rollover from GPS WN 2377 to GPS WN 2378, and ending four X1 epochs (six seconds) into GPS WN 2378. This GPS Time Span ends at the beginning of the GPS Time represented by integer value 1,246,756,868 (0100101001010_0000000000000000100).

3. Fast Channel Chimera Marker Key Package

The FC Chimera Marker Key Package SHALL be a COSE_Sign1 structure, as described in Section 4.2 of [RFC9052]. Metadata about the digital signature and payload are enclosed within the COSE header buckets, the payload is the FC Chimera Payload structure defined in Section 3.3, and the signature is calculated over the protected header parameters and payload.

The FC Chimera Marker Key Package is structured as a CBOR array consisting of the following four fields, in order:

The FC Chimera Marker Key Package MAY be identified with CBOR tag 18 to explicitly indicate it is a COSE_Sign1 structure.

3.1. COSE Protected Fields

As defined in Section 3 of [RFC9052], the protected bucket is a byte string (bstr) wrapped CBOR map of parameters that are to be protected by the digital signature.

The FC Chimera Marker Key Package SHALL include the following parameters within the protected bucket, using the labels and value encoding as defined in Section 3.1 of [RFC9052]:

  • alg: The algorithm value SHOULD be a digital signature algorithm defined in the COSE Header Parameters registry Section 6. When the public key is distributed using an X.509 certificate, the alg value SHOULD match the Subject Public Key Information within the end entity X.509 signing certificate that is used to generate the signature (See Section 4.1.2.7 of [RFC5280]).
  • content type: The content type value SHALL be the CoAP Content Type assigned to the Fast Channel Chimera Payload (See Section 6). The content type encoding SHOULD use the integer representation for efficiency.

3.2. COSE Unprotected Fields

As defined in Section 3 of [RFC9052], the unprotected bucket is a CBOR map (not bstr wrapped) of parameters that are not protected by the digital signature. These OPTIONAL fields are merely helpful hints to end users and are not security critical fields.

The FC Chimera Marker Key Package MAY include the following parameters within the unprotected bucket, using the labels and value encoding as defined in Section 3.1 of [RFC9052]:

  • kid: The value SHALL be a bstr representing any number of the least significant bytes of the Subject Key Identifier (SKI) of the X.509 certificate used to sign the FC Chimera Marker Key Package, up to and including the full SKI. (See Section 4.2.1.2 of [RFC5280].) The kid value SHALL NOT be a zero-length byte string. If the generator of the FC Chimera Marker Key Package chooses not to include the kid as an indicator of the certificate used, the kid field SHALL be omitted.

These OPTIONAL fields SHALL NOT be enclosed within the protected bucket. This allows for users to strip out these optional fields for redistribution bandwidth or storage efficiency while preserving the validity of the digital signature. This also allows for compatibility in the case where the same public key is issued within multiple valid certificates, as may be the case if a user organization issues cross-signed certificates or the issuing certificate authority is migrating to a new CA certificate.

3.3. Fast Channel Chimera Payload

The Fast Channel Chimera Payload, or more descriptively the Fast Channel Chimera Key Information Payload, is a CBOR array of four fields (major type 4, value of 4). The fields of the array, in order, are:

  • version: An unsigned integer (Major Type 0) representing the version of the FC Chimera Payload format in use. Currently only a value of 0 is defined. This number is only intended to be updated if and when a change is made to this specification that is not backwards compatible. For example, assigning meaning to an initially unassigned GNSS ID is generally a backwards compatible change--users that do not recognize a particular GNSS ID can still parse the message and then safely handle that portion of the package as unsupported. An example of a non-backwards compatible change would be a change in how GPS Time is CBOR-encoded.
  • timestamp: A GPS Time of when this FC Chimera Payload was generated, immediately before signature generation. (See Section 2.1.)
  • fc_configurations: a CBOR array (Major Type 4) of zero or more FC Chimera Configuration objects as defined in Section 3.3.2. An empty array SHALL be used when no configurations are enclosed. FC Chimera Configuration objects are referenced by the FC Chimera Key Entry objects enclosed within fc_key_entries.
  • fc_key_entries: a CBOR array (Major Type 4) of one or more FC Chimera Key Entry objects, as defined in Section 3.3.1.

A FC Chimera Payload MAY be tagged with the assigned CBOR Tag ID (See Section 6); however, its inclusion is redundant with the required content type within the protected header.

The Fast Channel Chimera Payload, with or without tagging, is wrapped in a bstr in accordance with the COSE specification.

GPS Time is used for the overall message timestamp in the initial publication of this specification to avoid potential confusion of using both POSIX and GPS Time in the same message, and also to avoid time zone ambiguity. The time format used for cryptoperiods depends on the identified GNSS ID within the Fast Channel Chimera Key Entry; however, for the initial publication, only the cryptoperiod format based on GPS Time is defined.

The FC Chimera Payload's timestamp is the GPS Time of the payload's generation immediately prior to signing, regardless of the cryptoperiods of the enclosed Key Entries. An operational implementation SHOULD only enclose FC Chimera keys for cryptoperiods ending no later than the payload's timestamp (nominally ending in the recent past). In the case of NTS-3 , the simulated time for the NTS-3 Chimera experiment MAY be well into the past, whereas the payload timestamp SHOULD reflect live GPS Time.

3.3.1. Fast Channel Chimera Key Entry

The FC Chimera Key Entry object contains a specific FC Chimera key and its associated metadata.

The FC Chimera Key Entry object is a CBOR array of six fields (major type of 4, value of 6). The fields, in order, are:

  • gnss_ids: An integer or array of integers identifying which GNSS system or systems this key applies to, as described in Section 3.3.1.1.
  • fc_service_status: An unsigned integer indicating the service's status, as described in Section 3.3.1.2.
  • fc_cryptoperiod: The cryptoperiod of enclosed key, as described in Section 3.3.1.3.
  • fc_marker_alg: An unsigned or negative integer indicating the cryptographic algorithm used with this key to derive the Chimera marker information, as described in Section 3.3.1.4.
  • fc_marker_key_value: A byte string (Major Type 4) containing the value of the Chimera maker key, as described in Section 3.3.1.5.
  • fc_configuration_indices: An array of unsigned integers indicating which set of signals this key applies to, as described further in Section 3.3.1.6.
3.3.1.1. GNSS IDs

One or more unique GNSS IDs associated with this Key Entry.

A single GNSS ID SHALL be encoded as an unsigned or negative integer.

Multiple GNSS IDs SHALL be encoded an array of integers.

See Table 1 for a list of GNSS ID values and their definitions. All other GNSS ID values are unassigned and may be defined in a future revision.

Although not a strict requirement, it is intended for positive GNSS ID value assignments in this specification to align with those defined in [is-gps-200] for the Integrity Support Message Packet to the extent possible.

Table 1: Fast Channel Chimera Cryptoperiod and Configuration Formats by GNSS ID
GNSS ID GNSS Name FC Chimera Cryptoperiod Format FC Chimera Configuration Format
-24 NTS-3 Section 2.2 GPS FC Chimera Configuration Section 3.3.2.1
0 Reserved for Test Unspecified Unspecified
4 GPS Section 2.2 GPS FC Chimera Configuration Section 3.3.2.1
3.3.1.2. Fast Channel Chimera Service Status

Fast Channel Chimera service statuses are defined in Table 2.

Table 2: Fast Channel Chimera Service Status Definitions
Value Name Description of Status
0 Unavailable The Fast Channel Service for this GNSS ID is not available for the identified cryptoperiod. Use of this status provides an explicit, authenticated message regarding service unavailability or unsuitability for operational use. Chimera Fast Channel key and configuration information MAY be enclosed; however, consumers SHALL NOT use the enclosed information to authenticate PNT signals.
1 Test The Fast Channel Service is in a test configuration for the identified GNSS ID. Consumers SHALL NOT use the enclosed information for operational PNT applications.
2 Operational The Fast Channel Service for this GNSS ID is operational. Consumers SHOULD use the enclosed information for operational PNT applications to authenticate PNT signals, consistent with the signal-specific configuration and status within fc_configurations (See Section 3.3.2).
3.3.1.3. Fast Channel Cryptoperiod

The cryptoperiod associated with this key.

The representation of cryptoperiod depends on the GNSS Constellation. The defined GNSS IDs for this specification and their respective Cryptoperiod Format are described in Table 1.

When gnss_ids is an array of multiple GNSS IDs, all enclosed GNSS IDs SHALL use the same fc_cryptoperiod format.

For the initial specification, only the GPS Fast Channel Chimera Cryptoperiod is defined. This format is used for GNSS constellations that are based on GPS time. Additional FC Chimera Cryptoperiod objects used by other GNSS constellations may be defined in a future revision of this specification.

The GPS Fast Channel Chimera Cryptoperiod is defined as a GPS Time Span (See Section 2.2). GPS FC Chimera Cryptoperiods always begin and end on GPS X1 epoch boundaries. For NTS-3, Fast Channel Chimera cryptoperiods have a duration of either 1 X1 epoch (1.5 seconds) or 4 X1 epochs (6 seconds), depending on the configuration.

3.3.1.4. Fast Channel Marker Algorithm

An integer identifying the cryptographic algorithm this FC Chimera marker key is to be used with. Table 3 identifies a list of supported Chimera marker algorithms and their encodings.

Table 3 contains initial assignments for defined Chimera marker cipher algorithms. Individual constellations SHOULD specify which algorithms are supported for their implementation of Fast Channel Chimera markers within their respective interface specifications (along with the plaintext to be used for a given cryptoperiod).

Table 3: Fast Channel Chimera Marker Cipher Algorithms and Modes
Marker Alg ID Algorithm Name Key Length (bytes) References
0 Reserved for Test Any
1 AES-256 in Electronic Code Book (ECB) 32 [nist-fips-197]
[nist-sp-800-38a]

The FC Chimera marker generation algorithms supported depends on the GNSS Constellation. The defined GNSS IDs for this specification and their respective supported algorithm(s) are described in Table 1.

When a GNSS Constellations uses a cipher in Electronic Code Book mode to generate Chimera marker ciphertext, it MUST ensure the uniqueness of the plaintext input for each block of ciphertext generated with the same key. For example, NTS-3 specifies within [is-agt-100a] signal identifier, timestamp, and counter fields in the plaintext input to ensure the uniqueness of each block of marker location and marker value ciphertext.

3.3.1.5. Fast Channel Marker Key Value

A byte string containing either a FC Chimera key of the appropriate length for the indicated algorithm or a zero-length byte string. Table 3 identifies the key length for each supported marker generation algorithm. A zero-length byte string indicates no key is available for the identified GNSS ID.

When the fc_service_status is Unavailable, this field MAY be either zero or of a valid key length, at the implementor's choice.

3.3.1.6. Fast Channel Chimera Configuration Indices

A Key Entry object includes within the fc_configuration_indices field an array of zero or more unique index values into fc_configurations (Section 3.3, Paragraph 2, Item 3) enclosed earlier in the Payload. FC Configurations are incorporated by reference, and identify which configuration(s) are associated with this key.

The fc_configurations field SHALL be populated with at least one element when the fc_service_status is any value other than Unavailable.

The fc_configurations array MAY be a zero length array when the fc_service_status is Unavailable.

Each referenced FC configuration object SHALL have a GNSS ID value equal to one of the GNSS IDs identified within this Key Entry object's gnss_id.

When multiple Configurations are included, the set of individual signals described SHALL be mutually exclusive to avoid ambiguity. For example, for the GPS Configuration format, (GNSS ID=x, with PRN bit y set, Signal Type bit z set) cannot appear in two different configurations referenced within the same Key Entry object.

3.3.2. Fast Channel Chimera Configuration

A FC Chimera Configuration object indicates the applicability of a particular key to a set of signals and the fast channel authentication service status for those signals.

The FC Chimera Configuration objects are defined within the fc_configurations array near the start of the Payload (Section 3.3, Paragraph 2, Item 3), and then referenced by individual FC Chimera Key Entry objects within fc_configuration_indices (Section 3.3.1.6).

Which FC Chimera Configuration format is used depends on the GNSS ID indicated within the first field of the FC Chimera Configuration object. GNSS ID definitions are defined in Table 1.

For the initial specification, only a GPS Fast Channel Chimera Configuration format is defined. Additional FC Chimera Configuration formats may be defined in a future revision of this specification.

3.3.2.1. GPS Fast Channel Chimera Configuration

The GPS FC Chimera Configuration object is a CBOR array of six items (major type of 4, value of 6):

  • gnss_id: The GNSS ID for this FC configuration object, encoded as a single unsigned or negative integer. See Table 1 for a list of GNSS ID values and their definitions.
  • prn_mask: a byte string. The information enclosed in this GPS FC Configuration applies to all PRNs indicated by the bits set within the prn_mask as described in Section 3.3.2.1.1.
  • signal_type_mask: a byte string. The information enclosed in this GPS FC Configuration applies to all signal types identified by the signal_type_mask bits as defined in Table 5.
  • signal_auth_status: an unsigned integer indicating the status for the identified signals on the identified PRNs as described in Section 3.3.2.1.2.
  • duty_factor: an unsigned integer between 1 and 7 inclusive, as defined within the applicable PNT signal in space interface specification.
  • additional_fields: a map (major type 5) of zero or more additional field identifier-value pairs as defined in Section 3.3.2.1.5.
3.3.2.1.1. GPS PRN Mapping

Mappings for the GPS Constellation are defined in Table 4. The leftmost bit of the bstr is the MSB (Bit 7) of the first byte (Byte 0) of the bstr.

The prn_mask bstr SHALL be encoded using the fewest bytes necessary as described in Section 3.3.2.1.6.

Table 4: GPS PRN Mapping
Byte (0-indexed) Bit 7
MSB
Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
LSB
0 PRN 1 PRN 2 PRN 3 PRN 4 PRN 6 PRN 6 PRN 7 PRN 8
1 PRN 9 PRN 10 PRN 11 PRN 12 PRN 13 PRN 14 PRN 15 PRN 16
2 PRN 17 PRN 18 PRN 19 PRN 20 PRN 21 PRN 22 PRN 23 PRN 24
3 PRN 25 PRN 26 PRN 27 PRN 28 PRN 29 PRN 30 PRN 31 PRN 32
4 PRN 33 PRN 34 PRN 35 PRN 36 PRN 37 PRN 38 PRN 39 PRN 40
5 PRN 41 PRN 42 PRN 43 PRN 44 PRN 45 PRN 46 PRN 47 PRN 48
6 PRN 49 PRN 50 PRN 51 PRN 52 PRN 53 PRN 54 PRN 55 PRN 56
7 PRN 57 PRN 58 PRN 59 PRN 60 PRN 61 PRN 62 PRN 63 Reserved
3.3.2.1.2. GPS Signal Types

The mapping of GPS signal types for the GPS FC Chimera Configuration format is defined in Table 5. Additional signal types may be added in the future. Assignment of bits in this specification is not intended to imply GPS or any other constellation provides FC Chimera service on those signal types.

The signal_types_mask bstr SHALL be encoded using the fewest bytes necessary to indicate set signal types, as described in Section 3.3.2.1.6. For the initial publication of this specification, only one byte has assigned values for bits in this mask.

Table 5: GPS Signal Type Mapping
Byte (0-indexed) Bit 7
MSB
Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
LSB
0 L1Cp L2CL L5Q L1 C/A Unas Unas Unas Unas
L1Cp is defined in [is-gps-800].
L2CL is defined in [is-gps-200].
L5Q is defined in [is-gps-705].
L1 C/A is defined in [is-gps-200].
Unas = Unassigned
3.3.2.1.3. GPS Fast Channel Chimera Signal Authentication Status

The signal_auth_status (GPS signal authentication status) is defined in Table 6.

Table 6: GPS Fast Channel Chimera Signal Authentication Status Definitions
Value Name Description of FC Signal Authentication Status
0 Test FC Chimera is in a test or otherwise non-operational state on the indicated signals. Markers generated by the enclosed key may or may not be present on the indicated signals. Consumers SHALL NOT use the markers on the indicates signals for authentication in operational PNT applications.
1 Unconfirmed The Fast Channel Markers for the identified PRNs may be present but are not confirmed by the Fast Channel Chimera service as being present and correct/consistent with the enclosed configuration and key. Consumers MAY use the enclosed Key Entry for these signals.
2 Operational Fast Channel Markers are confirmed to be using the enclosed key and configuration. Consumers SHOULD use the enclosed Key Entry for these signals.
All other values are unassigned.
3.3.2.1.4. GPS Fast Channel Duty Factor

The Duty Factor (amount of the signal) punctured with Fast Channel Chimera markers. The Duty Factor enclosed in GPS Fast Channel Chimera Information objects SHALL be a value between 1 and 7.

To indicate that a Fast Channel Chimera is not present on a signal (i.e., Duty Factor of zero), that signal instead SHALL NOT be included in the PRN/signal mask.

3.3.2.1.5. GPS Fast Channel Configuraiton Additional Fields

The additional_fields map optionally contains additional configuraiton parameters, in which the map key is the field_id (a signed or unsigned integer). The additional_fields map is intended for future extensibility. Valid field_id identifiers and their corresponding definitions are enclosed within Table 7.

Table 7: GPS Fast Channel Chimera Configuration Additional Fields
field_id Field Name Field Definition and Valid Values
No additional fields are defined in this revision.
3.3.2.1.6. GPS Bit Mask Encoding

The prn_mask and signal_type_mask are encoded using the fewest bytes possible to indicate all set bits. Higher assigned bit values that are all unset are implied. For example:

  • A prn_mask in which PRNs 1 through 8 are set is encoded using a one-byte bstr (two bytes total).
  • A prn_mask in which PRNs 1 through 31 are set is encoded using a 4-byte bstr (five bytes total).
  • A prn_mask in which PRNs 1 through 40 are set is encoded sing a 5-byte bstr (six bytes total).
  • A prn_mask in which only PRN 34 is set is encoded using a 5-byte string (six bytes total).

In the examples above, the "total" byte counts include the CBOR overhead byte containing the data type (bstr) and length.

3.4. COSE Signature

The COSE signature enclosed within a Fast Channel Chimera Marker Key Package is generated as defined in Section 4.4 of [RFC9052]. The signature length is dependent on the signature algorithm used, as identified within the COSE protected header (See Section 3.1).

4. IP Network Distribution of FC Chimera Packages

Because GNSS usage is ubiquitous, the distribution of FC Chimera packages must scale to support millions of devices. To achieve that, Source Specific Multicast (SSM) UDP/IP packets as defined in [RFC4607] are used because they allow for an efficient way to send packets to many systems.

The SSM protocol uses a sender and receiver model with the ability for receivers to subscribe to a sender, also known as a multicast group. This one-way communication from a "broadcasting" sender to receivers is aligned with how the FC Chimera protocol operates. The sender sets the destination address to an IP address in the 232.0.0.0/8 range. The receiver then subscribes to and listens for UDP IP packets sent from the server based on the server's source IP address and the multicast group (destination IP address).

This specification leaves the destination group (destination multicast IP address) to the service provider's discretion. This allows for multiple FC Chimera key distribution streams with different content and communities of subscribers. For example, different streams could contain test versus operational packages, or different operational streams in which stream contains packages with only the most recent key vs. packages with the most recent N keys). Different streams could also contain the same content, signed using different digital signature algorithms.

The source port number is used to indicate the SSM message stream as a GNSS Fast Channel Key Distribution service. A range of port numbers is proposed to accommodate the possibility of a single server source IP address for multiple FC Chimera key distribution streams (see Section 6). If only a single port number is assigned by IANA, multiple source IP addresses MAY be bound to a server to achieve a similar goal.

A Fast Channel Chimera key distribution multicast service SHALL use Source Specific Multicast as specified in [RFC4607].

A Fast Channel Chimera key distribution multicast service SHALL include exactly one complete Fast Channel Chimera Marker Key Package within each SSM UDP datagram's Data field. This keeps the implementation as simple as possible by avoiding fragmentation of the payload.

An operational Fast Channel Chimera key distribution multicast service SHALL use a source port number assigned by IANA, as proposed in Section 6. Test services MAY use alternate source ports designated for Experimentation or in the Dynamic Ports range as specified in [RFC6335]. Use of a predictable source port assigned to the Fast Channel Chimera key distribution protocol facilitates network security configuration and compliance management such as within firewall rules.

5. Additional Protocol Requirements and Recommendations

The Fast Channel Chimera Marker Key Package provides digitally signed symmetric keys after their period of use for marker generation within the signal in space. The enclosed key(s) are used to verify markers within associated signals implementing Fast Channel Chimera, thereby enabling authentication of pseudorange measurements.

5.1. For Consumers

Consumers SHALL validate the digital signature before processing enclosed information in the Fast Channel Chimera Marker Key Package, including service status, configuration, and marker keys. Failure to validate prior to use exposes the user to attacks attempting to induce denial of service, insert malformed information into the receiver, or insert illegitimate Chimera keys in used by a PNT signal spoofer.

Consumers SHALL confirm the validity of the X.509 certificate used (e.g., for expiration and revocation) and that the subject associated with that X.509 certificate is trusted / suitable as a source for the enclosed GNSS FC Chimera Key Entries. The consumer is responsible for determining which certificates it trusts for a particular Fast Channel Chimera service, and protecting the integrity of its trusted certificate list(s). As a general rule, though, a consumer SHOULD reject a FC Chimera Marker Key Package signed with a certificate only used for Slow Channel Chimera. A consumer SHOULD also reject a FC Chimera Marker Key Package signed using a different constellation service provider's certificate. Enforcing which certificates are trusted for which services limits the user's risk exposure. For example, the compromise of one GNSS provider's Slow Channel private key will not directly impact the Fast Channel service, and the compromise of one provider's certificate chain will not compromise other provider's authentication services.

Consumers SHOULD ensure their local device clock is accurate to one half of the Fast Channel Chimera key cryptoperiod or better prior to PNT signal acquisition. For example, if the Fast Channel Chimera cryptoperiod is six seconds, then the local clock should be accurate to +/- 3 seconds or better. This may be achieved through a combination of clock quality, occasional synchronization with alternate authenticated time sources, and operator procedures invoked when performing a cold start. An insufficiently accurate local clock may succumb to a code generation spoofer that uses a revealed Fast Channel Chimera key after its legitimate cryptoperiod and lies about the current time.

5.2. For Providers

Constellation Service Providers implementing Fast Channel Chimera SHALL publish and clearly identify which certificate(s) are to be used for their respective Fast Channel Chimera service(s).

The applicable PNT service(s) and use for Fast Channel Chimera SHOULD be encoded within the X.509 certificate. One possible approach is by encoding the approved use within the Subject Name or a Subject Alternative Name. For example, "primary.fast-signing.gps.gnss.pnt" would identify the certificate as the primary certificate used for GPS Fast Channel Chimera key signing. Encoding this information within the certificate facilitates policy enforcement within GNSS receiver implementations without relying on operator configuration to relate certificates to their applicable constellations and functions.

6. IANA Considerations

This document includes the following requests to Internet Assigned Numbers Authority (IANA):

This document requests the assignment of CBOR Tag IDs within the CBOR Tags registry [iana-cbor-tags] for the following data items:

Table 8: Proposed CBOR Tag IDs
Tag Data Item Semantics
65,472 (0xFFC0) uint or array GPS Time. See Section 2.1.
65,473 (0xFFC1) array GPS Time Span. See Section 2.2.
65,474 (0xFFC2) array Fast Channel Chimera Key Payload. See Section 3.3.
65,475 (0xFFC3) COSE_Sign1 Fast Channel Chimera Marker Key Package. See Section 3.

Examples within the initial draft submission of this document use ID values in the experimental range for the CoAP Content Type. Content Type values outside of the experimental range will eventually need to be allocated within the CoAP Content-Formats registry [iana-coap]. The experimental CoAP values used in the enclosed examples, and the proposed assignments, are as follows:

Table 9: Experimental CoAP Content-Format IDs
Content Type & Media Type (TBR) Experimental ID Proposed ID
application/gnss-fc-chimera-key-payload+cbor 65,474 (0xFFC2) 10,230
application/gnss-fc-chimera-key-package+cose 65,475 (0xFFC3) 10,231

This document requests the assignment of the following within the Service Name and Transport Protocol Port Number Registry [iana-portnum]:

Table 10: Proposed Service Name and Transport Protocol Port Numbers
Service Name Port Number Transport Protocol Description
gnss-fcchimera 10,230 udp Global Navigation Satellite System Fast Channel Chimera key distribution (SSM)
gnss-fcchimera2 10,231 udp Global Navigation Satellite System Fast Channel Chimera key distribution (SSM)
gnss-fcchimera3 10,232 udp Global Navigation Satellite System Fast Channel Chimera key distribution (SSM)
gnss-fcchimera4 10,233 udp Global Navigation Satellite System Fast Channel Chimera key distribution (SSM)

Additionally, if this specification were to be promoted to the standards track, there may be merit in managing CBOR-encoded GNSS ID value assignments under the IANA process.

The authors propose adoption of CBOR IDs in the range 65,472 (0xFFC0) through 65,534 (0xFFFE) for CBOR data items associated with Global Navigation Satellite Systems. The "prefix" of ten set bits (0b1111_1111_11) is equal to 1023 in decimal, honoring [international-gnss-day] (October 23rd) and the importance of the number 1023 to Position, Navigation, and Timing services.

Similarly, the User Port assignment of 10,230 is proposed as the primary source port for streaming multicast of GNSS FC Chimera key packages. 10,230 is a chipping code length used within several GNSS signals, including signals broadcast by GPS, Galileo, and QZSS. Assignment of three additional contiguous port numbers are proposed to accommodate multiple streams broadcast from the same IP address (see Section 4).

By the same logic, CoAP content identifiers starting with 10,230 are proposed.

7. Security Considerations

This section does not contain any additional security considerations.

8. References

8.1. Normative References

[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
[RFC8949]
Bormann, C. and P. Hoffman, "Concise Binary Object Representation (CBOR)", STD 94, RFC 8949, DOI 10.17487/RFC8949, , <https://www.rfc-editor.org/info/rfc8949>.
[RFC9052]
Schaad, J., "CBOR Object Signing and Encryption (COSE): Structures and Process", STD 96, RFC 9052, DOI 10.17487/RFC9052, , <https://www.rfc-editor.org/info/rfc9052>.
[RFC5280]
Cooper, D., Santesson, S., Farrell, S., Boeyen, S., Housley, R., and W. Polk, "Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile", RFC 5280, DOI 10.17487/RFC5280, , <https://www.rfc-editor.org/info/rfc5280>.
[RFC4607]
Holbrook, H. and B. Cain, "Source-Specific Multicast for IP", RFC 4607, DOI 10.17487/RFC4607, , <https://www.rfc-editor.org/info/rfc4607>.
[RFC6335]
Cotton, M., Eggert, L., Touch, J., Westerlund, M., and S. Cheshire, "Internet Assigned Numbers Authority (IANA) Procedures for the Management of the Service Name and Transport Protocol Port Number Registry", BCP 165, RFC 6335, DOI 10.17487/RFC6335, , <https://www.rfc-editor.org/info/rfc6335>.

8.2. Informative References

[iana-cbor-tags]
Internet Assigned Numbers Authority, "Concise Binary Object Representation (CBOR) Tags", , <https://www.iana.org/assignments/cbor-tags/cbor-tags.xhtml>.
[iana-coap]
Internet Assigned Numbers Authority, "Constrained RESTful Environments (CoRE) Parameters", , <https://www.iana.org/assignments/core-parameters/core-parameters.xhtml#content-formats>.
[iana-portnum]
Internet Assigned Numbers Authority, "Service Name and Transport Protocol Port Number Registry", , <https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml>.
[international-gnss-day]
Institute of Navigation, "International GNSS Day", , <https://www.ion.org/news/internationalgnssday.cfm>.
[is-gps-200]
United States Government, "IS-GPS-200N: NAVSTAR GPS Space Segment/Navigation User Segment Interfaces", , <https://www.gps.gov/technical/icwg/>.
[is-gps-705]
United States Government, "IS-GPS-705J: NAVSTAR GPS Space Segment/ User Segment L5 Interfaces", , <https://www.gps.gov/technical/icwg/>.
[is-gps-800]
United States Government, "IS-GPS-800J: NAVSTAR GPS Space Segment/ User Segment L1C Interfaces", , <https://www.gps.gov/technical/icwg/>.
[nist-fips-197]
United States National Institute of Standards and Technology, "FIPS 197 Update 1: Advanced Encryption Standard (AES)", , <https://csrc.nist.gov/pubs/fips/197/final>.
[nist-sp-800-38a]
United States National Institute of Standards and Technology, "NIST SP 800-38A: Recommendation for Block Cipher Modes of Operation", , <https://csrc.nist.gov/pubs/sp/800/38/a/final>.
[nts-3]
Air Force Research Laboratory, "Navigation Technology Satellite - 3 (NTS-3)", , <https://afresearchlab.com/technology/nts-3>.
[is-agt-100a]
Air Force Research Laboratory, "AFRL SPACE VEHICLES DIRECTORATE SATELLITE NAVIGATION TECHNICAL AREA INTERFACE SPECIFICATION IS-AGT-100 Rev A: Chips Message Robust Authentication (Chimera) Enhancement for the L1C Signal: Space Segment/User Segment Interface", , <https://drive.google.com/file/d/1L9S9EW4KHVpSEpOsDSUcK2rw7ElMLXk5/view>.
[ion-itm-2025]
Cole, M. H., Gillis, J. T., Allen, R. I., and A. H. Hayden, "Authentication of GPS Modernized Signals Using TESLA Chimera, In Proceedings of the 2025 Institute of Navigation Technical Interchange Meeting", .

Appendix A. Examples

A.1. Test Certificate for Enclosed Examples

The following X.509 certificate is used to validate the signatures in the examples below. This test certificate is self-signed and used solely to generate and enable validation of the example digital signatures and, by extension, the construction of the signed message. An operational Fast Channel Chimera service SHOULD use certificates issued by an Issuing Certificate Authority within an appropriate public key infrastructure for the Constellation Service Provider.


-----BEGIN CERTIFICATE-----
MIIClzCCAkmgAwIBAgIUMYwUd/jkTQ5XNmZzCC2YUp/s26AwBQYDK2VwMIGJMQsw
CQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEUMBIGA1UEBwwLTG9zIEFu
Z2VsZXMxIjAgBgNVBAoMGVRoZSBBZXJvc3BhY2UgQ29ycG9yYXRpb24xKzApBgNV
BAMMImV4YW1wbGUuZmFzdC1zaWduaW5nLnRlc3QuZ25zcy5wbnQwHhcNMjUwODI3
MDg0NDI2WhcNMjYwODI3MDg0NDI2WjCBiTELMAkGA1UEBhMCVVMxEzARBgNVBAgM
CkNhbGlmb3JuaWExFDASBgNVBAcMC0xvcyBBbmdlbGVzMSIwIAYDVQQKDBlUaGUg
QWVyb3NwYWNlIENvcnBvcmF0aW9uMSswKQYDVQQDDCJleGFtcGxlLmZhc3Qtc2ln
bmluZy50ZXN0Lmduc3MucG50MCowBQYDK2VwAyEAbGSFGfbuRJdvywBZPBkdg+7H
cGO3M7if/eZ/oGhqKb6jgcAwgb0wDgYDVR0PAQH/BAQDAgeAMBYGA1UdJQEB/wQM
MAoGCCsGAQUFBwMBMHQGA1UdEQRtMGuCImV4YW1wbGUuZmFzdC1zaWduaW5nLnRl
c3QuZ25zcy5wbnSCImV4YW1wbGUuZmFzdC1zaWduaW5nLm50czMuZ25zcy5wbnSC
IWV4YW1wbGUuZmFzdC1zaWduaW5nLmdwcy5nbnNzLnBudDAdBgNVHQ4EFgQUnEvh
BAuMlyVQoHYG3i94nnHq0jswBQYDK2VwA0EAwG2bhFBucQhPDgtl4hhlDTNMj8aB
39fuvHdscryGKdT557dXZ2bMsOwDRf/QV+fJvfBaZC0C6mcUhFtGpy6nDg==
-----END CERTIFICATE-----

A.2. Simple Example: One NTS-3 Fast Channel Chimera Key

The following is an example Fast Channel Chimera Payload (defined in Section 3.3) using the First FC Chimera Key in the NTS-3 Test Vector from [is-agt-100a]:



84001a4a 2a0d0881 86374500 00000040
41800001 a0818637 01821a35 c41c9404
01582047 e2253591 1bda4ed3 4b32049e
0a0cfafc d41579e8 4168f140 a13afdd6
257fc081 00

69 bytes:

84                -- Array of length 3 (FC Chimera Payload)
  00              -- uint of value 0 (Version 0)
  1a              -- 4-byte uint (Package Generation Timestamp)
  4a2a0d08        -- GPS Time: WN 2373, TOW = 134408

  81              -- Array of length 1
                  -- (fc_configurations with 1 entry)
    86            -- 100_00110  Array of length 6 (Configuration obj)
      37            -- 001_10111   GNSS ID = -24 = NTS-3
      45            -- 010_00101  bstr of length 5 bytes (PRN mask)
      0000000040    -- PRN Mask with only PRN 34 set
      41            -- 010_00001  bstr of length 1 (Signal Type Mask)
      80            --            L1Cp bit set
      00            -- 000_00000  uint value of 0
                    --            (Signal Auth Status = Test)
      01            -- 000_00001  uint value of 1 (Duty Factor = 1)
      a0            -- 101_00000 additional_fields map of length 0

  81              -- 100_00001   Array of length 1
                  --             (fc_key_entries w/ one entry)
    86            -- 100_00110   Array of length 6 (Key Entry)
      37          -- 001_10111   GNSS ID = -24 = NTS-3
      01          -- 000_00001   Status = Test
      82          -- 100_00010   Array of length 2 (GPS Time Span)
        1a        -- 000_11010   uint that is 4 bytes long
                  --             (GPS Time)
        35c41c94  -- NTS-3 IS-AGT-100A Test Vector Z-count of
                  -- 0011010111000_1000001110010010100 =
                  -- GPS WN 1720, TOW = 269460
        04        -- 000_00100   uint value of 4
                  --             (duration of 4 Z-counts)
      01          -- 000_00001   uint value of 1
                  --             (Marker Algorithm = AES-256 ECB)
      58          -- 010_11000   bstr of len indicated in next byte
                  --             (Marker Key)
      20          --             32 bytes long
      47e22535911bda4ed34b32049e0a0cfa    -- Marker Key Value pt 1
      fcd41579e84168f140a13afdd6257fc0    -- Marker Key Value pt 2

      81          -- 100_00001   Array
                  --             (fc_configuration_indices, len=1)
        00        -- 000_00000   Configuration Information at index 0


The resulting fully assembled Fast Channel Chimera Marker Key Package (defined in Section 3) containing this payload is as follows:



84a20132 0319ffc2 a10448de 2f789e71
ead23b58 4584001a 4a2a0d08 81863745
00000000 40418000 01a08186 3701821a
35c41c94 04015820 47e22535 911bda4e
d34b3204 9e0a0cfa fcd41579 e84168f1
40a13afd d6257fc0 81005840 c05f0a87
5f2c2bfd a36fdedb 4bedbdbf 041e1462
8fdef361 5e7d9e50 7cba2e18 58b3b996
f77ba02b d8b80a7b 20b60f38 371aa7d5
8a7e570e 1cea94a6 c21b9e07

156 bytes:

84                -- CBOR COSE_Sign1 packet
  A2              -- 101_000010: protected header map with two pairs
    01            -- alg key
    32            -- alg value: -19 (EdDSA using Ed25519 curve)

    03            -- content type key
    19 FFC2       -- content type value: 65,474
                  -- (application/gnss-fc-chimera-key-payload+cbor)
  A1              -- unprotected header map with one pair
    04            -- kid key
    48            -- kid value: 010_10100(160 bit)
                  -- 8 Least Significant Bytes of the
                  -- Subject Key Identifier
      DE2F789E71EAD23B
   58 45          -- Payload, bstr of length 69 bytes.
                  -- Should match A.2 example
      84001a4a 2a0d0881 86374500 00000040
      41800001 a0818637 01821a35 c41c9404
      01582047 e2253591 1bda4ed3 4b32049e
      0a0cfafc d41579e8 4168f140 a13afdd6
      257fc081 00
   58 40           -- Signature, bstr of length 64 bytes
      c05f0a87 5f2c2bfd a36fdedb 4bedbdbf
      041e1462 8fdef361 5e7d9e50 7cba2e18
      58b3b996 f77ba02b d8b80a7b 20b60f38
      371aa7d5 8a7e570e 1cea94a6 c21b9e07

A.3. Consecutive NTS-3 Fast Channel Keys

The following is an example Fast Channel Chimera Key Payload (defined in Section 3.3) that includes four NTS-3 Fast Channel Chimera keys with consecutive one X1 epoch long cryptoperiods. In this example, the Configuration Information associated with each Key Entry is the same, but this is not guaranteed for Key Entry objects in the same FC Chimera Package since the signal configuration and monitoring of the signal may change over time.



84001a4a 2a0d0881 86374500 00000040
41800001 a0848637 01821a35 c41ca801
01582063 933d3e19 5df02536 18a251d0
4875ac38 e30f13cf a6603e99 7a8efdb5
ee1bb681 00863701 821a35c4 1ca70101
58209898 e26fd935 5677da18 0fb4d73e
b68d8a67 f7508b28 56d1ab86 9091e8ca
d72e8100 86370182 1a35c41c a6010158
2088e8e0 345b6cc4 6bd1669a e710d682
6c6fd115 ef5e488c f38230fe 24aba377
81810086 3701821a 35c41ca5 01015820
b999572a 66ba7d7d a976c311 d0e18b71
d1791adc ef161069 9379f598 28bc617a
8100

210 bytes:

84                -- Array of length 4 (FC Chimera Payload)
  00              -- uint of value 0 (Version 0)
  1a              -- 4-byte uint (Package Generation Timestamp)
  4a2a0d08        -- GPS Time: WN 2373, TOW = 134408

  81              -- Array of length 1
                  -- (fc_configurations with 1 entry)
    86            -- 100_00110  Array of length 6 (Configuration obj)
      37            -- 001_10111   GNSS ID = -24 = NTS-3
      45            -- 010_00101  bstr of length 5 bytes (PRN mask)
      0000000040    -- PRN Mask with only PRN 34 set
      41            -- 010_00001  bstr of length 1 (Signal Type Mask)
      80            --            L1Cp bit set
      00            -- 000_00000  uint value of 0
                    --            (Signal Auth Status = Test)
      01            -- 000_00001  uint value of 1 (Duty Factor = 1)
      a0            -- 101_00000 additional_fields map of length 0

  84              -- 100_00100  Array of length 4
                  --           (fc_key_entries w/ 4 entries)

    86            -- 100_00110  Array of length 6 (Key Entry)
      37          -- 001_10111   GNSS ID = -24 = NTS-3
      01          -- 000_00001   Status = Test
      82          -- 100_00010   Array of length 2 (GPS Time Span)
        1a        -- 000_11010   uint that is 4 bytes long
                  --             (GPS Time)
        35c41ca8  -- NTS-3 simulated time Z-count of
                  -- 0011010111000_1000001110010101000 =
                  -- GPS WN 1720, TOW = 269480
        01        -- 000_00001   uint value of 1
                  --             (duration of 1 Z-count)
      01          -- 000_00001   uint value of 1
                  --             (Marker Algorithm = AES-256 ECB)
      58          -- 010_11000   bstr of len indicated in next 1 byte
                  --             (Marker Key)
        20        --             32 bytes long
        63933d3e195df0253618a251d04875ac
        38e30f13cfa6603e997a8efdb5ee1bb6
      81          -- 100_00001   Array
                  --             (fc_configuration_indices, len=1)
        00        -- 000_00000   FC Configuration Information
                  --             at index 0

    -- Parse Similarly for second, third, and fourth
    -- Key Entry objects

    -- For NTS-3 time of WN 1720 TOW 269479
    863701821a35c41ca701015820
    9898e26fd9355677da180fb4d73eb68d8a67f7508b2856d1ab869091e8cad72e
    8100

    -- For NTS-3 time of WN 1720 TOW 269478
    863701821a35c41ca601015820
    88e8e0345b6cc46bd1669ae710d6826c6fd115ef5e488cf38230fe24aba37781
    8100

    -- For NTS-3 time of WN 1720 TOW 269477
    863701821a35c41ca501015820
    b999572a66ba7d7da976c311d0e18b71d1791adcef1610699379f59828bc617a
    8100


The resulting fully assembled Fast Channel Chimera Marker Key Package (defined in Section 3) containing this payload is as follows:



84a20132 0319ffc2 a10448de 2f789e71
ead23b58 d284001a 4a2a0d08 81863745
00000000 40418000 01a08486 3701821a
35c41ca8 01015820 63933d3e 195df025
3618a251 d04875ac 38e30f13 cfa6603e
997a8efd b5ee1bb6 81008637 01821a35
c41ca701 01582098 98e26fd9 355677da
180fb4d7 3eb68d8a 67f7508b 2856d1ab
869091e8 cad72e81 00863701 821a35c4
1ca60101 582088e8 e0345b6c c46bd166
9ae710d6 826c6fd1 15ef5e48 8cf38230
fe24aba3 77818100 86370182 1a35c41c
a5010158 20b99957 2a66ba7d 7da976c3
11d0e18b 71d1791a dcef1610 699379f5
9828bc61 7a810058 40fd7cea 430bfc5a
5afa5d98 018a9121 03b0e792 2c08f4d0
09646a30 f0f7d4c9 d5bcb657 2907d7fe
1b8b2234 a998f613 9bd44b82 646aa34b
9fae9b77 d581f261 02

297 bytes:

84                -- CBOR COSE_Sign1 packet
  A2              -- protected header map
      01          -- alg key
      32          -- alg value: -19 (EdDSA using Ed25519 curve)
      03          -- content type key
      19 FFC2     -- content type value: 65,474
                     (application/gnss-fc-chimera-key-payload+cbor)
  A1              -- unprotected header map
      04          -- kid key
      48          -- kid value: eight least significant bytes of
                  -- Subject Key Identifier
        DE2F789E71EAD23B
  58 D2           -- Payload, should match A.3 example
      84001a4a 2a0d0881 86374500 00000040
      41800001 a0848637 01821a35 c41ca801
      01582063 933d3e19 5df02536 18a251d0
      4875ac38 e30f13cf a6603e99 7a8efdb5
      ee1bb681 00863701 821a35c4 1ca70101
      58209898 e26fd935 5677da18 0fb4d73e
      b68d8a67 f7508b28 56d1ab86 9091e8ca
      d72e8100 86370182 1a35c41c a6010158
      2088e8e0 345b6cc4 6bd1669a e710d682
      6c6fd115 ef5e488c f38230fe 24aba377
      81810086 3701821a 35c41ca5 01015820
      b999572a 66ba7d7d a976c311 d0e18b71
      d1791adc ef161069 9379f598 28bc617a
      8100
  58 40           -- Signature
      fd7cea43 0bfc5a5a fa5d9801 8a912103
      b0e7922c 08f4d009 646a30f0 f7d4c9d5
      bcb65729 07d7fe1b 8b2234a9 98f6139b
      d44b8264 6aa34b9f ae9b77d5 81f26102

A.4. Complex Example: Two GPS Cryptonets with Multiple Configuration Information Objects

The following is an example Fast Channel Chimera Key Payload (defined in Section 3.3) that includes two cryptoperiods-worth of FC Chimera keys for two constellations: GPS and Other. In this example, the GPS Constellation has two cryptonets: an operational cryptonet used for most PRNs, and a test cryptonet used on one PRN. The Fast Channel service is in a test configuration on the L1C signals, and an operational configuration for L2C and L5. In the earlier cryptoperiod, FC Chimera markers for two of the PRNs are unconfirmed, and they are confirmed in the most current cryptoperiod.

The Other constellation is using the test GNSS ID. In this example, the Other constellation adopts the GPS Time, GPS Time Span, and Configuration data structures, with PRN mask assignment and Signal Type mask values that are not defined in this specification.

This example might not be a realistic payload for a service provider to generate (e.g., Test keys and associated PRNs may be excluded from an operational key streaming service), but it demonstrates the flexibility of the message format.



84001a4a 2a0d0886 8604443f fffffe41
600201a0 8604443f ffff5e41 600201a0
86044400 0000a041 600101a0 8604443f
fffffe41 800003a0 86044180 41e00001
a0860041 8041e000 01a08686 0402821a
4a2a0d04 04015820 92733d1c ccf2698d
1d8c9e03 3032bc97 efddbe9a f78de69a
6368d052 eb11004c 82000386 0402821a
4a2a0d04 04015820 f7aef0f1 1e592dae
932172a8 b65c0248 426908de 5f75f6c8
07ce9082 c75f4bab 81048600 01821a4a
2a0d0404 01582050 f79c482f 71644d1e
76d2834a c6ba1c45 34f9a002 b352a83d
b3241fdd d268e481 05860402 821a4a2a
0d000401 5820cbed cb1a7bf0 5f5593a8
27513874 1f8e3080 8b9e78aa e8b1fe59
7d5edbf4 b2758301 02038604 02821a4a
2a0d0004 015820d5 65e17325 31f1eed6
ddc3571b 31effe91 b444f6ec f45ba77f
cdfaa506 18e22181 04860001 821a4a2a
0d000401 58205d47 9d08dc1d 4e32f9ea
b47f786d 5e36be5e 947fcdab 25ece381
cb760c97 72608105

360 bytes:

84                -- Array of length 4 (FC Chimera Payload)
  00              -- uint of value 0 (Version 0)
  1a              -- 4-byte uint (Package Generation Timestamp)
  4a2a0d08        -- GPS Time: WN 2373, TOW = 134408

  86                -- Array of length 6 (fc_configurations)
    86           -- #0 100_00110  Array of length 6 (Configuration)
      04            -- 000_0100   GNSS ID = 4 = GPS
      44            -- 010_00100  bstr of length 4 bytes (PRN mask)
        3ffffffe    -- PRN Mask with PRNs 3-31 set
      41            -- 010_00001  bstr of length 1 (Signal Type Mask)
        60          --            L2CL and L5Q bits set
      02            -- 000_00010  uint value of 2
                    --            (Signal Auth Status = Operational)
      01            -- 000_00001  uint value of 1 (Duty Factor = 1)
      a0            -- 101_00000 additional_fields map of length 0

    86           -- #1 100_00110  Array of length 6 (Configuration)
      04            -- 000_0100   GNSS ID = 4 = GPS
      44            -- 010_00100  bstr of length 4 bytes (PRN mask)
        3fffff5e    -- PRN Mask with PRNs 3-24, 26, and 28-31 set
      41            -- 010_00001  bstr of length 1 (Signal Type Mask)
        60          --            L2CL and L5Q bits set
      02            -- 000_00010  uint value of 2
                    --            (Signal Auth Status = Operational)
      01            -- 000_00001  uint value of 1 (Duty Factor = 1)
      a0            -- 101_00000 additional_fields map of length 0

    86           -- #2 100_00110  Array of length 6 (Configuration)
      04            -- 000_0100   GNSS ID = 4 = GPS
      44            -- 010_00100  bstr of length 4 bytes (PRN mask)
        000000a0    -- PRN Mask with PRNs 25 and 27 set
      41            -- 010_00001  bstr of length 1 (Signal Type Mask)
        60          --            L2CL and L5Q bits set
      01            -- 000_00001  uint value of 1
                    --            (Signal Auth Status = Unconfirmed)
      01            -- 000_00001  uint value of 1 (Duty Factor = 1)
      a0            -- 101_00000 additional_fields map of length 0

    86           -- #3 100_00110  Array of length 6 (Configuration)
      04            -- 000_0100   GNSS ID = 4 = GPS
      44            -- 010_00100  bstr of length 4 bytes (PRN mask)
        3ffffffe    -- PRN Mask with PRNs 3-24, 26, and 28-31 set
      41            -- 010_00001  bstr of length 1 (Signal Type Mask)
        80          --            L1Cp bit set
      00            -- 000_00000  uint value of 0
                    --            (Signal Auth Status = Test)
      03            -- 000_00011  uint value of 3 (Duty Factor = 3)
      a0            -- 101_00000 additional_fields map of length 0

    86           -- #4 100_00110  Array of length 6 (Configuration)
      04            -- 000_0100   GNSS ID = 4 = GPS
      41            -- 010_00001  bstr of length 1 byte (PRN mask)
        80          -- PRN Mask with PRN 1 set
      41            -- 010_00001  bstr of length 1 (Signal Type Mask)
        e0          --            L1Cp, L2CL, and L5Q bits set
      00            -- 000_00000  uint value of 0
                    --            (Signal Auth Status = Test)
      01            -- 000_00001  uint value of 1 (Duty Factor = 1)
      a0            -- 101_00000 additional_fields map of length 0

    86           -- #5 100_00110  Array of length 6 (Configuration)
      00            -- 000_0000   GNSS ID = 0 = Test
      41            -- 010_00001  bstr of length 1 byte (PRN mask)
        80          -- PRN Mask with Unspecified meaning
      41            -- 010_00001  bstr of length 1 (Signal Type Mask)
        e0          -- Signal Type mask with Unspecified meaning
      00            -- 000_00000  uint value of 0
                    --            (Signal Auth Status = Test)
      01            -- 000_00001  uint value of 1 (Duty Factor = 1)
      a0            -- 101_00000 additional_fields map of length 0

  86              -- 100_00110   Array of length 6 (Six Key Entries)
    86            -- 100_00110   Array of length 6 (Key Entry)
      04          -- 000_00100   GNSS ID = 4 = GPS
      02          -- 000_00010   Status = Operational
      82          -- 100_00010   Array of length 2 (GPS Time Span)
        1a        -- 000_11010   uint that is 4 bytes long
        4a2a0d04  -- 100101000101_0100000110100000100 =
                  -- GPS WN 2373, TOW = 134404
        04        -- 000_00100   unit value of 4
                  --             (duration of 4 Z-counts)
      01          -- 000_00001   uint value of 1
                  --             (Marker Algorithm = AES-256 ECB)
      58          -- 010_11000   bstr of len indicated in next byte
                  --             (Marker Key)
        20        --             32 bytes long
        92733d1cccf2698d1d8c9e033032bc97
        efddbe9af78de69a6368d052eb11004c
      82          -- 100_00010   Array
                  --             (fc_configuration_indices, len=2)
        00        -- Configuration at Index 0
        03        -- Configuration at Index 3

    86            -- 100_00110   Array of length 6 (Key Entry)
      04          -- 000_00100   GNSS ID = 4 = GPS
      02          -- 000_00010   Status = Operational
      82          -- 100_00010   Array of length 2 (GPS Time Span)
        1a        -- 000_11010   uint that is 4 bytes long
        4a2a0d04  -- 100101000101_0100000110100000100 =
                  -- GPS WN 2373, TOW = 134404
        04        -- 000_00100   unit value of 4
                  --             (duration of 4 Z-counts)
      01          -- 000_00001   uint value of 1
                  --             (Marker Algorithm = AES-256 ECB)
      58          -- 010_11000   bstr of len indicated in next byte
                  --             (Marker Key)
        20        --             32 bytes long
        f7aef0f11e592dae932172a8b65c0248
        426908de5f75f6c807ce9082c75f4bab
      81          -- 100_00001   Array
                  --             (fc_configuration_indices, len=1)
        04        -- 000_00100   Configuration at Index 4

    86            -- 100_00110   Array of length 6 (Key Entry)
      00          -- 000_00000   GNSS ID = 0 = Test
      01          -- 000_00001   Status = Test
      82          -- 100_00010   Array of length 2 (GPS Time Span)
        1a        -- 000_11010   uint that is 4 bytes long
        4a2a0d04  -- 100101000101_0100000110100000100 =
                  -- GPS WN 2373, TOW = 134404
        04        -- 000_00100   unit value of 4
                  --             (duration of 4 Z-counts)
      01          -- 000_00001   uint value of 1
                  --             (Marker Algorithm = AES-256 ECB)
      58          -- 010_11000   bstr of len indicated in next byte
                  --             (Marker Key)
        20        --             32 bytes long
        50f79c482f71644d1e76d2834ac6ba1c
        4534f9a002b352a83db3241fddd268e4
      81          -- 100_00001   Array
                  --            (fc_configuration_indices, len=1)
        05        -- 000_00101   Configuration at Index 5

    86            -- 100_00110   Array of length 6 (Key Entry)
      04          -- 000_00100   GNSS ID = 4 = GPS
      02          -- 000_00001   Status = Operational
      82          -- 100_00010   Array of length 2 (GPS Time Span)
        1a        -- 000_11010   uint that is 4 bytes long
        4a2a0d00  -- 100101000101_0100000110100000000 =
                  -- GPS WN 2373, TOW = 134400
        04        -- 000_00100   unit value of 4
                  --             (duration of 4 Z-counts)
      01          -- 000_00001   uint value of 1
                  --             (Marker Algorithm = AES-256 ECB)
      58          -- 010_11000   bstr of len indicated in next byte
                  --             (Marker Key)
        20        --             32 bytes long
        cbedcb1a7bf05f5593a8275138741f8e
        30808b9e78aae8b1fe597d5edbf4b275
      83          -- 100_00101   (fc_configuration_indices, len=3)
        01        --             Configuration at Index 1
        02        --             Configuration at index 2
        03        --             Configuration at Index 3

    86            -- 100_00110   Array of length 6 (Key Entry)
      04          -- 000_00100   GNSS ID = 4 = GPS
      02          -- 000_00010   Status = Operational
      82          -- 100_00010   Array of length 2 (GPS Time Span)
        1a        -- 000_11010   uint that is 4 bytes long
        4a2a0d00  -- 100101000101_0100000110100000000 =
                  -- GPS WN 2373, TOW = 134400
        04        -- 000_00100   unit value of 4
                  --             (duration of 4 Z-counts)
      01          -- 000_00001   uint value of 1
                  --             (Marker Algorithm = AES-256 ECB)
      58          -- 010_11000   bstr of len indicated in next byte
                  --             (Marker Key)
        20        --             32 bytes long
        d565e1732531f1eed6ddc3571b31effe
        91b444f6ecf45ba77fcdfaa50618e221
      81          -- 100_00001   Array
                  --             (fc_configuration_indices, len=1)
        04        -- 000_00100   Configuration at Index 4

    86            -- 100_00110   Array of length 6 (Key Entry)
      00          -- 000_00000   GNSS ID = 0 = Test
      01          -- 000_00001   Status = Test
      82          -- 100_00010   Array of length 2 (GPS Time Span)
        1a        -- 000_11010   uint that is 4 bytes long
        4a2a0d00  -- 100101000101_0100000110100000000 =
                  -- GPS WN 2373, TOW = 134400
        04        -- 000_00100   unit value of 4
                  --             (duration of 4 Z-counts)
      01          -- 000_00001   uint value of 1
                  --             (Marker Algorithm = AES-256 ECB)
      58          -- 010_11000   bstr of len indicated in next byte
                  --             (Marker Key)
        20        --             32 bytes long
        5d479d08dc1d4e32f9eab47f786d5e36
        be5e947fcdab25ece381cb760c977260
      81          -- 100_00001   Array
                  --             (fc_configuration_indices, len=1)
        05        -- 000_00101   Configuration at Index 5


The resulting fully assembled Fast Channel Chimera Marker Key Package (defined in Section 3) containing this payload is as follows:



84a20132 0319ffc2 a104549c 4be1040b
8c972550 a07606de 2f789e71 ead23b59
01688400 1a4a2a0d 08868604 443fffff
fe416002 01a08604 443fffff 5e416002
01a08604 44000000 a0416001 01a08604
443fffff fe418000 03a08604 418041e0
0001a086 00418041 e00001a0 86860402
821a4a2a 0d040401 58209273 3d1cccf2
698d1d8c 9e033032 bc97efdd be9af78d
e69a6368 d052eb11 004c8200 03860402
821a4a2a 0d040401 5820f7ae f0f11e59
2dae9321 72a8b65c 02484269 08de5f75
f6c807ce 9082c75f 4bab8104 86000182
1a4a2a0d 04040158 2050f79c 482f7164
4d1e76d2 834ac6ba 1c4534f9 a002b352
a83db324 1fddd268 e4810586 0402821a
4a2a0d00 04015820 cbedcb1a 7bf05f55
93a82751 38741f8e 30808b9e 78aae8b1
fe597d5e dbf4b275 83010203 86040282
1a4a2a0d 00040158 20d565e1 732531f1
eed6ddc3 571b31ef fe91b444 f6ecf45b
a77fcdfa a50618e2 21810486 0001821a
4a2a0d00 04015820 5d479d08 dc1d4e32
f9eab47f 786d5e36 be5e947f cdab25ec
e381cb76 0c977260 81055840 21b68804
1e45b4a0 973fa1eb 4781a8cf 631d6e0f
83a7f4e9 98077a61 a53cd7fc 3443c69b
632bcc6e 244b98b2 743a4756 a0d180ee
3003112f 58bad375 ae0df90b

460 bytes:

84                -- CBOR COSE_Sign1 packet
   A2             -- protected header map
      01          -- alg key
      32          -- alg value: -19 (EdDSA using Ed25519 curve)
      03          -- content type key
      19 FFC2     -- content type value: 65,474
                     (application/gnss-fc-chimera-key-payload+cbor)
   A1             -- unprotected header map
      04          -- kid key
      54          -- kid value: 160 bit Subject Key Identifier
         9C4BE1040B8C972550A0
         7606DE2F789E71EAD23B
   59 0168        -- Payload, should match A.4 example
      84001a4a 2a0d0886 8604443f fffffe41
      600201a0 8604443f ffff5e41 600201a0
      86044400 0000a041 600101a0 8604443f
      fffffe41 800003a0 86044180 41e00001
      a0860041 8041e000 01a08686 0402821a
      4a2a0d04 04015820 92733d1c ccf2698d
      1d8c9e03 3032bc97 efddbe9a f78de69a
      6368d052 eb11004c 82000386 0402821a
      4a2a0d04 04015820 f7aef0f1 1e592dae
      932172a8 b65c0248 426908de 5f75f6c8
      07ce9082 c75f4bab 81048600 01821a4a
      2a0d0404 01582050 f79c482f 71644d1e
      76d2834a c6ba1c45 34f9a002 b352a83d
      b3241fdd d268e481 05860402 821a4a2a
      0d000401 5820cbed cb1a7bf0 5f5593a8
      27513874 1f8e3080 8b9e78aa e8b1fe59
      7d5edbf4 b2758301 02038604 02821a4a
      2a0d0004 015820d5 65e17325 31f1eed6
      ddc3571b 31effe91 b444f6ec f45ba77f
      cdfaa506 18e22181 04860001 821a4a2a
      0d000401 58205d47 9d08dc1d 4e32f9ea
      b47f786d 5e36be5e 947fcdab 25ece381
      cb760c97 72608105
   58 40          -- Signature
      21b68804 1e45b4a0 973fa1eb 4781a8cf
      631d6e0f 83a7f4e9 98077a61 a53cd7fc
      3443c69b 632bcc6e 244b98b2 743a4756
      a0d180ee 3003112f 58bad375 ae0df90b


A.5. Fast Channel Chimera Service Unavailable

The following is an example Fast Channel Chimera Key Payload (defined in Section 3.3) that indicates the FC Chimera Service is unavailable for GPS. In this example, the package timestamp is one X1 epoch after the end of the Cryptoperiod described within the Key Entry object. This demonstrates how the FC Chimera Status is reported on a per-cryptoperiod basis: the Cryptoperiod is always on a Fast Channel Chimera period boundary, regardless of when the FC Chimera Marker Key Package is generated. In this example, the FC Chimera period is 6 seconds (4 X1 epochs).



84001a4a 2a0d0980 81860400 821a4a2a
0d040401 4080

22 bytes:

84                -- Array of length 4 (FC Chimera Payload)
  00              -- uint of value 0 (Version 0)
  1a              -- 4-byte uint (Package Generation Timestamp)
  4a2a0d09        -- GPS Time: WN 2373, TOW = 134409

  80              -- 100_00000   Array of length 0
                  --             (No Configuration Information)

  81              -- 100_00001   Array of length 1
                  --             (fc_key_entries w/ one entry)
    86            -- 100_00110   Array of length 6 (Key Entry)
    04            -- 000_00100   GNSS ID = 4 = GPS
    00            -- 000_00000   Status = Unavailable
    82            -- 100_00010   Array of length 2 (GPS Time Span)
      1a          -- 000_11010   uint that is 4 bytes long
      4a2a0d04    -- 100101000101_0100000110100000100 =
                  -- GPS WN 2373, TOW = 134404
      04          -- 000_00100   unit value of 4
                  --             (duration of 4 Z-counts)
    01            -- 000_00001   uint value of 1
                  --             (Marker Algorithm = AES-256 ECB)
    40            -- 010_00000   bstr of length 0 (no key enclosed)
    80            -- 100_00000   array of length 0
                  --             (no configuration information)


The resulting fully assembled Fast Channel Chimera Marker Key Package (defined in Section 3) containing this payload is as follows:



84a20132 0319ffc2 a104549c 4be1040b
8c972550 a07606de 2f789e71 ead23b56
84001a4a 2a0d0980 81860400 821a4a2a
0d040401 40805840 a837f94e 91aa400f
7e15fec8 9a6e2bf9 3f4ea70f 7d77141d
be2431b7 df13a703 15a26e7e 36cee184
a4f0ecca 0b1b1c81 3f2c247e 28efacfe
a1893187 96992202

120 bytes:

84                -- CBOR COSE_Sign1 packet
   A2             -- protected header map
      01          -- alg key
      32          -- alg value: -19 (EdDSA using Ed25519 curve)
      03          -- content type key
      19 FFC2     -- content type value: 65,474
                     (application/gnss-fc-chimera-key-payload+cbor)
   A1             -- unprotected header map
      04          -- kid key
      54          -- kid value: 160 bit Subject Key Identifier
         9C4BE1040B8C972550A0
         7606DE2F789E71EAD23B
   56             -- Payload, should match A.5 example
      84001A4A 2A0D0980 81860400 821A4A2A
      0D040401 4080
   58 40          -- Signature
      A837F94E 91AA400F 7E15FEC8 9A6E2BF9
      3F4EA70F 7D77141D BE2431B7 DF13A703
      15A26E7E 36CEE184 A4F0ECCA 0B1B1C81
      3F2C247E 28EFACFE A1893187 96992202


Acknowledgements

The authors would like to acknowledge the United States Federal Aviation Administration and United States Department of Transportation for funding the development of this initial draft specification.

Contributors

The authors would like to thank the following individuals for suggested edits that were incorporated into this document:

Authors' Addresses

Michael H. Cole
The Aerospace Corporation
14745 Lee Road
Chantilly, VA 20151
United States of America
Sher Shah
The Aerospace Corporation
14745 Lee Road
Chantilly, VA 20151
United States of America