<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://zeemeil.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://zeemeil.github.io/" rel="alternate" type="text/html" /><updated>2026-09-29T14:14:51+08:00</updated><id>https://zeemeil.github.io/feed.xml</id><title type="html">Kunkun’s Homepage</title><subtitle>CS &amp; Math &amp; Cryptography @ GZ University</subtitle><author><name>Kunkun</name><email>kunliu701x@gmail.com</email></author><entry><title type="html">安全差分隐私随机梯度下降</title><link href="https://zeemeil.github.io/posts/2023/04/blog-post-8/" rel="alternate" type="text/html" title="安全差分隐私随机梯度下降" /><published>2023-04-07T00:00:00+08:00</published><updated>2023-04-07T00:00:00+08:00</updated><id>https://zeemeil.github.io/posts/2023/04/blog-post-1</id><content type="html" xml:base="https://zeemeil.github.io/posts/2023/04/blog-post-8/"><![CDATA[<p>安全差分隐私随机梯度下降</p>

<p>基于安全多方计算的机器学习，简称多方学习（multi-party learning，简称MPL），已成为利用多方数据保护隐私的重要技术。 虽然 MPL 为计算过程提供了严格的安全保证，但 MPL 训练的模型仍然容易受到仅依赖于对模型的访问的攻击。 差异隐私可以帮助抵御此类攻击。 然而，差分隐私带来的精度损失和安全多方计算协议的巨大通信开销使得平衡隐私、效率和精度之间的三向权衡极具挑战性。
在本文中，我们有动力通过提出一种解决方案来解决上述问题，称为 PEA（私有、高效、准确），它由一个安全的差分私有随机梯度下降（简称 DPSGD）协议和两个优化 - 化方法。 首先，我们提出了一个安全的 DPSGD 协议来在基于秘密共享的 MPL 框架中实施 DPSGD，这是一种流行的差分隐私机器学习算法。 其次，为了减少差分隐私噪声导致的精度损失和MPL巨大的通信开销，我们针对MPL的训练过程提出了两种优化方法：（1）数据无关的特征提取方法，旨在简化训练模型 结构; (2) 基于局部数据的全局模型初始化方法，旨在加快模型训练的收敛速度。 我们在两个开源 MPL 框架中实现了 PEA：TF-Encrypted 和 Queqiao。 各种数据集上的实验结果证明了 PEA 的效率和有效性。 例如。 当 ε = 2 时，我们可以在 LAN 设置下在 7 分钟内为 CIFAR-10 训练出准确率为 88% 的差分隐私分类模型。 这一结果明显优于 CryptGPU 的结果，CryptGPU 是一种最先进的 MPL 框架：在 CIFAR-10 上以相同的精度训练非私有深度神经网络模型需要 16 个多小时。</p>]]></content><author><name>Kunkun</name><email>kunliu701x@gmail.com</email></author><category term="Machine Learning" /><category term="Secure Mutil-party Computation" /><category term="Differential Privacy" /><summary type="html"><![CDATA[安全差分隐私随机梯度下降]]></summary></entry><entry><title type="html">关于两方安全计算的决策树分类这件事</title><link href="https://zeemeil.github.io/posts/2023/03/blog-post-6/" rel="alternate" type="text/html" title="关于两方安全计算的决策树分类这件事" /><published>2023-03-15T00:00:00+08:00</published><updated>2023-03-15T00:00:00+08:00</updated><id>https://zeemeil.github.io/posts/2023/03/blog-post-1</id><content type="html" xml:base="https://zeemeil.github.io/posts/2023/03/blog-post-6/"><![CDATA[<p>关于两方安全计算的决策树分类这件事</p>

<p>安全多方计算（或 MPC）允许两方或多方计算私有输入上的任何数学函数，而不会透露函数输出以外的任何内容。 通常，MPC 在预处理模型中实例化，在离线输入独立阶段从受信任的经销商或通过离线交互生成特制的随机数，然后在在线阶段使用此随机数来计算函数，一旦 输入是已知的。 这种两阶段方法产生了可观的性能优势。 这种相关随机性的一些示例包括 Beaver 乘法三元组和乱码电路预处理 。
当用于评估仅基于二进制或仅基于算术交互的电路时，MPC 协议提供非常快速的在线执行。 但是，生物识别或机器学习等应用程序需要线性运算（在大环上进行加法和乘法）和整数比较或截断等非线性运算的组合。 仅使用一种 MPC 电路类型盲目地实现这两种类型的操作的成本可能高得令人望而却步。 为了解决这个问题，许多工作已经解决了混合模式 MPC，以提供算术域和二进制域之间的有效转换，支持线性和非线性运算。 然而，这些转换通常会在在线阶段带来巨大的通信开销。
根据 TinyTable 协议以简洁的方式秘密共享真值表，Boyle 等人提出了一种基于功能秘密共享 (FSS)的非常有前途的方法。 为非线性函数评估提供与纯算术电路中的纯算术计算相同的在线通信和轮复杂度，FSS 依赖于快速对称加密原语来产生快速在线评估。</p>

<p>秘密共享是一种密码学原语，它允许在 𝑛 方之间共享秘密 𝑥，这样其中的任何 𝑡 都可以重建秘密。 秘密共享方案由 𝑘 各方数和阈值 𝑡 定义，即重建秘密所需的最小各方数。 在两方计算 (2PC) 领域，参与方数为 𝑛 = 2，阈值为 𝑡 = 2。这项工作着重于环中的 2PC 算术秘密共享（为方便起见简称为 SS），其中一个秘密值 𝑥 被分成两个随机份额𝑥0 和𝑥1 使得𝑥 =𝑥0+𝑥1 模数𝑁，其中𝑁 是环的大小。份额被分配给两个计算方，使得一方𝑃 𝑗 收到份额𝑥 𝑗。 通过这种共享方案，双方可以对两个秘密共享值进行本地加/减。 此外，各方可以求助于 Beaver 的乘法三元组以一轮通信为代价执行乘法：</p>

<p>在计算结束时，可以通过将两个份额发送给选定方𝑃𝑟𝑒𝑠，将两个份额加在一起并重建结果来重建得到的秘密共享值。 我们使用 𝑁 =2𝑛 来获取 𝑛∈{8,16,32,64} 的值，以便在处理 𝑛 位模块化算术时受益于现代计算机中存在的本机整数类型的相当大的加速。 对于这项工作特别感兴趣的是，使用 SS 计算标量积 𝒙𝑇𝒚 = scular 𝑙 𝒙(𝑖) ·𝒚(𝑖) 需要为每个多 𝑖=1 次重复发送 2 个项，总共发送 2𝑙 值。</p>]]></content><author><name>Kunkun</name><email>kunliu701x@gmail.com</email></author><category term="Decision Tree Evaluation" /><category term="Secure Two-party Computation" /><category term="Function Secret Sharing" /><summary type="html"><![CDATA[关于两方安全计算的决策树分类这件事]]></summary></entry><entry><title type="html">通过函数秘密共享实现低交互隐私保护深度学习</title><link href="https://zeemeil.github.io/posts/2023/03/blog-post-7/" rel="alternate" type="text/html" title="通过函数秘密共享实现低交互隐私保护深度学习" /><published>2023-03-15T00:00:00+08:00</published><updated>2023-03-15T00:00:00+08:00</updated><id>https://zeemeil.github.io/posts/2023/03/blog-post-1</id><content type="html" xml:base="https://zeemeil.github.io/posts/2023/03/blog-post-7/"><![CDATA[<p>函数秘密共享实现低交互隐私保护深度学习</p>

<p>AriaNN是一种用于私有神经网络训练和敏感数据推理的低交互隐私保护框架。半诚实 2 方计算协议（与受信任的经销商）利用功能秘密共享，这是一种最近的轻量级加密协议，能够实现高效的在线阶段。 为 ReLU、MaxPool 和 BatchNorm 等神经网络的构建块设计了优化的原语。 例如，在线阶段使用输入大小的单个消息对 ReLU 操作执行私有比较，并且预处理密钥比以前的工作小近 4 倍。 AriaNN是一个扩展来支持 n 方私人联邦学习。 我们将我们的框架实现为 PyTorch 之上的可扩展系统，利用 CPU 和 GPU 硬件加速进行加密和机器学习操作。 我们评估我们的端到端系统在标准神经网络（如 AlexNet、VGG16 或 ResNet18）上的远程服务器之间的私人推理，以及在 LeNet 等较小网络上的私人训练。</p>

<p>用于对敏感数据进行安全计算的密码技术的巨大改进刺激了隐私保护机器学习领域的发展。 隐私保护技术在具体用例中变得实用，因此鼓励公共当局使用它们来保护公民数据，尤其是在医疗保健应用中。然而，缺乏工具来为那些在密码学方面缺乏专业知识同时面临关键数据隐私挑战的机构提供端到端解决方案。 一个突出的例子是医院，它处理大量数据，同时拥有相对有限的技术团队。 安全多方计算 (SMPC) 是一种很有前途的技术，可以有效地集成到机器学习工作流程中以确保数据和模型隐私，同时允许多方或机构参与联合项目。 特别是，SMPC 提供了内在的共享治理：因为数据是共享的，任何一方都不能单独决定重建它。</p>

