跳转至

隐私计算与数据安全汇总版#

约 3856 个字 21 行代码 预计阅读时间 27 分钟

第一章 安全多方计算 (MPC)#

1.1 核心概念#

范式转变

从依赖可信第三方转向分布式计算,消除单点故障风险

\[ \boxed{y = f(x_1,...,x_n)} \]
  • 定义:多方协作计算函数\(f\)时满足:
  • ✅ 正确性:计算结果准确
  • 🔒 隐私性:仅输出结果可见
  • 核心矛盾:隐私输入保护与协同计算的平衡

第一价格密封拍卖案例

# 输入:竞拍价 x_i,输出:(最高价, 中标者)
def auction(x):
    winner = argmax(x)
    return x[winner], winner

1.2 基础协议架构#

1.2.1 秘密分享机制#

复制秘密分享 (Replicated Secret Sharing)

素数 \(p\),秘密 \(x \in \mathbb{Z}_p\),取\(n=3\),要求进行秘密分发并合并

  • 份额生成:随机选择 \(r_1, r_2 \in \mathbb{Z}_p\),计算 \(r_3 = (x - r_1 - r_2) \mod p\)
  • 分配
    • \(P_2\): \((r_1, r_3)\)
    • \(P_3\): \((r_1, r_2)\)
    • \(P_1\) 自留:\((r_2, r_3)\)
  • 秘密恢复 任何两方合作可恢复秘密: $$ x ≡ r_1 + r_2 + r_3 \mod p $$

1.2.2 安全加法协议 (Secure Addition Protocol)#

协议描述

输入:每个参与方 \(P_i\) 持有秘密 \(x_i \in \mathbb{Z}_p\) 的份额
输出:所有参与方获得 \(y = \left(\sum x_i\right) \mod p\)
协议流程(以 \(n=3\) 为例):

  1. 输入预处理

    • 每个 \(P_i\)\(x_i\) 按复制秘密分享方案分配: $$ x_i \equiv r_{i,1} + r_{i,2} + r_{i,3} \mod p $$
    • \(P_1\) 持有:\(\{r_{i,2}, r_{i,3}\}\)
    • \(P_2\) 持有:\(\{r_{i,1}, r_{i,3}\}\)
    • \(P_3\) 持有:\(\{r_{i,1}, r_{i,2}\}\)
  2. 本地份额聚合

    • 每个参与方 \(P_j\) 计算本地持有的所有份额和: $$ s_1 = \sum_{i=1}^3 r_{i,1} \mod p \quad (P_2, P_3 \text{计算}) $$ $$ s_2 = \sum_{i=1}^3 r_{i,2} \mod p \quad (P_1, P_3 \text{计算}) $$ $$ s_3 = \sum_{i=1}^3 r_{i,3} \mod p \quad (P_1, P_2 \text{计算}) $$
  3. 结果重构

    • 所有参与方交换并检验 \(s_1, s_2, s_3\) 的值
    • 共同计算: $$ y = s_1 + s_2 + s_3 \mod p $$

正确性证明

\[ \begin{align*} y &= \sum_{\ell=1}^3 s_\ell \mod p \\ &= \sum_{\ell=1}^3 \sum_{i=1}^3 r_{i,\ell} \mod p \\ &= \sum_{i=1}^3 \underbrace{\left( \sum_{\ell=1}^3 r_{i,\ell} \right)}_{x_i} \mod p \\ &= \sum_{i=1}^3 x_i \mod p \quad \blacksquare \end{align*} \]

隐私性分析

  • 中间值 \(s_1, s_2, s_3\) 均为随机数之和,满足: $$ \forall \ell \in {1,2,3}, \quad s_\ell \sim \text{Uniform}(\mathbb{Z}_p) $$
  • 模拟器可生成假 \(s'_1, s'_2\) 满足: $$ s’_3 = y - s’_1 - s’_2 \mod p $$ 与真实协议计算不可区分

1.2.3 安全乘法协议 (Secure Multiplication Protocol)#

