<?xml version="1.0" encoding="utf-8"?>
<!-- 
     draft-cole-cose-encoded-gnss-chimera-marker-keys-00

     Documentation is at https://authors.ietf.org/en/templates-and-schemas
-->
<?xml-model href="rfc7991bis.rnc"?>  <!-- Required for schema validation and schema-aware editing -->
<!-- <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> -->
<!-- This third-party XSLT can be enabled for direct transformations in XML processors, including most browsers -->


<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<!-- If further character entities are required then they should be added to the DOCTYPE above.
     Use of an external entity file is not recommended. -->

<rfc
  xmlns:xi="http://www.w3.org/2001/XInclude"
  category="exp"
  docName="draft-cole-cose-encoded-gnss-chimera-marker-keys-00"
  ipr="trust200902"
  obsoletes=""
  updates=""
  submissionType="IETF"
  xml:lang="en"
  version="3">
<!-- 
    * docName should be the name of your draft
    * category should be one of std, bcp, info, exp, historic
    * ipr should be one of trust200902, noModificationTrust200902, noDerivativesTrust200902, pre5378Trust200902
    * updates can be an RFC number as NNNN
    * obsoletes can be an RFC number as NNNN 
-->
<!--
  Guidance on Info vs Experimental:
  https://www.ietf.org/process/process/informational-vs-experimental/
