1-out-2 OT
Oblivious Transfer(茫然傳輸)簡稱OT,是一種基本密碼學原語,被廣泛的用於安全多方計算等領域。
OT最早在1981年被 Michael O. Rabin提出[1],在Rabin的OT協議中,發送者S發送一個信息m給接收者R,接收者R以1/2的概率接受信息m。所以在協議交互的結束的時候,S並不知道R是否接受了消息。該方案是基於RSA加密體系構造的。
1985年S. Even, O. Goldreich, and A. Lempel提出了1-out-2 OT[2],在新的方案中S每次發送2個信息和,而R每次輸入一個選擇b。當協議結束的時候,S無法獲得關於b的任何有價值的信息,而R只能獲得,對於,R也一無所知。
1988年,Claude Crépeau 證明了Rabin的OT方案和1-out-2 OT方案是等價的[3]。
1-out-n OT
而在1986年Brassard等人首次將1-out-2 OT擴展爲1-out-n OT[4],1998年Stern J P.首次將公鑰特性加入了1-out-n OT協議之中[5]。
2001年Naor和Pinkas基於Diffie-Hellamn(DDH)困難問題假設給出了一個高效的2輪1-out-n OT協議[6],同一年Aiello等人基於同態加密也給出了一個2輪的1-out-n OT協議[7],並且在該方案中無論n多大,R只需要進行2次指數運算而S則需要2n 2n2n次指數運算。
2003年Yuval Ishai等人以1-out-2 OT爲基礎提出了一種高效的通過少量OT構造大量OT的方案,該方案基於隨機神諭機構造[8]。
2008年,Lindell將cut-and-choose技術融入到OT協議中,給出了一個高效而且可以完全模擬的OT協議[9]。
2013年,Vladimir Kolesnikov1 和 Ranjit Kumaresan直接構造了1-out-n OT[19],並且對於短消息的茫然傳輸效率比03年Yuval Ishai等人的方案更高。
淺見
在入門階段,可以粗略看一下2000年之前的文章對於OT的起源和初始的想法有大體的瞭解。
對於[6] 和[7]的兩篇文章可以着重看一下,其中對於安全性的證明和複雜性的分析是比較符合中等水平的要求的。
2003年和2013年的兩篇論文可以對比看一下,很有意義也就很有意思。
2008年的論文作者Lindell是個大佬,牛到可以寫算法導論那種等級著作的大佬,他在大作中的安全性證明不是寫給一般水平玩家看的。
除此之外,還可以看一下Dan Bone的書[]中關於OT部分的介紹,比較淺顯容易理解。
參考文獻
[1]Michael O. Rabin. “How to exchange secrets by oblivious transfer.”
[2]S. Even, O. Goldreich, and A. Lempel, “A Randomized Protocol for Signing Contracts.”
[3]Claude Crépeau. “Equivalence between two flavours of oblivious transfer.”
[4]Gilles Brassard, Claude Crépeau and Jean-Marc Robert. “All-or-nothing disclosure of secrets.”
[5]Stern J P. “A New and Efficient All-Or-Nothing Disclosure of Secrets Protocol.”
[6]Moni Naor and Benny Pinkas. “Efficient oblivious transfer protocols.”
[7]Bill Aiello, Yuval Ishai, and Omer Reingold. “Priced Oblivious Transfer:How to Sell Digital Goods.”
[8]Ishai Y., Kilian J., Nissim K., Petrank E. “Extending Oblivious Transfers Efficiently.”
[9]Lindell Y. “Efficient Fully-Simulatable Oblivious Transfer.”
[10]Vladimir Kolesnikov and Ranjit Kumaresan. “Improved OT Extension for Transferring Short Secrets.”
敵手模型
半誠實(Semi-Honest)模型
假設參與計算的各方都是半誠實的,即參與方可以保留交互時得到的信息。對於想要協作完成計算並得到正確結果的參與方來說,這樣的模型符合實際情況。
半誠實模型的敵手行爲時被動的,它只是收集信息,這些信息可能用於以後的分析以圖得到私有信息。
惡意(Malicious)模型
相對於半誠實模型,惡意的敵手擁有更主動的行爲:
- 它可以拒絕參與協議的執行
- 可以用任意值來替換它的輸入
- 可以在任意時間終止執行
Naor-Pinkas茫然傳輸協議
Naor和Pinkas通過三次公鑰密碼學操作實現了半誠實模型下的1-out-of-2茫然傳輸協議。
輸入信息:
- Sender輸入兩個長度爲l比特的字符串
- Receiver輸入一個選擇比特r,用於選擇中的其中一個
系統參數:
- p,q均爲素數,且q|p-1
- 爲q階羣,是的q階子羣
- 給定的生成元g,滿足Diffie-Hellman困難性假設
隨機預言函數:
- H
協議:
- 步驟1
S發送並公佈隨機數,然後S生成隨機數a,並計算和。 - 步驟2
R選擇隨機數,並生成公鑰,,R將發送給S。 - 步驟3
S計算,。Sender將發送給Receiver。, - 步驟4
Receiver通過計算得到,因此可以得到
擴展OT(OT Extension)
相對於對稱密碼學,基於數論中各種困難性假設的公鑰密碼學操作的算法複雜度更高。因此,在平時密文傳輸信息的過程中,通信雙方都會先進行基於公鑰密碼學的密鑰交換協議得到一個通信的對稱密鑰加密傳輸信息。
擴展OT的思路也一樣。雖然這種方法沒有完全拋棄公鑰密碼學操作,但是已經將公鑰密碼學操作的數量降低到很少。如,擴展OT可以將歸約到使用少量基於公鑰密碼的和若干對稱密碼學操作,其中。通常情況下,可以取爲80,128或更多。注意不能太小,因爲其通常作爲安全性參數。
- 使用公鑰密碼學操作產生少量種子OT
- 利用堆成密碼學操作(如PRG,哈希函數等)將這些種子OT協議擴展爲任意數量的OT協力。
IKN茫然傳輸協議
Yuval Ishai等人提出的IKN茫然傳輸擴展協議,其中爲安全參數
- 1次協議->1次協議
- 1次協議->次協議。
注:下面展示Extending OT with a Semi-Honest Receiver
Part1: ->
輸入信息:
- Sender有m對輸入;的長度爲位,。
- Receiver有m個輸入選擇比特。
系統參數:
- 安全參數
隨機預言函數:
協議:
- S初始化一個隨機向量
- R初始化一個的隨機矩陣,其中代表的第i列,代表的第i行。
- 進行協議,在該協議中發送者爲R而接收者爲S,分別記爲及。
- 有對輸入
- 有個輸入選擇比特
- 得到一個的矩陣
- S,即,發送m對給R,其中;;
- R計算m個輸出;其中,,
重點分析4,5步
- 當時,R收到以及,而R只能解開
- 當時,R收到以及,而R只能解開
PART2 ->
思路:其實就是利用傳輸混淆元,後面與OT再無關係。後面通過隨機預言函數基於長度爲的混淆元生成長度爲m的混淆項。
輸入信息:
- Sender有對輸入;的長度爲位,。
- Receiver有個輸入選擇比特。
系統參數:
- 安全參數
隨機預言函數:
協議:
- S初始化對隨機的長度爲k比特的
- 進行協議,在該協議中發送者爲S而接收者爲R,分別記爲及。
- 有對輸入
- 有個輸入選擇
- 得到長度爲的向量;
- S向R發送對,其中
- R通過步驟2中得到的向量進行還原,即
PART3 可以通過調用次協議實現
效率分析
- R共調用m次H,次G,發送數據比特
- S共調用2m次H,次G,發送數據比特
- 當然協議中調用了一次協議,因爲與m和l無關爲常數。
綜上,整個流程歸約到(只有該部分與公鑰密碼學相關),即相當於次協議。