不經意傳輸(Oblivious transfer,OT,也稱茫然傳輸)是在構建安全多方計算時經常需要使用的一個模塊,

情景:Bob有一組資料,alice從中抽取其中一個資料查看,[Alice不想讓bob知道抽取的是哪組資料,bob只想給alice一個資料]

上圖就是一個典型的2-1OT協議,bob只能選一個,alice不知道他選的哪一個,

上圖就是一個典型的n-1OT協議,bob只能選一個,alice不知道他選的哪一個,
Naor-Pinkas不經意傳輸協議是經典的OT協議,其基于離散對數困難問題,通過三次公鑰密碼學操作實作了 2-1OT
公共引數:𝑞階有限域的𝑍𝑞、有限域𝑍𝑝、𝑍𝑝的生成元𝑔和𝑍𝑝的𝑞階子群𝐺𝑞 ,其中𝑝和𝑞的關系是𝑞|𝑝?1,即𝑝?1能夠被𝑞除盡,

發送者輸入兩個長度為𝑙位元的資料(𝑥0,𝑥1),接收者輸入一個選擇位元𝑟,
1.alice生成一個亂數𝐶,并將𝐶進行公開,接著發送者生成一個亂數𝑎,計算
和
,
2.接收者生成一個亂數𝑘,1≤𝑘≤𝑞,再生成兩個公鑰𝑝𝑘𝑟和𝑝𝑘1-𝑟,𝑝𝑘𝑟=
,𝑝𝑘1-𝑟=
,接收者將𝑝𝑘0發送給發送者,
3.
發送者計算
,發送者對需要發送的資料(𝑥0,𝑥1)進行加密:

4.
接收者計算
,然后計算𝑥𝑟,
![]()
舉例:
Alice 輸入(𝑥0=9,𝑥1=5),Bob輸入選擇位元𝑟=1,
1.Alice生成一個亂數𝐶=20,𝑎=11,計算
,將C公開,
2.Bob收到C后,生成一個亂數k=10,在生成兩個公鑰𝑝𝑘1=
,𝑝𝑘0=
,Bob將𝑝𝑘0=
發送給Alice,
3.
Alice收到𝑝𝑘0后,計算
,對需要發送的(𝑥0=9,𝑥1=5)進行加密,并計算其哈希值,

4.
Bob收到𝐸0和𝐸1之后,計算
由于Bob計算出了
,因此Bob可以計算出𝑥1:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/231048.html
標籤:區塊鏈
