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

<front>
<title abbrev="Operator Privacy">UAS Operator Privacy for RemoteID Messages</title>
    <seriesInfo name="Internet-Draft" value="draft-moskowitz-drip-operator-privacy-18"/>
	<author fullname="Robert Moskowitz" initials="R" surname="Moskowitz">
    <organization>HTT Consulting</organization>
    <address>
      <postal> 
	    <street></street>
        <city>Oak Park</city>
        <region>MI</region>
        <code>48237</code>
        <country>USA</country>
      </postal>
      <email>rgm@labs.htt-consult.com</email>
	</address>
	</author>
	<author fullname="Stuart W. Card" initials="S." surname="Card">
	<organization>AX Enterprize</organization>
	<address>
	  <postal>
	    <street>4947 Commercial Drive</street>
	    <city>Yorkville</city>
	    <region>NY</region>
	    <code>13495</code>
	    <country>USA</country>
	  </postal>
	  <email>stu.card@axenterprize.com</email>
	</address>
	</author>
	<author fullname="Adam Wiethuechter" initials="A." surname="Wiethuechter">
	<organization>AX Enterprize</organization>
	<address>
	  <postal>
	    <street>4947 Commercial Drive</street>
	    <city>Yorkville</city>
	    <region>NY</region>
	    <code>13495</code>
	    <country>USA</country>
	  </postal>
	  <email>adam.wiethuechter@axenterprize.com</email>
	</address>
	</author>
<date year="2026" />
   <area>Internet</area>
   <workgroup>DRIP</workgroup>
    <keyword>RFC</keyword>
     <keyword>Request for Comments</keyword>
     <keyword>I-D</keyword>
     <keyword>Internet-Draft</keyword>
     <keyword>RID</keyword>
<abstract>
<t>
	This document describes a method of providing privacy for UAS 
	Operator/Pilot information specified in the ASTM UAS Remote ID and 
	Tracking messages.  This is achieved by encrypting, in place, those 
	fields containing Operator sensitive data using a hybrid ECIES.
</t>
</abstract>
</front>
<middle>   
<section numbered="true" toc="default"> <name>Introduction</name>
<t> 
	This document defines a mechanism to provide privacy in the ASTM 
	Remote ID  and Tracking messages <xref target="F3411-22a" 
	format="default"/> by encrypting, in place, those fields that 
	contain sensitive UAS Operator/Pilot information (i.e., personal 
	identifiable information, PII).  Encrypting in place means that the 
	ciphertext is exactly the same length as the cleartext, and 
	directly replaces it.
</t>
<t>
	An example of and an initial application of this mechanism is the 
	10 bytes of UAS Operator/Pilot (hereafter called simply Operator) 
	Longitude, Latitude, and Altitude location in the ASTM System 
	Message (Msg Type 0x4). This meets the <xref target="RFC9153" 
	format="default">Drip Requirements</xref>, Priv-01.
</t>
<t>
	It is assumed that the Operator, via the GCS, registers an 
	operation with its USS.  During this operation registration, the 
	GCS and USS exchange public keys and nonces to use in the hybrid 
	ECIES.  The USS key may be long lived, but the GCS key SHOULD be 
	unique to a specific operation. This provides protection if the 
	ECIES secret is exposed from prior operations.
</t>
<t>
	The USS public key MAY be its DET's key, but the GCS SHOULD be an 
	operation unique public key per above.  The GCS key MAY be an 
	operation specific DET's key.  Use of DETs is possible, as EdDSA 
	keys can be converted to X25519 keys per <xref 
	target="RFC7748">Curve25519</xref> by <xref 
	target="Ed25519_Curve25519"/>.  Or the GCS can convert the USS 
	DET's key, but send, during operation registration a unique 
	ephemeral X25519 key for use in the ECEIS key derivation.
</t>
<t>
	The actual Tracking message field encryption MUST be an "encrypt in 
	place" cipher.  There is rarely any room in the tracking messages 
	for a cipher IV or encryption MAC (AEAD tag).  There is rarely any 
	data in the messages that can be used as an IV.  The AES-CFB16 mode 
	of operation proposed here can encrypt a multiple of 2 bytes.
