CN1323477A - 测试随机数源的方法和含有所述方法的电子设备 - Google Patents

测试随机数源的方法和含有所述方法的电子设备 Download PDF

Info

Publication number
CN1323477A
CN1323477A CN99812290A CN99812290A CN1323477A CN 1323477 A CN1323477 A CN 1323477A CN 99812290 A CN99812290 A CN 99812290A CN 99812290 A CN99812290 A CN 99812290A CN 1323477 A CN1323477 A CN 1323477A
Authority
CN
China
Prior art keywords
sum
carry out
test
tab1
calculate
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
CN99812290A
Other languages
English (en)
Inventor
J·-S·科龙
D·纳卡希
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.)
Gemplus SA
Original Assignee
Gemplus SA
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 Gemplus SA filed Critical Gemplus SA
Publication of CN1323477A publication Critical patent/CN1323477A/zh
Pending legal-status Critical Current

Links

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/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Algebra (AREA)
  • Credit Cards Or The Like (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Complex Calculations (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

本发明涉及测试产生随机数源的方法,特别是在密码系统范围内建立的源,例如芯片卡中装有的随机数发生器。本发明特别为用于测试和确认电子设备而设计,例如芯片卡、PCMIA、标记、无接点卡或其它类似的便携装置。

Description

测试随机数源的方法和含有所述方法的电子设备
本发明涉及测试产生随机数源的方法,特别是如芯片卡中装有的随机数发生器这样的密码系统范围内开发的源。
它特别为用于测试和确认如芯片卡、PCMCIA、标记、无接触点卡或任何其他便携装置的电子设备而设计。
大多数公用密钥型(也称为非对称密码学)和保密密钥型(也称为对称密码学)的密码学系统需要提存保密随机值。最重要的是,为其后用作密钥而设计的这样一些随机值或数应是事先不能预料的且不应呈现任何这样的一些规律性,即这些规律性有可能通过周密的或很周密的搜索对策来发现它们,其中最可几密钥首先被搜索。
在这方面,有若干方法可用于测试由随机源产生的随机值并保证所述的源正确运行和不呈现任何跟随恶意来源的外部参数中的变化的漂移,例如由感应辐射引起的变化。
这些方法的每一个都适用于0和一个值d之间的整数数列,也称作序列。所述的数列由随机源产生。
最广泛了解的测试方法是所谓的“频率”测试。它是计数所述数列中0和值d之间的每个整数出现次数的情况。每个整数出现的次数再被统计评估。
第二种所谓“串联”测试方法,是在o和值d之间所有可能的整数对出现次数的计数和统计评估。该测试方法可推广到3元组或4元组整数等的计数。
第三种所谓“空穴”测试方法。一个数列中的空穴是一个在预定间隔外的一连串数。它是统计评估数列中所述空穴的长度的情况。
第四种称为“搅拌杆”测试的测试方法。该测试是把数列中的数组合在一起成5个数一组并在每个5元组中计数,有多少个不同值的出现。
第五种称为“试样收集”的测试方法,包括统计评估所有在o和d之间的整数值出现在所述数列所需要的数列长度。
这些方法的细节可在Knuth的著作中找到,著作的标题是“计算机编程技术,第2卷,半数值算法”。
另一个流行的测试方法是Maurer的通用测试,在著作“Journalof Crytography”,(vol5,NO.2,1992,pp89-105)中描述。该测试具有这样优点:能揭示所有用先前援引的测试方法可检测的故障以及用这些同样方法检测不到的其他统计缺陷。
所谓的Maurer测试方法,也称为通用方法,包括下列步骤:
步骤1.用随机源产生(Q+K)*L位的数列。Q、K和L是输入参数。该数列中的位分成L位字块,形成长度为Q+K的0和2L-1之间的整数数列。该长度被存储在表块[n]中,其中n在1和Q+K之间。
步骤2.计算表示fTU的测试参数。这个第二步骤又包含称作子步骤2.1到2.5的下列步骤:
2.1建立和初始化大小为2L的表,tab[i];
2.2对于从1到Q变化的n进行计算:tab[block[n]]=n;
2.3初始化数和Sum到0;
2.4对于从Q+1到Q+K变化的n执行计算把log(n-tab)[block[n]]加到Sum;进行计算:tab[block[n]]=n;
2.5测试的参数fTU由下式给出:
fTU=(sum/k)/log(2)。
步骤3.计算每个测试参数决方差,表示为Var。它的准确解释在Maurer发表的著作“Journal of Crytography”,(Vol5,NO.2,1992,pp.89-105)中给出。方差为, Var = ( 1 - z ) * Σ i = 1 ∞ log 2 ( i ) 2 * z i - 1 - ( ( 1 - z ) * Σ i = 1 ∞ log 2 ( i ) * z i - 1 ) 2
其中log2(z)=log(z)/log(2)和z=1-2-L
步骤4.计算函数C(L,K)。该函数的近似表达式在上述著作中的文章中给出,它是
C(L,K)=0.7-0.8/L+(1.6+12.8/L)*K(-4/L);
步骤5.计算测试参数的标准偏差,表示为σ,σ=C(L,K) * ( Var / K ) ;
步骤6.计算参数y。Y从作为一个输入固定的测试的拒绝率(表示为ρ)来确定。y必须满足方程式
N(-y)=ρ
N是标准密度函数。在R.Langley的著作“practicalstatistics”(Dover publications,New York,1968.)中描述了这种函数。方程N(-y)可以用N值的表求解。在上述文章中提供了这样的表。
步骤7.计算测试的标准平均值,表示为E(fTU)。它的表达式在Maurer发表的文章中给出,该文章在著作“Journal ofCryptography”(Vol5,NO.2,1992,pp.89-105)中给出。该表达式等于 E [ fTU ] = ( 1 - z ) * Σ i = 1 ∞ log 2 ( i ) * z i - 1
其中log2(z)=log(z)/log(2)和z=1-2-L
步骤8.计算上下限t1和t2。它们由下列方程给出:t1=E[fTU]-y*σ和t2=E[fTU]+y*σ;
步骤9.测试结果:
如果测试参数fTU在t1和t2之间,则随机数发生器被接收。在相反的情况下,它被拒绝。
因而,通用测试方法是基于函数C(L,K)计算的近似。该近似与用作其基础的理论保证所希望的相比精确度低。可以指出,在某些情况下,同理论允许的相比其通用测试方法证明是其2.67倍。
本发明的目的是一个改进的测试方法,使之达到通用测试的理论分析所能保证的真正精度。该测试用于明显地改进芯片卡型便携设备的安全性。
本发明的方法在于,用函数C(L,K)的精确计算代替通用测试的步骤4,该计算基于通用测试的概率分析。
本发明按照参数L和K的值给出了三个不同的函数C(L,K)表达式。
第一个C(L,K)表达式无论对参数L和K都成立。
第二个C(L,K)表达式成立的情况是,值L在3和16之间且值K大于30×2L,这对应于利用该测试的最通常情况。它比第一表达式计算简单,并因而可以在一个简单的微控制器上用几毫秒来实现。
第三个C(L,K)表达式对于L>16且K>30*2L成立。该表达式计算更简单。
第一个c(L,K)表达式可用下面描述的方法得到。该方法包含9个步骤:
1.计算u=1-2-L和V=1-1/(2L-1),u和v是实数;
2.建立大小为60*2L的二个表,tab1(表1)和tab2(表2);
3.为此填表1和表2,
3.1执行z=u,sum=0,z1=1;
3.2对于范围从1到30*2L的i重复二种操作:将log2(i)*z1加到sum,其中log2表示以2为底的对数;计算z1=z1*z;
3.3执行tab1[0]=(1-z)*sum;
3.4对于范围从1到60*2L的i执行
tab1[i]=(tab1[i-1]-(1-z)*log2(i))/z;
3.5重复步骤3.1、3.2、3.3、3.4,用v代替u和用tab2代替tab1:
4.计算每块方差,表示为Var:
4.1执行sum=0和x=1;
4.2对于从1变到30*2L的i执行下述二个操作:
将log2(i)2*X加到sum,以及
执行X=X*Z;
4.3作出Var=sum/2L-tab1[0]2
5.计算P(K);
5.1作sum=0和x=1;
5.2对于从1变到30*2L的i进行下述三个操作:
计算y:y=u2*(tab2[i+K-1]-tab1[i+K])*(tab2[0]-
vi*tab2[i])+u*tab1[0]*(tab1[i+K-1]-tab2[i+K-1]);
将y*x加到sum:
执行x=x*u;
5.3执行P(K)=u(K-1)*sum;
6.计算P(1),如同步骤5的方法,用1代替k;
7.计算Q(K);
7.1作sum=0,sum2=0以及x=1;
7.2对于从1变到30* 的i,
将i*log2(i)*u(i-2)加到sum2;
执行下面三个操作:
计算y=u2*(tab2[i+K-1]-
tab1[i+K])*((i+k)*tab2[0]-vi*tab2[i])-2(-L)*sum2)+u*(i+K-
1)*tab1[0]*(tab1[i+K-1]-tab2[i+K=1]),;
将y*x加到sum,
执行x=x*u;
7.3执行Q(K)=u(k-1)*sum;
8.计算Q(1)
如同步骤7的方法,用1代替K;
9.计算C(L,K) c ( L , K ) = ( 1 - 2 / Var * ( P ( 1 ) - P ( K ) - ( Q ( 1 ) - Q ( K ) ) / K ) .
C(L,K)的第二表达式对于K>30*2L成立。按照下述方法分二个步骤计算:
步骤1.读出e(L)和d(L)的值,e和d为实数,对于3和16之间的L列于下表:
L       d(L)        e(L)
3    0.2732725    0.4890883
4    0.3045101    0.4435381
5    0.3296587    0.4137196
6    0.3489769    0.3941338
7    0.3631815    0.3813210
8    0.3732189    0.3730195
9    0.3800637    0.3677118
10   0.3845867    0.3643695
11   0.3874942    0.3622979
12   0.3893189    0.3610336
13   0.3904405    0.3602731
14   0.3911178    0.3598216
15   0.3915202    0.3595571
16   0.3917561    0.3594040
步骤2.用下列公式计算值C(L,K): c ( L , K ) = ( d ( L ) + e ( L ) * 2 L / K )
C(L,K)的第三个表达式对于L>16且K>30*2L成立。它由下列公式给出: c ( L , K ) = ( 1 - 6 / Π 2 + 2 / Π 2 * ( 4 * log ( 2 ) - 1 ) * 2 L / K )
如同在本说明的开头(第1页)所指出的,本发明也涉及一种电子设备。该设备未用图或图解描绘。根据上述本发明方法的三个变量或更明确地根据函数C(L,K)的三个不同表达式,该电子设备用于自动确认自检查集成电路的物理完整性和检查它的随机发生器的完整性,以便保证所述发生器大体上正确地运行且不呈现任何随恶意源的外部参数变化的漂移,特别是例如由感应辐射引起的变化。
最好是进行该测试的电子设备是便携设备,更具体地说例如包括芯片卡、无接点卡、PCMCIA卡、标记或智能表。
最后,本发明的电子设备可以是包含为测试所述便携设备中装有的随机发生器的正确运行而设计的机器或装置的外部设备。该外部设备允许同该便携设备交换信息以便检查随机发生器在正确运行。该外部设备同便携设备互相作用以便检查它的随机发生器的完整性。

Claims (10)

1.一种测试随机数源的方法,包括以下步骤:
步骤1.由随机源产生一(Q+K)*L位数列,Q、K和L是输入参数,在该数列中的位被分组成一些L位的块,形成长度为Q+K的0和2L-1之间的整数数列,该长度被存储在表block[n]中,其中n在1和Q+K之间;
步骤2.计算测试参数,表示为Ftu,该第二步骤包括以下步骤,称作子步骤2.1到2.5:
2.1建立和初始化大小为2L的表tab[i];
2.2对于从1变到Q的n,进行计算:tab[block]=n;
2.3初始化数和(sum)到0;
2.4对于从Q+1变到Q+K的n,执行二个操作的计算:
将log(n-tab[block[n]])加到sum;
作计算:tab[block[n]]=n;
2.5测试的参数fTU由下式给出:
fTU=(sum/k)/log(2);
步骤3.从下列表达式计算每测试参数块方差Var: Var = ( 1 - z ) * Σ i = 1 ∞ log 2 ( i ) 2 * Z i - 1 - ( ( 1 - z ) * Σ i = 1 ∞ log 2 ( i ) * z i - 1 ) 2
其中log2(z)=log(z)/log(2)和z=1-2-L
步骤4.计算函数C(L,K);
步骤5.计算测试参数的标准偏差,表示为σ:σ=C(L,K) * ( Var / K ) ;
步骤6.计算参数y,y根据作为一个输入固定的测试的拒绝率(表示为ρ)来确定,y必须满足下列方程:
N(-y)=ρ
N是标准密度函数。
步骤7.计算测试的理想平均值,表示为E(fTU),它由下式给出: E [ fTU ] = ( 1 - z ) * Σ i = 1 ∞ log 2 ( i ) * z i - 1
其中log2(z)=log(z)/log(2)和z=1-2-L
步骤8.计算上下限t1和t2,它们由方程式t1=E[fTU]-y*σ和t2=E[fTU]+y*σ给出;
步骤9.测试结果:如果测试参数fTU在t1和t2之间,则随机数发生器被接受;相反情况下则被拒绝,
所述方法的特征是,步骤4.包含无论对于参数L和K都成立的函数C(L,K)的计算。
2.一种按照权利要求1的测试随机数源的方法,特征是步骤4包含在L值在3和16之间且K值大于30*2L的情况下成立的函数C(L,K)的计算。
3.一种按照权利要求1的测试随机数源的方法,特征是步骤4包含对于L>16且K>30*2L成立的函数C(L,K)的计算。
4.一种按照权利要求1的方法,特征是函数C(L,K)的计算包括9个步骤:
1.计算u=1-2-L和V=1-1/(2L-1),u和v是实数;
2.建立大小为60*2L的二个表tab1和tab2;
3.1执行z=u,sum=0,z1=1;
3.2对于范围从1到30*2L的i,重复2个操作:它们是将log2(i)*z1加到sum,其中log2表示底为2的对数,以及计算z1=z1*z;
3.3执行tab1[0]=(1-z)*sum;
3.4对于范围从1到60*2L的i,执行
tab1[i]=(tab1[i-1]-(1-z)*log2(i))/z;
3.5用v代替u和用tab2代替tab1重复步骤3.1、3.2、3.3、3.4;
4.计算每块方差,表示为Var:
4.1执行sum=0和x=1;
4.2对于从1变到30*2L的i,执行以下二个操作:
将log2(i)2*X加到sum,以及
执行X=X*Z;
4.3作Var=sum/2L-tab1[0]2
5.计算P(K);
5.1作sum=0和x=1;
5.2对于从1变到30*2L的I,进行以下三个操作:
计算y:y=u2*(tab2[i+K-1]-tab1[i+K])*(tab2[0]-
vi*tab2[i])+u*tab1[0]*(tab1[i+K-1]-tab2[i+K-1]),
将y*x加到sum;
执行x=x*u;
5.3执行P(K)=u(K-1)*sum;
6.计算P(1):
如同步骤5的方法,用1代替k;
7.计算Q(K);
7.1作sum=0,sum2=0以及x=1;
7.2对于从1变到30*2L的i,
将i*log2(i)*u(i-2)加到sum2;
执行下面三个操作:
计算y=u2*(tab2[i+K-1]-
tab1[i+K])*((i+k)*tab2[0]-vi*tab2[i])-2(-L)*sum2)+u*(i+K-
1)*tab1[0]*(tab1[i+K-1]-tab2[i+K=1]),
将y*x加到sum,
执行x=x*u;
7.3执行Q(K)=u(k-1)*sum
8.计算Q(1)
如同步骤7的方法,用1代替K;
9.计算C(L,K) c ( L , K ) = ( 1 - 2 / Var * ( P ( 1 ) - P ( K ) - ( Q ( 1 ) - Q ( K ) ) / K ) .
5.一种按照权利要求2的方法,特征是函数C(L,K)包含二个步骤:
步骤1.读出e(L)和d(L)的值,e和d是实数,对于在3和16之间的L列于下表:
L       d(L)       e(L)
3   0.2732725   0.4890883
4   0.3045101   0.4435381
5   0.3296587   0.4137196
6   0.3489769   0.3941338
7   0.3631815   0.3813210
8   0.3732189   0.3730195
9   0.3800637   0.3677118
10  0.3845867   0.3643695
11  0.3874942   0.3622979
12  0.3893189   0.3610336
13  0.3904405   0.3602731
14  0.3911178   0.3598216
15  0.3915202   0.3595571
16  0.3917561   0.3594040
步骤2.利用下面公式计算值C(L,K): c ( L , K ) = ( d ( L ) + e ( L ) * 2 L / K ) ;
6.一种按照权利要求3的方法,特征是函数C(L,K)的计算借助下列公式实现: c ( L , K ) = ( 1 - 6 / Π 2 + 2 / Π 2 * ( 4 * log ( 2 ) - 1 ) * 2 L / K ) ;
7.一种电子设备,用于自检查集成电路的物理完整性的自检查和检查随机发生器的完整性,以便保证后者基本上正确地运行并不呈现任何随恶意源的外部参数变化的漂移,特别是例如按照权利要求1到3中的任何一个,由感应辐射引起的变化。
8.一种按照权利要求7的电子设备,其特征是,执行该测试的设备是一种便携设备。
9.一种按照权利要求8的电子设备,其特征是,该设备是芯片卡、无接触点卡、PCMCIA卡、标记或智能表。
10.一种按照权利要求1到6中的任何一个的电子设备,其特征是,执行该测试的外部设备包含为测试所述便携设备中装有的随机发生器的正确运行而设计的机器或装置。
CN99812290A 1998-08-17 1999-08-16 测试随机数源的方法和含有所述方法的电子设备 Pending CN1323477A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR9810592A FR2782401B1 (fr) 1998-08-17 1998-08-17 Procede de test de source de nombre aleatoire et dispositifs electroniques comprenant ce procede
FR98/10592 1998-08-17

Publications (1)

Publication Number Publication Date
CN1323477A true CN1323477A (zh) 2001-11-21

Family

ID=9529805

Family Applications (1)

Application Number Title Priority Date Filing Date
CN99812290A Pending CN1323477A (zh) 1998-08-17 1999-08-16 测试随机数源的方法和含有所述方法的电子设备

Country Status (8)

Country Link
US (1) US6990201B1 (zh)
EP (1) EP1105997A1 (zh)
JP (1) JP2002523815A (zh)
CN (1) CN1323477A (zh)
AU (1) AU5173299A (zh)
FR (1) FR2782401B1 (zh)
MX (1) MXPA01001785A (zh)
WO (1) WO2000010284A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8396213B2 (en) 2005-01-21 2013-03-12 Certicom Corp. Elliptic curve random number generation
US20130031010A1 (en) * 2011-07-28 2013-01-31 VGO Communications, Inc. Method & apparatus for configuring a remote product management service
US20150199175A1 (en) * 2013-02-14 2015-07-16 Yongge Wang Systems and Methods for Performing Randomness and Pseudorandomness Generation, Testing, and Related Cryptographic Techniques
US11133935B2 (en) 2019-09-30 2021-09-28 Bank Of America Corporation System for integrity validation of authorization data using cryptographic hashes

Also Published As

Publication number Publication date
FR2782401A1 (fr) 2000-02-18
WO2000010284A8 (fr) 2001-06-07
US6990201B1 (en) 2006-01-24
EP1105997A1 (fr) 2001-06-13
AU5173299A (en) 2000-03-06
JP2002523815A (ja) 2002-07-30
MXPA01001785A (es) 2004-03-19
WO2000010284A1 (fr) 2000-02-24
FR2782401B1 (fr) 2001-08-24

Similar Documents

Publication Publication Date Title
CN1193294C (zh) 一种多通道多位并行计算crc码的方法
CN1744083A (zh) 模糊重复的鲁棒检测器
CN1221889C (zh) 一种随机数产生装置
CN1381095A (zh) 推荐用于第三代码分多址的turbo码交错器的有效实现
CN107733655B (zh) 一种基于多项式重构的apuf安全认证方法
CN1439997A (zh) 指纹识别方法与系统
CN1425231A (zh) 椭圆曲线上的密码学方法
CN104796250A (zh) 针对RSA密码算法M-ary实现的侧信道攻击方法
CN100476824C (zh) 存储元素的方法与系统及查找元素的方法与系统
Anh et al. Recognition of an organism from fragments of its complete genome
CN1770094A (zh) 高质量的真随机数产生器
Opper et al. Worst case prediction over sequences under log loss
CN105005464B (zh) 一种Burrows Wheeler变换硬件处理装置
CN1323477A (zh) 测试随机数源的方法和含有所述方法的电子设备
CN1236582C (zh) 伪随机序列发生器及有关的方法
CN104811297A (zh) 针对RSA之M-ary实现模乘余数输入侧信道攻击
Salamin et al. Towards building the tree of life: a simulation study for all angiosperm genera
Ryabko et al. “Book stack” as a new statistical test for random numbers
CN104270225B (zh) 一种差错控制编码的码字类型盲识别方法
Zhang et al. A program plagiarism detection model based on information distance and clustering
Li et al. A human-computer interactive dynamic description method for Jiaguwen Characters
CN1449609A (zh) 由包括在确定间隔内的质数形成电子密钥的方法及采用该方法的装置
CN104199635B (zh) 集成crc校验电路的伪随机数发生器
CN1556602A (zh) 一种有限精度下的混沌密码产生方法
Sul et al. An experimental analysis of consensus tree algorithms for large-scale tree collections

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