<p>用例是医疗机构和人工智能公司之间的协作。 医疗机构（例如医院）充当数据所有者，AI 公司充当模型所有者。 协作包括使用标记数据训练模型或使用预训练模型分析未标记数据。 培训可能涉及多个数据所有者，如第 5 节所述。由于模型可能是敏感资产（在知识产权、战略资产或监管和隐私问题方面），因此不能直接在数据所有者上进行培训（s） 使用联合学习等技术的机器：它可能被盗或被逆向工程。
我们将假设参与计算的各方位于不同的区域，并且他们可以通过网络以合理的延迟（例如 70 毫秒）传递大量信息。 这对应于广域网 (WAN) 设置，与局域网 (LAN) 设置相反，局域网 (LAN) 设置中各方通常位于同一数据中心并以低延迟（通常 &lt;1ms）进行通信。 其次，当事人是诚实但好奇的。 因此，他们几乎没有偏离原始协议的动机，但他们会为了自己的利益使用任何可用的信息。
贡献。 通过利用函数秘密共享 (FSS)，我们提出了一个用于私有深度学习的低交互框架，它大大减少了基本机器学习操作的单轮通信，并使用 GPU 在 ResNet18 上实现了第一个私有评估基准 .
隐私保护机器学习的相关工作包括 SMPC 和完全同态加密 (FHE) 技术。
FHE 只需要单轮交互，但不支持高效的非线性。 例如，nGraph-HE及其扩展建立在 SEAL 库 之上，并提供了一个安全评估框架，大大改进了 CryptoNet 开创性工作，但它求助于多项式（ 像正方形）用于激活函数。</p>

<p>SMPC 框架通常使用轻量级密码学提供更快的实现。 MiniONN、DeepSecure和 XONN 使用优化的乱码电路 ，允许很少的通信轮次，但它们不支持训练和改变神经网络结构以加快执行速度。 其他框架，如 ShareMind 、SecureML、SecureNN、QUOTIENT或最近的 FALCON依赖于附加秘密共享并允许安全模型评估和训练。 他们使用更简单、更高效的原语，但需要大量的通信轮次，例如 SecureNN 中的 11 或 FALCON中的 5 + log2(n)（通常为 10，n = 32）用于 ReLU。 ABY 、Chameleon和最近的 ABY3、CrypT-Flow 和4PC根据所考虑的操作最有效的方式混合乱码电路、加法或二进制秘密共享。 但是，它们之间的转换可能很昂贵，并且它们不支持除 ABY3 之外的培训。 当前的工作包括 BLAZE、Trident和 FLASH，它们改进了 ABY3 以减少通信开销：BLAZE 和 Trident 为 ReLU 实现了例如 4 轮通信。最后，像 Gazelle这样的作品结合了 FHE 和 SMPC 以充分利用两者，但转换也可能代价高昂。在可信执行环境上的工作不在本文的讨论范围内，因为它们需要访问专用且昂贵的硬件Chiron。</p>

<p>Boyle 等人的并行工作改进了以前使用函数秘密共享进行私有比较的算法，并且他们的实现结果与我们的轮数相同，密钥大小也相似（大约 n(λ+n)，其中 n 是数字 编码值的位数，它考虑了正确性，通常设置为 32，λ 是安全参数，通常等于 128）。 然而，FSS不适用于机器学习：它们仅提供 ReLU 的实现，而不提供 MaxPool、BatchNorm、Argmax 或其他经典机器学习组件的实现。 此外，由于他们不提供实验基准或他们的私人比较的实施，我们无法在我们的私人 ML 框架中将其与我们的进行比较。 他们避免了我们在第 3 节中研究的可忽略的错误率，这在我们展示的机器学习环境中没有影响。</p>

<p>预处理由受信任的第三方在离线阶段执行，该第三方构建功能密钥并将其分发给未来计算中涉及的 2 方。 这是功能秘密共享的标准。在没有此类可信经销商的情况下，可以在输入已知之前通过离线执行的交互式安全协议生成密钥。 这种设置也可以在其他隐私保护机器学习框架中找到，包括 SecureML [46]。 这个值得信赖的经销商在在线阶段不活跃，他不知道 2 方打算执行的计算。 特别是，由于我们处于诚实但好奇的模型中，因此假设没有任何一方与经销商串通。 在实践中，此类第三方通常是一个关心其声誉的机构，并且使用剪切和选择技术可以很容易地检查预处理材料是否正确 [65]。 例如，第三方产生n个密钥进行私密比对。 愿意进行私有计算的 2 方随机检查其中的一些：他们从他们的密钥中提取 s0、s1 并从 [α]j 重建 α，j ∈ {0, 1}。 然后，他们可以推导出 KeyGen 的计算结果，并验证密钥的相关随机性是否正确。 然后他们可以使用剩余的密钥进行私有计算。</p>

<p>构建比较协议的基础。 然后我们描述私有比较协议，它通过专注于神经网络评估。引入的私有相等性，它比比较稍微简单一些，并提供了有关比较如何工作的有用提示。 相等性测试包括将公共输入 x 与私有值 α 进行比较。 使用功能键评估输入可以看作是遍历深度为 n 的二叉树，其中 n 是输入的位数（通常为 32）。 在所有可能的路径中，从根节点向下到 α 的路径称为特殊路径。 图 1 说明了这棵树并提供了我们的协议使用的紧凑表示，其中我们没有详细说明所有叶子都为 0 的分支。评估如下：两个评估者各自获得一个函数键，其中包括一个不同的初始随机状态 (s, t) ∈ {0, 1}λ × {0, 1}。 每个评估者从根开始，在每一步 i 沿着树中的一个节点向下移动，并使用公共校正词 CW(i) ∈ {0,1}2(λ +1) 从功能键。 在计算结束时，每个评估器输出 t。 只要 x[i] = α[i]，评估者就停留在特殊路径上，并且因为输入 x 是公开的并且对他们来说是公共的，所以他们都遵循相同的路径。 如果满足x[i] ̸= α[i]，则离开特殊路径，输出0； 否则，他们一直保持下去，这意味着 x = α，他们应该输出 1。</p>

<p>主要思想是当它们在特殊路径上时，评估器应该分别具有状态 (s0,t0) 和 (s1,t1)，这样 s0 和 s1 是独立同分布的。 和 $t_0 \oplus t_1 = 1$。当他们离开它时，校正词应该使 s0 = s1 但仍然与随机和 t0 = t1 无法区分，这确保 $t_0 \oplus t_1 = 0$。要以明文形式重建结果，每个评估者应该输出它的 tj，结果由 $t_0 \oplus t_1$  给出。正式描述该协议，协议由两部分组成：首先，算法 1是KeyGen 算法包括一个预处理步骤以生成功能密钥，然后，算法 2是Eval 由两个评估者运行以 执行相等性测试。 它将每个评估者持有的私人份额和他们收到的功能密钥作为输入。 他们使用 $ \mathbb{G} \colon { 0, 1 }^λ → { 0, 1}^{2(λ+1) }$ ，一个伪随机生成器 (PRG)，其中输出集为$ {0, 1}^λ+1 × {0, 1 }^{λ+1}$，和模 $2^n$ 的操作隐式转换回和第四位字符串转换为整数。</p>]]></content><author><name>Kunkun</name><email>kunliu701x@gmail.com</email></author><category term="Deep Learning" /><category term="Secure Two-party Computation" /><category term="Function Secret Sharing" /><summary type="html"><![CDATA[函数秘密共享实现低交互隐私保护深度学习]]></summary></entry><entry><title type="html">非交互式私人决策树评估</title><link href="https://zeemeil.github.io/posts/2023/03/blog-post-4/" rel="alternate" type="text/html" title="非交互式私人决策树评估" /><published>2023-03-09T00:00:00+08:00</published><updated>2023-03-09T00:00:00+08:00</updated><id>https://zeemeil.github.io/posts/2023/03/blog-post-1</id><content type="html" xml:base="https://zeemeil.github.io/posts/2023/03/blog-post-4/"><![CDATA[<p>非交互式私人决策树评估</p>

<p>决策树是一种强大的预测模型，在统计学、数据挖掘和机器学习中有许多应用。 在某些设置中，要分类的模型和数据可能包含属于不同方的敏感信息。 因此，在本文中，我们解决了在私有数据上私下评估决策树的问题。 这个场景包括一个持有私有决策树模型的服务器和一个有兴趣使用服务器私有模型对其私有属性向量进行分类的客户端。 计算的目标是获得分类，同时保留决策树和客户端输入的隐私。 计算完成后，分类结果只显示给客户端，其他的不显示给客户端和服务器。 解决此问题的现有隐私保护协议使用或组合不同的通用安全多方计算方法，从而导致客户端和服务器之间进行多次交互。 我们的目标是设计和实现一种新颖的客户端-服务器协议，将完整的树评估委托给服务器，同时保护隐私并减少开销。 这个想法是使用完全（某种程度上）同态加密并对在客户端公钥下加密的密文树进行评估。 然而，由于当前的同态加密方案具有较高的开销，我们将有效的数据表示与不同的算法优化相结合，以保持较低的计算开销和通信成本。 因此，我们能够提供第一个非交互式协议，允许客户端通过发送加密输入并仅接收结果的加密来将评估委托给服务器。方案只有一轮，可以在几秒钟内评估一棵深度为 10 的完整树。</p>

