检测危害投票的制作方法

文档序号:6356357阅读:216来源:国知局
专利名称:检测危害投票的制作方法
技术领域
本发明涉及选举自动化及其加密技术的领域。
背景技术
传统的、人工操作的选举一直具有不准确和效率低的问题。在广泛地建议可使用计算机来使选举更准确和高效的同时,也带来了计算机自身隐藏的缺陷。由于电子数据很容易被改动,因此许多电子投票系统易于出现多种与传统投票系统很不相同的故障。
这些故障中的一类涉及投票人的计算机,或其它计算设备不确知的诚实性。在今天的网络化的计算环境中,很难使任何设备不受恶意软件的侵害。这种软件经常能够在它实际执行恶意操作之前一直在计算机中隐藏很长时间。同时,它也可以将它自己复制到联网的其它计算机,或者与网络具有一些小规模交互的计算机。它甚至可以通过用户携带的永久介质的方式传播到没有联网的计算机上。
在电子保密投票的情况下,由于即使当这种恶意软件的恶意操作被触发后可能仍然发现不了它,并且它可以保存下来扰乱以后更多的选举,因此这种恶意软件尤其危险。控制的逻辑和准确性测试(“L&A测试”)监测测试投票过程,以确定投票系统是否正确操作,并且可以用来尝试检测投票人计算机中出现的恶意软件。然而,由于恶意软件能够在“实际”和“测试”投票之间进行区分,并且使所有“测试”投票不受影响,因此L&A测试很难有效进行。由于投票保密性的要求使它不可能检查“实际”投票的危害,因此即使是详尽的L&A测试也可能被证明是无用的。与这种威胁相对的问题被称为“客户信任问题”。
大多数解决客户信任问题的现有方法都集中在使投票平台安全的方法上,从而提供使投票人的计算机“干净”或“未被感染”的可靠性。不幸的是,为使这种可靠性达到可接受的程度所需要的专门技术和不断的辛勤努力通常是迫使电子投票系统进入受控制的投票现场的环境,即计算机或网络专家能够维护和监视客户的计算机系统。这些投票现场系统仍然可以提供一些配置方法简单、使用简单、有效制表和成本上的优势。然而,这种方案无法提供已经在电子商务领域开发的分布式通信的巨大潜力。
因此,能够使任何计算机系统在投票平台上的任何位置使用的、无需投票平台为对付恶意软件而实施保护的客户信任问题的解决方案具有巨大的使用价值。


图1是该工具操作的典型环境的高级方框图。
图2是显示通常结合在至少一些计算机系统和该工具在其上操作的其它设备的一些部件的方框图。
图3是为了检测危害投票通常由该工具执行的步骤的流程图。
具体实施例方式
提供一种用来检测受恶意程序(“工具”)危害的投票的软件工具。该工具采用的方案通常不尝试消除、或防止投票计算机上存在的恶意软件。它为投票者提供加密安全方法,即验证投票者的选票内容,如同它在投票收集中心接收的那样,而不会向收集中心本身透露有关内容(选票选择)的信息。即,投票收集中心能够向投票人正确地确认接收到什么选择,而不用知道那些选择是什么。这样,投票人能够检测出投票人所希望的选择和投票收集中心(由发送的所投选票数字数据表示的)接收到的实际选择之间的任何差异。另外,一旦接收到的选择与所希望的选择不同时,每个选举都可以从允许投票人重投选票的灵活的政策决定集合中选择。
以公平的标准选举设置为背景描述该工具。为了简化表示,假设在选票上只有一个问题,和一组K个可选的答案a1,...,aK(其中的一个可以是“弃权”)来开始讨论该工具。可以理解,本领域普通技术人员可以显而易见地概括出这种情形中给出的解决方案,用来处理大量现实世界的选票配置。
选举设置中的一些典型加密特征1.选票构造选举机构预先决定一套加密的选举参数,并且通过广泛发布或其它途径让公众知道。重要的参数是加密组,生成器、选举公共密钥和决定编码方案。更具体地说,它们是(a)加密组,G可以是Zp,其中p是大的质数,或者是椭圆形的曲线组。
(b)生成器,g∈G。在G=Zp的情况下,g应该生成具有大质数阶数q的G*的一个(多个)子组,<g>。在椭圆形曲线的情况下,我们假设<g>=G并且p=q。
(c)选举公共密钥,h∈<g>。
(d)决定编码方案<g>划分为“答案表示”。即,<g>=S0∪S1∪…SK,其中Sk是<g>的成对引导不相交子集。对于每个1≤k≤K,任何一个消息m∈Sk表示一个ak的投票。其余的消息m∈S0被认为是无效的。虽然不是根本需要,但是通常,每个Sk,1≤k≤K包括一个单个元素μk。然而,为了该方案的安全性,通常需要利用一些公共的随机资源或可接受的共享方案来独立地随机生成μk。
出于一致性的考虑,下面的讨论使用了多组符号,应该清楚的是,使用椭圆形曲线可以同样好地实现所有构造。
2.选票提交每个投票人vi将她的选票或决定加密为ElGamal对,(Xi,Yi)=(gαi,hαi,mi),]]>其中由投票人随机选择αi∈Zq,并且如果vi希望选择答案ak,那么mi∈Sk。该加密后的值是发送到选票收集中心(投)的内容,通常还附带由vi创建的电子签名。
如果投票人vi自己用笔和纸计算这些值,那么该协议在本质上足够实现秘密选举,是一种能普遍核实的选举制度。(根据使用的制表方法,可能需要其它一些附加信息,如投票人的合法性证明)。然而,由于在实际中,vi只通过一些用户接口来做选择,因此实际上不希望她观察实际发送的比特值并且检查它们与她所做选择的一致性。简单地说,投票客户端可以忽略投票人的意愿并且当投票人实际希望提交“μk投票”时提交“μj投票”。
投票人通常需要一些方法来验证在选票收集中心接收到的加密后的选票是否与她的选择一致。由于是选票客户端,而不是投票人选择了αi,因此简单地将选票箱的数据公开不是一种合理的解决方法。出于选票机密和强制的原因,这个值应该被“丢失”。因此vi的加密后的选票对她就象对其他任何人一样是不透明的。来自投票收集中心的一般确认显然也是不够的。所需的一般属性为1.由选票收集中心返回的确认字符串C,需要作为所接收数据(加密后的选票)的函数。
2.投票人和投票客户端应该能够执行一套指定的允许投票人与独占所接收的选择(或选票)μk的C结合的步骤。
3.投票客户端应该不会出现“欺骗”投票人的行为。即,当实际上接收到μ≠μk时,客户端不能使投票人确信接收到的是μk。
在这一节中,我们参考SVC显示了这样一种方案的基本形式。在下一节中,我们提供了一些改进和增强。
下面的步骤通常作为投票过程的一部分来执行。
CC-1.由vI“操作的”投票客户端Mi象以前一样生成以vi的名义加密的选票。让我们用(Xi,Yi)=(gαi,hαi,mi)]]>表示,其中一些值mi∈<g>
并且αi∈Zq。
CC-2.Mi还需要构建作为mi∈{μ1,...,μk}的零知识(zeroknowledge)验证的合法性证明Pi。(这样的证明很容易从使用[CDS94]技术的用于离散对数等式的基本Chaum-Pederson证明来构建。见[CGS97]的指定实例。)CC-3.然后Mi向投票收集中心提交Pi和(已签字)的加密选票(Xi,Yi)。
CC-4.在接受加密的选票之前,选票收集中心首先检查证明Pi。如果Pi的验证失败,那么就已经检测出欺诈行为,然后选票收集中心发布未确认字符串或一些缺省随机字符串。
CC-5.假设Pi的验证成功,选票收集中心则计算Wi和Ui的值Wi=KiYiβi=Kihαiβimiβi-------(1)]]>Ui=hβi-------(2)]]>其中Ki∈G和βi∈Zq是(在一个投票人接一个投票人的基础上)随机和独立生成的。
CC-6.然后,选票收集中心向Mi返回(Ui,Wi)。
CC-7.客户端Mi计算Ci=Vi/Uiαi=Kimiβi---------(3)]]>并且向投票人vi显示该字符串(或,更确切地说是它的散列H(Ci))。
投票人需要知道查找哪个确认字符串。可以用两种不同的方法实现。最直接的方法是使投票人vi从选票收集中心获得Ki和βi。这种方法是可行的,需要传送很少的数据,并且很适合一些设备。然而,在其它情况下,因为必须计算Ci(或H(Ci)),所以它也许不是一种适用的方案。由于询问Mi来执行这个计算会破坏方案的安全性,因此vi必须访问另外的计算装置,以及访问独立的通信通道。
一种替代方法是使选票收集中心为vi计算所有可能的确认字符串,然后通过独立通道向vi发送确认字典(confirmation dictionaqry)的数量。通常,投票人vi的确认字典由下列以任何合理的格式表示的表组成

