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