CN1714377A - 用于生成伪随机数的方法及伪随机数生成器 - Google Patents

用于生成伪随机数的方法及伪随机数生成器 Download PDF

Info

Publication number
CN1714377A
CN1714377A CNA038255723A CN03825572A CN1714377A CN 1714377 A CN1714377 A CN 1714377A CN A038255723 A CNA038255723 A CN A038255723A CN 03825572 A CN03825572 A CN 03825572A CN 1714377 A CN1714377 A CN 1714377A
Authority
CN
China
Prior art keywords
random number
bit string
random numbers
random
shift register
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
Application number
CNA038255723A
Other languages
English (en)
Inventor
森井昌克
白石善明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiao Linlang
Original Assignee
Xiao Linlang
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xiao Linlang filed Critical Xiao Linlang
Publication of CN1714377A publication Critical patent/CN1714377A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • H04L9/0668Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator producing a non-linear pseudorandom sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Storage Device Security (AREA)

Abstract

一种用于生成伪随机数的方法及伪随机数生成器。当M序列的每一个周期的比特数与导出值互为素数时,通过对各个数s进行抽样而获得的比特串,即其输出序列是M序列的比特串的比特构成了具有其它结构的线性反馈移位寄存器的M序列。此外,可以借助于Berlekamp-Massay算法、根据相应于至少两个周期的比特来确定线性反馈移位寄存器,从而可以容易并动态地基于初态值来重新构建线性反馈移位寄存器11。

Description