<p>机器学习 (ML) 分类器在许多领域都是有价值的工具，例如医疗保健、金融、垃圾邮件过滤、入侵检测、远程诊断等。 为了执行他们的任务，这些分类器通常需要访问个人敏感数据，例如医疗或财务记录。 因此，研究既能保护数据隐私又能从 ML 的优势中获益的技术至关重要。 一方面，ML 模型本身可能包含敏感数据。 例如，使用决策树对其客户进行信用评估的银行可能不想透露有关该模型的任何信息。 另一方面，该模型可能建立在敏感数据之上。 众所周知，对 ML 模型的白盒访问，有时甚至是黑盒访问允许所谓的模型反转攻击，这可能会损害训练数据的隐私。 因此，公开 ML 模型可能会侵犯训练数据的隐私。</p>

<p>在私有数据上的私有决策树评估 (PDTE) 问题。 这个场景包括一个拥有私有决策树模型的服务器和一个想要使用服务器私有模型对其私有属性向量进行分类的客户端。 计算的目标是获得分类，同时保留决策树和客户端输入的隐私。 计算完成后，分类结果只透露给客户端，除此之外，不会再透露给任何一方。 该问题可以使用任何通用的安全多方计算来解决。 存在结合不同技术并使用领域知识来开发有效协议的专门解决方案。</p>

<p>通用的安全两方计算，如乱码电路和秘密共享，可以实现PDTE。 这个想法是将决策树程序转换为可以在不泄露私人数据的情况下进行评估的安全表示。 存在诸如 ObliVM 或 CBMC-GC 之类的框架，它们能够自动将以高级编程语言编写的明文程序转换为适用于安全计算的不经意程序。 它们在决策树程序中的直接应用确实比手工制作的结构提高了性能。 然而，生成的不经意程序的大小仍然与树的大小成正比。 因此，通用解决方案通常效率低下，尤其是当树的大小很大时。</p>

<p>专用协议利用手头问题的领域知识，并仅在以下情况下使用通用技术 这是必要的，从而产生更有效的解决方案。 现有的 PDTE 协议有几轮需要客户端和服务器之间的多次交互。 此外，通信成本取决于决策树的大小，而客户端只需要一个单一的分类。 最后，它们还需要客户端的计算能力，这取决于树的大小。</p>

<p>为了设计和实现一种新颖的客户端-服务器协议，将完整的树评估委托给服务器，同时保护隐私并保持可接受的性能。 这个想法是使用完全或某种程度的同态加密 (FHE/SHE)，并根据在客户端公钥下加密的密文评估树。 因此，不会向评估服务器透露任何中间或最终计算结果。 然而，由于当前的同态加密方案具有较高的开销，我们将有效的数据表示与不同的算法优化相结合，以保持较低的计算开销和通信成本。 最后，计算开销可能仍然高于现有协议，但是计算任务可以并行化，从而减少计算时间。 因此，我们能够提供第一个非交互式协议，允许客户端通过发送加密输入并仅接收结果的加密来将评估委托给服务器。 最后，现有方法在半诚实模型中是安全的，并且可以使用可能使计算和通信成本加倍的技术进行单边模拟 1。 默认情况下，我们的方法是单方面可模拟的，因为客户端只是加密其输入并解密计算的最终结果（模拟客户端很简单），而服务器对使用语义安全加密加密的密文进行评估客户的公钥。</p>

<p>我们方法的具体动机是机器学习设置（在医疗保健、金融等领域的应用），其中服务器计算能力强，客户端计算能力弱，网络连接速度不是很快。 许多云提供商已经提出允许用户构建机器学习应用程序的平台。 医院可能希望使用这样的平台向其他医生甚至其患者提供医疗专家系统作为 ML 即服务应用程序。 软件提供商可以利用 ML 即服务来允许其客户检测软件错误的原因。 软件系统使用日志文件来收集有关系统行为的信息。 如果出现错误，这些日志文件可用于查找崩溃的原因。 这两个示例（医疗数据和日志文件）都包含值得保护的敏感信息。</p>]]></content><author><name>Kunkun</name><email>kunliu701x@gmail.com</email></author><category term="Decision Tree Evaluation" /><category term="MPC" /><category term="HE" /><summary type="html"><![CDATA[非交互式私人决策树评估]]></summary></entry><entry><title type="html">纵向决策树的高效两方密码框架</title><link href="https://zeemeil.github.io/posts/2023/03/blog-post-4/" rel="alternate" type="text/html" title="纵向决策树的高效两方密码框架" /><published>2023-03-09T00:00:00+08:00</published><updated>2023-03-09T00:00:00+08:00</updated><id>https://zeemeil.github.io/posts/2023/03/blog-post-2</id><content type="html" xml:base="https://zeemeil.github.io/posts/2023/03/blog-post-4/"><![CDATA[<p>纵向决策树的高效两方密码框架</p>

<p>垂直联邦学习中的隐私保护决策树 (DT) 是促进现实中各种隐私关键应用程序的最有效工具之一。 然而，当前解决方案的主要瓶颈是其巨大的开销，主要是由于采用通信密集型位分解来实现复杂的非线性操作，例如比较和除法。 在本文中，我们介绍了 PriVDT，这是一种有效的两方框架，用于离线/在线范式中的私有垂直 DT 训练和推理。 具体来说，我们根据高级原语函数秘密共享 (FSS) 定制了几个加密构建块。 首先，我们构建了一个优化的比较协议，通过减少 FSS 评估的调用来提高效率。 其次，我们设计了一种高效且增强隐私的除法协议，而无需透露除数的范围，该协议利用了上述比较协议，更重要的是，新设计的基于 FSS 的安全范围和数字分解协议。 此外，我们通过采用基于轻量级伪随机函数的 Beaver 三元组技术进一步降低了线性运算的开销。 基于上述高效组件，我们实现了 PriVDT 框架，并在 LAN 和 WAN 上的 5 个真实数据集上对其进行了评估。 实验结果表明，PriVDT 的端到端运行时间在 LAN 上优于现有技术 42 ∼ 510×，在 WAN 上优于现有技术 16 ∼ 70×。 此外，PriVDT 提供与非私有设置相当的准确性。</p>

<p>作为一种高效且可解释的机器学习算法，决策树 (DT) 已被用于各种实际应用，例如金融风险管理、医疗诊断和股票交易。 实际上，DT 的构建和实际应用面临两个挑战。 首先，训练数据是垂直分布的，其中各方持有相同样本的不相交特征。 其次，训练数据也是隐私敏感的。 例如，在金融风险管理任务中，个人的司法和贷款信息通常分别由法院和银行掌握，而这些隐私的个人信息由于目前严格的政策不允许直接公开例如通用数据保护条例 (GDPR)。 在这些挑战的推动下，隐私保护垂直 DT 被提议作为一种新兴范例。</p>

<p>探索保护隐私的垂直 DT 的现有努力可以分为两类。 (1) 泄漏容差。 有几种方法会牺牲一些隐私保证以换取较低的密码开销，例如样本标签、内部节点的最佳拆分、评估路径（ 详见第二节）。 然而，这种泄露与隐私保护的要求背道而驰。 (2) 零隐私泄露。 Wu等最近提出了 Pivot，这是第一个在不泄露任何敏感信息的情况下为垂直 DT 提供隐私保护的解决方案。 在构造 DT 时，Pivot 利用 gini 杂质增益作为度量来找到树节点的最佳分割。 评估包括线性运算、除法和比较（详见第 IV-A 节）。 为了保护隐私，Pivot 在技术上使用 Paillier 同态加密（HE)进行线性运算，并使用秘密共享（SS）技术（更准确地说，SPDZ 框架[14]）进行比较和划分。
尽管有如此理想的隐私保证，但 Pivot 中的一个内在问题是其开销过高，这主要是因为（1）基于 SS 的比较和除法协议依赖于大量的位分解，然后是逐位求值，这引入了多线程间的高通信量 回合，以及 (2) Pivot 需要昂贵的 HE 操作以及 HE 密文和秘密共享值之间的转换。 例如，它需要在每个树节点中进行 3k + 2 次同态标量乘法和 4k 次转换，其中 k 是类别数。 综上所述，这些不恰当的用法造成了巨大的通信和计算开销，减少密码学开销是这项工作的主要重点。</p>

