不經意傳輸(oblivious transfer)是乙個密碼學協議,在這個協議中,訊息傳送者從一些待傳送的訊息中傳送一條給接收者,但事後對傳送了哪一條訊息仍然oblivious(不知道),這個協議也叫茫然傳輸協議。歷史
第一種形式的不經意傳輸(oblivious transfer),最初是在1981由michael o.rabin提出,在這種不經意傳輸中,傳送者alice傳送一條訊息給接收著bob,而bob以1/2的概率接收到資訊,在結束後alice並不知道bob是否接收到了資訊,而bob能確信地知道自己是否收到了資訊。 另一種更實用的不經意傳輸協議,被稱為2選一不經意傳輸(1 out 2 oblivious transfer)由 shimon even, oded goldreich, 和abraham lempel 在2023年提出,在這種形式的不經意傳輸模型中,alice每次發兩條資訊(m1、m2)給bob,bob提供乙個輸入,並根據輸入獲得輸出資訊,在協議結束後,bob得到了自己想要的那條資訊(m1或者m2),而alice並不知道bob最終得到的是哪條。
2023年,brassard等人將2選1不經意傳輸拓展為n選1。
不經意傳輸(oblivious transfer)一種實現方式是基於rsa公鑰演算法,下面就2選1不經意傳輸的實現做簡要介紹:
基於rsa的1 out 2 不經意傳輸
流程:傳送者alice生成兩對rsa公私鑰,並將兩個公鑰puk0、puk1傳送給接受者bob。2. bob生成乙個隨機數,並用收到的兩個公鑰之一加密隨機數(用哪個秘鑰取決於想獲取哪條資料,例如如果想要得到訊息m0 就用puk0加密隨機數,如果想要得到m1就用puk1加密隨機數),並將密文結果傳送給alice。3. alice用自己的兩個私鑰分別解密收到隨機數密文,並得到兩個解密結果k0,k1,並將兩個結果分別與要傳送的兩條資訊進行異或(k0異或m0,k1異或m1),並將兩個結果e0,e1發給bob。4. bob用自己的真實隨機數與收到的e0、e1分別做異或操作,得到的兩個結果中只有一條為真實資料,另外一條為隨機數。
分析:在此過程中第3步最為關鍵,如果alice無法從用兩條私鑰解密得到的結果k0、k1中區分出bob的真實隨機數,則能保證alice無法得知bob將要獲取的是哪條資料。bob沒有私鑰也就無法得出真實的私鑰解密結果(如果k0為真實隨機數,bob無法得知k1的值),所以也就只能得到自己想要的那條資料而無法得到另外一條,保障協議能執行成功。同理,1 out n不經意傳輸也可基於類似原理實現,只需要將2秘鑰換成n秘鑰。
多方安全計算 不經意間傳輸
不經意傳輸 oblivious transfer ot 最早在1981年被 michael o.rabin提出,之後被廣泛應用於多方安全計算等領域。在rabin 1 的ot協議中,傳送者alice傳送乙個資訊m給接收者bob,接收者bob以1 2的概率接受資訊m。所以在協議互動的結束的時候,傳送者a...
混淆解密 混淆電路介紹(一)不經意傳輸
在近期的文章中,王益介紹了多方安全計算 multiparty computation,mpc 的一種常見的實現形式 分享秘密 secret sharing 今天我們來介紹另外一種常見的實現 混淆電路 garbled circuits,gc gc 是一種密碼學協議。遵照這個協議,兩個 party 能在...
密碼學Kerberos協議理解
很久以前有這麼乙個國家名為kerberos 有著一位國王kds 兩位國民小王和小美 許多營業場所 列印裝置,檔案管理器等 每位國民想在這個國家居住,都需要先到國王那裡領取身份證與身份碼 這份身份碼只有小王和kds知道 kerberos國家規定 國民互相拜訪需要先向kds請求獲得前往拜訪人的票 國民前...