本發(fā)明涉及了一種承諾協(xié)議的構造方法,具體是涉及了一種異或同態(tài)的非交互式承諾協(xié)議的構造方法。
背景技術:
1、承諾協(xié)議廣泛應用于各種場景。承諾協(xié)議作為重要的基礎組件,被用于構建多種密態(tài)協(xié)議,如零知識證明、主動安全多方計算協(xié)議等。
2、文獻pedersen,torben?pryds.?non-interactive?and?information-theoreticsecure?verifiable?secret?sharing.?crypto?91,公開了一種pedersen?承諾協(xié)議。但pedersen?承諾具備加法同態(tài)性,而不具備異或同態(tài)性。
3、文獻s.?goldwasser,?s.?micali.?probabilistic?encryption&how?to?playmental?poker?keeping?secret?all?partial?information.?stoc82,公開了一種gm加密系統(tǒng)。gm加密系統(tǒng)雖然具備異或同態(tài)性,可以通過gm加密系統(tǒng)構建異或同態(tài)的承諾協(xié)議,但gm加密系統(tǒng)構建的同態(tài)承諾是基于因數分解,需要巨大的密文空間。
4、因此,有必要提出一種異或同態(tài)的承諾協(xié)議構造方法,并且其需要的密文空間較小。
技術實現思路
1、為了解決背景技術中的需求和問題,本發(fā)明提出了一種異或同態(tài)的非交互式承諾協(xié)議的構造方法。本發(fā)明提出的方法構造獲得的承諾協(xié)議起源于pedersen承諾,但進一步實現了異或同態(tài)性。本發(fā)明提出的方法構造獲得的承諾協(xié)議是基于離散對數的,可以使用橢圓曲線,只需要很小的密文空間,節(jié)省了密文大小。
2、本發(fā)明的技術方案如下:
3、一、一種異或同態(tài)的非交互式承諾協(xié)議的構造方法
4、利用密鑰生成算法生成承諾密鑰ck并傳輸給發(fā)送方和接收方;
5、發(fā)送方根據承諾信息m和承諾密鑰ck生成承諾密文c以及輔助信息d,并將承諾密文c發(fā)送給接收方;
6、基于承諾計算電路,發(fā)送方和接收方一起進行承諾計算后,獲得計算后的承諾密文c'、計算后的輔助信息d'以及計算后的承諾信息m';
7、接收方根據承諾密鑰ck、計算后的承諾密文c'、計算后的輔助信息d'以及計算后的承諾信息m'進行承諾驗證后,獲得驗證結果。
8、所述密鑰生成算法具體包括:
9、首先,使用安全參數λ在群g上隨機生成模數q和生成元g,其中g∈g;接著在大小為q的有限域zq上隨機選擇一個隨機數α作為陷門td,同時計算底數h,計算公式為h=gα;最后,將承諾密鑰ck設置為ck=(g,q,g,h),輸出承諾密鑰ck和陷門td。
10、所述基于承諾計算電路,發(fā)送方和接收方一起進行承諾計算后,獲得計算后的承諾密文c'、計算后的輔助信息d'以及計算后的承諾信息m',包括:
11、所述承諾計算電路包括承諾異或門、承諾與公開明文求與門和承諾與公開明文求異或門,在每種門中,發(fā)送方根據門的輸入分別進行輔助信息的計算和明文的計算,接收方根據門的輸入進行承諾密文的計算,從而獲得該門的輸出;
12、所述承諾異或門由接收方執(zhí)行的第一密文計算函數gxor以及發(fā)送方執(zhí)行的第一輔助信息計算函數fxor和明文異或操作⊕組成;
13、所述承諾與公開明文求與門由接收方執(zhí)行的第二密文計算函數gpand以及發(fā)送方執(zhí)行的第二輔助信息計算函數fpand和明文與操作組成;
14、所述承諾與公開明文求異或門由接收方執(zhí)行的第三密文計算函數gpxor以及發(fā)送方執(zhí)行的第三輔助信息計算函數fpxor和明文異或操作⊕組成。
15、所述密鑰生成算法中還生成陷門td,并將陷門td傳輸給發(fā)送方,根據目標明文m~,發(fā)送方利用陷門算法對計算后的承諾信息m'修改后生成偽輔助信息d~,根據承諾密鑰ck、計算后的承諾密文c'、偽輔助信息d~以及目標明文m~進行承諾驗證后,獲得驗證通過的結果。
16、所述根據承諾信息m和承諾密鑰ck生成承諾密文c以及輔助信息d,包括:
17、首先,從大小為2λ的有限域z2λ上隨機選擇偏移量ρ以及從大小為q的有限域zq上隨機選擇掩膜r,λ為安全參數;接著,計算承諾密文c,計算公式滿足c=g2ρ+mhr,以及計算輔助信息d,計算公式滿足d=(ρ,r),其中,q為模數,g為生成元,h為底數。
18、所述根據承諾密鑰ck、計算后的承諾密文c'、計算后的輔助信息d'以及計算后的承諾信息m'進行承諾驗證,包括:
19、所述承諾驗證具體是驗證是否滿足以下公式:
20、
21、d'=(ρ',r')
22、其中,q為模數,g為生成元,ρ'為計算后的偏移量,r'為計算后的掩膜,h為底數。
23、所述利用陷門算法對計算后的承諾信息m'修改后生成偽輔助信息d~,包括:
24、首先,從大小為2λ的有限域z2λ上隨機選擇偽偏移量ρ~;接著,計算偽掩膜r~,計算公式為r~=(2ρ+m-2ρ~+m~)α-1+r,其中,ρ為偏移量,r為掩膜,λ為安全參數,α為與陷門數值相等的隨機數,從而獲得偽輔助信息d~,滿足d~=(ρ~,r~)。
25、所述承諾異或門中,第一密文計算函數gxor為乘法操作;
26、第一輔助信息計算函數fxor具體包括:
27、首先,計算承諾異或門的輸出掩膜rz1,計算公式為rz1=rx1+ry1,rx1為承諾異或門的第一輸入掩膜,ry1為承諾異或門的第二輸入掩膜;以及計算承諾異或門的輸出偏移量ρz1,計算公式為ρz1=2ρx1+?2ρy1+mx1my1,ρx1為承諾異或門的第一輸入偏移量,ρy1為承諾異或門的第二輸入偏移量;mx1和my1分別為承諾異或門的兩個輸入中的承諾信息;從而獲得承諾異或門的輸出中的輔助信息dz1,滿足dz1=(ρz1,rz1);
28、所述承諾與公開明文求與門中,第二密文計算函數gpand為指數操作,具體是cz2=cy2^hx1,hx1為承諾與公開明文求與門輸入中接受方和發(fā)送方均持有的公開明文,cy2為承諾與公開明文求與門輸入中的承諾密文,cz2為承諾與公開明文求與門的輸出中的承諾密文;^表示冪次方,即cy2^hx1為cy2的hx1次方;
29、第二輔助信息計算函數fpand具體包括:
30、首先,計算承諾與公開明文求與門的輸出掩膜rz2,計算公式為rz2=ry2×hx1,ry2為承諾與公開明文求與門的輸入掩膜,hx1為承諾與公開明文求與門輸入中接受方和發(fā)送方均持有的公開明文;以及計算承諾與公開明文求與門的輸出偏移量ρz2,計算公式為ρz2=ρy2,ρy2為承諾與公開明文求與門的輸入偏移量;從而獲得承諾與公開明文求與門的輸出中的輔助信息dz2,滿足dz2=(ρz2,rz2);
31、所述承諾與公開明文求異或門中,第二密文計算函數gpand具體包括:
32、cz3=cy3g^hx2
33、其中,hx2為承諾與公開明文求異或門輸入中接受方和發(fā)送方均持有的公開明文,cy3為承諾與公開明文求異或門輸入中的承諾密文,cz3為承諾與公開明文求異或門輸入中的輸出中的承諾密文,g為生成元;
34、第三輔助信息計算函數fpxor具體包括:
35、首先,計算承諾與公開明文求異或門的輸出掩膜rz3,計算公式為rz3=ry3,ry3為承諾與公開明文求異或門的輸入掩膜;以及計算承諾與公開明文求與門的輸出偏移量ρz3,計算公式為ρz3=ρy3+hx2,hx2為承諾與公開明文求異或門輸入中接受方和發(fā)送方均持有的公開明文,ρy3為承諾與公開明文求異或門的輸入偏移量;從而獲得承諾與公開明文求與門的輸出中的輔助信息dz3,滿足dz3=(ρz3,rz3)。
36、所述發(fā)送方在不泄露承諾信息m的情況下完成證明,從而生成證明腳本π,并將證明腳本π傳輸給接受方,接受方在計算過程中根據證明腳本π進行范圍證明。
37、所述發(fā)送方在不泄露承諾信息m的情況下完成證明,從而生成證明腳本π,包括:
38、首先,對偏移承諾信息x按位提取比特后,獲得第一比特列表b0,…,bi,…,bλ,x=2ρ+m,ρ為偏移量,λ為安全參數;
39、接著,計算起始源承諾b0和源承諾b1,…,?bi,…,bλ,計算公式如下:
40、b0=?c/∏i=1λbi(2^i),,i∈{1,…,λ}
41、bi=(g^bi)?(h^si)
42、其中,si為在大小為q的有限域zq上隨機選擇的一個隨機數并記為隨機偏移量,c為承諾密文,g為生成元,h為底數;
43、然后,在大小為q的有限域zq上隨機選擇第一掩膜列表u0,…,?ui,…,uλ、第二掩膜列表b0',…,?bi'?,…,bλ'和第三掩膜列表s0',…,?si'?,…,sλ',利用以下公式計算承諾bi'以及交叉項di:
44、bi'=?(g^bi')?(h^si')?,i∈{0,…,λ}
45、di=?(g^(?bi?bi'))?(h^ui);
46、再利用以下公式計算哈希值e:
47、e=hash(g,h,c,b0,…,bλ,b0',…,bλ',d0,…,dλ)
48、其中,hash(?)表示哈希函數;
49、最后,生成證明腳本π,滿足以下公式:
50、
51、ti=?bi'+?bi?·e,zi=?si'+?si·e?,wi=?si(e-ti)?+?ui;
52、其中,ti為第一證明輔助信息,zi為第二證明輔助信息,wi為第三證明輔助信息。
53、所述接受方在計算過程中根據證明腳本π進行范圍證明,包括:
54、接受方計算起始源承諾b0和哈希值e;
55、當且僅當以下公式成立,則驗證正確:
56、(bi)ebi'=?(g^ti)?(h^zi),(bi^(e-?ti))di=?(h^wi),i∈{1,…,λ}。
57、二、一種計算機設備
58、所述計算機設備包括存儲器和處理器,所述存儲器存儲有計算機程序,所述處理器執(zhí)行所述計算機程序時實現所述異或同態(tài)的非交互式承諾協(xié)議的構造方法的步驟。
59、三、一種計算機可讀存儲介質
60、所述計算機可讀存儲介質上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現所述異或同態(tài)的非交互式承諾協(xié)議的構造方法的步驟。
61、四、一種計算機程序產品
62、所述計算機程序產品包括計算機程序/指令,該計算機程序/指令被處理器執(zhí)行時實現所述異或同態(tài)的非交互式承諾協(xié)議的構造方法的步驟。
63、本發(fā)明的有益效果如下:
64、本發(fā)明提出的方法構造獲得的承諾協(xié)議起源于pedersen承諾,但進一步實現了異或同態(tài)性。本發(fā)明提出的方法構造獲得的承諾協(xié)議基于離散對數,可以使用橢圓曲線,只需要很小的密文空間,節(jié)省了密文大小。