用于生成伪随机数的方法及伪随机数生成器
技术领域
本发明涉及用于生成在密码通信和数字签名中使用的伪随机数的方法,用于生成伪随机数的伪随机数生成器和程序。
背景技术
通常情况下,倘若通过导线或者无线电来完成信息通信,则要在信息加密之后对其进行发送,以便不将其内容泄漏给第三方。加密***包括流密码***。在流密码***中,发送和接收侧产生彼此相同的伪随机数,以及发送侧通过使用伪随机数的比特串和明文比特串准备密码比特串,以将比特串作为密码发送到接收侧,同时接收侧接收所述比特串的密码,并且通过使用密码比特串和伪随机数比特串来找到明文比特串,以将所述比特串解密为明文。
图16是用于说明常规的流密码***的图形。发送侧的加密设备100具有伪随机数生成器101和逻辑运算处理部102,接收侧的解密设备110具有伪随机数生成器111和逻辑运算处理部112。
加密设备100的伪随机数生成器101和解码设备110的伪随机数生成器111具有一种逻辑结构,其中一个给定的密钥生成了彼此相同的伪随机数。加密设备100的逻辑运算处理部102和解码设备110的逻辑运算处理部112以比特为单位来执行异或运算处理。
图17是用于说明加密设备100的伪随机数生成器101的图形。然而,解密设备110的伪随机数生成器111具有与加密设备100的伪随机数生成器101相同的结构,所以将省略对其详细的说明。
如图17所示,伪随机数生成器101是非线性组合型伪随机数生成器(非线性组合器生成器),并且具有彼此成排布置的多个线性反馈移位寄存器(LFSR)103和非线性转换部104,其非线性地转换从各个线性反馈移位寄存器103输出的比特串,以生成伪随机数。在这种常规的例子中,各个线性反馈移位寄存器103通过一次移位运算输出一个比特(X1、X2、……XL),同时非线性转换部104基于从各个线性反馈移位寄存器103输入的比特串输出一个比特的伪随机数。
图18是用于简单地说明线性反馈移位寄存器103的常规结构的图形。该线性反馈移位寄存器103具有能够存储一个比特信息的多个移位寄存器105和多个异或运算电路106,以及在各个移位寄存器105的输出端和其中一个异或运算电路106的输入端之间连有反馈分接头(tap)107。在反馈分接头107(cn-1、cn-2、……cn)中,如果各个反馈分接头为“1”,则其表示连接;而如果为“0”,则表示断开,同时要提前确定各个分接头是“1”还是“0”。
如果移位寄存器105的数量为“n”(n为多数(plurality)),则大家都知道其中一个移位寄存器105具有(2^n)-1的输出序列的最大周期。该输出序列称为M序列。“(2^n)”项表示2n(按2的n次幂增加)。下面将描述在指数部分之前的符号“^”。
例如,就图17中示出的线性反馈寄存器103来说,生成M序列的特征多项式表示如下:
C(x)=(X^n)+cn-1(X^(n-1))+……+c1X+1
在特征多项式第一项中的指数n表示线性反馈寄存器103的阶数,即移位寄存器的数量。在第二或更多项中的指数表示反馈分接头107的连接位置。如果将特征多项式设置为原多项式,则该线性反馈移位寄存器103输出M序列。
可以通过基于以比特为单位的逻辑运算的简单逻辑来构造这种非线性组合器型伪随机数生成器(非线性组合器生成器)。所以考虑适合于将该生成器安装到硬件中。
已经建议了基于诸如异或这样的运算处理来改变线性反馈移位寄存器的输出,例如在JA06-342257中进行了描述。
发明内容
要解决的第一个问题
然而,可以通过对线性反馈移位寄存器的输出进行超过移位数两倍的观测来指定线性反馈移位寄存器103的构造(即移位寄存器的数量和连接的位置),以及初态值。所以,如果实际上将结构固定的线性反馈移位寄存器103用作伪随机数生成器101,则存在诸如弱加密强度(encryptionstrength)(密码强度)和差的安全性(poor security)这样的问题。
此外,在线性反馈移位寄存器103中,当根据特征多项式的变化来改变所述寄存器的位置和连接数时,容易将该线性反馈移位寄存器的输出从M序列(M-序列)改变为比M序列更短的短周期(short-period),从而引起强度的减少。所以,应当将特征多项式固定为输出M序列的值,为此要考虑不可以轻易地改变线性反馈移位寄存器的构造。
要解决的第二个问题
在常规的非线性组合器型伪随机数生成器中,要求线性反馈移位寄存器103重复并连续地仅以单一的比特来执行运算。这种处理适合于硬件来运行,硬件可以以相对高的速度来执行处理。但是,该处理对于相比较硬件来说以极低的速度进行处理的软件而言存在弱点。
在非线性转换部104中,执行诸如逻辑相乘和异或这样的简单运算。因此,线性反馈移位寄存器103的吞吐量小于非线性转换部104的吞吐量,所以在整个生成器(即线性反馈移位寄存器103)中的输出随机数比特串的部分构成了一个障碍。因此,当以软件来配置常规的非线性组合器型伪随机数生成器时,与以硬件来配置的生成器相比较减少了整个吞吐量。以软件形式来使用该生成器非常困难。
此外,为了获得伪随机数的充分的加密强度,要求多个线性反馈移位寄存器103的数量和该线性反馈移位寄存器103的移位寄存器105的数量超过特定水平。但是,吞吐量会随着线性反馈移位寄存器103的数量或该线性反馈移位寄存器103的移位寄存器105的数量的增加而降低。所以,很难在保持高加密强度的同时获得高吞吐量。
本发明用来解决上面提到的要解决的第一和第二个问题的至少其中一个。本发明的目的是提供一种用于生成伪随机数的方法和程序以及一种伪随机数生成器,在所述伪随机数生成器中,在保持高加密强度的同时可以容易并动态地改变线性反馈移位寄存器的构造,并且在充分地保持高加密强度的同时可以获得较高的吞吐量。
权利要求1中所述的用于生成伪随机数的方法包括:
第一步骤,建立线性反馈移位寄存器的初态值,所述线性反馈移位寄存器包括n个移位电阻器(shift resistor)并且能够输出每一个周期都具有(2^n)-1个比特的比特串;
第二步骤,借助于预定的运算处理、基于所述初态值来找到与每个线性反馈移位寄存器周期的比特数互为素数的导出值;
第三步骤,将所述导出值乘以一个值来计算要从第一线性反馈移位寄存器输出的比特数(比特串的),该值是通过两倍或多倍于每个周期的比特数而得到的;
第四步骤,基于所述初态值从所述线性反馈移位寄存器输出相应于所计算比特数的比特串;
第五步骤,从每个导出值的输出比特串中取出一个比特,以生成新比特串;
第六步骤,改变所述线性反馈移位寄存器的结构,以便可以从所述电阻器输出新比特串;以及
第七步骤,基于所述初态值,从结构已改变的所述线性反馈移位寄存器中生成伪随机数。
在本发明中,当M序列的每一个周期的比特数(=(2^n)-1)与导出值(s)互为素数时,通过对各个数s(every the number s)进行抽样而获得的比特串,即其输出序列是M序列的比特串的比特构成了具有其它结构的线性反馈移位寄存器的M序列。此外,本发明用于一种情况,即可以根据具有至少两个周期的比特数的比特串来获得线性反馈移位寄存器。
根据本发明,建立线性反馈移位寄存器的初态值,所述线性反馈移位寄存器具有n个移位电阻器,并且能够输出每一个周期都具有(2^n)-1个比特的比特串,以及借助于预定运算处理来确定基于初态值的一个导出值,该导出值与线性反馈移位寄存器的每个周期的比特数互为素数。
接下来,将所述导出值乘以一个值来计算要从第一线性反馈移位寄存器输出的比特数,该值是通过两倍或多倍于每个周期的比特数而得到的,基于初态值从线性反馈移位寄存器输出相应于所计算比特数的比特串,同时针对每个导出值从输出比特串中取出一个比特,以生成一个新的比特串。
然后,重新构建线性反馈移位寄存器,使得可以从电阻器输出所述新的比特串,并且基于初态值从重新构建的线性反馈移位寄存器来生成伪随机数。
根据该方法,可以基于初态值动态地改变线性反馈移位寄存器的结构,同时可以从被改变的线性反馈移位寄存器输出M序列比特串。因此,密码分析人员在基于从伪随机数生成器输出的伪随机数进行重新构建之前,不能够获得所述线性反馈移位寄存器的结构,并且也不能对初态值和密钥进行密码分析。结果,可以获得高的加密强度,并且可以保持信息的机密性。
权利要求2中所述发明的特征在于:在权利要求1的用于生成伪随机数的方法中,通过散列函数对所述初态值进行处理,以找到其散列值,以便将最接近于该散列值的一个素数用作所述导出数。
根据本发明,由于通过散列函数对所述初态值进行处理来找到其散列值,以将最接近于该散列值的一个素数用作所述导出数,所以可能增加了估计所述导出值的难度,从而可以进一步增加信息的机密性。
权利要求3中所述发明的特征在于:在权利要求1或2的用于生成伪随机数的方法中,使用Berlekamp-Massay算法来执行线性反馈移位寄存器的重新构建。
本发明使用可以从具有至少两个周期的比特数的比特串中获得线性反馈移位寄存器的Berlekamp-Massay算法。
权利要求4中所述发明的特征在于:在权利要求1到3的用于生成伪随机数的方法中,所述方法包括第八步骤,使第七步骤中生成的伪随机数经历非线性转换。
根据本发明,对所生成的伪随机数进行非线性转换,从而可以将非线性特性提供给所述伪随机数,这增强了加密强度。
权利要求5中所述的本发明的伪随机数生成器包括:
具有n个移位电阻器并且能够输出每一个周期都具有(2^n)-1个比特的比特串的线性反馈移位寄存器;
基于密钥来建立线性反馈移位寄存器初态值的装置;
借助于预定运算处理、基于初态值来找到导出值的装置,所述导出值与每个线性反馈移位寄存器周期的比特数互为素数;
将所述导出值乘以一个值来计算要从第一线性反馈移位寄存器输出的比特数(比特串的)的装置,该值是通过两倍或多倍于每个周期的比特数而得到的;
基于所述初态值从所述线性反馈移位寄存器输出相应于所计算比特数的比特串的装置;
从每个导出值的输出比特串中取出一个比特以生成新比特串的装置;
重新构建所述线性反馈移位寄存器,使得可以从所述电阻器输出新比特串的装置;以及
基于所述初态值,从重新构建的所述线性反馈移位寄存器中生成伪随机数的装置。
在本发明中,当M序列的每一个周期的比特数(=(2^n)-1)与导出值(s)互为素数时,通过对各个数s进行抽样而获得的比特串,即其输出序列是M序列的比特串的比特构成了具有其它结构的线性反馈移位寄存器的M序列。此外,本发明用于一种情况,即可以根据具有至少两个周期的比特数的比特串来确定线性反馈移位寄存器。
根据本发明,建立线性反馈移位寄存器的初态值,所述线性反馈移位寄存器具有n个移位电阻器,并且能够输出每一个周期都具有(2^n)-1个比特的比特串,以及借助于预定运算处理来确定基于初态值的一个导出值,该导出值与线性反馈移位寄存器的每个周期的比特数互为素数。
接下来,将所述导出值乘以一个值来计算要从第一线性反馈移位寄存器输出的比特数,该值是通过两倍或多倍于相应于每个周期的比特数而得到的,基于初态值从线性反馈移位寄存器输出相应于所计算比特数的比特串,同时针对每个导出值都从输出比特串中取出一个比特,以生成一个新的比特串。
然后,重新构建线性反馈移位寄存器的结构,使得可以从电阻器输出所述新的比特串,并且基于初态值从重新构建的线性反馈移位寄存器生成伪随机数。
根据该方法,可以基于初态值动态地改变线性反馈移位寄存器的结构,同时可以从被改变的线性反馈移位寄存器输出M序列比特串。因此,密码分析人员在基于从伪随机数生成器输出的伪随机数进行改变之前,不能够获得所述线性反馈移位寄存器的结构,并且也不能对初态值和密钥进行密码分析。结果,可以获得高的加密强度,并且可以保持信息的机密性。
在权利要求5的伪随机数生成器中,权利要求6所述的本发明的特征在于:所述生成器进一步具有用于生成第二线性反馈移位寄存器的装置,来代替用于改变线性反馈移位寄存器结构的装置,所述第二线性反馈移位寄存器的装置具有能够输出新比特串的结构;以及所述用于生成伪随机数的装置基于初态值从第二线性反馈移位寄存器生成伪随机数。
根据本发明,可以将所述线性反馈移位寄存器划分为两个电阻器,即第一线性反馈移位电阻器和第二线性反馈移位电阻器,这会带来机密性的增强。
权利要求7中所述本发明的伪随机数生成器,包括:
基于密钥来输出一个具有预定比特数的选择性使用的随机数比特串的装置;
随机数表,其中(预先)记录有多个放大随机比特串,这些随机比特串具有大于所述选择性使用的随机数比特串的比特数。
能够通过参考所述随机数表、利用所述选择性使用的随机数比特串(即用于选择的随机数比特串),从所述随机数表内的多个放大随机数比特串中选择相应放大的随机数比特串的装置,所述选择性使用的随机数比特串是从用于输出选择性使用的随机数比特串的装置中输出的;以及
借助非线性函数对所述放大随机数比特串进行非线性转换以输出伪随机数的装置(非线性转换装置),所述放大随机数比特串是通过用于选择放大随机数比特串的装置来选择的。
根据本发明,由于基于密钥对具有预定比特数的选择性使用的随机数比特串进行输出,以及通过参考所述随机数表、利用选择性使用的随机数比特串、从位于所述多个随机数表内的放大随机数比特串中选择相应的放大随机数比特串,所以可以基于具有少量比特数的所述选择性使用的随机数比特串来获得具有较多比特数的所述放大随机数比特串。
因此,可以极大地增加输入到非线性转换装置中的比特串的比特数。所以,可以增加用于输出随机数比特串的装置的吞吐量(迄今为止其构成了障碍),该吞吐量在与非线性转换装置相比较的上游侧提供,并且使其增强并接近于非线性转换装置的吞吐量,这会带来整个伪随机数生成器的吞吐量的增加。
在权利要求7的伪随机数生成器中,权利要求8所述的本发明的特征在于:所述生成器进一步具有通过给定密钥来生成放大随机数比特串、将所述比特串存储到随机数表中、并且执行随机数的初始设置的装置。
根据本发明,通过给定密钥来生成放大随机数比特串,将所述比特串存储到随机数表中,并且执行随机数表的初始设置,所以可以根据密钥的改变来改变随机数表中的初态值。因此可以增强加密强度。
在权利要求7或8的伪随机数生成器中,权利要求9所述的本发明的特征在于:
提供多个用于输出选择性使用的随机数表的装置,
提供随机数表以便与各个用于输出选择性使用的随机数表的装置相一致,
用于生成放大随机数比特串的装置通过参考所述随机数表、利用选择性使用的随机数比特串、从所述随机数表中选择相应的放大随机数比特串,所述随机数表分别相应于各个用于输出选择性使用的随机数比特串的装置,所述选择性使用的随机数比特串是从各个用于输出选择性使用的随机数比特串的装置输出的,以及
用于非线性转换的装置通过借助于非线性函数、利用各个用于生成放大随机比特串的装置对从各个随机数表选择的放大随机数比特串进行非线性转换来输出伪随机数。
根据本发明,通过参考使用各个选择性使用的随机数比特串的随机数表,从用于输出选择性使用的随机数比特串的各个装置输出所述选择性使用的随机数比特串,并且通过参考非线性函数,对从各个随机数表选择的放大随机数比特串进行非线性转换来输出随机数。因此,可以增强输出随机数比特串部分的吞吐量(迄今为止其构成了障碍),这会带来整个伪随机数生成器的吞吐量的增加。
在权利要求9的伪随机数生成器中,权利要求10所述的本发明的特征在于:相应于各个用于输出选择性使用的随机数比特串的装置来提供多个随机数表,以及
所述生成器进一步具有,用于使各个放大随机数比特串在各个用于输出选择性使用的随机数比特串的、并将其输出到非线性转换装置的装置上都经历异或运算的装置,该放大随机数比特串是通过用于选择放大随机数比特串的装置从各个随机数表中选择的。
根据本发明,使从各个随机数表选择的各个放大随机数比特串在各个用于输出选择性使用的随机数比特串的、并将其输出到非线性转换装置的装置上都经历异或运算。因此,与使用实际上从生成放大随机数比特串的装置输出的随机数比特串的情形相比较,经历了异或运算的所述比特串可以增强加密强度。
在权利要求9或10的伪随机数生成器中,权利要求11所述的本发明的特征在于:所述生成器进一步具有以预定时间来彼此替换随机数表的装置。
根据本发明,由于可以以预定时间来彼此替换随机数表,所以可以改变用于参考的随机数表,与固定随机数表的使用相比较,这可能增强加密强度。
在权利要求11的伪随机数生成器中,权利要求12所述的本发明的特征在于:每当用于输出选择性使用的随机数比特串的装置输出参考各个随机数表所需的、选择性使用的随机数比特串时,用于替换随机数表的装置都具有彼此替换随机数表的功能。
本发明示出了在权利要求12的伪随机数生成器中的预定时间的一个例子。根据本发明,由于每当用于输出选择性使用的随机数比特串的装置输出参考各个随机数表所需的、选择性使用的随机数比特串时,都要彼此替换随机数表,所以可以以短的时间间隔来改变用于参考的随机数表,这可以进一步增强加密强度。
在权利要求11或12的伪随机数生成器中,权利要求13所述的本发明的特征在于:用于替换随机数表的装置具有生成用于替换随机数表的随机数的功能,所述随机数表具有与各个随机数的编号相同的编号,将用于替换随机数表的随机数作为随机数表的表编号提供给各个随机数表,并且根据基于所述表编号预定的规则来替换所述随机数表的顺序。
本发明示出了在权利要求13的伪随机数生成器中的用于替换随机数表的装置。根据本发明来生成用于替换随机数表的随机数,将用于替换随机数表的随机数作为随机数表的表编号提供给各个随机数表,并且根据基于所述表编号预定的规则来替换所述随机数表的顺序。因此,可以容易且快速地替换随机数表的顺序,所以可以将与非线性转换装置相比较的上游侧的吞吐量增加到接近于非线性转换装置的吞吐量,这会引起整个伪随机数生成器吞吐量的增加(增加的速度)。
权利要求14所述发明的用于生成伪随机数的计算机可执行程序包括:
基于密钥输出具有预定比特数的、选择性使用的随机数比特串的装置;
随机数表,其中存储了多个放大随机数比特串,所述多个放大随机数比特串具有大于所述选择性使用的随机数比特串的比特数;
能够通过参考所述随机数表、利用所述选择性使用的随机数比特串,从所述随机数表内的多个放大随机数比特串中选择相应放大的随机数比特串的装置,所述选择性使用的随机数比特串是从用于输出选择性使用的随机数比特串的装置中输出的;以及
借助非线性函数对所述放大随机数比特串进行非线性转换以输出伪随机数的装置,所述放大随机数比特串是通过用于选择放大随机数比特串的装置来选择的。
根据本发明,由于基于密钥对具有预定比特数的选择性使用的随机数比特串进行输出,以及通过参考所述随机数表、利用选择性使用的随机数比特串、从位于所述随机数表内的多个放大随机数比特串中选择相应的放大随机数比特串,以及通过非线性函数对所述放大随机数比特串进行非线性转换以输出伪随机数,所以可以基于具有少量比特的所述选择性使用的随机数比特串,来获得具有较多比特数的所述放大随机数比特串。
因此,可以极大地增加输入到非线性转换装置中的比特串的比特数。所以,可以增加用于输出随机数比特串的装置的吞吐量(迄今为止其构成了障碍),该吞吐量在相对于非线性转换装置的上游侧提供,并且使其接近于非线性转换装置的吞吐量,这会带来整个伪随机数生成器的吞吐量的增加。
在权利要求14中所述的用于生成本发明的伪随机数的程序中,权利要求15所述发明的特征在于:所述程序进一步具有,用于运行所述程序的装置,用于通过给定密钥来生成放大随机数比特串、将所述比特串存储到随机数表中、并且执行随机数表的初始设置的装置。
根据本发明,通过给定密钥来生成放大随机数比特串,将所述比特串存储到随机数表中,并且执行随机数表的初始设置,所以可以根据密钥的改变来改变随机数表中的初态值。因此可以增强加密强度。
在权利要求14或15中所述的用于生成本发明的伪随机数的程序中,权利要求16所述发明的特征在于:作为用于运行所述程序的装置:
提供多个用于输出选择性使用的随机数表的装置,以及
提供随机数表以便与各个用于输出选择性使用的随机数表的装置相一致,以及
用于生成放大随机数比特串的装置通过参考所述随机数表、利用选择性使用的随机数比特串、从所述各个随机数表中选择相应的放大随机数比特串,所述随机数表相应于各个用于输出选择性使用的随机数比特串的装置,所述选择性使用的随机数表是从各个用于输出选择性使用的随机数比特串的装置中输出的,以及
用于非线性转换的装置通过利用各个用于生成放大随机比特串的装置,对从各个随机数表选择的放大随机数比特串进行非线性转换来输出伪随机数。
根据本发明,从各个用于输出选择性使用的随机数比特串的装置中输出所述选择性使用的随机数比特串,使用各个选择性使用的随机数比特串来参考各个随机数表,并且通过参考非线性函数,对从各个随机数表选择的放大随机数比特串进行非线性转换来输出随机数。因此,可以增强输出随机数比特串部分的吞吐量(迄今为止其构成了障碍),这会带来整个伪随机数生成器的吞吐量的增加(增加的速度)。
在权利要求16中所述的用于生成本发明的伪随机数的程序中,权利要求17所述发明的特征在于:作为运行所述程序的装置,
每个用于输出选择性使用的随机数比特串的装置都提供多个随机数表,以及
作为运行所述程序的装置,所述程序具有,用于使各个放大随机数比特串在各个用于输出选择性使用的随机数比特串的、并将其输出到非线性转换装置的装置上都经历异或运算的装置,该放大随机数比特串是通过用于选择放大随机数比特串的装置从各个随机数表中选择的。
根据本发明,使从各个随机数表选择的各个放大随机数比特串在各个用于输出选择性使用的随机数比特串的、并将其输出到非线性转换装置的装置上都经历异或运算。因此,与使用实际上从生成放大随机数比特串的装置输出的随机数比特串的情形相比较,经历了异或运算的所述比特串可以增强加密强度。
在权利要求16或17中所述的用于生成本发明的伪随机数的程序中,权利要求18所述发明的特征在于:作为运行所述程序的装置,所述程序进一步具有以预定时间来彼此替换随机数表的装置。
根据本发明,由于可以以预定时间来彼此替换随机数表,所以可以改变用作参考的随机数表,与固定随机数表的使用相比较,这可能增强加密强度。
在权利要求18中所述的用于生成本发明的伪随机数的程序中,权利要求19所述发明的特征在于:每当用于输出选择性使用的随机数比特串的装置输出参考各个随机数表所需的、选择性使用的随机数比特串时,用于替换随机数表的装置都具有彼此替换随机数表的功能。
本发明示出了在权利要求19的程序中的预定时间的一个例子。根据本发明,由于每当用于输出选择性使用的随机数比特串的装置输出参考各个随机数表所需的、选择性使用的随机数比特串时,都要彼此替换随机数表,所以可以以短的时间间隔来改变用作参考的随机数表,这可以进一步增强加密强度。
在权利要求18或19中所述的用于生成本发明的伪随机数的程序中,权利要求20所述发明的特征在于:用于替换随机数表的装置具有生成用于替换随机数表的随机数的功能,所述随机数表具有与各个随机数的编号相同的编号,将用于替换随机数表的随机数作为随机数表的表编号提供给各个随机数表,并且根据基于所述表编号预定的规则来替换所述随机数表的顺序。
本发明示出了在权利要求20的程序中的、用于彼此替换随机数表的装置的一个例子。根据本发明来生成用于替换随机数表的随机数,将用于替换随机数表的随机数作为随机数表的表编号提供给各个随机数表,并且根据基于所述表编号预定的规则来替换所述随机数表的顺序。因此,可以容易且快速地替换随机数表的顺序,所以可以增加与非线性转换装置相比较的上游侧的吞吐量,并且使其接近于非线性转换装置的吞吐量,这会引起整个伪随机数生成器吞吐量的增加(增加的速度)。
附图说明
图1是用于说明根据本发明实施例的伪随机数生成器的视图;
图2示出了根据本发明实施例的线性反馈移位寄存器的原多项式的一个例子;
图3是用于说明根据本发明实施例的伪随机数生成器的处理过程的流程图;
图4是示意性地说明根据本发明实施例的伪随机数生成器的视图;
图5是用于说明伪随机数表构造的示意图;
图6是用于说明在随机数比特串放大部分中构造的元件的概念图;
图7是根据本发明实施例来说明用于生成伪随机数的方法的流程图;
图8是示意性地示出根据本发明实施例的伪随机数生成器的概念图;
图9是示意性地示出随机数表的概念图;
图10是根据本发明实施例来说明用于生成伪随机数的方法的流程图;
图11示出了根据本发明实施例的线性反馈移位寄存器的原多项式的一个例子;
图12是用于说明线性反馈移位寄存器的重新构建处理过程的流程图;
图13是示出了通过测量吞吐量而获得的结果的表格;
图14是示出了在验证中使用的NIST参数的表格;
图15是示出了NIST验证结果的视图;
图16是用于说明常规的流密码***的图形;
图17是用于说明加密设备的伪随机数生成器的图形;
图18是用于简单地说明线性反馈移位寄存器的常规结构的图形。
具体实施方式
(第一实施例)
参考附图来说明本发明的第一实施例。
图1是说明根据本发明第一实施例的伪随机数生成器1的视图。在该实施例中,作为伪随机数生成器的一个例子来说明非线性组合器型伪随机数生成器1。
伪随机数生成器1具有初态值设置部(未示出),基于用户给出的密钥来设置初态值;多个伪随机数生成部10,基于从所述初态值设置部接收的初态值来生成伪随机数;以及非线性转换部20,其连接到这些多个伪随机数生成部10的各个输出侧,并且非线性地转换从各个伪随机数生成部分10输出的伪随机数。
初态值设置部将用户给出的密钥转换为比特串,将该比特串划分为伪随机数生成部10的数量,同时经历一个处理过程,以生成分别分配给伪随机数生成部10的线性反馈移位寄存器11的初态值。
彼此成排地来布置L个伪随机数生成器10,各个部10都具有线性反馈移位寄存器11和用于重新构建所述线性反馈移位寄存器的装置12。
线性反馈移位寄存器11具有n个能够存储一比特信息的移位寄存器和异或电路,类似于在“背景技术”中所描述的。在该实施例中,预先设置移位寄存器11的结构,以使得可以输出每一个周期的比特数m为(2^n)-1的比特串(称为M序列)。
图2示出了根据本发明实施例的线性反馈移位寄存器11的原多项式的一个例子。该原多项式是预先设置用于输出M序列的特征多项式。多项式第一项的指数部分(其由图2中的“^”来表示)表示移位寄存器的数量,而第二或者更多项的指数部分表示连接到异或电路的连接位置。例如,已经示出了在表格第一行中示出的线性反馈移位寄存器11(LFSR1)具有131个移位寄存器,并且通过反馈分接头将第八、第三和第二行中示出的移位寄存器连接到所述异或电路。在该实施例中,将移位寄存器的所有数量n都置为素数。
用于重新构建线性反馈移位寄存器的装置12动态地改变所述线性反馈移位寄存器的结构,以便对其进行重新构建。更加详细地,当M序列的每一个周期的比特数(=(2^n)-1)与导出值(s)互为素数(即所述比特数和导出值除了1之外彼此之间没有公约数)时,通过对各个数进行抽样而获得的新比特串,即其输出序列是M序列的比特串的比特构成了具有其它结构的线性反馈移位寄存器的M序列。此外,可以借助于Berlekamp-Massay算法、根据相应于至少两个周期的比特的比特串来确定能够输出比特串且具有等价和小型结构的线性反馈移位寄存器的特征多项式,从而可以重新构建所述线性反馈移位寄存器。
在用于重新构建线性反馈移位寄存器的装置12中,根据初态值设置部给出的初态值来计算导出值s,所述导出值乘以一个值2m,该值2m是通过乘以相应于所述线性反馈移位寄存器11的一个周期的比特数m(=(2^n)-1)而获得的,并且计算要从线性反馈移位寄存器11输出的比特串的比特数2ms。
接下来,基于初态值从线性反馈移位寄存器11输出2ms个比特(数量为2ms),并且从每个导出值s的2ms个比特中取出一个比特串,从而生成新比特串,然后借助于Berlekamp-Massay算法、通过使用所述新比特串来重新构建线性反馈移位寄存器11。
在本发明的实施例中,通过一个例子进行说明,其中从线性反馈移位寄存器11输出的比特串的比特数为2ms,因为不小于2ms的任何比特数都能够确定等价且小型的线性反馈移位寄存器,所以该比特数对于不小于2ms的数量来说是足够的。
在Berlekamp-Massay算法中,获得了具有两倍或多倍于线性反馈移位寄存器11的移位寄存器的数量n(线性复杂度)的比特数的比特串,从而可以获得能够输出所述比特串的等价且小型的线性反馈移位寄存器。例如,在“Introduction to Encryption Logic”(第二版,KYORITSUSYUPPAN,E.Okamoto,2002年4月10日)中全面描述了Berlekamp-Massay算法。
接下来,将参考图3的流程图来说明具有上述结构的伪随机数生成器1的处理(操作)。
首先,通过初态值设置部来设置初态值(步骤1)。借助于预定的运算处理、通过划分用户给出的密钥来设置初态值。
例如,如果密钥长度是由“ABCDEFGHIJKLMNOP”组成的16个比特,以及伪随机数生成部10有8行,则以如下的形式来设置初态值。
LFSR AB+X′FF′Padding(即填充字母)
LFSR CD+X′FF′Padding
LFSR EF+X′FF′Padding
LFSR GH+X′FF′Padding
LFSR IJ+X′FF′Padding
LFSR KL+X′FF′Padding
LFSR MN+X′FF′Padding
LFSR OP+X′FF′Padding
在上述行中,通过将密钥的“ABCDEFGHIJKLMNOP”划分为“AB”、“CD”、……“OP”,即每组两个字母,同时将这两个字母输入到移位寄存器,然后将“Padding”填充到移位寄存器的剩余部分来设置初态值。上述用于设置初态值的方法只是一个例子,还可以通过其它的方法来设置初态值。
当通过初态值设置部中的密钥来设置初态值时,将各个初态值分别输入到各个伪随机数生成器10中,以便在线性反馈移位寄存器11的移位寄存器中进行设置。
接下来,通过用于重新构建线性反馈移位寄存器的装置12来重新构建线性反馈移位寄存器11(步骤S2到步骤S6)。
首先,根据初态值来计算导出值s,该导出值s与相应于所述线性反馈移位寄存器11的一个周期的比特数m互为素数(步骤S2)。通过诸如消息摘要(message digest)5这样的散列函数对所述初态值进行处理,以找到其散列值同时采用最接近于该散列值的一个素数来确定所述导出值s。所以,可能增加了估计所述导出值的难度,从而能够进一步增加信息的机密性。只要根据初态值和与比特数m为素数来确定导出值,就可以通过任何方法来确定导出值s。然而,为了保持信息的机密性,预定的运算处理在某种程度(特性)上应当是令人满意的。
在计算了导出值s之后,对要从线性反馈移位寄存器11输出的比特串的比特数2ms进行计算(步骤S3)。可以通过将所述导出值乘以一个值来确定要从线性反馈移位寄存器11输出的比特串的比特数2ms,该值是通过两倍或多倍于与所述线性反馈移位寄存器11的一个周期相对应的比特数(=(2^n)-1)而得到的。
接下来,基于初态值从线性反馈移位寄存器11输出具有2ms比特的比特串(步骤S4),并且根据最终得到的(resultant)比特串来生成一个新比特串(步骤S5)。该新比特串由从具有2ms个比特的每个导出值的比特串取出的比特组成,并且具有2m个比特数。
假定每一个周期的比特数m与导出值s彼此互为素数,则从每个数量s(导出值)的M序列的比特中取出的比特串是具有其它结构的线性反馈移位寄存器的M序列。所以新比特串也是M序列。
此后,基于该新比特串来改变(重新构建)线性反馈移位寄存器11的结构(步骤S6)。使用Berlekamp-Massay算法来执行线性反馈移位寄存器11的重新构建。根据Berlekamp-Massay算法,如果给定具有相应于两个或多个周期的比特数的比特串,则可以确定能够输出该比特串的等价且小型的线性反馈移位寄存器。因此,可以从具有比特数2m的新比特串中导出新的线性反馈移位寄存器的特征多项式,从而实施重新构建。
重新构建的线性反馈移位寄存器11具有特征多项式,该特征多项式具有与重新构建之前的寄存器相同的阶数,并且具有与重新构建之前的寄存器不同的连接。所以,如果为重新构建的线性反馈移位寄存器给出与重新构建之前的寄存器相同的初态值,则该重新构建的线性反馈移位寄存器具有能够输出不同于在重新构建之前的寄存器的M序列的结构。
在借助于重新构建线性反馈移位寄存器的装置12完成线性反馈移位寄存器11的重新构建之后,基于初态值从重新构建的线性反馈移位寄存器11中生成伪随机数(步骤S7)。从而,根据伪随机数生成部10来生成不同于重新构建之前的寄存器的M序列的伪随机数。
分别将从伪随机数生成部10输出的伪随机数输入到非线性转换部20,其中基于预定的非线性函数f(x)对各个伪随机数进行非线性转换(步骤S8)。从而可以给定伪随机数非线性属性,以进一步增强加密强度。
根据具有上述结构的伪随机数生成器1,可以基于初态值容易且动态地改变线性反馈移位寄存器11的结构,并且之后可以输出改变的M序列。因此,密码分析人员在重新构建之前不能够获得线性反馈移位寄存器的结构。所以,不会形成在假定线性反馈移位寄存器的结构已知的情况下,所形成的一种已知的密码分析法。结果,可以获得高的加密强度,并且可以保持信息的机密性。
在上述实施例中,尽管作为例子说明了非线性组合器型伪随机数生成器1,但是本发明没有必要限制到非线性组合器类型。可以使用任何利用线性反馈移位寄存器的伪随机数生成器,例如在分组(block)密码***中使用的伪随机数生成器。
此外,在步骤S6中,代替基于新比特串对线性反馈移位寄存器的重新构造,生成具有能够输出新比特串的结构的第二线性反馈移位寄存器,然后在步骤S7中,可以基于初态值从第二线性反馈移位寄存器中生成伪随机数。从而可以将线性反馈移位寄存器划分为两个以增强机密性。此外,可以通过软件或者硬件来构造第一实施例的的伪随机数生成器1。
(第二实施例)
接下来,将参考附图来说明本发明的第二实施例。
图4是示意性地说明根据本发明第二实施例的伪随机数生成器1的功能的视图。该实施例的伪随机数生成器1是通过在计算机硬件上运行伪随机数程序而形成的(materiarized)非线性组合器型伪随机数生成器1。在该实施例中,仅就在加密设备中使用而言来说明生成器(参见背景技术),而忽略就在解密设备中使用而言的说明,因为这种说明类似于在加密设备中的说明。
如图4所示,伪随机数生成器1具有随机数比特串输出部50、随机数比特串放大部60和非线性转换部70。随机数比特串输出部50具有α(数量)个用于选择性地输出所使用的随机数比特串51的装置。用于选择性地输出所使用的随机数比特串511到51α的装置基于具有Lk个比特的密钥,来连续地输出具有Ni个比特的选择性使用的随机数比特串,该Lk个比特由用户给出,并且例如包括在线性反馈移位寄存器中。
通过被给出的Ni个比特的选择性使用的随机数比特串来构造随机数比特串放大部60,以输出具有No个比特的被放大的随机数比特串,该No个比特是比Ni个比特更大的比特数量,该随机数比特串放大部60进一步具有随机数表61和用于处理异或等价(par)操作的装置63。
根据α×β(下文中仅描述“αβ”)个存储了(2^Ni)个随机比特串的随机数表62来构建随机数表部61。如图4所示,每个用于输出选择性使用的随机数比特串的装置51都提供β个随机数表62。图5是用于说明伪随机数表构造的示意图。如图5所示,每个随机数表62具有给出了0到(2^Ni)-1索引号的(2^Ni)个索引部Ri,以及用于存储比特串的部Ro,该部Ro能够存储上述被放大的随机数比特串,而且相应于各个索引号来提供比特串。
此外以下面的方式来构造随机数表。将相应的索引部Ri的索引号选为选择性使用的随机数比特串的自变量,该选择性使用的随机数比特串是从用于输出随机数比特串输出部50的选择性使用的随机数比特串的装置51中选择的,并且从用于存储相应于索引号的比特串的部Ro中选择No个比特的放大随机数比特串。
构建用于处理异或等价操作的装置63,以使得就每个用于选择性地输出所使用的随机数比特串的装置51来说,通过参考随机比特数表621到62αβ而从中提取的αβ个放大随机数比特串都经历异或运算处理,并且将最终得到的α个放大随机数比特串输出到非线性转换部80。所以,本质上不将从随机数表621到62αβ读取的放大随机数比特串输出到非线性转换部80,而本质上阻止加密强度依赖于放大随机数比特串,同时进一步增加强度。
图6是说明用于构建随机数比特串放大部60内部的元件的概念图。如图6所示,随机数比特串放大部60具有用于将放大随机数比特串选为其内部机构(mechanism)的装置64。这样来构建用于选择放大随机数比特串的装置64,即通过参考随机数表621到62αβ,从相应于具有与自变量相同值的索引号的比特存储部Ro中选择放大随机数比特串,其中将从用于选择性输出所使用的随机数比特串的装置511到51α输出的、选择性使用的随机数比特串用作自变量。
此外,随机数比特串放大部60具有用于初始设置随机数表、以执行随机数表61的初始设置的装置65;以及用于生成放大随机数比特串的装置66,以便借助于用于初始设置随机数表的装置65来生成在随机数表部61中设置的放大随机数比特串。
在用于初始设置随机数表的装置65中,每No比特对通过用于生成放大随机数比特串的装置66生成的随机数比特串进行划分,并且将其存储在随机数表621到62αβ的所有随机数比特串存储部Ro中。在该实施例中,按顺序来存储随机数表621到随机数表62αβ,该随机数表621相应于选择性地输出所使用的随机数比特串的装置511,而随机数表62αβ相应于选择性地输出所使用的随机数比特串的装置51α
用于生成放大随机数比特串的装置66基于密钥K来输出随机数比特串。在该实施例中,使用RC4Syppetric Streap密码(可以从RSA数据安全公司(Data Security Inc.)得到)。然而,可以使用任何能够以高速输出伪随机数比特串的诸如线性反馈移位寄存器这样的装置(主要是流密码)。
如图6所示,随机数比特串放大部60具有用于替换随机数表的装置67,这些随机数表67彼此具有替换所述随机数表621到62αβ的顺序的功能;以及用于生成替换随机数的装置68,其中当用于替换随机数表的装置67执行替换随机数表顺序的处理时,生成用于替换所使用的顺序的随机数。
用于替换随机数表的装置67给出由用于生成替换随机数的装置68生成的替换随机数,作为在生成顺序中的随机数表621到62αβ的表编号,并且基于所给定的随机数来替换所述随机数表的顺序,然后在每个表中改变在随机数表61内的放大随机数比特串的顺序。
以下面的方式来构造用于生成替换随机数的装置68。用于生成替换随机数的装置68基于可选的密钥K0来执行生成用于替换随机数表的随机数的处理,并且每次从随机数比特串输出部50输入α个具有Ni个比特的随机数比特串,就生成αβ个用于替换的随机数。在该实施例中,可选密钥K0使用相应于Lk个比特的值,该Lk个比特是从放大随机数比特串中取出的,通过给用于生成放大随机数比特串的装置66一个密钥来输出放大随机数比特串。然而,密钥没有被限制到上面的装置,例如可以通过其它装置来生成或由用户输入密钥。
非线性转换部80具有一阶非相关非线性函数f(x),该函数的每一个输出具有α个输入。这样来构造非线性转换部80,即非线性地转换从随机数比特串放大部60输出的α个比特串,并且作为伪随机数Z来输出具有No比特的一个随机数比特串。
从128比特、256比特、512比特和1024比特中选择密钥K,在对α个用于输出选择性使用的随机数比特串的装置51,β个相应于各个用于输出选择性使用的随机数比特串的装置51的随机数表,以及所述选择性使用的随机数比特串的Ni个比特彼此进行相乘,并且最终得到的值等于密钥K的比特数Lk的条件下,对他们进行选择。
接下来,参考图7来说明用于生成伪随机数的方法。图7是根据本发明实施例来说明用于生成伪随机数的方法的流程图。
首先,当随机数比特串输出部50从用户接收具有Li个比特的可选密钥K的输入时(步骤S11),该输出部50使用密钥K来建立用于输出选择性使用的随机数比特串的装置51的初态值(步骤S12)。例如,假设根据线性反馈移位寄存器来构造用于输出选择性使用的随机数比特串的装置51,就基于所述密钥来建立在各个移位寄存器中存储的初态值。
在建立了用于输出选择性使用的随机数比特串的装置51的初态值后,借助于用于初始设置随机数表的装置65来执行随机数表61的初始设置(步骤S13)。在这种情况下,首先为用于生成放大随机数比特串的装置66提供所述密钥,以便以高速生成随机比特串。借助于用于初始设置随机数表的装置65,以每No比特对从用于生成放大随机数比特串的装置66生成的比特串进行划分,并且按照顺序将其存储到所有Ro部中,该Ro部用于存储各个随机数表621到62αβ的随机数比特串。因此,给定密钥,借此密钥来预先执行随机数表61的初始建立。
通过上述步骤S11到S13来执行用于输出选择性使用的随机数比特串的装置51和随机数表61的初态值的建立,下文中它们处于等待状态中。在将明文输入到起触发器作用的加密设备(参考“背景技术”)时,开始随机数比特串的放大处理(步骤S14到S16)。首先,通过用于输出选择性使用的随机数比特串的装置51来输出分别具有Ni个比特的β个所述选择性使用的随机数比特串,以便存储到随机数比特串放大部分60中(步骤S14)。
接下来,借助于用于替换随机数表的顺序的装置67来替换随机数表621到62αβ的顺序(步骤S15)。在这种情况下,通过用于替换随机数的装置68来生成用于替换的αβ个随机数,并且将这些随机数提供给每个随机数表621到62αβ,作为替换所述随机数表顺序的表编号。以生成顺序将表编号从随机数表621提供到随机数表62αβ
因此,以乱序将表编号1到αβ提供给随机数表621到62αβ。各个随机数表基于给定的表编号来替换在随机数表61中的放大随机数比特串的顺序。从而,各个随机数表根据诸如升序或降序这样的预定规则,来替换在随机数表61的用于存储随机数比特串的Ro部中放大随机数比特串。
在完成对随机数表621到62αβ的顺序的替换处理之后,借助于用于选择放大随机数比特串的装置64、从各个随机数表621到62αβ中选择相应的放大随机数比特串,从而执行用于选择放大随机数比特串的处理(步骤S16)。用于选择放大随机数比特串的装置64,通过使用在随机数比特串放大部60中存储的各个随机数比特串来参考相应的随机数表621到62αβ,并且从各个随机数表621到62αβ中选择相应的放大随机数比特串。
在完成选择放大随机数比特串的处理之后,借助于用于处理异或运算的装置63来执行异或运算处理(步骤S17)。对于各个用于输出选择性使用的随机数比特串的装置51来说,用于处理异或运算的装置63使得从各个随机数表621到62αβ中读取的αβ(数量)个放大随机数比特串经历异或运算处理。因此,生成了具有No比特的α(数量)个新的放大随机数比特串。
此外,将这些新的放大随机数比特串输出到非线性转换部80,以执行非线性转换(步骤S18)。非线性转换部80对αβ个具有No比特的放大随机数比特串进行非线性转换,以作为其中一个具有No比特的放大随机数比特串的伪随机数来输出。
当从非线性转换部80输出伪随机数时,再次重复步骤S14到步骤S18的过程。因此,根据从明文到密文进行转换的要求生成伪随机数。
根据伪随机数生成器1,通过参考随机数表,基于从用于输出选择性使用的随机数比特串的装置51输出的、具有No比特的选择性使用的随机数比特串,将具有比特数大于Ni比特的No比特的放大随机数比特串提供给非线性转换部80。因此,可以增强与非线性转换部80相比较的上游侧的吞吐量(迄今为止其构成了障碍),并且使其接近于非线性转换部80的吞吐量,这会带来整个伪随机数生成器1的吞吐量的增加。
响应从用于输出选择性使用的随机数比特串的装置51输入的选择性使用的随机数比特串,执行用于替换随机数顺序的处理。因此,可以增强随机数的加密强度。尤其是,根据本发明的该实施例,可以将随机数表621到62αβ的组合数转换为αβ阶乘(下文中由“!”来表示“阶乘”)。因此,假定随机数表61已知时,有效的处理(attack)要求计算(2^(αβ×Ni))×(αβ)!。该计算量大于搜索整个Lk个比特密钥的计算量,所以给定了有效增强的加密强度。
此外,在上面提到的随机数生成器1中,通过参考多个(β)随机数表,使用从用于输出选择性使用的随机数比特串的装置51输出的随机数比特串,从各个随机数表中选择的随机数比特串经历异或处理。因此,在实际上要将从随机数表部61读取的放大随机数比特串输出到非线性转换部80的情况下,本质上要防止加密强度由用于生成放大随机数比特串的装置66来确定,从而进一步增强加密强度。
接下来将说明根据本发明实施例的一个例子。图8是示意性地示出可作为例子的伪随机数生成器1的概念图。图9是示意性地示出了随机数表61的概念图。在该示例中,以下面的方式来设置各个设置值(参数)。
用于输出选择性使用的随机数比特串的装置数量:8(α=8)
相应于各个用于输出选择性使用的随机数比特串的装置的随机数表的数量:
2(β=2)
随机数表索引部的长度:2^8(Ni=8)
随机数表的随机数比特串部的长度:2^16(No=16)
密钥长度:128比特(Lk=128)
非线性转换部80的非线性函数f(x):
f(x)=x1+x5
+x1x2+x1x3+x2x3+x2x5+x2x6+x3x6
+x1x7+x2x7+x4x8+x5x8
+x1x2x3+x1x2x4+x1x3x4+x2x3x4+x1x2x5
+x2x4x5+x3x4x5+x1x2x6+x2x3x6+x1x4x6
+x4x5x6+x1x2x7+x2x3x7+x1x4x7+x1x5x7
+x2x5x7+x4x5x7+x1x6x7+x4x6x7+x5x6x7
+x1x2x8+x1x3x8+x2x3x8+x3x4x8+x1x5x8
+x3x5x8+x4x5x8+x3x6x8+x4x6x8+x5x6x8
+x1x7x8+x2x7x8
+x1x2x4x5+x1x3x4x5+x2x3x4x5+x1x2x4x6
+x1x3x4x6+x2x3x4x6+x1x4x5x6+x2x4x5x6
+x3x4x5x6+x1x2x3x7+x1x2x4x7+x2x3x4x7
+x1x2x5x7+x1x4x5x7+x2x4x5x7+x1x2x6x7
+x1x3x6x7+x2x3x6x7+x1x4x6x7+x2x4x6x7
+x3x4x6x7+x1x5x6x7+x2x5x6x7+x3x5x6x7
+x1x2x4x8+x1x2x5x8+x1x3x5x8+x1x4x5x8
+x1x2x6x8+x2x3x6x8+x1x4x6x8+x2x5x6x8
+x3x5x6x8+x1x3x7x8+x1x4x7x8+x2x4x7x8
+x3x4x7x8+x2x5x7x8
+x1x2x3x4x5+x1x2x3x4x6+x1x3x4x5x6
+x2x3x4x5x6+x1x2x4x5x7+x2x3x4x5x7
+x1x2x4x6x7+x1x3x4x6x7+x1x4x5x6x7
+x2x4x5x6x7+x1x2x3x4x8+x1x2x3x5x8
+x1x2x4x5x8+x1x2x3x6x8+x1x2x4x6x8
+x1x3x4x6x8+x2x3x5x6x8+x1x4x5x6x8
+x2x4x5x6x8+x1x2x3x7x8+x1x3x4x7x8
+x1x3x5x7x8+x2x3x5x7x8+x3x4x5x7x8
+x1x3x6x7x8+x3x4x6x7x8
+x1x2x3x4x5x8+x1x2x3x4x6x8
+x1x3x4x5x6x8+x2x3x4x5x6x8
+x1x2x3x4x7x8+x1x2x3x5x7x8
+x1x2x4x5x7x8+x1x3x4x5x7x8
+x1x3x4x6x7x8+x2x3x4x6x7x8
+x1x2x5x6x7x8+x1x3x5x6x7x8
在该实例中,用于输出选择性使用的随机数比特串的装置51基于用户给出的密钥来重新构建线性反馈移位寄存器53,并且使用重新构建的线性反馈移位寄存器53′来输出随机数比特串。
首先来说明用于输出选择性使用的随机数比特串的装置51的结构和操作。如图8所示,用于输出选择性使用的随机数比特串的装置51具有用于设置初态值的装置12,线性反馈移位寄存器53和用于重新构建线性反馈移位寄存器的装置14。
用于设置初态值的装置12基于用户给出的密钥来建立初态值,将密钥K转换为比特串,并且将其作为初态值分配给线性反馈移位寄存器53的移位寄存器的内部。在该实施例中,将RC4 Syppetric Streap密码(可以从RSA数据安全公司(Data Security Inc.)得到)用作设置初态值的装置12,其与用于生成放大随机数比特串的装置66共同使用。
线性反馈移位寄存器53具有n个存储1比特信息的移位寄存器和一个异或运算电路,类似于在“背景技术”中说明的。此外,在该实施例中,预先将寄存器53设置为能够输出每个周期具有(2^n)-1个比特数m的比特串的结构,将其称为M序列。
图11示出了根据本发明实施例的线性反馈移位寄存器53的原多项式的例子。该原多项式是预先设置用于输出M序列的特征多项式,在特征多项式第一项中的指数部分表示线性反馈移位寄存器的数量,而第二或者更多项中的指数部分表示与异或运算电路的连接位置。例如,如图11所示,第一行中的线性反馈移位寄存器(LFSR1)53具有129个移位寄存器,而且移位寄存器通过反馈分接头将第八十,第八和第一行连接到所述异或运算电路。在该实施例中,将移位寄存器的所有数量n都置为素数。
用于重新构建线性反馈移位寄存器的装置14具有通过借助于密钥K来动态地改变所述线性反馈移位寄存器53的结构,来对其进行重新构建的功能。例如,当M序列的每一个周期的比特数(=(2^n)-1)与导出值互为素数(即所述比特数和导出值除了1之外没有公约数)时,通过对各个数s进行抽样而获得的比特串,即其输出序列是M序列的比特串的比特构成了具有其它结构的线性反馈移位寄存器的M序列。此外,可以通过使用线性反馈移位寄存器的特征多项式来执行所述线性反馈移位寄存器53的重新构建,其中,可以借助于Berlekamp-Massay算法、根据具有至少两个周期的比特数的比特串来确定能够输出比特串且具有等价且小型结构的线性反馈移位寄存器的特征多项式。
在用于重新构建线性反馈移位寄存器的装置14中,根据初态值设置部12给出的初态值来计算导出值s,所述导出值s乘以一个值2m,该值2m是通过乘以相应于所述线性反馈移位寄存器53的一个周期的比特数m(=(2^n)-1)而获得的,并且计算要从线性反馈移位寄存器53输出的比特串的比特数2ms。
接下来,基于初态值从线性反馈移位寄存器53输出2ms(数量)个比特串,并且从每个导出值s的2ms个比特串中取出一个比特串,从而生成新比特串,然后借助于Berlekamp-Massay算法、通过使用所述新比特串来改变线性反馈移位寄存器11的结构。
从线性反馈移位寄存器53输出的比特数不小于2ms,因为不小于2ms的任何比特数都能够确定等价且小型的线性反馈移位寄存器。
在Berlekamp-Massay算法中,获得了具有两倍或多倍于线性反馈移位寄存器53的移位寄存器的数量n(线性复杂度)的比特数的比特串,从而可以获得能够输出所述比特串的等价且小型的线性反馈移位寄存器。例如,在“Introduction to Encryption Logic”(第二版,KYORITSUSYUPPAN,E.Okamoto,2002年4月10日)中全面描述了Berlekamp-Massay算法。
图12是用于说明线性反馈移位寄存器53的重新构建处理过程的流程图。首先,通过用于设置初态值的装置12来设置初态值(步骤41)。基于由用户给出的Lk比特密钥K来设置初态值。当通过用于设置初态值的装置12中的密钥来设置初态值时,将初态值设置到线性反馈移位寄存器53的移位寄存器内。
接下来,根据预定的运算处理来计算导出值s,该导出值s与线性反馈移位寄存器53的每一个周期的比特数m互为素数(步骤S42)。通过借助于诸如消息摘要5这样的散列函数处理所述初态值以确定其散列值,同时选择最接近于该散列值的一个素数来确定所述导出值s。只要可以根据初态值来确定导出值s,以及该导出值与比特数m互为素数,就可以通过任何方法来确定导出值s。然而,为了保持信息的机密性,预定的运算处理在某种程度(特性)上应当是令人满意的。
在计算了导出值s之后,对要从线性反馈移位寄存器53输出的比特串的比特数2ms进行计算(步骤S43)。可以通过将所述导出值乘以一个值来确定要从线性反馈移位寄存器53输出的比特串的比特数2ms,该值是通过两倍或多倍于所述线性反馈移位寄存器53的一个周期的比特数(=(2^n)-1)而得到的。
接下来,基于初态值从线性反馈移位寄存器53输出具有2ms比特的比特串(步骤S44),并且根据最终得到的比特串来生成一个新比特串(步骤S45)。该新比特串由从具有2ms个比特的每个导出值的比特串取出的比特组成,并且具有2m个比特数。
假定每一个周期的比特串m与导出值s互为素数,则从每个数量s(导出值)的M序列的比特串中取出的比特串是具有其它结构的线性反馈移位寄存器的M序列。所以新比特串也是M序列。
此后,基于该新比特串来改变(重新构建)线性反馈移位寄存器53的结构(步骤S46)。使用Berlekamp-Massay算法来执行线性反馈移位寄存器53的重新构建。根据Berlekamp-Massay算法,如果给定具有相应于两个或多个周期的比特数的比特串,则可以获得能够输出该比特串的等价且小型的线性反馈移位寄存器53。因此,可以从具有比特数2m的新比特串中导出新的线性反馈移位寄存器53的特征多项式,从而实施重新构建。
重新构建的线性反馈移位寄存器53′具有特征多项式,该特征多项式具有与重新构建之前的寄存器相同的阶数,并且具有与重新构建之前的寄存器不同的连接。所以,如果为重新构建的线性反馈移位寄存器给出与重新构建之前的寄存器相同的初态值,则该重新构建的线性反馈移位寄存器具有能够输出不同于在重新构建之前的寄存器的M序列的结构。
在借助于重新构建线性反馈移位寄存器的装置14完成线性反馈移位寄存器53的重新构建之后,基于初态值从重新构建的线性反馈移位寄存器53′中生成用于选择的随机数比特串(步骤S47)。从而,根据随机数生成部50来生成不同于重新构建之前的寄存器的、用于选择M序列的随机数比特串。
在上面提到的步骤S46中,代替基于新比特串对线性反馈移位寄存器53进行的重新构建,而是生成具有能够输出新比特串的结构的第二线性反馈移位寄存器,而且在步骤S47中,可以基于初态值通过所述第二线性反馈移位寄存器来生成随机数比特串。从而可以将所述线性反馈移位寄存器划分为2个,这样就可以增加信息的机密性。
在具有上述结构的伪随机数生成器51中,可以基于初态值容易且动态地改变线性反馈移位寄存器53的结构,还可以根据改变的结构来输出M序列。因此,密码分析人员在重新构建之前不能够获得线性反馈移位寄存器的结构。所以,不会形成在假定线性反馈移位寄存器的结构已知的情况下,所形成的一种已知的密码分析法。结果,可以获得高的加密强度,并且可以保持信息的机密性。
接下来说明通过使用伪随机数生成器1来生成伪随机数的方法,该伪随机数生成器1具有用于输出选择性使用的随机数比特串的装置51。图10是根据本发明实施例来说明生成伪随机数的方法的流程图。
首先,当随机数比特串输出部50从用户接收具有128比特(Lk=128比特)的可选密钥K的输入时,基于所述密钥K来设置重新构建之前的线性反馈移位寄存器53的初态值(步骤S21)。
然后,基于所述初态值来重新构建线性反馈移位寄存器53(步骤S22),同时建立重新构建的线性反馈移位寄存器53′的初态值(步骤S23)。对所有用于输出随机数比特串111到118的装置来说都要执行初态值的建立。
接下来,随机数比特串输出部60执行随机数表61的初始建立(步骤S24)。在这种情况下,首先为用于生成放大随机数比特串的装置66提供密钥K,而后以高速来执行生成随机比特串的处理。在该实例中,因为用于生成放大随机数比特串的装置66、与用于输出选择性使用的随机数比特串的装置51的设置初态值的装置12一同使用,所以如上所述,实际上将从线性反馈移位寄存器53输出的随机比特串用作初态值,而不需要单独输出比特串。
用于初始设置随机数表的装置65将所述随机比特串每16个比特(No=16)进行划分,并且将所划分的比特串按序存储到每个随机数表621到6216的所有随机数比特串存储部Ro中。
在上述初始建立步骤(步骤21到24)之后,处理处于等待状态中。在完成将明文输入到起触发器作用的加密设备(参考“背景技术”)时,变换(transfer)生成伪随机数的处理(步骤S25到S27)。
这里,各个用于输出选择性使用的随机数比特串的装置511到588输出选择性使用的随机数比特串,并且将其存储在随机数比特串放大部60的缓冲器中。更加具体的是,从各个用于输出选择性使用的随机数比特串的装置511到588输出8比特的选择性使用的随机数比特串(步骤S27)。对于各个输出选择性使用的随机数比特串的装置1来说,所述选择性使用的随机数比特串的数量为2(β=2)(步骤S26中为Yes)。如果数量与各个用于输出选择性使用的随机数比特串的装置511到588相一致(步骤S25中为Yes),则鉴于已经获得了所需的选择性使用的随机数,所以该处理进入到随后的随机数比特串放大阶段。因此,通过上述处理过程将16个具有8比特的选择性使用的随机数比特串存储在所述缓冲器中。
接下来,基于密钥K0、借助于生成用于替换的随机数的装置68来生成16个用于替换的随机数(步骤S28),并且执行用于替换随机数表顺序的处理(步骤S29)。在这种情况下,将16个随机数作为表编号提供给随机数表621到6216。因此,不按顺序为随机数表621到6216提供表编号1到16。此外,基于给定的表编号来替换随机数表621到6216的顺序。这里,执行升序替换,使得以1到16的顺序将表编号1到16安排给用于输出选择性使用的随机数比特串的装置511到58n。从而每个随机数表都可以随机地替换在随机数表61内的放大随机数比特串的顺序。
接下来,执行从各个随机数表621到6216选择相应放大随机数比特串的处理(步骤S30到S32)。例如,该处理参考通过使用第一选择性使用的随机数比特串的随机数表621,所述第一选择性使用的随机数比特串从选择性使用的随机数比特串111中输出并且作为自变量存储在所述缓冲器中(步骤S32)。然后,选择具有与所述自变量相同的值的索引号,并且选择在随机数比特串存储部Ro中存储的、相应于所述索引号的随机数比特串。
例如,当存储在相应于随机数表621的随机数比特串存储部Ro中的、从用于输出选择性使用的随机数比特串的装置511输出的随机数比特串为“00000011”时,将该“00000011”认为是八位二进制数,并且将其转换为十进制数值以获得自变量“3”。通过参考随机数表621、使用该自变量“3”来选择存储在随机数比特串存储部Ro中的、具有索引号(索引部Ro的)3的放大随机数比特串“010110101101110110”。
然后,当分别从随机数表621和随机数表622中选择放大随机数比特串(步骤S31中的Yes)时,这两个放大随机数比特串经历异或运算处理(步骤S33),以生成具有16个比特的新的放大随机数比特串。
接下来,在对随机数表623到6216执行如上所述的相同处理(步骤S30中的Yes)之后,生成总共8个新的放大随机数比特串,将它们输出到非线性转换部80并且传送到非线性转换阶段。
在非线性转换部80中,从随机数比特串放大部60输入的具有No比特的8个新的放大随机数比特串,通过非线性函数f(x)引起比特串的非线性转换(步骤S34),以给出具有16个比特的一个随机数比特串。然后,重复执行步骤S25到S34的处理,从而获得所需数量的伪随机数。
在该实例中,执行有关是否适当地保持高速特性和随机性的实验。结果,处理速度增加到传统处理速度的180倍,同时获得了适当的随机性。下面将描述该实验和结果。
在该实验中使用的计算机是:具有1.7GHz CPU和256MB内存的Pentium(注册商标)4。各个设置值都与上述实例相同。在用于生成替换随机数比特串的装置28中使用的密钥K0是由十六进制数表示的(fle2d34b5a69788796a5b4c3d2e1f10)16,并且通过固定该值来进行实验。
图13是示出了测量吞吐量所获结果的表格。表格中的常规类型是图17中示出的非线性组合器型伪随机数生成器,其由8个线性反馈移位寄存器(LFSR)53和一个非线性转换部80组成。
根据实验结果,实际上从线性反馈移位寄存器53的平均吞吐量到非线性转换部80的平均吞吐量来增加伪随机数生成器1的平均吞吐量,以及所增加的吞吐量大约是常规类型吞吐量的170倍(即116.4Mbps/sec÷0.680Mbps/sec=171.16-----)。因此,吞吐量结果示出了使用随机数表62来增加伪随机数生成器1的处理速度是有效的。
在该实例中使用的伪随机数生成器1的吞吐量由下面的公式来表示:
1 T = N I N o ( n T 1 + 1 T 2 + 1 T 3 ) + nm T 4 + 1 T 5 - - - ( 1 )
在公式(1)中,T1表示一个线性反馈移位寄存器53的平均吞吐量,T2表示RC4(用于生成放大随机数比特串的装置66)的平均吞吐量,T3表示通过用于替换随机数表的装置67对替换随机数表进行处理的平均吞吐量,T4表示一个随机数表的平均吞吐量,以及T5表示非线性转换部80的平均吞吐量。假设可以从公式(1)中忽略随机数表62的计算量,则就减少的比率(No比特/Ni比特)来说,伪随机数生成器1的吞吐量可能接近于非线性转换部80的吞吐量,从而可以进一步增强所述处理。
与此相反,使用用于验证伪随机数的NIST(通用名)工具对伪随机数的加密强度进行验证。该NIST是用于对来自伪随机数生成器的实际随机数和输出数据执行随机性测试的一种工具,而且还是一种包括16种测试的统计软件包。在“http://crsc.nist.gov/rug”中详细地说明了NIST。图14是示出了在验证中使用的NIST参数的表格。当通过执行所述各种测试而输出的P值满足条件0<p值<1时,就认为通过了相应的测试。对根据该实例的伪随机数生成器1的伪随机数进行验证,从而确认所有的测试都已通过。图15是示出了该实验中的NIST验证结果的图形。
然而,对该实例中示出的建立(设置)值进行设置,以确认密码的安全性,从而可以建立不同于所述建立值的任何值。此外,本发明不仅限于上述实施例,可以采用各种改变和组合,只要其不脱离本发明的范围即可。
5.本发明的效果
如上所述,当M序列的每一个周期的比特数(=(2^n)-1)与导出值互为素数时,通过对各个数s进行抽样而获得的比特串,即其输出序列是M序列的比特串的比特构成了具有其它结构的线性反馈移位寄存器的M序列。此外,可以借助于Berlekamp-Massay算法、根据相应于至少两个周期的比特来确定线性反馈移位寄存器,从而可以基于初态值来动态地重新构建所述线性反馈移位寄存器,并且可以从该重新构建的线性反馈移位寄存器输出M序列的比特串。
因此,密码分析人员在重新构建之前不能够基于从随机数生成器输出的伪随机数来获得线性反馈移位寄存器的结构。所以,已知的密码分析不能对初态值和密钥进行密码分析。结果,可以获得高的加密强度,并且可以保持信息的机密性。
此外,根据本发明的另一个实施例,由于基于密钥来输出具有预定比特数的选择性使用的随机数比特串,以及通过参考随机数表、使用所述选择性使用的随机数比特串,从位于随机数表中的多个放大随机数比特串中选择相应的放大随机数比特串,所以可以基于具有少量比特的选择性使用的随机数比特串来获得具有较多比特数的放大随机数比特串。
因此,可以极大地增加输入到非线性转换装置中的比特串的比特数。所以,可以增加用于输出随机数比特串的装置的吞吐量(迄今为止其构成了障碍),该吞吐量在与非线性转换装置相比较的上游侧提供,并且使其接近于非线性转换装置的吞吐量,这会带来整个伪随机数生成器的吞吐量的增加。
(参考标记的说明)
1伪随机数生成器
10伪随机数生成部
11线性反馈移位寄存器
12用于重新构建线性反馈移位寄存器的装置
20非线性转换部
50随机数比特串输出部
51用于输出选择性使用的随机数比特串的装置
52用于设置初态值的装置
53线性反馈移位寄存器
54用于重新构建线性反馈移位寄存器的装置
60随机数比特串放大部
61随机数表部
621到62αβ随机数表
63用于处理异或等价运算的装置
64用于选择放大随机数比特串的装置
65用于初始设置随机数表的装置
66用于生成放大随机数比特串的装置
67用于替换随机数表的顺序的装置
68用于生成替换随机数的装置
70非线性转换部