<p>PriVDT是一种用于垂直决策树训练和推理的高效两方加密框架。 两方设置对于现实世界的应用程序是合理的，并且已广泛应用于隐私保护机器学习 。 具体来说，PriVDT 建立在类似于 Pivot的离线/在线范式之上，并采用了几个新的构建块来提高效率，尤其是在在线阶段。 首先，利用高级密码原语，函数秘密共享 (FSS)，我们提出了一个有效的比较协议来选择最佳拆分。 主要挑战是直接使用通用 FSS 方案会导致高评估开销，因为它需要两次 FSS 调用来处理环绕问题。通过提供一种新颖的理论分析来解决这个问题，该分析表明即使只调用一个 FSS 评估，在适当的参数设置下发生环绕问题的可能性也可以忽略不计。 与最有效的 FSS 方案相比，这实现了大约 2 倍的在线运行时间减少，同时在树的训练中导致轻微的精度损失（小于 0.6%）。 对于通信，协议只需要一个具有 2 个环元素的通信轮。</p>

<p>其次，在迭代的Goldschmidt的范式上设计了一种高效且具有隐私增强的分区协议。上述协议揭示了除数的范围，这可能会导致DTS构建中分裂统计的泄漏。通过集成上述比较协议，更重要的是设计新的基于FSS的安全范围和数字分解协议来解决此隐私泄漏问题。新见解是将除数分解为子弦，因此在隐藏中间值的同时评估了较小的位长的范围。 结果，我们的部门协议在提供严格的安全保证的同时，在先前的工作替代方案方面取得了数量级的改善。 值得注意的是，比较和部分协议可以在其他关键隐私应用程序中使用，这可能具有独立的利益。 此外，采用轻巧的添加秘密共享原始图来改善线性操作的评估开销，即加法和乘法，而与之前相似，利用PRF来生成相关的随机性，以进一步降低通信成本。对设计的构建块给出了形式化的安全证明和具体的复杂性分析，并实施它们以验证效率优势。 比较和除法协议在经验上比 Pivot 的替代方案好几个数量级，无论是在在线运行时还是在通信方面。</p>

<p>在数据稀缺且多方分布的场景下，决策树的隐私保护协同学习受到了广泛关注。 在这种学习模式下，全局数据集可以用两种不同的方式进行划分。 (1) 垂直划分：各方持有具有不同特征的相同样本。 比如金融风险管理任务的一个例子。（2）水平划分：不同方拥有各自的样本但共享相同的特征。 例如，两家地区性银行可能拥有来自各自地区的不同用户群。 但是他们的业务很相似，所以特征空间是一样的。 在本文中，我们重点关注垂直分区设置。</p>]]></content><author><name>Kunkun</name><email>kunliu701x@gmail.com</email></author><category term="Decision Tree Evaluation" /><category term="STPC" /><category term="HE" /><summary type="html"><![CDATA[纵向决策树的高效两方密码框架]]></summary></entry><entry><title type="html">安全高效地外包决策树推理</title><link href="https://zeemeil.github.io/posts/2023/03/blog-post-5/" rel="alternate" type="text/html" title="安全高效地外包决策树推理" /><published>2023-03-09T00:00:00+08:00</published><updated>2023-03-09T00:00:00+08:00</updated><id>https://zeemeil.github.io/posts/2023/03/blog-post-1</id><content type="html" xml:base="https://zeemeil.github.io/posts/2023/03/blog-post-5/"><![CDATA[<p>安全高效地外包决策树推理</p>

<p>将机器学习推理服务外包到云端越来越受欢迎。 但是，这也会给提供商的专有模型和客户的敏感数据带来隐私风险。 本文着眼于决策树推理，提出了一个安全高效外包决策树推理的框架。 针对隐私和效率，我们提出了一种在安全推理的在线执行中仅使用轻量级密码学的定制协议。加性秘密共享并解决各个组件中的问题，包括安全输入特征选择、决策节点评估和推理结果生成。 我们的协议在在线安全推理过程中不需要提供者和客户端的交互，这与之前的实际部署工作相比具有明显的优势，因为它们都在需要同步和连续交互的客户端-提供者设置下运行。 性能评估展示了我们的安全设计的效率，以及为客户带来的实质性性能优势，与非外包环境中的现有技术相比。 为了促进满足更多服务需求的实际使用，我们还研究了随机森林和基于分类特征的决策树的安全外包推理的扩展。</p>

<p>使用机器学习来支持自动化数据分析在各种应用领域越来越受欢迎，例如医疗诊断、信用风险评估、人脸识别和 更多的。 有了训练有素的模型，机器学习推理就可以自动预测新的输入。 随着云计算的广泛采用，将此类推理服务外包到云中变得越来越流行 [7]、[8]，这是由于云计算的好处广为人知。 然而，这种做法引起了严重的隐私问题。 首先，提供商的模型通常是专有的，因为训练有效的模型需要对数据集、资源和专业技能进行大量投资。 提供者自然不愿意将模型以明文形式暴露给云。 其次，作为模型输入的客户数据也可能是敏感数据，例如医疗数据或财务数据。 直接以明文形式提供输入可能很容易侵犯客户的隐私。 因此，有必要从一开始就在推理外包设计中嵌入安全性，以确保专有模型和敏感客户数据的隐私。</p>]]></content><author><name>Kunkun</name><email>kunliu701x@gmail.com</email></author><category term="Decision Tree Evaluation" /><category term="Outsourcing" /><category term="HE" /><summary type="html"><![CDATA[安全高效地外包决策树推理]]></summary></entry><entry><title type="html">使用阈值完全同型加密的多客户私人决策树分类</title><link href="https://zeemeil.github.io/posts/2023/03/blog-post-2/" rel="alternate" type="text/html" title="使用阈值完全同型加密的多客户私人决策树分类" /><published>2023-03-06T00:00:00+08:00</published><updated>2023-03-06T00:00:00+08:00</updated><id>https://zeemeil.github.io/posts/2023/03/blog-post-1</id><content type="html" xml:base="https://zeemeil.github.io/posts/2023/03/blog-post-2/"><![CDATA[<p>使用阈值完全同型加密的多客户私人决策树分类</p>

<p><strong>背景</strong>
决策树是以其简单性和有效性而闻名的广泛使用的机器学习分类器。 最近的作品主要关注如何在两党设置中私下评估决策树，在该设置中，客户端的敏感数据或服务器的决策树模型与另一方保持秘密。 但是，越来越多地需要在相互信任的客户之间进行机器学习任务的协作。
在本文中，我们考虑了一个多用户的私人决策树分类协议，其中一台服务器持有决策树，并提供秘密数据。 在协议末尾，客户或服务器可以在保护每个单独输入的隐私时学习分类结果。 更重要的是，我们还将最大程度地减少与每个客户的互动。 为了达到目标，我们利用完全同态加密的阈值。 我们的协议被证明是针对“诚实但懒惰”的对手的安全性。 此外，我们尝试改善计算开销和密文的大小，从而使我们的构建效率更高。</p>

<p>机器学习分类算法可以在给出新数据作为查询时可以做出鉴定，该查询广泛适用，用于推荐系统，垃圾邮件过滤和疾病诊断等。 客户可能不想透露的信息。 敏感数据的泄漏，例如远程诊断中的健康记录，将是生死或死亡的问题。 另一方面，分类模型可能是服务器不愿共享的宝贵资产，因为专门的研究工作花费了大量资源。 此外，公开模型可能会泄露有关敏感培训数据的信息，甚至违反了法律法规。</p>

<p>理想情况下，隐私保护机器学习分类可以保护客户和模型所有者的隐私。 在本文中，我们关注决策树分类器，它以其简单、有效和低训练成本而闻名。 评估过程从作为树的第一个决策节点的根节点开始。 它将模型中特定于节点的阈值与客户端查询中的输入变量之一进行比较。 比较的布尔结果决定遍历哪个子节点。 该过程遍历每个级别并最终导致叶节点，将分类标签表示为树分类结果。
最近，已经提出了许多用于两方设置中决策树评估的有效隐私保护解决方案。 例如，Tai 等人。 提出了一种纯粹基于加法同态加密的私有决策树评估协议，没有引入用于隐藏树结构的虚拟节点，因此它适用于实践中丰富的稀疏树。 然而，在许多相关场景中，多个互不信任的客户端之间的协作变得司空见惯，因为它提供了更精确的分类。 例如，拥有一名患者不同健康记录的多家医院合作提供更好的疾病诊断，而这只有在每个个体输入的隐私得到保证的情况下才能实现。</p>

<p>多客户端私有决策树分类。 为了捕获上述示例性协作场景，我们提供了多客户端私有决策树分类协议，其中来自多个客户端的敏感输入变量可能会发送到服务器以进行协作分类。 具体来说，我们希望有一个3轮协议，多个客户端用第一轮消息初始化协议，然后服务器在本地进行节点评估和路径评估并发出第二轮消息，然后多个客户端和服务器 联合恢复分类标签作为评估结果。 安全性要求是服务端或多个客户端可以获知最终的分类结果，仅此而已。 本质上，服务器可以从收到的分类标签中导出客户端输入查询的相应树路径，因为它拥有树模型。 更重要的是，我们希望最小化客户端的成本，因为它们可能是弱物联网设备：（1）每个客户端的计算和通信成本都与树的大小无关； (2) 如果客户端对接收最终结果不感兴趣，或者可能失去连接从而无法继续协议，则允许客户端在第一轮之后下线，即所谓的“诚实但懒惰”的各方.
我们的建设概览。 受 3 轮多客户端私有决策树分类评估协议的启发，同时保持客户端的最小成本，我们使用低深度阈值完全同态加密（TFHE）。</p>

