CN1802629A - 通过重叠字计数的在线随机性测试 - Google Patents

通过重叠字计数的在线随机性测试 Download PDF

Info

Publication number
CN1802629A
CN1802629A CN03804332.7A CN03804332A CN1802629A CN 1802629 A CN1802629 A CN 1802629A CN 03804332 A CN03804332 A CN 03804332A CN 1802629 A CN1802629 A CN 1802629A
Authority
CN
China
Prior art keywords
random
bit
predetermined
acceptance ranges
bit block
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
CN03804332.7A
Other languages
English (en)
Inventor
L·哈尔斯
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1802629A publication Critical patent/CN1802629A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • 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

Abstract

本发明是用于实时测试利用随机数发生器生成的随机数的方法和设备。在生成随机数时,重叠的k比特块一次一个地经历指数计数运算,其中通过舍弃前一k比特块中最左边的比特并在其右边附加一个新的随机比特以形成新的k比特块来执行指数运算,从而保持块的大小。这一k比特块的二进制值被用于在重叠计数运算期间执行累加器选择。指数平均的所有输出与一个预定的接受范围进行比较,以确定利用随机数发生器所生成的比特是否足够随机。

Description

通过重叠字计数的在线随机性测试
技术领域
本发明涉及随机数发生器的领域,并且具体涉及用于实时分析所生成的随机数的统计质量的数字数据处理设备和方法。
背景技术
智能卡典型地是一种信用卡大小的塑料卡,包括嵌入在上面的能够实现各种交易的微处理器。此卡可以包括用于执行各种加密算法的加密模块,以便与其它接口即读卡终端交换信息。利用加密模块,将信号从此卡路由发送到此卡外的许多金属触点,这些触点与读卡终端的相同触点形成物理接触。
在加密模式期间,随机数发生器以某种形式的密码术被用于提供消息的安全传输,以使得只有预定的接收端才能理解由一个授权发送端发送的消息(即,语音或数据)。然而,由于未经授权的接收机和未经授权的发射机变得越来越精通对消息加密中使用的随机数的生成过程的破译,为了安全通信而变得迫切需要生成不可预测的随机数。
除了由于未经授权方造成的泄密之外,随机数发生器在操作期间还可以生成非随机数。例如,随机数发生器的硬件部件在一段时间期间内生成一系列1和0时会发热。生成1比特所消耗的功率比0比特要多。如果生成一长串1比特,电路就会变热。此时,如果此电路在它是热的时生成1比特,此电路将“闭锁”,即,它几乎始终生成1比特而很少生成0比特。如果电路在热时生成0比特,则会出现不同的效果。在这种情况下,极少出现一长串1比特,这构成一种非随机特性。在密码应用中这可能会造成灾难性后果:将泄密。因此,在执行随机性测试时,需要检测硬件窜改和检测电路的故障。
发明内容
本发明检测上述及其它问题,并通过提供用于在线随机性测试的方法和设备来提供附加益处,以致所生成的随机数不容易受到来经授权方的密码分析的影响。
按照本发明的一方面,提供用于在生成随机数时测试随机性的一种方法。该方法包括以下步骤:生成二进制比特的随机序列;在计算每个可能的k比特长度块的出现的平均数时,将k比特预定块应用于重叠计数运算;和确定每个k比特块的出现频率是否在预定的接受范围(acceptance range)之内。该方法进一步包括以下步骤:一旦确定至少一个k比特预定块的出现频率落在预定的接受范围之外,通知所生成的随机序列不够随机;并且在至少一个k比特预定块落在预定的接受范围之外时,生成新的一组随机数。
按照本发明的另一方面,提供用于测试随机数发生器的输出的一种方法。该方法包括以下步骤:(a)利用随机数发生器生成一系列二进制比特;(b)以预定的时间间隔为每个可能的k比特预定块执行和跟踪重叠计数运算;(c)以预定的时间间隔为每个跟踪的重叠计数运算计算指数平均值A;(d)将计算的指数平均值与一个预定的接受范围进行比较;和(e)在计算的指数平均值落在预定的接受范围之内时,确定所生成的二进制数足够随机。该方法进一步包括以下步骤:重复步骤(a)-(d),直至任何计算的指数平均落在预定的接受范围之外;在步骤(d)中的测试重复地不大于一个门限值时,通知生成了非随机数;并且在步骤(d)中的测试重复地不大于一个预定次数时,生成新的一组随机数。
按照本发明的再一方面,提供用于测试随机数序列的随机性的一种设备。该设备包括:随机数发生器单元,用于生成基本上随机的二进制比特序列;和检测器单元,耦合到随机数发生器单元的输出,用于检测生成的随机序列是否足以不可预测,其中将k比特预定块应用于重叠指数计数运算,一次一个,以计算每个可能的k比特块出现的平均数,其中如果任何一个指数累加器的输出A落在其预定的接受范围之外,确定生成的随机序列是非随机的。该设备还包括耦合到随机数发生器单元和检测器单元的输出的转换单元,用于在生成的随机序列被确定为足够随机时传送生成的随机序列以便后续应用,以及用于在任何指数累加器的值A落在其预定的接受范围之外时发送一个报警信号的装置。
另一方面是本发明可以根据具体应用的需要而利用硬件、软件或硬件和软件的组合来实现。
再一方面是本发明可以按简单、可靠和廉价的实施方式来实现。
又一方面是本发明增加被嵌入智能卡中的随机数发生器的安全性。
根据以下对附图所示的最佳实施例的更详细描述将理解本发明的上述及其它特征和优点。
附图说明
图1表示按照本发明一个实施例的随机生成模块的一个简化方框图;
图2显示表示按照本发明一个实施例的随机序列的重叠计算的示意图;和
图3是表示按照本发明的一个实施例测试生成的随机数的统计特性的操作步骤的流程图。
具体实施方式
在以下的说明中,为了解释而非限制的目的,提出了具体细节,例如具体结构、接口、技术等等,以提供对本发明的全面理解。然而,本领域的技术人员将理解,在脱离这些具体细节的其它实施例中可以实现本发明。为了简明起见,省略了对公知设备、电路和方法的详细描述,以免不必要的细节妨碍对本发明的描述。
图1表示按照本发明一个实施例的一种随机发生系统10的功能框图,用于测试所生成的随机数的某些统计特性。系统10包括随机数发生模块(RG)12、检测器14和转换器16.RG模块12可用于输出一系列随机数。应该注意到:生成随机数在现有技术中是公知的,并且可以利用各种方式来执行。检测器14按照预定的标准(如下所解释的)检测由RG 12输出的生成随机数的随机性;如果通过的话,转换器16就允许生成的随机数用于后续应用,例如使用由RG 12提供的随机数的任何电路、系统、处理、应用等等。转换器16在检测器14的控制下被去激活,以便在生成的随机数被认为不够随机时停止发送所生成的随机数。转换器16可以代表至一个密码系统、音频和视频噪声发生器、计算机程序或其它设备和程序的输入。例如,随机数发生系统10可用于提供安全数据,此数据在密码协议中被用于建立在发送端和授权接收端之间的机密通信的密码密钥,类似于在公知的Diffie-Hellman安全共享协议中。随机数可用于生成密码密钥来加密或解密消息分段,因此允许预定的接收机理解发送的消息。除了加密信号的形成之外,按照本发明技术的随机数的测试还可以用于其中使用随机数的其它实施中,即,赌博、仿真、统计抽样等等。
如果在给出一个或多个随机数的情况下所生成的随机序列之中的任何一个其它比特不可能利用超过50%的概率预测到,则认为随机数发生器是安全的。因此,本发明的密钥原理包括对在给出一个或多个随机数的情况下测试RG模块12。特别地,利用检测器14分析所生成的随机序列的输出,以确保所生成的随机数将不可由未经授权方预测到。
现在,将参照图2和3具体描述对随机序列的统计质量的测试。
参见图2,按照本发明的一个实施例在RG模块12操作的同时对随机数进行实时测试以确保生成的随机数是合适的。这样,易于利用软件来实现本发明,其中将微处理器和随机序列发生器集成在一个设备例如智能卡内,因而测试仅仅需要几行(line)附加代码和很小的存储器。通过初始化指数平均累加器来开始随机性测试。如图2中所示,由RG模块12生成的随机值的连续流经历重叠计算运算,其中预置比特块k被输入到一个环形缓冲器,以辅助执行指数平均计算。通过将1加到相应的累加器A和将0加到其它累加器来更新随机序列的每个k比特块出现的平均数,一次一个,同时将它们全部缩减一个固定系数α(如下所解释的)。因而,本发明使用包含所有可能的不同k比特块的出现频率的多个累加器。注意,给每个累加器分配一个初始值。例如,如果k=3,随机序列的第一块就是(0,1,1),相应的二进制值是3。应注意,为了便于说明,k的值被设定为3。因此,应该理解附图中的k值不应该对本发明的范围构成限制。随机序列的第二块是(1,1,0),相应的二进制值是6。对于第三随机序列块(1,0,1),相应的二进制值是5。每当生成新的随机比特时,以面收集的比特块向右移位,最左的一个比特被舍弃,并在右边附加新的一比特。这样,确定选择用于计算每个k比特块的出现次数的累加器所需的k比特的重叠块。
在本实施例中,每当生成新的k比特块并且在被索引的累加器A被更新的同时计算相应的二进制索引值时,确定所生成的随机数是否足够随机,以致块出现次数大致相同。也就是说,所有可能的k比特字在序列中出现的频率应该大致相同。为此,将一个预定范围值与每个累加器的值进行比较。如果在指数平均值计算过程期间任何一个累加器的值落在预定范围之外,则推断所生成的随机数对于未经授权方将是可预测的。
注意,本发明可应用于实时测试随机序列,旧的块计数值应具有逐渐缩小或没有影响。也就是说,评价随机序列的统计质量的测试连续运行,因而必须周期性清除计数器。具有按照本发明的技术可以实施的各种计数方法;然而,如下所述,在重叠计数运算期间最好使用指数平均。
如果每当生成随机数时使用累加器A来获得一个平均出现值,将落在0与1之间的一个系数α(0<α<1)乘以A并随后加上一个指示值b:Anew=α·Aold+b。在计数应用中,如果事件发生,b=1,否则设置为0。为了得到有用的平均效果,α的值被选择为接近1,α=1-1/n,n>>1。在这种情况下,logα≈1-/n并且平均比特的半衰期是k≈n·log2≈0.30103·n。在n比特之后,最早一比特的加权变成了(1-1/n)n≈1/e≈0.367879。这里,e是自然对数的底(欧拉(Euler)常数),因此项n变成一比特的自然寿命。如果所有比特都是1,则累加器值为1+α+α2+...=1/(1-α)=n,而如果所有比特是0,则累加器值是0。注意,指数平均的预期值是各个比特的预期值的指数平均值:1/2+1/2α+1/2α2+...=n/2。如果每个其它比特是1,则累加器值在1+α24+...=1/(1-α2)和α+α35+...=α/(1-α2)之间交替改变,这些值非常接近1/2间隔[n/(2n-1)],其平均值也是(1+α)/2(1-α2)=n/2。
如上所述,指数平均用于在累加器随着一定的0<α<1系数递减时清除计数器;因而,累加器在运算模式期间从不会变得太大。每当对每个累加器执行指数平均时,将指数平均的值与如下所述导出的预定接受范围进行比较。
容易看出,如果序列R真是随机的,特定的k比特块在长度为n的序列中出现的次数就会接近正常分布,其中μ=n/2k+1,而 σ = n / 2 k + 1 . 注意,单个无偏置随机比特的标准偏差是σ=1/2。因而,标准动量D2的平方是如下的线性函数:
D2(b0+αb12b2+...)=D2(b0)+αD2(b1)+α2D2(b2)+...=1/4+1/4α+1/4α2+...=n/4.
结果,利用随机0/1比特的参数α=1-1/n(自然寿命n)的指数平均的标准偏差是 σ = n / 2 , 这与n元素的算数平均值的标准偏差相同。因此,每个块的出现次数应该落入此间隔,
[ n / 2 k + 1 - c · n / 2 k + 1 , n / + 2 k + 1 + c · n / 2 k + 1 ] - - - ( 1 ) ,
具有以下概率:
 c  Pin%
 12345  68.2689595.4499799.7300299.9936799.99994