Claims (20)

1.一种用于生成伪随机数的方法,包括:
第一步骤,建立线性反馈移位寄存器的初态值,所述线性反馈移位寄存器包括n个移位电阻器并且能够输出每一个周期都具有(2^n)-1个比特的比特串;
第二步骤,借助于预定的运算处理、基于所述初态值来找到与所述第一线性反馈移位寄存器的每一个周期的比特数互为素数的导出值;
第三步骤,将所述导出值乘以一个值来计算要从所述线性反馈移位寄存器输出的比特数,该值是通过两倍或多倍于每个周期的比特数而得到的;
第四步骤,基于所述初态值从所述线性反馈移位寄存器输出相应于所计算比特数的比特串;
第五步骤,从每个导出值的输出比特串中取出一个比特,以生成新比特串;
第六步骤,重新构建所述线性反馈移位寄存器,以使得可以从所述电阻器输出新比特串;以及
第七步骤,基于所述初态值,从重新构建的所述线性反馈移位寄存器中生成伪随机数。
2.根据权利要求1所述的用于生成伪随机数的方法,其中通过散列函数对所述初态值进行处理,以确定其散列值,以便将最接近于该散列值的素数用作所述导出数。
3.根据权利要求1或2所述的用于生成伪随机数的方法,其中使用Berlekamp-Massay算法来执行线性反馈移位寄存器的重新构建。
4.根据权利要求1到3中任何一个所述的用于生成伪随机数的方法,其中进一步包括第八步骤,使在第七步骤中生成的伪随机数经历非线性转换。
5.一种随机数生成器,包括:
具有n个移位电阻器并且能够输出每一个周期都具有(2^n)-1个比特的比特串的线性反馈移位寄存器;
基于密钥来建立所述线性反馈移位寄存器初态值的装置;
借助于预定运算处理、基于所述初态值来确定导出值的装置,所述导出值与每个线性反馈移位寄存器周期的比特数互为素数;
将所述导出值乘以一个值来计算要从第一线性反馈移位寄存器输出的比特数的装置,该值是通过两倍或多倍于对应于一个周期的比特数而得到的;
基于所述初态值从所述线性反馈移位寄存器输出相应于所计算比特数的比特串的装置;
从每个导出值的输出比特串中取出一个比特以生成新比特串的装置;
重新构建所述线性反馈移位寄存器,使得可以从所述电阻器输出所述新比特串的装置;以及
基于所述初态值,从重新构建的所述线性反馈移位寄存器中生成伪随机数的装置。
6.根据权利要求5所述的伪随机数生成器,其进一步具有,用于生成第二线性反馈移位电阻器的装置,来代替用于重新构建所述线性反馈移位电阻器的装置,所述第二线性反馈移位电阻器具有能够输出新比特串的结构;以及,其中用于生成伪随机数的装置基于所述初态值从所述第二线性反馈移位电阻器生成伪随机数。
7.一种伪随机数生成器,包括:
基于密钥来输出具有预定比特数的选择性使用的随机数比特串的装置;
随机数表,其中存储有多个放大随机比特串,这些随机比特串具有大于所述选择性使用的随机数比特串的比特数的比特数。
能够通过参考所述随机数表、利用所述选择性使用的随机数比特串,从所述随机数表内的多个放大随机数比特串中选择相应放大的随机数比特串的装置,所述选择性使用的随机数比特串是从用于输出选择性使用的随机数比特串的装置中输出的;以及
借助非线性函数对所述放大随机数比特串进行非线性转换以输出伪随机数的装置,所述放大随机数比特串是通过用于选择放大随机数比特串的装置来选择的。
8.根据权利要求7所述的伪随机数生成器,进一步具有通过给定密钥来生成放大随机数比特串、将所述比特串存储到随机数表中、并且执行所述随机数表的初始设置的装置。
9.根据权利要求7或8所述的伪随机数生成器,其中:
提供多个用于输出选择性使用的随机数表的装置,
提供随机数表以便与各个用于输出选择性使用的随机数表的装置相一致,
用于生成放大随机数比特串的装置通过参考所述随机数表、利用选择性使用的随机数比特串从所述随机数表中选择相应的放大随机数比特串,所述随机数表分别相应于各个用于输出选择性使用的随机数比特串的装置,所述选择性使用的随机数比特串是从各个用于输出选择性使用的随机数比特串的装置输出的,以及
用于非线性转换的装置通过借助于非线性函数、利用各个用于生成放大随机比特串的装置对从各个随机数表选择的放大随机数比特串进行非线性转换来输出伪随机数。
10.根据权利要求9所述的伪随机数生成器,其中相应于各个用于输出选择性使用的随机数比特串的装置来提供多个随机数表,以及
所述伪随机数生成器进一步具有,用于使各个放大随机数比特串在各个用于输出选择性使用的随机数比特串的、并将其输出到非线性转换装置的装置上都经历异或运算的装置,所述放大随机数比特串是通过用于选择放大随机数比特串的装置从各个随机数表中选择的。
11.根据权利要求9或10所述的伪随机数生成器,其进一步具有以预定时间来彼此替换随机数表的装置。
12.根据权利要求11所述的伪随机数生成器,其中,每当用于输出选择性使用的随机数比特串的装置输出参考各个随机数表所需的、选择性使用的随机数比特串时,用于替换随机数表的装置都具有彼此替换随机数表的功能。
13.根据权利要求11所述的伪随机数生成器,其中用于替换随机数表的装置具有生成用于替换随机数表的随机数的功能,所述随机数表具有与各个随机数的编号相同的编号,将用于替换随机数表的随机数作为随机数表的表编号提供给各个随机数表,并且根据基于所述表编号预定的规则来替换所述随机数表的顺序。
14.一种用于生成伪随机数的计算机可执行程序,包括:
基于密钥来输出具有预定比特数的选择性使用的随机数比特串的装置;
随机数表,其中存储了多个放大随机数比特串,所述多个放大随机数比特串具有大于所述选择性使用的随机数比特串的比特数的比特数;
能够通过参考所述随机数表、利用所述选择性使用的随机数比特串,从所述随机数表内的多个放大随机数比特串中选择相应放大的随机数比特串的装置,所述选择性使用的随机数比特串是从用于输出选择性使用的随机数比特串的装置中输出的;以及
借助非线性函数对所述放大随机数比特串进行非线性转换以输出伪随机数的装置,所述放大随机数比特串是通过用于选择放大随机数比特串的装置来选择的。
15.根据权利要求14所述的计算机可执行程序,进一步包括,用于通过给定密钥来生成放大随机数比特串、将所述比特串存储到随机数表中、并且执行随机数表的初始设置的装置。
16.根据权利要求14或15所述的计算机可执行程序,其中:
提供多个用于输出选择性使用的随机数表的装置,
提供随机数表以便与各个用于输出选择性使用的随机数表的装置相一致,
用于生成放大随机数比特串的装置通过参考所述随机数表、利用选择性使用的随机数表、从所述各个随机数表中选择相应的放大随机数比特串,所述随机数表相应于各个用于输出选择性使用的随机数比特串的装置,所述选择性使用的随机数表是从各个用于输出选择性使用的随机数比特串的装置中输出的,以及
用于非线性转换的装置通过利用各个用于生成放大随机数比特串的装置,对从各个随机数表选择的放大随机数比特串进行非线性转换来输出伪随机数。
17.根据权利要求16所述的计算机可执行程序,其中:每个用于输出选择性使用的随机数比特串的装置都提供多个随机数表,以及
所述程序进一步具有,用于使各个放大随机数比特串在各个用于输出选择性使用的随机数比特串的、并将其输出到非线性转换装置的装置上都经历异或运算的装置,所述放大随机数比特串是通过用于选择放大随机数比特串的装置从各个随机数表中选择的。
18.根据权利要求16或17所述的计算机可执行程序,其进一步具有以预定时间来彼此替换随机数表的装置。
19.根据权利要求18所述的计算机可执行程序,其中每当用于输出选择性使用的随机数比特串的装置输出参考各个随机数表所需的、选择性使用的随机数比特串时,用于替换随机数表的装置都具有彼此替换随机数表的功能。
20.根据权利要求18或19所述的计算机可执行程序,其中,用于替换随机数表的装置具有生成用于替换随机数表的随机数的功能,所述随机数表具有与各个随机数的编号相同的编号,将用于替换随机数表的随机数作为随机数表的表编号提供给各个随机数表,并且根据基于所述表编号预定的规则来替换所述随机数表的顺序。
CNA038255723A 2002-10-07 2003-07-10 用于生成伪随机数的方法及伪随机数生成器 Pending CN1714377A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002294184 2002-10-07
JP294184/2002 2002-10-07