安全乘法协议 (Secure Multiplication Protocol)

输入:秘密 \(a, b \in \mathbb{Z}_p\) 已按复制秘密分享方案分配 ,举例,\(P_1\) 获得 \(a_2,a_3,b_2,b_3\) 输出:所有参与方获得 \(y = (a \cdot b) \mod p\)
协议流程(以 \(n=3\) 为例):

  1. 本地交叉项计算
    • 各参与方利用本地持有的份额计算:
\[ \begin{align} P_1 \text{计算} &: u_1 = (a_2 b_2 + a_2 b_3 + a_3 b_2) \mod p \\ P_2 \text{计算} &: u_2 = (a_3 b_3 + a_1 b_3 + a_3 b_1) \mod p \\ P_3 \text{计算} &: u_3 = (a_1 b_1 + a_1 b_2 + a_2 b_1) \mod p \end{align} \]
*注:$a_i, b_j$ 表示 $a, b$ 的第 $i, j$ 个份额*
  1. 安全求和
    • 调用安全加法协议计算: $$ y = (u_1 + u_2 + u_3) \mod p. $$

正确性证明

\[ \begin{aligned} a \cdot b &= (a_1 + a_2 + a_3)(b_1 + b_2 + b_3) \mod p \\ &= \sum_{i=1}^3 \sum_{j=1}^3 a_i b_j \mod p \\ &= \underbrace{(a_1 b_1 + a_1 b_2 + a_2 b_1)}_{u_3} + \underbrace{(a_2 b_2 + a_2 b_3 + a_3 b_2)}_{u_1} + \underbrace{(a_3 b_3 + a_1 b_3 + a_3 b_1)}_{u_2} \mod p \\ &= (u_1 + u_2 + u_3) \mod p \quad \blacksquare \end{aligned} \]

1.3 安全威胁模型#

恶意参与方攻击

攻击类型 防御机制
输入替换 博弈论激励机制
协议执行篡改 多方一致性校验
共谋攻击 门限签名方案

局限性认知

  • 无法阻止输入篡改的天然限制
  • 依赖通信信道安全假设
  • 三方协议向N方扩展的复杂性

1.3.1 输入替换攻击防御#

输入替换攻击特性

攻击形式:恶意方选择非真实输入值 \(x_i' \neq x_i\)
影响范围:改变最终计算结果 \(y' = f(x_1,...,x_i',...,x_n)\)
防御局限:协议层面无法完全阻止,需结合外部机制

缓解策略: 1. ​输入承诺机制: - 预提交阶段使用Pedersen承诺: $$ C_i = g{x_i}h \mod p $$ - \(g,h\):公开群元素 - \(r_i\):随机数 - 结果验证阶段强制打开承诺

  1. 经济惩罚机制: - 引入保证金制度,异常输入导致结果偏差时罚没抵押 - 使用零知识证明验证输入合规性

1.3.2 协议偏离攻击防御#

一致性验证协议

攻击类型:伪造份额/篡改中间结果
防御目标:确保协议执行与数学定义严格一致

防御机制1:份额分发验证#

执行阶段:秘密分享阶段 (Sec 1.2.1)
验证流程: 1. 当 \(P_i\) 发送份额给 \(P_j\) 时,同步发送承诺值: - \(P_1\) 发送给 \(P_2\)\(Commit(r_{1,1}), Commit(r_{1,3})\) - \(P_1\) 发送给 \(P_3\)\(Commit(r_{1,1}), Commit(r_{1,2})\) 2. 接收方 \(P_j\) 请求打开承诺: - 若 \(Open(Commit(r_{i,k})) \neq r_{i,k}\),判定 \(P_i\) 违规

数学保证: $$ \forall i,j,k,\quad r_{i,k}^{(P_j)} = r_{i,k}^{(P_i)} \mod p $$

防御机制2:中间结果交叉验证#

