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