CN1240318A - 产生伪随机数的方法 - Google Patents
产生伪随机数的方法 Download PDFInfo
- Publication number
- CN1240318A CN1240318A CN 99102597 CN99102597A CN1240318A CN 1240318 A CN1240318 A CN 1240318A CN 99102597 CN99102597 CN 99102597 CN 99102597 A CN99102597 A CN 99102597A CN 1240318 A CN1240318 A CN 1240318A
- Authority
- CN
- China
- Prior art keywords
- generator
- random number
- difficulty
- pseudo
- log
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明是一个输出较大位长度伪随机数Zi的方法,这个伪随机数是密码安全的。由于输出的是较大位长度的伪随机数,可以对较大位长度的消息段进行加密,从而得到比现有技术加密过程更快的加密过程。在一个实施例中,本发明是一个由模指数函数Xi=gxi-1modP定义的伪随机数发生器。伪随机数发生器的输出是一个包含Xi的j-1位长度段的伪随机数。j的数值小于或等于m-2c(即,j≤m-2c)。在本发明的一个实施例中,伪随机数Zi包括不含Xi最低有效位的j个Xi最低有效位。
Description
本发明一般涉及密码术,尤其是,本发明涉及伪随机数发生器。
伪随机数发生器用于某些形式的密码术,给发射机与接收机之间的消息传输提供一个保密的通信装置。提供的保密性使得只有预定的接收机能够明白特许发射机传送的消息(例如,话音或数据),且只有特许的发射机能够传送消息给预定的接收机。密码术的困难之处在于把消息改变成只有预定接收机能够理解的某种形式。这必须在对发射机和对接收机都经济的方式下完成。与此同时,对于未授权的接收机(即,非预定的接收机)理解消息必须非常困难(以时间和/或处理能力而言)。随着未授权接收机和未授权发射机变得更加完善,对于保密通信的需求也就更大。
图1表示现有技术发射机10的功能方框图,它有一个加密消息的密码装置。此密码装置包括伪随机数(PN)发生器12和XOR运算器14。PN发生器12由以下的模指数函数定义:其中xi是一个含m位的值,p是一个含k位的素数,g是整数mod p的发生器,1<i<n。由于公式1是一个模指数函数,m的值应该小于或等于k(即,m≤k)。xi值最初是由给PN发生器12提供籽值x0而产生的,此籽值是一个含m位的保密数值,只有特许的发射机和预定的接收机知道。所以,x1值等于
。利用x1值产生x2(即,
p),然后利用x2值产生x3,等等。
PN发生器12输出一个含xi的d位长度段伪随机数zi。然后,利用伪随机数zi对待传送的d位长度消息段加密。具体地说,XOR运算器14接收此消息段和伪随机数zi作为输入。消息段和伪随机数zi的XOR产生d位长度加密的消息段。d,m,和k的数值部分地取决于试图达到的密码安全(或困难)程度,如以下所描述的。
密码安全性取决于两个因素:(1)求解xi的离散对数问题的困难程度,和(2)给出一个或多个伪随机数zi(包含d位)条件下破密钠随机数发生器的困难程度。假设xi的所有m位是已知的,求解xi的离散对数问题涉及到确定xi-1,使
。离散对数问题被认为是计算上很困难,若需要2c次运算去求解这个问题,其中c代表密码安全阈值,所以保密性很安全。标准的信条是,离散对数是困难的,若至少需要264次运算去求解(即,c≥64)。
可以有各种方法求解离散对数问题。两个最有效的方法是熟知的指数运算方法和平方根方法。为了利用指数运算方法求解xi的离散对数问题,需要的运算次数为其中α是一常数。若c=64,当p至少包括512住时(即,k≥512),则满足困难阈值(264次运算)的条件。因此,所选的k值取决于c值。与此对比,为了利用平方根方法求解xi的离散对数问题,需要的运算次数为若c=64,当xi至少包括128位时(即,m≥128),则满足困难阈值的条件。因此,m值也取决于c值。
如上面提到过的,求解xi的离散对数问题假设,xi的所有m位是已知的。若只有xi的d住长度段(即,伪随机数zi)是已知的,则求解xi离散对数问题的先前步骤是设法确定xi的所有m位。这是上述密码安全性的第二个因素,涉及到给出一个或多个伪随机数zi条件下破密伪随机数发生器。若给出一个或多个伪随机数zi,很难预言或确定xi的所有m位,则认为伪随机数发生器是密码安全的。我们相信,若PN发生器输出较小住长度伪随机数zi(即,小的xi段),则解密者只可以利用较少的数据去预言xi的任何其他位。输出伪随机数zi的准确长度取决于企图达到的密码安全性程度-即,d值取决于c值。
Blum-Micali提出一种PN发生器,输出的伪随机数zi只包括xi最高有效位,即,d=1。BIum-Micali证明,破密这个PN发生器的困难程度相当于求解模指数函数xi的离散对数问题的困难程度。因此,若求解xi的离散对数问题是艰难的,则破密Blum-Micali的PN发生器(输出只包括最高有效位的伪随机数)也是艰难的。
与此对照,Peralta以后提出的一个PN发生器,它输出包含log2 m个最高有效位的伪随机数zi,即d=log2 m。例如,若xi包括512位,则PN发生器输出的伪随机数zi包含不大于xi的9个(即,log2 512)最高有效位。或者,若xi包括1024位,则PN发生器输出的伪随机数zi包含不大于xi的10个(log2 1024)最高有效位。Peralta证明,破密这个PN发生器的困难程度也相当于求解模指数函数xi的的离散对数问题的困难程度。因此,若求解xi的离散对数问题是艰难的,则破密Peralta的PN发生器(输出只包含log2 m个最高有效位的伪随机数zi)也是艰难的。
虽然利用Blum-Micali和/或Peralta提出的PN发生器加密过程是密码安全的,但是,这些PN发生器输出的伪随机数包含不大于xi的log2m位。由于log2 m是一个相对小的数值,对于PN发生器输出的每个伪随机数zi而言,只能加密消息小的位长度。这就导致缓慢的加密过程,因为必须输出多个伪随机数zi去加密整个消息。所以就需要有这样一种伪随机数发生器,它输出较大的位长度随机数zi且密码是安全的。
本发明是一种输出较大的位长度伪随机数zi且密码是安全的方法。由于输出较大的位长度随机数,可以加密较大的位长度段消息,得到比现有技术加密过程更快的加密过程。在一个实施例中,本发明包括由模指数函数
定义的伪随机数发生器,其中xi是包含m位的数值,p是一个包含k位的素数,g是整数mod p的发生器,且m≤k,l<i≤n。所选m和k的数值是使求解模指数函数xi的离散对数问题很困难。伪随机数发生器的输出是一个包含xi的j-1位长度段的伪随机数zi。j的数值小于或等于m-2c(即,j≤m-2c)。在本发明的一个实施例中,伪随机数包括不含xi最低有效位的j个xi最低有效位。于是,利用这个伪随机数发生器的输出去加密待传送的相同长度段消息。
有利的是,本发明利用较大的位长度伪随机数去加密消息,因此得到这样一种加密过程,它快于现有技术利用较小的位长度伪随机数zi(例如,包含log2 m位的伪随机数)的加密过程。虽然利用较大的位长度伪随机数对于破密伪随机数发生器的现有技术密码安全性信条在直觉上是相反的,但是,本发明利用较大的位长度伪随机数zi是密码安全的。具体地说,破密本发明伪随机数发生器的困难程度相当于求解短指数函数y=gsmod p的离散对数问题的困难程度,其中y是一个包含m位的数值,s是一个包含2c位的短指数,p是一个包含k位的素数,g是整数mod p的发生器,c代表密码安全(或困难)阈值,和2c<<m≤k。所选c和k的数值是使求解短指数函数y的离散对数问题变得很困难。
参照以下描述,所附权利要求书,和附图,本发明的特征,主要方面,和优点会更加明白易懂。
图1表示现有技术发射机的功能方框图,此发射机有一个加密消息的密码装置;
图2表示按照本发明发射机的功能方框图,此发射机有一个加密消息的密码装置;和
图3表示图2中伪随机数发生器的简图,此伪随机数发生器产生一个数值xi和输出不含最低有效位的i个最低有效位。
图2表示按照本发明发射机20的功能方框图,它有一个加密消息的密码装置。密码装置包括伪随机数(PN)发生器22和XOR运算器24。PN发生器22是一个用于输出伪随机数的设备,例如,n阶最大长度移位寄存器,或执行伪随机数发生器程序的ASIC。PN发生器22是由以下模指数函数所定义:其中xi是一个包含m位的数值,p是一个包含k位的素数,g是整数mod p的发生器,且1<i≤n。由于公式4是一个模指数函数,m的数值小于或等于k(即,m≤k)。
选择m和k的数值使得利用任何熟知的求解离散对数问题的方法求解模指数函数xi的离散对数问题很困难,这些方法有,例如,指数运算方法和平方根方法,其中困难程度用需要2c次数运算求解这个离散对数问题表示,c代表密码安全性阈值,具体地说,应当选取这样的k值,使2c近似等于或小于
,以及应当选取这样的m值,使2c近似等于或小于
例如,若企图达到的困难程度至少为264。(即,c≥64),则k≥512和m≥128。
xi值最初是由给PN发生器22提供籽值x0而产生的,籽值是一个包含m位的保密数值只有发射机20和预定接收机知道。所以,x1等于
mod p。利用x1值产生x2(即,
),然后利用x2值产生x3,等等。虽然PN发生器22产生xi的全部m位,但是,它只输出包含xi的j-1位长度段的伪随机数zi。j的数值是某个小于或等于m-2c的数值。在一个实施例中,伪随机数zi包括不含xi最低有效位的j个xi最低有效位(即,xi段包括xi次最低有效位至第j个xi最低有效位)。参见图3,图中画出这样一个伪随机数发生器22(由公式4定义),它产生一个数值xi和输出不含最低有效位的j个最低有效位。为了便于说明,此处描述的本申请其余部分是对这样一个伪随机数发生器而讨论的,它输出的伪随机数包括xi的次最低有效位至第j个xi的最低有效位。然而,这不应当认为是以任何方式对本发明的限制。
如在以下标题“证明”一节中所描述的,破密这个PN发生器(例如输出xi的次最低有效位至第j个xi的最低有效位)的困难程度相当于求解短指数函数的离散对数问题,此短指数函数为
y=gsmod p (公式5)其中y是一个包含m位的数值,s是一个包含2c位的短指数,p是一个包含k位的素数,g是整数mod p的发生器。由于公式5是一个短指数函数,通常,2c数值远远小于m和k的数值(即2c<<m≤k)。
若短指数函数y的离散对数问题很难求解,则本发明的PN发生器就很难破密。选取这样的c和k数值,使得利用任何熟知的求解离散对数问题的方法,例如,指数运算方法和平方根方法,很难求解短指数函数y的离散对数问题。例如,假设企图达到的密码安全程度是至少需要264次(运算次数)求解y的离散对数问题。于是,k的数值应当至少包含512位,m应当至少包含128位,即,若k≥512和m≥128,则至少需要264运算次数破密公式4的伪随机数发生器,这个公式输出不包括最低有效位的j个最低有效位。若也需要至少264运算次数求解公式4的离散对数问题,则求解两个离散对数问题(xi和y)的组合运算次数需要2×264次(即,265次)。由于PN发生器22是由模指数函数(公式4)定义,所以,m的数值可能与k的数值一样大。若k的值是512(或1024),则m的值可能大至512(或1024)。因此,若k是512(或1024)和c是64,则PN发生器22能够输出的伪随机数zi为383(或895)位,这个位长度远远大于现有技术PN发生器输出的伪随机数位长度。
PN发生器22的输出(即,伪随机数zi)作为XOR运算器24的输入,这个运算器是执行XOR运算的装置,如XOR门或执行XOR运算的ASIC。XOR运算器24接收PN发生器22的输出,并与相等长度的消息段进行XOR,生成一个含j-1位的加密消息段,如图3所示。注意,XOR运算器24可以用任何其他的装置替代,这个装置把PN发生器输出的位与消息的位进行组合。
加密的消息接着由发射机20传送到一个接收机,这个接收机包括一个由相同指数函数定义的伪随机数发生器和一个XOR运算器。若接收机是预定的接收机,则此接收机知道或可以确定籽值x0。因此,预定接收机能够产生与发射机产生的相同伪随机数zi。于是,可以利用这个伪随机数解密加密的消息段,从而使预定接收机理解传送的消息。证明
引言
若函数f容易计算但很难求其逆,就称此函数f为单向函数。适当选取一些参数,有限域内的离散指数函数gxmod p就是一个单向函数,其中g是有限域内非零元素循环群发生器。离散指数函数的逆是离散对数函数,处理这种问题的困难程度是各种加密,签名和重要协议方案的基础。除了有限域以外,也考虑了离散指数环境下的其他有限群。这样的一个例子是有限域内椭圆曲线上的点群。Koblitz和Miller(独立地)[K0],[Mil],研究了椭圆曲线上的群论法则以确定一个公用的重要加密方案,提出椭圆曲线求和也是一个单向函数。另一个认为是困难的数论问题是整数因子分解问题。与因子分解有关的单向函数例子是RSA函数和Rabin函数。与因子分解密切相关的是解决二次残数模合成整数问题。
与单向函数紧密连系的概念是困难(hard)位概念。基于单向函数,Blum和Micali首先引入困难位概念。非严格的说法是,单向函数f(.)的困难位B(.)是这样的位,既很难计算也很难求其逆。Blum和Micali证明,对于一个有限域的离散对数问题,其最高有效位是困难位。确切地说,最高有效位的概念对应于布尔谓词(predicate),其中若指数函数的指数大于(p-1)/2为1,其它为零。他们定义并证明了这个困难位,且成功地用它证明困难位在伪随机位发生器中的重要性。此后不久,Ben-Or等人[BCS]也发现了RSA函数和Rabin函数的困难位,导致一个新的保密伪随机位发生器。在1986年,Blum,Blum和Shub[BBS]利用合成整数域的二次残数问题设计另一种保密的伪随机位发生器。他们的工作是基于Goldwasser和Micali[GM84]研究的二次残数问题保密性。此后,Goldrcich和Levin[GL]证明,所有单向函数有困难位。更普遍地,他们能够证明对于任意一个单向函数,存在对数个1位困难谓词。尤其是,证明了在至少对数个保密伪随机位发生器与给定的一个单向函数相关。举一些例子,在密码术中利用伪随机位涉及一次填充(one time pad)方式加密和位承诺(bit commitment)方案。
基于1位谓词的所有上述发生器都遇到相同的问题,即,它们太慢。所有这些发生器每个模取器输出1位。同时困难的概念是提高速度的第一步。直观地,应用于与单向函数相关位群的同时困难性概念说明,在只给出f(x)条件下完成计算任何有关给定位群的消息,计算单向函数与求其递同样困难。利用这个概念,我们能够提取每次运算的位集合,因此提高了速度。Long和Widgerson[LW]首先证明,离散对数模素数p的log log p位是同时困难。另一方面,Vazirani和Vazirani[VV]以及Alexi等人[AGGS]的工作提出RSA和Rabin位同时困难性概念。此后Kaliski,利用适合有限阿贝尔群新颖的启示器(oracle)证明方法,证明椭圆曲线群加法问题各位的困难性(在Blum Micali意义上)。他的方法还证明log n位的同时困难性(在文章中只作了叙述而未证明),其中n是群的阶数,[Ka]。近来,Hastad,Schrift和Shamir[HSS]已经设计了每一次迭代产生n/2位的非常有效的发生器,其中n是模的位数。他们研究的单向函数是离散指数函数模合成整数(确切地说是Blum整数)。产生方法再一次取决于证明每次迭代的n/2位是同时困难。利用合成模可以使他们把各位的困难性和同时困难性与模的因子分解有关。在所有这些工作中,共同的条件是包含在Yao创新的工作结果中[Y],这一工作给密码术的复杂理论方法奠定基础,为用已知困难性问题表示的保密性量化铺平道路。
在此文中,我们构造一个与有限域内模指数函数有关的非常有效的密码伪随机位发生器。我们证明,每次迭代的n-O(log n)+位是同时保密的,其中O(log n)+等于log n的最小非多项式数量。因此,每次迭代产生比以上讨论的任一方法中更多的位。这个工作的新颖性在于,把伪随机位发生的保密性与求解短指数的离散对数问题相联系。这个方法的动机是从上述Hastad等人的工作引出的,其中他们虽然使用了模指数函数模合成数,而系统的保密性与其中模量的因子分解有关。在类似的但并不显然的意义上说,我们使用有限域的指数函数以产生伪随机数,但是把保密性与短指数的离散对数问题(在相同的素数模量下)难度相联系。在此文中,当宗量采用二进制表示时,第i位的启示器给出第i位的值。这是一个与Blum-Micali和Long-Widgerson所用的不同第i位表示。此外,我们的表示式与Hastad等人已考虑过的表示式相同。此文章的安排如下:在第2节中,我们讨论离散对数问题,尤其是短指数的离散对数问题。位的启示器和困难性细节在这节中给出。在第3节中,我们证明,后置n-O(log n)+位对于短指数的离散对数问题各自都困难。在第4节中,我们证明n-O(log n)+位的同时困难性。这还是对短指数的离散对数问题而言。在第5节中,我们讨论系统的设计并提出保密性的证明,第6节给出结论。在附录中,我们讨论这一工作某些扩充内容,包括其他的阿贝尔群以及提高伪随机数发生器效率的可能方法。
离散对数问题
首先,我们定义离散对数问题。令p是一个素数,g是(Z/(p))*的发生器,(Z/(p))*是p阶有限域内非零元素累乘循环群。于是,对于1<=x<=(p-1),函数gxmod p定义一个置换。
问题1
离散对数问题是给出(Z/(p))*中的y寻找x,使gxmod p=y。令n=1ogp是p的二进制表示式长度,于是,gxmod p能够用Poly(n)次数计算出。然而,不存在已知的确定或随机算法可以用Poly(n)步骤次数计算离散对数。在p阶有限域内计算离散对数的最佳算法是指数运算方法。即使在p相当大时(例如,1024位)是行不通的,因为这个复杂性是n的次指数而不是多项式。另一方面,对于(p-1)仅由小因子构成的素数而言,存在非常快的算法,其复杂性等于基数为其最大素数因子域内离散对数的复杂性。这个算法是Pohlig和Hellman[PH]建立的。
短指数的离散对数
为了提高效率,指数x有时限制在c位(c=128位或160位),因为这需要较少的乘法。Shanks[Sh]和Pollar[Po]提出,平方根次数算法,在c的平方根次数步骤中找到x。因此,c应该至少为128位给出64位的保密性。我们的意思是,为了利用这些算法求解离散对数问题,解密者应该至少要完成264次运算。目前,还没有更快的方法求解如此限制x的离散对数问题。
我们还要限制x,尤其是,我们限制它略大于O(log n)位,但不是为了节省乘法。指数的准确大小用O(log n)+表示,其中上标+表示,它大于log n的任意多项式。因此,即使用平方根次数破密,人们需要大于2O(log n)次数步骤或大于n的多项式次数步骤。
本文中我们研究的困难问题是离散对数函数这一特殊情况的求逆。确切地说,我们考虑p阶(p为素数)有限域内短指数的模指数函数情况,这个问题的求逆是短指数的离散对数(DLSE)。换句话说:
问题2
令p是大位素数,它至少有一个大素数因子。令x是一个整数,它远远小于p。令g是一个整数模所选素数p有限域内非零元素循环群的发生器。给出g和gx=y,求x。
已经仔细研究过DLSE问题,概括的结果在[OW]中给出,其中他们在Diffie-Hellman重要协议方案范围内研究这个问题。在Diffie-Hellman协定中采用短指数以加速取幂过程。通常,计算gx的代价与x的位长度线性有关,因此实时计算的代价促使采用低阶指数。必须备加小心以保证这种优化不会导致保密性减弱。以上提到的文章[OW]提出一套介快办法以修改这一情况。尤其是,他们的结论建议采用安全素数。
另一个采用短指数的例子是在产生数字签名中。NIST[DSS]发表的数字签名标准是基于离散对数问题。这是EIGamal签字方案[EG]的变型。EIGamal方案一般导致有2n位的签字,其中n是p的位数(模量)。对于可能的应用,需要较短的签字。DSS改变了EIGamal方案,采用320位签字加记号于160位消息,但是用模512位素数完成计算。这种方法涉及把所有计算限制在2160大小的子群。这个方案具有的保密性基于两个不同但非常相关的问题。第一个问题是采用512位模量的整个群的离散对数,其中应用了指数运算算法。第二个问题是有限域内非零元素循环群的子群中离散对数问题。此处,Shanks的平方根算法把复杂性减小到O(280),因为指数仅仅是160位。
位的困难性
如在引言中所指出的,困难位的概念是每个单向函数的突出特性。尤其是广泛地研究了离散对数的位困难性。在此文中,我们定义略微变化的困难位。
定义1
令f和f'是单向函数,其中R_f是f的范围。令B:R_f取{0,1}是布尔谓词。给出某些x的f(x),若计算B(x)与求f'的逆同样困难,则就说谓词B(x)是f'困难。
通常,我们讨论困难位时,f和f'是相同的。例如,发现Blum-Micali位与计算离散对数同样困难。但是在本文中,我们允许f与f'不同。这一新现象的例子是离散指数模合成模。此处,在整数合成数环内的离散对数是一个困难函数,因子分解也困难。给出某些固定g和一般x的gx,寻找这个离散对数各位与困子分解同样困难。这已被Hastad等人[HSS]证明过。在本文中,我们考虑类似的情况。我们考虑离散指数的单向函数,但是,我们证明指数的n-O(log n)+位是DLSE同时困难。先前最好的结果证明n/2位同时困难[HSS],但是我们的结果证明几乎全部n位同时困难。就离散对数而言,我们的结果是最大的。换句话说,若在任意迭代中我们仅仅丢下O(log n)位,则任何破密者通过多项式次数猜想能够计算发生器的籽值。因此,人们不能对有关每次迭代产生位数方面的结果再进一步提高。
二进制表示
数x可以用二进制表示成bn-12n-1+bn-22n-2+…+b12+b1,其中bi是0或1。第i位问题是发现x的bi值。若计算它与计算整个对数同样困难,则第i位是困难的。若我们有一个输出bi值的启示器Oi(g,p,y),若有Poly(n)次算法,Poly(n)次询问各个Y值的启示器Oi(g,p,y)并计算x的整个数值,则此位是困难的。我们知道,最低有效位是不困难的,因为有Poly(n)次算法去计算它,即,计算Legendre(勒让德)符号。
一个不理想的启示器O_epsilon(p,g,Y)往往定义成这样一个启示器,它输出准确位值的概率大于1/2+1/Poly(n)。
Blum-Micali表示
在本文中,当我们讨论第i位的保密性时,我们采用二进制表示,然而,我们要提到第i位的另一种解释。Blum-Micali引入一个特殊的位谓词B(x),并证明它的困难性。若0<=x<=p-1/2则B(x)为0,若p-1/2<x<=p-1,则B(x)为1。这有时称之为x的最高有效位,显然,它不同于二进制表示下的x最高有效位。其他人[LW]扩展这些定义以定义k个最高有效位。通常,Blum-Micali表示指的是最高有效位,而二进制表示指的是最低有效位。在本文中,若指的是第i位时,除非另外说明,我们采用二进制表示。
位的各自困难性
在这节中,我们讨论后置n-O(log n)+位的保密性,其中O(log n)+如以上定义。准确地说,我们证明,除了最低有效位以外,所有n-O(logn)+较低各位相对于DLSE问题是各自地困难的。根据定义1,这相当于证明离散对数各位是DLSE困难。令Oi(g,y,p)是给出第i位的一个启示器(在[2,n-O(log n)+]中任意的i)。注意,i从右到左增大,i=1是最低有效位。给出这个启示器,我们证明,在多项式次数步骤中,我们能够计算短指数离散对数。此外,我们证明各位的困难性是通过给出具有小正数优点的Oi epsilon(g,y,p)去预定言第i位(上述范围内的任意i),它运算多项式次数,去证明我们能够把这个转换成计算短指数离散对数,其中对这个启示器询问多项式次数。在以下的文章中,我们所说的较低K位是指不包含最低有效位的K个较低有效位,K取任意值。
定理
较低n-O(log n)+位是DLSE各自困难的。
证明:根据定义1,给出Oi(g,y,p),只要我们能够计算所有y的logy已足够,其中x=logy是短指数,不失普通性,我们假设p-l=2q,其中q是奇整数。
(a)理想的启示器-Oi(g,y,p)。给出gx和g,且我们事前知道x很小(由O(log n)+位组成)。现在,通过Legendre符号,计算最低有效位总是容易的。因此,我们计算它,并设它为零。令i=2,假设我们有第二位的启示器,若这是一个理想的启示器,则我们计算第二位。一旦我们计算好了,就设它为零,我们继续把这个新数称它为gx。接着,我们计算gx的平方根。gx/2和gx/2+(p-1)/2的两个根中,我们称前者的平方根为主平方根。由于gx的两个最低有效位为零,我们知道,主平方根的LSB等于零(或等价地,Legendre符号1)。这可以让我们识别主平方根。现在,我们对主平方根的启示器进行运算,计算第二最低有效位。这一位实际上是x的第三最低有效位。再一次设它为零,重复这一过程。很清楚,我们在Poly(n)次数步骤中从右至左一次计算x的一位。现在,当i>2时,对gx求平方(i-1)次。于是,第二LSB是在第i位置处,我们运行这个启示器去计算这一位。使这一位为零,再次计算平方根。
当平方根相当于LSB等于零的根。通过运行主平方根的启示器,现在可以计算x的第(i+1)位。继续这个过程,在k步骤中我们就知道x,其中K=logx。
(b)不理想启示器-Oi epsilon(g,y,p)。假设我们有一个不理想启示器,只只需大于(Z/(p))*中x百分之五十的小正数次,我们能成功地找到第i位。于是,我们能够专心于随机的优点,把这个启示器转换成这样一个启示器,其中能够以任意高的概率准确地回答任何特殊的情况。
我们把这个证明分成两部分。
(i)较低的2乘O(log n)位是各自困难。
(ii)中间的n-O(\log n)+至2乘O(log n)位是各自困难。
(i)假设我们有一个不理想的启示器,其优点是小正数,即,这个启示器能够对大于百分之五十可能输入的小正数给以正确的回答(但我们不知道是哪一些)。于是,令r_j是1与p-1之间随机数的多项式数序列。我们对gx+r_j运行这个启示器,其中x的LSB为零。通过大数的弱法则,对第二LSB简单计数启示器输出大部分1和0(在中和随机数的效应以后)得到这一位。现在,计算平方根,如上面一样取出主平方根,以新的一组随机数再一次重复这个过程以发现下一位。很清楚,在Poly(n)次数步骤中我们会从右至左一次发现一位。(其证明省略),我们建议参阅[Pe]以了解细节。
假设$i>2$,然后,对$g^{x}$求平方$i-1$次,重复以上过程,我们得出结论,具有$\epsilon$优点的任何启示器会得出多项式次数算法以计算$x$。需要附加说明的唯一方面是这样一个事实,当我们取随机化时,对于某些$r_j$,把它们加到指数上时,有可能超过$p-1$。我们称此为循环。假设我们均匀地取随机数,则我们认为,这个循环的概率一定比上述超过$\frac{1}{poly(n)}$,因此,我们需要增加询问次数某一数量,这个数量相当于循环中丢失的。再一次省略了证明的细节,建议读者参阅Blum-Micali[BH]的方法。
(ii)除了在开始随机化过程之前通过猜想必须设置最初$t$位为零以外,这一步骤的证明也类似于证明(i)的第二部分。此外,$t$还是Poly($\log n$)数,因此,循环的概率如上面那样一定超过。为了简结再次省略细节,但包括在本文的扩充版内。
假设i>2。于是,我们对gx平方i-1次,重复以上过程,我们得出结论,具有小正数优点以任何启示器会得出多项式次算法以计算x。需要附加说明的唯一方面是这样一个事实,当我们取随机化时,对于某些rj,把它们加到指数上,可能超过p-1。我们称此为循环。假设我们均匀地取随机数,于是我们认为,这个循环的概率一定超过1\poly(n),因此,我们需要增加询问次数某一数量,这个数量相当于循环中丢失的。再一次省略证明的细节。建议读者参阅Blum-Micali[BH]的方法。
(ii)除了在开始随机化过程以前通过猜想必须设置最初的个位为零以外,这一步骤的证明也类似于证明(i)的第二部分。此外,t还是Poly(log n)数,因此循环的概率如上面那样一定超过。为了简结再次省略细节,但包括在本文的扩充版内。
离散对数几乎掩饰n位
在这一节中,我们证明模指数中的n-O(log n)+较低指数位的同时困难性。直现地,给出P阶有限域内的发生器g和某些xT1的gx,然后,我们证明获得有关后置n-O(log n)+位的任何消息是困难的。此外,困难性是相对DLSE问题而言的。换句话说,对于任何的素数P,给出随机发生器g和有限域的随机元素gx,x相关位的任何消息可以转换成Poly(n)算法以求解DLSE问题,现在,获得任何消息的词句是相当含糊的,通过同时保密性的概念对此加以澄清,以下定义任何一般单向函数的同时保密性。
定义2
令f为单向函数。若给出x,且对于每个布尔谓词B,在只给出f(x)条件下以大于1/2概率正确地计算B(Bk(x))的启示器能够用于以Poly(n)次求f的逆,Bk(x)是容易计算的,就说K位的集合Bk(x)是同时保密的。
在本文中,我们采用一个相对于可能不同单向函数改进的同时保密性概念。
定义3
令f和f’为单向函数,其范围在[O,N]中。若给出f(x),对于每个对k位非寻常布尔谓词B,输出B(Bk(x))的启示器能够用于以多项式次数求f的逆,就说k位谓词Bk是f同时困难。若Bk是f’困难谓词,则我们就说BBk(x)的位是f同时困难。
以上定义,虽然很精确,但不容易应用于理解同时保密性。更切实可行的定义在定义4中给出,用素数模下的离数对数问题词句来描述。
定义4
若gxmodp的离散对数[j,k]位与随机选取(g,p,gxmod p)的随机选取[j,k]位串在多项式上不可区分,则在位置j<=i<=k处指数函数gxmod p的位是DLSE-同时困难。此外,任何多项式上不可区分性导致一个以多项式次数求解DLSE问题的启示器。
证明以上一组位的多项式不可区分性也是困难的。但是,与困难性相关的概念有助于缓解这个问题,事实上得到一个同时保密性试验。
定义5
给出一个随机的可接受三元组(g,p,gxmod p),还给出向右k-i位gx的离散对数,若没有多项式次算法能够计算第i位gx的离散对数,其成功概率大于任何多项式poly(n)的1/2+1/Poly(n),则函数gxmod p第i位在间隔[j,k]中相对于右方是相对地困难,其中j<=i<=k,n=logp。
根据这个定义,我们有了同时保密性试验,这个试验的叙述是以下定理。
定理1
这个非偏置位等价性的证明基本上是熟知的由Yao[Y]提出的下一位试验普遍性证明。这个证明方法在[BH]中给以说明。现在,利用此定理和DLSE问题的难处理性,我们证明,后置n-O(log n)+位是同时困难。
定理2
相对于DLSE问题,gxmod p的n-O(log n)+后置位是同时困难。
证明:证明在间隔[2,n-O(log n)+中gx的每个后置位相对于右方是相对地困难就足够了。注意,位的各自困难并不意味着所有的位同时困难。根据以上的定义和定理,我们知道,为了证明同时保密性,我们可以只使用一个弱的启示器:给出gx,预言x的第i位,未知x的所有i-1后置位也应该提供给这个启示器。一般来说,这是一个非常艰巨的任务。
假定此定理不成立。则对于在[2,n-O(log n)+]中的某些i,存在一个启示器,若给此启示器提供一般gx的后置i-1位,此启示器能够成功地预言具有小正数优点的x第i位,其中小正数是1/poly(n)。现在,取一个元素S=gs,其中s是一个短指数。对S取平方适当的次数,我们能够把s向左移。由于O<=i<n-O(log n)+,我们能够把s向左移i-O(log n)位而不需循环。回想一下,所谓循环意味着指数超过p-1,因此,其余下的模P-1取代这个指数。现在,s中第二个LSB留在第i位上,通过乘以grmodP我们能够反复地运行这个启示器,其中r是一个在0与p-1之间的随机数。为了保证循环概率是低的,我们必须设定s的t=poly(log n)前置位为零,其中我们可以使劲地猜想,对每一次猜想运行这个算法,在算法的结束时,我们有一个候选者,看一下gcandidate是否等于S。若是这个结果,则我们就停止或重复运行另一个猜想的算法。由于我们仍有epsilon’>=epsilon-1/t的优点,我们能够以poly(n)次的启示器中推断该位按照这一方式我们知道s的第二LSB。我们设定此位为零,取该数的平方根。在两个根中我们应该取二次残数的那个根,因为所有较低位以零开始,因此,平方根在LSB中应为零。现在,s的下一位在第i个位置,我们可以反复地运行这个启示器以发现这一位及其他位,直到恢复s所有的位。注意,这个启示器非常弱,不像各个位启示器的情况那样。只要提供i位右面i-1位,此启示器会告诉你具有小正数优点的第i位。然而,我们能够这样做是因为,向右移位s的所有位已知为零,这是由于我们从短指数开始。现在我们已证明,对于每个满足2<=i<O(log n)的i,我们能够利用这个弱启示器去发现s,因此我们已经证明,只要s大小为O(logn)+的函数gsmod p是很难求逆,后置位是同时困难的。
伪随机位发生器
在这节中,我们给出新伪随机位发生器的细节。尤其是,我们把Blum-Micali[BM]所用的方案扩展以提取更多位。这是一个与Long-Widgerson[LW]在他们的发生器中所用方案相同的方案,但是他们的输出是由每次迭代的log n位构成,回想一下第2节中Blum-Micali方案所用的略微不同的“位”定义。我们用的位定义与Hastad等人的相同,但是我们没有遇到他们在确定发生器方案时遇到的困难,这是由于我们的指数引入了对{Zp}*的置换。
新发生器:从{Zp}*中取一个籽值s0。定义si+1=g^{si}mod P。在第i步骤(i>0)输出除了最低有效位的si中较低n-O(log n)+位。
保密性证明
假设A是我们的发生器l(l是n的多项式)长输出的小正数区别器,则在第i步骤对于任何的输出有一个(epsilon/l)-区别器。特别是,有一个s0的n-O(log n)位的(epsilon/l)-区别器(distinguisher)。按照我们在上一节Yao[Y]提出的定义,我们可以利用区别器建立一个弱启示器,只要我们给它x的最右i-1位,此启示器会告诉我们x的第i位。
现在,我们注意到,在给出gxmod p条件下我们可以利用这个去发现x,其中x略微大于O(log n)。通过设定S0={gx}{gr},我们反复地祈求此“启示器”。因此,我们能够在poly(n)次发现第i位。
利用定理3中所示的方法,我们能够发现整个x。所以,若我们发生器的输出序列是小正数-可区别的,则在poly(n)次我们能够发现我们指数函数的x。假设求函数gxmod p的逆很难,其中x略微大于O(log n)位(即,短指数),则我们发生器的输出序列是多项式上不可区别。
结论
我们通过证明n-O(log n)+位的同时困难性,证明离数对数mod素数P掩饰那些位。这个结果中的困难性是相对于短指数的离散对数问题,即,DLSE同时困难(如本文第2节中定义的)。
这可以使我们在伪随机发生和其他应用中一次提取n-O(log n)+位。作为n大小为1024位和s大小为128位的一个例子,这可以使我们每一次取幂几乎提取900位。不严格地说,我们注意到,这个例子的保密性是264,因为对于最佳已知算法要取O(264)去破密128位的模指数。此外,若需要在每一步更多的保密性,则我们可以减少每一阶段提取的位数目。这个发生器从单次迭代中输出最大的位数目。在任一次迭代中提取更多位导致位的预言,因为我们会丢下O(log n)位,因此在多项式次数猜想中,我们会知道每次迭代的完整指数。
参考文献
[ACGS]W.\Alexi,B.\Chor,O.\Goldreich and C.\P.\Schnorr,RSA/Rabin bits are 1/2+1/poly(log N)secure,Proceedings of 25th FOCS,449--457,1984.
[BCS]M.\Ben-Or,B.\Chor,A.\Shamir,On the cryptographic security of single RSA bits,Proceedings of 15th STOC,421--430,1983.
[BBS]L.\Blum,M.\Blum,and M.\Shub,A simple secure pseudo-random number generator,SIAMJ.Computing,15 No.2:364--383,1986.
[BM]M.\Blum,and S.\Micali,How to generate ctyptographically strong sequences of pseudo random bits,SIAM J.Computing,13 No.4:850--864,1984.
[BH] R.\B.\Boppana,and R.\Hirschfeld,Pseudorrandom generators and complexity classes,Advances in Computing Research,5(S.\Micali,Ed.),JAI Press,CT.
[DSS]U.\S.\Department of commerce/N.I.S.T,Digital Signature Standard,FIPS 186,May 1994.
[GL]O.\Goldreich,and L.\A.\Levin,A hard-core predicate for all one way functions,Proceedings of 21st STOC,25--32,1989.
[GM]S.\Goldwasser,and A.\Micali,Probabilistic encryption,Journal of Computer and Systems Science,28:270-299,1984.
[HSS]J.\Hastad,A.\W.\Schrift,and A.\Shamir,The discrete logarithm modulo a composite modulus hides $O(n)$ bits,Journal of Computer and System Sciences,47:376--404,1993.
[ILL]R.\Impagliazzo,L.\A.\Levin,and M.\Luby,Pseudo-random generation from one-way functions,Proceedings of 20th STOC,12--24,1988.
[Ka]B.\S.\Kaliski,A pseudo-random bit generator based on elliptic logarithms,Advances in Cryptology-CRYPTO '86 (LNCS 263),84--103,1987.
[KMO]J.\Kilian,S.\Micali,and R.\Ostrovsky,Minimum resource zero-knowledge proofs,Proceedings of 30th FOCS,474--489,1989.
[Kn]D.\E.\Knuth,The Art of Computer Programming(vol 2):Seminumerical Algorithms,Addison Wesley,2nd edition,1981
[Ko]N.\Koblitz,Elliptic curve cryptosystems,Mathematics of Computation,48:203--209,1987.
[LW]D.\L.\Long,and A.\Widgerson,The discrete log hides $O(\log n)$ bits,SIAMJ.Computing,17:363--372,1988.
[Mi]V.\Miller,Elliptic curves and cryptography,Advances in Cryptology-CRYPTO′85(LNCS 218),417--426,1986.
[Na]M.\Naor,Bit commmitment using pseudo-randomness,Advances in Cryptology-CRYPTO'89(LNCS 435),128--136,1989.
[OW]P.\van Oorschot,M.\Wiener,On Diffie-Hellman key agreement with short exponents,Advances in Cryptology-EUROCRYPT'96(LNCS 1070),332--343,1996.
[Pe]R.\Peralta,Simultaneous security of bits in the discrete log,Advances in Cryptology-EUROCRYPT'85 (LNCS 219),62--72,1986.
[PH]S.\C.\Pohlig,and M.\E.\Hellman,An improved algorithm for computing over $GF(p)$ and its cryptographic significance,IEEE Trans.IT,24:106--110,1978.
[Po]J.\M.\Pollard,Monte Carlo methods for index Compton(mod p),Mathematics of Computation,32,No.143:918--924,1978.
[VV]U.\V.\Vazirani,and V.\V.\Vazirani,Efficicnt and secure pseudo-random number gencrators,Proceedings of 25th FOCS,458--463,1984.
[Y]A.\C.\Yao,Theory and applications of trapdoor functions,Proceedings of 23rd FOCS,80--91,1982.
附录
在这节中,我们讨论我们得到结果的某些扩充部分,这部分内容在这篇文章的扩充版加以说明。
提高计算效率
让我们集中考虑发生器的机理。首先从有限域以及累乘循环群的发生器g开始。令so是一个秘密籽值。然后,我们用迭代方式定义si+1=g^{si}。此发生器的输出是si的后置n-O(log n)+位,所有i>0,其中n=log P。
虽然每次迭代产生的位数是大的,每次迭代涉及一个大的指数,这可能对发生器的速度产生影响。取而代之的是,如同以前一样,我们从p,g和s0开始,但是在每一阶段定义Si+1=g^{si’},其中si’=si的前置O(logn)+位。这就保证在每一阶段我们采用短指数,因而保证大大加速。这提出了一些有趣的问题。
问题
这种速度会不会对发生器保密性产生影响?
注意,当我们限制我们的指数时,我们不再有置换。因此,此处所用的简单结构是不适用的。解决这个问题的可行方法是在Hastad等人有关合成模的离散对数中提到[HSS]。特别是,利用在[ILL]中证明过的某些散列引理,他们构造了一个理想的扩展器,通过反复地把扩展器应用于随机籽值,获得伪随机发生。
问题
是否可能把来自[HSS]的方法应用于有限域的短指数取幂,以保证计算的加速和保密性?
阿贝尔群的离散对数
令G是一个有限阿贝尔群。令g在G中且令y=gx(其中x是未知的,我们采用乘积符号表示群运算)。g产生的子群中离散对数问题寻找给出g和y条件下的x值。很清楚,x可能取的值从0至o(g),其中o(g)表示g的阶,由g产生的子群是循环群。
就此而论,Kaliksi[Ka]已证明,在由g产生的子群中离散对数不易处理假设下,x各位是困难的,在本文中,采用Blum-Micali的位概念,各自困难性的证明是根据新型的和新启示器证明方法。
主要的思想是,位的识别是基于一个相关函数,这个函数自动地适应因随机化的循环和位的变化。此外,他完全避免了平方根的计算,这种计算对于其他一些有关各位保密性的工作是很重要的。这篇文章还说明,log n位是同时困难的,推测起来,Long-Widgerson的方法一旦应用于一般阿贝尔群得到这个结果,
现在,我们注意到,假设短指数的离散对数问题在所选阿贝尔群中也是困难的,我们的后置位同时困难性结果是适用的。为了导出同时困难性,人们可以采用Kaliski提出的方法。一旦这个得到证明,则伪随机产生方案可以基于Hastad等人研究的方法来论述。主要的问题是说明这样一个事实,g产生的子群可以是一个合适的子群,因此,对g的群运算不会产生群自身的置换。同时困难性的准确细节以及以后的伪随机位发生方案推迟到本文的扩充版中,当应用于有限域的椭圆曲线时,这个结果是非常有用的。
位承诺方案
几个密码方案要求通信人员承诺某些消息而不泄露有关消息内容的任何消息。过去已提出几个单位和多位承诺方案。提高现有协定效率的多位方案在[KMO]中提出。基于伪随机位发生器的一例多位承诺方案是Naor方案[Na]。在[HSS]中,Hastad等人提出一个直接使用指数模合成整数方案。但是,所有基于伪随机发生器的方案取决于发生器的效率。因此,本文中提出的发生器效率建议,可以加速位承诺方案。这个题目以后还要研究。
虽然结合密码术和通信技术相当详细地描述了本发明,但是,其他的应用和描述也是可能的。例如,伪随机数发生器可用于仿真和其他的密码术应用。所以,本发明的精神和范围不应该局限于此处所描述的实施例。
Claims (9)
1.一种利用伪随机数发生器产生伪随机数的方法,这个伪随机数发生器由模指数函数
定义,其中xi是一个包含m位的数值,p是一个包含k位的素数,g是整数mod p的发生器,并且1<i≤n,该方法包括的步骤为:
接收一个包含m位的籽值x0;且,
其特征为
输出用籽值x0确定的xi值的伪随机数zi,伪随机数zi包括xi的次最低有效位至xi的第j个最低有效位,数值j不大于m-2c,数值c代表密码安全阈值;和
把伪随机数zi与一消息段相合,生成一个加密的消息段。
2.按照权利要求1的方法,其中密码安全阈值c至少等于64。
3.按照权利要求1的方法,其中数值xi至少包含512位。
4.按照权利要求1的方法,其中数值p至少包含512位。
5.按照权利要求1的方法,其中数值xi至少包含1024位。
6.按照权利要求1的方法,其中数据p至少包含1024位。
7.按照权利要求1的方法,还包括以下步骤:
产生数值xi。
8.按照权利要求1的方法,其中消息段包含j-1位。
9.按照权利要求1的方法,其中消息段采用XOR二进制运算与伪随机数zi进行组合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 99102597 CN1240318A (zh) | 1998-03-04 | 1999-03-03 | 产生伪随机数的方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US034,829 | 1998-03-04 | ||
CN 99102597 CN1240318A (zh) | 1998-03-04 | 1999-03-03 | 产生伪随机数的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1240318A true CN1240318A (zh) | 2000-01-05 |
Family
ID=5270869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 99102597 Pending CN1240318A (zh) | 1998-03-04 | 1999-03-03 | 产生伪随机数的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1240318A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1310131C (zh) * | 2003-02-11 | 2007-04-11 | 智慧第一公司 | 随机数产生器及产生方法及具有随机位产生器的微处理器 |
CN100356735C (zh) * | 2004-07-20 | 2007-12-19 | 华为技术有限公司 | 伪随机数产生装置及利用其实现的测试系统 |
CN100568802C (zh) * | 2002-11-20 | 2009-12-09 | 斯蒂芬·L.·博伦 | 使用多密钥产生流密码的方法 |
-
1999
- 1999-03-03 CN CN 99102597 patent/CN1240318A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100568802C (zh) * | 2002-11-20 | 2009-12-09 | 斯蒂芬·L.·博伦 | 使用多密钥产生流密码的方法 |
CN1310131C (zh) * | 2003-02-11 | 2007-04-11 | 智慧第一公司 | 随机数产生器及产生方法及具有随机位产生器的微处理器 |
CN100356735C (zh) * | 2004-07-20 | 2007-12-19 | 华为技术有限公司 | 伪随机数产生装置及利用其实现的测试系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1054245C (zh) | 数据加密的装置和方法 | |
EP1834438B1 (en) | Cryptography related to keys | |
CN101040474A (zh) | 为提高安全性的置换数据变换 | |
CN1859090A (zh) | 一种基于身份的密码方法和系统 | |
CN107196760A (zh) | 具有可调整性的伴随式随机重构密钥的序列加密方法 | |
CN100338906C (zh) | 共享密钥生成装置、密钥交换装置以及密钥交换方法 | |
Driessen et al. | Comparison of innovative signature algorithms for WSNs | |
Brown et al. | A security analysis of the NIST SP 800-90 elliptic curve random number generator | |
CN1314223C (zh) | 密码专用密钥的存储和复原方法及设备 | |
Young et al. | Malicious cryptography: Kleptographic aspects | |
CN1505306A (zh) | 椭圆曲线加密解密方法和装置 | |
CN1411644A (zh) | 使用rsa类型公开密钥加密算法的电子部件中的对策方法 | |
US20100150343A1 (en) | System and method for encrypting data based on cyclic groups | |
CN1240318A (zh) | 产生伪随机数的方法 | |
Arnault et al. | A new class of stream ciphers combining LFSR and FCSR architectures | |
CN1230736C (zh) | 智能卡模乘器vlsi结构的计算机实现方法 | |
CN1960257A (zh) | 一种基于超对数难题和双同余定理的数字签名方法 | |
Reyad et al. | Pseudo-random sequence generation from elliptic curves over a finite field of characteristic 2 | |
Rastaghi | An efficient CCA2-secure variant of the McEliece cryptosystem in the standard model | |
CN1464678A (zh) | 基于半群上离散对数问题的数字签名及验证的方法 | |
JP4914377B2 (ja) | 署名生成装置、署名検証装置、署名生成検証システム、それらの方法及びプログラム | |
CN1245695C (zh) | 一种基于杠杆函数和超递增序列的公钥加密方法 | |
Kumar et al. | Evaluation of Cryptographically Secure Pseudo Random Number Generators for Post Quantum Era | |
CN112511310A (zh) | 一种加密身份盲签名的混淆方法 | |
CN114513306B (zh) | 数据加密传输方法、系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |