发明名称 一种隐藏得票数的电子投票方法
摘要 本发明公开了一种隐藏得票数的电子投票方法,首先设置公开的系统参数,以及相关的公钥和私钥;接着响应于投票者的投票选择输入,产生电子加密选票的电子选票定制机;然后根据形成的电子加密选票进行相关的安全多方计算,最终得到隐藏所有候选人得票数的投票结果。本发明采用安全多方计算,结合投票保证技术给出了可以隐藏所有候选人得票数的电子投票方法,解决了现有技术中公开候选人得票数的投票选举中存在的问题,确保了电子投票选举中所有投票候选人的最终得票数都是保密的,可以保证电子投票、尤其是小规模投票选举中投票人的隐私性。
申请公布号 CN102521910B 申请公布日期 2014.09.10
申请号 CN201110425662.X 申请日期 2011.12.16
申请人 河海大学 发明人 李继国;罗翀;张亦辰
分类号 G07C13/00(2006.01)I 主分类号 G07C13/00(2006.01)I
代理机构 南京经纬专利商标代理有限公司 32200 代理人 许方
主权项 一种隐藏得票数的电子投票方法,其特征在于,包括如下步骤:步骤(1),设置公开的系统参数,包括:计票机构总数l;选票定制机的挑战比特位数L;投票候选人集合C<sub>1</sub>,...,C<sub>cn</sub>,合法投票人集合V<sub>1</sub>,...,V<sub>d</sub>,其中cn代表候选人总数,d代表投票人总数;步骤(2),设置相关的公钥和私钥,具体步骤如下:步骤(201),由可信机构密钥管理中心(KMC)选择整数n,其中n是强素数p,q的乘积,满足<img file="FDA0000515626780000011.GIF" wi="796" he="78" />其中p′和q′是大素数;步骤(202),令m=p′q′,由可信机构密钥管理中心(KMC)随机选择β∈Z<sub>n</sub><sup>*</sup>,(a,b)∈Z<sub>n</sub><sup>*</sup>×Z<sub>n</sub><sup>*</sup>,令g=(1+n)<sup>a</sup>b<sup>n</sup>modn<sup>2</sup>;步骤(203),由可信机构密钥管理中心(KMC)计算私钥SK=βm,并采用Shamir的(t,n)门限模式共享,具体如下:令a<sub>0</sub>=βm,由可信机构密钥管理中心(KMC)随机选择t个a<sub>i</sub>∈{0,...,mn‑1},令<img file="FDA0000515626780000013.GIF" wi="370" he="91" />计算计票机构P<sub>i</sub>的秘密份额s<sub>i</sub>=f(i)modmn并通过安全信道发给计票机构P<sub>i</sub>,i∈{1,...,t},t∈{1,...,n};步骤(204),公开公钥PK=(g,n,θ=amβmodn)、验证密钥VK、子验证密钥VK<sub>i</sub>,其中VK=v是由<img file="FDA0000515626780000014.GIF" wi="93" he="92" />中的平方数构成的循环子群的一个元素,<img file="FDA0000515626780000015.GIF" wi="469" he="81" />其中Δ=l!;步骤(3),响应于合法投票人集合V中的合法投票者输入的投票选择,将投票选择转换成加密的电子选票,产生电子选票的选票定制机,并公开相关信息以供投票者检验;其中选票定制机与合法投票人交互的步骤包括:步骤(301):由选票定制机随机选择一个L位的01比特串p<sup>*</sup>,并把p<sup>*</sup>告诉投票人;然后投票人选择候选人;比特串p<sup>*</sup>用完以后被销毁;步骤(302):根据投票人V<sub>i</sub>输入的投票选择j,其中j表示投票人V<sub>i</sub>投票给候选人C<sub>j</sub>,i∈{1,...,d},j∈{1,...,cn},选票定制机打印出2Lcn个Paillier加密:PE<sub>i</sub>(1),...,PE<sub>i</sub>(cn);其中每个PE<sub>i</sub>()都为2L个Paillier加密,每个PE<sub>i</sub>()分为左右两部分:PE<sub>i</sub>()<sub>L</sub>和PE<sub>i</sub>()<sub>R</sub>,PE<sub>i</sub>()<sub>L</sub>和PE<sub>i</sub>()<sub>R</sub>分别对应L个Paillier加密,其中每个Paillier加密的明文为0或1;其中PE<sub>i</sub>(t)<sub>L</sub>对应的明文与PE<sub>i</sub>(t)<sub>R</sub>对应的明文相同,PE<sub>i</sub>(j)<sub>L</sub>对应的明文为p<sup>*</sup>,PE<sub>i</sub>(j)<sub>R</sub>对应的明文与p<sup>*</sup>相反;步骤(303):投票人V<sub>i</sub>随机选择一个L位长的挑战比特串c告诉选票定制机,其中挑战比特串c由L位置和R位置组成,L位置和R位置分别用0和1来表示;步骤(304):根据挑战比特串c,由选票定制机计算出cn个对应的值p<sub>1i</sub>,p<sub>2i</sub>,...,p<sub>cni</sub>:p<sub>ji</sub>=p<sup>*</sup>,<img file="FDA0000515626780000021.GIF" wi="397" he="77" />其中,u∈{1,...,cn},u≠j;并将p<sub>1i</sub>,p<sub>2i</sub>,...,p<sub>cni</sub>告诉投票人V<sub>i</sub>;投票人V<sub>i</sub>验证p<sub>ji</sub>是否等于p<sup>*</sup>,若不相等则投票人提出异议;步骤(305):根据挑战比特串c,由选票定制机公开PE<sub>i</sub>(1),...,PE<sub>i</sub>(cn)对应的明文和加密时用到的随机值以供检验对应的加密是否正确形成,验证p<sub>1i</sub>,p<sub>2i</sub>,...,p<sub>cni</sub>与公开的加密所对应的R位置上的比特位是否全相反;步骤(306):选票定制机随机选择一个t∈{1,2,...,L},将<img file="FDA00005156267800000212.GIF" wi="618" he="87" />以及<img file="FDA00005156267800000213.GIF" wi="198" he="77" />保留作为选票;步骤(4),进行相关安全多方计算;具体步骤如下:步骤(401):计算:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>E</mi><msub><mi>V</mi><mrow><mi>i</mi><mn>1</mn></mrow></msub></msub><mo>=</mo><msub><mi>PE</mi><mi>i</mi></msub><msub><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow><msub><mi>L</mi><mi>t</mi></msub></msub><mo>&CirclePlus;</mo><msub><mi>PE</mi><mi>i</mi></msub><msub><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow><msub><mi>R</mi><mi>t</mi></msub></msub><mo>,</mo><msub><mi>E</mi><msub><mi>V</mi><mrow><mi>i</mi><mn>2</mn></mrow></msub></msub><mo>=</mo><msub><mi>PE</mi><mi>i</mi></msub><msub><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow><msub><mi>L</mi><mi>t</mi></msub></msub><mo>&CirclePlus;</mo><msub><mi>PE</mi><mi>i</mi></msub><msub><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow><msub><mi>R</mi><mi>t</mi></msub></msub><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>E</mi><msub><mi>V</mi><mi>icn</mi></msub></msub><mo>=</mo><msub><mi>PE</mi><mi>i</mi></msub><msub><mrow><mo>(</mo><mi>cn</mi><mo>)</mo></mrow><msub><mi>L</mi><mi>t</mi></msub></msub><mo>&CirclePlus;</mo><msub><mi>PE</mi><mi>i</mi></msub><msub><mrow><mo>(</mo><mi>cn</mi><mo>)</mo></mrow><msub><mi>R</mi><mi>t</mi></msub></msub><mo>,</mo></mrow>]]></math><img file="FDA0000515626780000022.GIF" wi="1708" he="86" /></maths>其中i∈{1,...,v},其中用到的原理为:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>PE</mi><msub><mrow><mo>(</mo><mn> </mn><mo>)</mo></mrow><msub><mi>L</mi><mi>t</mi></msub></msub><mo>&CirclePlus;</mo><mi>PE</mi><msub><mrow><mo>(</mo><mn> </mn><mo>)</mo></mrow><msub><mi>R</mi><mi>t</mi></msub></msub><mo>=</mo><mi>PE</mi><msub><mrow><mo>(</mo><mn> </mn><mo>)</mo></mrow><msub><mi>L</mi><mi>t</mi></msub></msub><mo>+</mo><mi>PE</mi><msub><mrow><mo>(</mo><mn> </mn><mo>)</mo></mrow><msub><mi>R</mi><mi>t</mi></msub></msub><mo>-</mo><mn>2</mn><mi>PE</mi><msub><mrow><mo>(</mo><mn> </mn><mo>)</mo></mrow><msub><mi>L</mi><mi>t</mi></msub></msub><mi>PE</mi><msub><mrow><mo>(</mo><mn> </mn><mo>)</mo></mrow><msub><mi>R</mi><mi>t</mi></msub></msub><mo>,</mo></mrow>]]></math><img file="FDA0000515626780000023.GIF" wi="1059" he="84" /></maths>利用Paillier加密的同态性,候选人C<sub>1</sub>最终得票数的加密形式为<img file="FDA0000515626780000024.GIF" wi="333" he="95" />类似地,对其他候选人C<sub>2</sub>,...,C<sub>cn</sub>也可以求出相应加密的得票数<img file="FDA0000515626780000025.GIF" wi="251" he="78" />步骤(402):对<img file="FDA0000515626780000026.GIF" wi="218" he="79" />中的任意两个进行明文相同测试,将得票数相同的归为一类;步骤(403):设经过步骤(402)处理后变为<img file="FDA0000515626780000027.GIF" wi="253" he="78" />其中M≤cn;对每个C<sub>j</sub>′,l个机构P<sub>1</sub>,...,P<sub>l</sub>利用BITREP门将<img file="FDA00005156267800000215.GIF" wi="85" he="86" />变为对应的二进制比特位加密表示<img file="FDA0000515626780000028.GIF" wi="399" he="84" />j∈{1,...,M};步骤(404):对一对<img file="FDA00005156267800000214.GIF" wi="360" he="85" />和<img file="FDA0000515626780000029.GIF" wi="415" he="87" />其中i,j∈{1,...,M},i≠j,l个机构P<sub>1</sub>,...,P<sub>l</sub>利用[x&gt;y]比对环求出<img file="FDA00005156267800000210.GIF" wi="252" he="84" />如果<img file="FDA00005156267800000211.GIF" wi="299" he="82" />成立,则说明候选人C<sub>i</sub>′的最终得票数大于候选人C<sub>j</sub>′的票数,将C<sub>i</sub>′继续与剩下的其他候选人进行类似比较;步骤(5),经过安全多方计算后,得到票数最多的候选人集,公布投票的最终结果。
地址 210098 江苏省南京市鼓楼区西康路1号