Chapter 4 安全模型¶
1 隐私性(Privacy)¶
- 允许值(Allowed Information):被攻陷方自己的输入输出 \(\{x_j, y_j\}_{P_j \in C}\)
- 泄露值(Leakage):被攻陷方在协议运行中的完整视图 \(\{view_j\}_{P_j \in C}\)
- 直观要求:如果协议总是满足泄露值不包含比允许值更多的信息,那么协议就是隐私的
如何形式化定义不包含更多信息?
- 若 \(V_1\) 可以从 \(V_2\) 高效计算出来,就认为 \(V_1\) 不包含比 \(V_2\) 更多的信息
- 由于协议通常是随机算法,允许值和泄露值都应看作随机变量
- 因而最终要比较的是分布而不是单个值
- 定义:若存在高效模拟器 \(S\),使得 \(S\big(\{x_j, y_j\}_{P_j \in C}\big) \approx \{view_j\}_{P_j \in C}\),则协议满足隐私性
随机功能时要看联合分布
协议:\(P_1\) 没有输入,取随机比特并输出,同时把该比特发送给 \(P_2\),\(P_2\) 没有输入输出

- 泄露值:\(P_2\) 的视图 \(\text{view}_2 = {b}\),与 \(P_1\) 的输出相同
- 模拟值:\(S(∅) = {b'}\),与 \(P_1\) 的输出无关
当理想功能本身带随机性时,不能只比较视图分布,还必须比较模拟值/泄露值与诚实方输出的联合分布:

\(P_2\) 的视图与 \(P_1\) 的输出是完全相关的,而模拟器没有诚实方 \(P_1\) 的输出信息,因此无法模拟这种相关性,符合协议不安全的直觉。
2 恶意安全性(Malicious Security)¶
- 半诚实(Semi-honest)模型:严格执行协议,但试图从视图中恢复隐私
- 恶意(Malicious)模型:可以任意偏离协议,发送任意消息、修改中间值、提前中止
- 恶意敌手关心的不只是获得信息,而是产生影响
允许的攻击:输入替换
三方计算
若 \(P_1\) 被攻陷并把输入替换为 \(x_1' = 1\),则它得到
这等价于它在理想世界中诚实地提交另一个输入,因此这是允许影响。
不允许的攻击:篡改中间值
对同样的函数,设电路按如下顺序计算:
- 计算 \([u]_t = [x_1x_2]_t\)
- 计算 \([y_1]_t = [ux_3]_t\)
- 输出重建 \(y_1\)
假设 \(P_1\) 在输入阶段提交 \(x_1' = 0\),但在第一次乘法协议中,不按规则分发 \([h(\alpha_1)]_t\),而是分发
其中 \(r_1\) 是重组向量的第一个系数。于是最终得到:
再继续诚实执行后可得
但在理想功能中,当 \(x_2 = 0\) 时,\(P_1\) 不可能总是学到 \(x_3\),因而这类攻击不能被输入替换解释,是不允许影响。
- 允许影响(Allowed Influence):理想功能中允许的攻击效果,典型就是输入替换
- 实际影响(Actual Influence):真实协议里,敌手通过任意偏离协议所造成的结果
- 如果对于每个攻击真实协议的敌手,都存在一个模拟器 \(S\),能够把敌手在真实世界中的攻击转化为理想世界中的允许影响,则协议是恶意安全的。
完整安全性(Full Security) = 隐私性 + 恶意安全性
- 隐私性:被攻陷方只能学到允许值中的信息
- 恶意安全性:被攻陷方只能对输出造成允许的影响
一个完整的模拟器需要同时完成两件事:
- 将敌手在真实协议中的攻击行为,转化为理想功能中的允许影响(通常是输入替换)
- 在给定允许值的前提下,为敌手生成与真实执行一致的泄露视图
3 通用可组合框架¶
引入
- 独立 (Stand-alone) 模型:仅保证单次运行安全,无法抵抗并发攻击
- 通用可组合 (Universal Composability, UC) 框架:引入环境 \(\mathcal{Z}\),\(\mathcal{Z}\) 可与敌手实时交互,任意环境/任意协议组合下仍安全
- 环境 \(\mathcal{Z}\):代表协议外部世界,可向参与方、敌手持续发送消息
- 敌手 \(\mathcal{A}\):真实世界中的攻击者
- 模拟器 \(\mathcal{S}\):理想世界中模拟真实攻击的算法
真实世界 VS 理想世界
- 真实世界:环境 \(\mathcal{Z}\) 与协议 \(\Pi\)、敌手 \(\mathcal{A}\) 交互
- 理想世界:环境 \(\mathcal{Z}\) 与理想功能 \(F\)、模拟器 \(\mathcal{S}\) 交互
真实协议及其运行

\(\mathcal{C}\) 连接所有参与方,被攻陷方接入 \(\mathcal{A}\),\(\mathcal{Z}\) 与诚实方交互并与敌手 \(\mathcal{A}\) 通信。
- \(\mathcal{Z} \to P_i\): 输入 (\(\mathcal{Z}\)-\(I/O\))
- \(\mathcal{Z} \to \mathcal{A}\): 传递控制消息
- \(P_i/\mathcal{A} \to \mathcal{C}\): 发送请求 (\(\text{SEND}, j, m\))
- \(\mathcal{C} \to \mathcal{A}\): 泄露 (\(\text{SENT}, i, \text{len}(m)\))
- \(\mathcal{A} \to \mathcal{Z}\): 传递泄露消息
- \(\mathcal{A} \to \mathcal{C}\): 调度 (\(\text{DELIVER}, k\))
- \(\mathcal{C} \to P_j/\mathcal{A}\): 传递 (\(\text{RECEIVE}, i, m\))
- \(P_i \to \mathcal{Z}\): 输出
敌手知道谁向谁发送、消息长度,决定消息是否/何时被传递(调度顺序),但不能读取内容、不能篡改或改写发送方。被攻陷方的全部行为由敌手 \(\mathcal{A}\) 决定。
理想协议及其运行

\(\mathcal{F}\) 替代网络 \(\mathcal{C}\),被攻陷方接入模拟器 \(\mathcal{S}\),\(\mathcal{Z}\) 与“诚实方”交互,并与“敌手” \(\mathcal{S}\) 通信。
- \(\mathcal{F}\)-I/O 线:连接诚实方与 \(\mathcal{F}\)(输入/输出转发)
- \(\mathcal{F}\)-控制线:连接 \(\mathcal{S}\) 与 \(\mathcal{F}\)(允许影响)
- \(\mathcal{S}\)-控制线:连接 \(\mathcal{Z}\) 与 \(\mathcal{S}\)(控制与泄露).
真实/理想世界对环境 \(\mathcal{Z}\) 的接口完全一致,核心目标是通过 \(\mathcal{S}\),使理想世界对 \(\mathcal{Z}\) 不可区分于真实世界。
- \(\mathcal{F}_{\text{sfe}}\) 充当可信第三方:
- 接收输入:通过 I/O 线接收 \((\text{INPUT}, \text{inputID}, x)\)
- 记录输入并向模拟器发送泄露消息:\((\text{INPUT}, \text{inputID})\)
- 接收控制消息:模拟器发送 \((\text{OUTPUT}, \text{outputID}, i)\)
- 计算输出 \(y\) 并发送 \((\text{OUTPUT}, \text{outputID}, y)\) 给 \(P_i\)(或被攻陷方对应的 \(\mathcal{S}\))
注 \(1\):若函数是概率性的,\(\mathcal{F}_{\text{sfe}}\) 需自行生成随机性并参与计算。
注 \(2\):\(\mathcal{F}_{\text{sfe}}\) 允许敌手控制诚实方的输出接收时机和条件,不保证所有诚实方都能收到输出。
- 良好环境(Good Environment):运行时间关于安全参数为多项式
- 兼容性(Compatibility):在任意良好环境下,协议/理想功能与敌手/模拟器的总运行时间仍为多项式
- 高效协议(Efficient Protocol):与平凡敌手一起运行时仍满足兼容性
- 高效协议下,所有机器的总运行时间仍是多项式,允许协议处理来自环境的无限数量请求。
4 UC 安全实现¶
针对特定敌手
若对与 \(\Pi\) 兼容的敌手 \(\mathcal{A}\),存在与 \(F\) 兼容的模拟器 \(\mathcal{S}\),使得对每个良好环境 \(\mathcal{Z}\) 都有
则称协议 \(\Pi\) 对敌手 \(\mathcal{A}\) 安全实现了理想功能 \(F\)。
针对所有敌手
若对每个与 \(\Pi\) 兼容的敌手 \(\mathcal{A}\),协议 \(\Pi\) 都对其安全实现 \(F\),则称:
平凡敌手的完备性
若 \(\Pi\) 是高效协议,并且只证明了它对平凡敌手安全实现了 \(F\),则仍可推出:
这是 UC 框架中非常常用的简化证明入口。
5 UC 安全的效果¶
并发组合定理
- 如果 \(\Pi\) 在单实例设置中是一个高效的协议,那么它在多实例设置中仍然是高效的。
- 如果 \(\Pi\) 在单实例设置中 UC-安全实现了 \(F\),那么它在多实例设置中也 UC-安全实现了 \(F\)。

子协议组合定理
如果以下条件均成立:
- \(\Pi^*\) 是一个高效的协议,它安全地实现了理想功能 \(\mathcal{F}^*\)
- \(\Pi\) 是一个高效的协议,它使用 \(\Pi^*\) 作为子协议
- 混合协议 \(\Pi_{\mathcal{F}^*}\)(其中理想功能 \(\mathcal{F}^*\) 取代了子协议 \(\Pi^*\))UC-安全实现了 \(\mathcal{F}\)
那么 \(\Pi\) UC-安全实现了 \(\mathcal{F}\)。

- 安全实现的传递性:假设 \(\Pi, \Pi', \Pi''\) 是高效的混合协议.如果 \(\Pi\) UC-安全实现了 \(\Pi'\) 且 \(\Pi'\) UC-安全实现了 \(\Pi''\),则 \(\Pi\) UC-安全实现了 \(\Pi''\)。
6 半诚实安全性¶
受限框架的真实世界
- 被攻陷方:报告从通信网络接收到的所有消息及其生成的随机比特串
- 合法敌手:立即把控制权交还给报告方或向环境发送若干报告后交还控制权
- 合法环境:收到敌手报告时必须立即交还控制权或停止
- 敌手与环境只能在不中断协议流程的前提下进行监控。
- 敌手只能通过控制线与系统交互,不能直接篡改诚实方 I/O 线上的消息。
- 敌手可以调度消息传递顺序,但不能得知/更改诚实方之间的消息内容。
- 敌手能看到发往被攻陷方的消息以及被攻陷方发出的消息。
- 平凡敌手只把这些报告原样转发给环境。
受限框架的理想世界
- 理想功能 \(F\) 的 I/O 线直接连接环境
- 模拟器 \(\mathcal{S}\) 不能修改被攻陷方的输入输出
- 被攻陷方依然是诚实但泄露:接收输入时把输入告诉模拟器,接收输出时把输出告诉模拟器
在受限框架下,若对每个兼容敌手都存在模拟器,使得真实世界与理想世界对任意良好环境不可区分,则协议在半诚实模型下安全。
半诚实安全同样继承平凡敌手完备性、并发组合定理、子协议组合定理和传递性。
7 攻陷方式¶
- 静态攻陷(Static Corruption):协议开始前就确定被攻陷方
- 适应性攻陷(Adaptive Corruption):协议执行中动态选择攻陷对象
- 主动/可移动攻陷(Proactive / Mobile Corruption):参与方可在之后恢复,通常需要安全擦除与周期性刷新
为什么适应性攻陷更难?
因为模拟器不仅要解释当前消息,还要能补出一个被新攻陷方的内部历史状态,这比静态攻陷困难得多。
1. UC 框架中的环境 \(Z\) 在现实里对应什么?
可把它理解为“协议外的整个世界”:应用层逻辑、用户行为、并发会话、网络调度、甚至其他正在同时运行的协议。
2. 模拟器的两项核心任务是什么?
- 把真实攻击转化为理想世界中的允许影响
- 基于允许值生成与真实执行一致的泄露视图
3. 一个协议调用的子协议或理想功能还能再被别的协议调用吗?
可以。 这正是 UC 组合定理的意义:安全实现的子模块可以像“黑盒组件”一样被继续复用。