</t>
<t>
	The System Message is not a simple, one-time, encrypt the PII with 
	the ECIES derived key.  The Operator may move during a operation 
	and these fields change, correspondingly. Further, not all messages 
	will be received by the USS via Network Remote ID, so each 
	message's encryption must stand on its own and not be at risk of 
	attack by the content of other messages.
</t>
<t>
	Another candidate message is the optional ASTM Operator ID Message 
	(Msg Type 0x5) with its 20 character Operator ID field.  The 
	Operator ID does not change during an operation, so this is a 
	one-time encryption for the operation.  The same cipher SHOULD be 
	used for all messages from the UAS and this will influence the 
	cipher selection.
</t>
<t>
	Future applications of this mechanism may be provided.  The content 
	of the System Message may change to meet CAA requirements, 
	requiring encrypting a different amount of data.  At that time, 
	they will be added to this document.
</t>
<t>
	Editor note:  The Rules for allowing encryption need to be updated 
	to handle the UA operating in Broadcast Remote ID only mode.  That 
	is conditions where the USS cannot notify the UAS to stop 
	encrypting.
</t>
</section>
<section anchor="terms" numbered="true" toc="default"> <name>Terms and Definitions</name>
	<section numbered="true" toc="default"> <name>Requirements Terminology</name>
	<t>
		The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL 
		NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", 
		"MAY", and "OPTIONAL" in this document are to be interpreted as 
		described in BCP 14 <xref target="RFC2119" /> <xref 
		target="RFC8174" /> when, and only when, they appear in all 
		capitals, as shown here.
	</t>
	</section>
	<section numbered="true" toc="default"> <name>Definitions</name>
<t>
	See <xref target="RFC9153" section="2.2" format="default" /> for 
	common DRIP terms.
</t>
	  <dl newline="true" spacing="normal">
		<dt>ECIES</dt>
		<dd>
			Elliptic Curve Integrated Encryption Scheme.  A hybrid 
			encryption scheme which provides semantic security against 
			an adversary who is allowed to use chosen-plaintext and 
			chosen-ciphertext attacks.
		</dd>
        <dt>KMAC (KECCAK Message Authentication Code <xref 
			target="DOI_10.6028_NIST.SP.800-185" format="default"/>):</dt>
        <dd>
			A Pseudo Random Function (PRF) and keyed hash function 
			based on KECCAK.
		</dd>
	  </dl>
	</section>
</section>
<section anchor="Oper_Sec" numbered="true" toc="default"> <name>The Operator - USS Security Relationship</name>
<t>
	All CAAs have rules defining which UAS must be registered to 
	operate in their National Air Space (NAS).  This includes UAS and 
	Operator registration in a USS.  Further, operators are expected to 
	report flight operation intent and actual operations to their USS. 
	This operational intent provides a mechanism for the USS and 
	operator to establish an operation security context.  Here it will 
	be used to exchange public keys for use in ECIES.
</t>
<t>
	The UAS's ECIES public key SHOULD be unique for each operation; the 
	nonce MUST be unique. The USS ECIES public key may be unique for 
	each UAS and operation, but not required.  Regardless, the nonce 
	MUST be unique.  For best post-compromise security (PCS), the USS 
	ECIES public key should be changed over some operational window.
</t>
<t>
	The public key algorithm should be <xref 
	target="RFC7748">Curve25519</xref>.  Correspondingly, the ECIES 128 
	bit shared secret should be generated using <xref 
	target="DOI_10.6028_NIST.SP.800-185" format="default">KMAC</xref>.
</t>
<section anchor="USS_reg_incentive" numbered="true" toc="default"> <name>Using Operator Privacy as an Incentive to USS operation registration</name>
<t>
	UAS operation registration to its USS tends to be a time-consuming 
	process than burdens UAS operators with real expenses.  USS 
	owners/operators that facilitate operation registration will 
	monetize such services.  Correspondingly, operation registration 
	will be something that many operators will seek to avoid, impeding 
	regulatory compliance.  UAS operators need an incentive to comply.
