<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.29 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-thomson-ppm-dap-dp-ext-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="DAP DP Extensions">Distributed Aggregation Protocol (DAP) Extensions for Improved Application of Differential Privacy</title>
    <seriesInfo name="Internet-Draft" value="draft-thomson-ppm-dap-dp-ext-01"/>
    <author fullname="Martin Thomson">
      <organization>Mozilla</organization>
      <address>
        <email>mt@lowentropy.net</email>
      </address>
    </author>
    <date year="2025" month="July" day="01"/>
    <area>Security</area>
    <workgroup>Privacy Preserving Measurement</workgroup>
    <keyword>decibels</keyword>
    <keyword>replay</keyword>
    <abstract>
      <?line 43?>

<t>The Distributed Aggregation Protocol (DAP) can be a key component
of a system that provides differentially-private guarantees
for participants.
Extensions to DAP are defined to support these guarantees.
This includes bindings of reports to specific options,
so that the aggregation service can better implement privacy budgeting
and replay protections.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://martinthomson.github.io/dap-dp-ext/draft-thomson-ppm-dap-dp-ext.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-thomson-ppm-dap-dp-ext/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Privacy Preserving Measurement Working Group mailing list (<eref target="mailto:ppm@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/ppm/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/ppm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/martinthomson/dap-dp-ext"/>.</t>
    </note>
  </front>
  <middle>
    <?line 53?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The Distributed Aggregation Protocol (DAP) <xref target="DAP"/>
can be used as part of a differentially-private system.</t>
      <t>Differential privacy depends on being able to limit the contributions
from participants.
The basic mechanism that DAP uses to cap contributions is anti-replay.
Aggregators are responsible for ensuring that
the same report cannot be aggregated more than once.
An honest participant will contribute a limited number of reports
and can rely on at least one aggregator
preventing that report from being used multiple times.
(The threat model does not seek to protect the privacy of a dishonest participant.)</t>
      <t>This basic anti-replay mechanism allows DAP
to provide caps on contributions.
The resulting system is somewhat inflexible,
which can limit the applicability of the protocol
outside of the narrowly-defined usage modes in the basic specification.</t>
      <t>This document defines several report extensions to DAP
that either enable greater flexibility
or help constrain the flexibility allowed by other options.</t>
      <t>This document also defines a task provisioning extension
(see <xref section="3.3" sectionFormat="of" target="TASKPROV"/>)
that lists the report extensions
that need to included in every report.
This ensures that the task is correctly configured
to recognize these report extensions.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" 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>
      <?line -18?>

</section>
    <section anchor="late-bind">
      <name>Late Task Binding</name>
      <t>DAP presently requires that a client be aware of the task that it is contributing to.
The identity of the task is bound to each report
through the inclusion of the task ID in the call to the sharding function
of the VDAF (<xref section="5.1" sectionFormat="of" target="VDAF"/>).</t>
      <t>The late_binding report extension
(codepoint 0xTBD)
signals to aggregators that a report was not bound to a specific task
when it was created.</t>
      <t>Late task binding might be useful
when reports are collected by an intermediary.
The client that generates the report in this case
might be unaware
of how the report will ultimately be aggregated.
This allows the intermediary to defer the creation of a task
until it has determined the necessary parameters for the task.</t>
      <t>When sharding and protecting reports,
the task ID is replaced with a the fixed, 32-byte sequence of
b13e8440f1cdb4da51eed3967e0a2652d27f5005bc35f751daf188b4b746708b
(in hex).</t>
      <aside>
        <t>This is the output from SHA-256 <xref target="SHA2"/>
when passed an ASCII-encoded <xref target="ASCII"/> input of
'no task_id'.</t>
      </aside>
      <t>Enforcing anti-replay for a report
that is not bound to a specific task
is challenging.
An aggregator cannot constrain its search for duplicate reports
to those that were submitted to the task.
This could greatly increase the cost of meeting anti-replay requirements.
The intent with this extension is that additional constraints,
such as one or more of the scoping extensions (see <xref target="scoping"/>),
will be used to make it more feasible
for an aggregator to comply with anti-replay requirements.</t>
    </section>
    <section anchor="scoping">
      <name>Scoping Extensions</name>
      <t>The DAP report extensions in this section might be used to either
constrain the use of reports
for tasks that are configured with matching values
or group reports for the purposes of detecting duplicates.</t>
      <t>Including additional scoping information can also
ensure that reports do not get reused
outside of their intended scope.</t>
      <t>This section defines report extensions that carry