足以,在测试随机序列的统计特性时,块出现的数必须大致相同。此处,“大致”的意思是提取其块出现必须落在 [ n / 2 k + 1 - c · n / 2 k + 1 , n / 2 k + 1 + c · n / 2 k + 1 ] , 之间的n个采样。常数c控制所有序列落入该间隔内的百分数(c/2=1时得到68.3%,c/2=2时得到95.4%,c/2=3时得到99.7%等)。k和n的值是由操作人员预选或预定的,以致可以优化在复杂性和测试强度之间良好的折衷。注意此处获得用于测试非随机性的预定范围 [ n / 2 k + 1 - c · n / 2 k + 1 , n / 2 k + 1 + c · n / 2 k + 1 ] 是利用具有非常已知的随机数源的扩展模拟来确定的。
如果指数平均累加器落在预定范围之外,则表明该序列呈现不规则字分布。随后,可以向用户发出警告,以通知该序列可能不是随机的或容易被未经授权方进行密码分析。或者,可以设置一个门限值,以便在测试反复失败时通知用户。这样,能够利用一组随机序列来启动指数平均限制,以确定生成的随机序列是否落在可由操作人员控制设置的接受范围之间,这样就能确定所生成的随机序列能否可被未经授权方预测。另外,根据计算的指数平均值在预定的接受范围上的分布能实现随机性测试的另一步骤。也就是说,指数平均值必须均匀地落在预定的接受范围之内。每当计算指数平均值时,监视它落在接受范围的哪一部分,例如接受范围的左半部或右半部。如果落在左半部的频率大致等于右半部,则可以利用这一参数来指示所生成的随机数将是不可预测的。
图3是表示按照本发明测试随机序列的统计质量的操作步骤的流程图。矩形单元代表计算机软件指令,而菱形单元代表影响利用矩形单元代表的计算机指令的执行的计算机软件指令。或者,处理和决定框代表利用功能等效电路例如数字信号处理器电路或专用集成电路(ASIC)所执行的步骤。应该注意到,许多例行程序单元例如环路的初始化和变量以及临时变量的使用都没有表示。本领域技术人员将认识到,除非另有指示,所述的步骤顺序仅仅是示意性的,并且在本发明的范围内还可以改变。
最初地,在步骤100由操作人员预定或预选(等式1中)k,n和c值和重置计数器。然后,在步骤110获得一个k比特块,并且接着在步骤120执行指数平均计数。每当生成一个新的随机比特,就将以前收集的比特块向右移位,并舍弃最左边的一比特,同时在右边附加新的一比特。所得的块作为二进制数用于在2k个累加器之间对累加器A进行索引。在步骤140,如果指数平均累加器的值偏离了在步骤100中选择的接受范围,则在步骤160中确定随机序列中出现了不规则分布并将计数器递增1。否则,在步骤150将计数器复位并返回到步骤110。如果步骤180中不规则分布出现的次数超过了预定门限次数,则在步骤200提供对这样的故障的通知。或者,可以舍弃所生成的随机数,并且可以开始生成新随机数的整个处理程序。
上述的各个步骤可以通过将它们编程为在应用程序中包括的功能来实施,并且本领域普通的程序员能利用诸如C、Visual Basic、Java、Perl、C++等语言的常规编程技术来实现。在示例性实施例中,图3中所述的方法可以(利用C编程语言)编制如下。
MS Visual C代码
/*************************************************************
*****\
 * Wordcnt.c
 *   Wordcnt<#random bits><bit generator type><bit
generator param>
 *   Generates test bits
 *   Exponential frequencies of all 4 bit words(overlapping)
 *   Prints test statistics
 * Wordcnt 1e6 1 0000100110101111->4050 4156
 *
 * Wordcnt 1e6 0 0.48->
 * Too large bias of 4-bit word frequencies at bit 448551
(2681 8201)
 *  3281
 *  4119
 *  3827
 *  4805
 *  3793
 *  4135
 *  4176
 *  5240
 *  4112
 *  3982
        <!-- SIPO <DP n="8"> -->
        <dp n="d8"/>
 *  4203
 *  5055
 *  4564
 *  5013
 *  5189
 *  8201
 *
\*************************************************************
*****/
#include<stdio.h>
#include<stdlib.h>
#define WDLEN  4
#define WDNMB  (1<<WDLEN)
#define WDMASK (WDNMB-1)
#define NA   10
#define SA   6
//A factor of 0.5-2 tolerance:(experimental values)
#define LO10  (1<<(NA-WDLEN+SA-1))
#define HI10  (1<<(NA-WDLEN+SA+1))
#define MAX(A,B)((A)>(B)?(A):(B))
#define MIN(A,B)((A)<(B)?(A):(B))
typedef unsigned_int16 uint14;//min precision to store
HI10(14bit)

                //enough for calculations w/o overflow