其中H是选举的公共(发布)散列函数(可能是识别函数),并且Cij=Kiμjβi.]]>当然,工程上必须注意独立的通道必须保证是真正独立的。最好,连接到选举网络的设备是不可访问的。然而,方案是可行的。由于Ki和βi是可以在选举之前预先生成的,因此即使是较慢的传递方法,如水陆路邮件(surface mail)也可以用来发送字典。
为了更完整地描述这个工具,将描述用来解释它的实施例的一些操作的实例。下面是Secret Value Confirmation(保密值确认)交换的详细实例。
为了使该实例尽可能地清楚,使用的一些基本参数比实际中通常使用的那些要小得多,例如,选票上的问题数量、加密参数的大小。另外,虽然下面按特定顺序讨论的实例交换的方面,本领域技术人员能够认识到他们可以按各种其它顺序执行这些方面。
一些电子选举协议包括附加的特征,例如●用于鉴权和审计的投票人和授权证明(公共密钥)信息●选票页形式参数●数据编码标准●表格协议和参数由于这些特征独立于Secret Value Confirmation的实施,因此本实例中将不对它们做详细描述。
该实例假设用来将投票人响应(回答)编码为一个单个的ElGamal对的选举协议。然而,从这里的描述可以发现,利用用于已投选票的ElGamal加密对其它选举协议构建Secret Value Confirmation交换是微不足道的。例如,该程序的一些实施例就结合了美国专利申请No.09/535,927中描述的同态选举协议。在该协议中,投票人的回答由多个ElGamal对表示。本实例中使用的确认字典很容易被修改为显示各自确认字符串的连接,或显示它们的序列的散列。
权限必须首先与选举初始化数据一致。它至少包括基本的数字加密数字参数、选票(即,一套问题和允许的答案等)以及决定编码方案。(它还可以包括与所使用的特定的选举协议有关的附加数据)。加密参数●组算法整倍数模块算法●质数模数(Modulus)p=47●子组模数q=23●发生器g=2●公共密钥h=gs其中s是保密的。在这个实例中,假设h=g12=7。
选票●一个问题-问题1的文字我们的旗子应该制作成什么颜色?(至多选择1个)。
-答案/选择的个数4*答案1的文字蓝色*答案2的文字绿色*答案3的文字红色*答案4的文字我弃权决定编码方案