requester identity (<xref target="requester"/>)
and report partition (<xref target="partition"/>).</t>
      <section anchor="requester">
        <name>Requester (Website) Identity</name>
        <t>Reports might be requested by
an entity that operates at lower trust level than
the entity that assembles the report.
The entity at the lower trust level
might not have access to the information necessary
to generate the report.</t>
        <t>The requester_identity report extension
(codepoint 0xTBD)
contains an encoding of the entity
that requested the report be created.</t>
        <t>For example, an application could ask the operating system
to generate a report
using information that would normally be withheld from it.
Similarly, a website could ask a web browser to generate a report
based on otherwise secret information.
In either case,
the release of information for report
is conditional on it only being used
by a specific aggregation service
under terms that have been previously established
with the aggregators.
Binding the report to the identity of the requester
ensures that any use of the system can be accounted for
as coming from that requester.</t>
        <t>The specific encoding used in this extension
will depend on the application.
This extension therefore contains a sequence of application-defined bytes.
However, the use of a globally-unique identifier,
such as an origin (<xref target="ORIGIN"/>)
or serialized site (<xref target="SITE"/>),
reduces the likelihood of name collisions.
A name collision might either allow two requesters
that share an aggregator
to share and reuse each others reports
(or perhaps to marginally increase the odds
of having reports spuriously detected duplicates).</t>
      </section>
      <section anchor="partition">
        <name>Report Partition</name>
        <t>This extension allows a client to bind a report
to an application-defined label.
This allows applications to partition reports
and have each partition managed separately.</t>
        <t>The report_partition report extension
(codepoint 0xTBD)
contains an application-defined sequence of bytes.</t>
        <t>The use of this report extension allows aggregators
to partition their state for tracking reports.
Duplicate reports only need to be tracked
across a matching partition,
for detecting duplicates within a task
or for detecting duplicates across tasks.</t>
        <t>The selection of partition values might need
to be coordinated with aggregators.
If partitions are used by aggregators,
the amount of state the aggregator tracks
is increased by the number of partitions.
This represents an increase in total storage,
in exchange for reducing the scope
over which that storage needs to be consistent.</t>
        <t>An aggregator could constrain the values
that are accepted for this extension,
rejecting reports that lack the extension
or have disallowed values.</t>
      </section>
    </section>
    <section anchor="budget">
      <name>Privacy Budget Consumption</name>
      <t>The gathering of reports can be modeled
as the expenditure of privacy budget by a client.
That is, clients treat the creation of a report
from private information
as a limited release of information.</t>
      <t>Total privacy loss in this case is determined
by the combination of two factors:</t>
      <ul spacing="normal">
        <li>
          <t>How the report is aggregated.</t>
        </li>
        <li>
          <t>How many reports are produced.</t>
        </li>
      </ul>
      <t>If aggregation includes the application of
an appropriate differential privacy mechanism
(that is, added noise;
see <xref target="DWORK"/>,
<xref target="DAP-DP"/>,
and <xref section="8.5" sectionFormat="of" target="DAP"/>),
the client might rely on an understanding of that mechanism
to model privacy loss.
However, without finer controls,
clients need to attribute a fixed privacy loss
to each report.
Consequently, the client needs to
limit the number of reports it generates.</t>
      <t>A budget ensures that the total privacy loss can be bounded
while providing more flexibility in how reports are constructed.
Privacy loss associated with any report
(or information release)
can be adjusted.
Importantly, the amount of noise added to aggregates
is based on the expended budget.
In general,
spending more privacy budget means that less noise is needed
to maintain the same level of privacy;
conversely, spending less budget means more noise.</t>
      <t>A budget might be specified in terms of a metric
(like the epsilon parameter in (ε, δ)-differential privacy)
that is expended with each information release.</t>
      <t>For example, for an overall budget of ε=10
might be split four ways: (0.5, 1.5, 2, 6).
Noise might then be added,
drawing from a distribution
with a width inversely proportional to the budget spent;
that is, a distribution with a standard deviation proportional to
2, 2/3, 1/2, and 1/6 respectively.</t>
      <t>This extension gives clients the ability to manage privacy budget expenditure.
By binding the amount of budget spent to each report,
the client can transfer responsibility
for applying differential privacy
to the aggregation service.
The addition of noise by the aggregation service
can ensure a better trade-off between
the amount of added noise
and privacy parameters.</t>
      <section anchor="privacy-budget-report-extension-format">
        <name>Privacy Budget Report Extension Format</name>
        <t>The privacy_budget report extension