<p>其基本思想是：（1）每个客户端都对自己的秘密输入变量进行分量加密，然后服务器通过同态运算将加密后的客户端输入变量与自己的每个决策节点的加密阈值进行比较。 然后服务器将所有节点比较的加密结果位存储在其子节点中。 对于决策节点d ∈ D，让加密的比较位由Enc(b) ← Enc(xd.index ≥ d.threshold)给出，然后将Enc(b)存入右子节点，将Enc(1−b)存入 在左子节点。 为了在树中找到对应分类标签的正确遍历路径，需要考虑所有路径。 通过组合该路径上所有决策节点的比较位，可以安全地评估所有路径。 特别地，服务器可以同态乘以每条路径的比较位，只有正确的路径的加密值 l.cmp 等于 1，否则等于 0。相应的叶节点 l ∈ L 持有正确的分类标签 $l_{label}$。(2) 服务器通过加同态广播正确分类标签的加密Enc(l.cmp)·Enc(llabel).  (3) 只要有阈值数量的客户端和服务器可用于发布部分解密（比如 n 中的 t），即使几个弱客户端已经离线，正确的分类标签也会显示出来。 此外，TFHE 方案的紧凑性确保了深度成比例的通信复杂度，与树的大小无关。</p>

<p>当然，上述基于TFHE的基本解决方案成功地降低了多个客户端的开销。 然而，服务器的计算开销太高而无法限制其在实践中的使用。 Tuneo 等人表明即使在两方设置中，也需要几秒钟的单次执行才能输出具有 50-500 个决策节点的树的分类结果。 众所周知，同态乘法比同态加法引起更大的噪声增长。 即，降低路径评估的乘法深度可以显着节省计算成本，也可以节省密文大小。 因此，我们转向 Tai 等人的路径评估方法，它只调用同态加法 。 具体来说，他们的方法将 Enc(1−b) 存储在右子节点，而 Enc(b) 存储在左子节点。 通过同态地添加该路径上所有节点的加密比较位来评估路径。 这个总和称为路径成本。 现在，只有当路径成本等于 0 时，相应的叶节点才拥有正确的分类标签。</p>

<p>与上述基本解决方案相反，为了正确输出最终的分类标签，我们让阈值参与方共同解密所有路径成本。 然后他们可以找到成本等于0的确切路径，并且可以通过将标签同态地添加到路径成本来发送相应叶节点的分类标签。 为了避免更多关于未选择路径和分类标签的信息被泄漏，将路径成本乘以随机非零元素 r0,r1。</p>

<p>值得注意的是，在我们的 n-1 个客户端和一个服务器场景中，由于我们假设某些客户端和服务器之间可能发生串通，因此必须独立和私密地选择两个随机非零值 r0，r1。 否则，r0 = 0 或 r1 = 0 将违反协议的正确性或服务器树模型的隐私。 最重要的是，r0 的泄露将直接泄露非选择路径成本，侵犯了客户端和服务器双方的隐私。 如果 r0 和 r1 不是独立选择的，则可能会显示未选择的分类标签。 因此，在我们的多客户端私有决策树分类协议中，我们要求 n 个客户端和服务器在第一轮通过广播其加密提供自己的贡献 rij，其中 i = 0, 1，使得 ri = ri1 + · · · + rn+1，假设这些方是半诚实的或依靠非交互式零知识证明来对抗恶意对手。 此外，我们仍然要求服务器对Tai文中引入的叶节点进行随机洗牌，以防止客户端了解输出叶节点在树中的位置。</p>

<p>对于阈值 FHE 解密，通过将 Shamir t-out-of-n 秘密共享应用于秘密密钥 sk，正如 Asharov 等人所指出的。需要每个解密器 i 为部分解密添加额外的模糊噪声，以防止有关她的秘密密钥共享 ski 的信息泄露。 令人惊讶的是，所有其它文献中使用了一种相对效率较低的方法，即每一方在广播之前向部分解密添加独立的噪声。 但是，此方法不适用于我们的案例。 在我们的重建过程中，当部分解密乘以拉格朗日系数时，这些噪声值被放大了 O((n!)2)。 为了解决这个问题，我们采用DovGordon的技术：让每个解密者I 将一些小噪声ei 秘密共享到(e1i , · · · , eni ) 中并将共享发送给其他各方。 然后每个解密器 I 在本地将 $\Sigma e_i$ 添加到其部分 jj 解密中。 由于 Shamir 秘密共享方案是线性的，这相当于将 e1 + · · · + en 添加到原始重构输出值，显着降低了噪声增长，从而提高了我们 TFHE 构造的整体性能。</p>

<p>两方私人决策树评估。 现有的两方私有决策树评估协议根据底层技术可分为三类，包括同态加密、乱码电路和秘密共享。</p>

<p>博斯特等人将决策树视为一个高次多项式，将分类结果作为输出，然后使用全同态加密（FHE）对其进行评估。 吴等通过添加虚拟节点来形成一个完整的二叉树来隐藏树结构，从而摆脱了 FHE。 但在很多实际情况下，决策树很深但很稀疏，将这样一棵树填充成完整的树会导致通信和计算上的巨大浪费。 泰等人没有引入虚拟节点来完成树转换，并提出了一种更有效的协议，其新概念是“路径成本”，通过纯加法同态加密来执行路径评估。 2018 年，Joye 和 Salehi 中的安全比较数量减少到 d-1，其中 d 是树深度，每个比较在每个树级别进行 2 轮。 因此，总轮数与 d 呈线性关系。该协议仍然需要服务器添加虚拟节点以隐藏树结构。 最近，Tueno 等人通过对在客户端公钥下同态加密的密文树进行评估，引入了一种非交互式决策树评估协议。</p>

<p>Tueno 等人通过将树表示为数组并使用乱码电路 (GC) 实现不经意的数组索引 (OAI)，提出了一种亚线性决策树协议。 早些时候，Brinckell 等人和巴尼等人提出了基于 GC 的隐私保护决策树评估解决方案，其性能优于上述方法。</p>

<p>Cock等提出了一种基于秘密共享的信息理论上安全的决策树评估协议，并利用基于商品的密码学 来减少交互次数。 对于特别小的树，他们的协议比所有其他协议执行得更好。 但是他们的协议对于大树来说效率较低，因为它在树的大小上仍然是线性的。 2019 年，Damgard 等人使用了一种新的基于秘密共享的协议，它在环而不是字段上工作，以显着提高实现效率，尽管通信成本略高。</p>

<p>阈值完全同态加密。 TFHE 方案允许对加密数据进行评估以及密文的阈值解密，其中密钥持有者的阈值数量必须聚集在一起才能解密任何密文。
2012 年，Asharov 等人使用 n-out-of-n 阈值解密程序扩展了Brakerski等人的 FHE 结构，以实现低通信（独立于正在计算的函数）、低交互和云辅助计算（大量计算）的多方计算 可以有效地外包给云服务）。 他们的协议是在公共随机字符串 (CRS) 模型中进行 3 轮交互，在可以重用设置时进行 2 轮交互。 通过假设非交互式零知识论证 (NIZKs) 存在，构造在（环）错误学习（LWE）假设下是安全的，可以抵御完全恶意的攻击者。</p>

<p>多密钥，FHE可以动态地将在一个密钥下加密的密文扩展为来自各方的密钥串联。 Lo ´pez-Alt 等人首先提出了一种基于 NTRU 假设的多密钥 FHE 方案。 Clear 和 McGoldrich介绍了一种基于 LWE 的结构。 2016 年，Mukherjee 和 Wichs通过显着简化的构造，在没有混淆的标准假设下，在 CRS 模型中提出了前两轮通用多方计算（MPC）协议。 这些方案对于密钥是单跳的，在计算开始之前必须知道参与方的列表。 同年，Peikert-Shiehian和 Brakershi-Pelman都试图解决这个问题。 陈等构建了一个多跳方案，它可以加密一个环元素，而不是一个比特。 不幸的是，以前的所有方案都是不切实际的，无法实施。 最近，陈等人提出了实现多跳多密钥 FHE 方案的首次尝试。</p>

<p>2018 年，Boneh 等人设计了一个名为通用阈值器的新原语，它由相对重的阈值完全同态加密（TFHE）构建，支持 t-out-of-n 阈值访问结构。 2020 年，Badrinarayanan 等人引入了称为阈值多键 FHE (TMFHE) 的新概念，以处理可以重建输出的任意访问模式。 然而，由于处理噪声放大的方法，上述两种方案是不切实际的。 特别是，Boneh 等人首先证明了 {0,1}-LSSS 类足以表达 t-out-of-n 阈值访问结构。 然后他们使用了一种不同的线性秘密共享方案，其中重建系数始终是二进制的，而不是与拉格朗日系数相乘。 但是从阈值访问结构到 {0, 1}-LSSS 的转换确实非常昂贵且不切实际。</p>

