CN101996065A - 随机数发生器和随机数生成方法 - Google Patents

随机数发生器和随机数生成方法 Download PDF

Info

Publication number
CN101996065A
CN101996065A CN2009101684905A CN200910168490A CN101996065A CN 101996065 A CN101996065 A CN 101996065A CN 2009101684905 A CN2009101684905 A CN 2009101684905A CN 200910168490 A CN200910168490 A CN 200910168490A CN 101996065 A CN101996065 A CN 101996065A
Authority
CN
China
Prior art keywords
control data
random number
candidate
hyte
master 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.)
Granted
Application number
CN2009101684905A
Other languages
English (en)
Other versions
CN101996065B (zh
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.)
Xidian University
Sony Corp
Original Assignee
Xidian University
Sony Corp
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 Xidian University, Sony Corp filed Critical Xidian University
Priority to CN200910168490.5A priority Critical patent/CN101996065B/zh
Publication of CN101996065A publication Critical patent/CN101996065A/zh
Application granted granted Critical
Publication of CN101996065B publication Critical patent/CN101996065B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

随机数发生器和随机数生成方法。随机数发生器包括:带进位反馈移位寄存器;候选随机数产生装置,响应于所述带进位反馈移位寄存器处于其状态序列中的预定状态,基于所述带进位反馈移位寄存器的主寄存器中的位,通过指定逻辑产生至少两个候选随机数,其中所基于的主寄存器中的位的数目不少于要产生的随机数的位数;控制数据产生装置,基于所述预定状态下所述主寄存器中的位,通过另一指定逻辑产生控制数据,其中所述控制数据的可能值的数目不少于所述候选随机数的数目;和选择装置,根据所述控制数据的值选择所述至少两个候选随机数中相应的候选随机数,作为所产生的随机数。

Description