</t>
<t>
	Such an incentive is indirectly available via the challenge 
	presented by the broadcast requirement to advertise operator 
	information.  That is, Broadcasted Operator ID and location present 
	a serious PII exposure threat, masked with a bit of denial that it 
	only occurs within the limited RF broadcast range.  In fact, 
	Broadcast RID messages are easy to harvest <xref 
	target="I-D.moskowitz-drip-crowd-sourced-rid" format="default"/> 
	both for input to NAS management (UTM) and potential unsavory UAS 
	operator tracking.  Moreover, such information, for the benefit of 
	safety officers that may need to identify and find operators, is 
	largely used for harm by facilitating others to locate the 
	operators.
</t>
<t>
	The operator information in the Broadcast RID messages can be 
	encrypted, in-place with no data overhead, as shown herein, where 
	authorized authorities can query the USS for the protected operator 
	data, or even get the securing session key to monitor a UA 
	operation.  The methodolgy covered here takes a conservative 
	approach to when encryption is allowed.  Regulators can use this to 
	more proactively protect this PII thus better incentivize operation 
	registration.
</t>
</section>
<section anchor="KMAC_Sec" numbered="true" toc="default"> <name>ECIES Shared Secret Generation</name>
<t>
	When the USS - UAS Operation Security Context is established, the 
	GCS provides the UA ID for the operation (null padded to 20 
	characters per <xref target="F3411-22a" format="default"/>), a 256 
	bit random nonce, and an ephemeral (or DET HI converted) X25519 key 
	to the USS.  These are inputs, along with the USS key and a 256 bit 
	random nonce to produce the shared secret as follows.
</t>
<t>
	A 64 bit UNIX timestamp from the USS for the operation time is also 
	included in the Operation Security Context.  This will be used in 
	the IV construction (as in <xref target="CFB16_opt" 
	format="default"/>).
</t>
<t>
	Per <xref target="DOI_10.6028_NIST.SP.800-56CR1" format="default"> </xref>, 
	Section 4.1, Option 3:
</t>
<figure anchor="kdf"> <name>ECIES Key Derivation Function</name>
<artwork name="" type="" align="left" alt="">
<![CDATA[
     OKM = KMAC128(salt, IKM, 128, S)

     Where
     
     IKM     = X25519 ECDH secret | USS ID | UAS ID
     salt    = Nonce-USS | Nonce-GCS
     S       = the byte string 01001011 | 01000100 | 01000110
                which is the characters "K", "D", and "F"
                in 8-bit ASCII.
]]>
</artwork>
</figure>
</section>
</section>
<section anchor="sys_msg" numbered="true" toc="default"> <name>System Message Privacy</name>
<t>
	The System Message contains 10 bytes of Operator specific 
	information: Longitude, Latitude and Altitude of the Remote Operator (Pilot 
	in the field description) of the UA. The GCS MAY encrypt these as 
	follows.
</t>
<t>
	The 10 bytes of Operator information are encrypted, using the ECIES 
	derived 128 bit shared secret, with one of the cipher's specified 
	below. The choice of cipher is based on USS policy and is agreed to 
	as part of the operation registration.  AES-CFB16 is the 
	recommended default cipher.
</t>
<t>
	ASTM Remote ID  and Tracking messages <xref target="F3411-22a" 
	format="default"/> SHOULD be updated to allow Bit 5 of the Flags 
	byte in the System Message set to "1" to indicate the Operator 
	information is encrypted.
</t>
<t>
	The USS similarly decrypts these 10 bytes and provides the 
	information to authorized entities.
</t>
<section anchor="Sys_Encrypt_rules" numbered="true" toc="default"> <name>Rules for encrypting System Message content</name>
<t>
	If the Operator location is encrypted the encrypted bit flag MUST 
	be set to 1.