在某些方面,在发布确认之前和发布投票人确认字典之前,选票收集中心(或代理机构)为每个投票人Vi生成随机、独立的βi和Ki。如果确认字典要在选票接收后发送,那么这些参数可以在每张选票接收后在一个投票人接一个投票人的基础上立即生成。另外,它们也可以在选举之前预先生成。在这个例子中,选票收集代理机构在接收所投的选票后,和在发送每个投票人的确认字典之前立即访问这些参数。
有时,在正式投票选举期间,每个投票人V获得并且鉴别上述的选举初始化数据。它可以通过向某个投票服务器提交“投票请求”来获得。另外,解释机构可以用一些方便的方法来“公布”选举初始化数据,即,所有投票人都可以方便地使用。
从选举初始化数据中,V能够确定期望的应答是两个不同数据元素的特定顺序的标准编码。它们是(按它们准确的顺序)选择加密一对整数(X,Y),其中0≤X,Y<47,表示(以加密形式)投票人的选择,或回答。为了使回答有效,它必须是(X,Y)=(2α,7αμ)的形式,其中0≤α<23,并且μ∈{9,21,36,17}。
有效性证明有效性证明显示了(X,Y)是上述选择加密步骤中所述的形式。(在这个例子中,我们将看到该证明由15个按特定顺序排列的模整数组成)。
在这个例子中,让我们假设V想要投“绿色”的票。
1.V随机生成α∈Z23。在这个例子中,α=5。由于“绿色”的编码是21,所以对V的选项加密计算如下(X,Y)=(25,75×21)=(32,24)(4)这对数据应该发送到选票收集中心。潜在的威胁是V的计算机可以试图改变这些值。
投票人V(或者更确切地说,是V的计算机)必须证明支持下列条件之一1.(X,Y)=(2α,7α×9),即选择(投票)为“蓝色”2.(X,Y)=(2α,7α×21),即选择(投票)为“绿色”3.(X,Y)=(2α,7α×36),即选择(投票)为“红色”4.(X,Y)=(2α,7α×17),即选择(投票)为“我弃权”作为未揭示它们实际支持哪一个的未指定的α值。可以有多种标准方法用来实现它。例如,参见R.Cramer, B.Schoenmakers于1994年在柏林的Springer-Verlag计算机科学发表的演讲记录Proofs of partial knowledge and simplified design of witness hidingprotocols,密码术-BRYPTO‘94的前提,第174-187页。该工具使用的加密值确认技术与满足前面段落中理论标准的任何方法的效果一样好。下面给出一种详细的有效性证明方法,该工具的实施例可以使用除这一种方法以外的其它类型的有效性证明。
有效性证明构造(在下面,需要V执行的美国动作或计算实际上是由V的计算机执行的)。
1.V设置α2=α=5。
2.V随机并且独立地生成所有的ω2∈RZ23,r1,r3,r4∈RZ23,s1,s3,s4∈RZ23。在这个例子中,我们设置ω2=4 (5)r1=16,r3=17,r4=21s1=12,s3=4,s4=153.V计算对应的值a1=gr1X-s1=216×3211=4a2=gω2=24=16a3=gr3X-s3=217×3219=6a4=gr4X-s4=221×328=9b1=hr1(Y/9)-s1=716×(24/9)11=18b2=hω2=74=4b3=hr3(Y/36)-s3=717×(24/36)19=1b4=hr4(Y/17)-s4=721×(24/17)8=7(7)4.V利用公共的指定散列函数H来计算c∈Z23为c=H({X,Y,ai,bi})1≤i≤4 (8)由于散列函数可能有很多选择,因此在这个例子中我们只选择随机值,例如c=19(9)
(实际上,可以使用SHA1,或MD5,或其它标准安全散列函数来计算H)。
5.V计算等级4-1=3的内插多项式P(x)。定义P的属性为P(0)=c=19 (10)P(1)=s1=12P(3)=s3=4P(4)=s4=15利用标准的多项式内插原理计算P(x)=∑3j=0zjxj,得出P(x)=x3+20x2+18x+19 (11)或者z0=19 z1=18z2=20 z3=1 (12)6.V计算值s2=P(2)=5(13)r2=ω2+α2s2=4+5×5=67.V的有效性证明包括12个数{ak,bk,rk}k=16-------(14)]]>和3个准确排序的数{Zk}k=13------(15)]]>(由于z0可以利用公共的散列函数H从其它提交的数据元素计算,因此不需要提交z0)当计算出所需的选择加密(X,Y)和相应的有效性验证后,V按照标准编码格式的定义依次对这些元素编码。得到的序列形成了V的投票。(为了使选票不可更改和无争议,V还可以利用他自己的签名密钥对投票进行数字签名。V的投票和他的数字签名(更确切地说,这两个元素的标准编码)的结果组合形成了他的签名投票)。最后,每个投票人向收集选票的数据中心发回他的(可以是签过名的)投票。
如上所述,V(β和K)的投票人指定随机参数在选票收集中心可供使用。在这个例子中,它们是β=18 K=37(16)
当选票收集中心接收到投票人的(可以是签过名的)投票后,执行下列步骤1.检查数字签名来确定选票的真实性,和投票人的合法性。
2.如果正确地验证了步骤1的签名,那么选票收集中心验证有效性的证明。对于我们在本实例中选择使用的特定类型的有效性证明,包括(a)公共散列函数H用来计算P(0)=z0的值z0=P(0)=H({X,Y,ai,bi}i=14)=19-----(17)]]>(调用其余的系数P,z1,z2,z3是V提交的(可以是签过名)投票的一部分)。
(b)对于每个1≤j≤4,估算等式aj=grjxj-P(j)---------(18)]]>bj=hrj(yi/μj)-P(j)]]>两边的值。(在此,如上所述,μj取自决定编码方案)。如果这两个等式中的任何一个不相等,则验证失败。该选票不能被接受,并且向V发送回一些断然拒绝的字符串(标志)。
3.假设成功地通过了上一步,则计算回复字符串(W,U)W=KYβ=37×2418=9 (19)U=hβ=718=42按公共编码格式指定的对这个排序对进行编码,并返回给V。
4.V的计算机计算C=W/Uα=9/(42)5=18 (20)并且向V显示这个字符串。(另外,协议可以规定对C来计算公共散列函数用并且显示得到的散列值。在该实例中,显示C自己)。如果V的计算机试图提交除“绿色”外的其它选择,那么上面计算的C值将会不同。此外,不解决Diffie-Hellman问题则不能从错误值中计算出正确的C值。(对于我们在这里使用的p和q值很小的情况下,则是可能的。然而,对于“真实的”加密参数,V的计算机不会做这些)。因此,如果V的计算机已经提交了一个不符合V的选择的加密选票,那么在希望显示确认这一点上只有两件事能做。可以显示一些东西,或什么也不显示。在什么都不显示的情况下,V可以以此作为发生欺诈的标志。在显示一些东西的情况下,显示的东西几乎肯定是错的,V可以以此作为发生欺诈的标志。
5.现在V比较显示的C值和在V的确认字典中找到的对应“绿色”选择(V想要选择)的值。此时,V可能已经预先接收到他的确认字典,或者可以通过任何独立通道获得一个拷贝。传真机可以作为这种通道的例子。如果显示的值与确认字典中对应的确认字符串不匹配,则检测出欺诈行为,并且根据特定的选举政策,可以“重投”选票。
如上所述,由于投票人的确认字典是具有投票人特定值α和K的知识的实体,因此由选票收集中心计算每个投票人的确认字典。对于投票人V的情况,我们可以考虑按照下表计算字典