<p>决策树考虑多个客户端提供他们各自的输入变量，一个服务器提供树模型。 直观上，对输入查询 x 进行决策树分类意味着遍历决策树； 在每个决策节点，将相应的输入条目与节点特定的阈值进行比较。 根据比较结果，选择右子节点或左子节点作为下一个节点。 遍历在某个叶节点处结束，它告诉输入查询根据树的唯一分类标签。</p>

<p>设客户端I的输入xi为Z上的ki维正整数向量，则总输入查询为x = (x1,··· ,xn−1) ∈ Zk，其中k = k1 +···+ kn−1。 令 T 为决策树，包括一组决策节点 D 和一组叶节点 L。然后决策树对输入 x = (x1, · · · , xn−1) 的评估由 llabel = T (x ) 与 T : Zk → {l1label,··· ,lmlabel}，其中 m 为叶节点数。 该函数从根节点开始，然后在每个决策节点进行比较。 令 j 为决策节点的索引，f 为将决策节点索引 j 映射到相应输入条目的索引 f(j) 的函数。 此外，设 tj 为决策节点 j 的阈值。 然后如果 xf(j) ≥ tj 对于节点 j 成立，则选择右孩子作为下一个决策节点，否则选择左孩子节点。 最后，函数输出最终叶节点的分类标签llabel。</p>

<p>两个依赖于低深度阈值完全同态加密（TFHE）的高效多客户端私有决策树分类协议。</p>

<p>节点评估。 对于节点评估，需要相应的加密输入条目和加密节点特定阈值的逐位比较方法。
遵循 Tuneo 等人的想法和 Cheon 等人提出的安全比较协议。然后 Tuneo 等人将所有节点比较的加密结果存储在其子节点中。 具体地，对于决策节点d∈D，让加密的比较位结果由Enc(b)←Enc(xd.index≥d.threshold)给出，其中x是来自多个客户端的整个输入整数向量。 最后，他们将 Enc(b) 存储在右子节点，将 Enc(1−b) 存储在左子节点。</p>

<p>为了能够输出客户端输入向量的正确分类标签，遍历唯一正确的路径，应该考虑所有路径。 可以通过组合该路径上所有决策节点的存储比较位来评估每条路径。在两方设置中，Tueno 等人使用的想法是，通过同态乘以每条路径的这些比较位结果，只有正确的路径才会有一个等于 1 的加密值，否则为 0。相应的叶节点拥有正确的分类标签。</p>

<p>多客户端私有决策树分类。 在本节中，我们介绍了我们的多客户端私有决策树分类协议，以捕获多个客户端提供秘密数据并且单个服务器拥有决策树模型的场景。 特别地，我们要求至多服务器和客户端能够获得分类结果的知识，而仅了解其他方的个人输入。 我们的协议对“诚实但懒惰”的各方是安全的，允许多个客户在参与第一轮后下线。
显然，通过使用 [5] 中建议的 TFHE 技术，而不是在单个客户端的公钥下评估密文树，我们可以推广 [25] 中的构造以获得多客户端私有决策树分类方案。 但是，我们需要解决两个效率问题。
首先，正如 Tuneo 等人所指出的。 [25] 本身，服务器的计算开销仍然非常高，限制了它在实践中的使用。 为了减少整体计算开销，我们利用同态乘法比同态加密带来更多噪声增长的事实。 也就是说，我们需要一个低乘法深度树评估电路，以节省计算成本和密文大小。 然后我们转向由 Tai 等人 [24] 提出的称为“路径成本”的新概念。 通过结合 [25] 的节点评估和 [24] 的路径评估，我们提出了以下 Evaluation* 算法，如图 5 中所定义。</p>

<p>然后，为了保证最终分类结果的输出，我们让阈值的参与方通过 Evaluation* 共同解密所有返回的密文对。 在我们的 n-1 个客户端（n≥3）和单服务器应用程序场景中，某些客户端和服务器之间可能会发生串通，我们需要公平私密地生成这些随机值 {r0l,r1l}。 直观上，{r0l}的泄露会直接泄露其他路径开销，破坏客户端和服务端的隐私。 如果 {r0l,r1l} 被恶意选择，未选择的分类标签可能会被泄露，从而损害服务器树模型的隐私。 因此，我们让 n−1 个客户端和服务器提供他们的贡献 {ril,j}，其中 i ∈ {0, 1}，j ∈ [n]，在第一轮中对这些值 {r0l , r1l } 广播其相应的加密。</p>

<p>其次，对于支持 t-out-of-n 访问结构的阈值 FHE，[1,5] 中介绍的一般模糊噪声技术是不切实际的。 事实上，为了确保关于秘密密钥份额 sk1, · · · , skn 或私有输入 μ1, · · · , μl 的信息不会被部分解密 {pi}i∈S 泄露，它需要每个解密者添加独立的 在广播之前将部分解密弄脏。</p>

<p>然而，在我们的 t-out-of-n TFHE.FinDec 程序中，这些噪声值将乘以拉格朗日系数，放大 O((n!)2)。 为了解决这个问题，我们利用了[18]中的想法：让每一方 Pi secret 将一些小噪声 ei 分享到 (e1i , · · · , eni ) 并通过私有点对点将分享发送给另一方 通道（假设 PKI）。 然后每个解密器 Pi 在本地添加 }ei 到它的部分解密。</p>

<p>根据 Shamir 秘密共享方案的线性，这相当于将 e1 + · · · + en 添加到原始重构输出值。 通过使用上述方法，我们显着降低了评估密文的噪声，并进一步降低了我们 TFHE 构造的计算成本和密文大小。</p>

<p>总之，我们提高了底层一般 TFHE 结构的效率，支持 t-out-of-n 访问结构，以及树同态评估电路的乘法深度。 我们的多客户端私有决策树分类协议如图 6 所示。</p>

<p>然后以随机顺序发出上述评估密文对的集合，由 ctC 表示。</p>

<p>其中我们要求在每个部分解密 pj 中使用的额外模糊噪声是 ej1 + · · · + ejn，而不是独立选择的随机噪声。</p>

<p>对唯一等于0的costl输出对应的resultl，作为分类标签。</p>

<p>假设底层 TFHE 方案和我们的 Evaluation* 算法的评估正确性，则上述构造是一个多客户端私有决策树分类协议，输出正确的分类标签。</p>

<p>基于TFHE和Evaluation∗的正确性，costl等于0当且仅当l.cmp等于0，则对应的结果满足resultl = r1l × 0 + llabel = llabel。</p>

<p>安全性：假设底层 TFHE 方案的语义安全性和模拟安全性，使用我们的 Evaluation* 算法，那么上述构造是一个多客户端私有决策树分类协议，可以安全地对抗“诚实但懒惰”的对手。</p>

<p>通过底层 TFHE 方案的语义安全性和模拟安全性，敌手 A 可以从协议执行中获得的唯一信息是 {(costl,resultl)}l∈L，仅此而已其他诚实方密钥共享或 输入。 根据 Evaluation* 算法，每个 (costl, resultl) 等于 (r0l × l.cmp, r1l × l.cmp + llabel)，其中 r0l 和 r1l 是完全未知的，并且对每一方都是随机的。 那么每一方可以从集合{(r0l × l.cmp, r1l × l.cmp + llabel )}中得到的唯一信息是(0,llabel)，即第一个元素等于0的分量和 相应的第二个组件。 此外，由于加密密文对 {Enc(costl),Enc(resultl)}l∈L 由服务器按照图 6 中第 3 行的要求随机打乱，客户端无法获知输出叶的位置 服务器决策树中的节点。</p>]]></content><author><name>Kunkun</name><email>kunliu701x@gmail.com</email></author><category term="Decision Tree" /><category term="MPC" /><category term="HE" /><summary type="html"><![CDATA[使用阈值完全同型加密的多客户私人决策树分类]]></summary></entry><entry><title type="html">使用亚线性预处理的安全多方计算</title><link href="https://zeemeil.github.io/posts/2023/02/blog-post-1/" rel="alternate" type="text/html" title="使用亚线性预处理的安全多方计算" /><published>2023-03-02T00:00:00+08:00</published><updated>2023-03-02T00:00:00+08:00</updated><id>https://zeemeil.github.io/posts/2023/02/blog-post-1</id><content type="html" xml:base="https://zeemeil.github.io/posts/2023/02/blog-post-1/"><![CDATA[<p><a href="https://link.springer.com/chapter/10.1007/978-3-031-06944-4_15">亚线性预处理的安全多方计算</a></p>

<p>详细计算能否使用到多用户的PPML中</p>

