CN115113847A - 基于fcsr级联反馈的伪随机数生成器及生成方法 - Google Patents

基于fcsr级联反馈的伪随机数生成器及生成方法 Download PDF

Info

Publication number
CN115113847A
CN115113847A CN202110298454.1A CN202110298454A CN115113847A CN 115113847 A CN115113847 A CN 115113847A CN 202110298454 A CN202110298454 A CN 202110298454A CN 115113847 A CN115113847 A CN 115113847A
Authority
CN
China
Prior art keywords
fcsr
ring
register
carry
pseudo
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
CN202110298454.1A
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.)
Xidian University
Original Assignee
Xidian University
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 filed Critical Xidian University
Priority to CN202110298454.1A priority Critical patent/CN115113847A/zh
Publication of CN115113847A publication Critical patent/CN115113847A/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
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
    • 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/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • G06F7/503Half or full adders, i.e. basic adder cells for one denomination using carry switching, i.e. the incoming carry being connected directly, or only via an inverter, to the carry output under control of a carry propagate signal

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种基于FCSR级联反馈的伪随机数生成器及生成方法,其中,伪随机数生成器包括:级联的Ring FCSR模块和非线性滤波模块;其中,级联的Ring FCSR模块包括N个Ring FCSR结构,每个Ring FCSR结构包括r个主寄存器,N≥2,r≥32;相邻两个Ring FCSR结构之间通过第一进位寄存器组级联;第N个Ring FCSR结构通过一延迟寄存器和第二进位寄存器与第一个Ring FCSR结构连接,并通过第三进位寄存器组分别与其余N‑1个Ring FCSR结构连接。本发明通过使用环结构的进位反馈移位寄存器来生成具有高度非线性的驱动序列,并对其进行线性滤波和非线性计算,得到了安全性更高的伪随机序列,避免了现有技术中输出伪随机数安全性较低的缺陷。

Description