(codepoint 0xTBD)
encodes the amount of privacy budget
that the client considers to be expended
as a result of producing a report.</t>
        <t>The value of the codepoint is
an encoding of the number of micro-epsilons
of budget that are expended,
using as many bytes as needed to encode the value
in network byte order.
Each unit is a one-millionth of an epsilon (ε) as used in
(ε, δ)-differential privacy.</t>
        <t>The micro-epsilon value is encoded as a 32-bit integer
in network byte order.
This permits the expenditure of up to ε=4294.967295.</t>
        <aside>
          <t>Note(1): Where the delta (δ) value is non-zero,
and small epsilon increments can be expended,
clients might also need to limit the number of reports
to prevent the overall delta value from getting large.</t>
        </aside>
        <aside>
          <t>Note(2): A separate report extension could be defined
to change the scale of this value
or switch to a different unit, as necessary.</t>
        </aside>
      </section>
      <section anchor="privacy-budget-usage">
        <name>Privacy Budget Usage</name>
        <t>An aggregator that is configured to apply
a differential privacy mechanism can operate in one of two modes:
either one where the privacy budget value is validated
and reports that contain a small value are rejected;
or, where the minimum privacy budget value is used
to determine the parameters for the differential privacy mechanism.</t>
        <t>In the first mode,
aggregators each validate this parameter
as part of validating each report.
The value in the report is compared
with the value configured for the task.
A report that contains a value that is
lower than the value configured for the task
is the result of a client that expects that
the aggregators will add more noise
than the task configuration presently allows.
Aggregators <bcp14>MUST</bcp14> reject reports with a privacy budget value
that is smaller than their configured privacy budget.</t>
        <t>Alternatively,
aggregators could adjust the parameters
of the differential privacy mechanism they use
to match the smallest privacy budget that was
included in reports.
For long-running tasks that produce multiple outputs over time,
it is only necessary to ensure that each output
contain noise that is based on the minimum budget expenditure
of the reports that are included in that aggregate.</t>
        <t>This report extension can be used
to protect reports that are conveyed from client
by untrusted entities,
especially where those entities might be able to choose any task,
as enabled by the late_binding report extension (<xref target="late-bind"/>).
This parameter ensures that the entity cannot direct reports
to a task that has an inadequate differential privacy mechanism.</t>
      </section>
    </section>
    <section anchor="report-extensions">
      <name>Task Configuration Extensions</name>
      <t>DAP tasks that are created with the DAP task configuration extension
<xref target="TASKPROV"/>
can set constraints on the reports that are accepted for a task.</t>
      <sourcecode type="tls-syntax"><![CDATA[
enum {
  single_requester (0xTBD),
  task_budget (0xTBD),
  (2^16-1)
} ExtensionType;

uint16 ReportExtensions<2..2^16-2>;
]]></sourcecode>
      <t>Analogues of the
requester_identity (<xref target="requester"/>) and
privacy_budget (<xref target="budget"/>)
report extensions are defined.
These task provisioning extensions ensure that reports submitted to the task
include the corresponding report extensions and
ensure that reports with invalid values are rejected.</t>
      <section anchor="single-requester">
        <name>Single Requester Task Extension</name>
        <t>This single_requester task provisioning extension contains the identity of a requester.
The format of this is identical to the requester_identity report extension;
see <xref target="requester"/>.</t>
        <t>Use of this extension indicates that all reports
submitted to the task <bcp14>MUST</bcp14> include a requester_identity report extension
with the specified value.
All reports that omit that extension
or contain a different value
<bcp14>MUST</bcp14> be rejected.</t>
      </section>
      <section anchor="task-budget">
        <name>Privacy Budget Task Extension</name>
        <t>The task_budget task provisioning extension contains the maximum privacy budget
that can be expended on the task.
The value is encoded identically to the privacy_budget report extension;
see <xref target="budget"/>.</t>
        <t>The task_budget task provisioning extension both
establishes a requirement for reports to include the privacy_budget report extension
and sets an upper bound on the amount of privacy budget that can be expended.
Reports that contain no privacy_budget report extension
or those that contain a privacy_budget report extension value
larger than the value in the task_budget extension
<bcp14>MUST</bcp14> be rejected.</t>
        <t>The value of this extension can be used
