<?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-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.29.0 -->
  <front>
    <title abbrev="DAP Extensions">Distributed Aggregation Protocol (DAP) Report Binding Extensions</title>
    <seriesInfo name="Internet-Draft" value="draft-thomson-ppm-dap-dp-ext-02"/>
    <author fullname="Martin Thomson">
      <organization>Mozilla</organization>
      <address>
        <email>mt@lowentropy.net</email>
      </address>
    </author>
    <date year="2025" month="July" day="04"/>
    <area>Security</area>
    <workgroup>Privacy Preserving Measurement</workgroup>
    <keyword>decibels</keyword>
    <keyword>replay</keyword>
    <abstract>
      <?line 43?>

<t>Report extensions to the Distributed Aggregation Protocol (DAP)
are defined to support new modes of operation for the protocol.
This includes a batched submission mode
where an intermediary can collect reports
prior to settling on an exact task configuration.
It also includes more flexibility for modes
where a differential privacy mechanism is applied
as part of the aggregation process.
Report extensions bind the content of reports to the chosen options
to ensure that the guarantees
that both DAP and differential privacy provide
are maintained.</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 58?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The core Distributed Aggregation Protocol (DAP) <xref target="DAP"/>
is suited to a deployment model
where reports are submitted directly to the leader
as they are generated.</t>
      <t>DAP report extensions can be used to
enable alternative deployment models and approaches.
This document defines a set of extensions
to enable two key changes to how DAP is used:</t>
      <ul spacing="normal">
        <li>
          <t>A operating mode where an intermediary is responsible for gathering reports
and performing batch submissions for aggregation.</t>
        </li>
        <li>
          <t>A operating mode where DAP
is part of a differentially-private system
where the differential privacy mechanism is applied
as part of the aggregation process.</t>
        </li>
      </ul>
      <t>No changes are needed to enable batched report submission in DAP.
The challenge is that DAP assumes that clients know
all the details of the aggregation task when generating reports.
The late_binding report extension (<xref target="late-bind"/>) loosens this requirement,
allowing the intermediary to make some choices
about task configuration without coordinating with clients.</t>
      <t>One consequence of late binding is
the scope of anti-replay protections needs to much broader.
For this, scoping report extensions (<xref target="scoping"/>) are defined
to help constrain the scope of reports
over which replay protection operates.</t>
      <t>For differential privacy,
its effective implementation depends on
being able to limit contributions from participants,
or set bounds on sensitivity.
The basic mechanism that DAP uses to cap contributions
is record 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 each report from being used multiple times.</t>
      <t>The default configuration of DAP also depends on
having differential privacy configuration
known to clients when reports are generated.
Clients need to know the parameters
of the differential privacy mechanism that is configured
so that they can properly account for any privacy loss.
This can limit the applicability of the protocol
outside of certain narrow patterns.</t>
      <t>This document defines extensions to DAP
that allow reports to be bound
to a specific amount of differential privacy budget expenditure (<xref target="budget"/>).
For cases where the DAP aggregators are responsible
for applying the differential privacy mechanism --
namely the addition of noise --
this ensures that clients can depend on the correct amount of noise being applied.</t>
      <t>For a differentially-private system,
scoping extensions (<xref target="scoping"/>) can be essential.
Scoping constraints can be used to ensure that contributions
from different contexts are not combined
in a way that would cause sensitivity bounds to be exceeded.</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.
These task extensions also set constraints
on the value of those 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 Verifiable Distributed Aggregation Function (VDAF);
see <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).
Specifically, this includes the <tt>task_id</tt>
that is passed to the <tt>Vdaf.shard</tt> function
and is encoded in the <tt>InputShareAad</tt> struct;
see <xref section="4.5.2" sectionFormat="of" target="DAP"/>.</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>Removing the binding of reports to tasks
means that a report might be aggregated across any task
that permits the use of this extension.</t>
      <t>Binding reports to tasks is defense against attacks
that misdirect reports to unintended reports,
including those configured with weaker security margins.
The best defense against this is to ensure
that all tasks that use this are configured with roughly equivalent parameters.
Spoiling of results through misdirection
is safeguarded by the verification
that is performed at the preparation phase of the VDAF.</t>
      <t>Misdirecting reports this way can still lead
to limited spoiling of tasks,
within the bounds permitted for a single task.
However, any entity that can perform such redirection
is potentially able to effect the same outcome
more effectively
through entirely falsified reports.</t>
      <t>Enforcing anti-replay
for tasks that are configured to accept reports with this extension
cannot be applied on a per-task scope.
A single anti-replay state <bcp14>MUST</bcp14> be used
for all reports that include the late_binding report extension.</t>
      <t>This could 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="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: A separate report extension could be defined
to change the scale of this value
or switch to a different unit, as necessary.</t>
        </aside>
        <t>The delta (δ) parameter is not directly bound to reports.
This parameter is rarely used in privacy budgeting.
A maximum value might be fixed as part of the system,
with the final value being chosen based on the total report volume
and -- where applicable --
the total number of tasks that each client might contribute to.</t>
        <aside>
          <t>Note: Where the delta (δ) value is non-zero,