基于FCSR级联反馈的伪随机数生成器及生成方法
技术领域
本发明属于信息安全领域,具体涉及一种基于FCSR级联反馈的伪随机数生成器及生成方法。
背景技术
伪随机数生成器(Pseudo-random Number Generator,PRNG)又称确定性随机数发生器,其可生成确定的、可重现的伪随机数。伪随机数生成器广泛应用于包括密码学在内的各个计算机科学领域,例如模拟、Monte Carlo算法、采样、测试,以及许多其他应用。目前广泛采用的伪随机数生成器是伪随机比特生成器,即伪随机数生成器的输出为二进制伪随机序列,两者经常互相等效。主流的伪随机数生成器均采用迭代法来实现,伪随机数生成器将一个较短的随机种子迭代、扩展成一个较长的伪随机序列。
在通常在应用中,PRNG所生成的伪随机数具有一个相对均匀的分布就可以满足应用要求,但在密码学和信息安全等技术领域,对PRNG所生成伪随机数的安全性提出了更高的需求,伪随机数必须具备良好的随机性和较高的不可预测性。此外,从物理实现层面,伪随机数生成器的结构不宜过于复杂,以便快速的生成伪随机数。
专利文献一(公开号:CN 102314332A)公开了一种伪随机数生成装置和方法,该装置包括:第一线性反馈移位寄存器(linear feedback shift register,LFSR)和第二线性反馈移位寄存器LFSR,这两个LFSR位移方向相反,第一LFSR和第二LFSR用于在每个时钟周期产生k个比特,按照第一LFSR的位移方向,将k个比特的第一寄存器值分别与按照第二LFSR的位移方向的反方向的k个比特的第二寄存器值相连接,并分别进行逻辑运算产生k个比特的随机数。专利文献二(公开号:CN 105045561A)公开了一种伪随机数产生方法,该方法对两个以上的伪随机数发生器进行运算,产生长序列周期高速伪随机数,其中每个伪随机数的产生基于并行结构最大线性反馈移位寄存器电路,能实时产生多个数据位的均匀分布伪随机数。
然而,上述两种方法均使用了线性部件和线性运算,虽然电路结构简单,但易被攻击破解;通常使用线性代数攻击就可以恢复其状态值,实现对输出伪随机数的准确预测,因而使得伪随机数的安全性较低。
发明内容
为了解决现有技术中存在的上述问题,本发明提供了一种基于FCSR级联反馈的伪随机数生成器及生成方法。本发明要解决的技术问题通过以下技术方案实现:
一种基于FCSR级联反馈的伪随机数生成器,包括:
级联的Ring FCSR模块,用于产生驱动序列;
非线性滤波模块,连接所述级联的Ring FCSR模块,用于对所述驱动序列进行滤波计算,得到伪随机序列;
其中,所述级联的Ring FCSR模块包括N个Ring FCSR结构,每个所述Ring FCSR结构包括r个主寄存器,N≥2,r≥32;相邻两个所述Ring FCSR结构之间通过第一进位寄存器组级联;第N个Ring FCSR结构通过一延迟寄存器和第二进位寄存器与第一个Ring FCSR结构连接,并通过第三进位寄存器组分别与其余N-1个Ring FCSR结构连接。
在本发明的一个实施例中,所述第一进位寄存器组包括N-2个进位加法器和一个进位减法器DN-1,N;其中,
所述进位加法器Ai,i+1的第一输入端连接第i个Ring FCSR结构的第一个主寄存器,所述进位加法器Ai,i+1的第二输入端接入第i+1个Ring FCSR结构(Ring FCSRi+1)的最后一个主寄存器的移位输入值,所述进位加法器Aj,j+1的输出端连接第i+1个Ring FCSR结构的最后一个主寄存器,其中,1≤i<N-1;
所述进位减法器DN-1,N的第一输入端连接第N-1个Ring FCSR结构的第一个寄存器,所述进位减法器DN-1,N的第二输入端接入第N个Ring FCSR结构的最后一个主寄存器的移位输入值,所述进位减法器DN-1,N的输出端连接第N个Ring FCSR结构的最后一个主寄存器。
在本发明的一个实施例中,所述第二进位寄存器的第一输入端通过所述延迟寄存器连接第N个Ring FCSR结构的第一个主寄存器;
所述第二进位寄存器的第二输入端接入第一个Ring FCSR结构的最后一个主寄存器的移位输入值;
所述第二进位寄存器的输出端连接第一个Ring FCSR结构的最后一个主寄存器。
在本发明的一个实施例中,当N是偶数时,所述第二进位寄存器采用进位减法器,当N是奇数时,所述第二进位寄存器采用进位加法器。
在本发明的一个实施例中,所述第三进位寄存器组包括N-1个寄存器,其中,
第k个寄存器的第一输入端连接第N个Ring FCSR结构的第一个主寄存器;其中,1≤k<N;
第k个寄存器的第二输入端接入第k个Ring FCSR结构的第一个主寄存器的移位输入值;
第k个寄存器的输出端连接第k个Ring FCSR结构的第一个主寄存器。
在本发明的一个实施例中,当N是偶数且k是奇数,或者当N是奇数且k是偶数时,第k个寄存器采用进位减法器;当N是偶数且k是偶数,或者当N是奇数且k是奇数时,第k个寄存器采用进位加法器。
在本发明的一个实施例中,所述非线性滤波模块包括Z个并行排列的逻辑树结构和Z个与所述逻辑树结构(XORS0~XORSZ-1)对应连接的混合记忆逻辑单元;其中,
Figure BDA0002985186950000041
Figure BDA0002985186950000042
表示向下取整;
所述Z个混合记忆逻辑单元的输出端作为整个伪随机数生成器的输出端输出伪随机序列。
在本发明的一个实施例中,所述逻辑树结构为y输入2输出逻辑树。
在本发明的一个实施例中,每个所述逻辑树结构包括多个层向连的2输入异或门。
本发明的另一个实施例提供了一种应用上述实施例所述的基于FCSR级联反馈的伪随机数生成器生成伪随机数的方法,包括:
构建级联的Ring FCSR模块;其中,所述级联的Ring FCSR模块包括N个Ring FCSR结构(,每个所述Ring FCSR结构包括r个主寄存器,N≥2,r≥32;
选取长度为d的密钥对所述级联的Ring FCSR模块进行初始化;其中,d=(N*r)/2;
基于所述级联的Ring FCSR模块中主寄存器的状态值,产生驱动序列;
对所述驱动序列进行滤波计算,得到伪随机序列。
本发明的有益效果:
1、本发明通过使用环结构的进位反馈移位寄存器Ring FCSR生成的具有高度非线性特性的驱动序列,并对其进行线性滤波和非线性计算,得到了安全性更高的伪随机序列,保证了输出的伪随机数的统计特性,避免了现有技术中输出伪随机数安全性较低的缺陷;
2、本发明采用多路线性布尔函数和2-bit混合记忆逻辑单元对驱动序列进行滤波处理,电路结构简单,大幅提高了伪随机数输出速率;
以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
图1是本发明实施例提供的一种基于FCSR级联反馈的伪随机数生成器的结构示意图;
图2是本发明实施例提供的另一种基于FCSR级联反馈的伪随机数生成器的结构示意图;
图3是本发明实施例提供的进位加法器和进位减法器的结构示意图;
图4是本发明实施例提供的异或树的结构示意图;
图5是本发明实施例提供的2-bit混合记忆逻辑单元结构示意图;
图6是本发明实施例提供的3级级联Ring FCSR模块的结构示意图;
图7是本发明实施例提供的伪随机数生成器在FPGA开发板上实现的资源图。
具体实施方式
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
实施例一
请参见图1,图1是本发明实施例提供的一种基于FCSR级联反馈的伪随机数生成器的结构示意图,其包括:
级联的Ring FCSR模块,用于产生驱动序列;
非线性滤波模块,连接级联的Ring FCSR模块,用于对驱动序列进行滤波计算,得到伪随机序列;
其中,级联的Ring FCSR模块包括N个Ring FCSR结构Ring FCSR1~Ring FCSRN,每个Ring FCSR结构包括r个主寄存器,N≥2,r≥32;相邻两个Ring FCSR结构之间通过第一进位寄存器组级联;第N个Ring FCSR结构Ring FCSRN通过一延迟寄存器md和第二进位寄存器C0与第一个Ring FCSR结构Ring FCSR1连接,并通过第三进位寄存器组分别与其余N-1个Ring FCSR结构连接。
进一步地,请参见图2,图2是本发明实施例提供的另一种基于FCSR级联反馈的伪随机数生成器的结构示意图,其中,第一进位寄存器组包括N-2个进位加法器A1,2~AN-2,N-1和一个进位减法器DN-1,N;其中,
进位加法器Ai,i+1的第一输入端连接第i个Ring FCSR结构Ring FCSRi的第一个主寄存器mi,0,进位加法器Ai,i+1的第二输入端接入第i+1个Ring FCSR结构Ring FCSRi+1的最后一个主寄存器mi+1,r-1的移位输入值,进位加法器Aj,j+1的输出端连接第i+1个Ring FCSR结构Ring FCSRi+1的最后一个主寄存器mi+1,r-1,其中,1≤i<N-1;
进位减法器DN-1,N的第一输入端连接第N-1个Ring FCSR结构Ring FCSRN-1的第一个寄存器mN-1,0,进位减法器DN-1,N的第二输入端接入第N个Ring FCSR结构Ring FCSRN的最后一个主寄存器mN,r-1的移位输入值,进位减法器DN-1,N的输出端连接第N个Ring FCSR结构RingFCSRN的最后一个主寄存器mN,r-1
具体来说,进位加法器或者进位减法器的一路输入是前一级Ring FCSR结构的第一主寄存器的状态值,另一路输入是后一级Ring FCSR结构的最后一个主寄存器的移位输入值,其输出值后以及Ring FCSR结构的最后一个主寄存器。
请参见图3,图3是本发明实施例提供的进位加法器和进位减法器的结构示意图。具体地,进位加法器和进位减法器的更新方式如图3中所示,其中加法器部分:t时刻两个外部输入为x(t),y(t)以及进位寄存器上一时刻自身反馈的值c(t-1)三者相异或得到输出值s(t),进位寄存器的更新为这三者两两相乘后异或得到t时刻的状态值c(t)。进位减法器的原理和更新方式类似,不同之处在于其两个外部输入中的一个y(t)先进行取反操作变更为
Figure BDA0002985186950000071
后参与运算。
进一步地,第二进位寄存器C0的第一输入端通过延迟寄存器md连接第N个RingFCSR结构Ring FCSRN的第一个主寄存器mN,0
第二进位寄存器C0的第二输入端接入第1个Ring FCSR结构Ring FCSR1的最后一个主寄存器m1,r-1的移位输入值;
第二进位寄存器C0的输出端连接第1个Ring FCSR结构Ring FCSR1的最后一个主寄存器m1,r-1
具体来说,当N是偶数时,第二进位寄存器C0采用进位减法器,当N是奇数时,第二进位寄存器C0采用进位加法器。
进一步地,请继续参见图2,第三进位寄存器Z组包括N-1个寄存器C1~CN-1,其中,
第k个寄存器Ck的第一输入端连接第N个Ring FCSR结构Ring FCSRN的第一个主寄存器mN,0;其中,1≤k<N;
第k个寄存器Ck的第二输入端接入第k个Ring FCSR结构Ring FCSRk的第一个主寄存器mk,0的移位输入值;
第k个寄存器Ck的输出端连接第k个Ring FCSR结构Ring FCSRk的第一个主寄存器mk,0
其中,寄存器Ck可以是进位加法器,也可以是进位减法器,具体地选取规则为:
当N是偶数且k是奇数,或者当N是奇数且k是偶数时,第k个寄存器Ck采用进位减法器;当N是偶数且k是偶数,或者当N是奇数且k是奇数时,第k个寄存器Ck采用进位加法器。
请继续参见图2,在本实施例中,非线性滤波模块包括Z个并行排列的逻辑树结构XORS0~XORSZ-1和Z个与逻辑树结构对应连接的混合记忆逻辑单元MIXM0~MIXMZ-1;其中,
Figure BDA0002985186950000081
Figure BDA0002985186950000082
表示向下取整;
Z个混合记忆逻辑单元的输出端作为整个伪随机数生成器的输出端输出伪随机序列。
具体地,请参见图4,图4是本发明实施例提供的异或树的结构示意图,其中,逻辑树的结构为y输入2输出逻辑树,其包括多个层向连的2输入异或门。
在本实施例中,混合记忆逻辑单元MIXM0~MIXMZ-1采用2-bit结构,如图5所示。当t时刻a输入的比特值为0则选取M0进行输出,并使用b和M0进行异或来更新M0的状态值,同理,当a输入的值为1时选取M1进行输出,并使用b异或更新M1
在本实施例提供的伪随机数生成器中Ring FCSR主寄存器的内部状态经过抽头挑选输入至后续异或树中。该结构中有若干个多路线性布尔函数。每个函数集合内的元素均不相同。其输入来自FCSR中进位寄存器对应主寄存器的内部布尔状态,抽头位置由其集合中的编号决定,每一个函数输出至同一个异或树中,输出为若干个主寄存器抽头的状态值。然后,采用y输入2输出的异或树结构对主寄存器的状态值进行线性滤波,得到两个输出,最后通过2-bit结构混合记忆逻辑单元对两个输出端所输出的线性滤波值进行非线性计算,以获取伪随机序列。
本发明通过使用环结构的进位反馈移位寄存器Ring FCSR生成的具有高度非线性特性的驱动序列,并对其进行线性滤波和非线性计算,得到了安全性更高的伪随机序列,保证了输出的伪随机数的统计特性,避免了现有技术中输出伪随机数安全性较低的缺陷。此外,本发明采用多路线性布尔函数和2-bit混合记忆逻辑单元对驱动序列进行滤波处理,电路结构简单,大幅提高了伪随机数输出速率。
实施例二
在上述实施例一的基础上,本实施例以3级级联Ring FCSR模块为例进行详细说明。
请参见图6,图6是本发明实施例提供的3级级联Ring FCSR模块的结构示意图。
具体地,级联Ring FCSR模块包括3个级数均为80的进位反馈移位寄存器RingFCSR1、Ring FCSR2、Ring FCSR3,Ring FCSR1和Ring FCSR2之间通过二输入进位加法器级联,Ring FCSR2和Ring FCSR3之间通过二输入进位减法器级联,Ring FCSR3和Ring FCSR1之间通过延迟寄存器md和进位加法器/进位减法器进行级联,Ring FCSR3的主寄存器m3,0的状态值通过多个进位加法器或进位减法器反馈给Ring FCSR1的主寄存器m1,0,Ring FCSR2的主寄存器m2,0
进一步地,根据级联Ring FCSR模块的结构可知,其具有144路输出,相应的,设置非线性滤波模块包括16个9输入、2输出的异或树和16个与之相连的2-bit混合记忆逻辑单元,异或树的输入是Ring FCSR1、Ring FCSR2、Ring FCSR3的部分主寄存器的状态值,整个结构在一次时钟节拍下输出16bit的二进制伪随机数。
下面对本实施例提供的3级级联的伪随机数生成器的实现过程进行详细介绍。
(一)使用Mathematica软件的RandomPrime()、MultiplicativeOrder()和PrimeQ()函数产生3个范围在279~280之间的大素数q1=999566507543994606576299、q2=815923473753118128863027、q3=901176038713276371331523,2是模q1、q2、q3的原根,且(|q1|-1)/2、(|q2|-1)/2、(|q3|-1)/2都是素数。此外,也可以选择q1=q2=q3
(二)使用论文“Construction of Transition Matrices for Ternary RingFeedback With Carry Shift Registers”中的算法来构造3个满足安全性需求的环结构进位反馈移位寄存器Ring FCSR1、Ring FCSR2、Ring FCSR3,其结构分别使用转移矩阵A1、A2、A3描述,其生成伪随机数的性质分别由连接数q1、q2、q3决定,其中q1=det(I-2A1)、q2=det(I-2A2)、q3=det(I-2A3),A1、A2、A3都是系数为0、1、-1的r阶方阵,不失一般性,只对A1进行说明,A2、A3和A1有同样构造。
具体地,A1表示为:
Figure BDA0002985186950000111
记矩阵A1的第i行、第j列的元素为ai,j,mi和mj分别表示Ring FCSR1的第i个和第j个主寄存器,矩阵A1的过对角线上元素取值恒为1,
A1=(ai,j)0≤i,j<r
Figure BDA0002985186950000112
按照上述表示方式,Ring FCSR1、Ring FCSR2和Ring FCSR3的反馈位置和对应转移矩阵描述如下:
1)A1:连接数:q1=999566507543994606576299
Ring FCSR1的转移矩阵描述:
a)对所有的0≤i<80,ai,i+1mod 80=1;
b)对所有的(i,j)∈S-1,ai,j=-1,其中S-1={(78,1),(74,4),(68,11),(65,13),(60,18),(57,22),(55,24),(54,25),(52,27),(49,29),(45,33),(43,36),(42,37),(41,38),(40,39),(34,44),(35,45),(31,46),(32,47),(29,48),(27,50),(25,53),(26,54),(19,59),(20,60)}
c)对所有的(i,j)∈S1,ai,j=1,其中S1={(77,2),(76,3),(73,5),(72,6),(71,7),(70,8),(69,9),(64,15),(62,17),(59,20),(53,26),(46,32),(44,35),(38,40),(39,41),(36,42),(37,43),(30,49),(28,51),(23,55),(24,56),(21,57),(22,58)}
2)A2:连接数:q2=815923473753118128863027
Ring FCSR的转移矩阵描述:
a)对所有的0≤i<80,ai,i+1mod 80=1;
b)对所有的(i,j)∈S-1,ai,j=-1,其中S-1={(78,1),(77,2),(76,3),(74,5),(71,8),(68,11),(65,13),(64,14),(63,15),(59,19),(54,25),(53,26),(48,30),(44,34),(43,36),(41,38),(38,40),(39,41),(36,42),(37,43),(31,46),(26,51),(27,52),(22,56),(19,58),(20,59),(17,61),(18,62)}
c)对所有的(i,j)∈S1,ai,j=1,其中S1={(75,4),(72,6),(70,9),(69,10),(67,12),(61,18),(58,20),(57,21),(51,27),(50,29),(47,31),(42,37),(40,39),(33,44),(34,45),(32,47),(29,48),(30,49),(24,54),(25,55),(23,57)}
3)A3:连接数:q3=901176038713276371331523
Ring FCSR的转移矩阵描述:
a)对所有的0≤i<80,ai,i+1mod 80=1;
b)对所有的(i,j)∈S-1,ai,j=-1,其中S-1={(78,1),(75,4),(74,5),(69,9),(68,10),(65,13),(64,14),(62,17),(59,19),(57,22),(54,25),(53,26),(52,27),(45,33),(42,37),(38,40),(39,41),(33,44),(34,45),(31,46),(32,47),(29,49),(30,50),(27,51),(23,55),(24,56)}
c)对所有的(i,j)∈S1,ai,j=1,其中S1={(73,6),(72,7),(71,8),(67,11),(58,20),(55,24),(49,30),(48,31),(46,32),(44,34),(43,35),(40,39),(36,42),(37,43),(28,52),(25,53),(26,54),(21,57),(22,58),(18,59),(19,60)}
(三)采用2个二输入进位加法器或进位减法器将这3个80级的Ring FCSR1、RingFCSR2、Ring FCSR3进行级联,如附图6,Ring FCSR1和Ring FCSR2之间采用二输入进位加法器级联,进位加法器的两路输入为Ring FCSR1的主寄存器m1,0的状态值和Ring FCSR2的主寄存器m2,79的移位输入值,进位加法器输出至Ring FCSR2的主寄存器m2,79;Ring FCSR2和RingFCSR3之间采用二输入进位减法器级联,进位减法器的两路输入为Ring FCSR2的主寄存器m2,0的状态值和Ring FCSR3的主寄存器m3,79的移位输入值,进位减法器输出至Ring FCSR3的主寄存器m3,79,Ring FCSR1、Ring FCSR2、Ring FCSR3级联后的转移矩阵Y:
Figure BDA0002985186950000131
利用分块矩阵性质可得,矩阵Y的行列式的值为:
Figure BDA0002985186950000141
(四)对转移矩阵(I-2Y)进行行列式的初等变换:
第一步,将矩阵(I-2Y)的第二个子矩阵A2的首列所在列乘以-2,再加到矩阵(I-2Y)的首列;第二步,将矩阵(I-2Y)的第三个子矩阵A1的首列所在列乘以2,再加到矩阵(I-2Y)的首列,得到的新矩阵(I-2Y):
Figure BDA0002985186950000142
其中,矩阵(I-2Y)的首列增加了3个非0元素,并将子矩阵(I-2A3)左下端的元素进行取反,根据行列式列变换的性质,变换前后矩阵(I-2Y)的行列式的值保持不变。变换后的矩阵Y表示的级联Ring FCSR结构如附图6。Ring FCSR3和Ring FCSR1之间采用延迟寄存器和二输入进位加法器级联,Ring FCSR3的主寄存器m3,0的状态值反馈给延迟寄存器md,md的状态值和Ring FCSR1的主寄存器m1,79的移位输入值作为进位加法器的两路输入,进位加法器输出至Ring FCSR1的主寄存器m1,79
Ring FCSR3的主寄存器m3,0的状态值通过进位减法器反馈给Ring FCSR1的主寄存器m1,0,Ring FCSR3的主寄存器m3,0的状态值和Ring FCSR1的主寄存器m1,0的移位输入值作为进位减法器的两路输入,进位减法器输出至Ring FCSR1的主寄存器m1,0。Ring FCSR3的主寄存器m3,0的状态值通过进位加法器反馈给Ring FCSR2的主寄存器m2,0,Ring FCSR3的主寄存器m3,0的状态值和Ring FCSR2的主寄存器m2,0的移位输入值作为进位加法器的两路输入,进位加法器输出至Ring FCSR2的主寄存器m2,0
(五)本实施例采用的16个9输入、2输出的异或树的输入位置可用下述16个集合来描述。
F0={18,36,57,98,117,139,179,196,217}
F1={19,37,58,99,118,141,180,197,219}
F2={21,38,59,100,119,143,181,198,220}
F3={22,39,62,102,120,144,182,199,222}
F4={23,40,64,103,121,145,183,200,224}
F5={24,42,65,104,122,147,184,201,225}
F6={25,43,67,105,123,148,185,202,228}
F7={26,44,68,106,124,149,186,203,229}
F8={27,45,69,107,127,150,187,204,230}
F9={28,46,71,109,128,151,188,205,231}
F10={29,48,72,110,130,152,189,206,232}
F11={30,49,73,111,131,154,190,209,233}
F12={31,52,74,112,133,155,191,212,234}
F13={32,53,75,113,134,156,192,213,236}
F14={33,54,78,114,137,157,194,214,237}
F15={34,55,97,116,138,158,195,215,238}
其中,集合Fi(0≤i≤15)中每一个元素m的取值表示抽取Ring FCSR1、Ring FCSR2、Ring FCSR3中对应位置的主寄存器的状态值,当0≤m≤79时,表示Ring FCSR3对应位置的主寄存器;当80≤m≤159时,表示Ring FCSR2对应位置的主寄存器;当160≤m≤239时,表示Ring FCSR1对应位置的主寄存器。每个异或树的两路输出至2-bit混合记忆逻辑单元,进行简单的非线性计算后输出伪随机序列。
(六)给3个80级Ring FCSR1、Ring FCSR2、Ring FCSR3的主寄存器存入240bit的随机种子,所有进位寄存器的初始值为0,在时钟控制下迭代更新,输出伪随机数流W。
本实施例采用的3个80级Ring FCSR的结构良好,均能生成l-序列,级联后大尺寸Ring FCSR生成伪随机流的周期为:
Figure BDA0002985186950000161
级联后Ring FCSR生成了大周期序列,且级联后大尺寸Ring FCSR生成伪随机序列具备很多类似l-序列的性质,如均衡性、游程分布、相关性等。Ring FCSR作为典型的非线性部件,能抵抗实时攻击、代数攻击、相关攻击等攻击手段,整个伪随机数发生器可以快速的生成统计特性良好、不可预测性高的伪随机数流。
上述实施例仅用具体实施说明本发明的实现方法,在此基础上可以增加参与级联的Ring FCSR的个数,也可以将本发明的Ring FCSR级联原理应用到字节Ring FCSR中,从而获得适宜软件实现的伪随机数发生器,基于本发明的级联结构的简单变化均包含在本发明的保护范围之内。
实施例三
为了进一步说明本实施例的有益效果,下面通过实验进行验证说明。
a)本实施例在Quartus II 11.0版本开发软件、Altera cyclone IVEP4CE10E22C8型号FPGA开发板上实现的资源如图7所示。通过图7,可以充分表明本发明属于轻量级的伪随机数生成器。
b)采用美国国家标准和技术研究所NIST提供的SP800-22随机数检测标准,对本发明实施例输出的伪随机数进行检测,该检测标准包含15项检测内容,每一项检测产生的检测结果中包含一个P-value值和一个通过率Proportion值。当P-value值不低于0.0001,显著性水平α为0.01的条件下,通过率值不低于0.9808,表示该项检测内容通过。
表1检测结果
检测项 P-value 通过率 检测结果
频数检验 0.243614 0.9851 Pass
块内频数检验 0.728802 0.9879 Pass
游程检验 0.475310 0.9879 Pass
最长游程检验 0.506306 0.9879 Pass
累加和检验* 0.074502 0.9851 Pass
重叠模块匹配检验 0.500557 0.9888 Pass
非重叠模块匹配检验* 0.384539 0.9870 Pass
二元矩阵秩检验 0.312749 0.9925 Pass
通用统计检验 0.795655 0.9879 Pass
离散傅里叶变换检验 0.832839 0.9916 Pass
近似熵检验 0.365019 0.9870 Pass
序列检验* 0.795655 0.9916 Pass
线性复杂度检验 0.917603 0.9925 Pass
随机游动检验* 0.971959 0.9883 Pass
随机游动状态频数检验* 0.172934 0.9897 Pass
从表1可见,实施例所示的伪随机数生成器生成了伪随机流,其每项指标均达到了随机数的要求标准,表明本发明产生的随机数具有良好的随机性。
实施例四
在上述实施例一的基础上,本实施例提供了一种基于FCSR级联反馈的伪随机数生成方法,其可由上述实施例一提供的基于FCSR级联反馈的伪随机数生成器实现,具体包括:
步骤1:构建级联的Ring FCSR模块;其中,级联的Ring FCSR模块包括N个RingFCSR结构,每个所述Ring FCSR结构包括r个主寄存器,N≥2,r≥32。
具体地,本实施例按照上述实施例一提供的结构构建级联的Ring FCSR模块的具体结构,该结构中该结构中Ring FCSR的主寄存器个数为r,共有N个FCSR进行带进位的级联。
步骤2:选取长度为d的密钥对级联的Ring FCSR模块进行初始化;其中,d=(N*r)/2。
具体地,选取的密钥key长度d设为所有主寄存器个数的一半,有d=(N*r)/2,分为N段,为d0,d1,...dN-1长度为d0=d1=…=dN-1=d/r=r/2。初始化过程中,每运行一个时刻密钥种子di,向对应的Ring FCSRi最左端主寄存器中注入,未填充部分默认为状态“0”。密钥种子输入完成后将进位寄存器的所有状态设置为0。运行该FCSR级联结构,运行N×r拍后,将进位寄存器的值清零,至此完成级联的初始化部分。
步骤3:基于级联的Ring FCSR模块中主寄存器的状态值,产生驱动序列。
具体地,运行该FCSR级联结构,每一个时刻根据抽头从各个FCSR的主寄存器中获取状态值,得到驱动序列。
步骤4:对驱动序列进行滤波计算,得到伪随机序列。
将步骤3得到的驱动序列输入到多输入的异或树中,多个异或树经过非线性处理后输出多个比特密钥流,即运行每一拍输出多个不同的密钥流比特序列。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (10)

