专利名称:用于生成名单签名的方法和系统的制作方法
技术领域:
本发明涉及需要加密技术的报文电子签名领域。
背景技术:
本发明主要但不专门应用于投票、调查、电子招标服务或任何形式的匿名竞赛。还应用于通过门票控制访问支付业务,如运输业务、电影院业务,使用户能有限次访问该业务。一旦访问次数达到限定值,他/她将不能再使用他/她的票。在这种应用中,不必知道该用户的身份。在访问过程中他/她能证明他/她具有访问权限就足够了。
电子签名属于所谓不对称或公钥加密机制。在该机制下,签名人具有秘密密钥或私钥以及相关的公钥。他/她通过使用他/她的秘密密钥对报文应用加密算法产生报文的签名。验证器可通过使用对应的公钥应用相同的加密算法来验证签名。
还提出了群组签名的构思,允许群组的每个成员产生签名,使得具有适当公钥的验证器可验证该签名是该群组的成员发出的,无需能够确定该签名者的身份。该构思在例如以下文档中说明[1]″A Practical and Provably Secure Coalition-ResistantGroup Signature Scheme″of G.Ateniese,J.Camenisch,M.Joye and G.Tsudik,in M.Bellare,Editor,Advance inCryptology-CRYPTO 2000,Vol.1880 of LNCS,p.255-270,Springer-Verlag 2000;[2]″Efficient Group Signature Scheme for Large Groups″,J.Camenisch,M.Stadler,in B.Kalishi,Editors,Advancesin Cryptology-EUROCRYPT 97,Vol.1294 of LNCS,p.410-424,Springler-Verlag,1997.
基于群组签名构思的一般原理是与群组的每个成员相关的对共同难题的独特解决方案,该方案由合格的认证机构在成员注册时提供给该群组的每个新成员。在注册时,该成员计算针对于他/她的签名私钥并与认证机构交互以获得他/她自己对该难题的解决方案。该成员和该认证机构还计算与该成员的私钥以及可能与该成员所知的问题的解决方案密切相关的成员证书。为了代表该群组而对报文进行签名,该成员用该认证机构的公共加密密钥来加密其证书,并证明他/她知道群组成员私钥、该难题的解决方案以及与包含在加密文本中的明文相关的成员证书(属于该群组的证据)。这里的基础是密码术且特别是知道的证据,以获得该群组签名的所需属性。群组签名的验证由验证知道的证据构成;打开签名仅由解密证书构成。
但是,在此群组签名构思中,认证机构可随时取消签名者的匿名,即,确定该群组中发出签名的人的身份。而且,这种签名被称为“不可链接的”,即,如果不取消签名者的匿名,就不能确定是否两个签名由同一人发出。因此该群组签名构思不是很适合电子投票。
还存在使名单的成员产生签名的所谓名单电子签名,这样验证器可识别出该签名由该名单的成员产生,不必能确定该成员的身份。根据该名单签名构思,例如该申请人提交的专利申请FR2842680,时间被分成具有预定有效时段的由序列代表标记的序列。在一个序列中,该名单的每个成员被授权产生签名,验证器可根据该签名确定两个签名是否由该名单中的同一成员发出,而不用能访问该签名者的身份。这样,如果该名单的成员在同一序列产生两个签名,不用确定该签名者的身份就能检测到。
因此名单签名很适合投票或电子调查,因为每个投票者可产生其选票的名单签名,这保证了他/她的匿名,而此人在给定的相同选举(序列)中发出的选票可被检测到。名单签名很适合门票,如运输票或电影票,因为用户可在其被授权的每个入口处产生名单签名,保证了他/她的匿名,同时可确定在给定序列过程中已发出的签名数目,于是授权他/她获得与支付的金额对应的一定次数的服务。但是,某些名单签名据说是“可打开的”,即,认证机构可根据签名确定签名者的身份。
更具体地,名单的每个成员在其在名单中注册时计算私钥,并从认证机构获得该名单的成员证书,以及难题的解决方案。该名单签名构思不允许取消匿名;在产生签名时不包括任何加密。在给定序列的开始处,认证机构生成只在该序列的持续时间有效的序列代表。在产生签名时,象在群组签名中一样,该名单的成员提供他/她知道私钥的证据、难题的解决方案以及该名单的成员证书。他/她还计算该序列的代表的幂,其指数是私钥。对于给定的序列,可以链接该名单的同一成员产生的两个签名,因为该序列的代表和私钥是为此序列设置的。于是,可以对同一序列中该名单的每个成员发出的签名的数目进行计数。
这些构思的主要缺点是它们需要大量的计算。的确,对每个生成的签名,必须产生知道的证据,这实际上需要应用很多模幂运算,且非常耗费计算时间,尤其是产生随机数安装有加密处理器的芯片卡每次模幂运算花费约1秒。
群组签名计算时间消耗问题的解决方案在发明人提交的专利申请FR2834403中提出。包含应用芯片卡(加密处理器)的该方案具有群组签名的缺点,即,不能链接给定成员发出的签名而不取消该签名的匿名。
发明内容
本发明的目的是抑制这些缺点。这个目的通过提供生成与要被签名的报文有关的名单签名的方法来实现,该方法包括由名单的成员的电子硬件支持执行的步骤,其中所述电子硬件支持从要被签名的报文中产生电子签名,并发出生成的签名。根据本发明,电子签名仅根据要被签名的报文,根据认证机构为所述电子硬件支持提供的序列号,根据属于该成员名单的证据,根据针对所述电子硬件支持的数据,以及可选地,根据来自有资格取消生成的签名的匿名的机构的密钥而生成。
根据本发明的一个实施例,所述电子硬件支持根据序列号产生用于生成电子签名的伪随机数,产生的伪随机数仅根据序列号和针对于所述电子硬件支持的数据而不同。
根据本发明的一个实施例,所述伪随机数的产生通过使用所述电子硬件支持存储的且针对于所述电子硬件支持的秘密密钥的加密函数实现。
根据本发明的一个实施例,从序列号生成的伪随机数和生成的电子签名一起发出。
根据本发明的一个实施例,属于成员名单的证据包括知道所述名单的成员共同的秘密密钥。
根据本发明的一个实施例,所述电子硬件支持利用有资格取消生成的签名的匿名的机构的密钥和所述电子硬件支持存储的识别具有电子硬件支持的成员的识别码通过加密算法加密,以获得用于生成电子签名的加密的标识。
根据本发明的一个实施例,根据序列号生成的伪随机数用于加密识别成员码。
优选地,加密的标识和生成的电子签名一起发出。
根据本发明的一个实施例,所述电子硬件支持为认证机构接收与所述序列号的签名相关的序列号,验证所述序列号的签名,以及如果与所述序列号相关的签名不正确,则拒绝生成新的签名。
根据本发明的一个实施例,如果预先发出的签名的数目小于或等于授权的签名的最大数目,所述电子硬件支持生成签名。
根据本发明的一个实施例,所述发出的签名的最大数目在序列号改变时重置。
本发明还涉及一种电子投票方法,包括组织选举的阶段,其中组织机构生成投票所需的参数,并将解密和验证选票的密钥分配给监票者;为每个投票者分配签名权的阶段;投票阶段,其中投票者对选票签名;以及计数阶段,其中监票者验证选票,并根据解密且有效的选票的内容计算投票结果。
根据本发明,本方法应用上述的名单签名方法,用于对选票签名,每个投票人注册为名单成员,为投票生成序列号,授权的签名的最大数目等于1。
本发明还涉及一种电子硬件支持,包括应用上述方法的装置。
根据本发明的一个实施例,所述电子硬件支持表现为加密微处理器卡。
下面将结合
作为非限制性例子的本发明的优选实施例图1所示为根据本发明的应用名单签名和电子投票方法的系统;图2所示为根据本发明的方法用于生成名单签名的芯片卡的功能元件的示意图;图3所示为根据本发明的名单签名过程的流程图,其为非打开性的且可用图2所示的芯片卡执行;图4和5所示为根据本发明的名单签名过程的流程图,其为可打开性的且可用图2所示的芯片卡执行;图6所示为根据本发明的另一可替换的名单签名过程的流程图,其可为图2所示的芯片卡来执行;图7-9所示为根据本发明的名单签名方法应用于电子投票的流程图。
具体实施例方式
本发明提出了一种名单签名方法,其中所有被授权的人,即,属于该名单的人,可产生匿名的签名,且该签名的有效性可被任何人验证而不用获得发出签名的名单成员的身份。
该方法可应用于图1所示的系统。该系统包括用户可用的且连接到数字数据传输网络5如因特网的终端2。每个终端有利地连接到设备8用于读电子硬件支持如芯片卡7。通过网络5,用户可连接到给出对例如存储在数据库4中信息的访问的服务器6。该系统还包括认证机构的计算机1,主要将芯片卡7发放给用户。
此外,根据本发明的系统基于布置群组签名,例如上述专利申请FR2834403所述,但是使用对称或不对称加密算法。
负责该群组的认证机构生成用于放置所选群组签名的所有密钥和参数并将这些元件的所有公开元件放置在目录中(例如,数据库4)。
为了属于群组,每个成员从认证机构接收例如具有图2所示的功能架构的芯片卡7。该架构包括-微处理器11,提供内部函数的处理以及执行存储在所述卡的存储器中的应用程序,且可包括用于执行加密计算的优化的加密处理器;-存储器12,包括可读和可写的随机存取存储器14,处理器11可用它记录瞬时数据,例如加密计算的中间结果,只读存储器13,例如可重编程型(EEPROM)并在卡生产后允许长期存储数据如定制数据和应用程序,ROM型只读存储器15,其在芯片卡生产中被编程有不变数据且主要存储芯片卡的内部处理程序以及可能的加密数据;-通信接口16,卡通过该接口与合适的芯片卡读卡机8交换数据,以及-内部总线17,用于将上述元件连接在一起。
芯片卡7优选安全地制造以防止从外部访问主要存储在ROM存储器15中的某些数据。而且,为了应用根据本发明的名单签名的方法,卡的存储器12包括使用签名算法产生群组签名、成员i的标识Idi、对名单的所有成员公用的名单签名秘密密钥SKL、仅芯片卡知道的且针对该芯片卡的秘密密钥SKi的装置,以及用于生成伪随机数的装置。
如果生成的名单签名需要能被有资格取消匿名的机构打开,则使用对称或不对称的加密算法。该算法将下列作为输入要加密的报文,以及可能伪随机数,例如伪随机数Ri,其在每次执行算法时都不同,使得当算法每次执行时对相同报文产生不同的加密文本。另一方面,如果所述伪随机数不变,对相同报文获得的加密文本总是相同的。
认证机构还管理后续的预定时段的序列,对每一序列随机生成唯一的REPSEQ序列号,其应不同于以前生成的所有序列号且对该名单的所有成员是共同的。此号码优选地还被认证机构签名。
例如所述序列号从随机生成的元件中获得,认证机构通过散列函数例如SHA-1函数计算凝聚(condensate),并例如应用PKCS#1,v2.1标准的OS2IP函数将结果格式化。
为代表该名单对报文M签名,该名单的成员使用由认证机构移交给他的芯片卡7,该芯片卡7通过终端2和芯片卡读卡机8接收要签名的报文M和REPSEQ序列号作为输入。
芯片卡然后执行图3所示的名单签名过程,该过程包括通过随机数生成函数PRNG,依据芯片卡生成伪随机数Ri,接收在被确认过程中的REPSEQ序列号作为输入,所述输入数据用作伪随机生成函数的“种子”。
为了使生成的伪随机数Ri依赖于所述卡,选择函数使得该名单的成员的两个不同的卡必须从同一REPSEQ序列号产生两个不同的伪随机数。典型地,PRNG函数是用于移交给名单成员的所有芯片卡的通用函数,且它也接收针对芯片卡7的秘密密钥SKi作为种子。
由芯片卡执行的名单签名过程则包括执行群组签名算法。此算法包括例如将要签名的报文M与获得的伪随机数Ri连接,以及通过芯片卡存储的名单签名的秘密密钥SKL将常规的签名函数Sign应用于所述获得的值。由芯片卡在输出下发的签名S包括与由签名函数Sign提供的签名值Si连接的伪随机数Ri该过程应用的签名算法可由以下公式合成Ri=PRNG(SK1,REPSEQ) (1)Si=Sign(SkL,Ri||M) (2)S=Ri||Si(3)||表示连接运算符。
例如PRNG函数和常规的例如AES(高级加密标准)型的加密函数一起产生,否则和用REPSEQ序列号对SKi模n的幂乘方的模幂运算一起产生。
所选的Sign函数例如是RSA(Rivest,Shamir,和Adleman)型,其为值Ri||M变换,然后将获得的量值对SKL模n的幂乘方。使值Ri||M格式化的变换是例如OS2IP函数,用于将字符串转换成正整数,如PKCS#1,v2.1标准所提供。
为了检查签名S,对其应用群组签名验证过程就足够了,该过程在于例如上述将签名Si对SKL模n的幂乘方以变换获得的值而将其转换为字符串(PKCS#1标准的I2OSP函数)并将获得的变换的值与被签名的报文M相比较。当然,验证签名也包括验证与签名Si相关的值Ri对应于与签名中的报文M相关的值Ri。
为了检查用同一REPSEQ序列号生成的两个签名是否由名单的同一成员发出,比较签名S中与报文的签名Si相关的数Ri就足够了,这些数对于相同序列号的相同的芯片卡发出的两个签名S是相同的。
应注意,数Ri出现在生成的签名Si中,它不必和签名一起发出,除非希望即使没有用于名单Si验证的密钥的人也可链接相同序列的相同的芯片卡发出的两个签名。
上述过程生成所谓的不可打开的签名,即,即使具有所需权限的机构也不可能取消获得的名单签名S的匿名。如果希望签名是开放的,则芯片卡7执行图4所示的名单签名过程。
与参考图3的上述过程相比,此过程包括将加密函数Enc应用于元件IDi,具有所述卡的名单成员i可用它来识别,此元件由标识或由认证机构下发的证书的一部分组成,认证机构知道此证书部分和该成员的实际身份之间的联系。此加密使用加密公钥PKMO,该公钥有关于属于有资格取消该名单成员发出的签名的匿名的机构的加密私钥SKMO。此加密Ci的结果与不可打开名单签名过程中相同的方式获得的伪随机数Ri连接;利用此连接可获得值Ri||Ci,该值与签名以前的报文M连接,以及可能与获得的签名Si连接。
应注意,标识Idi的加密可以是对称的或不对称的。如果此加密是不对称的,卡存储公钥PKMO。如果此加密是对称的,卡以安全方式存储仅为有资格取消该名单成员发出的签名的匿名的机构所知的秘密密钥SKMO。
此过程应用的签名算法可由下列公式合成
Ri=PRNG(SKi,REPSEQ) (4)Ci=Enc(PKMo,Idi) (5)Si=Sign(SKL,Ri||Ci||M) (6)S=Ri||Ci||Si(7)PRNG函数也可为例如AES型的常规加密函数。例如加密函数Enc为例如AES型或RSA型的常规加密函数,接收密钥和名单的成员i的标识Idi以及可能伪随机数Ri作为输入。
例如签名函数Sign包括通过如PKS#1 v2.1标准的OS2IP函数将在输入处施加的值Ri||Ci||M转换为整数,以及将获得的转换值M′对SLL乘方应用于幂模n函数Si=M1SKL(modn)(8)因此上述算法仅包括随机数计算和两次加密计算,每次计算为简单的模幂运算。
为了验证签名由该名单的成员发出,知道签名函数(上例中的数n)和该名单的公钥PKL就足够了。在此例中,计算以下值M″=SiPKL(modn)(9)通过PKS#1 v2.1标准的I2OSP逆变换函数转换值M″,并验证利用报文M获得的值就足够。
为了确定两个签名是否由该名单的同一成员发出,比较两个签名中包含的伪随机数Ri的值就足够了。如上述参考图3所述的例子中,伪随机数Ri不必和签名S一起发出,除非希望没有用于验证的名单密钥的人可链接相同序列的相同的芯片卡发出的两个签名。
应注意,没有密钥SKMO的人不能取消签名的匿名。
如果认证机构需要取消签名的匿名,通过使用密钥SKMO将对应加密函数Enc的解密函数应用于值Ci就足够。通过此运算,可以获得标识,通过该标识可在其目录(数据库4)中搜索以再次发现该名单的签名者成员的身份。
附加的安全性包括将认证机构分成两个不同的实体。第一机构仅具有私钥SKL且不知道名单成员的标识Idi它是新成员注册到名单中时涉及的名单的机构。第二机构仅具有SKMO密钥以及名单的成员的所有标识它是唯一有资格取消签名的匿名的打开机构。
第二机构也可分为仅具有打开密钥SKMO的相应部分的几个实体,以便仅能解密标识Idi的一部分,以及为在标识和对应人的身份之间建立链接的机构。
一种提供安全水平的替换包括分配对应每一标识Idi的密钥SKMOi,以及仅加密用于使加密概率化的伪随机数Ri。取消签名的匿名则包括测试所有加密密钥SKMOi直到获得在目录中出现的标识Idi。
这样,如果芯片卡被破坏,黑客仅访问该卡的SKMOi而不能产生代表包含在卡中的除SKMoi之外的标识的名单签名。因此黑客不能冒充该名单的另一成员。
应注意,如果有资格取消签名的匿名的机构与将芯片卡移交给该名单的成员的认证机构相同,不必将标识Ci和签名S一起发出,因为签名出现在与被签名的报文相关的签名中。
图5所示为根据本发明的名单签名方法的另一可打开的替换。
此图中示出的过程与图4所示的不同之处仅在于使用由PRNG函数获得的伪随机数Ri以使加密函数概率化,应用于该名单成员的标识Idi具有芯片卡7,此加密的结果Ci与要被签名的报文M以及与生成的签名Si连接。芯片卡提供的签名包含和加密值Ci连接的产生的签名Si。
此过程应用的签名算法可由下列公式合成Ri=PRNG(SKi,REPSEQ)(10)Ci=Enc(PKMo,Ri,Idi)Si=Sign(SKL,Ci||M) (11)S=Ci||Si(12)以此方式,与签名Si相关的值Ci对名单的同一成员和同一序列号保持不变。因此,通过它可以确定两个签名是否由名单的同一成员发出。
为了解除签名的匿名,通过使用对应PKMO密钥的秘密密钥SKMO,将对应加密函数Enc的解密函数应用于值Ci就足够。
如上所述,加密函数Enc可以是对称的或不对称的。在第一种情况下,使用单独的秘密密钥SKMO,该密钥由名单的成员的芯片卡存储,且仅为有资格打开该签名的机构所知。
根据本发明的另一实施例,可设置能由芯片卡发出的签名的数目。芯片卡则包括当已发出的签名数目超出预定数目时,在发出签名的过程中用于发出错误消息的装置。
在本发明的一个实施例中,芯片卡执行图7所示的签名生成过程40。在此过程中,设置了能由卡发出的签名的数目。芯片卡则包括当已发出的签名数目超出预定数目时,在发出一个签名的过程中用于发出错误消息的装置。
在过程40的第一步骤41中,芯片卡7接收要被签名的报文M和REPSEQ序列号,并通过例如认证机构生成的和序列号一起传送的签名验证该序列号的有效性。此验证利用芯片卡存储的认证机构的公钥PKA来实现。如果与序列号相关的签名无效,芯片卡发出错误消息(步骤49)且过程40结束,而没有卡生成的任何签名。
如果签名有效,芯片卡进行下面的步骤42,其中将接收的序列号与预先存储在随机存取存储器13中的序列号相比较,以及如果该号未预先存储,则在步骤43存储它。
在第一替换中,能发出的签名的最大数目NBSIG一次存储在卡的随机存取存储器13中;该数目可依赖于卡的类型。这样,对于运输票的应用,可提供用于10个通道的卡和用于20个通道的卡。
在其他替换中,能发出的签名的最大数目与序列号一起传送并包括在步骤41中由芯片卡验证的签名中。在这种情况下,认证机构生成的和芯片卡接收的签名可能涉及与授权的签名的数目以及当前日期相连接的序列号(REPSEQ||NBSIG||date)。
在任一替换或两者的替换中,芯片卡执行附加步骤44用于在每次序列号改变时用接收的授权的签名数目NBSIG来重置CPT计数器。
在上述两者的替换中执行的下面的步骤45中,以及如果存储的序列号与接收的序列号(步骤42)相同,在只读存储器13中能生成的签名的数目NBSIG减少。如果获得的数目严格为负(步骤46),则芯片卡发出错误消息。在相反的情况下,在步骤47,芯片卡根据上述名单签名方法之一计算报文M的签名Si并发出生成的签名Si(步骤48)。
卡也可根据序列号管理不同的计数器。卡每次接收新的序列号,如果需要为签名的最大数目NBSIG(如果后者对每一序列号是不同的),它重置存储在表格中与序列号相关的CPT计数器。当卡接收具有要签名的报文的序列号时,它在此表中查找接收的序列号是否存储在其中,如果是,它更新相关计数器以考虑新生成的签名。
上述名单签名方法可应用于电子投票方法。根据本发明的电子投票方法包括几个阶段,所述阶段包括执行上述名单签名方法的过程。
此方法涉及干涉组织选举的认证机构,其为此执行过程50以组织投票。此过程包括生成正常选举所需的数据以及在其中收集选票的所有人可访问的公共数据库。在组织投票中,还指定监票者对投票进行计数并确定选举结果。
组织机构首先进行生成建立名单签名所需的不同参数。投票者则必须预先在例如市政厅中在选举名单上注册以接收如上所述的芯片卡7,芯片卡7包含所有所需数据,即,成员i的标识Idi,名单的所有成员共同的名单签名秘密密钥SKL,以及仅芯片卡知道并针对于芯片卡的秘密密钥Ski。通过这些参数,投票者可参与所有未来的选举。
在过程50的步骤51,组织机构还公布建立新的名单签名序列所需的序列号m,以防止投票者在这次选举中投票(签名)两次。
而且,负责对选票计数的监票者将创建所需的公钥/私钥对52。这样它们将配合以便能利用公钥来解密加密的报文。为此,选择建立加密系统,以使投票者通过至少一个公钥来加密报文(选票),同时利用所有监票者的配合以使用相应的私钥,并因此解密报文。
在所有监票者之间共享解密私钥可按如下方式进行。
假设g是循环群组G的生成器。相应的私钥Xi被分配给每个监票者i,其计算属于G的数yi,于是yi=gxi(1)投票者要用的公钥Y通过以下公式获得Y=Πiyi---(2)]]>以及,所有监票者i共享的对应私钥X如下X=Σixi---(3)]]>通过使用监票者的所有对应的公钥进行加密可能达到相似结果。解密需要知道所有对应的私钥。
在打开投票站的过程中,每个投票者通过在终端上执行过程60发出选票。在步骤61,投票者选择他/她的投票vi并通过监票者的公钥加密它,以获得加密的选票Di。接着,他/她通过名单签名方法对加密的选票签名以获得签名Si。选票包括选票组(Di,Si),且签名随后在公共数据库4中匿名公布。
在步骤62,通过使用加密算法如El Gamal或Paillier算法来进行选票的加密。如果应用El Gamal算法,通过计算以下数字来进行加密aj=vjYrand bj=gr(4)其中r是伪随机元件。加密的选票vj则包括对Dj=(aj,bj)。投票者Ej然后计算63加密选票的名单签名Sj=Siglist(ai||bj),Siglist是他/她的芯片卡7获得的并被传送给终端2的上述名单签名。
投票者Ej刚生成他/她的选票(Di,Si),该选票就通过匿名传输通道被发送64到公共数据库4,即阻止传送到匿名传输通道的发射器的报文的链接。为此,投票者可使用公共终端或混合器网络。
在投票结束时,监票者通过在终端3上执行过程70来对选票进行计数。该过程首先包括从其对应私钥Xi并通过公式(3)生成71解密私钥X。接着,在步骤72,它们访问选票的公共数据库4以获得选票(Di,Si)并解密它们。
选票的实际解密包括对每个发出的选票(步骤73)通过执行上述名单签名验证过程40验证74签名Si,以及如果签名有效且唯一(步骤75),通过应用以下公式(76)解密加密的选票Djvj=aj/bjx(5)因此解密的并用对应的验证结果验证的选票Vj被放入77选票的数据库4,与选票(Dj,Sj)相关联。
还公开解密私钥X以使每个人验证选票的计数。
一旦所有选票被计数,在步骤78,过程70计算选举结果,并通过将结果以及可能将解密私钥X写入其中来更新选票的公共数据库。
容易看出建立电子投票系统所需的上述属性被上述方法验证。实际上,如果可能发出的签名的最大数目设置为1,每个投票者仅能投票一次(芯片卡对于给定的序列号仅能发出一次签名)。
接着,因为对选票计数需要所有监票者都在场,如果至少一个监票者遵守,不能在投票结束之前就开始对选票计数。最后,每个人都可验证选举结果,因为监票者在数据库中提供了所有需要的元件(尤其是计数私钥)以进行验证,且通过使用认证机构的公钥PKL,每个人都能验证签名。于是,任何人可以按与监票者一样的方式执行计数并因此确保其已正确执行。
当然,监票者的密钥在投票结束时作废,因为它们被公开了。
权利要求
1.一种生成与要被签名的报文(M)有关的名单签名的方法,包括由名单的成员的电子硬件支持(7)执行的步骤,其中所述电子硬件支持从要被签名的所述报文中生成电子签名(Si),并发出所生成的签名,其特征在于,所述电子签名(Si)仅根据要被签名的所述报文,根据认证机构提供给所述电子硬件支持的序列号(REPSEQ),根据属于所述成员名单的证据(SKL),根据针对所述电子硬件支持的数据(Idi,SKi),以及可选地根据有资格取消所生成的签名的匿名的机构的密钥(PKMO)而生成。
2.根据权利要求1的方法,包括步骤所述电子硬件支持(7)根据所述序列号(REPSEQ)产生用于生成所述电子签名(Si)的伪随机数(Ri),所述产生的伪随机数仅根据所述序列号和针对于所述电子硬件支持的数据而不同。
3.根据权利要求2的方法,其中所述伪随机数(Ri)的产生通过使用所述电子硬件支持(7)存储的且针对于所述电子硬件支持的秘密密钥(SKi)的加密函数来实现。
4.根据权利要求2或3的方法,其中根据所述序列号(REPSEQ)生成的所述伪随机数(Ri)和所生成的电子签名(Si)一起发出。
5.根据权利要求1到4中任一项的方法,其中属于所述成员名单的证据包括知道所述名单的成员共同的秘密密钥(SKL)。
6.根据权利要求1到5中任一项的方法,还包括步骤所述电子硬件支持(7)利用有资格取消所生成的签名的匿名的所述机构的密钥(PKMO)和所述电子硬件支持存储的识别具有所述电子硬件支持的成员(i)的识别码(Idi)通过加密算法加密,以获得用于生成所述电子签名(Si)的加密的标识(Ci)。
7.根据权利要求6的方法,其中从所述序列号(REPSEQ)生成的伪随机数(Ri)用于加密所述成员识别码(Idi)。
8.根据权利要求6或7的方法,其中所述加密的标识(Ci)和所生成的电子签名(Si)一起发出。
9.根据权利要求1到8中任一项的方法,其中所述电子硬件支持(7)代表认证机构接收与所述序列号的签名相关的序列号(REPSEQ),验证所述序列号的签名,以及如果与所述序列号相关的所述签名不正确,则拒绝生成新的签名。
10.根据权利要求1到9中任一项的方法,其中如果预先发出的签名的数目小于或等于授权的签名的最大数目,所述电子硬件支持(7)生成签名。
11.根据权利要求10的方法,其中所发出的签名的最大数目在序列号(REPSEQ)改变时重置。
12.一种电子投票方法,包括组织选举的阶段(50),其中组织机构生成投票所需的参数,并将解密和验证选票的密钥分配给监票者;为每个投票者分配签名权的阶段;投票阶段(60),其中所述投票者对选票签名;以及计数阶段(70),其中所述监票者验证选票,并根据解密且有效的选票的内容计算投票结果,其特征在于,它应用根据权利要求10或11的名单签名方法,用于对选票签名,每个投票人注册为名单成员,为投票生成序列号(REPSEQ),合格的签名的最大数目等于1。
13.一种电子硬件支持,其特征在于包括应用权利要求1到12中任一项的方法的装置。
14.根据权利要求13的电子硬件支持,表现为加密微处理器卡(7)。
全文摘要
本发明涉及一种为要被签名的报文(M)生成名单签名的方法,所述方法包括名单成员的电子材料支持(7)执行的步骤。在所述步骤中,电子材料支持根据由认证机构提供给电子材料支持的序列号(REPSEQ),根据属于成员名单的证据(SK<SB>L</SB>),根据与电子材料支持有关的数据(Id
文档编号H04L9/32GK1954546SQ200580015778
公开日2007年4月25日 申请日期2005年5月18日 优先权日2004年5月19日
发明者塞巴斯蒂安·卡纳尔, 马克·吉罗, 雅克·特拉奥雷 申请人:法国电信公司