//External function prototypes
void BitGenInit(int argc,char *argv[]);
unsigned int NextBit();
int main(int argc,char *argv[])
        <!-- SIPO <DP n="9"> -->
        <dp n="d9"/>
{
  int i,j,word=0,n=(int)atof(argv[1]);
  uint14 ax,a[WDNMB],amax=LO10,amin=HI10;
  if(argc<4){

    printf("Usage:Wordcnt<#random bits><bit generator type>
<bit generator params...>\n");

    putchar(′\a′);       //rings the bell

    exit(1);}
  BitGenInit(argc,argv);
  ax=1<<(NA-WDLEN+SA);     //Initialize all average
values with ideal past
  for(i=0;i<WDNMB;++i)a[i]=ax;
  for(i=1;i<WDLEN;++i)word=(word<<1)+NextBit();
  for(i=WDLEN;i<=n;++i){

    for(j=0;j<WDNMB;++j)a[j]-=(a[j]>>NA);

    word=((word<<1) & WDMASK)+NextBit();

    a[word]+=(1<<SA);      //a[.]<=2^13,adding 2^6
gives no overflow!

    for(j=0;j<WDNMB;++j){

      amax=MAX(a[j],amax);

      amin=MIN(a[j],amin);}

    if(amin<LO10||amax>HI10){

      printf("Too large bias of 4-bit word frequencies at bit
%u(%u %u)\n",i,amin,amax);

      for(j=0;j<WDNMB;++j)printf("%u\n",a[j]);

      exit(2);}
  }
  printf("Min Max of exponential word frequencies=%u %u\n",
amin,amax);
  }
尽管已经示出和描述了本发明的最佳实施例,但是本领域的技术人员将理解,无需脱离本发明的真实范围而可以进行各种各样的变化和修改以及对其元件进行等效替换。另外,可以在不脱离核心范围的条件下进行许多修改以适应具体情况和本发明的教导。因此,打算本发明不限于作为期望用于实现本发明的最佳模式公开的具体实施例,并且本发明应该包括落入所附的权利要求书范围内的所有实施例。

Claims (25)

1.用于在生成随机数时测试随机性的一种方法,该方法包括以下步骤:
生成二进制比特的随机序列;
在计算每个预定块出现的平均数时,以预定的k比特块间隔将所述生成的随机序列应用于指数重叠计数运算A;和
通过将所述指数重叠计数运算A的输出与一个预定的接受范围进行比较,确定所述生成的随机序列是否足够随机。
2.按照权利要求1的方法,还包括以下步骤:在所述指数重叠计数运算A的输出落在所述预定的接受范围之间时,确定所述生成的序列足够随机。
3.按照权利要求1的方法,还包括以下步骤:在所述指数重叠计数运算A的输出落在所述预定的接受范围之外时,通知所述生成的随机序列不够随机。
4.按照权利要求3的方法,还包括以下步骤:在所述指数重叠计数运算A的输出落在所述预定的接受范围之外时,生成新的一组随机序列。
5.按照权利要求1的方法,其中按照以下等式更新所述指数平均计数运算A:
Anew=α·Aold+b,
其中α=1-1/n,而α落在0和1之间(0<α<1),并且其中在k比特块的二进制值出现时,b=1,否则b=0。
6.按照权利要求1的方法,其中每当通过从所述预定k比特块中舍弃最左边的比特并将新的随机比特附加在所述预定k比特块的右边来生成所述新的随机比特时,执行所述指数重叠计数运算。
7.按照权利要求5的方法,其中如下定义所述预定的接受范围:
[ n / 2 k + 1 - c &CenterDot; n / 2 k + 1 , n / + 2 k + 1 + c &CenterDot; n / 2 k + 1 ] ,
其中选择c以获得期望的安全门限电平。
8.用于测试随机数发生器的输出的一种方法,该方法包括以下步骤:
(a)使用所述随机数发生器生成连续的二进制比特流;
(b)对于每个比特,以预定的时间间隔对预定的k比特块执行和跟踪重叠指数计数运算,以获得相应的频率值;
(c)将所有所述计算的指数平均值A与一个预定的接受范围进行比较;和
(d)在任何一个所述计算的指数平均值落在所述预定的接受范围之外时,确定所述生成的二进制数是非随机的。
9.按照权利要求8的方法,还包括以下步骤:
重复所述步骤(a)-(c),直至任何所述计算的指数平均值落在所述预定的接受范围之外。
10.按照权利要求9的方法,还包括以下步骤:在所述计算的指数平均值重复落在所述预定的接受范围之外大于一个预定次数时,通知生成了非随机数。
11.按照权利要求9的方法,还包括以下步骤:在所述计算的指数平均值重复落在所述预定的接受范围之外大于一个门限值时,生成新的一组随机数。
12.按照权利要求8的方法,其中所述随机数发生器被嵌入在智能卡内。
13.按照权利要求8的方法,其中所述指数平均值A被定义为:
Anew=α·Aold+b,
其中α=1-1/n,而α落在0和1之间(0<α<1),
如果在所述步骤(b)中k比特块的二进制值出现,则b是包括1的值,否则b是包括0的值。
14.按照权利要求8的方法,其中每当通过从所述预定的k比特块中舍弃最左边的比特并将新的随机比特附加在所述预定的k比特块的右边来生成新的随机比特时,执行所述指数重叠计数运算。
15.按照权利要求13的方法,其中如下定义所述预定的接受范围:
[ n / 2 k + 1 - c &CenterDot; n / 2 k + 1 , n / + 2 k + 1 + c &CenterDot; n / 2 k + 1 ] ,
其中选择c以获得期望的安全门限电平。
16.用于测试随机数序列的随机性的一种设备,包括:
随机数发生器单元(12),用于生成基本上随机的二进制比特序列;和
检测器单元(14),耦合到所述随机数发生器单元(12)的输出,用于检测所述生成的随机序列是否足够随机,
其中以预定的k比特块间隔将所述生成的随机序列应用于指数重叠计数运算A,以计算每个所述预定块出现的平均数,和其中如果所述指数重叠计数运算A的输出落在一个预定的接受范围之外,则确定所述生成的随机序列不够随机。
17.按照权利要求16的设备,还包括一个转换器单元(16),耦合到所述随机数发生器单元(12)和所述检测器单元(14)的输出,用于在所述生成的随机序列被确定为足够随机时传送所述生成的随机序列以便后续应用。
18.按照权利要求16的设备,还包括用于在所述指数重叠计数运算A的输出落在所述预定的接受范围之外时发送报警信号的装置。
19.按照权利要求16的设备,其中根据以下等式来计算所述指数重叠计数运算A:
Anew=α·Aold+b,
其中α=1-1/n,并且α落在0和1之间(0<α<1),
如果k比特块的二进制值出现,则b=1,否则b=0,并且
由操作人员初始地设置Aold
20.按照权利要求19的设备,如下定义所述预定的接受范围:
[ n / 2 k + 1 - c &CenterDot; n / 2 k + 1 , n / + 2 k + 1 + c &CenterDot; n / 2 k + 1 ] ,
其中选择c以获得期望的安全门限电平。
21.一种机器可读媒体,在其上面存储有代表指令序列的数据,并且所述指令序列在由处理器执行时使得该处理器:
生成二进制比特的随机数流;
对于每个比特,以预定的时间间隔对预定k比特块计算和跟踪指数重叠计数运算,以获得一个相应的二进制值;并且
将所有所述计算的指数平均值A与一个预定的接受范围进行比较,以确定所述生成的随机数是否足够随机。
22.按照权利要求21的机器可读媒体,其中在所述计算的指数平均值落在所述预定的接受范围之外时,所述生成的二进制数不够随机。
23.按照权利要求21的机器可读媒体,其中所述指数平均A被如下定义:
Anew=α·Aold+b,
其中α=1-1/n,并且α落在0和1之间(0<α<1),
如果k比特块的二进制值出现,则b是包括1的值,否则b是包括0的值。
24.按照权利要求21的机器可读媒体,其中每当通过从所述预定的k比特块中舍弃最左边的比特并将新的随机比特附加在所述预定的k比特块的右边来生成新的随机比特时,执行所述重叠计数运算。
25.按照权利要求23的机器可读媒体,其中如下定义所述预定的接受范围:
[ n / 2 k + 1 - c &CenterDot; n / 2 k + 1 , n / + 2 k + 1 + c &CenterDot; n / 2 k + 1 ] ,
其中选择c以获得期望的安全门限电平。
CN03804332.7A 2002-02-21 2003-02-05 通过重叠字计数的在线随机性测试 Pending CN1802629A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/081,910 2002-02-21
US10/081,910 US20030158876A1 (en) 2002-02-21 2002-02-21 On-line randomness test through overlapping word counts

Publications (1)

Publication Number Publication Date
CN1802629A true CN1802629A (zh) 2006-07-12

Family

ID=27733318

Family Applications (1)

Application Number Title Priority Date Filing Date
CN03804332.7A Pending CN1802629A (zh) 2002-02-21 2003-02-05 通过重叠字计数的在线随机性测试

Country Status (6)

Country Link
US (1) US20030158876A1 (zh)
EP (1) EP1479002A2 (zh)
JP (1) JP2005518047A (zh)
CN (1) CN1802629A (zh)
AU (1) AU2003205958A1 (zh)
WO (1) WO2003071416A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102520908A (zh) * 2011-12-20 2012-06-27 大唐微电子技术有限公司 一种伪随机数生成器及伪随机数生成方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7219112B2 (en) * 2001-11-20 2007-05-15 Ip-First, Llc Microprocessor with instruction translator for translating an instruction for storing random data bytes
US7149764B2 (en) 2002-11-21 2006-12-12 Ip-First, Llc Random number generator bit string filter
US20060064448A1 (en) * 2001-11-20 2006-03-23 Ip-First, Llc. Continuous multi-buffering random number generator
US7136991B2 (en) * 2001-11-20 2006-11-14 Henry G Glenn Microprocessor including random number generator supporting operating system-independent multitasking operation
US7028059B2 (en) * 2002-06-24 2006-04-11 Sun Microsystems, Inc. Apparatus and method for random number generation
US7139785B2 (en) * 2003-02-11 2006-11-21 Ip-First, Llc Apparatus and method for reducing sequential bit correlation in a random number generator
JP4298588B2 (ja) * 2004-05-31 2009-07-22 株式会社リコー 情報検出装置および情報検出方法
JP2008130856A (ja) * 2006-11-22 2008-06-05 Hitachi Ulsi Systems Co Ltd 半導体装置と検証方法
JP2008176744A (ja) * 2007-01-22 2008-07-31 Sony Corp 平均値算出装置、平均値算出方法およびプログラム
US7925684B2 (en) * 2007-02-16 2011-04-12 Infineon Technologies Ag Method and apparatus for distributing random elements
KR20090012528A (ko) * 2007-07-30 2009-02-04 삼성전자주식회사 난수 발생 장치의 자발적인 온라인 테스트 장치 및 방법
US8805905B2 (en) * 2007-09-18 2014-08-12 Seagate Technology Llc On-line randomness test for restart random number generators
US8676870B2 (en) 2007-09-18 2014-03-18 Seagate Technology Llc Active test and alteration of sample times for a ring based random number generator
US8635260B2 (en) * 2009-12-02 2014-01-21 Seagate Technology Llc Random number generator incorporating channel filter coefficients
US8583711B2 (en) * 2009-12-02 2013-11-12 Seagate Technology Llc Random number generation system with ring oscillators
KR20180055299A (ko) 2016-11-16 2018-05-25 삼성전자주식회사 난수 생성기의 랜덤성 시험 장치 및 방법
KR102073474B1 (ko) * 2018-05-24 2020-02-04 홍익대학교 산학협력단 비트스트림의 임의성을 검증하는 방법 및 그 시스템
CN109617653A (zh) * 2018-12-06 2019-04-12 四川长虹电器股份有限公司 序列测试的优化实现方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675649A (en) * 1995-11-30 1997-10-07 Electronic Data Systems Corporation Process for cryptographic key generation and safekeeping
CA2217916A1 (en) * 1996-10-09 1998-04-09 Dew Engineering And Development Limited Random number generator and method for same
US6675126B2 (en) * 2001-03-27 2004-01-06 Kabushiki Kaisha Toyota Chuo Kenkyusho Method, computer program, and storage medium for estimating randomness of function of representative value of random variable by the use of gradient of same function
US6675113B2 (en) * 2002-03-26 2004-01-06 Koninklijke Philips Electronics N.V. Monobit-run frequency on-line randomness test

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102520908A (zh) * 2011-12-20 2012-06-27 大唐微电子技术有限公司 一种伪随机数生成器及伪随机数生成方法
CN102520908B (zh) * 2011-12-20 2015-04-29 大唐微电子技术有限公司 一种伪随机数生成器及伪随机数生成方法

Also Published As

Publication number Publication date
WO2003071416A3 (en) 2003-11-13
WO2003071416A2 (en) 2003-08-28
EP1479002A2 (en) 2004-11-24
JP2005518047A (ja) 2005-06-16
US20030158876A1 (en) 2003-08-21
AU2003205958A1 (en) 2003-09-09

Similar Documents

Publication Publication Date Title
CN1802629A (zh) 通过重叠字计数的在线随机性测试
CN101888282B (zh) 一种基于随机性分析的数据加密功能的检验方法
CN100480990C (zh) 单比特游程频率的在线随机性测试
Kuznetsov et al. Analysis of block symmetric algorithms from international standard of lightweight cryptography ISO/IEC 29192-2
CN100480988C (zh) 使用自相关的随机性测试
EP1496641A2 (en) Cryptographic processing apparatus, cryptographic processing method and computer program
EP1241564A2 (en) Random number generator which can generate a random number based on uniform distribution
US20030200239A1 (en) Gap histogram on-line randomness test
US7295674B2 (en) On-line randomness test for detecting irregular pattern
El Assad et al. Design and analyses of efficient chaotic generators for crypto-systems
Elmanfaloty et al. A finite precision implementation of an image encryption scheme based on DNA encoding and binarized chaotic cores
US11921623B2 (en) Device and method for testing a sequence generated by a random number generator
Khan et al. Investigation on pseudorandom properties of chaotic stream ciphers
US20060159267A1 (en) Device, method, and program for random number generation, encryption, and decryption recording medium
CN100480989C (zh) 间隙平均在线随机性测试
Kanso et al. Irregularly decimated chaotic map (s) for binary digits generations
He et al. Cryptanalysis and improvement of a block cipher based on multiple chaotic systems
KB et al. Generation of pseudo random number sequence from discrete oscillating samples of equally spread objects and application for stream cipher system
Oprina et al. Walsh− Hadamard randomness testand new methods of test results integration
KR100453258B1 (ko) 카오스 함수를 이용한 균형성을 갖는 수열생성 방법
Kuznetsov et al. Comparative Research of Fluid Cryptographic Transformation Algorithms
Jolfaei et al. Impact of rotations in the salsa 20/8 image encryption scheme
CN111884799A (zh) 一种基于RO-PUF的CRPs库构建方法和系统
JP2005134477A (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

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