1.一种基于FCSR级联反馈的伪随机数生成器,其特征在于,包括:
级联的Ring FCSR模块,用于产生驱动序列;
非线性滤波模块,连接所述级联的Ring FCSR模块,用于对所述驱动序列进行滤波计算,得到伪随机序列;
其中,所述级联的Ring FCSR模块包括N个Ring FCSR结构(Ring FCSR1~Ring FCSRN),每个所述Ring FCSR结构包括r个主寄存器,N≥2,r≥32;相邻两个所述Ring FCSR结构之间通过第一进位寄存器组级联;第N个Ring FCSR结构(Ring FCSRN)通过一延迟寄存器(md)和第二进位寄存器(C0)与第一个Ring FCSR结构(Ring FCSR1)连接,并通过第三进位寄存器组分别与其余N-1个Ring FCSR结构连接。
2.根据权利要求1所述的基于FCSR级联反馈的伪随机数生成器,其特征在于,所述第一进位寄存器组包括N-2个进位加法器(A1,2~AN-2,N-1)和一个进位减法器DN-1,N;其中,
所述进位加法器Ai,i+1的第一输入端连接第i个Ring FCSR结构(Ring FCSRi)的第一个主寄存器(mi,0),所述进位加法器Ai,i+1的第二输入端接入第i+1个Ring FCSR结构(RingFCSRi+1)的最后一个主寄存器(mi+1,r-1)的移位输入值,所述进位加法器Aj,j+1的输出端连接第i+1个Ring FCSR结构(Ring FCSRi+1)的最后一个主寄存器(mi+1,r-1),其中,1≤i<N-1;
所述进位减法器DN-1,N的第一输入端连接第N-1个Ring FCSR结构(Ring FCSRN-1)的第一个寄存器(mN-1,0),所述进位减法器DN-1,N的第二输入端接入第N个Ring FCSR结构(RingFCSRN)的最后一个主寄存器(mN,r-1)的移位输入值,所述进位减法器DN-1,N的输出端连接第N个Ring FCSR结构(Ring FCSRN)的最后一个主寄存器(mN,r-1)。
3.根据权利要求1所述的基于FCSR级联反馈的伪随机数生成器,其特征在于,所述第二进位寄存器(C0)的第一输入端通过所述延迟寄存器(md)连接第N个Ring FCSR结构(RingFCSRN)的第一个主寄存器(mN,0);
所述第二进位寄存器(C0)的第二输入端接入第一个Ring FCSR结构(Ring FCSR1)的最后一个主寄存器(m1,r-1)的移位输入值;
所述第二进位寄存器(C0)的输出端连接第一个Ring FCSR结构(Ring FCSR1)的最后一个主寄存器(m1,r-1)。
4.根据权利要求3所述的基于FCSR级联反馈的伪随机数生成器,其特征在于,当N是偶数时,所述第二进位寄存器(C0)采用进位减法器,当N是奇数时,所述第二进位寄存器(C0)采用进位加法器。
5.根据权利要求1所述的基于FCSR级联反馈的伪随机数生成器,其特征在于,所述第三进位寄存器组包括N-1个寄存器(C1~CN-1),其中,
第k个寄存器(Ck)的第一输入端连接第N个Ring FCSR结构(Ring FCSRN)的第一个主寄存器(mN,0);其中,1≤k<N;
第k个寄存器(Ck)的第二输入端接入第k个Ring FCSR结构(Ring FCSRk)的第一个主寄存器(mk,0)的移位输入值;
第k个寄存器(Ck)的输出端连接第k个Ring FCSR结构(Ring FCSRk)的第一个主寄存器(mk,0)。
6.根据权利要求5所述的基于FCSR级联反馈的伪随机数生成器,其特征在于,当N是偶数且k是奇数,或者当N是奇数且k是偶数时,第k个寄存器(Ck)采用进位减法器;当N是偶数且k是偶数,或者当N是奇数且k是奇数时,第k个寄存器(Ck)采用进位加法器。
7.根据权利要求1所述的基于FCSR级联反馈的伪随机数生成器,其特征在于,所述非线性滤波模块包括Z个并行排列的逻辑树结构(XORS0~XORSZ-1)和Z个与所述逻辑树结构(XORS0~XORSZ-1)对应连接的混合记忆逻辑单元(MIXM0~MIXMZ-1);其中,
Figure FDA0002985186940000031
Figure FDA0002985186940000032
表示向下取整;
所述Z个混合记忆逻辑单元(MIXM0~MIXMZ-1)的输出端作为整个伪随机数生成器的输出端输出伪随机序列。
8.根据权利要求7所述的基于FCSR级联反馈的伪随机数生成器,其特征在于,所述逻辑树结构为y输入2输出逻辑树。
9.根据权利要求8所述的基于FCSR级联反馈的伪随机数生成器,其特征在于,每个所述逻辑树结构包括多个层向连的2输入异或门。
10.一种应用权利要求1-9任一项所述的基于FCSR级联反馈的伪随机数生成器生成伪随机数的方法,其特征在于,包括:
构建级联的Ring FCSR模块;其中,所述级联的Ring FCSR模块包括N个Ring FCSR结构,每个所述Ring FCSR结构包括r个主寄存器,N≥2,r≥32;
选取长度为d的密钥对所述级联的Ring FCSR模块进行初始化;其中,d=(N*r)/2;
基于所述级联的Ring FCSR模块中主寄存器的状态值,产生驱动序列;
对所述驱动序列进行滤波计算,得到伪随机序列。
CN202110298454.1A 2021-03-19 2021-03-19 基于fcsr级联反馈的伪随机数生成器及生成方法 Pending CN115113847A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110298454.1A CN115113847A (zh) 2021-03-19 2021-03-19 基于fcsr级联反馈的伪随机数生成器及生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110298454.1A CN115113847A (zh) 2021-03-19 2021-03-19 基于fcsr级联反馈的伪随机数生成器及生成方法

