不经意传输
外观
![]() |
不经意传输(英语:Oblivious transfer)是密码学中的一类协议,实现了发送方将潜在的许多信息中的一个传递给接收方,但对接收方所接收信息保持未知状态。
不经意传输的第一种形式是由迈克尔·拉宾 (科学家)在1981年提出的。[1]这种形式的不经意传输发送方会有 1/2 的概率将消息发送给接收方,而发送方不知道接收方是否接收到该消息。
这种不经意传输方案基于RSA加密算法。1-2不经意传输是一种更为常用的不经意传输方案,这种方案被Oded Goldreich、亞伯拉罕·藍波和Shimon Even发展成为安全多方计算协议。[2]一般被称为 “1-n不经意传输”,在这种协议下用户仅能获得数据库中的一个元素,而服务器不知道用户查询了哪一个元素。不经意传输是私有信息检索的加强版本。
Claude_Crépeau指出,迈克尔·拉宾的不经意传输等同于1-2不经意传输。[3]
进一步的工作表明,不经意传输是密码学中的一个基本而重要的问题,被认为是该领域的关键问题之一,对于安全多方计算来说是完整的实现。[4]
1–2 不經意傳輸協定
[编辑]1-2 不經意傳輸協定中,發送方 Alice 有兩個訊息 m0 和 m1,並希望確保接收方只知道其中一個。接收者 Bob 有一個位元 b,希望在 Alice 不知道 b 的情況下接收 mb。 Even-Goldreich-Lempel 協定 (作者部分歸功於 Silvio Micali)是普遍性的,但可以使用 RSA 加密實作如下。
Alice | Bob | |||||
---|---|---|---|---|---|---|
計算 | 私密 | 公開 | 公開 | 私密 | 計算 | |
準備送出的訊息 | ||||||
生成 RSA 密鑰對,並且將公鑰送給 Bob | 接收公鑰 | |||||
產生兩個隨機訊息 | 接收隨機訊息 | |||||
從中選擇的值。產生隨機數 | ||||||
用隨機訊息混淆進行加密後送給 Alice | ||||||
此兩者其中之一會等同,但 Alice 並不知道是哪一個 | ||||||
送出兩個訊息給 Bob | 接收兩個訊息 | |||||
因為 Bob 知道它之前選擇的 是哪一個,它能夠解密出 |
参考
[编辑]- ^ 迈克尔·拉宾. How to exchange secrets by oblivious transfer. (PDF). [1981-05-20]. (原始内容 (PDF)存档于2021-11-23) (英语).
- ^ S. Even, O. Goldreich, and A. Lempel. A Randomized Protocol for Signing Contracts (PDF). [1985-06]. (原始内容 (PDF)存档于2022-01-21) (英语).
- ^ Claude_Crépeau. Equivalence between two flavours of oblivious transfer (PDF). [1988] (英语).
- ^ Joe Kilian. Founding Cryptography on Oblivious Transfer (PDF). [1988] (英语).