</t>
<t>
	The Operator MAY be notified by the USS that the operation has 
	entered a location or time where privacy of Operator location is 
	not allowed.  In this case the Operator MUST disable this privacy 
	feature and send the location unencrypted or land the UA or route 
	around the restricted area.
</t>
<t>
	If the UAS loses connectivity to the USS, the privacy feature 
	SHOULD be disabled or land the UA.
</t>
<t>
	If the operation is in an area or time with no Internet 
	Connectivity, the privacy feature MUST NOT be used.
</t>
</section>
<section anchor="Sys_Decrypt_rules" numbered="true" toc="default"> <name>Rules for decrypting System Message content</name>
<t>
	An Observer receives a System Message with the encrypt bit set to 
	1.  The Observer sends a query to its USS Display Provider 
	containing the UA's ID and the encrypted fields.
</t>
<t>
	The USS Display Provider MAY deny the request if the Observer does 
	not have the proper authorization.
</t>
<t>
	The USS Display Provider MAY reply to the request with the 
	decrypted fields if the Observer has the proper authorization.
</t>
<t>
	The USS Display Provider MAY reply to the request with the 
	decrypting key if the Observer has the proper authorization.
</t>
<t>
	The Observer MAY notify the USS through its USS Display Provider 
	that content privacy for a UAS in this location/time is not 
	allowed.  If the Observer has the proper authorization for this 
	action, the USS notifies the Operator to disable this privacy 
	feature.
</t>
</section>
</section>
<section anchor="oper_msg" numbered="true" toc="default"> <name>Operator ID Message Privacy</name>
<t>
	The Operator ID Message contains the 20 byte Operator ID. The GCS 
	MAY encrypt these as follows.
</t>
<t>
	The 20 bytes Operator ID is encrypted, using the ECIES derived 128 
	bit shared secret, with one of the cipher's specified below. The 
	choice of cipher is based on USS policy and is agreed to as part of 
	the operation registration.  AES-CFB16 is the recommended default 
	cipher.
</t>
<t>
	ASTM Remote ID  and Tracking messages <xref target="F3411-22a" 
	format="default"/> SHOULD be updated to allow Operator ID Type in 
	the Operator ID Message set to "1" to indicate the Operator ID is 
	encrypted.
</t>
<t>
	The USS similarly decrypts these 20 bytes and provides the 
	information to authorized entities.
</t>
<section anchor="Oper_Encrypt_rules" numbered="true" toc="default"> <name>Rules for encrypting Operator ID Message content</name>
<t>
	If the Operator ID is encrypted the Operator ID Type field MUST be 
	set to 1.
</t>
<t>
	The Operator MAY be notified by the USS that the operation has 
	entered a location or time where privacy of Operator ID is not 
	allowed.  In this case the Operator MUST disable this privacy 
	feature and send the ID unencrypted or land the UA or route around 
	the restricted area.
</t>
<t>
	If the UAS loses connectivity to the USS, the privacy feature 
	SHOULD be disabled or land the UA.
</t>
<t>
	If the operation is in an area or time with no Internet 
	Connectivity, the privacy feature MUST NOT be used.
</t>
</section>
<section anchor="Oper_Decrypt_rules" numbered="true" toc="default"> <name>Rules for decrypting Operator ID Message content</name>
<t>
	An Observer receives a Operator ID Message with the Operator ID 
	Type field set to 1.  The Observer sends a query to its USS Display 
	Provider containing the UA's ID and the encrypted fields.
</t>
<t>
	The USS Display Provider MAY deny the request if the Observer does 
	not have the proper authorization.
</t>
<t>
	The USS Display Provider MAY reply to the request with the 
	decrypted fields if the Observer has the proper authorization.
</t>
<t>
	The USS Display Provider MAY reply to the request with the 
	decrypting key if the Observer has the proper authorization.
</t>
<t>
	The Observer MAY notify the USS through its USS Display Provider 
	that content privacy for a UAS in this location/time is not 
	allowed.  If the Observer has the proper authorization for this 
	action, the USS notifies the Operator to disable this privacy 
	feature.