to determine privacy budget expenditure (if centrally managed)
or to set noise parameters.
Aggregators could also use the maximum value
across all submitted reports, if that value is lower.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Security factors specific to each extension
is enumerated in the respective sections:
<xref target="late-bind"/>,
<xref target="requester"/>,
<xref target="partition"/>,
and <xref target="budget"/>.</t>
      <t>Use of DAP is subject to the security considerations
of DAP (<xref section="8" sectionFormat="of" target="DAP"/>)
and the VDAF that is in use (<xref section="9" sectionFormat="of" target="VDAF"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document registers extensions in the "Report Extension Identifiers" registry
established in <xref section="9.2.2" sectionFormat="of" target="DAP"/>.</t>
      <t>The new registrations are listed in <xref target="t-dap-ext"/>.</t>
      <table anchor="t-dap-ext">
        <name>DAP Extensions</name>
        <thead>
          <tr>
            <th align="left">Value</th>
            <th align="left">Name</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">TBD</td>
            <td align="left">late_binding</td>
            <td align="left">
              <xref target="late-bind"/></td>
          </tr>
          <tr>
            <td align="left">TBD</td>
            <td align="left">requester_identity</td>
            <td align="left">
              <xref target="requester"/></td>
          </tr>
          <tr>
            <td align="left">TBD</td>
            <td align="left">partition</td>
            <td align="left">
              <xref target="partition"/></td>
          </tr>
          <tr>
            <td align="left">TBD</td>
            <td align="left">privacy_budget</td>
            <td align="left">
              <xref target="budget"/></td>
          </tr>
        </tbody>
      </table>
      <t>This document registers the <tt>report_extensions</tt> task provisioning extension
in the "Taskbind Extensions" registry
established in <xref section="7.2" sectionFormat="of" target="TASKPROV"/>:</t>
      <table anchor="t-dap-taskprov-ext">
        <name>Task Provisioning Extensions</name>
        <thead>
          <tr>
            <th align="left">Value</th>
            <th align="left">Name</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">TBD</td>
            <td align="left">single_requester</td>
            <td align="left">
              <xref target="single-requester"/></td>
          </tr>
          <tr>
            <td align="left">TBD</td>
            <td align="left">task_budget</td>
            <td align="left">
              <xref target="task-budget"/></td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="DAP">
          <front>
            <title>Distributed Aggregation Protocol for Privacy Preserving Measurement</title>
            <author fullname="Tim Geoghegan" initials="T." surname="Geoghegan">
              <organization>ISRG</organization>
            </author>
            <author fullname="Christopher Patton" initials="C." surname="Patton">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Brandon Pitman" initials="B." surname="Pitman">
              <organization>ISRG</organization>
            </author>
            <author fullname="Eric Rescorla" initials="E." surname="Rescorla">
              <organization>Independent</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
              <organization>Cloudflare</organization>
            </author>
            <date day="29" month="April" year="2025"/>
            <abstract>
              <t>   There are many situations in which it is desirable to take
   measurements of data which people consider sensitive.  In these
   cases, the entity taking the measurement is usually not interested in
   people's individual responses but rather in aggregated data.
   Conventional methods require collecting individual responses and then
   aggregating them on some server, thus representing a threat to user
   privacy and rendering many such measurements difficult and
   impractical.  This document describes a multi-party distributed
   aggregation protocol (DAP) for privacy preserving measurement which
   can be used to collect aggregate data without revealing any
   individual contributor's data.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ppm-dap-15"/>
        </reference>
        <reference anchor="TASKPROV">
          <front>
            <title>Task Binding and In-Band Provisioning for DAP</title>
            <author fullname="Shan Wang" initials="S." surname="Wang">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Christopher Patton" initials="C." surname="Patton">
              <organization>Cloudflare</organization>
            </author>
            <date day="5" month="May" year="2025"/>
            <abstract>
              <t>   An extension for the Distributed Aggregation Protocol (DAP) is
   specified that cryptographically binds the parameters of a task to
   the task's execution.  In particular, when a client includes this
   extension with its report, the servers will only aggregate the report
   if all parties agree on the task parameters.  This document also
   specifies an optional mechanism for in-band task provisioning that
   builds on the report extension.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-ppm-dap-taskprov-02"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="SITE" target="https://html.spec.whatwg.org/#site">
          <front>
            <title>HTML - Living Standard</title>
            <author>
              <organization>WHATWG</organization>
            </author>
            <date year="2021" month="January" day="26"/>
          </front>
        </reference>
        <reference anchor="VDAF">
          <front>
            <title>Verifiable Distributed Aggregation Functions</title>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <author fullname="David Cook" initials="D." surname="Cook">
              <organization>ISRG</organization>
            </author>
            <author fullname="Christopher Patton" initials="C." surname="Patton">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Phillipp Schoppmann" initials="P." surname="Schoppmann">
              <organization>Google</organization>
            </author>
            <date day="17" month="June" year="2025"/>
            <abstract>
              <t>   This document describes Verifiable Distributed Aggregation Functions
   (VDAFs), a family of multi-party protocols for computing aggregate
   statistics over user measurements.  These protocols are designed to
   ensure that, as long as at least one aggregation server executes the
   protocol honestly, individual measurements are never seen by any
   server in the clear.  At the same time, VDAFs allow the servers to
   detect if a malicious or misconfigured client submitted an invalid
   measurement.  Two concrete VDAFs are specified, one for general-
   purpose aggregation (Prio3) and another for heavy hitters (Poplar1).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-vdaf-15"/>
        </reference>
        <reference anchor="SHA2">
          <front>
            <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="May" year="2011"/>
            <abstract>
              <t>Federal Information Processing Standard, FIPS</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6234"/>
          <seriesInfo name="DOI" value="10.17487/RFC6234"/>
        </reference>
        <reference anchor="ASCII">
          <front>
            <title>ASCII format for network interchange</title>
            <author fullname="V.G. Cerf" initials="V.G." surname="Cerf"/>
            <date month="October" year="1969"/>
          </front>
          <seriesInfo name="STD" value="80"/>
          <seriesInfo name="RFC" value="20"/>
          <seriesInfo name="DOI" value="10.17487/RFC0020"/>
        </reference>
        <reference anchor="ORIGIN">
          <front>
            <title>The Web Origin Concept</title>
            <author fullname="A. Barth" initials="A." surname="Barth"/>
            <date month="December" year="2011"/>
            <abstract>
              <t>This document defines the concept of an "origin", which is often used as the scope of authority or privilege by user agents. Typically, user agents isolate content retrieved from different origins to prevent malicious web site operators from interfering with the operation of benign web sites. In addition to outlining the principles that underlie the concept of origin, this document details how to determine the origin of a URI and how to serialize an origin into a string. It also defines an HTTP header field, named "Origin", that indicates which origins are associated with an HTTP request. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6454"/>
          <seriesInfo name="DOI" value="10.17487/RFC6454"/>
        </reference>
        <reference anchor="DWORK">
          <front>
            <title>The Algorithmic Foundations of Differential Privacy</title>
            <author fullname="Cynthia Dwork" initials="C." surname="Dwork">
              <organization/>
            </author>
            <author fullname="Aaron Roth" initials="A." surname="Roth">
              <organization/>
            </author>
            <date year="2013"/>
          </front>
          <seriesInfo name="Foundations and Trends® in Theoretical Computer Science" value="vol. 9, no. 3-4, pp. 211-407"/>
          <seriesInfo name="DOI" value="10.1561/0400000042"/>
          <refcontent>Now Publishers</refcontent>
        </reference>
        <reference anchor="DAP-DP">
          <front>
            <title>Differential Privacy Mechanisms for DAP</title>
            <author fullname="Junye Chen" initials="J." surname="Chen">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Audra McMillan" initials="A." surname="McMillan">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Christopher Patton" initials="C." surname="Patton">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Kunal Talwar" initials="K." surname="Talwar">
              <organization>Apple Inc.</organization>
            </author>
            <author fullname="Shan Wang" initials="S." surname="Wang">
              <organization>Apple Inc.</organization>
            </author>
            <date day="23" month="October" year="2023"/>
            <abstract>
              <t>   Differential Privacy (DP) is a property of a secure aggregation
   mechanism that ensures that no single input measurement significantly
   impacts the distribution of the aggregate result.  This is a stronger
   property than what systems like the Distributed Aggregation Protocol
   (DAP) are designed to achieve.  This document describes a variety of
   DP mechansisms applicable to DAP, and, for a variety of common use
   cases, lifts DAP to a protocol that also achieves DP.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-wang-ppm-differential-privacy-00"/>
        </reference>
      </references>
    </references>
    <?line 484?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Roxana Geambesu noted that a binding to requester identity (<xref target="requester"/>)
was an important component of a robust differential privacy system design.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
ZYSteZm7j5Zq/JbDSPw/4ec4QsU+AAA=

-->

</rfc>
