| Internet-Draft | GNSS FC Chimera Marker Key Package | August 2026 |
| Cole & Shah | Expires 28 February 2027 | [Page] |
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.¶
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.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
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.¶
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.¶
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.¶
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.¶
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:¶
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).¶
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.¶
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]:¶
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]:¶
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.¶
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:¶
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.¶
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:¶
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.¶
| 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 |
Fast Channel Chimera service statuses are defined in Table 2.¶
| 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). |
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.¶
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).¶
| 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.¶
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.¶
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.¶
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.¶
The GPS FC Chimera Configuration object is a CBOR array of six items (major type of 4, value of 6):¶
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.¶
| 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 |
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.¶
| 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 |
||||||||
The signal_auth_status (GPS signal authentication status) is defined in Table 6.¶
| 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. |
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.¶
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.¶
| field_id | Field Name | Field Definition and Valid Values |
|---|---|---|
| No additional fields are defined in this revision. | ||
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:¶
In the examples above, the "total" byte counts include the CBOR overhead byte containing the data type (bstr) and length.¶
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).¶
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.¶
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.¶
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.¶
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.¶
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:¶
| 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:¶
| 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]:¶
| 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.¶
This section does not contain any additional security considerations.¶
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-----¶
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
¶
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
¶
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
¶
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
¶
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.¶
The authors would like to thank the following individuals for suggested edits that were incorporated into this document:¶