</t>
</section>
</section>
<section anchor="ciphers" numbered="true" toc="default"> <name>Cipher choices for Operator PII encryption</name>
<section anchor="CFB16_opt" numbered="true" toc="default"> <name>Using AES-CFB16</name>
<t>
	CFB16 is defined in <xref target="DOI_10.6028_NIST.SP.800-38A" 
	format="default"> </xref>, Section 6.3.  This is the Cipher 
	Feedback (CFB) mode operating on 16 bits at a time.  This variant 
	of CFB can be used to encrypt any multiple of 2 bytes of cleartext.
</t>
<t>
	The Operator includes a 64 bit UNIX timestamp for the operation 
	time, along with its operation pubic key.  The Operator also 
	includes the UA MAC address (or multiple addresses if flying 
	multiple UA).
</t>
<t>
	The 128 bit IV for AES-CFB16  is constructed by the Operator and 
	USS as: SHAKE128(MAC|UTCTime|Message_Type, 128).  Inclusion of the 
	ASTM Message_Type ensures a unique IV for each Message type that 
	contains PII to encrypt.
</t>
<t>
	AES-CFB16 would then be used to encrypt the Operator information.
</t>
</section>
<section anchor="Feistel_opt" numbered="true" toc="default"> <name>Using a Feistel scheme</name>
<t>
	If the encryption speed doesn't matter, we can use the following 
	approach based on the Feistel scheme. This approach is already 
	being used in format-preserving encryption (e.g. credit card 
	numbers).  The Feistal scheme is explained in <xref 
	target="Feistel" format="default"/>.
</t>
</section>
<section anchor="CTR_opt" numbered="true" toc="default"> <name>Using AES-CTR</name>
<t>
	If 2 bytes of the Message can be set aside to contain a counter 
	that is incremented each time the Operator information changes, 
	AES-CTR can be used as follows.
</t>
<t>
	The Operator includes a 64 bit UNIX timestamp for the operation 
	time, along with its operation pubic key.  The Operator also 
	includes the UA MAC address (or multiple addresses if flying 
	multiple UA).
</t>
<t>
	The high order bits of an AES-CTR counter is constructed by the 
	Operator and USS as: SHAKE128(MAC|UTCTime|Message_Type, 112).  
	Inclusion of the ASTM Message_Type ensures a unique IV for each 
	Message type that contains PII to encrypt.
</t>
<t>
	AES-CTR would then be used to encrypt the Operator information.
</t>
</section>
</section>

<section anchor="Reqs" numbered="true" toc="default"> <name>DRIP Requirements addressed</name>
<t>
	This document provides solution to PRIV-1 and PRIV-2 for PII in the 
	ASTM System Message.
</t>
</section>
<section anchor="ASTM" numbered="true" toc="default"> <name>ASTM Considerations</name>
<t>
	  ASTM will need to make the following changes to the "Flags" in 
	  the System Message (Msg Type 0x4):
</t>
	<dl newline="true">
		<dt>Bit 5:</dt>
		<dd>
			Value 1 for encrypted; 0 for cleartext (see <xref 
			target="sys_msg" format="default"/>).
		</dd>
	</dl>
<t>
	  ASTM will need to make the following changes to the "Operator ID 
	  Type" in the Operator ID Message (Msg Type 0x5):
</t>
	<dl newline="true">
		<dt>Operator ID Type</dt>
		<dd>
			Value 1 for encrypted Operator ID (see <xref 
			target="oper_msg" format="default"/>).
		</dd>
	</dl>
</section>
<section anchor="IANA" numbered="true" toc="default"> <name>IANA Considerations</name>
<t>
	None
</t>
</section>
<section numbered="true" toc="default"> <name>Security Considerations</name>
<t>
	An attacker has no known text after decrypting to 
	determine a successful attack.  An attacker can make assumptions 
	about the high order byte values for Operator Longitude and 
	Latitude that may substitute for known cleartext.  There is no 
	knowledge of where the operator is in relation to the UA.  Only if 
	changing location values "make sense" might an attacker assume to 
	have revealed the operator's location.