下面描述当使用SVC方案时由该工具提供的安全等级假设A是选举客户的对手,∈0为A能够为任何给定μ1,...,μk伪造有效性证明的概率上限。(我们知道∈0是可以忽略的。)定理1假设利用H=Id执行SVC方案。固定1≤k1≠k2≤K。假设对于某些∈>0,A能够利用概率∈提交bi=(gai,haiμk1),]]>并且显示Cik2=Kiμk2βi,]]>其中概率一律从μ1,...,μk,g,h,βi和Ki的所有组合值获得。然后A可以利用概率∈和O(K)的其它工作来解决Diffie-Hellman的随机情况。
证明假设给定A为X,Y,Z∈R<g>。A可以通过对所有k≠k2独立地随机选择Cik1∈<g>和μk∈<g>,设置h=X,hβi=Y]]>和μk2=μk1Z来模拟选举和SVC交换。选举参数中的结果分布和Cik1显然与实际选举中产生的分布相同。利用概率∈,A能够显示Cik2,因此可以计算C=Cik2/Cik1=(μk2/μk1)βi=Zβi-----(20)]]>
因此logXC=βiloghZ=logXYlogXZ,并且C是由三元组(X,Y,Z)引起的Diffie-Hellman问题的解决方案。
推论1再次假设利用H=Id执行SVC方案。固定1≥k2≥K。假设对于某些∈1>0,A能够利用概率∈1选择k1≠k2,提交bi=(gai,haiμk1),]]>并且显示Cik2=Kiμk2βi,]]>其中概率一律从μ1,...,μK,g,h,βi和Ki的所有组合值获得。然后A可以利用概率∈1/(K-1)和O(K)的其它工作来解决Diffie-Hellman的随机情况。
证明遵循定理1的论点,但是将求解的问题与K-1个独立的Diffie-Hellman问题中的至少一个进行比较。
推论2设∈DH是A能够解决随机Diffie-Hellman情况的概率上限。然后,在H=Id的情况下,A能够提交与投票人的选择不同的投票,并且仍然显示正确的确认字符串的概率上限为∈0+(K-1)∈DH。
如果散列函数H是非平凡的,那么如果没有相当的H特征的特定知识的话,我们无法指望比较计算的Diffie-Hellman的问题。与其考虑具有H的特定选择的方案的安全性,不如我们假设H具有可忽略冲突的概率,并且替代与决定Diffie-Hellman问题的安全性比较。我们考虑的该问题的变体如下。A被给定一系列元组(Xn,Yn,Zn,Cn),其中,Xn,Yn,Zn,是随机独立生成的。利用概率1/2,Cn是对Diffie-Hellman情况的解(Xn,Yn,Zn),而利用概率1-1/2=1/2,Cn是随机和独立生成的。如果A能够利用概率1/2+∈回答问题logXnCn= logXnYnlogXnZn,]]>那么A被认为具有∈-DDH的优势。
定理1,和推论1和2明显模拟了H≠Id的情况(假设H具有可忽略的冲突概率)。以较小的变化构建该声明和证明,所以我们只总结为推论3使∈DDH作为A的DDH优势的上限。那么,如果H是具有可忽略冲突概率的任何散列函数,则A能够提交不同于投票人的选择的投票,并且仍然显示正确的确认字符串的概率上限为∈0+(K-1)∈DDH。
如果对手A也控制选票收集中心,那么SVC可以不提供任何保护。如果是这种情况,A有权访问Ki和βi,并且因此可以很容易地显示有关它的选择的任何有效确认字符串。由于选票收集中心会不可否认地暗示发现了这样的行为的事件,因此这种情况看上去好象不会发生。而且,如果在这点上无法相信选票收集中心,那么可以在任意多的管理机构中发布“确认责任”。
为了发布确认责任,每个管理机构Aj,1≤j≤J(为投票人vi)生成独立的随机Kij和βij。管理机构可以用两种通用的方法组合它们。
1.连接.投票人的确认字符串可以按预先指定的顺序为对应每个J管理机构的单个确认字符串做计算连接(与前段的计算分开)。在这种情况下,仅当所有的子串验证正确时,确认才成功。
2.委托服务器或打印机.如果可以接受委托一个中心服务器或打印机,那么可以通过简单的计算将多个确认字符串组合为相同大小的一个串Wi=Πj=1JWij-------(21)]]>Ui=Πj=1JUij------(22)]]>这样有利于减少必须发送到投票人的确认数据的量,但是代价是系统产生了受攻击的中心点。
我们总是希望能够减少必须通过独立通道发送到投票人的数据的大小。如第3节所述,确认字典已经通过现代通信技术的标准变得很小了,但是如果发送的数据可以更小,那么在成本上就更有利。如上所述,一种方法是可以将机密的Ki和βi直接发送到投票人,但是这样做的缺陷在于加到投票人身上的计算负担太大以致无法通过“投票人心算”或“笔算”来执行。下面对SVC方案的改变可以获得这两个目的,即通过独立通信通道的数据量小,并且投票人可以“心算”。它带来的代价是增加了客户对手愚弄投票人的概率,然而,从整个选举的来看,这一点是可接受的。即使对手未被发现的概率为,假定1/2,为了改变投票的实际比例,由统计上明显的投票人比例检测到的概率会非常高。正如介绍中所讨论的,可以做补救措施。
理想的做法是通过可疑的客户向投票人按随机的排列顺序传递全套确认字符串。投票人需要的唯一附加信息是所使用的排列。这还不够,在这种情况下,由于所有的确认字符串都是有效的,因此,对手可以简单地通过排除的过程获得一些优势。(K=2的情况对考虑特别有用)。为了增加安全性,我们将也被排序的字典、一些随机确认字符串也算在内。
如前所述执行3.1小节中的步骤。另外,选票收集中心向客户Mi发送一个“随机化的字典”Di。它是由选票收集中心C按如下方式生成的RD-1.K(投票人指定的)确认字符串按以前计算(Sil,...,Sik)=(H(Cil),...,H(Cik))(23)RD-2.另外,L个额外字符串生成如下(Si(K+1),...,Si(K+L))=(H(ge1),...,H(geL))--------(24)]]>其中e1,...,eL是随机在Zq中独立生成的。
RD-3.生成随机排列σi=∑K+L。RD-4.C设置Qij=Siσi(j),]]>1≤j≤K+L,并且设置Di为字符串序列(Qil,...,Qi(K+L))。
如果C通过独立通道向vi发送σi的“人类可读的”表示,那么vi可以通过很容易地利用正确索引找到确认字符串来验证她的投票。我们用SVCO来表示这种方案。
关于SVCO的安全等级,考虑下列Diffie-Hellman决定问题的形式给定A一系列元组(Xn,Yn,Zn,Cn,Dn),其中Xn,Yn,Zn是随机独立生成的。设Rn是随机独立生成的,并且设On是logXnOn=logXnYnlogXnZn的解。对于概率1/2,(Cn,Dn)=(On,Rn),对于概率1-1/2=1/2,(Cn,Dn)=(Rn,On)。如果A能够利用概率1/2+∈回答logXnOn= logXnYnlogXnZn]]>这个问题,那么A被认为具有∈-DDHP的优势。即,A必须回答与问题的原始版本相同的问题,但是由于可提供更多的有效信息,使得问题可能更简单。定理2设∈DDHP是A的DDHP优势的上限,并且H是具有可忽略冲突概率的任何散列函数。在SVCO方案下,A可以提交不同于投票人的选择的投票,并且仍然显示正确的字符串的概率上限为∈0+(K+LL)∈DDHP-------(25)]]>证明正如推论1的证明,A可以模拟选举和SVCO交换。然而,在这种情况下,A还必须模拟在SVC方案中不能使用的确认字符串列表。对于固定的k1、k2,A可以任意选择Cik1∈<g>,并且对于所有的k≠k2,任意独立地选择θk∈Zq。然后A设置μk=XθK]]>。对于k≠k1、k2,A设置Cik=Cik1YθK-θk1.]]>A设置μk2=μk1Z,]]>然后随机生成L的附加随机值μ1和l-1的附加Ci1。最后,A设置Cik2=Cik1Cn,]]>并且最后保留Ci1=Cik1Dn.]]>如前,找到正确的确认字符串等于决定了Cn、Dn哪个值是正确的Diffie-Hellman的解。对所有具有统一概率的排列取平均得出该结果。
下面描述一种可以替代上述秘密投票确认方案的方法。这两个方案之间的安全等级在实质上是相等的。
1.除了选举公共密钥h外,投票收集中心以h=hd的形式公布另一种公共密钥,其中d∈Zq是只有投票收集中心知道的密钥。
2.客户Mi象前面一样代表vi提交加密后的选票,但是用h和h二者进行了冗余加密。我们用下面的公式表示第二个加密(X‾i,Y‾i)=(gα‾i,h‾α‾im)------(26)]]>其中,αi的选择与αi无关。
3.MI还构成了2是相同值的加密的有效性的简单证明(实际上是一个Chaum-Pedersen证明)。
4.如果有效性证明在投票收集中心没有通过,那么说明象前面一样检测到欺诈。
5.投票收集中心选择随机的Ki∈<g>,βi∈Zq,并且计算Ti=Yidβi=(hαi)dβimdβi--------(27)]]>Wi=Y‾iβi=(hα‾i)βimβi-------(28)]]>Vi=KiTiWi=Kih‾βi(αi+αi‾)m(d+1)βi-------(29)]]>6.投票收集中心向Mi返回hβi和Vi。
7.Mi通过下列公式计算Si=Kim(d+1)βiSi=Kim(d+1)βi=Vi(h‾βi)(αi+α‾i)---------(30)]]>并且向投票人vi显示该值(或H(Si))。
8.投票人象以前一样请求确认字符串,并且检查显示的值。
如果检测出欺诈,象以前一样执行纠正动作。
上述程序的说明描述了对所有投票人使用一个单个的d(因此一个h=hd)并且在选举前发布该值。
另外,投票收集中心(或发布的一套“确认管理机构”)为每个投票人vi发布一个独立、随机的di(因此h‾i=hdi]]>)。di的值总是保密的,但是hi的值传达给投票人vi。
在一个实施例中,程序按如下步骤向vi传送hiA-1 vi联系投票收集中心并且鉴证他/她自己A-2 假设鉴证成功,投票收集中心1.随机生成di2.计算h‾i=hdi]]>3.向vi发送hiA-3 然后投票人vi利用hi来代替h进行如上所述的处理在另一个实施例中,程序按如下步骤向vi传送hiB-1 vi联系投票收集中心(并且可以任选鉴证他/她自己)B-2 vi在选票中选择mi,并且返回加密的选票(gα1,hα1mi)B-3此时投票收集中心1.随机生成di2.计算h‾i=hdi]]>3.向vi发送hiB-4然后投票人vi1.生成mi的第二个加密为(gα1,hα1mi)2.生成表示第一和第二个加密是对同一个选票选项mi加密的相同的有效性证明3.向选票收集代理机构发送第二个加密和有效性证明B-5如上所述进行剩下的确认过程图1-3解释了该程序的某些方面。图1是显示程序操作的典型环境的高级方框图。方框图显示了几个投票人的计算机系统110,每个计算机系统可以由投票人用来提交选票并且验证它的无欺诈接收。每个投票人的计算机系统通过因特网120连接到投票收集中心的计算机系统150。然而,本领域技术人员可以认识到,投票人的计算机系统可以通过除因特网外的其他网络连接到投票收集中心。该程序从投票人的计算机系统向返回加密的投票确认的投票收集中心的计算机系统发送选票。在每个投票人的计算机系统中,该程序利用该加密后的投票确认确定提交的选票是否有欺诈。虽然是在上述环境下描述的优选实施例,本领域技术人员可以理解,该程序可以在各种其它环境下实现,包括单一的单块集成电路系统,以及其他各种计算机系统的组合或用各种方式连接的类似设备。
图2是显示至少一些计算机系统和执行程序的其它设备,如计算机系统110和130中通常包含的一些部件的方框图。这些计算机系统和设备200可以包括一个或多个用来执行程序的中央处理器(“CPU”)201;用来存储使用中的程序和数据的计算机存储器202;用来持久存储程序和数据的持久存储装置203,如硬盘;用来读取存储在计算机可读介质上的程序和数据的计算机可读介质驱动器204,如CD-ROM驱动器;以及用来将计算机系统与其它计算机系统通过,例如因特网相连的网络连接205。如上所述配置的计算机系统最好用于支持该程序的操作,本领域技术人员可以理解,可以利用各种类型和配置,和具有各种部件的设备来实现该程序。
图3是显示通常由程序执行的为了检测危害选票的步骤的流程图。本领域技术人员可以可以理解,该程序可以执行一套偏离所示内容的步骤,包括这些步骤中的真超集和子集,这些步骤的重新排列,以及由其它计算设备执行的某些步骤中的一部分。
在步骤301中,在投票人的计算机系统,该程序对投票人做出的选项进行编码以便形成选票。在步骤302,该程序对该选票加密。在某些实施例中,加密后的选票是利用选举公共密钥和投票人的计算机系统上保持的机密生成的ElGamal对。在步骤303,该程序可以选择用属于投票人的私人密钥对选票签名。在步骤304,该程序构建用来证明加密后的选票是选择了有效选票选项的加密选票的有效性证明。在步骤305,该程序向投票收集中心的计算机系统发送加密并且签名的选票和有效性证明。
在步骤321,该程序在投票收集中心的计算机系统接收该发送。在步骤322,该程序校验接收到的有效性证明。在步骤323,如果有效性证明的校验成功,那么该程序继续到步骤324,否则该程序不继续到步骤324。在步骤324,该程序生成加密选票的加密确认。该程序执行这一步时不用对通常不可能在用来加密选票的密钥无效的投票收集中心的计算机系统中的选票进行解密。在步骤325,该程序向投票人的计算机系统发送加密的确认331。
在步骤341,该程序在投票人的计算机系统接收加密的投票确认。在步骤342,该程序利用在投票人的计算机系统保持的机密对加密的投票确认解密。在步骤343,该程序显示解密的投票确认以供使用者观看。在步骤344,如果显示的投票确认由投票人拥有的确认字典翻译成由投票人选择的选票选项,那么该程序继续到步骤345,否则该程序继续到步骤346。在步骤345,该程序确定投票人的选票不含欺诈,反之,在步骤346,该程序确认投票人的选票带有欺诈。在这种情况下,程序的实施例帮助用户撤回并重新提交投票人的选票。
本领域技术人员应该理解,可以以各种方式直接采用或扩展上述程序。虽然前面参考优选实施例对此进行了描述,本发明的范围仅由下面的权利要求和其中引述的要素定义。
权利要求
1.一种在计算系统中用来确认接收由投票人所选选票选项的方法,包括从第一参与方接收第一确认消息,第一确认消息的内容用来确认由投票收集管理机构接收到的投票人的选票选项的,一致性;和从独立于第一参与方的第二参与方接收第二确认消息,第二确认消息的内容用来独立地确认由投票收集管理机构接收到的投票人选票选项的一致性。
2.根据权利要求1所述的方法,进一步包括显示第一和第二确认消息的内容,以使投票人可以将显示的第一确认消息和显示的第二确认消息二者与由投票人选出的选票选项的期望的投票确认消息进行比较,以确定投票收集管理机构除了由投票人选出的选票选项外是否已经接收到其它选票选项。
3.根据权利要求1所述的方法,进一步包括组合第一和第二确认消息的内容以获得组合的确认消息,和显示组合的确认消息,以使投票人可以将显示的组合确认消息与由投票人选出的选票选项的希望的投票确认消息进行比较,以确定投票收集管理机构除了由投票人选出的选票选项外是否已经接收到其它选票选项。
4.根据权利要求3所述的方法,其中利用来自第一和第二确认消息中的每一个的连接内容获得组合的确认消息。
5.根据权利要求3所述的方法,其中利用阈值保密重构技术获得组合的确认消息。
6.根据权利要求1所述的方法,其中第一和第二确认消息各包含一个值,和其中通过确定第一和第二确认值中所含值的乘积来获得组合的确认消息。
7.根据权利要求1所述的方法,其中第一和第二确认消息中的每一个包含第一值和第二值,其中通过下面的方式获得组合的确认消息确定第一和第二确认消息中包含的第一值的乘积;以及确定第一和第二确认消息中包含的第二值的乘积。
8.根据权利要求1所述的方法,进一步包括从与第一和第二参与方无关的第三参与方接收第三确认消息,第三确认消息的内容独立地确认由投票收集管理机构接收到的投票人选票选项的一致性。
9.一种计算机可读介质,其内容使得计算系统通过下面的步骤确认接收由投票人选出的选票选项从第一参与方接收第一确认消息,第一确认消息的内容用来确认由投票收集管理机构接收到的投票人选票选项的一致性;和从独立于第一参与方的第二参与方接收第二确认消息,第二确认消息的内容用来独立地确认由投票收集管理机构接收到的投票人选票选项的一致性。
10.一种用来确认接收由投票人选出的选票选项的计算系统,包括接收来自第一参与方的第一确认消息和来自第二参与方的第二确认消息的确认接收子系统,第二参与方不同于第一参与方,第一和第二确认消息的内容各独立地用来确认由投票收集管理机构接收到的投票人选票选项的一致性。
11.一种受投票人控制的计算机存储设备,包含用来确认接收由投票人选择的选票选项的数据结构,包括从第一参与方接收的第一确认消息,第一确认消息的内容用来确认由投票收集管理机构接收到的投票人所选选票的一致性;和从独立于第一参与方的第二参与方接收第二确认消息,第二确认消息的内容用来独立地确认由投票收集管理机构接收到的投票人所选选票的一致性。
12.一种在计算系统中用来确认接收由投票人选出的选票选项的方法,包括通过第一通信通道向第一接收者发送第一投票人的含有按第一顺序排列的选票选项确认消息列表的确认字典,和通过不同于第一通信通道的第二通道向第一接收者发送第一投票人的确认字典指南,用于为多个有效选票选项中的每一个指示在包含对应有效选票选项的选票选项确认消息的第一顺序中的位置,以使第一接收者可以利用由第一投票人选择的选票选项的一致性与确认字典指南一起识别确认字典中对应于由投票人选出的选票选项的选票选项确认消息。
13.根据权利要求12所述的方法,其中第一接收人是第一投票人。
14.根据权利要求12所述的方法,进一步包括随机选择第一顺序。
15.根据权利要求12所述的方法,进一步包括通过第一通信通道向第二接收者发送第二投票人的第二确认字典,该第二确认字典包含按第二顺序排列的选票选项确认消息列表,第二投票人不同于第一投票人,第二接收者不同于第一接收者,第二顺序不同于第一顺序。
16.根据权利要求15所述的方法,其中第二接收者是第二投票人。
17.根据权利要求12所述的方法,其中确认字典中包含的选票选项确认消息列表包括不对应任何有效选票选项的选票选项确认消息。
18.根据权利要求12所述的方法,其中确认字典中包含的选票选项确认消息列表包括不同的多个选票选项确认消息,不同的多个选票选项确认消息中没有一个对应任何有效的选票选项。
19.根据权利要求12所述的方法,还包括在选票收集实体接收对应为投票人接收的选票选项的选票选项确认消息,和显示接收到的选票选项确认消息,以便接收者能够将显示的选票选项确认消息和在确认字典中识别到的对应由投票人选出的选票选项的选票选项确认消息进行比较。
20.一种计算机可读介质,其内容使计算系统通过下面的步骤确认接收由投票人选出的选票选项通过第一通信通道向接收者发送包含按第一顺序排列的选票选项确认消息列表的确认字典,和通过与第一通信通道不同的第二通信通道向接收者发送确认字典指南,用于为多个有效选票选项的每一个指示在包含对应于该有效选票选项的选票选项确认消息的第一顺序中的位置,以使接收者可以利用由投票人选择的选票选项的一致性与确认字典指南一起识别确认字典中对应于由投票人选出的选票选项的选票选项确认消息。
21.根据权利要求18所述的计算机可读介质,其中计算机可读介质的内容还使计算机系统在选票收集实体接收对应投票人接收的选票选项的选票选项确认消息,和显示接收到的选票选项确认消息,以便接收者能够将显示的选票选项确认消息与在确认字典中识别到的对应由投票人选出的选票选项的选票选项确认消息进行比较。
22.一种用来确认接收由投票人选出的选票选项的计算系统,包括耦合到第一通信通道的第一传输系统,用于向接收者发送包含按第一种顺序排列的选票选项确认消息列表的确认消息,和耦合到与第一通信通道不同的第二通信通道的第二发送系统,用于向接收者发送为多个有效选票选项的每一个指示在包含对应于有效选票选项的选票选项确认消息的第一种顺序中的位置的确认字典指南,以使接收者可以利用由投票人选择的选票选项的一致性与确认字典指南一起识别确认字典中对应由投票人选出的选票选项的选票选项确认消息。
23.根据权利要求22所述的计算系统,其中第二传输系统通过语音消息发送确认字典指南。
24.根据权利要求22所述的计算机系统,其中第二传输系统通过邮件消息发送确认字典指南。
25.集中传送随机化的确认字典数据结构的一个或多个生成的数据信号,包括选票确认字符串序列,各对应不同的有效选票选项的选票确认字符串子集,选票字符串在随机选择的序列中出现的顺序,以使如果没有分开的确认字典指南就无法确定该序列中的哪个选票确认字符串对应哪个有效选票选项。
26.根据权利要求25所述的生成的数据信号,其中对应有效选票选项的选票确认字符串是该序列中选票确认字符串的真子集。
27.一种在计算系统中用来传递由投票人选出的选票选项的方法,包括在客户端的计算机系统中利用只有客户知道的第一密钥对选票选项加密以生成第一加密的选票元素;利用只有客户知道的第二密钥对选票选项加密以生成第二加密的选票元素,第二密钥的选择于第一密钥无关;生成证实第一和第二个加密的选票元素是从同一个选票选项加密的证明;以及向投票收集计算机系统发送第一和第二选票元素和该证明;在投票收集计算机系统中确定该证明是否证实了第一和第二加密的选票元素是从同一个选票选项加密的;和仅当该证明证实第一和第二加密的选票元素是从同一个选票选项加密时,接受该选票选项。
28.根据权利要求27所述的方法,其中第一加密的选票元素是通过求出gα和hαm的值生成的,其中p是质数;g∈Zp,具有质数相乘序列q,具有q是p-1的1倍约数的特性;h∈<g>;在投票节点上随机选择α∈Zq;m是投票选项,并且第二加密的选票元素是通过求gα和ham的值生成的,其中h∈<g>;在投票节点上随机并独立地选择α∈Zq,m是投票选项。
29.根据权利要求27所述的方法,还包括在投票收集计算机系统中,根据第一和第二加密的选票元素向客户端的计算机系统发送选票确认,和在客户端的计算机系统中,利用第一和第二密钥对选票确认解密。
30.根据权利要求29所述的方法,还包括通过求出下面的表达式的值来产生选票确认Vi=Kih‾βi(αi+α‾i)m(d+1)βi]]>其中p是质数,g∈Zp,具有质数乘法序列q,具有q是p-1的1倍约数的特性;h∈<g>;h∈是h的d次幂,d作为密钥维持;在投票节点随机并独立地选择α∈Zq和α∈Zq;Ki∈<g>;βi∈Zq;m是选票选项,并且通过求出下面的表达式的值hβi其中将这两个求出的表达式作为选票确认发送到客户端的计算机系统。
31.根据权利要求29所述的方法,其中通过求出下面的表达式的值对选票确认进行解密Vi(h‾βi)(αi+αi‾)]]>其中p是质数,g∈Zp,具有质数乘法序列q,具有q是p-1的1倍约数的特性;h∈<g>;h∈是h的d次幂,d作为密钥维持;在投票节点随机并独立地选择α∈Zq和α∈Zq;Ki∈<g>;βi∈Zq;并且Vi作为选票确认部分被接收。
32.一种在计算系统中用来发送由投票人选出的选票选项的方法,包括利用只有客户知道的第一密钥对选票选项加密以生成第一加密选票元素;利用只有客户知道的第二密钥对选票选项加密以生成第二加密选票元素,第二密钥的选择与第一密钥无关;生成证实第一和第二加密选票元素是同一个选票选项的加密的证明;以及向投票收集计算机系统发送第一和第二加密的选票元素和该证明。
33.一种计算机可读介质,其内容使计算系统通过下面的步骤提交由投票人选出的选票选项利用只有客户知道的第一密钥对选票选项加密以生成第一加密选票元素;利用只有客户知道的第二密钥对选票选项加密以生成第二加密选票元素,第二密钥的选择与第一密钥无关;生成证实第一和第二加密选票元素是同一个选票选项的加密的证明;以及向投票收集计算机系统发送第一和第二选票元素和该证明。
34.一起传送加密的选票数据结构的一个或多个生成的数据信号,包括利用只有客户计算机系统知道的第一密钥加密以生成第一加密选票元素的第一加密选票选项;利用只有客户计算机系统知道的第二密钥加密的第二加密选票选项和证明,第二密钥的选择与第一密钥无关;和以致仅当该证明证实第一和第二加密选票选项是同一个选票选项的加密时才对由加密的选票数据结构表示的选票计数。
35.一种在计算系统中用来接收由投票人选出的选票选项的方法,包括从客户端的计算机系统接收利用只有客户知道的第一密钥加密以生成第一加密选票元素的第一加密选票选项;利用只有客户知道的第二密钥加密的第二加密选票选项,第二密钥的选择与第一密钥无关,以及证明;和仅当该证明证实第一和第二加密选票选项是同一个选票选项的加密时才接受选票选项。
36.一种计算机可读介质,其内容使计算系统通过下面的步骤接收由投票人选出的选票选项从客户端的计算机系统接收利用只有客户知道的第一密钥加密以生成第一加密选票元素的第一加密选票选项;利用只有客户知道的第二密钥加密的第二加密选票选项,第二密钥的选择与第一密钥无关,以及证明;和仅当该证明证实第一和第二加密选票选项是同一个选票选项的加密时才接受选票选项。
全文摘要
本发明描述了用来发送由投票人(301)选择的选票选项的工具。该工具利用只有客户知道的第一密钥对选票选项(302)加密来生成第一加密选票元素。该工具还利用只有客户(303)知道的第二密钥对选票选项加密来生成第二加密选票元素,第二密钥的选择与第一密钥无关。然后该工具生成能够证实第一和第二加密选票元素被从同一个选票选项加密的证明(304)。该工具向收集投票计算机系统发送第一和第二加密选票元素和证明。
文档编号G06Q50/00GK1513241SQ02808520
公开日2004年7月14日 申请日期2002年2月20日 优先权日2001年2月20日
发明者安德鲁·C·内夫, 安德鲁 C 内夫 申请人:沃特黑尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1