Publications (1)

Publication Number Publication Date
CN115113847A true CN115113847A (zh) 2022-09-27

Family

ID=83322862

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110298454.1A Pending CN115113847A (zh) 2021-03-19 2021-03-19 基于fcsr级联反馈的伪随机数生成器及生成方法

Country Status (1)

Country Link
CN (1) CN115113847A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006046240A2 (en) * 2004-10-26 2006-05-04 Discretix Technologies Ltd. System, method and device of generating a random value
KR100945241B1 (ko) * 2008-09-04 2010-03-03 한국전자통신연구원 캐리를 갖는 피드백 쉬프트 레지스터의 소프트웨어 구현 방법
CN101996065A (zh) * 2009-08-26 2011-03-30 索尼株式会社 随机数发生器和随机数生成方法
CN102073621A (zh) * 2011-01-19 2011-05-25 东南大学 一种应用于fft/ifft的基4蝶形单元电路及其处理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006046240A2 (en) * 2004-10-26 2006-05-04 Discretix Technologies Ltd. System, method and device of generating a random value
KR100945241B1 (ko) * 2008-09-04 2010-03-03 한국전자통신연구원 캐리를 갖는 피드백 쉬프트 레지스터의 소프트웨어 구현 방법
CN101996065A (zh) * 2009-08-26 2011-03-30 索尼株式会社 随机数发生器和随机数生成方法
CN102073621A (zh) * 2011-01-19 2011-05-25 东南大学 一种应用于fft/ifft的基4蝶形单元电路及其处理方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
FRANÇOIS ARNAULT ET AL: "A matrix approach for FCSR automata", 《CRYPTOGRAPHY AND COMMUNICATIONS》, 15 January 2011 (2011-01-15), pages 109 *
张嘉良: "基于FCSR级联结构的流密码设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 April 2022 (2022-04-15), pages 136 - 376 *
李峰;王爽心;姜妍: "Gollmann级联下的LFSR和FCSR混合序列密码系统", 仪器仪表学报, 12 October 2006 (2006-10-12), pages 1020 - 1022 *
王杰: "基于FCSR级联的序列密码设计与分析", 《中国优秀硕士学位论文全文数据库 信息科技辑》, 15 February 2020 (2020-02-15), pages 136 - 540 *