</t>
<section anchor="key_reuse" numbered="true" toc="default"> <name>Reuse of old keys</name>
<t>
	There is the risk of use of old keys by a UA operator.  This is 
	when the operator goes through the process of requesting a key from 
	its USS, but then uses this key in future operations without 
	registering the operation to the USS and getting a new key.  There 
	are many reasons a UA operator may choose this mode of behavior, 
	but it goes contrary to many aspects of CAA UAS Conops.
</t>
<t>
	There is little direct action a USS can have to get compliance from 
	the UA operator on appropriate use of an Operator PII protection 
	key.  Perhaps the only effective approach is to publish a key once 
	its authorized lifetime has expired.  There are many ways a USS can 
	do this publication and make this known; it is out of scope here.
</t>
<t>
	A downside to this publication approach is it defeats historical 
	protection of PII protection of this broadcasted information and 
	should be viewed as a last approach.  Although it does provide a 
	strong stick to the carrot of protecting PII.  That is, use the key 
	according to the agreed upon usage rules.
</t>
</section>
<section anchor="CFB_risk" numbered="true" toc="default"> <name>CFB16 Risks</name>
<t>
	Using the same IV for different Operator information values with 
	CFB16 presents a cyptoanalysis risk.  Typically only the low order 
	bits would change as the Operators position changes.  The risk is 
	mitigated due to the short-term value of the data.  Further 
	analysis is need to properly place risk.
</t>
</section>
<section anchor="Agile" numbered="true" toc="default"> <name>Crypto Agility</name>
<t>
	The ASTM Remote ID Messages do not provide any space for a crypto 
	suite indicator or any other method to manage crypto agility.
</t>
<t>
	There can be different crypto pieces for components for different 
	DET OGAs.  For example, a document specifying Operator Privacy for 
	DETs with an OGA=2 (ECDSA/SHA-384) would probably use SHA/HMAC 
	rather than SHAKE/KMAC.
</t>
<t>
	All other aspects of crypto agility is left to the USS policy and 
	the relation between the USS and operator/UAS.  The selection of 
	the ECIES public key algorithm, the shared secret key derivation 
	function, and the actual symmetric cipher used for on the System 
	Message are set by the USS which informs the operator what to do.
</t>
</section>
<section anchor="keymat_security" numbered="true" toc="default"> <name>Key Derivation vulnerabilities</name>
<t>
	<xref target="RFC7748" format="default"/> warns about using 
	Curve25519 and Curve448 in Diffie-Hellman for key derivation:
</t>
<t>
	Designers using these curves should be aware that for each public 
	key, there are several publicly computable public keys that are 
	equivalent to it, i.e., they produce the same shared secrets.  Thus 
	using a public key as an identifier and knowledge of a shared 
	secret as proof of ownership (without including the public keys in 
	the key derivation) might lead to subtle vulnerabilities.
</t>
<t>
	This applies here, but may have broader consequences.  Thus two 
	endpoint IDs are included with the Diffie-Hellman secret.
</t>
</section>
<section anchor="KMAC_security" numbered="true" toc="default"> <name>KMAC Security as a KDF</name>
<t>
	Section 4.1 of <xref target="DOI_10.6028_NIST.SP.800-185" 
	format="default">NIST SP 800-185</xref> states:
</t>
<t>
	"The KECCAK Message Authentication Code (KMAC) algorithm is a PRF 
	and keyed hash function based on KECCAK . It provides 
	variable-length output"
</t>
<t>
	That is, the output of KMAC is indistinguishable from a random 
	string, regardless of the length of the output.  As such, the 
	output of KMAC can be divided into multiple substrings, each with 
	the strength of the function (KMAC128 or KMAC256) and provided that 
	a long enough key is used, as discussed in <xref 
	target="DOI_10.6028_NIST.SP.800-185" format="default"/>, Section 
	8.4.1.