<p><strong>背景</strong>
安全多方计算 (MPC) 协议使一组具有私有输入的各方能够计算其输入的联合函数，同时仅显示输出。 优化 MPC 协议的渐近和具体效率一直是大量工作的主题。 在考虑针对恶意对手的安全性时，这个问题尤其具有挑战性，他们可以积极地腐蚀各方。
设计此类协议的一个成功方法是采用预处理。 在输入已知之前，各方运行离线协议以生成相关的秘密随机性，该随机性由轻量级且通常为“非加密”（或“信息论”）在线协议使用。 1该模型也称为 离线/在线模型，在不能保证诚实的多数时特别有吸引力，因为它允许将协议的繁重的“加密”部分推到离线阶段，从而最大限度地降低在线协议的成本。 源自 Beaver  的工作，他展示了如何使用“乘法三元组”进行不诚实多数的安全算术计算，许多安全计算协议广泛使用相关随机性。</p>

<p>大部分工作都在预处理模型中设计了协议，具有针对恶意对手的安全性。 一种强大的循环技术使用同态 MAC 来验证在线协议产生的值； 由此产生的相关性是“经过验证的”乘法三元组的一种形式。 事实上，所谓的“SPDZ”工作线是该领域的领先方法，催生了一系列优化、实施和改进。 另一种最近的方法包括基于次线性分布式零知识的编译器 。 根据设计，在所有这些协议中，大部分工作都在预处理阶段。 特别是，现有协议中此阶段的典型通信复杂性比被评估电路的规模高出几个数量级。</p>

<p>最近构建的伪随机相关发生器 (PCG) 展示了改善某些预处理程序的通信需求的巨大潜力。 PCG 为各方提供了一种方法，可以在不进行通信的情况下，将短的相关种子局部扩展为某些相关性的长伪随机实例。 事实上，最近基于噪声学习奇偶性（LPN）或其 Ring-LPN 变体的 PCG 结构能够具体有效地安全生成许多乘法三元组，具有次线性通信和良好的具体效率，包括种子的安全生成]。 这直接为具有半诚实安全性的 MPC 提供了实用的次线性通信预处理。</p>

<p>然而，这些技术通常不适用于经过身份验证的乘法三元组的更复杂的相关性，这是将这种方法扩展到具有恶意安全性的协议所必需的。 用于经过验证的三元组的具体有效 PCG 仅存在于大字段上的 2 方相关的有限设置中。2 使用 PCG 生成的“BDOZ” 风格的成对经过验证的三元组对于算术电路可能是可行的 和少量的聚会，但会导致在线交流的聚会人数呈二次方增长。 在布尔电路的 2 方评估的情况下，用于 OT 的 PCG 可用于生成 F2 上的乘法三元组，从而实现半诚实的在线协议，每门 2 位，而对于恶意安全，需要传达 2 个元素 每个门一个大的有限域。
总而言之，目前的 PCG 机器不能有效地用于生成支持在线协议的经过验证的三元组，该在线协议与参与方的数量成线性比例，或者甚至是布尔电路的 2 方协议。 因此，在这些设置中具有预处理的 MPC 的所有实用协议都要求预处理的通信复杂性远大于电路尺寸。</p>

<p>本文为不诚实多数设置中的安全多方计算 (MPC) 提供了新的可行性和具体的效率结果。 我们的一般方法可以实例化，以提供第一个实用的次线性通信方法来生成“SPDZ 式”相关性，在实现恶意安全的意义上，在线阶段既非加密又在电路尺寸上具有线性通信 和派对的数量。
我们的方法不需要像 SPDZ 中那样经过身份验证的乘法三元组，而是仅使用半诚实（未经身份验证的）三元组以及基于 Boyle 等人最近协议变体的额外预处理材料。因此，我们的协议继承了后一种协议简洁的相关随机性特征——也就是说，额外的预处理材料（除了乘法三元组之外）在电路尺寸上只是次线性的。 从具体效率的角度来看，我们的方法对于 2 方情况下的布尔电路也很有吸引力，因为没有具体有效的 PCG 来生成二进制认证三元组，而用于 OT 的 PCG 可以生成二进制非认证三元组。
更具体地说，我们的协议支持在任何有限域或环 Z2k 上的算术电路预处理模型中的安全计算。 我们说在线阶段是“信息论的”（或“非密码学的”），因为相关的随机分布 D 在计算上与某些分布 D’ 无法区分，对于后者，使用 D’ 执行在线阶段会得出真实信息 理论上的安全。 离线预处理阶段具有与电路大小的平方根成比例的通信。</p>

<p>请注意，在线阶段的信息论性质使得实现亚线性离线通信的任务非常重要，而不是简单地忽略离线阶段（零离线通信）并在在线阶段执行完整安全计算的简单解决方案方法。
我们还从现有的同态加密方案和现有的伪随机相关生成器中提出了主要定理的具体有效实例（基于强大但合理的“仅线性”假设）。</p>

<p><strong>技术</strong>
技术利用了分布式零知识和 BGIN’21。根据最近的一系列工作，使用次线性分布式零知识机器来实现低通信解决方案，以将半诚实编译为恶意安全。
这些协议的高层结构如下。 在协议中，除最后一步外，各方首先运行底层的半诚实安全协议。 然后，在交换最终消息和揭示输出之前，各方首先共同执行验证阶段，其中断言第一阶段的正确性。 这是通过在分布式数据上生成和验证零知识证明（以下简称“分布式零知识”）来完成的，这可以通过简单语言的次线性证明大小来完成。分布式零知识 (DZK) 证明考虑了具有单个证明者和多个验证者的设置，每个验证者都持有声明的各个部分； 证明者将证明的一部分发送给每个验证者，验证者之间进行交互以验证证明。
MPC 协议应用程序中 DZK 证明系统的具体结构和使用因作品而异：每一方单独作为证明者来断言自己的适当行为，或者各方共同模仿集体上的证明者一组生成的值，没有任何一方完全知道。</p>

<p>在任何多方设置中都会出现复杂情况，其中不止一个腐败方，因为在证明实体和验证实体之间可能会发生勾结。 为了提供可靠性，被证明的陈述必须以某种方式在各方之间稳健地持有，这样腐败的验证者就不能修改他的陈述部分以使证明不正确地被接受。 对于诚实多数的 MPC，这种稳健性是自然的，诚实的各方本身拥有足够的信息来确定（秘密）声明。 对于不诚实的大多数情况，确保鲁棒性不太清楚。BGIN的主要思想是，可以设计在预处理过程中产生的相关随机性，以便充当额外的“经销商”方，其行为必须独立于输入来确定 ，但保证其行为是诚实的。</p>

<p>当然，要使这种方法起作用，相关随机性的真实生成至关重要。 在理想化的预处理模型中，如 BGIN 中所考虑的那样，这是免费的：假设各方从理想的诚实经销商那里获得了从相关随机性中诚实生成的样本。 我们的挑战是消除这种假设，并在亚线性通信中以仍然满足整体安全性的方式生成这些值作为协议的一部分。 此外，我们希望在不求助于昂贵的通用工具（例如完全同态加密）的情况下这样做。 相反，我们将依赖任何加法同态加密。 这样做将需要我们在此过程中修改 BGIN’21 相关性和协议。
BGIN’21 经销商（略有修改）。 考虑 DZK 联合证明者仿真方法。 在半诚实执行之后，双方希望共同证明，对于每个乘法门，他们持有的输出线份额与他们持有的两条输入线份额正确对应。 为了将其压缩为单个验证而不是 |C|，各方对每个乘法门 g 采样随机系数 αg，并验证所有门检查的随机线性组合确实验证了。 这减少了证明单个 2 次多元多项式在 O(|C|) 秘密共享输入上评估为 0 的挑战。</p>]]></content><author><name>Kunkun</name><email>kunliu701x@gmail.com</email></author><category term="MPC" /><summary type="html"><![CDATA[亚线性预处理的安全多方计算]]></summary></entry><entry><title type="html">A Review on Private Decision Tree</title><link href="https://zeemeil.github.io/posts/2022/09/blog-post-1/" rel="alternate" type="text/html" title="A Review on Private Decision Tree" /><published>2022-09-25T00:00:00+08:00</published><updated>2022-09-25T00:00:00+08:00</updated><id>https://zeemeil.github.io/posts/2022/09/blog-post-1</id><content type="html" xml:base="https://zeemeil.github.io/posts/2022/09/blog-post-1/"><![CDATA[<p>通过同态加密和转码进行高效的私有决策树评估</p>

