密码协议学习笔记(7):不经意传输
不经意传输:
不经意传输(Oblivious Transfer,OT)这个名字不太直观,实际上,该协议的描述是:
发送方Alice向接收方Bob发送了
接收方Bob从中选择一条或几条消息.
发送方无法控制接收方的选择,也无法得知接收方的选择,而接收方不能得到其选择之外的信息.
该协议的应用场景例如:网上购物,卖家将自己的货物信息发送给买家,但买家不希望卖家知道自己查询了哪些货物的报价(这可能涉及隐私,你也不希望自己浏览斐济杯的记录被其他人知道吧),但同时,卖家也不希望将买家未查询的信息额外地透露给买家(这则涉及商业秘密).
因此,不经意传输在设计时需要考虑的因素有:
- 正确性:若发送方和接收方正确执行协议,则接收方可得到其选择的信息.
- 不经意性(接收者的隐私性):接收方选择了那些信息,发送方是无法得知的.
- 安全性(发送者的隐私性):接收方不能得到它没有选择接收的信息.
在此协议中,协议的参与者可按其行为分类为:
- 可信参与者:按协议执行的参与者
- 半可信参与者/被动攻击者:按协议执行,但试图通过接收到的消息计算出额外的信息
- 恶意参与者/主动攻击者:不按照协议执行
常见的不经意传输形式:
根据发送信息和获知信息的条数,可将不经意传输分为如下几类:
1-out-of-2不经意传输( ):
Alice有两条消息
1-out-of-n不经意传输( ):
Alice有若干条消息
k-out-of-n不经意传输( ):
Alice有若干条消息
根据不经意传输的实施办法,又可分为如下几种形式:
非适应性不经意传输:
接收者Bob提前选择自己要得知哪一部分信息,协议中不能改变选择,一般适用于安全多方计算协议设计.
适应性不经意传输:
发送者Alice事先发送秘密,而接收者再确定自己要获得哪一部分秘密,一般用于隐私保护的数据库搜索.
分布式不经意传输:
将A的职能分布到多个服务器上,发送方Alice和接收方Bob之间没有直接交互,他们都分别与这组服务器分享,实现信息传递。
可公开验证的不经意传输:
在一些安全性要求高的协议中,需要让任何人都能够验证Bob获得了应该得到的秘密,而且没有获得更多的秘密。在这样的验证中,通信双方都不希望泄漏各自的秘密或秘密选择以及获得的秘密。
完全不经意传输:
发送者Alice和接收者Bob都不知道哪些秘密被Bob接收.
不经意传输的设计方法:
不经意传输协议的设计模型:
基于计算复杂性理论设计不经意传输额协议.
假设攻击者拥有概率多项式计算时间,那么不经意传输协议可以在一系列密码学假设下实现.
也有基于其他安全假设的不经意传输协议设计.
的设计方法:
系统参数:
非对称加密系统
对称加密系统
(注,
Alice | Bob | |
生成公钥 |
||
选择随机数 将两个随机数之一 会话密钥 使用 |
||
解密并计算 两个值解密后其中一个是会话密钥,另一个是无意义值,但无法区分 |
||
使用 |
|
|
使用会话密钥分别尝试解密 其中之一是有意义信息,另一个为无意义值 |
观察协议的执行过程,正确性,不经意性和安全性是显然的.
的设计方法:
系统参数:
大质数
初始化:
Alice发送的信息为
交互阶段:
Alice | Bob | |
生成一个随机数 计算 |
||
随机生成 计算 |
|
|
记 计算 |
正确性:
当
不经意性:
Alice由于不知道
安全性:
对于
Bob由于不知道
的设计方法:
注意,该方案属于适应性不经意传输,即Bob在获知了第一条信息之后,可以在剩下的
该方案基于不经意密钥搜索OKS(Oblivious Keyword Search).假设
系统参数:
(
承诺阶段:
Alice | Bob | |
生成RSA公钥 |
||
产生 其中 |
||
计算 |
|
交互阶段:
Bob共有
对于第
Alice | Bob | |
选择消息标签 和随机元素 计算 |
||
计算 |
||
计算 |
||
对于 若某个 |
正确性:
当
将其拆分为
(博主注:为什么要把随机数产生器
不经意性:
每次交互时Alice都不知道随机数
安全性:
如果没有Alice发送的
不经意传输应用:
- 作为组件构造其他高级密码协议
密码学领域的重要设计原则是,先设计参与者都是半可信时能保证安全的密码协议,然后迫使参与者证明它们都是半可信的,进而构造出抵抗恶意攻击者的协议
不经意传输便可用于后一步.将不经意传输协议作为原语,通过比特承诺,零知识证明保证协议的正确性和参与者本地数据的私有性.
如
- 直接用于电子商务,内容保护等领域用于保护参与者的隐私
- 应用于保护隐私的数据库检索系统(例如前文提到的自适应不经意传输协议)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探