有限域离散对数密码系统的割圆多项式结构的制作方法

文档序号:2393361阅读:265来源:国知局
专利名称:有限域离散对数密码系统的割圆多项式结构的制作方法
背景技术
本发明涉及数据保密、加密,以及通过生成和使用数字签名,来验证通信方的身份。
大多数公开密钥密码系统包含因子分解问题或离散对数(DL)问题。因子分解问题是,给一个非素数,将其完全分解为素因数。DL问题是,给一个由g生成的群G,以及G中的一个元素h,求出使gm=h成立的整数m,即求loggh的值。就公开密钥密码系统提出的几种方案都依赖于在有限域的乘法群中求解DL的计算难度。公开密钥密码系统包括公开密钥加密方案和数字签名方案。假设每个用户都有一个公开密钥和一个私人密钥(该假设不必对所有方案都成立),并且假设A方希望向B方发送安全消息。在公开密钥加密方案中,A方用B方的公开密钥加密,然后B方用自己的公开和私人密钥解密。在数字签名方案中,A方用自己的公开和私人密钥准备消息,而B方用A方的公开密钥接收消息。也就是说,当准备消息时,在公开密钥加密方案中,发送方使用接收方的密钥信息,而在数字签名方案中,发送方使用自已的密钥信息。当接收消息时,在公开密钥加密方案中,接收方使用自己的密钥信息,而在数字签名方案中,接收方使用发送方的密钥信息。
一般的数字签名方案包括三步系统设定、发送方生成签名,以及接收方对签名进行验证。
假设,系统设定是在对消息签名和加密之前完成的。一般来说,在对基于DL的公开密钥密码系统进行系统设定期间,首先选择一素数,并用该素数获得群的生成元,然后选择一随机数,将其用作生成元的指数,从而在有限域中产生一结果值。当仅已知生成元和结果值时确定所述随机数是一个DL问题。
系统设定的结果是一公开密钥和一私人密钥。公开密钥被假定为公知的,该密钥包括参数、生成元、结果值和其它参数。私人密钥被假定只有发送方已知,该密钥包括随机数。
在对基于DL的公开密钥密码系统进行签名生成期间,选择第二随机数,并将其用作生成元的指数,从而在有限域中产生第二结果值。当仅已知生成元和第二结果值时确定第二随机数是一个DL问题。然后,根据待签名消息上的私人密钥和第二结果值,获得第三值。签名生成的结果是一数字签名,它包括第三值和至少另一个参数。
在对基于DL的公开密钥密码系统进行签名验证期间,对公开密钥和签名的第三值部分进行指数组合,产生第四结果值。如果第四结果值等于签名的至少另一个参数,那么认为签名有效。
系统设定、签名生成和签名验证的指数部分计算起来既费钱又费时。希望寻找到这样的技术,它们在对未授权用户保持计算难度的同时,又能减轻授权用户的计算负担,尤其能够减轻签名生成期间的计算负担。

发明内容
依照本发明的一个方面,提供了一种用于为公开密钥密码系统确定公开和私人密钥的方法和设备,所述方法包括以下步骤选择第一素数;由第一素数计算一割圆多项式;求第二素数,它是由第一素数计算得到的所述割圆多项式的因子;求一有限域中乘法群的子群的生成元,所述子群的阶是第二素数;根据所述生成元和一所选的整数,求一公开值;形成公开密钥,它包括第一和第二素数、所述生成元和所述公开值;形成私人密钥,它包括所述所选的整数。
依照本发明的另一方面,可以用最优正规基表示有限域。
依照本发明的又一方面,第二素数q满足(log2q)+1≈ B,其中B是预定的二进制位数。
依照本发明的再一方面,选择一控制整数t’,并且割圆多项式是t’次割圆多项式,公开密钥包括控制整数t’。
依照本发明的另一方面,一种用于为消息生成数字签名的方法还附加包括以下步骤选择第二整数;根据第二整数和生成元,求第一签名值;根据第一签名值和所述消息,求第二签名值;以及形成数字签名,使其包括第一和第二签名值。
一种用于验证上述对消息形成的数字签名的方法,包括以下步骤求一逆整数,它是第二签名值的逆;根据逆整数和所述消息,求第一中间值;根据逆整数和第一签名值,求第二中间值;根据生成元、公开值以及第一和第二中间值,求第三中间值;当第三中间值等于第一签名值时,判定所述签名有效。
一种用于为公开密钥密码系统确定共享密钥的方法,包括以下步骤选择第一素数;由第一素数计算一割圆多项式;求第二素数,它是由第一素数计算得到的割圆多项式的因子;求一有限域中乘法群的子群的生成元,所述子群的阶是第二素数;选择一整数;接收一中间值,中间值基于生成元;形成共享密钥,使其成为所述中间值和所述整数的函数。
一种用于消息保密通信的方法,包括以下步骤选择第一素数;由第一素数计算一割圆多项式;求第二素数,它是由第一素数计算得到的割圆多项式的因子;求一有限域中乘法群的子群的生成元,所述子群的阶是第二素数;选择一整数;接收一中间值,所述中间值基于生成元;形成共享密钥,使其成为所述中间值和所述整数的函数;用共享密钥对消息加密。
一种用于消息保密通信的方法,包括以下步骤接收加密消息,加密消息是用共享密钥加密的,共享密钥是一中间值和一所选整数的函数,所述中间值基于一有限域中乘法群之子群的生成元,所述子群的阶是第二素数,第二素数是由第一素数计算得到的割圆多项式的因子;用共享密钥对加密消息解密。
一种用于消息保密通信的方法包括以下步骤选择第一素数;由第一素数计算一割圆多项式;求第二素数,它是由第一素数计算得到的割圆多项式的因子;求一有限域中乘法群的子群的生成元,所述子群的阶是第二素数;根据生成元和第一整数,求一公开值;选择第二整数;根据生成元和第二整数,求第一加密值;根据消息、公开值和第二整数,求第二加密值;由第一和第二加密值形成加密消息。
一种用于消息保密通信的方法,包括以下步骤接收由第一加密值和第二加密值构成的加密消息,第一加密值基于第一整数和一有限域中乘法群之子群的生成元,所述子群的阶是第二素数,第二素数是由第一素数计算得到的割圆多项式的因子,第二加密值基于消息、第一整数和基于生成元和第二整数的公开值;根据第一加密值和私人密钥,求第一中间值,私人密钥基于生成元;根据第二加密值和第一中间值对加密消息解密。
并不打算在这里对本发明进行完整的概括。由以下描述和附图可以了解本发明的其它特点、方面和长处。
附图概述

