<?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.1 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mouris-cfrg-mastic-00" category="info" consensus="true" submissionType="IRTF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.1 -->
  <front>
    <title abbrev="Mastic">The Mastic VDAF</title>
    <seriesInfo name="Internet-Draft" value="draft-mouris-cfrg-mastic-00"/>
    <author fullname="Dimitris Mouris">
      <organization>University of Delaware</organization>
      <address>
        <email>jimouris@udel.edu</email>
      </address>
    </author>
    <author initials="C." surname="Patton" fullname="Christopher Patton">
      <organization>Cloudflare</organization>
      <address>
        <email>chrispatton+ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Pratik Sarkar">
      <organization>Boston University</organization>
      <address>
        <email>pratik93@bu.edu</email>
      </address>
    </author>
    <author fullname="Nektarios G. Tsoutsos">
      <organization>University of Delaware</organization>
      <address>
        <email>tsoutsos@udel.edu</email>
      </address>
    </author>
    <date year="2023" month="October" day="13"/>
    <area>IRTF</area>
    <workgroup>Crypto Forum</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 94?>

<t>This document describes Plabels, a two-party VDAF for the following aggregation
task: each Client holds a bit string, and the Collector wishes to count how
many of these strings begin with a candidate prefix. Such a VDAF can be used to
solve the heavy hitters problem, where the goal is compute the subset of the
measurements that occur most frequently. This document also describes various
modes of operation for Plabels. First, its output type can be enriched to
support aggregation functions beyond prefix counts. Second, an extension to the
aggregation phase is described that significantly reduces communication cost
compared to existing techniques. Third, a three-party variant is described that
is robust in the honest majority setting.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-mouris-cfrg-mastic/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Crypto Forum Research Group mailing list (<eref target="mailto:cfrg@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/search/?email_list=cfrg"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/cfrg/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/jimouris/draft-mouris-cfrg-mastic"/>.</t>
    </note>
  </front>
  <middle>
    <?line 107?>

<section anchor="introduction">
      <name>Introduction</name>
      <ul empty="true">
        <li>
          <t>TODO Introduction. Outline:
- Recall the heavy hitters problem
- Describe Poplar <xref target="BBCGGI21"/>, IDPF, and how the VDAF abstraction relates to IDPF
- Say that Poplar isn't ideal for solving this problem
- Introduce <xref target="MST23"/></t>
        </li>
      </ul>
      <t>Poplar <xref target="BBCGGI21"/> described a protocol for solving the <tt>t</tt>-heavy-hitters
problem in a privacy-preserving manner. Each client holds a bit-string of
length <tt>n</tt>, and the goal of the aggregation servers is to compute the set of
inputs that occur at least <tt>t</tt> times. The core primitive used in their protocol
is a specialized Distributed Point Function (DPF) <xref target="GI14"/>, called Incremental
DPF (IDPF), that allows the servers to "query" their DPF shares on any
bit-string of length shorter than or equal to <tt>n</tt>. As a result of this query,
each of the servers has an additive share of a bit indicating whether the
string is a prefix of the client's input. The protocol also specifies a
multi-party computation for verifying that at most one string among a set of
candidates is a prefix of the client's input.</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="preliminaries">
      <name>Preliminaries</name>
      <t>This document makes use of Fully Linear Proofs (FLPs) and eXtendable Output
Functions (XOFs) as described in <xref target="VDAF"/>. It also
makes use of an extension of Incremental Distributed Point Functions (IDPFs),
known as "Verifiable IDPFs (VIDFS)" first described by <xref target="MST23"/>. VIDPFs are
specified below.</t>
      <section anchor="vidpf">
        <name>Verifiable IDPF (VIDPF)</name>
        <t>De Castro and Polychroniadou <xref target="CP22"/> introduced Verifiable DPF (VDPF), a DPF
scheme that supports a well-formedness check. More specifically, VDPFs allows
verifying that the client’s inputs are well-formed, meaning that the client
will not learn any unauthorized information about the servers' database or
modify the database in an unauthorized way.</t>
        <t>PLASMA <xref target="MST23"/> introduced the notion of Verifiable Incremental DPF (VIDPF)
that builds upon IDPF <xref target="BBCGGI21"/> and VDPF <xref target="CP22"/>. VIDPF is an IDPF that
allows verifying that clients’ inputs are valid by relying on hashing while
preserving the client’s input privacy.</t>
        <ul empty="true">
          <li>
            <t>TODO(Dimitris)</t>
          </li>
        </ul>
      </section>
      <section anchor="vdaf-interactive-agg-extension">
        <name>Interactive Aggregation for VDAFs</name>
        <t>In order to accommadating Plabel's improvemnt in communication cost require, it
is necessary to replace the non-interactive aggregation algorithm
<tt>Vdaf.aggregate()</tt>  with a 1-round, interactive protocol implemented by the
following methods:</t>
        <ul spacing="normal">
          <li>
            <t><tt>Vdaf.aggregate_init(agg_info: AggInfo, out_shares: list[OutShare]) -&gt;
tuple[AggState, AggMessage]</tt> is the deterministic aggregation initialization
algorithm called by each Aggregator. It takes as input the set output shares
to be aggregated and a parameter called the "aggregation information". Its
outputs are the Aggregator's state and broadcast message.</t>
          </li>
          <li>
            <t><tt>Vdaf.aggregate_finish(agg_state: AggState, agg_msgs: list[AggMessage]) -&gt;
AggShare</tt>. is the deterministic aggregation finalization aglorithm called by
each Aggregator on its aggregation state and the sequence of messages
broadcast by each Aggregator.</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>CP: The binary search described in <xref target="MST23"/> obviously doesn't fit into a
1-round protocol, as the number of rounds required depends on how deep down
the Merkle we have to before we've identified all bad reports. The idea is
that aggregation protocol would be invoked multiple times, each time with a
different <tt>agg_info</tt>.</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t>CP: Let's try to come up with a better name than <tt>agg_info</tt>.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="vdaf">
      <name>The Plabels VDAF</name>
      <ul empty="true">
        <li>
          <t>TODO(Hannah) Describe the implementation of the base <tt>Vdaf</tt> interface.</t>
        </li>
      </ul>
    </section>
    <section anchor="reducing-communication-cost-via-interactive-aggregation">
      <name>Reducing Communication Cost via Interactive Aggregation</name>
      <ul empty="true">
        <li>
          <t>TODO(Dimitris) Describe the implementation of the interface in
<xref target="vdaf-interactive-agg-extension"/></t>
        </li>
      </ul>
    </section>
    <section anchor="improved-robustness-via">
      <name>Improved Robustness via</name>
      <ul empty="true">
        <li>
          <t>TODO Describe 3-party PLASMA</t>
        </li>
      </ul>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <ul empty="true">
        <li>
          <t>TODO Security</t>
        </li>
      </ul>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <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="BBCGGI21" target="https://ia.cr/2021/017">
          <front>
            <title>Lightweight Techniques for Private Heavy Hitters</title>
            <author initials="D." surname="Boneh">
              <organization/>
            </author>
            <author initials="E." surname="Boyle">
              <organization/>
            </author>
            <author initials="H." surname="Corrigan-Gibbs">
              <organization/>
            </author>
            <author initials="N." surname="Gilboa">
              <organization/>
            </author>
            <author initials="Y." surname="Ishai">
              <organization/>
            </author>
            <date year="2021"/>
          </front>
          <seriesInfo name="IEEE S&amp;P 2021" value=""/>
        </reference>
        <reference anchor="CP22" target="https://iacr.org/cryptodb/data/paper.php?pubkey=31935">
          <front>
            <title>Lightweight, Maliciously Secure Verifiable Function Secret Sharing</title>
            <author initials="" surname="Leo de Castro">
              <organization/>
            </author>
            <author initials="" surname="Anitgoni Polychroniadou">
              <organization/>
            </author>
            <date/>
          </front>
          <seriesInfo name="EUROCRYPT 2022" value=""/>
        </reference>
        <reference anchor="DPRS23" target="https://ia.cr/2023/130">
          <front>
            <title>Verifiable Distributed Aggregation Functions</title>
            <author initials="H." surname="Davis">
              <organization/>
            </author>
            <author initials="C." surname="Patton">
              <organization/>
            </author>
            <author initials="M." surname="Rosulek">
              <organization/>
            </author>
            <author initials="P." surname="Schoppmann">
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="GI14" target="https://link.springer.com/chapter/10.1007/978-3-642-55220-5_35">
          <front>
            <title>Distributed Point Functions and Their Applications</title>
            <author initials="N." surname="Gilboa">
              <organization/>
            </author>
            <author initials="Y." surname="Ishai">
              <organization/>
            </author>
            <date year="2014"/>
          </front>
          <seriesInfo name="EUROCRYPT 2014" value=""/>
        </reference>
        <reference anchor="MST23" target="https://ia.cr/2023/080">
          <front>
            <title>PLASMA: Private, Lightweight Aggregated Statistics against Malicious Adversaries</title>
            <author initials="" surname="Dimitris Mouris">
              <organization/>
            </author>
            <author initials="" surname="Pratik Sarkar">
              <organization/>
            </author>
            <author initials="" surname="Nektarios Georgios Tsoutsos">
              <organization/>
            </author>
            <date/>
          </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="31" month="August" year="2023"/>
            <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
   measurement that would result in an invalid aggregate result.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-irtf-cfrg-vdaf-07"/>
        </reference>
      </references>
    </references>
    <?line 221?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <ul empty="true">
        <li>
          <t>TODO(Dimitris)</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
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
AA==

-->

</rfc>
