不經意傳輸
外觀
![]() |
不經意傳輸(英語: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] (英語).