执行阶段:安全加法协议结果重构 (Sec 1.2.2步骤3)
验证流程: 1. 每个参与方公布两份s_ℓ计算证据: - \(P_1\) 公布:\(s_2^{P_1}, s_3^{P_1}\)
- \(P_2\) 公布:\(s_1^{P_2}, s_3^{P_2}\)
- \(P_3\) 公布:\(s_1^{P_3}, s_2^{P_3}\) 2. 结果一致性检查: $$ \begin{cases} s_1^{P_2} \stackrel{?}{=} s_1^{P_3} \ s_2^{P_1} \stackrel{?}{=} s_2^{P_3} \ s_3^{P_1} \stackrel{?}{=} s_3^{P_2} \end{cases} $$ 3. 若任意等式不成立,启动错误定位协议

防御机制3:乘法协议交叉项审计#

执行阶段:安全乘法协议步骤1 (Sec 1.2.3)
验证流程: 1. 预生成Beaver三元组 \((α,β,γ=αβ)\) 并秘密分享 2. 执行乘法协议时额外计算: $$ \delta = (a-α)(b-β) = ab - αb - βa + γ $$ 3. 验证: $$ \delta + αb + βa \stackrel{?}{=} γ + ab \mod p $$ 4. 偏差值超过阈值时判定恶意行为

1.4 协议安全性增强#

1.4.1 正确性保障#

定理:在一致性验证协议下,最终结果 \(y\) 满足: $$ y = f(x_1,…,x_n) \mod p $$ 证明: 1. 若所有验证通过,则保证: $$ \forall r_{i,k}, s_ℓ \text{ 满足 } \sum r_{i,k} = x_i $$ 2. 乘法协议中交叉项验证确保: $$ ab \equiv \sum u_i \mod p $$

1.4.2 隐私性保持#

定理:防御机制不泄露额外信息
证明: 1. 承诺值 \(C_i\) 在DL假设下完美隐藏 2. 交叉验证过程仅公开线性组合值: $$ s_ℓ = \sum r_{i,ℓ} \sim \text{Uniform}(\mathbb{Z}_p) $$ 3. Beaver三元组审计使用预先生成的随机数,与真实输入无关

1.5 协议执行流程图#


graph TD

A[秘密分享] --> B[输入承诺]

B --> C{恶意检查}

C --通过--> D[安全加法]

C --拒绝--> E[终止协议]

D --> F[安全乘法]

F --> G[结果验证]

G --有效--> H[输出y]

G --无效--> I[错误追溯]

第二章 隐私计算与密码学基础#

2.1 可证明安全框架#

Goldwasser-Micali

“现代密码学是建立在数学证明基础上的工程学科”

2.1.1 安全框架介绍#

\[ \boxed{\text{安全证明} = \text{形式化定义} + \text{计算假设} + \text{归约证明}} \]
关于定义安全性的思路

Katz 和 Lindell 在《Introduction to Modern Cryptography》中总结了现代密码学的核心原则:

  1. 形式化定义(Formal Definition)
  2. 精确假设(Precise Assumptions)
  3. 严格安全性证明(Rigorous Security Proofs)

密码学中的安全性定义由安全保证威胁模型两部分组成:

  • 安全保证:规定方案应满足的安全属性,即敌手成功攻击的条件。
  • 威胁模型:定义敌手可执行的操作和可见的信息,但不限定具体攻击策略。

加密为例,直觉上,安全性似乎可以定义为:

敌手不能从密文恢复明文。

  • 若方案泄露 50% 明文,虽然剩余部分无法破译,但仍然是不安全的。
  • 若方案允许敌手判断明文是否大于 20 万,仍然会泄露信息。

因此,正确的定义是:

敌手不能从密文中获得任何关于明文的信息。