-->

  <front>
    <title abbrev="GNSS FC Chimera Marker Key Package">Global Navigation Satellite System (GNSS) Fast Channel Chimera Marker Key Package using Concise Binary Object Representation (CBOR) Object Signing and Encryption (COSE)</title> <!-- https://authors.ietf.org/en/rfcxml-vocabulary#title-4 -->
    <!--  The abbreviated title is required if the full title is longer than 39 characters -->

    <seriesInfo name="Internet-Draft" value="draft-cole-cose-encoded-gnss-chimera-marker-keys-00"/> <!-- https://authors.ietf.org/en/rfcxml-vocabulary#seriesinfo -->
    <!-- Set value to the name of the draft  -->
   
    <author fullname="Michael H. Cole" initials="M. H." surname="Cole"> <!-- https://authors.ietf.org/en/rfcxml-vocabulary#author -->
    <!-- initials should not include an initial for the surname -->
    <!-- role="editor" is optional -->
    <!-- Can have more than one author -->
      
    <!-- all of the following elements are optional -->
      <organization>The Aerospace Corporation</organization> <!-- https://authors.ietf.org/en/rfcxml-vocabulary#organization -->
      <address> <!-- https://authors.ietf.org/en/rfcxml-vocabulary#address -->
        <postal>
          <!-- Reorder these if your country does things differently -->
          <street>14745 Lee Road</street>
          <city>Chantilly</city>
          <region>VA</region>
          <code>20151</code>
          <country>US</country>
          <!-- Can use two letter country code -->
        </postal>        
        <email>michael.h.cole@aero.org</email>  
        <uri>https://aerospace.org</uri>
      </address>
    </author>
   
    <author fullname="Sher Shah" initials="S." surname="Shah"> <!-- https://authors.ietf.org/en/rfcxml-vocabulary#author -->
    <!-- initials should not include an initial for the surname -->
    <!-- role="editor" is optional -->
    <!-- Can have more than one author -->
      
    <!-- all of the following elements are optional -->
      <organization>The Aerospace Corporation</organization> <!-- https://authors.ietf.org/en/rfcxml-vocabulary#organization -->
      <address> <!-- https://authors.ietf.org/en/rfcxml-vocabulary#address -->
        <postal>
          <!-- Reorder these if your country does things differently -->
          <street>14745 Lee Road</street>
          <city>Chantilly</city>
          <region>VA</region>
          <code>20151</code>
          <country>US</country>
          <!-- Can use two letter country code -->
        </postal>        
        <email>sher.shah@aero.org</email>  
        <uri>https://aerospace.org</uri>
      </address>
    </author>
   
    <date year="2026" /> 
    <!-- https://authors.ietf.org/en/rfcxml-vocabulary#date -->
    <!-- On draft subbmission:
         * If only the current year is specified, the current day and month will be used.
         * If the month and year are both specified and are the current ones, the current day will
           be used
         * If the year is not the current one, it is necessary to specify at least a month and day="1" will be used.
    -->

    <area>General</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <!-- "Internet Engineering Task Force" is fine for individual submissions.  If this element is 
          not present, the default is "Network Working Group", which is used by the RFC Editor as 
          a nod to the history of the RFC Series. -->
    
    <keyword>gps</keyword>
    <keyword>gnss</keyword>
    <keyword>authentication</keyword>
    <keyword>security</keyword>
    <keyword>chimera</keyword>
    <keyword>cbor</keyword>
    <keyword>cose</keyword>
     
    <!-- Multiple keywords are allowed.  Keywords are incorporated into HTML output files for 
         use by search engines. -->

    <abstract>
      <t>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.</t>
      
      <t>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.</t>
      
      <t>This specification also describes a streaming network protocol by which
      Fast Channel Chimera Marker Key Packages may be distributed over the Internet.</t>
    </abstract>
 
  </front>

  <middle>
    
    <section>
      <name>Introduction</name>
        <t>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.</t>
        <t>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.</t>
        
        <t>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.</t>
        
        <t>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)
        <xref target="RFC8949"> </xref><xref target="RFC9052"/> is used
        as the underlying message structure.</t>
        
        <t>Chimera is one of the experiments on the Air Force Research Lab
        Navigation Technology Satellite - 3 (NTS-3) <xref target="nts-3" />. An adaptation of
        Chimera is proposed for inclusion in a future GPS civil signal
        authentication service <xref target="ion-itm-2025" />.</t>
        
        <t>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:</t>
        <ul>
          <li>different FC Chimera keys for different signals
          (e.g., sets of PRNs on different cryptonets, or a test key for a signal under test)</li>
          <li>inclusion of multiple cryptoperiods-worth of FC Chimera keys (e.g., most recent N keys)</li>
          <li>Chimera keys for multiple constellations,
          in the case where a signal entity may be tasked with distribution
          of FC Chimera keys for multiple constellations (e.g., a GNSS core and
          a GNSS augmentation system operated by the same organization)</li>
        </ul>
        
        <t><xref target="common-items" /> specifies CBOR
        data items used within the FC Chimera Marker Key Package
        that are potentially useful for other GNSS applications
        that use GPS Time.</t>

        <t><xref target="fc-chimera-package" /> 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.</t>
        
        <t><xref target="network-protocol" /> 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.</t>

        <t><xref target="IANA" /> includes considerations
        for IANA assignment of values.</t>

        <t><xref target="Security" /> is reserved for 
        additional security considerations associated with the
        FC Chimera Marker Key Package and its use with a Chimera-enabled GNSS signal.</t>

        <t><xref target="appendix-examples" /> contains example FC Chimera Marker Key Packages.</t>

           
      <section>
        <name>Requirements Language</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
          "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
          RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
          interpreted as described in BCP 14 <xref target="RFC2119"/>
          <xref target="RFC8174"/> when, and only when, they appear in
          all capitals, as shown here.</t>
      </section>

    </section>
    
    <section anchor="common-items">
      <name>Common GNSS CBOR Data Items</name>
      
      <t>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 <xref target="IANA" />.</t>
      
      <section anchor="gps-time">
        <name>GPS Time</name>
        
        <t>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 <xref target="is-gps-200" />.
        GPS Time is encoded as an unsigned integer (Major Type 0),
        representing a whole number of GPS X1 epochs.</t>
        
        <t>GPS Time is also used by PNT services that
        are based on GPS time, such as Satellite Based Augmentation Systems.</t>
        
        <t>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).</t>
             
        <t>The GPS Time value SHALL be formatted as defined
        in Section 3.3.4 of IS-GPS-200 <xref target="is-gps-200" />.</t>
        
        <t>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).</t>
        <t>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.</t>
        
        <t>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).</t>
        
        <t>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.</t>       
      </section>
      
      <section anchor="gps-time-span">
        <name>GPS Time Span</name>
          <t>
            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. 
          </t>
          
          <t>A GPS Time Span is a two-element array (Major Type 4).
          The fields are defined as follows, in order:</t>
          <ul>
            <li>start_time: A GPS Time data item
            (<xref target="gps-time" />) representing the
            start of the time span.</li>
            <li>
              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 <xref target="is-gps-200" />).
            </li>
          </ul>
          
          <t>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).</t>
      </section>
        
    </section>
    
    <section anchor="fc-chimera-package">
      <name>Fast Channel Chimera Marker Key Package</name>
      
      <t>The FC Chimera Marker Key Package SHALL be a COSE_Sign1 structure, as described
      in <xref target="RFC9052" sectionFormat="of" section="4.2"/>.
      Metadata about the digital signature and payload
      are enclosed within the COSE header buckets, the payload
      is the FC Chimera Payload structure defined in <xref target="fc-chimera-payload"/>,
      and the signature is calculated over the protected header parameters and payload.</t>
      
      <t>The FC Chimera Marker Key Package is structured as a CBOR array
      consisting of the following four fields, in order:</t>
      
      <ul>
        <li>protected: As described in <xref target="cose-protected" /></li>
        <li>unprotected: As described in <xref target="cose-unprotected" /></li>
        <li>payload: As described in in <xref target="fc-chimera-payload"/></li>
        <li>signature: As described in <xref target="cose-signature" /></li>
      </ul>
       
      <t>The FC Chimera Marker Key Package MAY be identified with CBOR tag 18
      to explicitly indicate it is a COSE_Sign1 structure.</t>

      <section anchor="cose-protected">
          <name>COSE Protected Fields</name>
          
          <t>As defined in <xref target="RFC9052" sectionFormat="of" section="3"/>,
          the protected bucket is a byte string (bstr) wrapped CBOR map of parameters
          that are to be protected by the digital signature.</t>
          
          <t>The FC Chimera Marker Key Package SHALL include the following parameters
          within the protected bucket, using the labels and value encoding
          as defined in <xref target="RFC9052" sectionFormat="of" section="3.1"/>:</t>
          <ul>
              <li>
                alg: The algorithm value SHOULD be a digital signature algorithm
                defined in the COSE Header Parameters registry <xref target="IANA" />.
                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 <xref target="RFC5280" 
                sectionFormat="of" section="4.1.2.7" />).
              </li>
              <li>
                content type: The content type value SHALL be the
                CoAP Content Type assigned to the Fast Channel Chimera Payload
                (See <xref target="IANA" />).
                The content type encoding SHOULD use the integer representation
                for efficiency.
              </li>
          </ul>
          
          
      </section>
      
      <section anchor="cose-unprotected">
          <name>COSE Unprotected Fields</name>
          
          <t>As defined in <xref target="RFC9052" sectionFormat="of" section="3"/>,
          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.</t>
          
          <t>The FC Chimera Marker Key Package MAY include the following parameters
          within the unprotected bucket, using the labels and value encoding
          as defined in <xref target="RFC9052" sectionFormat="of" section="3.1"/>:</t>
          <ul>
              <li>
                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 <xref target="RFC5280" 
                sectionFormat="of" section="4.2.1.2" />.) 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.
              </li>
          </ul>
          
          <t>
            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.
          </t>        
      </section>
      
      <section anchor="fc-chimera-payload">
          <name >Fast Channel Chimera Payload</name>

          <t>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:</t>
          
          <ul>
            <li>
              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.
            </li>
            <li>
              timestamp: A GPS Time of when this FC Chimera Payload
              was generated, immediately before signature generation.
              (See <xref target="gps-time" />.)
            </li>
            <li anchor="fc-configurations">
              fc_configurations: a CBOR array (Major Type 4) of zero
              or more FC Chimera Configuration objects
              as defined in <xref target="fc-configuration" />.
              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.
            </li>
            <li>
                fc_key_entries: a CBOR array (Major Type 4) of one or more
                FC Chimera Key Entry objects,
                as defined in <xref target="fc-key-entry" />.
            </li>
          </ul>
          
          <t>A FC Chimera Payload MAY be tagged with the assigned
          CBOR Tag ID (See <xref target="IANA" />); however, its inclusion is
          redundant with the required content type within the protected header.</t>
          
          <t>The Fast Channel Chimera Payload, with or without tagging,
          is wrapped in a bstr in accordance with the COSE specification.</t>
          
          <t>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.</t>
          
          <t>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.</t>
          
          <section anchor="fc-key-entry">
            <name>Fast Channel Chimera Key Entry</name>
            
            <t>The FC Chimera Key Entry object contains a specific FC Chimera key
            and its associated metadata.</t>
            
            <t>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:</t>
            <ul>
                <li>gnss_ids: An integer or array of integers identifying
                which GNSS system or systems this key applies to, as described
                    in <xref target="fc-key-entry-gnss-ids" />.</li>
                <li>fc_service_status: An unsigned integer indicating
                    the service's status, as described in
                    <xref target="fc-key-entry-service-status" />.</li>
                <li>fc_cryptoperiod: The cryptoperiod of enclosed key,
                    as described in <xref target="fc-key-entry-cp" />.</li>
                <li>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
                <xref target="fc-key-entry-marker-alg" />.</li>
                <li>fc_marker_key_value: A byte string (Major Type 4) containing
                the value of the Chimera maker key, as described
                in <xref target="fc-key-entry-marker-key-value" />.</li>
                <li>
                  fc_configuration_indices: An array of unsigned integers
                  indicating which set of signals this key applies to,
                  as described further in
                  <xref target="fc-key-entry-configuration-indices" />.
                </li>
            </ul>

            <section anchor="fc-key-entry-gnss-ids">
              <name>GNSS IDs</name>
              
                <t>One or more unique GNSS IDs associated with this Key Entry.</t>
                
                <t>A single GNSS ID SHALL be encoded as an unsigned or negative integer.</t>
                
                <t>Multiple GNSS IDs SHALL be encoded an array of integers.</t>
                
                <t>See <xref target="gnss-id-definitions" /> 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.</t>
                
                <t>Although not a strict requirement, it is intended for positive
                GNSS ID value assignments in this specification to align with those defined in
                <xref target="is-gps-200" /> for the Integrity Support Message Packet
                to the extent possible.</t>
                
                <table anchor="gnss-id-definitions">
                  <name>Fast Channel Chimera Cryptoperiod and Configuration Formats by GNSS ID</name>
                  <thead>
                    <tr>
                      <th>GNSS ID</th>
                      <th>GNSS Name</th>
                      <th>FC Chimera Cryptoperiod Format</th>
                      <th>FC Chimera Configuration Format</th>
                    </tr>
                  </thead>
                  <tbody>
                    <tr>
                      <td>-24</td>
                      <td>NTS-3</td>
                      <td><xref target="gps-time-span" /></td>
                      <td>GPS FC Chimera Configuration <xref target="fc-configuration-gps" /></td>
                    </tr>
                    <tr>
                      <td>0</td>
                      <td>Reserved for Test</td>
                      <td>Unspecified</td>
                      <td>Unspecified</td>
                    </tr>
                    <tr>
                      <td>4</td>
                      <td>GPS</td>
                      <td><xref target="gps-time-span" /></td>
                      <td>GPS FC Chimera Configuration <xref target="fc-configuration-gps" /></td>
                    </tr>
                  </tbody>
                </table>                
            </section>
            
            <section anchor="fc-key-entry-service-status">
              <name>Fast Channel Chimera Service Status</name>
              
              <t>Fast Channel Chimera service statuses are defined in
              <xref target="fc-service-status" />.</t>
              
              <table anchor="fc-service-status">
                <name>Fast Channel Chimera Service Status Definitions</name>
                <thead>
                  <tr>
                    <th>Value</th>
                    <th>Name</th>
                    <th>Description of Status</th>
                  </tr>
                </thead>
                <tbody>
                  <tr>
                    <td>0</td>
                    <td>Unavailable</td>
                    <td>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.</td>
                  </tr>
                  <tr>
                    <td>1</td>
                    <td>Test</td>
                    <td>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.</td>
                  </tr>                
                  <tr>
                    <td>2</td>
                    <td>Operational</td>
                    <td>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 <xref target="fc-configuration" />).</td>
                  </tr>
                </tbody>
              </table>               
            </section>
            
            <section anchor="fc-key-entry-cp">
              <name>Fast Channel Cryptoperiod</name>
                <t>The cryptoperiod associated with this key.</t>

                <t>
                  The representation of cryptoperiod depends on the
                  GNSS Constellation. The defined GNSS IDs for this specification
                  and their respective Cryptoperiod Format are described in
                  <xref target="gnss-id-definitions" />.
                </t>
                
                <t>When gnss_ids is an array of multiple GNSS IDs, all enclosed
                GNSS IDs SHALL use the same fc_cryptoperiod format.</t>
                
                <t>
                  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.
                </t>
                
                <t>
                  The GPS Fast Channel Chimera Cryptoperiod is defined as a
                  GPS Time Span (See <xref target="gps-time-span" />).
                  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.
                </t>
            </section>
            
            <section anchor="fc-key-entry-marker-alg">
              <name>Fast Channel Marker Algorithm</name>
              
                <t>An integer identifying the cryptographic algorithm
                this FC Chimera marker key is to be used with.
                <xref target="chimera-marker-algs" /> identifies
                a list of supported
                Chimera marker algorithms and their encodings.</t>
                
              <t>
                <xref target="chimera-marker-algs" /> 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).           
              </t>
              
              <table anchor="chimera-marker-algs">
                <name>Fast Channel Chimera Marker Cipher Algorithms and Modes</name>
                <thead>
                  <tr>
                    <th>Marker Alg ID</th>
                    <th>Algorithm Name</th>
                    <th>Key Length (bytes)</th>
                    <th>References</th>
                  </tr>
                </thead>
                <tbody>
                  <tr>
                    <td>0</td>
                    <td>Reserved for Test</td>
                    <td>Any</td>
                    <td></td>
                  </tr>
                  <tr>
                    <td>1</td>
                    <td>AES-256 in Electronic Code Book (ECB)</td>
                    <td>32</td>
                    <td><xref target="nist-fips-197" /> <br />
                    <xref target="nist-sp-800-38a" /></td>
                  </tr>
                </tbody>
              </table>
                
                <t>
                  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
                  <xref target="gnss-id-definitions" />.
                </t>
                
                <t>
                  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 <xref target="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.
                </t>
            </section>
            
            <section anchor="fc-key-entry-marker-key-value">
              <name>Fast Channel Marker Key Value</name>
              
              <t>
                A byte string containing either a FC Chimera key of the appropriate length for the
                indicated algorithm or a zero-length byte string.
                <xref target="chimera-marker-algs" /> 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.
              </t>
              <t>
                When the fc_service_status is Unavailable, this field MAY
                be either zero or of a valid key length, at the implementor's
                choice.
              </t>
            </section>

            <section anchor="fc-key-entry-configuration-indices">
              <name>Fast Channel Chimera Configuration Indices</name>
                <t>
                  A Key Entry object includes within the fc_configuration_indices
                  field an array of zero or more unique index values into
                  fc_configurations (<xref target="fc-configurations" />) enclosed
                  earlier in the Payload. FC Configurations are incorporated
                  by reference, and identify which 
                  configuration(s) are associated with this key.
                </t>
                <t>
                  The fc_configurations field SHALL
                  be populated with at least one element when the fc_service_status
                  is any value other than Unavailable.
                </t>
                <t>
                  The fc_configurations array MAY
                  be a zero length array when the fc_service_status is Unavailable.
                </t>
                <t>
                  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.
                </t>
                <t>
                  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.
                </t>
            </section>

          </section>
          
          <section anchor="fc-configuration">
            <name>Fast Channel Chimera Configuration</name>
            
            <t>
              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.
            </t>
            <t>The FC Chimera Configuration objects are defined within the
            fc_configurations array near the start of the Payload (<xref target="fc-configurations" />),
            and then referenced by individual FC Chimera Key Entry
            objects within fc_configuration_indices (<xref target="fc-key-entry-configuration-indices" />).</t>
            
            <t>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 <xref target="gnss-id-definitions" />.</t>
            
            <t>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.
            </t>

            <section anchor="fc-configuration-gps" >
              <name>GPS Fast Channel Chimera Configuration</name>
              
              <t>The GPS FC Chimera Configuration object is a CBOR array
              of six items (major type of 4, value of 6):</t>
            
              <ul>
                <li>
                  gnss_id: The GNSS ID for this FC configuration object,
                  encoded as a single unsigned or negative integer.
                  See <xref target="gnss-id-definitions" /> for
                  a list of GNSS ID values and their definitions.
                </li>
                <li>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
                <xref target="fc-configuration-gps-prn" />.</li>
                <li>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 <xref target="gps-signal-type-mapping" />.</li>
                <li>signal_auth_status: an unsigned integer indicating
                the status for the identified
                signals on the identified PRNs as described in
                <xref target="fc-configuration-gps-signals" />.</li>
                <li>duty_factor: an unsigned integer between 1 and 7 inclusive,
                as defined within the applicable PNT signal in space
                interface specification.</li>
                <li>additional_fields: a map (major type 5) of zero
                or more additional field identifier-value pairs
                as defined in <xref target="fc-configuration-additional" />.
                </li>
              </ul>
              
              <section anchor="fc-configuration-gps-prn">
                <name>GPS PRN Mapping</name>
              
                <t> Mappings for the GPS Constellation are defined in
                <xref target="fc-configuration-gps-prn-table" />. The leftmost
                bit of the bstr is the MSB (Bit 7) of the first byte (Byte 0)
                of the bstr.</t>
                <t>The prn_mask bstr SHALL be encoded using the fewest
                bytes necessary as described in
                <xref target="fc-configuration-gps-mask-encoding" />.</t>
              
                <table anchor="fc-configuration-gps-prn-table">
                  <name>GPS PRN Mapping</name>
                  <thead>
                    <tr>
                      <th>Byte (0-indexed)</th>
                      <th>Bit 7 <br />MSB</th>
                      <th>Bit 6</th>
                      <th>Bit 5</th>
                      <th>Bit 4</th>
                      <th>Bit 3</th>
                      <th>Bit 2</th>
                      <th>Bit 1</th>
                      <th>Bit 0 <br />LSB</th>
                    </tr>
                  </thead>
                  <tbody>
                    <tr>
                      <td>0</td>
                      <td>PRN 1</td>
                      <td>PRN 2</td>
                      <td>PRN 3</td>
                      <td>PRN 4</td>
                      <td>PRN 6</td>
                      <td>PRN 6</td>
                      <td>PRN 7</td>
                      <td>PRN 8</td>
                    </tr>
                    <tr>
                      <td>1</td>
                      <td>PRN 9</td>
                      <td>PRN 10</td>
                      <td>PRN 11</td>
                      <td>PRN 12</td>
                      <td>PRN 13</td>
                      <td>PRN 14</td>
                      <td>PRN 15</td>
                      <td>PRN 16</td>
                    </tr>
                    <tr>
                      <td>2</td>
                      <td>PRN 17</td>
                      <td>PRN 18</td>
                      <td>PRN 19</td>
                      <td>PRN 20</td>
                      <td>PRN 21</td>
                      <td>PRN 22</td>
                      <td>PRN 23</td>
                      <td>PRN 24</td>
                    </tr>
                    <tr>
                      <td>3</td>
                      <td>PRN 25</td>
                      <td>PRN 26</td>
                      <td>PRN 27</td>
                      <td>PRN 28</td>
                      <td>PRN 29</td>
                      <td>PRN 30</td>
                      <td>PRN 31</td>
                      <td>PRN 32</td>
                    </tr>
                    <tr>
                      <td>4</td>
                      <td>PRN 33</td>
                      <td>PRN 34</td>
                      <td>PRN 35</td>
                      <td>PRN 36</td>
                      <td>PRN 37</td>
                      <td>PRN 38</td>
                      <td>PRN 39</td>
                      <td>PRN 40</td>
                    </tr>
                    <tr>
                      <td>5</td>
                      <td>PRN 41</td>
                      <td>PRN 42</td>
                      <td>PRN 43</td>
                      <td>PRN 44</td>
                      <td>PRN 45</td>
                      <td>PRN 46</td>
                      <td>PRN 47</td>
                      <td>PRN 48</td>
                    </tr>
                    <tr>
                      <td>6</td>
                      <td>PRN 49</td>
                      <td>PRN 50</td>
                      <td>PRN 51</td>
                      <td>PRN 52</td>
                      <td>PRN 53</td>
                      <td>PRN 54</td>
                      <td>PRN 55</td>
                      <td>PRN 56</td>
                    </tr>
                    <tr>
                      <td>7</td>
                      <td>PRN 57</td>
                      <td>PRN 58</td>
                      <td>PRN 59</td>
                      <td>PRN 60</td>
                      <td>PRN 61</td>
                      <td>PRN 62</td>
                      <td>PRN 63</td>
                      <td>Reserved</td>
                    </tr>
                  </tbody>
                </table>
                
              </section>

              <section anchor="fc-configuration-gps-signals">
                <name>GPS Signal Types</name>

                <t>The mapping of GPS signal types for the GPS FC Chimera Configuration
                format is defined in <xref target="gps-signal-type-mapping" />. 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.</t>

                <t>The signal_types_mask bstr SHALL be encoded using the fewest
                bytes necessary to indicate set signal types, as described in
                <xref target="fc-configuration-gps-mask-encoding" />.
                For the initial publication of this specification, only
                one byte has assigned values for bits in this mask.</t>

                <table anchor="gps-signal-type-mapping">
                  <name>GPS Signal Type Mapping</name>
                  <thead>
                    <tr>
                      <th>Byte (0-indexed)</th>
                      <th>Bit 7 <br />MSB</th>
                      <th>Bit 6</th>
                      <th>Bit 5</th>
                      <th>Bit 4</th>
                      <th>Bit 3</th>
                      <th>Bit 2</th>
                      <th>Bit 1</th>
                      <th>Bit 0 <br />LSB</th>
                    </tr>
                  </thead>
                  <tbody>
                    <tr>
                      <td>0</td>
                      <td>L1Cp</td>
                      <td>L2CL</td>
                      <td>L5Q</td>
                      <td>L1 C/A</td>
                      <td>Unas</td>
                      <td>Unas</td>
                      <td>Unas</td>
                      <td>Unas</td>
                    </tr>
                    <tr>
                      <td colspan="9">
                      L1Cp is defined in <xref target="is-gps-800" />. <br />
                      L2CL is defined in  <xref target="is-gps-200" />. <br />
                      L5Q is defined in <xref target="is-gps-705" />. <br />
                      L1 C/A is defined in <xref target="is-gps-200" />. <br />
                      Unas = Unassigned
                      </td>
                    </tr>
                  </tbody>
                </table>
              </section>

              <section anchor="fc-configuration-gps-status">
                <name>GPS Fast Channel Chimera Signal Authentication Status</name>
                
                <t>The signal_auth_status (GPS signal authentication status)
                is defined in <xref target="gps-signal-auth-status" />.</t>
                
                <table anchor="gps-signal-auth-status">
                  <name>GPS Fast Channel Chimera Signal Authentication Status Definitions</name>
                  <thead>
                    <tr>
                      <th>Value</th>
                      <th>Name</th>
                      <th>Description of FC Signal Authentication Status</th>                    
                    </tr>
                  </thead>
                  <tbody>
                    <tr>
                      <td>0</td>
                      <td>Test</td>
                      <td>
                        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.
                      </td>
                    </tr>
                    <tr>
                      <td>1</td>
                      <td>Unconfirmed</td>
                      <td>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.</td>                    
                    </tr>
                    <tr>
                      <td>2</td>
                      <td>Operational</td>
                      <td>Fast Channel Markers are confirmed to be using the enclosed key and configuration. Consumers
                      SHOULD use the enclosed Key Entry for these signals.
                      </td>                    
                    </tr>
                    <tr>
                      <td></td><td></td><td>All other values are unassigned.</td>
                    </tr>
                  </tbody>
                </table>
                
              </section>
              
              <section anchor="fc-configuration-gps-duty-factor">
                <name>GPS Fast Channel Duty Factor</name>
                <t>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.</t>
                <t>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.</t>
              </section>
              
              <section anchor="fc-configuration-additional">
                <name>GPS Fast Channel Configuraiton Additional Fields</name>
                <t>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
                <xref target="fc-configuration-additional-fields" />.</t>
                
                <table anchor="fc-configuration-additional-fields">
                  <name>GPS Fast Channel Chimera Configuration Additional Fields</name>
                  <thead>
                    <tr>
                      <th>field_id</th>
                      <th>Field Name</th>
                      <th>Field Definition and Valid Values</th>
                    </tr>
                  </thead>
                  <tbody>
                    <tr>
                      <td colspan="3">No additional fields are defined in this revision.</td>
                    </tr>
                  </tbody>
                </table>

              </section>
              
              <section anchor="fc-configuration-gps-mask-encoding">
                <name>GPS Bit Mask Encoding</name>
                <t>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:</t>
                <ul>
                  <li>A prn_mask in which PRNs 1 through 8 are set is encoded 
                  using a one-byte bstr (two bytes total).</li>
                  <li>A prn_mask in which PRNs 1 through 31 are set is encoded 
                  using a 4-byte bstr (five bytes total).</li>
                  <li>A prn_mask in which PRNs 1 through 40 are set is encoded 
                  sing a 5-byte bstr (six bytes total).</li>
                  <li>A prn_mask in which only PRN 34 is set is encoded 
                  using a 5-byte string (six bytes total).</li>
                </ul>
                <t>In the examples above, the "total" byte counts include the CBOR
                overhead byte containing the data type (bstr) and length.</t>

              </section>
            </section>
            
          </section>
          
      </section>
      
      <section anchor="cose-signature">      
        <name>COSE Signature</name>
        
        <t>The COSE signature enclosed within a Fast Channel Chimera Marker Key Package
        is generated as defined in <xref target="RFC9052" sectionFormat="of" section="4.4"/>.
        The signature length is dependent on the signature algorithm
        used, as identified
        within the COSE protected header (See <xref target="cose-protected" />).
        </t>
      </section>
      
    </section>
    
    <section anchor="network-protocol">
      <name>IP Network Distribution of FC Chimera Packages</name>

      <t>
        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 <xref target="RFC4607" /> are used because they
        allow for an efficient way to send packets to many systems.
      </t>
      <t>
        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).
      </t>
      <t>
        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.
      </t>
      <t>
        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 <xref target="IANA" />). 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.
      </t>

      <t>A Fast Channel Chimera key distribution multicast service SHALL use Source Specific Multicast as specified in <xref target="RFC4607" />.</t>

      <t>
        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.
      </t>

      <t>
        An operational Fast Channel Chimera key distribution multicast service SHALL use a source port number
        assigned by IANA, as proposed in <xref target="IANA" />.
        Test services MAY use alternate source ports designated for Experimentation or in the
        Dynamic Ports range as specified in <xref target="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.
      </t>

    </section>
    
    <section anchor="additional-protocol-requirements">
      <name>Additional Protocol Requirements and Recommendations</name>
      <t>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.</t>
      <section anchor="additional-protocol-requirements-consumers">
        <name>For Consumers</name>

        <t>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.</t>
        
        <t>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.</t>
        
        <t>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.</t>
        
      </section>
      <section anchor="additional-protocol-requirements-providers">
        <name>For Providers</name>
        <t>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).</t>
        <t>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.</t>    
      </section>
        
    </section>
    
    <section anchor="IANA">
    <!-- All drafts are required to have an IANA considerations section. See RFC 8126 for a guide.-->
      <name>IANA Considerations</name>
      <t>This document includes the following requests to
      Internet Assigned Numbers Authority (IANA):</t>
      
      <t>
        This document requests the assignment of CBOR Tag IDs within the CBOR Tags registry
        <xref target="iana-cbor-tags" /> for the following data items:
      </t>

      <table>
        <name>Proposed CBOR Tag IDs</name>
        <thead>
          <tr><th>Tag</th><th>Data Item</th><th>Semantics</th></tr>
        </thead>
        <tbody>
          <tr><td>65,472 (0xFFC0)</td><td>uint or array</td><td>GPS Time. See <xref target="gps-time" />.</td></tr>

          <tr><td>65,473 (0xFFC1)</td><td>array</td><td>GPS Time Span. See <xref target="gps-time-span" />.</td></tr>
            
          <tr><td>65,474 (0xFFC2)</td><td>array</td><td>Fast Channel Chimera Key Payload. See <xref target="fc-chimera-payload" />.</td></tr>            

          <tr><td>65,475 (0xFFC3)</td><td>COSE_Sign1</td><td>Fast Channel Chimera Marker Key Package. See <xref target="fc-chimera-package" />.</td></tr>            
        </tbody>
      </table>
      
      <t>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 <xref target="iana-coap" />.
      The experimental CoAP values used in the enclosed examples, and the proposed
      assignments, are as follows:</t>
 
       <table>
        <name>Experimental CoAP Content-Format IDs</name>
        <thead>
          <tr><th>Content Type &amp; Media Type (TBR)</th><th>Experimental ID</th><th>Proposed ID</th></tr>
        </thead>
        <tbody>
          <tr><td>application/gnss-fc-chimera-key-payload+cbor</td><td>65,474 (0xFFC2)</td><td>10,230</td></tr>
          <tr><td>application/gnss-fc-chimera-key-package+cose</td><td>65,475 (0xFFC3)</td><td>10,231</td></tr>
        </tbody>
      </table>

      <t>This document requests the assignment of the following within the Service Name and
      Transport Protocol Port Number Registry <xref target="iana-portnum" />:</t>
 
       <table>
        <name>Proposed Service Name and Transport Protocol Port Numbers</name>       
        <thead>
          <tr>
            <th>Service Name</th>
            <th>Port Number</th>
            <th>Transport Protocol</th>
            <th>Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>gnss-fcchimera</td>
            <td>10,230</td>
            <td>udp</td>
            <td>Global Navigation Satellite System Fast Channel Chimera key distribution (SSM)</td>
          </tr>
          <tr>
            <td>gnss-fcchimera2</td>
            <td>10,231</td>
            <td>udp</td>
            <td>Global Navigation Satellite System Fast Channel Chimera key distribution (SSM)</td>
          </tr>
          <tr>
            <td>gnss-fcchimera3</td>
            <td>10,232</td>
            <td>udp</td>
            <td>Global Navigation Satellite System Fast Channel Chimera key distribution (SSM)</td>
          </tr>
          <tr>
            <td>gnss-fcchimera4</td>
            <td>10,233</td>
            <td>udp</td>
            <td>Global Navigation Satellite System Fast Channel Chimera key distribution (SSM)</td>
          </tr>          
        </tbody>
      </table>

 
      <t>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.</t>

      <t>
      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
      <xref target="international-gnss-day" /> (October 23rd) 
      and the importance of the number 1023 to Position, Navigation, and Timing
      services.
      </t>
      <t>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 <xref target="network-protocol" />).</t>
      <t>
      By the same logic, CoAP content identifiers starting with
      10,230 are proposed.</t>
    </section>
    
    <section anchor="Security">
      <!-- All drafts are required to have a security considerations section. See RFC 3552 for a guide. -->
      <name>Security Considerations</name>
      <t>
        This section does not contain any additional security considerations.
      </t>
      
    </section>
    
    <!-- NOTE: The Acknowledgements and Contributors sections are at the end of this template -->
  </middle>

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
        <xi:include anchor="RFC8949" href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8949.xml"/>
        <xi:include anchor="RFC9052" href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9052.xml"/>
        <xi:include anchor="RFC5280" href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5280.xml"/>
        <xi:include anchor="RFC4607" href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4607.xml"/>        
        <xi:include anchor="RFC6335" href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6335.xml"/>
        
        <!-- The recommended and simplest way to include a well known reference -->
        
      </references>
 
      <references>
        <name>Informative References</name>
    
        <reference anchor="iana-cbor-tags" target="https://www.iana.org/assignments/cbor-tags/cbor-tags.xhtml">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags</title>
            <author>
              <organization>Internet Assigned Numbers Authority</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        
        <reference anchor="iana-coap" target="https://www.iana.org/assignments/core-parameters/core-parameters.xhtml#content-formats">
          <front>
            <title>Constrained RESTful Environments (CoRE) Parameters</title>
            <author>
              <organization>Internet Assigned Numbers Authority</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>        

        <reference anchor="iana-portnum" target="https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml">
          <front>
            <title>Service Name and Transport Protocol Port Number Registry</title>
            <author>
              <organization>Internet Assigned Numbers Authority</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>   

        <reference anchor="international-gnss-day" target="https://www.ion.org/news/internationalgnssday.cfm">
          <front>
            <title>International GNSS Day</title>
            <author>
              <organization>Institute of Navigation</organization>
            </author>
            <date year="2024"/>
          </front>
        </reference>

        <reference anchor="is-gps-200" target="https://www.gps.gov/technical/icwg/">
          <front>
            <title>IS-GPS-200N: NAVSTAR GPS Space Segment/Navigation User Segment Interfaces</title>
            <author>
              <organization>United States Government</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>

        <reference anchor="is-gps-705" target="https://www.gps.gov/technical/icwg/">
          <front>
            <title>IS-GPS-705J: NAVSTAR GPS Space Segment/ User Segment L5 Interfaces</title>
            <author>
              <organization>United States Government</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>
        
        <reference anchor="is-gps-800" target="https://www.gps.gov/technical/icwg/">
          <front>
            <title>IS-GPS-800J: NAVSTAR GPS Space Segment/ User Segment L1C Interfaces</title>
            <author>
              <organization>United States Government</organization>
            </author>
            <date year="2022"/>
          </front>
        </reference>        
        
        <reference anchor="nist-fips-197" target="https://csrc.nist.gov/pubs/fips/197/final">
          <front>
            <title>FIPS 197 Update 1: Advanced Encryption Standard (AES)</title>
            <author>
              <organization>United States National Institute of Standards and Technology</organization>
            </author>
            <date year="2023"/>
          </front>
        </reference>
        
        <reference anchor="nist-sp-800-38a" target="https://csrc.nist.gov/pubs/sp/800/38/a/final">
          <front>
            <title>NIST SP 800-38A: Recommendation for Block Cipher Modes of Operation </title>
            <author>
              <organization>United States National Institute of Standards and Technology</organization>
            </author>
            <date year="2001"/>
          </front>
        </reference>
        
        <reference anchor="nts-3" target="https://afresearchlab.com/technology/nts-3">
          <front>
            <title>Navigation Technology Satellite - 3 (NTS-3) </title>
            <author>
              <organization>Air Force Research Laboratory</organization>
            </author>
            <date year="2025"/>
          </front>
        </reference>
        
        <reference anchor="is-agt-100a" target="https://drive.google.com/file/d/1L9S9EW4KHVpSEpOsDSUcK2rw7ElMLXk5/view">
          <front>
            <title>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 </title>
            <author>
              <organization>Air Force Research Laboratory</organization>
            </author>
            <date year="2024"/>
          </front>
        </reference>
        
        <reference anchor="ion-itm-2025">
          <front>
            <title>Authentication of GPS Modernized Signals Using TESLA Chimera, In Proceedings of the 2025 Institute of Navigation Technical Interchange Meeting</title>
            <author initials="M. H." surname="Cole" fullname="M. H. Cole">
              <organization>The Aerospace Corporation</organization>
            </author>
            <author initials="J. T." surname="Gillis" fullname="J. T. Gillis">
              <organization>The Aerospace Corporation</organization>
            </author>
            <author initials="R. I." surname="Allen" fullname="R. I. Allen">
              <organization>The Aerospace Corporation</organization>
            </author>
            <author initials="A. H." surname="Hayden" fullname="A. H. Hayden">
              <organization>The Aerospace Corporation</organization>
            </author>                  
            <date year="2025"/>
          </front>
        </reference>        

      </references>
    </references>

    <section anchor="appendix-examples">
      <name>Examples</name>
      
      <section>
        <name>Test Certificate for Enclosed Examples</name>
        
        <t>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.</t>
        
        <artwork type="ascii-art" name="certificate.txt">