Publications (1)

Publication Number Publication Date
CN1714377A true CN1714377A (zh) 2005-12-28

Family

ID=32064030

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA038255723A Pending CN1714377A (zh) 2002-10-07 2003-07-10 用于生成伪随机数的方法及伪随机数生成器

Country Status (5)

Country Link
US (1) US20060039558A1 (zh)
JP (1) JP4052480B2 (zh)
CN (1) CN1714377A (zh)
AU (1) AU2003252595A1 (zh)
WO (1) WO2004032098A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101137004B (zh) * 2006-08-30 2010-10-13 三星电子株式会社 图像信号处理设备及其方法
WO2013013480A1 (zh) * 2011-07-27 2013-01-31 中国科学院计算机网络信息中心 伪随机数生成装置和方法
CN113504894A (zh) * 2021-09-09 2021-10-15 华控清交信息科技(北京)有限公司 一种随机数产生器、生成伪随机数的方法和一种芯片
CN115714644A (zh) * 2022-10-31 2023-02-24 北京海泰方圆科技股份有限公司 一种随机数生成方法及装置

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100454236C (zh) * 2004-05-13 2009-01-21 华为技术有限公司 随机数发生装置和软件测试的***及方法
KR20060042791A (ko) * 2004-11-10 2006-05-15 한국전자통신연구원 키 스트림 생성 방법 및 장치
US8443020B2 (en) * 2005-09-09 2013-05-14 Mitsubishi Electric Corporation Pseudo random number generator
WO2008010441A1 (fr) * 2006-07-21 2008-01-24 Nec Corporation dispositif de cryptage, programme et procédé
KR101070628B1 (ko) * 2007-05-21 2011-10-07 삼성전자주식회사 영상처리장치 및 그 제어방법
KR100931507B1 (ko) * 2007-12-11 2009-12-11 한국전자통신연구원 Rfid 시스템에서 대칭키 암호화 기반 통신 데이터 보호방법과 이를 수행하기 위한 리더 및 태그
JP4986926B2 (ja) * 2008-05-09 2012-07-25 三菱電機株式会社 暗号化通信システム
JP5188414B2 (ja) * 2009-02-09 2013-04-24 三菱電機株式会社 情報処理装置及び情報処理方法及びプログラム
KR101685173B1 (ko) * 2009-07-13 2016-12-12 주식회사 팬택 무선통신 시스템에서의 시퀀스 생성 방법 및 그 장치
US8949493B1 (en) 2010-07-30 2015-02-03 Altera Corporation Configurable multi-lane scrambler for flexible protocol support
CN102752110B (zh) * 2011-04-19 2015-04-15 中国银行股份有限公司 一种动态密码生成方法及***
JP5882602B2 (ja) * 2011-05-20 2016-03-09 キヤノン株式会社 画像形成装置、画像形成装置の制御方法、及びプログラム
GB2491896A (en) * 2011-06-17 2012-12-19 Univ Bruxelles Secret key generation
US8767954B2 (en) * 2011-12-01 2014-07-01 Colloid, Llc Methods and systems for deriving a cryptographic framework
US20140112469A1 (en) * 2012-10-22 2014-04-24 John M. Layne Novel encryption processes based upon irrational numbers and devices to accomplish the same
US9201629B2 (en) 2013-03-14 2015-12-01 International Business Machines Corporation Instruction for performing a pseudorandom number seed operation
US8873750B2 (en) * 2013-03-14 2014-10-28 International Business Machines Corporation Instruction for performing a pseudorandom number generate operation
AT515097B1 (de) * 2014-03-31 2015-06-15 Hödl Josef Verschlüsselungsverfahren und Pseudo-Zufallszahlengenerator
DE102015100760A1 (de) * 2015-01-20 2016-07-21 Infineon Technologies Ag Generieren von Zufallszahlen
JP6321723B2 (ja) * 2015-06-04 2018-05-09 株式会社クァンタリオン 放射性同位元素の自然崩壊を利用した唯一性を実現する装置
WO2016194382A1 (ja) * 2015-06-04 2016-12-08 典平 露崎 放射性同位元素の自然崩壊を利用した唯一性を実現する装置
CA3026281A1 (en) * 2016-06-06 2017-12-14 Agilepq, Inc. Data conversion systems and methods
US10680810B2 (en) * 2016-10-26 2020-06-09 Nxp B.V. Method of generating an elliptic curve cryptographic key pair
US11055065B2 (en) * 2018-04-18 2021-07-06 Ememory Technology Inc. PUF-based true random number generation system
CN110768785B (zh) * 2019-10-22 2023-05-02 宜人恒业科技发展(北京)有限公司 一种编、解码方法、相关装置及计算机设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61246787A (ja) * 1985-03-27 1986-11-04 富士通株式会社 乱数混合処理方式
JPS62144243A (ja) * 1985-12-18 1987-06-27 Nec Corp 乱数発生器
JPH04115616A (ja) * 1990-08-31 1992-04-16 Toshiba Corp ランダム符号発生装置
JP2845308B2 (ja) * 1993-04-02 1999-01-13 株式会社アドバンテスト 並列疑似ランダムパターン発生器
CA2128115C (en) * 1993-07-20 1999-08-10 Keiichi Iwamura Encryption apparatus, communication system using the same and method therefor
JPH0736672A (ja) * 1993-07-20 1995-02-07 Canon Inc 乱数発生器、及びそれを用いた通信システム及びその方法
JP2541480B2 (ja) * 1993-10-06 1996-10-09 日本電気株式会社 擬似乱数発生装置
JPH09179726A (ja) * 1995-12-25 1997-07-11 Nec Corp 擬似乱数発生装置
US5910907A (en) * 1997-02-20 1999-06-08 C.K. Chen Shift register based pseudorandom number generator
JPH10240500A (ja) * 1997-02-28 1998-09-11 Toshiba Corp 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム
DE60125139D1 (de) * 2001-01-16 2007-01-25 Ericsson Telefon Ab L M Zufallszahlengenerator basierend auf Komprimierung
FR2832231B3 (fr) * 2001-11-15 2003-12-19 Jean Luc Stehle Procede pour generer des nombres aleatoires

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101137004B (zh) * 2006-08-30 2010-10-13 三星电子株式会社 图像信号处理设备及其方法
US9030484B2 (en) 2006-08-30 2015-05-12 Samsung Electronics Co., Ltd. Image signal processing apparatus and method thereof
WO2013013480A1 (zh) * 2011-07-27 2013-01-31 中国科学院计算机网络信息中心 伪随机数生成装置和方法
CN113504894A (zh) * 2021-09-09 2021-10-15 华控清交信息科技(北京)有限公司 一种随机数产生器、生成伪随机数的方法和一种芯片
CN113504894B (zh) * 2021-09-09 2021-12-17 华控清交信息科技(北京)有限公司 一种随机数产生器、生成伪随机数的方法和一种芯片
CN115714644A (zh) * 2022-10-31 2023-02-24 北京海泰方圆科技股份有限公司 一种随机数生成方法及装置
CN115714644B (zh) * 2022-10-31 2023-08-15 北京海泰方圆科技股份有限公司 一种随机数生成方法及装置