🔐 保密性基础#
\[ \begin{aligned} &\boxed{\text{完美保密性}} &&: \forall m_0,m_1 \in \mathcal{M},\ \delta(\mathsf{Enc}(m_0), \mathsf{Enc}(m_1)) = 0 \\ &\boxed{\text{计算保密性}} &&: \forall \mathsf{PPT}\ \mathcal{A},\ \mathsf{Adv}_{\mathcal{A}}^{\mathsf{IND}}(\lambda) \leq \mathsf{negl}(\lambda) \end{aligned} \]
🛡️ 威胁模型演进#
graph LR
    A[COA] -->|仅观察密文| B[KPA]
    B -->|已知部分明文| C[CPA]
    C -->|选择明文攻击| D[CCA2]
    style A fill:#f9f,stroke:#333
    style D fill:#f99,stroke:#300
攻击类型 能力描述 典型防御模型
COA 被动监听网络流量 OTP加密
KPA 获取部分明文-密文对 AES-CBC
CPA 主动获取任意明文的加密 RSA-OAEP
CCA2 自适应选择密文解密查询 ECIES
🧩 核心安全模型#
IND-CPA (选择明文攻击不可区分)

graph TD
    A[敌手] -->|获取公钥| B[Challenger]
    B -->|生成挑战密文| A
    A -->|猜测明文| B
    style B fill:#f0f3ff,stroke:#4a7
- 目标: 区分加密明文的随机性 - ✔️ 应用: Signal协议 - ❌ 局限: 不抗密文篡改

IND-CCA2 (自适应选择密文攻击)

graph LR
    A[敌手] -->|解密查询| B[Oracle]
    B -->|返回解密结果| A
    A -->|构造关联密文| B
    style B fill:#ffe,stroke:#d90
- 创新点: 允许除挑战密文外的任意解密 - 🔑 应用: PGP加密 - ⚠️ 注意: 需要防填充预言攻击

🔬 密码学基础假设#

离散对数家族

\[ \boxed{\mathbb{G}=\langle g \rangle},\ \mathsf{DLP}(g^x) \xrightarrow{\text{强化}} \mathsf{CDH}(g^a,g^b) \xrightarrow{\text{抽象}} \mathsf{DDH}(g^a,g^b,g^{ab}) \]
假设 数学描述 应用案例
DL \(g^x\)反推\(x\) ElGamal加密
CDH 计算\(g^{ab}\) DH密钥交换
DDH 区分\((g^a,g^b,g^{ab})\) 伪随机生成器

其他重要假设

RSA假设

$$ \boxed{c \equiv m^e (\mathrm{mod} N)} $$ - 依赖大整数分解困难性 - 应用: SSH协议认证

椭圆曲线假设 (ECDLP)
  • 密钥长度更短
  • 应用: 比特币地址生成
🏗️ 假设层次结构#
graph BT
    A[理想模型] --> B[ROM]
    B --> C[强假设]
    C --> D[DDH]
    C --> E[LWE]
    D --> F[CDH]
    E --> F
    F --> G[DL]
    style A fill:#f0f,stroke:#300
    style G fill:#9f9,stroke:#090
  • 可靠性排序: ROM > LWE > DDH > CDH > DL
  • 工程实践: 优先选择高层假设,权衡效率与安全

2.1.2 IND-CPA 安全模型#

核心特性

CPA安全禁止敌手进行任何解密查询,仅允许加密能力

公钥加密IND-CPA游戏 \(\mathsf{PubK}_{\mathcal{A},\Pi}^{\mathsf{CPA}}(\lambda)\)
IND-CPA安全形式化定义

