基于非线性反馈移位寄存器的量子随机数后处理装置
技术领域
本发明涉及量子领域,具体涉及一种基于非线性反馈移位寄存器的量子随机数后处理装置。
背景技术
随着量子信息技术的发展,各类量子随机数发生器方案也相继被提出,为了保证输出序列的随机性和均匀性,随机性提取器(Randomness Extractor,RE)成为各类方案中的重要的关注点。随机性提取是指从有偏和存在相关性的随机源中提取均匀位,是生成不相关且均匀分布的高质量随机数所需的基本过程。早期,随机性提取的动机是模拟自然界中可能出现的具有弱随机源的随机算法,近年来,已经广泛应用于理论计算机科学,从密码学到分布式算法再到不可近似性领域。随机性提取的核心部分通常是为随机性提取器的算法,目前常用的算法有安全散列(Secure Hashing Algorithms, SHA)算法、高级加密标准(Advanced Encryption Standard, AES)算法。这些算法通常经过精心设计并具有良好的性能。但是,大多数哈希函数很复杂,需要大量的计算资源。在实用化量子随机数发生器中,需要追求更高的随机数生成率时,这可能是一个限制因素。
目前,常用的随机性提取器有 Trevisan 提取器和 Toeplitz 提取器,这些算法通常经过精心设计并具有良好的性能。但是,大多数密实现形式很复杂,需要大量的计算资源。当人们追求更高的随机数生成率时,这可能是一个限制因素。线性反馈移位寄存器(Linear Feedback Shift Registers, LFSR)一种可以用很少的计算资源快速生成的伪随机流的算法,其计算资源非常少,它本身广泛用于通信应用中,用于频谱白化和其他用途,同时非常适合对流比特进行处理。其基本思路为寄存器中的会把某些位进行异或操作(+)后作为输入,再对寄存器中的各比特进行整体移位。在量子随机数发生器,基于LFSR的随机性提取器将物理过程产生的伪随机比特流输出为均匀分布的随机比特位。这种方法可以大量节省所需要的原始随机种子,并且实际的电路实现中更加容易,因此更加适合在高速率的量子随机数发生器中更加适合。
传统技术存在以下技术问题:
原始LFSR结构具有一个缺点,因为它们的线性复杂度等于它们的阶数,由加法构成的反馈逻辑,其反馈表达式的最高项次数不会增长。
发明内容
本发明要解决的技术问题是提供一种基于非线性反馈移位寄存器的量子随机数后处理装置,该装置适合对处理速率要求比较高的流比特进行处理,克服了基于复杂算法提取器不利于电路实现的缺点,在实际实现上更加容易。NLFSR比传统的LFSR的拥有复杂的逻辑,通过NLFSR产生的伪随机序列能更好地抵抗现有的一些针对流密码的分析方法。同时,可以根据不同的处理速率要求进行扩维。
为了解决上述技术问题,本发明提供了一种基于非线性反馈移位寄存器的量子随机数后处理装置,包括:输入单元、运算单元和输出单元;
所述输入单元,包含多个bit的输入通道,每经过一个时钟,各通道都会向运算单元里输入1bit的数据;
所述运算单元,由D触发器、异或门和与门构成;每个通道独立运算,最终将运算出来的结果独立输出;同时将相邻的两个通道的独立输出结果相异或并反馈到低位通道的输入重新参与运算;在运算通道中引入了2个固定位置的非线性反馈环节;
输出单元,包含多个bit的输出通道,每经过一个时钟,输出通道都会将从运算单元中获取的数据输出1bit。
在其中一个实施例中,所述输入通道是63bit输入通道。
在其中一个实施例中,所述输出通道是32bit输出通道。
在其中一个实施例中,所有运算通道结构一致,其中包括多个D触发器、线性反馈和非线性反馈。
在其中一个实施例中,线性反馈是可编程的,可根据输入数据特点,调整出一个最佳值。
在其中一个实施例中,多个D触发器具体为30个D触发器。
在其中一个实施例中,D触发器用于将数据一步一步的向后移位。
在其中一个实施例中,对于最高位通道,由于没有更高位通道的输出与它相异或,所以将最高位通道的输出值直接反馈回输入重新参与运算。
在其中一个实施例中,在每一个通道输出的位置会有一个丢弃位选择开关,用于控制该位数据是否用于输出。
在其中一个实施例中,所述丢弃位选择开关的初始值设定为{1,0,1,0,1,0,1,0,1,0,1,0……1,0,1,0,1,0,1,0,1,0,1},其中,“0”位断开,即该位丢弃;“1”为接通,即该位输出。
本发明的有益效果:
使用非线性反馈移位寄存器的量子随机数处理算法,能够更好的移除原始数据中的经典随机性,保留量子随机性,并在最终输出数据的均匀性和不可预测性等方面,比使用线性反馈移位寄存器的算法更好。同时,本算法非常适合使用数字电路实现,在硬件上非常易于实现并行和实时处理,与线性反馈移位寄存器的硬件改动很少,是实际量子随机数发生器硬件的优秀方案之一。
附图说明
图1是本发明基于非线性反馈移位寄存器的量子随机数后处理装置中的线性反馈移位寄存器的原理示意图。
图2是本发明基于非线性反馈移位寄存器的量子随机数后处理装置中的非线性反馈移位寄存器的原理示意图。
图3是本发明基于非线性反馈移位寄存器的量子随机数后处理装置的结构示意图。
图4是本发明基于非线性反馈移位寄存器的量子随机数后处理装置中的线性反馈移位寄存器的原理示意图。
逻辑图中的符号说明:
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
非线性反馈移位寄存器(Nonlinear Feedback Shift Register, NLFSR)是相对于线性反馈移位寄存器而言的。它们的大体电路逻辑相似,仅仅在于NLFSR的反馈逻辑是由异或门和与门构成的,而LFSR中仅存在异或门。因此,NLFSR的复杂度比LFSR更高,在处理随机序列时更加安全,提出把NLFSR的逻辑结构用于实际的量子随机数的后处理当中,使得最终提取的随机序列更加的安全。在大多数情况下,而NLFSR由乘法参与的反馈表达式项次数会增长、并可能超过定义多项式的最高项,相比相同顺序的LFSR具有更大的线性复杂度。
线性反馈移位寄存器模型工作机理如下:
如图1,D0到D5为D触发器,“+”符号为异或门。
D触发器的作用是,每经过一个时钟,D触发器都会把输入的值传递到输出。
假设D0到D5的输入值分别为X0、X1、…、X5,首先为D0到D5赋初始值,然后使用一个二进制序列从最高位输入,每经过一个时钟周期,就把最后一个寄存器上的值作为输出,传递到输出序列中;同时,对于其他所有寄存器,发生一次值的向下传递,并且输入序列向寄存器的最高位输入一位,以此类推。然后在特定位寄存器的输出加入线性反馈机制,并将反馈数据通过异或门一步一步送到寄存器的输入位置,并于输入数据流进行异或,为D5提供新的输入值。
非线性反馈移位寄存器模型工作机理如下:
如图2,D0到D5为D触发器,“+”符号为异或门,“x”符号位与门。
非线性反馈移位寄存器就是在线性移位寄存器的基础上,引入非线性环节。
在每经过一个时钟有效时刻,其工作原理与线性反馈移位寄存器一致,只是引入了将D5的输出于D4的输出进行相与运算这一非线性环节,然后再与其它的线性反馈进行异或,并反馈到输入。
参阅图4,协助理解非线性和线性移位寄存器的工作原理:
1、图4中五个长方形的框表示D触发器。特点是:每一个时钟上升沿的时候,就会将输入端的值移到输出。
2、图4中的“+”符号表示异或门。
3、输入序列从D触发器“5”的输入开始输入。
4、可以把下面6个移位寄存器理解为有6个竹筒的竹子,将数据从竹子的一头插进去,每一个时钟只能向插进去一节,最终数据会从另外一端一位一位的按照原序列输出。
5、或门的作用是做一些反馈,将数打乱。选择一些D触发器的输出值,让他们进行异或,并将结果与输入序列进行异或。以起到打乱原序列的目的。
6、非线性移位寄存器的理解是一样的,只是反馈是非线性的。
参阅图3,基于非线性反馈移位寄存器的原理,设计了30位寄存器63位并行输入的并行非线性反馈移位寄存器的量子随机数后处理算法。
使用30位寄存器,主要原因使寄存器数量越多,就可以选择性的引入更多的线性环节及非线性环节,对消除原始数据序列的相关行的效果越好。
使用63位并行输入,主要原因是并行输入通道越多,处理速度越快,以实现高速输出的目的。并且如图2所示,将相邻的输出位进行异或,且反馈到输入位,也起到消除原始数据序列相关行的效果。
该算法在30位线性移位寄存器的基础上引入两个非线性环节。第一个非线性环节在D10和D11处,第二个非线性环节在D22和D23处。
共使用了63位并行非线性移位寄存器。
参数说明
1、63位并行输入。
2、串行寄存器数量 30。
3、f1:f29为选择开关,开关打开与否可调。
“0”为断开。
“1”为接通。
f(1:29)初始值设定为{1,1,0,1,1,1,0,1,0,1,1,0,0,1,1,1,0,1,0,1,1,0,1,1,0,1,1,1,0}
4、s1:s62为丢弃位选择开关,开关打开与否可调。
“0”位断开,即该位丢弃。
“1”为接通,即该位输出。
s(0:62)初始值设定为{1,0,1,0,1,0,1,0,1,0,1,0……1,0,1,0,1,0,1,0,1,0,1}
本装置包含3个部分,输入单元、运算单元、输出单元。
输入单元,包含63bit输入通道,每经过一个时钟,各通道都会向运算单元里输入1bit的数据。
运算单元,由D触发器,异或门,与门构成。共63个通道,每个通道独立运算,最终将运算出来的结果独立输出。同时将相邻的两个通道的独立输出结果相异或并反馈到低位通道的输入重新参与运算。最高位通道,即通道63,由于没有更高位通道的输出与它相异或,所以将通道63的输出值直接反馈回输入重新参与运算。
63个运算通道结构一致,其中包括30个D触发器,线性反馈、非线性反馈。D触发器用于将数据一步一步的向后移位。线性反馈是可编程的,即调节f(1:29)的值,可根据输入数据特点,调整出一个最佳值。在运算通道中引入了2个固定位置的非线性反馈环节。也就是说设置选择开关控制线性反馈。
在每一个通道输出的位置会有一个开关,用于控制该位数据是否用于输出。从运算单元整体看,调整s(0:62)的值,即可选择其中特定32位数据作为输出。
输出单元,包含32bit输出通道,每经过一个时钟,输出通道都会将从运算单元中获取的数据输出1bit。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。