<![CDATA[
-----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-----
  ]]>
        </artwork>        
      </section>
      
      <section anchor="example-payload-1">
        <name>Simple Example: One NTS-3 Fast Channel Chimera Key</name>
        
        <t>
        The following is an example Fast Channel Chimera Payload
        (defined in <xref target="fc-chimera-payload"/>)
        using the First FC Chimera Key
        in the NTS-3 Test Vector from <xref target="is-agt-100a" />:
        </t>

        <artwork type="ascii-art" name="example-payload-1.txt">
<![CDATA[

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
      
]]>
        </artwork>
        
        <t>
        The resulting fully assembled Fast Channel Chimera Marker Key Package
        (defined in <xref target="fc-chimera-package"/>)
        containing this payload is as follows:
        </t>

        <artwork type="ascii-art" name="example-package-1.txt">
  <![CDATA[

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
  ]]>
          </artwork>
          
      </section>
      
      <section>
        <name>Consecutive NTS-3 Fast Channel Keys</name>
        
        <t>
        The following is an example Fast Channel Chimera Key Payload
        (defined in <xref target="fc-chimera-payload"/>)
        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.
        </t>

        <artwork type="ascii-art" name="example-payload-2.txt">
  <![CDATA[

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

  ]]>
          </artwork>
          
        <t>
        The resulting fully assembled Fast Channel Chimera Marker Key Package
        (defined in <xref target="fc-chimera-package"/>)
        containing this payload is as follows:
        </t>

        <artwork type="ascii-art" name="example-package-2.txt">
  <![CDATA[

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
  ]]>
          </artwork>          
      </section>
      
      <section>
        <name>Complex Example: Two GPS Cryptonets with Multiple Configuration Information Objects</name>
        
        <t>
        The following is an example Fast Channel Chimera Key Payload
        (defined in <xref target="fc-chimera-payload"/>)
        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.</t>
        
        <t>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.
        </t>
        
        <t>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.</t>

        <artwork type="ascii-art" name="example-payload-4.txt">
  <![CDATA[

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

  ]]>
          </artwork>
          
        <t>
        The resulting fully assembled Fast Channel Chimera Marker Key Package
        (defined in <xref target="fc-chimera-package"/>)
        containing this payload is as follows:
        </t>

        <artwork type="ascii-art" name="example-package-4.txt">
  <![CDATA[

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
            
  ]]>
          </artwork>              
      </section>

      <section>
        <name>Fast Channel Chimera Service Unavailable</name>
        
        <t>
        The following is an example Fast Channel Chimera Key Payload
        (defined in <xref target="fc-chimera-payload"/>)
        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).
        </t>

        <artwork type="ascii-art" name="example-payload-5.txt">
  <![CDATA[

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)

  ]]>
          </artwork>
          
        <t>
        The resulting fully assembled Fast Channel Chimera Marker Key Package
        (defined in <xref target="fc-chimera-package"/>)
        containing this payload is as follows:
        </t>

        <artwork type="ascii-art" name="example-package-5.txt">
  <![CDATA[

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
              
  ]]>
          </artwork>              
      </section>
      
    </section>

    <section anchor="Acknowledgements" numbered="false">
      <name>Acknowledgements</name>
      <t>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.</t>
    </section>
    
    <section anchor="Contributors" numbered="false">
      <!-- [REPLACE/DELETE] a Contributors section is optional -->
      <name>Contributors</name>
      <t>The authors would like to thank the following individuals
      for suggested edits that were incorporated into this document:</t>
      <ul>
        <li>Dr. Joseph J. Rushanan (The MITRE Corporation)</li>
        <li>Dr. Yeh-Ching "Brian" Tung (The Aerospace Corporation)</li>
        <li>Dr. James T. Gillis (The Aerospace Corporation)</li>
      </ul>

      <!-- [CHECK] it is optional to add a <contact> record for some or all contributors -->
    </section>
    
 </back>
</rfc>
