如何写好Simulation证明(三): 半诚实敌手模型下的OT
4. Oblivious Transfer for Semi-Honest Adversaries
在本文中, 我们将给出一个证明: 基于enhanced OWP, 构造一个半诚实敌手模型下的OT. 首先我们先介绍enhanced OWP概念.
4.1 Enhanced OWP.
对这个特殊的OWP我们先不做过多的解释, 我们先关注参数. 一般正式的定义中, 一个OWP具有四个算法:
4.2 协议构造
- Input:
拥有 , 拥有 . 这两个人都有 , 这些参数定义了一个enhanced trapdoor permutation, 以及其 hardcore predicate .
runs , 获得 , 前者指定了一个enhanced OWP, 后者是其陷门. 把 发送给 . runs twice. 第一个值记为 , 第二个值记为 . 计算 . 发送 给 . 使用陷门, 计算出 对应的 . 并计算对应的hardcore, 之后拿想发送的两个值做上异或, 即: . 把 发送给 . 显然能够自己算出 .
4.3 安全性证明
这个协议的正确性是显然的, 我们需要证明其安全性. 我们用MPC的定义去证.
Thm: 假设
Proof: 根据之前的定义, 我们需要构造两个模拟器
Step 1: Construct
因为我们的目的是构造的
- Chooses a uniformly distributed random tape
for (后面运行 需要) - Run
twice independently to get - Output:
下面去证明协议产生的 view 和真实世界的 view 不可区分. 其实很简单, 我们看一下只需要证明
当
当
所以最终:
Step 2: Construct
同样, 我们需要关注: 输入:
- Chooses uniformly distributed random tapes
for (后面运行 需要, 两个是因为运行两次 , 不过这是小问题)
利用陷门计算出 ;
- Output:
首先我们分析真实世界与模拟世界的不同(上面是真实世界):
显然, 当
所以我们需要考虑的是, 当
简化一下式子, (把
假设存在nuPPT的敌手
我们将构造一个nuPPT算法
- 随机选择
- 随机选择
- If
, output else output
这个道理是这样的.
通过一些简单的转化, 我们可以证明:
这和hardcore的性质矛盾, 所以
Discussion. 很多人看完这个协议会有疑问, 这个协议也得亏在半诚实模型下, 两个人能够按照协议流程走. 不然的话, 稍微自由点的
所以总结一下, 在半诚实敌手模型下, 由于敌手会按照协议走, 所以我们构造的 simulator 不需要 rewind. 接下来我们会讲怎么对付ZK中的恶意 (malicious) 的 Verifier.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!