and a client might generate many reports,
clients might also need to limit the number of reports
to prevent the overall delta value from growing large.</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="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="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 {
  task_budget (0xTBD),
  single_requester (0xTBD),
  (2^16-1)
} ExtensionType;

uint16 ReportExtensions<2..2^16-2>;
]]></sourcecode>
      <t>Task provisioning extensions are defined
that govern the use of the
privacy_budget (<xref target="budget"/>) and
requester_identity (<xref target="requester"/>)
report extensions.
These task provisioning extensions ensure that reports submitted to the task
include the corresponding report extensions and
that reports with invalid values are rejected.</t>
      <section anchor="task-budget">
        <name>Privacy Budget Task Extension</name>
        <t>The task_budget task provisioning extension contains the minimum 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
smaller than the value in the task_budget extension
<bcp14>MUST</bcp14> be rejected.</t>
        <t>The value of this extension can be used
to bound the noise that is applied
by a centrally managed differential privacy mechanism.
Aggregators use the minimum value
across all submitted reports to determine how much noise is added;
setting a minimum budget allows that noise to be bounded.</t>
      </section>
      <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>
    <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 report extensions
in the "Report Extension Identifiers" registry
established in <xref section="9.2.2" sectionFormat="of" target="DAP"/>.</t>
      <t>New report extension registrations are tabulated
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">privacy_budget</td>
            <td align="left">
              <xref target="budget"/></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>
        </tbody>
      </table>
      <t>This document registers task provisioning extensions
in the "Taskbind Extensions" registry
established in <xref section="7.2" sectionFormat="of" target="TASKPROV"/>.</t>
      <t>New task provisioning extensions are tabulated
in <xref target="t-dap-taskprov-ext"/>.</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">task_budget</td>
            <td align="left">
              <xref target="task-budget"/></td>
          </tr>
          <tr>
            <td align="left">TBD</td>
            <td align="left">single_requester</td>
            <td align="left">
              <xref target="single-requester"/></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="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>
        <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>
      </references>
    </references>
    <?line 573?>

<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.
David Cook provided useful feedback about the design and document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA51caXIbR5b+n6eopn40NQFAJEVqoS25aVG2Ga1tRNqKjokZ
O1GVANKqBa6sIgjT9FnmEN0XmAP4TPO2zMoqgBLdjG4LLOT61u8txfF4rBrb
5OY42Tm1rqnttG1MlpzM57WZ68ZWZfKurpoqrfJk9/Tk3f3kvVlWdZN8bcvM
lvPk5VVjSgfj3I7S02ltLnGpk3e9L1LdmHlVr48T12RKZVVa6gL2zGo9a8bN
oipcVY6Xy2Kc6eU4W47NVTPeO1CunRbW4SLNegnjz15efKPKtpia+lhlsOix
SmED2Kd1x0lTt0bB9g+Vro2GY5ybtK1ts95Rq6r+OK+rdglP39X2UqdruJdx
pr7ES7w22rW1KUzZ7KiPZg3Ds2OVjJPMpHZqcoefa7PM9VpdmrKFfZPkrusl
CR9+5wMcAr/9Fifi80LbHJ7Dvf9mTTObVPUcH+s6XcDjRdMs3fGDBzgKH9lL
M/HDHuCDB9O6WjnzAOY/wHlz2yzaKcwsdN3YUsj6oCMpDsqBaq7pLR8NnvAa
E1tF0x58ik2TRVPkO0rpFr6vkS5j+H+SzNo8ZybvvKYdkguev0Nfwx10aX8l
CTtOXle/2jzX9I0RqhTN3/JqBRSsq+V6Uho4vSqruoApl0B/ZctZ91uSnJ9d
vDymBRpdzw3c0F8QDzhxS5NOVgvdrOZEv3vONoaHs/h/d/H6FTD5lSUGnje6
zHSd0QgStORg72B/vLc/PnhED7v74s9Y/qWLHScfvju5+PCtUmo8Hid6Cnql
00YpUR0TNCNpqqRZmORuqodiDRI5syUMg5muXdJ6pVklRZUZl1SzpFqamicD
eWjxpSwyURcL6xJbpnmLg3Uy1U26gLU6NaN11GphYCddwtjG1IXJrK7XSQoP
YJncpA3qAuzs1LK2uAucxTRNjpSDNWCcuYILAyfcR5hSzuy85UNN1FmT6NxV
3TGKCvaa5ebKTm0Oykrnpuv4cySZnc3gU9lYncN1WN0Kky5AhFyRwKX0cplb
kyntkiVIGxICr64jWgIZUuPcZAsXpmDLaDycFR7SdLmh51C6qMDMAHVxLafg
KRodOF0DMkUj5q2uNUyHc9OzadUsEjSEIEnbbwAnurRAbmQrCH3ZaOTshKWm
sFmWG6XuJWeoAlmb4s4KeIjHrO8qM8n19V/g32dn41MyHl57b24UkM21tmFZ
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

-->

</rfc>