图1A是一流程图,示出了依照ElGamal方案的系统设定过程;图1B是一流程图,示出了依照ElGamal方案的签名生成过程;图1C是一流程图,示出了依照ElGamal方案的签名验证过程;图2A是一流程图,示出了依照Schnorr和DSA方案的系统设定过程;图2B是一流程图,示出了依照Schnorr方案的签名生成过程;图2C是一流程图,示出了依照Schnorr方案的签名验证过程;图2D是一流程图,示出了依照DSA方案的签名生成过程;图2E是一流程图,示出了依照DSA方案的签名验证过程;图3A是一流程图,示出了依照ECDSA方案的系统设定过程;图3B是一流程图,示出了依照ECDSA方案的签名生成过程;图3C是一流程图,示出了依照ECDSA方案的签名验证过程;图4A是一流程图,示出了依照本发明的系统设定过程;图4B是一流程图,示出了依照本发明的签名生成过程;图4C是一流程图,示出了依照本发明的签名验证过程;图4D是一割圆多项式系数表;图4E是一流程图,示出了依照本发明的DES系统设定过程;图4F是一流程图,示出了依照本发明对DES系统设定进行加密的过程;图4G是一流程图,示出了依照本发明对DES系统设定进行解密的过程;图4H是一流程图,示出了依照本发明对ElGamal系统设定进行加密的过程;图4J是一流程图,示出了依照本发明对ElGamal系统设定进行解密的过程;图5A是一表,示出了对公开密钥密码系统各方案的签名生成性能进行比较的比较结果;图5B是一表,示出了对公开密钥密码系统各方案的签名验证性能进行比较的比较结果;图6示出了获得图5A和5B的性能结果的加密、解密的消息;图7A-11D示出了用来获得图5A和图5B性能结果的诸例中各公开密钥密码系统的公开密钥、私人密钥、签名和签名生成参数k;以及图12是一方框图,示出了实施本发明的环境。
较佳实施例的详细描述割圆多项式用于构造有限域中乘法群的子群,可以非常有效地实现基于离散对数的公开密钥密码系统,包括公开密钥加密方案和数字签名方案。域可用最优正规基来表示,并且域中乘法群之子群的生成元可用来形成公开密钥。根据应用和执行的类型,依照割圆方案进行公开密钥加密可以比较传统的子群或有限域选择方案快两倍。
已提议的数字签名方案包括ElGamal方案、Schnorr方案、数字签名算法(DSA)方案和椭圆曲线数字签名算法(ECDSA)方案,其中T.ElGamal在1985年第31期IEEE Trans.Info.Tech中第469-472页的上发表的论文“基于离散对数的公开密钥密码系统和签名方案”对ElGamal方案作了叙述;C.P.Schnorr在1991年第4期J.Cryptology中第161-174页上发表的论文“用智能卡高效地生成签名”对Schnorr方案作了叙述;申请日为1993年7月27日、发明名称为“数字签名算法”的美国专利第5,231,668号(发明人为Kravitz)对DSA方案作了叙述;而Agnew等人在1991年第三期J.Cryptology第63-79页上发表的论文“实现快速公开密钥密码系统”对ECDSA方案作了叙述。DSA被纳入美国政府的数字签名标准中。以下将讨论这些被提议的方案,并将它们与本发明在数字签名方案中使用的割圆方案进行比较。术语m需要签名的消息,由二进制位串组成p素数qp-1的素因子Lp的位长度,L实际上确定了DL的保密等级Bq的位长度,B实际上确定了子群DL的保密等级F(p) 由p个元素组成的域,用由模p最小剩余组成的集合{0,1,…,p-1}表示F(p)*F(p)的乘法群=F(p)-0H(*)抗冲突密码散列函数,它可以将二进制位串映射为至多具有预定二进制位数的非负整数ElGamal系统设定图1A示出了在依照ElGamal方案设定电子签名系统期间,每个用户要执行的步骤。该过程可以用通用数字计算机中的处理器来完成。另一种方式是,将专用印刷电路板与通用计算机相结合,或者用“智能卡”(即信用卡大小的、包含微处理器的便携式装置)来完成该过程。
在步骤102,选择具有L-1位的素数q。
在步骤104,计算p=2q+1的值。
在步骤106,进行测试,以便确定p是否为素数。因为q有L-1位,所以p有L位。
如果p不是素数,那么过程返回步骤102,并选择另一个素数。
如果p是素数,那么过程进至步骤108,并从由p个元素组成的域F(p)的乘法群F(p)*中随机选择一个元素g。
在步骤110,进行测试,以便确定是否在F(p)中g2≠1以及gq≠1。如果这些测试中有一个失败,那么过程返回步骤108,并从F(p)*中选择另一个元素,作为元素g。
如果在F(p)中g2≠1并且gq≠1,那么元素g是域F(p)之乘法群F(p)*的生成元。不用步骤102-110中所述的过程,还可以用其它过程来确定域F(p)和生成元g。
在确定生成元g后,过程进至步骤112,并且在范围2≤a≤p-2内随机选择a值。
在步骤114,过程在F(p)中求出y=ga。
系统设定的结果是公开密钥(p,g,y)和私人密钥(a)。公开密钥的长度为3L位。私人密钥的长度为L位。
由公开密钥(p,g,y)求私人密钥(a)是域F(p)中的离散对数(DL)问题,如果p足够大,则求解是很难的。目前,当p的长度为L位(L=1024),并且p-1的素因子至少有160位时,会呈现相宜的难度。当计算能力变强时,这些参数将增大,以便对未授权用户保持计算难度。ElGamal签名生成图1B示出了依照ElGamal方案为一特定文件生成电子签名的一方所执行的步骤。将文件视作二进制位串m。实际上,生成方是通用数字计算机的处理器。在一些实施例中,处理器可以位于专用数字计算机中,诸如智能卡。
在步骤122,在2≤k≤p-2范围内随机选择一个整数k,k和p-1的最大公约数(GCD)为1,即选择k,使其与p-1都为素数。
在步骤124,求k-1mod p-1,即求出满足(k)(k-1)=1 mod p-1的值。
在步骤126,在F(p)中获得r=gk,其中r在1≤r≤p-1范围内。
在步骤128,计算s=k-1(H(m)-ar)mod p-1,其中s在2≤s≤p-2范围内。H(*)是由系统所有用户同意的密码散列函数。例如,合适的标准密码散列函数是1995年4月17日FIPS 180-1中规定的安全散列算法SHA-1,该算法可以从Virginia州Springfield市的国家技术信息服务机构获得。
签名生成的结果是数字签名(r,s)。签名的长度为2L位。
只有私人密钥(a)的拥有者可以正确地对消息签名。私人密钥(a)的秘密再次受到DL问题的保护如果通过在F(p)中计算离散对数loggr可以由r求得k,那么就可以计算出k-1,由此可以从s,m和k-1导出私人密钥(a)。因此,使k的特定值保持专用且不重复使用是很重要的。ElGamal签名验证图1C示出了依照E1Gamal方案接收已被电子签名的文件的一方所执行的步骤,这些步骤用以确定签名是否有效。
假设接收方具有消息(m)、如图1B中获得的相应数字签名(r,s),以及如图1A中获得的且曾经用来获得签名(r,s)的公开密钥(p,g,y)。实际上,接收方是通用数字计算机中的处理器。在一些实施例中,处理器可以在专用数字计算机中,诸如智能卡。
在步骤134,过程确定r值是否在1≤r≤p-1范围内。如果不在该范围内,那么在步骤142,判定该签名无效。
如果r在适当的范围内,那么在步骤136,在F(p)内计算v1=yrrs。接着,在步骤138,在F(p)中计算v2=gH(m)。
在步骤140,进行测试,以便确定是否v1=v2。如果不成立,那么在步骤142,判定签名无效。如果成立,那么在步骤144,判定签名有效。Sehnorr/DSA系统设定图2A示出了在依照Schnorr方案设定电子签名系统期间,每个用户必须执行的步骤。
Schnorr方案旨在使用大指数素域之乘法群的小子群,以便因使用较短的指数而使签名较短,求幂较快。如果子群阶是素数,并且足够大,那么使用子群不会影响方案的保密性。
除了如下所述具体规定了某些参数(B和L)的长度值外,DSA方案的系统设定与Schnorr方案的系统设定相同。
在步骤202,选择长度为B位的素数q。在DSA方案中,规定B为160。
在步骤204,随机选择一整数k。k的长度最好为750-864位,以便提供足够的保密性,来抵御未授权的用户,但当处理能力增强时,长度也将增加。
在步骤206,计算p=kq+1,其长度为L位。在DSA方案中,L规定为512+i*64,其中0≤i≤8,且i为整数。
在步骤208,进行测试,以便确定p是否为素数。
如果p不是素数,那么过程返回步骤204,并选择另一个整数k。
如果p是素数,那么过程进至步骤210,并且从F(p)*中随机选择一个元素h。
在步骤212,在F(p)中求g=h(p-1)/q。
在步骤214,进行测试,以便确定是否在F(p)中g≠1。如果测试失败,即g=1,那么过程返回步骤210,并从F(p)*中选择另一个元素作为值h。
如果在F(p)中g≠1,那么就为大指数素域F(p)中乘法群的小子群G确定了生成元g。生成元g的阶为q,因为在F(p)中g≠1,所以gq=1。不用步骤202-214中所述的过程,还可以用其它过程来确定生成元g。
在确定生成元g之后后,过程进至步骤216,并且在范围2≤a≤q-1内随机选择a值。该范围应该比图1A中关于ElGamal方案的步骤112的相应范围小。
在步骤218,过程在F(p)中求出y=ga。如上所述,给出y和g求a值是一个离散对数(DL)问题。
系统设定的结果是一个公开密钥(p,g,y,q)和一个私人密钥(a)。公开密钥的长度为3L+B位。私人密钥的长度为B位。
为了由公开密钥(p,g,y,q)求出私人密钥(a),必须在域F(p)中求DL问题的解,或者在用g生成的F(p)*的子群G中求DL问题的解。
目前认为在下述域F(p)中解DL问题是不可能的,即该域F(p)具有基数p,p是长度为L位的素数,而q是p-1的素因子,长度至少为B位。
目前认为在F(p)*的下述子群G中解DL问题是不可能的,即该子群G的阶为q,q的长度至少为B位。Schnorr签名生成图2B示出了依照Schnorr方案为一特定文件生成电子签名的一方所执行的步骤。实际上,生成方是通用数字计算机中的处理器。在一些实施例中,处理器可以位于专用数字计算机中,诸如智能卡。
在步骤224,在2≤k≤q-1范围内随机选择一整数k。图1B中ElGamal方案的相应步骤(步骤122)对k的范围取上限p-2。由于p>>q,所以与依照ElGamal的公开密钥密码系统相比,依照Schnorr的公开密钥密码系统具有较少的元素。例如,当q的长度为160位时,p的长度大约为1024位。
在步骤226,在F(p)中求出r=gk,其中r在1≤r≤p-1范围内。由于p>>q,所以步骤226的计算要比图1B步骤126中的相应计算(即,依照ElGamal的公开密钥密码系统)快得多。
在步骤228,求出e=H(m‖r),这是将散列函数作用于消息m与签名元素r的并置。假设密码散列函数H(*)可以产生长度至多为B位的值。
在步骤230,计算s=(ae+k)mod q,其中s在0≤s≤q-1范围内。
签名生成的结果是数字签名(s,e)。签名的长度为2B位。Schnorr签名验证图2C示出了依照Schnorr方案接收已被电子签名的文件的一方所执行的步骤,这些步骤用以确定签名是否有效。
假设接收方具有消息(m)、如图2B中获得的相应数字签名(s,e),以及如图2A中获得的且曾用来获得签名(r,s)的公开密钥(p,g,y,q)。实际上,接收方是通用数字计算机的处理器。在一些实施例中,处理器可以位于专用数字计算机中,诸如智能卡。
在步骤236,在F(p)中计算v=gsy-e。接着,在步骤238,计算e’=H(m‖v)。
在步骤240,进行测试,以便确定是否e=e’。如果不相等,那么在步骤242,判定签名无效。如果相等,则在步骤244,判定签名有效。DSA签名生成图2D示出了依照DSA方案为一特定文件生成电子签名的一方所执行的步骤。实际上,生成方是通用数字计算机的处理器。在一些实施例中,处理器可以位于专用数字计算机中,诸如智能卡。
在步骤324,在2≤k≤q-1范围内随机选择一整数k。
在步骤326,求k-1mod q,即求满足(k)(k-1)=1 mod q的值。
在步骤328,在F(p)*的子群G(由g生成)中求u=gk,其中u在1≤u≤p-1范围内。
在步骤330,计算r=u mod q。
在步骤332,计算s=k-1(H(m)+ar)mod q,其中s在0≤s≤q-1范围内。
在步骤333,进行测试,以便确定是否s=0。如果成立,则过程返回步骤324,为整数k选择一个新的值。如果s≠0,则过程进至步骤334,并结束。
签名生成的结果是数字签名(r,s)。签名的长度为2B位。DSA签名验证图2E示出了依照DSA方案接收已被电子签名的文件的一方所执行的步骤,这些步骤用以判断签名是否有效。
假设接收方具有消息(m)、如图2D中获得的相应数字签名(r,s),以及如图2A中获得的且曾用来生成签名(r,s)的公开密钥(p,g,y,q)。实际上,接收方是通用数字计算机的处理器。在一些实施例中,处理器可以位于专用数字计算机中,诸如智能卡。
在步骤338,过程判断r值是否为1≤r≤q-1范围内的整数。如果不是,则在步骤352,判定签名无效。
如果r在合适的范围内,则在步骤340,过程判断值s是否为1≤s≤q-1范围内的整数。如果不是,则在步骤352,判定签名无效。
如果s在合适的范围内,则在步骤342,求整数w,w是s的逆,即求ws=1 mod q。
在步骤344,计算u1=wH(m)mod q,并且计算u2=wr mod q。在步骤346,在F(p)*的子群G(由g生成)中求得c=gu1yu2,其中c在1≤c≤p-1的范围内。
在步骤348,计算v=c mod q。
在步骤350,进行测试,判断是否v=r。如果不是,则在步骤352,判定签名无效。如果是,则在步骤354,判定签名有效。
ECDSA系统设定图3A示出了依照ECDSA方案在设定电子签名系统期间必须执行的步骤。步骤402-416是全局执行的,即针对所有用户的,因此只需要执行一次。而步骤420-424,则每个用户都要执行。
ECDSA系统旨在利用对两个元素组成的域的扩充。借助扩充域的最优正规基表示(参见,R.C.Mullin等人在《离散应用数学》1988/89年第22期149-11上发表的论文“GF(p)中的最优正规基”),乘法运算非常快,并可以通过圆弧移动作平方运算,从而高效地完成求幂运算。但是,需要硬件设备。另外,由两个特征组成的域被认为比其它相当大小的域更易受到攻击。
在步骤402,选择一整数t≥160,其中t∈F(2t),即t在160≤t≤250范围内。ECDSA方案使用由2t个元素组成的全系统有限域F(2t),其中假设t=B。
在步骤404,就曲线E=Y2+XY=X3+αX2+β选择系数α,β∈F(2t)。ECDSA方案假设在F(2t)的一个子域上用最优正规基表示F(2t)的元素。使用曲线E就意味着使用该最优正规基。
在步骤406,计算μ。μ值是1加上满足E的差异对(x,y)的个数,其中x,y∈F(2t)。也就是说,E的群具有μ阶。另一种说法是,μ是曲线群的基数。
在步骤408,求出μ的因子。
在步骤410,进行测试,以便确定μ是否存在至少有140位的素因子。如果没有,则过程返回步骤404,并挑选一个新的椭圆曲线E。
如果μ存在至少有140位的素因子,那么在步骤412,将q设置为该素因子。应该理解,q是椭圆曲线E之群阶的素因子。最好,q的长度至少为140位。
在步骤414,在曲线E上选择一点h(即h(x0,y0)),使得(μ/q)h≠I,其中I是曲线E上的单位元素。符号表示对曲线E作纯量乘法。E群的阶为μ,并且用q除μ。
在步骤416,将曲线E上的点g选择为曲线E上的g=(μ/q)h。曲线E上点g的阶为q。曲线E上的点g生成群G,它是曲线群的子群。
步骤402-416的结果为全局公开密钥(α,β,t,q,g)。众所周知,全局公开密钥的长度并不重要,因为该长度大家都知道,并且不由各个加密方或解密方变动。
对于每个用户,在步骤420,在2≤a≤q-1范围内随机选择a值。
在步骤422,在曲线E上随机选择一点P(即,P(x1,y1)),使得在曲线E上,P=ag。
步骤420-422的结果是长度为B+1位的用户专用公开密钥(P)和长度至多为B位的私人密钥(a)。尽管在ECDSA方案中密钥较小,但该方案计算费用很高。
为了由用户专用公开密钥(P)求出私人密钥(a),必须在与曲线E相关的群中解DL问题,或者在与曲线E相关的群的子群G中解DL问题。
目前认为,用椭圆曲线密码系统的支持器在基数为2t(t≥160)的域上解曲线群的DL问题是不可能的。
目前认为,用椭圆曲线密码系统的支持器解曲线群中阶数为q(q至少有140位)的子群G的DL问题是不可能的。ECDSA签名生成图3B示出了依照ECDSA方案为一特定文件生成电子签名的一方所执行的步骤。实际上,生成方是通用数字计算机的处理器。在一些实施例中,处理器可以位于专用数字计算机中,诸如智能卡。
在步骤428,在2≤k≤q-2范围内随机选择一整数k。
在步骤430,求得k-1mod q,即求出满足(k)(k-1)=1 mod q的值。
在步骤432,曲线E上找出点u,即u(x2,y2),使得在曲线E上u=kg。
在步骤434,求得整数r=x(x2)mod q,其中r在0≤r≤q-1的范围内。函数x(*)是有限域F(2t)和整数集合{0,1,…,2t-1}之间一固定且可有效计算的双射。系统的所用用户都知道该双射。
在步骤435,进行测试,以便确定是否r=0。如果成立,则过程返回步骤428,为整数k选择一新的值。如果r≠0,那么过程进至步骤436。
在步骤436,计算s=k-1(H(m)+ar)mod q,其中s在0≤s≤q-1范围内。
在步骤437,进行测试,以便确定是否s=0。如果成立,则过程返回步骤428,为整数k选择一新的值。如果s≠0,那么过程进至步骤438,并结束。
签名生成的结果是数字签名(r,s)。签名的长度至多为2B位。ESDSA签名验证图3C示出了依照ECDSA方案接收已被电子签名的文件的一方所执行的步骤,这些步骤用以确定签名是否有效。
假设接收方具有消息(m)、如图3B中获得的相应数字签名(r,s),以及如图3A中获得的且曾用来获得签名(r,s)的公开密钥,该公开密钥包括(α,β,t,q,g)和(P)。实际上,接收方是通用数字计算机的处理器。在一些实施例中,处理器可以位于专用数字计算机中,诸如智能卡。
在步骤442,过程判断r值是否为1≤r≤q-1范围内的一个整数。如果不是,则在步骤456,判定签名无效。
如果r在合适范围内,那么在步骤444,过程判断s值是否为1≤s≤q-1范围内的一个整数。如果不是,那么在步骤456,判定签名无效。
如果s在合适范围内,那么在步骤446,求整数w,w是s的逆,即求ws=1 mod q。
在步骤448,计算u1=wH(m)mod q,并且计算u2=wr mod q。在步骤450,在曲线E上求点c,即曲线E上的c(x3,y3)=(ulg)(u2P)。符号表示对曲线E作加法。
在步骤452,计算v=x(x3)mod q,其中v在0≤v≤q-1范围内。
在步骤454,进行测试,以便确定是否v=r。如果不成立,则在步骤456,判定签名无效。如果成立,则在步骤458,判定签名有效。割圆系统设定图4A示出了依照本发明割圆方案在设定电子签名系统期间每个用户必须执行的步骤。图4A所示过程的目的是,找出有限域F(pt’)之乘法群F(pt’)*的子群的生成元g,以便g能够同时满足所需的离散对数保密等级(它决定L的选择)和所需的子群离散对数保密等级(它决定B的选择),并且在F(p)上有关于F(pt’)的最优正规基。
与Schnorr方案一样,割圆方案使用子群,并且如ECDSA方案,还使用最优正规基。使用子群导致签名短和指数短。使用最优正规基导致求幂高效。因此,割圆方案的软件执行比Schnorr方案的软件执行快得多。
令R的大小与基数相当。R的值是依赖于机器的,并且可以将其选择成对快速进行模p计算足够小,而对快速进行运算求幂又足够大。较大的p值会产生较小的t’值,并且由于域F(pt’)中的每次乘法运算都需要计算(t’)2,所以希望t’具有较小的值。另外,较大的P值会扩大可构造的密码系统的选择范围。对于目前可采用的32位结构的通用计算机,R=32是合适的值。对于较新的64位结构,R=64是合适的值。在其它实施例中,R可以取其它合适的值,不必等于实施本发明技术的计算机字长度(单位为位)。
在步骤502,选择控制整数t’以及整数t,s,使得(i)s至多为R,并且s不比R小很多,例如,0.8R≤s≤R。较大的s会产生较高的效率。整数s用来限制素数p的大小(参见下文)。例如,25≤s≤32;(ii)t’>1,最好t’具有因子t>1,其中t+1为素数,并且t’/t较小,例如t’/t<5。控制整数t’的使用允许对素数p的位数有较大的选择范围,因为它与L中反映的所需离散对数保密等级相关。具体地说,素数p的值依赖于R值,如上所述,R值是依赖于机器的。控制整数t’大致等于L除以素数p的位数。如上所述,t+1必须为素数。在理想情况下,t’=t。但是可以用t’+1不为素数的t值,只要t’具有因子t>1,其中t+1为素数,并且t’/t较小。也就是说,同时使用t和t’可以提供较大的灵活性。
(iii)t’*s接近于L;(iv)φ(t’)*s至少为B,但不能比B大得太多,以便很容易求出素因子q(参见步骤510),也就是说,φ(t’)*s≈B。函数φ(t)是Euler的φ函数,即与t互素的正整数的数目≤t。
在步骤504,选择一奇素数p,使得(log2P)+1=s,并且t’*((log2p)+1)≥L。
在步骤506,进行测试,以便确定p是否为F(t+1)*中的本原根mod t+1,即,是否p mod t+1生成F(t+1)*。具体地说,通过对每个整数i(1≤i≤t)计算pimodt+1,并且检查是否获得不同数字,来进行该测试。如果不成立,则过程返回步骤504,以便选择另一个素数p。
如果p是本原根mod t+1,那么在步骤508,在p处求出第t’个割圆多项式Φt’(p)。
Z[X]中Xt-1的不可约因子分解为Xt-1=∏d|tΦd(p)其中Φd(p)是第d个割圆多项式,H.Riesel在1985年Birkhouser公司出版的《素数和因子分解计算机方法》中对此作了叙述,该书按参考文献在此引入。因子Φt(X)是Xt-1中唯一没有出现在Xs-1之因子分解中的不可约因子,其中s是t的因子,并且s<t。
求解Φt(X)的一种方法是使用上述因子分解单位。求解Φt(X)的另一种方法是在割圆多项式系数表(诸如图4D中的表)中查找Φt(X)=ct-1Xt-1+ct-2Xt-2+…+c1X+c0中的系数ci,0≤i≤t-1。利用图4D中的表,可以看出,例如Φ18(X)=X6-X3+1,以及Φ54(X)=X18-X9+1。
在步骤510,求Φt’(p)中较大的素因子q。由于割圆方案中所用的且如下所述构造的子群具有q阶,并且q是Φt’(p)的因子,所以相应的DL计算对于未授权者是很难的。
在步骤512,进行测试,以便确定是否(log2q)+1≥B。该条件确保可以构造足够大的F(pt’)之乘法群F(pt’)*的子群,该子群不能包含在F(pt’)的真子域中。换句话说,为了解DL问题,即给出y和g,求a值,必须在整个域F(pt’)中解DL问题,或者在由g生成的子群中解DL问题;但是,不可以将DL问题简化为在F(pt’)的一个真子域中解DL问题,由此对于未授权方不会降低计算难度。
另外,将步骤502中的条件φ(t’)*s≈B与步骤512的条件(log2q)+1≥B合并,得到(log2q)+1≈B的情况。
本发明的一个重要方面是,q是Φt’(p)的因子,并且(log2q)+1≥B。如果(log2q)+1<B,那么过程返回步骤504,以便选择另一个素数p。
如果(log2q)+1≥B,那么在步骤514,在整个F(pt’/t)上求最优正规基αi,i={1,2,…t},其中每个αi是f1(X)=(Xt+1-1)/(X-1)=Xt+X-1+…+X+1的零点。
情况1如果t存在,并且t’=t,那么F(pt’/t)可用整数mod p表示,并且F(pt’)中的p次方不需要在F(pt’)中进行任何运算,p次方仅仅是对基元素αi的排列,因此计算费用不大。因此,在F(pt’)中,可以非常高效地进行乘法和平方运算。
情况2如果t存在,但t’≠t,那么可以用F(p)上合适的基来表示F(pt’/t)的元素。在该情况下,p次方只需要在F(pt’)中进行非常少量的运算,并且可以高效地在F(pt’)中进行乘法和平方运算。如果t’/t很小,那么情况1和情况2之间实现密码系统时在F(pt’)中运算的效率差是可以忽略的。
情况3如果t不存在,那么可以用任何方便的方式来表示F(pt’),最好用稀疏最小多项式,来加快F(pt’)中的乘法和平方运算。
在步骤516,随机选择F(pt’)的元素b。
在步骤518,在F(pt’)中求g=b(pt-1q)]]>由于用最优正规基表示F(pt’),所以计算g是非常高效的。
在步骤520,进行测试,以便确定是否在F(pt’)中g≠1。如果不成立,即g=1,那么过程返回步骤516,以便选择另一个元素b。
如果g≠1,那么g是有限域F(pt’)中乘法群F(pt’)*之子群G的生成元。子群G有q阶。在步骤522,在2≤a≤q-2范围内随机选择a值。
在步骤524,在F(pt’)中计算y=ga。给定y和g求解a值是一个DL问题。
系统设定的结果是一个公共密钥(p,g,y,q,t’)和一个私人密钥(a)。参数g和y用最优正规基表示。公共密钥的长度为2L+B+64位。私人密钥的长度为B位。
与Schnorr方案一样,保密性得到保证,而且由于子群G具有q阶,q是长度至少为B位的、在p处求得的t’次割圆多项式的素因子,所以G实际上不能包含在F(pt’)的真子域中。
如上所述,在割圆方案中,计算p次幂是非常容易的,因为它只对最优正规基的诸元素进行重新排列。这是割圆方案在计算方面的突出优势。
割圆方案中的计算涉及长度为(log2p)位的短行,它适合用软件执行,而ECDSA方案涉及长度为1位的长行,更适合用硬件执行。也就是说,割圆基本域F(p)具有长度为(log2P)位的元素,而ECDSA基本域F(2)具有长度为1位的元素。割圆签名生成图4B示出了依照割圆方案为一特定文件生成电子签名的一方所执行的步骤。实际上,生成方是通用数字计算机中的处理器。在一些实施例中,处理器可以位于专用数字计算机中,诸如智能卡。
在步骤530,在范围2≤k≤q-2内随机选择一个整数k。
在步骤532,求k-1mod q,即求出满足(k)(k-1)=1 mod q的值。
在步骤534,在F(pt’)中求u=gk。
在步骤536,求整数r=x(u)mod q,其中r在0≤r≤q-1的范围内。函数x(*)是有限域F(pt’)和整数集合{0,1,…,pt’-1}之间一固定且可有效计算的双射。系统的所用用户都知道该双射。这与ECDSA方案中图3B步骤434中所用的双射不同。
在步骤537,进行测试,以便确定是否r=0。如果成立,则过程返回步骤530,为整数k选择一新的值。如果r≠0,那么过程进至步骤538。
在步骤538,计算s=k-1(H(m)+ar)mod q,其中s在0≤s≤q-1范围内。
在步骤539,进行测试,以便确定是否s=0。如果成立,则过程返回步骤530,为整数k选择一新的值。如果s≠0,那么过程进至步骤540,并结束。
签名生成的结果是数字签名(r,s)。签名的长度为2B位。割圆签名验证图4C示出了依照割圆方案接收已被电子签名的文件的一方所执行的步骤,这些步骤用以确定签名是否有效。
假设接收方具有消息(m)、如图4B中获得的相应数字签名(r,s),以及如图4A中获得的且曾用来生成签名(r,s)的公开密钥(p,g,y,q,t’)。实际上,接收方是通用数字计算机中的处理器。在一些实施例中,处理器可以位于专用数字计算机中,诸如智能卡。
在步骤544,过程判断r值是否为1≤r≤q-1范围内的一个整数。如果不是,则在步骤558,判定签名无效。
如果r在合适范围内,那么在步骤546,过程判断s值是否为1≤s≤q-1范围内的一个整数。如果不是,那么在步骤558,判定签名无效。
如果s在合适范围内,那么在步骤548,求整数w,w是s的逆,即求ws=1 mod q。
在步骤550,计算u1=wH(m)mod q,并且计算u2=wr mod q。在步骤552,在F(pt’)中,计算v’=gu1yu2。在步骤554,求v’=x(v’)mod q。
在步骤556,进行测试,以便确定是否v=r。如果不成立,则在步骤558,判定签名无效。如果成立,则在步骤560,判定签名有效。割圆的其它方式如上所述。割圆方案的适用性不局限于电子签名系统。割圆方案可以用于保密性依赖于DL问题难度的任何公开密钥密码系统,例如,Diffie-Hellman密钥交换方案、Elgamal公开密钥加密方案,或者与ElGamal、Schnorr和DSA方案中一样的数字签名生成和验证方案。
已提出的公开密钥加密方案包括数据加密标准(DES)以及ElGamal方案。1993年FIPS 46-2中叙述了数据加密标准,读者可以从Verginia州Springfield市的国家技术信息服务机构获得。T.ElGamal在1985年IEEE Trans.Info.Tech.第31期第469-472页的论文“基于离散对数的公开密钥密码系统和签名方案”中叙述了ElGamal方案。以下讨论将割圆方案应用于这些已提出方案。
假设实施下述技术的用户具有通用数字计算机,该计算机经编程实施这些技术。另一种方法是,将专用印刷电路板与通用计算机结合,或者用“智能卡”(即,信用卡大小的、包括微处理器的便携装置)实施这些技术。
图4E是一流程图,示出了依照本发明的DES系统设定过程。具体地说,图4E示出了通过应用割圆方案而改进的Diffie-Hellman密钥交换方案。
在步骤600,假设所有用户拥有全局共享的公开密钥(p,g,q,t’),它们是依照图4A的步骤500-520获得的。相反,在上述ElGamal、Schnorr、DSA和割圆数字签名方案中,每个用户与一个公开密钥和一个私人密钥相关;即没有全局共享的公开密钥。
当Δ和Θ两方希望通信时,它们必须在最初交换信息,以便建立一共享密钥。如图4E所示,在步骤602,Δ方在2≤aΔ≤q-2范围内随机选择aΔ值,并在步骤604,在F(pt’)中求yΔ=gαΔ]]>在步骤607,Δ方将yΔ发送给Θ方。在步骤608,Δ方接收来自Θ方的yΘ。在步骤610,Δ方在F(pt’)中计算y0=x(yΘαΔ)]]>函数x(*)是有限域F(pt’)和整数集合{0,1,…,pt’-1}之间的固定且可有效计算的双射,该函数曾在图4B的步骤536中使用过。尽管应用函数x(*)非绝对必要,但最好能够使用,以便将用有限域之最优正规基表示的元素转换成普通整数。
同样,在步骤603,Θ方在2≤aΘ≤q-2范围内随机选择aΘ值,并在步骤605,在F(pt’)中求yΘ=gαΘ]]>在步骤606,Θ方将yΘ发送给Δ方。在步骤609,Θ方接收来自Δ方的yΔ。在步骤611,Θ方在F(pt’)中计算y0=x(yΔαΘ)]]>
在步骤612,Δ方和Θ方已建立了一个共享密钥(y0)。计算在由g生成的子群中进行。应该理解,未授权方只有解出DL问题,才能对Δ和Θ双方之间的通信解密。
图4F是一流程图,示出了依照本发明对DES系统设定进行加密的过程。最重要的是在步骤622,Δ和Θ中的一方用它们的共享密钥(y0)对消息加密。
图4G是一流程图,示出了依照本发明对DES系统设定进行解密的过程。最重要的是在步骤632,Δ和Θ中的另一方用它们的共享密钥(y0)对在步骤622中加密的消息解密。
对于ElGamal公开密钥加密方案(它不同于上述ElGamal数字签名方案),假设已执行了图4A所示的步骤500-526,每位用户都获得了一个公开密钥(p,g,y,q,t’)和一个私人密钥(a)。应该理解,未授权方只有确定私人密钥(a),才能对加密消息解密,这需要解DL问题。
图4H是一流程图,示出了依照割圆方案对ElGamal系统设定进行加密的过程。在步骤702,希望对消息加密的一方在2≤k≤q-2范围内随机选择一个整数k。在步骤704,在F(pt’)中求γ=gk。在步骤706,在F(pt’)中求λ=x-1(m)*yk。函数x-1(*)是图4B的步骤536中所用函数x(*)的逆函数。在步骤708,所得结果为经加密的消息(γ,λ)。
图4J是一流程图,示出了依照割圆方案对ElGamal系统设定进行解密的过程。在步骤722,希望对加密消息(γ,λ)解密的一方在F(pt’)中求ξ=γq-a,并在步骤724,在F(pt’)中求η=λξ。在步骤726,在{0,1,…,pt’-1}中获取解密消息m’,作为m’=x(η)。所求幂运算在由g生成的子群中进行。性能比较图5A是一表,示出了公开密钥密码系统各方案之签名生成性能的比较结果。这些被比较的方案是用软件实施的ElGamal、DSA和割圆方案。没有对ECDSA方案进行评价,因为它需要用硬件实施。
由于参数B与ElGamal方案无关,所以对于ELGamal方案,情况“C”和“D”是相同的。实际上,DSA方案只允许B=160,并且L=512+i*64,其中0≤i≤8,这只对应于情况“A”和“C”。
在诸例中,只使用了整数消息,并且对于ElGamal,采用mod p-1,而对其它方案,采用mod q。没有使用散列法。由于散列的计算时间可以忽略,所以省略散列不会影响性能结果。
具体地说,图5A示出了各方案用软件实施时,在166MHz Pentuim处理器上的运行时间(单位为秒)。
从ElGamal方案和Schnorr方案可以看出,由于使用子群,性能有所提高。DSA方案的性能几乎与Schnorr方案的性能相同。
从Schnorr方案和割圆方案可以看出,由于使用最优正规基,性能有进一步的提高。具体地说,对于图5A中所举的例子,割圆方案的性能结果几乎比Schnorr方案的性能快两倍。
图5B是一表,就图5A列表所举的例子,示出了公开密钥密码系统各方案之签名验证性能的比较结果。与签名生成的情况一样,割圆方案的性能结果几乎比Schnorr方案的性能快两倍。
图6示出了经签名的且签名经验证的消息,可用来获得图5A和5B的性能结果。
图7A-11D示出了用来获得图5A和图5B性能结果的诸例中各公开密钥密码系统的公开密钥、私人密钥、签名和签名生成参数k。通过对十个不同的代表消息的结果取平均,产生计时结果。实际上,双方不交换签名生成参数;这里,交换该参数,以便于再现结果。
对于割圆方案,g和y的值按F(p)上的基αi给出,其中1≤i≤t’。对于所有其它方案,值均为十进制表示。
通过比较,可以看出,ELGamal方案(图7A、8A、9A、10A和11A)使用最长的值,而割圆方案(图7D、8D、9D、10D和11D)使用最短的值。另外,由于在图5A和5B中,数据保密性从情况“A”到情况“E”增强,所以所有方案中值的长度也增大。
图12是一方框图,示出了实施割圆方案的环境。通用计算机10包括密码处理器11、通信接口12、主处理器13、存储器14、通信总线15和通信线路16。存储器14包括RAM、ROM、磁盘、光盘或任何其它的存储媒体。通信线路16可以是有线线路、射频无线线路、光路或任何其它通信媒体。智能卡20包括处理器21、存储器22、通信接口23、通信总线24和通信线路25。通用计算机10和智能卡20与通信信道30相连。中央设备40也通过通信线路41与通信信道30相连。中央设备40包括实施割圆方案的合适处理硬件和软件,至于通用计算机10和智能卡20,也要这样理解。
通用计算机10执行存储在存储器14中的软件,该软件包括主处理器13对密码处理器11的调用,密码处理器11包括足够大的存储空间,以便根据割圆方案进行操作。
智能卡20根据割圆方案执行存储在存储器22中的软件。
中央设备40的作用是用割圆方案生成全局信息,并将信息分配给所有当事人。全局信息的一个例子是图4E中步骤600所示的全局公开密钥。
尽管在此参照附图详细描述了本发明的说明书实施例及其各种变化,但应该理解,本发明不限于此明确的实施例以及所述变化,本领域的熟练技术人员可以不脱离所附权利要求书限定的本发明的范围和精神作各种改变和进一步的变化。
权利要求
1.一种用于确定公开密钥密码系统之公开密钥和私人密钥的方法,其特征在于,包括以下步骤选择第一素数;由第一素数计算一割圆多项式;求第二素数,它是由第一素数计算得到的所述割圆多项式的因子;求一有限域中乘法群的子群的生成元,所述子群的阶是第二素数;根据所述生成元和一所选的整数,求一公开值;形成公开密钥,它包括第一和第二素数、所述生成元和所述公开值;形成私人密钥,它包括所述所选的整数。
2.如权利要求1所述的方法,其特征在于,还包括下述步骤,即用最优正规基表示所述有限域。
3.如权利要求1所述的方法,其特征在于,所述第二素数q满足(log2q)+1≈B,其中B是预定的二进制位数。
4.如权利要求1所述的方法,其特征在于,还包括选择一控制整数t’的步骤,并且所述割圆多项式是t’次割圆多项式,所述公开密钥包括所述控制整数t’。
5.一种用于为消息生成数字签名的方法,其特征在于,包括以下步骤选择第一素数;由第一素数计算一割圆多项式;求第二素数,它是由第一素数计算得到的所述割圆多项式的因子;求一有限域中乘法群的子群的生成元,所述子群的阶是第二素数;根据所述生成元和第一整数,求一公开值;选择第二整数;根据第二整数和所述生成元,求第一签名值;根据第一签名值和所述消息,求第二签名值;形成数字签名,它包括第一和第二签名值。
6.如权利要求5所述的方法,其特征在于,还包括用最优正规基表示所述有限域的步骤。
7.如权利要求5所述的方法,其特征在于,所述第二素数q满足(log2q)+1≈B,其中B是预定的二进制位数。
8.如权利要求5所述的方法,其特征在于,还包括选择一控制整数t’的步骤,并且所述割圆多项式是t’次割圆多项式。
9.如权利要求5所述的方法,其特征在于,所述第一签名值基于所述生成元自乘到第二整数次幂的双射。
10.如权利要求5所述的方法,其特征在于,所述第二签名值基于所述第一签名值与消息之密码散列的组合。
11.一种用于验证消息之数字签名的方法,所述数字签名是根据权利要求5的方法形成的,其特征在于,所述方法包括以下步骤求一逆整数,它是第二签名值的逆;根据所述逆整数和所述消息,求第一中间值;根据所述逆整数和所述第一签名值,求第二中间值;根据所述生成元、所述公开值以及第一和第二中间值,求第三中间值;当第三中间值等于第一签名值时,判定所述签名有效。
12.如权利要求11所述的方法,其特征在于,所述第三中间值是所述生成元的第一中间值次幂乘以所述公开值的第二中间值次幂的双射。
13.一种用于为公开密钥密码系统确定共享密钥的方法,其特征在于,包括以下步骤选择第一素数;由第一素数计算一割圆多项式;求第二素数,它是由第一素数计算得到的所述割圆多项式的因子;求一有限域中乘法群的子群的生成元,所述子群的阶是第二素数;选择一整数;接收一中间值,所述中间值基于所述生成元;形成共享密钥,使其成为所述中间值和所述整数的函数。
14.如权利要求13所述的方法,其特征在于,包括用最优正规基表示所述有限域的步骤。
15.如权利要求13所述的方法,其特征在于,还包括以下步骤求第二中间值,所述第二中间值基于所述生成元和所述整数;将所述第二中间值发送给将要共享所述共享密钥的一方。
16.一种用于消息保密通信的方法,其特征在于,包括以下步骤;选择第一素数;由第一素数计算一割圆多项式;求第二素数,它是由第一素数计算得到的所述割圆多项式的因子;求一有限域中乘法群的子群的生成元,所述子群的阶是第二素数;选择一整数;接收一中间值,所述中间值基于所述生成元;形成共享密钥,使其成为所述中间值和所述整数的函数;用所述共享密钥对所述消息加密。
17.如权利要求16所述的方法,其特征在于,包括用最优正规基表示所述有限域的步骤。
18.一种用于消息保密通信的方法,其特征在于,包括以下步骤接收加密消息,所述加密消息是用共享密钥加密的,所述共享密钥是一中间值和一所选整数的函数,所述中间值基于一有限域中乘法群之子群的生成元,所述子群的阶是第二素数,所述第二素数是由第一素数计算得到的割圆多项式的因子,并且用所述共享密钥对所述加密消息解密。
19.一种用于消息保密通信的方法,其特征在于,包括以下步骤选择第一素数;由第一素数计算一割圆多项式;求第二素数,它是由第一素数计算得到的所述割圆多项式的因子;求一有限域中乘法群的子群的生成元,所述子群的阶是第二素数;根据所述生成元和第一整数,求一公开值;选择第二整数;根据所述生成元和第二整数,求第一加密值;根据所述消息、所述公开值和所述第二整数,求第二加密值;由第一和第二加密值形成加密消息。
20.如权利要求19所述的方法,其特征在于,还包括用最优正规基表示所述有限域的步骤。
21.一种用于消息保密通信的方法,其特征在于,包括以下步骤接收由第一加密值和第二加密值构成的加密消息,第一加密值基于第一整数和一有限域中乘法群之子群的生成元,所述子群的阶是第二素数,所述第二素数是由第一素数计算得到的割圆多项式的因子,所述第二加密值基于所述消息、所述第一整数和基于所述生成元和第二整数的公开值;根据第一加密值和私人密钥,求第一中间值,所述私人密钥基于所述生成元;根据第二加密值和所述第一中间值对所述加密消息解密。
22.一种用于对公开密钥密码系统确定公开密钥和私人密钥的设备,其特征在于,包括;用于选择第一素数的装置;用于由第一素数计算一割圆多项式的装置;用于求第二素数的装置,所述第二素数是由第一素数计算得到的所述割圆多项式的因子;用于求一有限域中乘法群之子群的生成元的装置,所述子群的阶是第二素数;用于根据所述生成元和一所选的整数求一公开值的装置;用于形成公开密钥的装置,所述公开密钥包括第一和第二素数、所述生成元和所述公开值;用于形成私人密钥的装置,所述私人密钥包括所述所选的整数。
23.如权利要求22所述的设备,其特征在于,还包括用最优正规基表示所述有限域的装置。
24.如权利要求22所述的设备,其特征在于,所述第二素数q满足(log2q)+1≈B,其中B是预定的二进制位数。
25.如权利要求22所述的设备,其特征在于,还包括用于选择一控制整数t’的设备,并且所述割圆多项式是t’次割圆多项式,所述公开密钥包括所述控制整数t’。
全文摘要
用割圆多项式来构造有限域中乘法群的子群,可以高效率地实现基于离散对数的公开密钥密码系统,包括公开密钥加密方案和数字签名方案。用最优正规基来表示域,并用域中乘法群之子群的生成元来形成公开密钥。
文档编号G09C1/00GK1251715SQ97182092
公开日2000年4月26日 申请日期1997年9月26日 优先权日1997年2月14日
发明者A·K·伦斯特拉 申请人:国有花旗银行
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1