</t>
<t>
	For example KMAC128(K, X, 512, S), where K is at least 128 bits, 
	can produce 4 128 bit keys each with a strength of 128 bits.  That 
	is a single sponge operation is replacing perhaps 5 HMAC-SHA256 
	operations (each 2 SHA256 operations) in HKDF.
</t>
</section>
</section>
</middle>
<back>
<displayreference target="I-D.moskowitz-drip-crowd-sourced-rid" to="drip-crowd-sourced-rid"/>
<!-- <displayreference target="DOI_10.6028_NIST.FIPS.202" to="NIST.FIPS.202"/> -->
<displayreference target="DOI_10.6028_NIST.SP.800-185" to="NIST.SP.800-185"/>
<displayreference target="DOI_10.6028_NIST.SP.800-38A" to="NIST.SP.800-38A"/>
<displayreference target="DOI_10.6028_NIST.SP.800-56CR1" to="NIST.SP.800-56Cr1"/>
<references title="Normative References">
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
<!--	<xi:include href="https://bib.ietf.org/public/rfc/bibxml7/reference.DOI.10.6028/NIST.FIPS.202.xml"/> -->
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml7/reference.DOI.10.6028/NIST.SP.800-185.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml7/reference.DOI.10.6028/NIST.SP.800-38A.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml7/reference.DOI.10.6028/NIST.SP.800-56Cr1.xml"/>
</references>
<references title="Informative References">
<!--	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5869.xml"/> -->
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7748.xml"/>
	<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9153.xml"/>
	<xi:include href="https://datatracker.ietf.org/doc/bibxml3/draft-moskowitz-drip-crowd-sourced-rid.xml"/>
	<reference anchor="F3411-22a"  target="https://www.astm.org/f3411-22a.html">
		<front>
			<title>Standard Specification for Remote ID and Tracking - F3411−22a</title>
			<author><organization>ASTM International</organization></author>
			<date month="07" year="2022" />
		</front>
	</reference>
	<reference anchor="Ed25519_Curve25519"  target="https://libsodium.gitbook.io/doc/advanced/ed25519-curve25519">
		<front>
			<title>Ed25519 to Curve25519</title>
			<author><organization>Libsodium Documentation</organization></author>
			<date year="2021"/>
		</front>
	</reference>
</references>
<section anchor="Feistel" numbered="true" toc="default"> <name>Feistel Scheme</name>
<t>
	This approach is already being used in format-preserving encryption.
</t>
<t>
	According to the theory, to provide CCA security guarantees (CCA = 
	Chosen Ciphertext Attacks) for m-bit encryption X |-> Y, we should 
	choose d >= 6. It seems very inefficient that when shortening the 
	block length, we have to use 6 times more block encryptions. On the 
	other hand, we preserve both the block cipher interface and 
	security guarantees in a simple way.
</t>
<artwork name="" type="" align="left" alt="">
<![CDATA[

How to encrypt an m-bit plaintext X using an n-bit block cipher 
    E = {E_K} for n > m?

    Enc(X, K):
      1. Y <- X.
      2. Split Y into 2 equal parts: Y = Y1 || Y2 
      (let us assume for simplicity that m is even).
      3. For i = 1, 2, ..., d do: 
        Y <- Y2 || (Y1 ^ first_m/2_bits(E_K(Y2 || Ci)), 
      where Ci is a (n - m/2)-bit round constant.
      4. Y <- Y2 || Y1.
      5. Return Y.
    
    Dec(Y, K):
      1. X <- Y.
      2. Split X into 2 equal parts: X = X1 || X2.
      3. For i = d, ..., 2, 1 do: 
        X <- X2 || (X1 ^ first_m/2_bits(E_K(X2 || Ci)).
      4. X <- X2 || X1.
      5. Return X.

]]>
</artwork>
</section>
<section numbered="false" toc="default"> <name>Acknowledgments</name>
<t>
	The recommended ciphers come from discussions on the IRTF CFRG 
	mailing list.
</t>
</section>
</back>
</rfc>