<p>机器学习即服务场景通常需要客户端信任服务器并以明文形式提供敏感数据。然而，随着最近对全同态加密 (FHE) 方案的改进，许多此类应用程序可以以保护隐私的方式设计。在这项工作中，我们关注这样一个问题，私有决策树评估（PDTE）——服务器有一个决策树分类模型，而客户端希望使用该模型对他的私有数据进行分类，而不泄露数据或分类结果到服务器。我们提出了一种基于 FHE 技术的高效非交互式 PDTE 设计，我们称之为 SortingHat。作为我们设计的一部分，我们解决了与 FHE 相关的多个密码问题：
(1）我们提出了一种快速同态比较函数，其中一个输入可以是明文格式； 
(2) 我们在 FHE 设置中设计了一种高效的二叉决策树评估技术，我们称之为同态遍历，并将其与我们的同态比较一起应用来评估私有决策树分类器，获得比当前状态更快的运行时间数量级艺术;
(3) 通过将我们的同态比较应用于 FiLIP 流密码，我们提高了通信成本和转码的时间复杂度。
通过原型实现，我们证明我们改进的转码解决方案的运行速度比以前的工作快 400 倍左右。我们最终在 PDTE 设计方面提出了一个选择：我们提出了一个没有转码的 SortingHat 版本，与之前的工作相比，它在计算成本方面实现了显着的改进；另一个带有转译的版本，其通信成本小约 2 万倍，但运行时间相当。</p>

<p>机器学习 (ML) 作为一种基于云的服务来提供有用的服务，如自动健康评估、财产价值评估、数据分类等，对机器学习 (ML) 的需求不断增长。这通常需要用户向服务提供敏感数据，例如用户的 DNA 资料、医疗信息或财务记录。因此，至关重要的是询问消费者是否可以在不放弃数据隐私的情况下使用这种机器学习作为服务。
在这项工作中，我们专注于决策树算法 [Qui86,RM05,AEM13,RM14]，它是机器学习中的一类重要分类器，在健康分析、信用风险评估、垃圾邮件过滤、等 [WFH11,FPS02,AEM13,KTG06,SG11] 我们的场景由一个服务器组成，该服务器持有一个决策树模型，一个客户端希望使用服务器的决策树模型对其私有数据进行分类，而不会将数据透露给服务器。一个明显的解决方案是服务器将决策树模型发送给客户端，客户端在本地运行计算——然而，这超出了 ML 作为服务的目的。那么，我们是否可以设计一种高效的私有决策树评估（PDTE）算法，其中服务器具有决策树分类模型，并且客户端希望使用服务器的计算能力和模型对其私有数据进行分类，而不会将数据泄露给服务器？</p>

<p>Such we have $\log n &gt; \mu / 2 ^ k$ for some $k$, and we research the communication overhead of SortingHat using standard</p>]]></content><author><name>Kunkun</name><email>kunliu701x@gmail.com</email></author><category term="Privacy Computing Technology" /><category term="Decision Tree" /><category term="Homomorphic Encryption" /><summary type="html"><![CDATA[通过同态加密和转码进行高效的私有决策树评估]]></summary></entry><entry><title type="html">SortingHat私有决策树评估</title><link href="https://zeemeil.github.io/posts/2022/09/blog-post-2/" rel="alternate" type="text/html" title="SortingHat私有决策树评估" /><published>2022-09-06T00:00:00+08:00</published><updated>2022-09-06T00:00:00+08:00</updated><id>https://zeemeil.github.io/posts/2022/09/blog-post-1</id><content type="html" xml:base="https://zeemeil.github.io/posts/2022/09/blog-post-2/"><![CDATA[<p>私有决策树评估方案</p>

<ol>
  <li>
    <p>论文的目的的贡献
私有决策树评估（PDTE），即服务器有一个决策树分类模型，而客户使用该模型对其私有数据进行分类，而不向服务器透露数据或分类结果。SortingHat是基于FHE的非交互式安全决策树分类方案。
(1) 设计了一个快速的同态比较函数，其中一个输入可以是明文形式；
(2) 在FHE设置中设计了一个高效的二进制决策树评估技术，即文中的<strong>同态转码(Homomorphic Transcipher)</strong>，与同态比较一起用于评估私有决策树分类器，提高几个数量级的运行时间；
(3) 把FiLIP流密码应用于同态比较，降低了通信成本和转码时间。</p>
  </li>
  <li>
    <p>对照论文
对照论文为<a href="https://arxiv.org/abs/1909.08362">Non-interactive private decision tree evaluation</a></p>
  </li>
  <li>
    <p>当前解决此问题的现有技术
私有决策树评估（PDTE）的问题可以用安全两方计算问题的技术来解决[HV16,KO04]。但是基于Yao’s garbled circuits[Yao86,BHR12,KRRW18]的此类问题的通用算法并不适合机器学习即服务，只因它们产生很高的计算开销，且需要很多轮的交互，这导致了很高的通信开销。</p>
  </li>
  <li>
    <p>问题核心
这个方案设计的目的就是保证用户的数据和结果的信息不泄漏给服务器，然后降低计算复杂度和通信量。</p>
  </li>
  <li>
    <p>同态加密
文中算法可用任何类似GSW的同态加密方案来实例化，例如FHEW、TFHE、GAHE或FINAL。这些方案的有点是利用非对称噪声传播，在一长串同态乘法后保持噪声开销的可加性。
FiLIP加密：FiLIP 是一种基于滤波器置换器和非线性函数的二进制流密码 。 加密和解密算法工作如下： 设 $ K \in {0, 1}^z $ 为密钥； 对于消息的每一位$m_i$，我们使用前向安全 PRNG(伪随机数生成器) 来采样。定义$s_i$是$K$上$z$比特向量，$P_i$是$z$到$z$上的置换（排列），$w_i$是$z$维的二进制向量，称作白化。对于某个具体函数$ f : {0,1}^z \rightarrow {0,1}$，我们计算 $c_i := m_i \oplus f(P_i(s_i) \oplus w_i) \in {0, 1}$。</p>
  </li>
  <li>
    <p>决策树和秘密决策树估计(PDTE) 
定义一个函数  $ T : Z^n \rightarrow {\tau_0, \dots , \tau_k−1 } $ 将属性向量 $ x = (x_0, \dots , x_n−1) $ 映射到有限的分类标签集 ${\tau_0, \dots , \tau_k−1 } $。决策树是具有决策节点和叶节点集合的二叉树结构。 决策树模型 $ \mathcal M = (\mathcal T , t, a) $ 由函数 $\mathcal T$ 和节点函数$t,a$组成。其中，$t : [0, m-1] \rightarrow \mathbb{Z}$决策树节点阈值函数，$a : [0, m-1] \rightarrow [0, n-1]$是节点属性索引函数。
$\mathsf{lab}: [m, M-1] \rightarrow {\tau_0, \dots, \tau_k -1 } $ 是每个叶节点分配一个标签函数。</p>
  </li>
</ol>

<hr />

<ul>
  <li>节点索引，给定一棵决策树，通过<strong>广度优先遍历</strong>计算顺序定义索引，即从索引为 $0 $的根开始，如果树是完整的，则索引为 $v $ 的节点的左子节点为 $ 2v + 1 $，并且右孩子 $2v + 2$。使用这种索引方案，树的叶子从左到右读取，对应于排序$ l_0, \dots, l_{2^s}−1 $，其中 $2^s$ 是完整树的节点数。</li>
  <li>决策树评估，给定一个属性向量 $ x $和一个决策树模型 $ \mathcal M = (\mathcal T , t, a) $ ，然后从根节点开始，决策树评估在每个决策节点 $ v $处评估索引$ v \in [m] $处评估的决策 $ b \leftarrow [ x_{a(v))} \ge t(v) ] $，并移动到右侧（如果$ b = 0 $）或左侧（如果 $ b = 1$ ）子节点。评估返回到达的叶子的标签作为计算结果，用  $ \mathcal T(x)$ 表示。</li>
  <li>私有决策树评估（PDTE），客户端发送一个向量$x = (x_0, \cdots , x_n-1) $，服务器存在一个私有的决策树模型$ \mathcal M = (\mathcal T , t, a) $，评估功能函数 $ \mathcal T(x) $ 的只向客户端透露 $ \mathcal T(x) $（除了客户端已经知道的关于树的元参数），而服务器没有学到任何关于 $x $ 的信息。</li>
</ul>

<hr />

<ol>
  <li>同态比较函数: í
在决策树中，客户端发送的输入值与每个节点的阈值进行比较。需要一个同态的比较函数，如果输入值大于阈值$d$，则输出$1$，否则输出$0$。</li>
</ol>

<hr />

<p>输入: $c = \mathsf {RLWE}_{N,t,q} (X^\mu) = (a, b) = (a, a \cdot s + \Delta \cdot X^u + e)$, $c$为密文。</p>

<p>输出：$c ^\prime = \mathsf {RLWE}_{N,t,q} (\mu(X))$; $ \mu_0 = 1 $ if $ \mu \ge \bar t $ else $ \mu_0 = 0 $，其中 $ \mu_0 $ 是常数项.</p>

<ol>
  <li>定义 $ T(X) := X^{2N-N} + X^{2N - (N-1)} + \cdots + X^{2N - \bar t} $.</li>
  <li>令$ c^\prime = (a^\prime, b^\prime) = (a \cdot T(X), b \cdot T(X))$ .</li>
  <li>由于$ \bar t \leq \mu \leq N $，可以判断$ \mu_0 = 1 $ if $ \mu \ge \bar t $ else $ \mu_0 = 0 $ .</li>
</ol>

<hr />]]></content><author><name>Kunkun</name><email>kunliu701x@gmail.com</email></author><category term="Privacy Computing Technology" /><category term="Neural Network" /><category term="Homomorphic Encryption" /><summary type="html"><![CDATA[私有决策树评估方案]]></summary></entry></feed>