Also Published As

Publication number Publication date
WO2004032098A1 (ja) 2004-04-15
US20060039558A1 (en) 2006-02-23
JPWO2004032098A1 (ja) 2006-02-02
JP4052480B2 (ja) 2008-02-27
AU2003252595A1 (en) 2004-04-23

Similar Documents

Publication Publication Date Title
CN1714377A (zh) 用于生成伪随机数的方法及伪随机数生成器
CN1312630A (zh) 基于分块加密方式的加密装置与方法及译码装置与方法
CN1286457A (zh) 加密方法,加密装置,解密方法和解密装置
CN1879138A (zh) 密码处理装置、密码处理方法及其计算机程序
CN1124545C (zh) 实现高速加密处理的设备和方法
CN1266876C (zh) 数据通信***、加密装置及解密装置
CN1200392C (zh) 信息处理方法
CN1349182A (zh) 加密、解密装置及扩展密钥生成装置、方法以及记录媒体
CN1282324C (zh) 数据加密装置和方法
CN1276364C (zh) 数据管理设备,数据管理方法以及计算机程序
CN1235446A (zh) 椭圆曲线变换装置、利用装置和利用***
CN1726669A (zh) 数据分割方法和使用异或运算的装置
CN1860434A (zh) 具有可控周期的伪随机序列的基于细胞自动机的生成方法和装置
CN1262072C (zh) 码分多址移动通信***中的编码/解码设备和方法
CN1841443A (zh) 计算方法、计算设备以及计算机程序
CN1267816C (zh) 信息安全装置,质数生成装置,和质数生成方法
CN1778066A (zh) 参数生成设备,加密***,解密***,加密设备,解密设备,加密方法,解密方法,及其程序
CN1343411A (zh) 加密装置和加密方法及解密装置和解密方法以及用于记录程序的计算机可读取记录媒体
CN1788450A (zh) 列混合函数的小型硬件实现
CN1921381A (zh) 密钥更新方法、加密处理方法、密码***以及终端装置
CN1372739A (zh) 利用特殊的素数,证实实体的真实性和/或消息的完整性和/或真实性的方法、***和设备
CN1957384A (zh) 电子元件和数据处理方法
CN1908951A (zh) 具有验证功能的电子文档
CN1480851A (zh) 计算机加密装置及其加密方法
CN1387714A (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