随机数发生器和随机数生成方法
技术领域
本发明涉及随机数的生成。更具体地,本发明涉及基于带进位反馈移位寄存器(FCSR;Feedback with Carry Shift Register)的随机数发生器和随机数生成方法,及其在流密码中的应用。
背景技术
随着计算机网络的普及以及各种数字化技术的迅猛发展,人们已经习惯了通过各种数字化手段来传递重要和敏感的信息。具体地,在各种信息传送系统中,对在合法设备之间的数据传输需要进行加密保护,以防止被第三方窃听、盗取。例如在数字电视领域,在合法的视频源设备与显示设备的接口间需要进行加密保护,以防止影音内容被非法窃取、肆意盗版。可采用流密码技术进行加密保护。
流密码技术需要使用随机数发生器。在流密码应用中,发送方用随机数发生器顺序生成的各个随机数加密内容流的相应部分,并将加密的内容以流的方式传送到接收方。接收方用随机数发生器生成与发送方所使用的随机数序列相同的(即同步的)随机数序列,并且随机数序列中的随机数解密相应的加密内容部分,从而得到解密的内容流。
例如在宽带数字内容保护(HDCP)系统中使用了流密码技术。HDCP的流密码保护机制包含三个线性反馈移位寄存器(LFSR)来形成随机数发生器,输入密钥长度为56比特。此外,Klapper和Goresky在“2-adic shiftregisters”,Fast Software Encryption-FSE′93提出了带进位反馈移位寄存器FCSR。在F.Arnault等人的文章“F-FCSR Stream Ciphers”,卷4986,Lecture Notes in Computer Science,170-178页,Springer,2008(也参见http://www.info.ucl.ac.be/Bienvenue/PagesPersonnelles/lauradou/publis/ffcsr.pdf)介绍了FCSR在流密码技术中被应用于随机数发生器。
传统的基于LFSR或FCSR的随机数发生器与时钟同步地逐位输出,因而随机数的生成速度较低。
发明内容
本发明的一个目的在于提供一种基于带进位反馈移位寄存器的随机数发生器,其能够以较快的速度来生成随机数。
本发明的一个实施例是一种随机数发生器,包括:带进位反馈移位寄存器;候选随机数产生装置,响应于所述带进位反馈移位寄存器处于其状态序列中的预定状态,基于所述带进位反馈移位寄存器的主寄存器中的位,通过指定逻辑产生至少两个候选随机数,其中所基于的主寄存器中的位的数目不少于要产生的随机数的位数;控制数据产生装置,基于所述预定状态下所述主寄存器中的位,通过另一指定逻辑产生控制数据,其中所述控制数据的可能值的数目不少于所述候选随机数的数目;和选择装置,根据所述控制数据的值选择所述至少两个候选随机数中相应的候选随机数,作为所产生的随机数。
在上述随机数发生器中,至少两个候选随机数的相同位可以基于所述主寄存器中的相同位,并且不同位可以基于所述主寄存器中的不同位。
在上述随机数发生器中,控制数据的不同位可以基于所述主寄存器中的不同位。
在上述随机数发生器中,各候选随机数包括至少两个位或位组,控制数据包括分别与各候选随机数的每个位或位组对应的子控制数据,控制数据产生装置可以包括多个控制数据产生单元,每个产生子控制数据之一,选择装置根据每个子控制数据选择各候选随机数的相应位或位组中的位或位组,以组成随机数。
在上述随机数发生器中,控制数据的产生可以基于线性变换。
在上述随机数发生器中,带进位反馈移位寄存器的级数可以为n≥160,其联结系数q可以是长度为n+1比特的素数,且满足以下条件:2模q的阶是|q|-1,(|q|-1)/2是素数并且(|q|+1)/2的汉明重量大于n/2比特,至少两个候选随机数的相同位基于所述主寄存器中的相同位,并且不同位基于所述主寄存器中的不同位,控制数据的不同位基于所述主寄存器中的不同位,各候选随机数包括至少两个位或位组,控制数据包括分别与所述候选随机数的每个位或位组对应的子控制数据,控制数据产生装置包括多个控制数据产生单元,每个通过线性变换产生子控制数据之一,选择装置根据每个子控制数据选择各候选随机数的相应位或位组中的位或位组,以组成随机数。进一步地,n为160,候选随机数为8位,数目为2,其中一个候选随机数根据所述主寄存器中的最低8位来产生,另一个候选随机数为所述候选随机数的取反值,并且每个子控制数据的位数为1。
本发明的另一个实施例是一种随机数生成方法,包括:响应于带进位反馈移位寄存器处于其状态序列中的预定状态,基于所述带进位反馈移位寄存器的主寄存器中的位,通过指定逻辑产生至少两个候选随机数,其中所基于的主寄存器中的位的数目不少于要产生的随机数的位数;基于所述预定状态下所述主寄存器中的位,通过另一指定逻辑产生控制数据,其中所述控制数据的可能值的数目不少于所述候选随机数的数目;和根据所述控制数据的值选择所述至少两个候选随机数中相应的候选随机数,作为所产生的随机数。
根据本发明的实施例,由于在带进位反馈移位寄存器的每个移位状态下能够生成一个随机数而不是一个随机位,因而能够提高随机数生成的速度。
附图说明
参照下面结合附图对本发明实施例的说明,会更加容易地理解本发明的以上和其它目的、特点和优点。在附图中,相同的或对应的技术特征或部件将采用相同或对应的附图标记来表示。在附图中不必依照比例绘制出单元的尺寸和相对位置。
图1为带进位反馈移位寄存器FCSR的一种示例性结构的框图;
图2为根据本发明一个实施例的随机数发生器的示例性结构的框图;
图3为根据本发明一个实施例的随机数生成方法的流程图;
图4为控制数据产生装置的一种示例性结构的框图;
图5为根据本发明一个实施例的随机数发生器的示例性结构的框图;
图6为示出实现本发明实施例的计算机的示例性结构的框图。
具体实施方式
下面参照附图来说明本发明的实施例。应当注意,为了清楚的目的,附图和说明中省略了与本发明无关的、本领域普通技术人员已知的部件和处理的表示和描述。
为便于说明本发明的实施例,下面参考图1来说明带进位反馈移位寄存器FCSR的基本结构。如图1所示,FCSR 100包括加法器101、寄存器102和进位寄存器103。寄存器102的级数(也称为FCSR的级数)为r。抽头系数q1,q2,...,qr∈GF(2)。所有抽头系数构成联结系数q。在本说明书中将寄存器也称为主寄存器。
在某时刻进位寄存器103的值为mn-1∈N,寄存器102每个位的值为an-1,an-2,...,an-r+1,an-r∈GF(2)。FCSR按以下规则操作:
(1)计算整数和 σ = Σ i = 1 r q i a n - i + m n - i ;
(2)寄存器102右移1位,输出最右边的位an-r
(3)计算an=σmod 2并存储在寄存器102的最左位中;
(4)计算mn=(σ-an)/2并存储在进位寄存器103中。
每次经过上述操作后寄存器102所取的值被称为FCSR的一个状态。连接进行上述操作,FCSR会呈现出一个状态序列。
图2为根据本发明一个实施例的随机数发生器的示例性结构的框图。
如图2所示,随机数发生器包括FCSR 200、候选随机数产生装置202、控制数据产生装置203和选择装置204。
FCSR 200的结构可以与图1所示的相似,然而FCSR 200中的主寄存器201的任何位的值能够根据需要被输出到候选随机数产生装置202和控制数据产生装置203。
候选随机数产生装置202响应于FCSR 200处于其状态序列中的预定状态,基于FCSR 200的主寄存器201中的位,通过指定逻辑产生至少两个候选随机数,其中所基于的主寄存器中的位的数目不少于要产生的随机数的位数。
这里所说的“逻辑”包括但不限于位的组合、“与”、“或”、“非”、“异或”、“同或”或其结合。
可以根据任何指定的规则来决定FCSR的状态序列中的预定状态。例如,可以将状态序列中的每个状态作为预定状态;将奇数或偶数状态作为预定状态;将状态序列中由指定顺序函数的值所指示的状态作为预定状态;将随机指定的状态序列中的状态作为预定状态。需要注意的是,在例如流密码的加密解密应用中,出于同步的需要,加密方和解密方所采用的规则应当一致,以保证用基于一个状态生成的随机数加密的内容能够用基于相同状态生成的随机数解密。
另外,如所属技术领域的技术人员已知的,在FCSR开始操作之前,需要用初始密钥及向量值对FCSR进行初始化。在本发明的优选实施例中,为提高随机数发生器的安全性,状态序列可以只包括从FCSR初始化开始经过若干次操作之后的状态。例如,上述若干次操作可以是至少r次操作,其中r为FCSR的级数。优选地,密钥长度为r/2位,并且初始化向量长度大于等于r/5位并且小于等于n/2位。
为减少候选随机数的不同位之间的相关性,生成候选随机数时所基于的主寄存器中的位的数目不少于要产生的随机数的位数。
可以用所基于的FCSR主寄存器201中的位,通过相应的指定逻辑来产生各个候选随机数。
在一个例子中,假设随机数为m位,所基于的主寄存器中的位的数目为n>=m,ai表示所基于的主寄存器中的n个位中挑选出来的第i个位的取值,
Figure B2009101684905D0000051
ai表示ai的反值,则候选随机数N可以表示为位组b1b2...bm,其中bi选自{ai
Figure B2009101684905D0000052
ai}。在这种情况下,位组b1b2...bm的各种组合的数目最多可以有2m个。当然,可以只将所有可能的候选随机数的一部分作为要产生的候选随机数。
在另一个例子中,位bi的选择范围可以是采用指定逻辑根据主寄存器中的n位中的多个位计算的值,和所计算的值的反值。
在另一个例子中,位组b1b2...bm由位数相同且大于1的子位组构成,且每个子位组可以选自一个子位组候选值集合,该集合包括采用指定逻辑根据主寄存器中的n位的多个位计算的子位组候选值,和采用不同于指定逻辑的另一逻辑(例如指定逻辑的取反)根据主寄存器中的n位中的多个位计算的子位组候选值。
在另一个例子中,位bi或子位组的选择范围不限于两个值,而是可以包括两个以上的值。可采用两个以上不同的逻辑根据主寄存器中的n位的多个位计算这些值。
控制数据产生装置203基于上述预定状态下FCSR 200的主寄存器201中的位,通过指定逻辑产生控制数据,其中控制数据的可能值的数目不少于候选随机数的数目。
对于n个二进制位而言,能够表示的不同信息的数目最多为2n个。因而在采用相同方法产生控制数据的情况下,基于主寄存器中的n位产生的控制数据的可能取值最多为2n个。为了能够在控制数据的可能取值与候选随机数之间建立对应关系以根据控制数据的值来分辨(选择)相应的候选随机数,应使得控制数据的可能值的数目不少于候选随机数的数目。
可采用任何方法来根据主寄存器中的位产生控制数据。
在一个例子中,假设控制数据为m位,所基于的主寄存器中的位的数目为n,ai表示所述n位中挑选出来的第i个位的取值,则控制数据M可以表示为位组b1b2...bm,其中bi=ai
在另一个例子中,位bi可以是采用指定逻辑根据主寄存器中的n位的多个位计算的值。
在另一个例子中,位组b1b2...bm由位数相同且大于1的子位组构成,且每个子位组可以选自一个子位组候选集合,该集合的每个子位组候选是采用指定逻辑根据主寄存器中的n位的相应多个位计算的值。
优选地,可以通过线性变换将主寄存器中的n位组成的位组转换成控制数据。
选择装置204根据控制数据的值选择候选随机数中相应的候选随机数,作为所产生的随机数。例如,如果候选随机数的数目为2,控制数据的值可以为0或1,则可以在控制数据取0值的情况下选择一个候选随机数,而在控制数据取1值的情况下选择另一个候选随机数,反之亦然。
可以采用各种方式来选择候选随机数。
在一个例子中,选择装置204可以从候选随机数产生装置202得到所有候选随机数,并且根据从控制数据产生装置203得到的控制数据来选择相应的候选随机数。
在另一个例子中,假设候选随机数可以表示为位组b1b2...bm,其中bi可以是单个位或位组,并且控制数据可以表示为位组c1c2...cm。选择装置204从候选随机数产生装置202得到每个bi的所有候选。例如,假设每个bi可以有Q个候选,那么候选随机数产生装置202可以产生Q个候选随机数,其中第j(1≤j≤Q)个候选随机数由b1,b2,...,bm的第j个候选组成。选择装置204根据ci来选择bi的所有候选中的相应候选,然后用所选择的候选组成最终的随机数。
在选择出候选随机数之后,随机数发生器可以根据下一个预定状态来生成下一个随机数。
由于涉及的是位的逻辑操作,与FCSR类似,图2所示的各个装置可以采用诸如组合逻辑的硬件电路、可编辑逻辑来实现,也可以通过诸如中央处理单元(CPU)的处理器根据程序代码来执行预定处理来实现。
图3为根据本发明一个实施例的随机数生成方法的流程图。
如图3所示,方法从步骤301开始。
在步骤303,FCSR进入状态序列的预定状态。可以根据任何指定的规则来决定FCSR的状态序列中的预定状态。例如,可以将状态序列中的每个状态作为预定状态;将奇数或偶数状态作为预定状态;将状态序列中由指定顺序函数的值所指示的状态作为预定状态;将随机指定的状态序列中的状态作为预定状态。需要注意的是,在例如流密码的加密解密应用中,出于同步的需要,加密方和解密方所采用的规则应当一致,以保证用基于一个状态生成的随机数加密的内容能够用基于相同状态生成的随机数解密。
如所属技术领域的技术人员已知的,在FCSR开始操作之前,需要用初始密钥及向量值对FCSR进行初始化。在本发明的优选实施例中,为提高随机数发生器的安全性,状态序列可以只包括从FCSR初始化开始经过若干次操作之后的状态。例如,上述若干次操作可以是至少r次操作,其中r为FCSR的级数。
在步骤305,响应于FCSR处于其状态序列中的预定状态,基于FCSR的主寄存器中的位,通过指定逻辑产生至少两个候选随机数,其中所基于的主寄存器中的位的数目不少于要产生的随机数的位数。
为减少候选随机数的不同位之间的相关性,所基于的主寄存器中的位的数目不少于要产生的随机数的位数。可以通过相应的指定逻辑用主寄存器中的位来产生各个候选随机数。
在步骤307,基于上述预定状态下FCSR的主寄存器中的位,通过指定逻辑产生控制数据,其中所述控制数据的可能值的数目不少于候选随机数的数目。
对于n个二进制位而言,能够表示的不同信息的数目最多为2n个。因而在采用相同方法产生控制数据的情况下,基于主寄存器中的n个位产生的控制数据的可能取值最多为2n个。为了能够在控制数据的可能取值与候选随机数之间建立对应关系以根据控制数据的值来分辨(选择)相应的候选随机数,应使得控制数据的可能值的数目不少于候选随机数的数目。
可采用任何方法来基于主寄存器中的位产生控制数据。优选地,可以通过线性变换将主寄存器中的位组成的位组转换成控制数据。
在步骤309,根据控制数据的值选择候选随机数中相应的候选随机数,作为所产生的随机数。例如,如果候选随机数的数目为2,控制数据的值可以为0或1,则可以在控制数据取0值的情况下选择一个候选随机数,而在控制数据取1值的情况下选择另一个候选随机数,反之亦然。
可以采用各种方式来选择候选随机数。在一个例子中,假设候选随机数可以表示为位组b1b2...bm,其中bi可以是单个位或位组,并且控制数据可以表示为位组c1c2...cm。可以得到每个bi的所有候选。例如,假设每个bi可以有Q个候选,那么可以产生Q个候选随机数,其中第j(1≤j≤Q)个候选随机数由b1,b2,...,bm的第j个候选组成。根据ci来选择bi的所有候选中的相应候选,然后用所选择的候选组成最终的随机数。
在步骤311,确定是否停止随机数生成。如果不停止,则返回到步骤303继续产生下一个随机数。如果停止,则方法在步骤313结束。
在一个优选实施例中,所产生的各个候选随机数的相同位基于主寄存器中的相同位,并且不同位基于主寄存器中的不同位。这样可以减弱候选随机数中不同位之间的相关性。
在一个优选实施例中,控制数据的不同位基于主寄存器中的不同位。这样可以减弱控制数据中不同位之间的相关性。
在一个优选实施例中,候选随机数包括t(>1)个位,控制数据包括分别与候选随机数的每个位对应的子控制数据。在这样的情况下,如图4所示,控制数据产生装置203包括多个控制数据产生单元4031至403t,每个产生子控制数据之一。这样,可以分别根据各个子控制数据来选择候选随机数的每个候选位,并用所选择的各个候选位来组成最终的随机数。
下面结合图5来说明图2的随机数发生器的一个具体示例。
图5为根据本发明一个实施例的随机数发生器的示例性结构的框图。
如图5所示,随机数发生器包括FCSR 500、候选随机数产生装置502、控制数据产生装置503和选择装置504。
FCSR 500的级数为n,n≥160,其联结系数q是长度为n+1比特的素数,且满足以下条件:2模q的阶是q的绝对值(|q|)减1;(|q|-1)/2也是素数;(|q|+1)/2的汉明重量要大于n/2比特。
要生成的随机数为t位,控制数据包括分别与候选随机数的位1至位t对应的子控制数据1至子控制数据t。控制数据产生装置503包括多个控制数据产生单元5031至503t,分别通过线性变换产生子控制数据1至子控制数据t。
对于位1至位t的每个位,候选随机数产生装置502基于主寄存器中的相同位产生该位,并且对于位1至位t的不同位,候选随机数产生装置502基于主寄存器中的不同位分别产生这些不同的位。
控制数据产生单元5031至503t分别基于主寄存器中的不同位产生各自的子控制数据1至子控制数据t。
选择单元504分别根据各个子控制数据1至子控制数据t来选择候选随机数的相应位1至位t的候选位,并用所选择的各个候选位来组成最终的随机数。
在图5所示的随机数发生器的一个更具体的例子中,n为160,t为8,每个子控制数据的位数为1,联结系数q=-19935245913182750153280416113442150364 60140087963。
候选随机数产生装置502从FCSR 500的主寄存器501的最低8位获得8位位组,作为第一个候选随机数,并且对这个8位位组逐位取反,获得第二个候选随机数。
控制数据产生单元5031从FCSR 500的主寄存器501得到位置为对8取模余0的20个位,并通过对这20个位进行逻辑异或运算来将其压缩为1个位。
控制数据产生单元5032从FCSR 500的主寄存器501得到位置为对8取模余1的20个位,并通过对这20个位进行逻辑异或运算来将其压缩为1个位。
控制数据产生单元5033从FCSR 500的主寄存器501得到位置为对8取模余2的20个位,并通过对这20个位进行逻辑异或运算来将其压缩为1个位。
控制数据产生单元5034从FCSR 500的主寄存器501得到位置为对8取模余3的20个位,并通过对这20个位进行逻辑异或运算来将其压缩为1个位。
控制数据产生单元5035从FCSR 500的主寄存器501得到位置为对8取模余4的20个位,并通过对这20个位进行逻辑异或运算来将其压缩为1个位。
控制数据产生单元5036从FCSR 500的主寄存器501得到位置为对8取模余5的20个位,并通过对这20个位进行逻辑异或运算来将其压缩为1个位。
控制数据产生单元5037从FCSR 500的主寄存器501得到位置为对8取模余6的20个位,并通过对这20个位进行逻辑异或运算来将其压缩为1个位。
控制数据产生单元5038从FCSR 500的主寄存器501得到位置为对8取模余7的20个位,并通过对这20个位进行逻辑异或运算来将其压缩为1个位。
可选地,控制数据产生单元503i也可以得到FCSR 500的主寄存器501中位置为对8取模余(i-1)的20个位中的第3、4、6、7、8、10、13、15、17、19位,并通过对这10个位进行逻辑异或运算来将其压缩为1个位。
可选地,控制数据产生单元503i也可以得到FCSR 500的主寄存器501中除10、20之外其它数目的位,并通过对这些个位进行逻辑异或运算来将其压缩为1个位。
控制数据产生单元5031至控制数据产生单元5038所得到的8个位组成控制数据。
选择装置504根据下述逻辑来选择随机数的每个位Oi
Figure B2009101684905D0000101
其中Ti表示控制数据的第i位,Li表示第一个候选随机数的第i位,Ii表示第二个候选随机数的第i位,
Figure B2009101684905D0000102
表示取反,OR表示逻辑或,AND表示逻辑与。
需要注意,在结合图5描述的例子中,各个控制数据产生单元获得的FCSR的主寄存器中的各个位的位置不限于所说明的情况,并且联结系数也不限于所示例的值。
根据本发明实施例的随机数发生器能够提高加扰机制的安全性,并且具有以下优点的至少之一:密钥规模大(160比特)、周期大、生成方式简单、快速、安全性好,可以有效地用于信息传输系统的加密保护。
此外还应注意,根据本发明实施例的随机数发生器也能够适用于通信、数字电路测试、雷达、遥控、无线电测量等领域。
图6是示出其中实现本发明的计算机的示例性结构的框图。
本发明的设备和方法实现环境如图6所示。
在图6中,中央处理单元(CPU)601根据只读映射数据(ROM)602中存储的程序或从存储部分608加载到随机存取映射数据(RAM)603的程序执行各种处理。在RAM 603中,也根据需要存储当CPU 601执行各种处理等等时所需的数据。
CPU 601、ROM 602和RAM 603经由总线604彼此连接。输入/输出接口605也连接到总线604。
下述部件连接到输入/输出接口605:输入部分606,包括键盘、鼠标等等;输出部分607,包括显示器,比如阴极射线管(CRT)、液晶显示器(LCD)等等,和扬声器等等;存储部分608,包括硬盘等等;和通信部分609,包括网络接口卡比如LAN卡、调制解调器等等。通信部分609经由网络比如因特网执行通信处理。
根据需要,驱动器610也连接到输入/输出接口605。可拆卸介质611比如磁盘、光盘、磁光盘、半导体映射数据等等根据需要被安装在驱动器610上,使得从中读出的计算机程序根据需要被安装到存储部分608中。
在通过软件实现上述步骤和处理的情况下,从网络比如因特网或存储介质比如可拆卸介质611安装构成软件的程序。
本领域的技术人员应当理解,这种存储介质不局限于图6所示的其中存储有程序、与方法相分离地分发以向用户提供程序的可拆卸介质611。可拆卸介质611的例子包含磁盘、光盘(包含光盘只读映射数据(CD-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD)和半导体映射数据。或者,存储介质可以是ROM 602、存储部分608中包含的硬盘等等,其中存有程序,并且与包含它们的方法一起被分发给用户。
在前面的说明书中参照特定实施例描述了本发明。然而本领域的普通技术人员理解,在不偏离如权利要求书限定的本发明的范围的前提下可以进行各种修改和改变。

Claims (14)

1.一种随机数发生器,包括:
带进位反馈移位寄存器;
候选随机数产生装置,响应于所述带进位反馈移位寄存器处于其状态序列中的预定状态,基于所述带进位反馈移位寄存器的主寄存器中的位,通过指定逻辑产生至少两个候选随机数,其中所基于的主寄存器中的位的数目不少于要产生的随机数的位数;
控制数据产生装置,基于所述预定状态下所述主寄存器中的位,通过另一指定逻辑产生控制数据,其中所述控制数据的可能值的数目不少于所述候选随机数的数目;和
选择装置,根据所述控制数据的值选择所述至少两个候选随机数中相应的候选随机数,作为所产生的随机数。
2.如权利要求1所述的随机数发生器,其中,所述至少两个候选随机数的相同位基于所述主寄存器中的相同位,并且不同位基于所述主寄存器中的不同位。
3.如权利要求1所述的随机数发生器,其中,所述控制数据的不同位基于所述主寄存器中的不同位。
4.如权利要求1所述的随机数发生器,其中,所述各候选随机数包括至少两个位或位组,所述控制数据包括分别与所述各候选随机数的每个位或位组对应的子控制数据,所述控制数据产生装置包括多个控制数据产生单元,每个产生所述子控制数据之一,所述选择装置根据每个所述子控制数据选择所述各候选随机数的相应位或位组中的位或位组,以组成所述随机数。
5.如权利要求1所述的随机数发生器,其中所述控制数据的产生基于线性变换。
6.如权利要求1所述的随机数发生器,其中,所述带进位反馈移位寄存器的级数为n≥160,其联结系数q是长度为n+1比特的素数,且满足以下条件:
2模q的阶是|q|-1,(|q|-1)/2是素数并且(|q|+1)/2的汉明重量大于n/2比特,
所述至少两个候选随机数的相同位基于所述主寄存器中的相同位,并且不同位基于所述主寄存器中的不同位,所述控制数据的不同位基于所述主寄存器中的不同位,
所述各候选随机数包括至少两个位或位组,所述控制数据包括分别与所述候选随机数的每个位或位组对应的子控制数据,
所述控制数据产生装置包括多个控制数据产生单元,每个通过线性变换产生所述子控制数据之一,
所述选择装置根据每个所述子控制数据选择所述各候选随机数的相应位或位组中的位或位组,以组成所述随机数。
7.如权利要求6所述的随机数发生器,其中,n为160,所述候选随机数为8位,数目为2,其中一个候选随机数根据所述主寄存器中的最低8位来产生,另一个候选随机数为所述候选随机数的取反值,并且
每个子控制数据的位数为1。
8.一种随机数生成方法,包括:
响应于带进位反馈移位寄存器处于其状态序列中的预定状态,基于所述带进位反馈移位寄存器的主寄存器中的位,通过指定逻辑产生至少两个候选随机数,其中所基于的主寄存器中的位的数目不少于要产生的随机数的位数;
基于所述预定状态下所述主寄存器中的位,通过另一指定逻辑产生控制数据,其中所述控制数据的可能值的数目不少于所述候选随机数的数目;和
根据所述控制数据的值选择所述至少两个候选随机数中相应的候选随机数,作为所产生的随机数。
9.如权利要求8所述的随机数生成方法,其中所述至少两个候选随机数的相同位基于所述主寄存器中的相同位,并且不同位基于所述主寄存器中的不同位。
10.如权利要求8所述的随机数生成方法,其中,所述控制数据的不同位基于所述主寄存器中的不同位。
11.如权利要求8所述的随机数生成方法,其中,所述各候选随机数包括至少两个位或位组,所述控制数据包括分别与所述各候选随机数的每个位或位组对应的子控制数据,所述控制数据的产生包括分别产生所述子控制数据,所述选择包括根据每个所述子控制数据选择所述各候选随机数的相应位或位组中的位或位组,以组成所述随机数。
12.如权利要求8所述的随机数生成方法,其中,所述控制数据的产生基于线性变换。
13.如权利要求8所述的随机数生成方法,其中,所述带进位反馈移位寄存器的级数为n≥160,其联结系数q是长度为n+1比特的素数,且满足以下条件:
2模q的阶是|q|-1,(|q|-1)/2是素数并且(|q|+1)/2的汉明重量大于n/2比特,
所述至少两个候选随机数的相同位基于所述主寄存器中的相同位,并且不同位基于所述主寄存器中的不同位,所述控制数据的不同位基于所述主寄存器中的不同位,
所述各候选随机数包括至少两个位或位组,所述控制数据包括分别与所述候选随机数的每个位或位组对应的子控制数据,
所述控制数据的产生包括分别产生所述子控制数据,
所述选择包括根据每个所述子控制数据选择所述各候选随机数的相应位或位组中的位或位组,以组成所述随机数。
14.如权利要求13所述的随机数生成方法,其中,n为160,所述候选随机数为8位,数目为2,其中一个候选随机数根据所述主寄存器中的最低8位来产生,另一个候选随机数为所述候选随机数的取反值,并且
每个子控制数据的位数为1。
CN200910168490.5A 2009-08-26 2009-08-26 随机数发生器和随机数生成方法 Expired - Fee Related CN101996065B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910168490.5A CN101996065B (zh) 2009-08-26 2009-08-26 随机数发生器和随机数生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910168490.5A CN101996065B (zh) 2009-08-26 2009-08-26 随机数发生器和随机数生成方法

Publications (2)

Publication Number Publication Date
CN101996065A true CN101996065A (zh) 2011-03-30
CN101996065B CN101996065B (zh) 2015-08-05

Family

ID=43786255

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910168490.5A Expired - Fee Related CN101996065B (zh) 2009-08-26 2009-08-26 随机数发生器和随机数生成方法

Country Status (1)

Country Link
CN (1) CN101996065B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103645882A (zh) * 2013-12-09 2014-03-19 中颖电子股份有限公司 基于单片机的批量乱序随机数的生成方法
CN104978167A (zh) * 2014-04-11 2015-10-14 西门子公司 随机数发生器和用于产生随机数的方法
CN107004084A (zh) * 2014-12-08 2017-08-01 密码研究公司 用于加密操作的乘法掩码
CN110058842A (zh) * 2019-03-14 2019-07-26 西安电子科技大学 一种结构可变的伪随机数生成方法及装置
CN111506296A (zh) * 2020-04-24 2020-08-07 盛科网络(苏州)有限公司 基于lfsr的报文采样方法及系统
CN115113847A (zh) * 2021-03-19 2022-09-27 西安电子科技大学 基于fcsr级联反馈的伪随机数生成器及生成方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1450250B1 (en) * 2003-02-11 2006-08-23 IP-First LLC Random number generator with selectable dual random bit string engines

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103645882A (zh) * 2013-12-09 2014-03-19 中颖电子股份有限公司 基于单片机的批量乱序随机数的生成方法
CN104978167A (zh) * 2014-04-11 2015-10-14 西门子公司 随机数发生器和用于产生随机数的方法
CN104978167B (zh) * 2014-04-11 2019-01-29 西门子公司 随机数发生器和用于产生随机数的方法
CN107004084A (zh) * 2014-12-08 2017-08-01 密码研究公司 用于加密操作的乘法掩码
CN110058842A (zh) * 2019-03-14 2019-07-26 西安电子科技大学 一种结构可变的伪随机数生成方法及装置
CN110058842B (zh) * 2019-03-14 2021-05-18 西安电子科技大学 一种结构可变的伪随机数生成方法及装置
CN111506296A (zh) * 2020-04-24 2020-08-07 盛科网络(苏州)有限公司 基于lfsr的报文采样方法及系统
CN111506296B (zh) * 2020-04-24 2023-08-22 苏州盛科通信股份有限公司 基于lfsr的报文采样方法及系统
CN115113847A (zh) * 2021-03-19 2022-09-27 西安电子科技大学 基于fcsr级联反馈的伪随机数生成器及生成方法

Also Published As

Publication number Publication date
CN101996065B (zh) 2015-08-05

Similar Documents

Publication Publication Date Title
CN106850221B (zh) 信息加密、解密方法及装置
US10489604B2 (en) Searchable encryption processing system and searchable encryption processing method
US20140233727A1 (en) Method for secure substring search
JP2020528232A (ja) 同型暗号化を行う端末装置と、その暗号文を処理するサーバ装置及びその方法
US20120269340A1 (en) Hierarchical encryption/decryption device and method thereof
CN101996065B (zh) 随机数发生器和随机数生成方法
CN109274485B (zh) 一种数据加密方法、数据认证方法及相关设备和系统
KR102297536B1 (ko) 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법
USRE47324E1 (en) Data encryption systems and methods
US20150195089A1 (en) Data scramble device, security device, security system, and data scramble method
US9893880B2 (en) Method for secure symbol comparison
CN107579813A (zh) 信息加密、解密方法及装置
CN106651734A (zh) 二值二维码图像加密、解密的方法和装置
CN109495266B (zh) 基于随机数的数据加密方法及装置
KR20200115408A (ko) 비밀 키에 대한 정족수 설계를 수행하는 장치 및 방법
CN114117502B (zh) 一种数据加解密方法、系统、设备及计算机可读存储介质
CN102394746B (zh) 一种基于数字传感器的称重系统的数据传输方法
Guo et al. Quadratic function chaotic system and its application on digital image encryption
Ye et al. Reversible image hiding algorithm based on compressive sensing and deep learning
CN101582170B (zh) 一种基于椭圆曲线密码体制的遥感图像加密方法
CN115632782B (zh) 基于sm4计数器模式的随机数生成方法、系统及设备
CN114629665B (zh) 一种用于可信计算的硬件平台
CN115225367A (zh) 数据处理方法、装置、计算机设备、存储介质和产品
KR102160294B1 (ko) 비밀 키에 대한 정족수 설계를 수행하는 장치 및 방법
CN110071927B (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150805

CF01 Termination of patent right due to non-payment of annual fee