Game \(\mathsf{PubK}_{\mathcal{A},\Pi}^{\mathsf{CPA}}(\lambda)\):

  1. Challenger生成\((pk,sk) \leftarrow \mathsf{Gen}(1^\lambda)\)
  2. \(\mathcal{A}\)获得\(pk\)并可以访问加密预言机\(\mathsf{Enc}_{pk}(\cdot)\)
  3. \(\mathcal{A}\)输出等长的\(m_0, m_1\)
  4. Challenger随机选择\(b \xleftarrow{\$} \{0,1\}\),计算\(c^* \leftarrow \mathsf{Enc}_{pk}(m_b)\)
  5. \(\mathcal{A}\)分析\(c^*\)后输出猜测\(b'\)
  6. 游戏返回\(\mathbb{I}[b'=b]\)

简化流程#

sequenceDiagram
    participant C as Challenger
    participant A as Adversary
    C->>C: (pk,sk) ← Gen(1^λ)
    C->>A: Send pk
    loop 加密查询(可选)
        A->>C: m
        C->>A: Enc_pk(m)
    end
    A->>C: m0, m1
    C->>C: b ← {0,1}, c* ← Enc_pk(m_b)
    C->>A: Send c*
    A->>C: b'
    alt b' = b
        C->>A: 1
    else
        C->>A: 0
    end
与CCA的核心差异
特性 CPA CCA
解密查询 ❌ 完全禁止 ✅ 允许(除挑战密文)
攻击难度 较弱 更强
典型应用场景 基础加密 安全通信协议
安全证明复杂度 较低 较高

图示说明:灰色虚线框表示CPA中禁用的功能

安全定义: $$ \forall \mathsf{PPT} \mathcal{A}, \exists \mathsf{negl}(\cdot) s.t. $$ $$ \Pr[\mathsf{PubK}_{\mathcal{A},\Pi}^{\mathsf{CPA}}(\lambda)=1] \leq \frac{1}{2} + \mathsf{negl}(\lambda) $$ 也即达成在选择明文攻击下的不可区分性

2.1.3 IND-CCA 安全模型#

关键区别

CCA安全允许敌手进行解密查询,但禁止解密挑战密文

公钥加密IND-CCA游戏 \(\mathsf{PubK}_{\mathcal{A},\Pi}^{\mathsf{CCA}}(\lambda)\)
IND-CCA安全游戏形式化

Game \(\mathsf{PubK}_{\mathcal{A},\Pi}^{\mathsf{CCA}}(\lambda)\):

  1. Challenger生成\((pk,sk) \leftarrow \mathsf{Gen}(1^\lambda)\)
  2. \(\mathcal{A}\)获得\(pk\)并可以访问解密预言机\(\mathsf{Dec}_{sk}(\cdot)\)
  3. \(\mathcal{A}\)输出\(m_0, m_1\)
  4. Challenger随机选择\(b \xleftarrow{\$} \{0,1\}\),计算\(c^* \leftarrow \mathsf{Enc}_{pk}(m_b)\)
  5. \(\mathcal{A}\)继续访问解密预言机(禁止查询\(c^*\)),输出猜测\(b'\)
  6. 游戏返回\(\mathbb{I}[b'=b]\)

游戏流程#

sequenceDiagram
    participant C as Challenger
    participant A as Adversary
    C->>C: (pk,sk) ← Gen(1^λ)
    C->>A: Send pk
    loop 解密查询阶段 1
        A->>C: c ≠ c*
        C->>A: Dec_sk(c)
    end
    A->>C: m0, m1
    C->>C: b ← {0,1}, c* ← Enc_pk(m_b)
    C->>A: Send c*
    loop 解密查询阶段 2
        A->>C: c ≠ c*
        C->>A: Dec_sk(c)
    end
    A->>C: b'
    alt b' = b
        C->>A: 1
    else
        C->>A: 0
    end

安全定义

\[ \forall\ \mathsf{PPT}\ \mathcal{A},\ \exists\ \mathsf{negl}(\cdot)\ s.t. \]
\[ \Pr[\mathsf{PubK}_{\mathcal{A},\Pi}^{\mathsf{CCA}}(\lambda)=1] \leq \frac{1}{2} + \mathsf{negl}(\lambda) \]

2.2 核心密码原语详解#

2.2.1 门限秘密分享#

Shamir (t,n)-门限方案

数学构造: $$ f(x) = s + \sum_{i=1}^t a_ix^i \mod p $$

  • 重构定理: $$ s = \sum_{i=1}^{t+1} f(x_i)\prod_{j≠i}\frac{x_j}{x_j-x_i} \mod p $$

安全属性

\[ \boxed{ \begin{aligned} &\text{完美隐私}:\ \forall S \subset \{1,...,n\}, |S|≤t \\ &\quad \delta(\{s_i\}_{i∈S}, \text{Uniform}) = 0 \end{aligned} } \]

2.2.2 密码学哈希函数#

哈希函数层次结构
graph BT
    RO[随机谕示机] --> CR[抗碰撞]
    CR --> PRE[抗原像]
    PRE --> SPA[抗第二原像]
    style RO fill:#f9f,stroke:#333
哈希类型 安全性要求 典型实现
MD5 ❌ 已被攻破 历史系统
SHA-256 ✅ 抗碰撞 (2¹²⁸) 比特币
SHA3-512 ✅ 抗量子攻击 政府系统

现实警告

# 抗碰撞性失效示例
def find_collision():
    return (m, m') s.t. H(m) == H(m')  # 实际可能找到!

2.2.3 茫然传输协议#

1-out-of-2 OT 协议流程
sequenceDiagram
    participant S as 发送方
    participant R as 接收方
    R->>S: 选择比特b,生成公钥pk_b
    S->>R: 加密消息: c₀=Enc(pk₀,m₀), c₁=Enc(pk₁,m₁)
    R->>R: 用sk_b解密c_b

安全条件

\[ \boxed{ \begin{aligned} &\text{发送方安全}: \ \forall \mathsf{PPT}\ \mathcal{A},\ \Pr[\mathcal{A}\ guess\ b] ≤ \frac{1}{2} + \mathsf{negl}(\lambda) \\ &\text{接收方安全}: \ \mathcal{S} \stackrel{c}{\approx} \mathcal{R} \end{aligned} } \]

2.2.4 形式化验证框架#

通用可组合性 (UC) 框架#

graph TB
    RealWorld[现实协议] -->|模拟器| IdealWorld[理想功能]
    Adversary -->|攻击| RealWorld
    Environment -->|输入/输出| RealWorld
    style IdealWorld fill:#ffe,stroke:#eb5

验证工具对比

工具名称 验证能力 典型应用
ProVerif 符号模型验证 协议形式化分析
Tamarin 时序逻辑验证 TLS协议验证
CryptoVerif 计算模型验证 混合加密分析

常见验证陷阱

# 不可提取承诺缺陷示例
class BadCommitment:
    def commit(self, m):
        return hash(m + "static_salt")  # 盐值固定导致可提取!

第三章 ???#

3.1 Shamir秘密分享方案#

3.1.1 数学基础#

$$

\begin{aligned} &\text{秘密多项式: } q_s(x) = s + \sum_{i=1}^t a_ix^i \mod p \ &\text{份额分发: } s_j = q_s(\alpha_j) \quad (\alpha_j \neq 0, \forall j) \end{aligned} $$

拉格朗日插值定理

给定\(t+1\)个点\((\alpha_i, s_i)\),唯一\(t\)次多项式: $$ q(x) = \sum_{i=1}^{t+1} s_i \prod_{\substack{j=1 \ j \neq i}}^{t+1} \frac{x-\alpha_j}{\alpha_i-\alpha_j} $$ 重组向量: $$ r_i = \delta_i(0) = \prod_{\substack{j=1 \ j \neq i}}^{t+1} \frac{-\alpha_j}{\alpha_i-\alpha_j} $$

3.1.2 安全属性#

graph LR
    S[秘密s] --> P((多项式构造))
    P -->|分发| S1(份额1)
    P -->|分发| S2(份额2)
    P -->|分发| Sn(份额n)

    classDef red fill:#fdd,stroke:#f00;
    classDef green fill:#dfd,stroke:#0f0;

    class S1,S2 red
    class S3,Sn green

完美隐私性证明: 1. 任意\(t\)个份额构成\(\mathbb{F}^t\)的满射 2. 存在双射映射\(\phi: \mathbb{F}^t \to \mathbb{F}^t\) 3. 均匀采样\(\mathbb{F}^t\)不泄露\(s\)信息

3.2 半诚实安全协议#

3.2.1 协议框架#

三阶段流程: 1. 输入分享阶段

def share_secret(s, t, n):
    poly = random_polynomial(s, t)
    return [poly.eval(alpha_i) for alpha_i in alpha_list]

  1. 计算阶段
    $$ \begin{aligned} &\boxed{加法:[a]+[b] = [a+b]} \ &\boxed{标量乘法:c[a] = [ca]} \ &\boxed{乘法协议:} \ &\quad 1. 本地计算[h_i] = [a_i] \cdot [b_i] \ &\quad 2. 重分享[h_i] \rightarrow [h]_t \ &\quad 3. 线性组合\sum r_i[h]_t = [ab]_t \end{aligned} $$

  2. 输出重构阶段
    使用拉格朗日插值: $$ y = \sum_{i=1}^{t+1} r_i \cdot s_i \mod p $$

3.2.2 安全性证明#

模拟器构造

模拟器算法: 1. 输入:腐败方输入\(\{x_j\}\),输出\(\{y_j\}\) 2. 模拟份额

for 每个输入门:
    生成随机多项式 f_j(x) 满足 f_j(0)=x_j
    伪造份额 s_i = f_j(alpha_i) 
3. 中间计算
对每个乘法门:
    本地生成随机中间值
    使用重组向量构造一致性份额
4. 输出阶段
根据已知输出y_j逆向构造诚实方份额

完美隐私性证明: 1. 输入分享阶段:\(t\)个随机点不泄露多项式信息 2. 乘法协议:双重掩膜保证中间值随机性 3. 输出阶段:已知结果可逆向插值构造

3.3 计算示例#

3.3.1 加法示例#

\[ \begin{aligned} &P_1持有 [4] = (5,6,7) \\ &P_2持有 [4] = (6,8,10) \\ &\text{本地相加得} [8] = (11,14,17) \end{aligned} \]

3.3.2 乘法协议分解#

graph TD
    A[输入a=2] -->|多项式2+x| A1((3,4,5))
    B[输入b=4] -->|多项式4-x| B1((3,2,1))
    A1 --> C[本地乘积]
    B1 --> C
    C --> D[9,8,5]
    D --> E[重分享]
    E --> F[新多项式8+2x-x²]
    F --> G[输出8]

步骤解析: 1. 本地计算乘积项:\(h_i = a_i \cdot b_i\) 2. 分发新份额:\(P_i\)\(h_i\)生成新的\(t\)次多项式 3. 线性组合重组:\(\sum r_i h_i = ab\)

3.4 协议优化#

3.4.1 批量处理优化#

\[ \boxed{ \begin{aligned} &\text{批量加法:}\sum [a_i] = [\sum a_i] \\ &\text{矩阵乘法:}[A] \times [B] = [AB] \end{aligned} } \]

3.4.2 预处理技术#

graph LR
    P[预处理阶段] -->|生成随机三元组| T((a,b,c=ab))
    T -->|存储| S[离线存储]
    S -->|在线阶段| U[快速计算]

优势: - 在线阶段减少80%通信量 - 支持异步并行计算 - 增强抗合谋攻击能力

3.5 扩展应用#

3.5.1 隐私集合求交#

\[ \boxed{PSI协议流程:} \begin{aligned} &1. Alice加密集合\{H(x_i)^{a}\} \\ &2. Bob加密集合\{H(y_i)^{b}\} \\ &3. 比较H(x_i)^{ab} = H(y_j)^{ba} \end{aligned} \]

3.5.2 联邦学习#

graph TB
    C[协调节点] -->|分发模型参数| W1((工作者1))
    C -->|分发模型参数| W2((工作者2))
    W1 -->|加密梯度| C
    W2 -->|加密梯度| C
    C -->|聚合梯度| U[更新模型]

安全保证: - 差分隐私注入 - 梯度值门限解密 - 模型参数零知识验证