Similar Documents

Publication Publication Date Title
Thapliyal et al. Design of efficient reversible logic-based binary and BCD adder circuits
US7921145B2 (en) Extending a repetition period of a random sequence
Liu et al. Reducing the dynamical degradation by bi-coupling digital chaotic maps
CN103124955A (zh) 混沌序列发生器和相应的生成系统
Mandal et al. Feedback reconstruction and implementations of pseudorandom number generators from composited de Bruijn sequences
Dasgupta et al. Cellular automata-based recursive pseudoexhaustive test pattern generator
CN103636159B (zh) 用于产生随机的输出位序列的方法
Cotofana et al. Low weight and fan-in neural networks for basic arithmetic operations
Khan Synthesis of quaternary reversible/quantum comparators
CN115113847A (zh) 基于fcsr级联反馈的伪随机数生成器及生成方法
Murguía et al. Improvement and analysis of a pseudo-random bit generator by means of cellular automata
Majumder et al. Investigation on Quine McCluskey method: A decimal manipulation based novel approach for the minimization of Boolean function
Sunandha et al. Implementation of modified Dual-CLCG method for pseudorandom bit generation
Spencer Pseudorandom Bit Generators from Enhanced Cellular Automata.
Dake et al. Low complexity digit serial multiplier for finite field using redundant basis
Selianinau The modular principles of parallel pipeline information processing
Caballero-Gil et al. Using linear hybrid cellular automata to attack the shrinking generator
Scaria et al. FPGA IMPLEMENTATION OF WELCH-GONG STREAM CIPHER USING VLM3 ALGORITHM
Sriram et al. A high throughput area time efficient pseudo uniform random number generator based on the TT800 algorithm
Hu et al. New design of reversible/quantum devices for ternary arithmetic
Vidyadhar et al. Even-Odd Sorting Network for Fast Binary Counters
Al-Rabadi Representations, operations, and applications of switching circuits in the reversible and quantum spaces
CN117010031A (zh) 基于闭环反馈电压衰减器阵列的强物理不可克隆函数电路
Lin Trading bitwidth for array size: a unified reconfigurable arithmetic processor design
Dąbal Pipelined pseudo-random number generator with the efficient post-processing method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination