CN110471644A - 量子随机数的后处理方法、装置及量子随机数发生器 - Google Patents
量子随机数的后处理方法、装置及量子随机数发生器 Download PDFInfo
- Publication number
- CN110471644A CN110471644A CN201910739558.4A CN201910739558A CN110471644A CN 110471644 A CN110471644 A CN 110471644A CN 201910739558 A CN201910739558 A CN 201910739558A CN 110471644 A CN110471644 A CN 110471644A
- Authority
- CN
- China
- Prior art keywords
- random number
- coding
- number sequence
- subsequence
- sequence
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Error Detection And Correction (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一种量子随机数的后处理方法、装置及量子随机数发生器。该方法包括:根据历史随机数序列,生成随机数编码表,随机数编码表用于指示随机数序列中各类子序列对应的正向编码和反向编码,正向编码是根据对应的子序列在历史随机数序列中的占比生成,反向编码为正向编码的反码;获取待处理的随机数序列;根据随机数编码表,将待处理的随机数序列中各个子序列转化为对应的正向编码或反向编码,得到处理后的随机数序列。本申请提供的方案中,由于正向编码是根据子序列在随机数序列中的占比生成的,且随机数编码表中还包括用于均衡01分布的反向编码,因此在根据随机数编码表得到的处理后的随机数序列中,随机数分布均匀,从而提高了随机数序列的随机性。
Description
技术领域
本申请涉及量子通信技术领域,特别涉及一种量子随机数的后处理方法、装置及量子随机数发生器。
背景技术
随着全球信息化发展,网络通信已经是人类当前重要的通信方式。但是,随之而来的是网络中存在的各种信息安全问题。保护网络安全的重要手段之一就是密码技术。密码技术包括现代经典密码技术和量子密码技术,而这些密码技术的基础为随机数。此外,除了密码技术,随机数在诸如数值计算、统计分析、蒙特卡罗模拟、博彩业、码分多址系统、数字通信、雷达测试、遥控遥测、量子力学基础检验和网络验证码等诸多技术领域都有着重要作用。
量子随机数发生器(Quantum Random Number Generator,QRNG)是各种物理真随机数发生器中一种基于量子力学原理的随机数发生器。量子力学的不确定性基本原理保证了QRNG的绝对随机性。QRNG作为一类特殊的物理随机数发生器,它的随机信号源是微观量子效应支配的物理量。与确定性的经典物理不同,概率性,又称为随机性,是量子力学的基本原理之一。量子力学的随机性使得通过测量量子信号源获得的随机数具有天然的随机性,这一特性不受初始条件和环境的影响,因此,量子随机数是一种安全的真随机数。
相关技术中,量子随机数发生器受到经典噪声和内部器件的非理想性等因素的影响,产生的量子随机数会存在分布不均匀的缺陷,甚至有一定的偏置,导致降低随机数序列的随机性。
发明内容
本申请提供一种量子随机数的后处理方法、装置及量子随机数发生器,可用于解决在相关技术中量子随机数存在分布不均匀的缺陷,甚至有一定的偏置,导致降低随机数序列的随机性的问题。
一方面,本申请提供一种量子随机数的后处理方法,该方法包括:根据历史随机数序列,生成随机数编码表,所述随机数编码表用于指示随机数序列中各类子序列对应的正向编码和反向编码,所述正向编码是根据对应的子序列在所述历史随机数序列中的占比生成,所述反向编码为所述正向编码的反码;
从量子随机数发生器的读出系统获取待处理的随机数序列,所述待处理的随机数序列至少包括一类子序列;
根据所述随机数编码表,将所述待处理的随机数序列中各个子序列转化为对应的正向编码或反向编码,得到处理后的随机数序列。
在一个可能的设计中,所述生成随机数编码表,包括:
从所述读出系统获取历史随机数序列,所述历史随机数序列的长度为L,L为正整数;
根据所述读出系统的位宽,将所述历史随机数序列划分为N个子序列,所述位宽与所述N的乘积小于或等于L;
根据各类子序列在所述N个子序列中的占比,确定各类子序列对应的正向编码和反向编码,其中,占比大的子序列所对应的编码位数大于或等于占比小的子序列所对应的编码位数;
根据各类子序列对应的正向编码和反向编码,生成所述随机数编码表。
在另一个可能的设计中,所述确定各类子序列对应的正向编码和反向编码,包括:
根据所述N个子序列中各类子序列的占比,生成二叉树,所述二叉树中的叶节点对应于各类子序列,所述叶节点的权重为对应的子序列的占比,所述二叉树中的各个父节点的权重为子节点的权重之和,所述二叉树中各节点的权重大于下层节点的权重,且各层节点中左节点的权重小于右节点的权重,所述二叉树中除根节点外,各层节点的数量为2;
根据所述二叉树中各叶节点的路径,确定各叶节点对应的各类子序列的正向编码;
根据所述各类子序列的正向编码,确定所述各类子序列的反向编码。
在又一个可能的设计中,所述将所述待处理的随机数序列中各个子序列转化为对应的正向编码或反向编码,包括:
根据所述各个子序列在所述待处理的随机数序列中位置顺序,在未确定编码的子序列中确定第一个子序列对应编码标识位的值,同类子序列对应于同一编码标识位;
若所述编码标识位的值为0,则确定所述第一个子序列的编码为所述随机数编码表中对应的正向编码;
若所述编码标识位的值为1,则确定所述第一个子序列的编码为所述随机数编码表中对应的反向编码;
翻转所述编码标识位;
若所述待处理的随机数序列中存在未确定编码的子序列,则再次执行所述根据所述各个子序列在所述待处理的随机数序列中位置顺序,在未确定编码的子序列中确定第一个子序列对应编码标识位的值的步骤。
在又一个可能的设计中,所述获取待处理的随机数序列之后,还包括:
根据所述待处理的随机数序列,检测所述读出系统输出的随机数序列中各类子序列的占比是否改变;
若所述读出系统输出的随机数序列中各类子序列的占比改变,则更新所述随机数编码表。
在又一个可能的设计中,所述读出系统的位宽为8比特,所述N为10^6。
在又一个可能的设计中,方法还包括:
获取所述待处理的随机数序列;
根据自适应霍夫曼编码方式,确定所述待处理的随机数序列的编码,得到处理后的随机数序列。
另一方面,本申请提供了一种量子随机数的后处理装置,该装置包括:
表格生成单元,用于根据历史随机数序列,生成随机数编码表,所述随机数编码表用于指示随机数序列中各类子序列对应的正向编码和反向编码,所述正向编码是根据对应的子序列在所述历史随机数序列中的占比生成,所述反向编码为所述正向编码的反码;
序列获取单元,用于从量子随机数发生器的读出系统(Readout System)获取待处理的随机数序列,所述待处理的随机数序列至少包括一类子序列;
编码转化单元,用于根据所述随机数编码表,将所述待处理的随机数序列中各个子序列转化为对应的正向编码或反向编码,得到处理后的随机数序列。
再一方面,本申请提供了一种量子随机数发生器,所述量子随机数发生器包括熵源、读出系统(Readout System)和后处理模块,所述后处理模块被配置为用于实现如上述方面所述的方法。
又一方面,本申请提供一种计算机存储介质,用于储存为量子随机数发生器所用的可执行指令,其包含用于执行上述方面所述的方法。
本申请提供的方案,通过对随机数序列编码,来对随机数序列进行后处理。编码的依据是根据随机数分布情况所生成的随机数编码表。由于随机数编码表中的正向编码是根据子序列在随机数序列中的占比生成的,并且随机数编码表中还包括用于均衡01分布的反向编码,因此在根据随机数编码表得到的处理后的随机数序列中,随机数分布均匀,从而提高了随机数序列的随机性。
附图说明
图1是本申请一个实施例提供的实施环境的示意图;
图2是本申请一个实施例提供的量子随机数的后处理方法的流程图;
图3是本申请一个实施例提供的构建二叉树的示意图;
图4是本申请一个实施例提供的量子随机数的后处理装置的示意性框图;
图5A是本申请一个实施例提供的量子随机数发生器的示意图;
图5B是本申请另一个实施例提供的量子随机数发生器的示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请实施例描述的实施环境和硬件架构是为了更加清楚地说明本申请实施例的技术方案,并不构成对本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着硬件架构的演变,本申请实施例提供的技术方案对于不同实施环境下类似的技术问题,同样适用。
下面首先结合图1对本申请实施例适用的可能实施环景进行介绍。请参考图1,其示出了本申请实施例可能适用的一种实施环境的示意图。以量子随机数发生器为例,实施环境中可以包括量子随机数发生器中的读出系统101和后处理模块102。读出系统101输出随机数序列,后处理模块102对随机数序列进行后处理。读出系统101中包括光电探测器,例如光电二极管(Photo-Diode,PD),放大器(Amplifier,AMP)和模数转换器(Analog-to-Digital Converter,ADC)。后处理模块102可以包括中央处理单元(Central ProcessingUnit,CPU)、现场可编程门阵列(Field Programmable Gate Array,FPGA)和专用集成电路(Application Specific Integrated Circuit,ASIC)中的一个或多个。
请参考图2,其示出了本申请一个实施例提供的量子随机数的后处理方法的流程图。该方法可应用于图1所示的后处理模块中。该方法可以包括如下几个步骤。
步骤201,根据历史随机数序列,生成随机数编码表。
在生成量子随机数的过程中,读出系统输出的是原始随机数序列。对于理想状态下的量子随机数发生器,即不受经典噪声和实际器件等因素的影响,读出系统输出的原始随机数序列中的随机数是均匀分布的,保持着01比例的均衡。但是,在实际应用中,由于经典噪声和实际器件等因素的影响,原始随机数序列可能存在分布不均匀的问题。后处理模块重新编码读出系统输出的原始随机数序列,使得编码后的随机数序列中的随机数分布均匀。对此,后处理模块需要先生成随机数编码表。随机数编码表用于指示随机数序列中各类子序列对应的编码。一类子序列对应的编码包括正向编码和反向编码。一类子序列对应的正向编码是根据该类子序列在历史随机数序列中的占比生成的。为了确保编码后不再出现随机数分布不均匀的问题,根据不同子序列在历史随机数序列中的占比不同,生成不同的正向编码,以确保编码后的随机数分布均匀。一类子序列对应的反向编码是正向编码的反码。
原始随机数序列是随机数发生器输出的没有经过后处理的随机数序列。原始随机数序列包括历史随机数序列和待处理的随机数序列。历史随机数序列是指当前时刻之前的原始随机数序列。历史随机数序列可以是当前时刻之前预设时间段内的原始随机数序列,也可以是预设长度的原始随机数序列。待处理的随机数序列是历史随机数序列之后的原始随机数序列。需要说明的是,随着时间变化,不同时刻下的历史随机数序列不同。历史随机数序列可以随时间变化。
示例性地,在历史随机数序列中包括4类子序列:00、01、10和11。4类子序列在历史随机数序列中的占比分别为:20%、35%、40%和5%。根据在历史随机数序列中的占比,4类子序列对应的正向编码分别为:011、00、1和010。在历史随机数序列中的占比越高的子序列,对应编码的位数越少;在历史随机数序列中的占比越低的子序列,对应编码的位数越多,以调节编码后的随机数分布,相应地,4类子序列对应的反向编码分别为:100、11、0和101。
可选地,上述步骤201包括如下子步骤:
步骤201a,从读出系统获取历史随机数序列。
为了生存随机数编码表,后处理模块需要先获取读出系统输出的历史随机数序列。其中,历史随机数序列的长度为L,L为正整数。
步骤201b,根据读出系统的位宽,将历史随机数序列划分为N个子序列。
在获取历史随机数序列后,后处理模块需要确定历史随机数序列中的随机数分布情况。对此,后处理模块将历史随机数序列划分为N个子序列,通过N个子序列中各类子序列在历史随机数序列中的占比来确定历史随机数序列中的随机数分布情况。其中,N个子序列的长度相同。划分出的子序列的个数N由历史随机数序列的长度和子序列的长度决定。例如,历史随机数序列的长度为2000000,子序列的长度为2,则子序列的个数N为106。子序列的长度与读出系统的位宽相同。例如,对于选用8比特(bit)的模数转换器(Analog-to-Digital Converter,ADC)的量子随机数发生器,位宽为8,则子序列的长度为8。因此,后处理模块根据读出系统的位宽,将历史随机数序列划分为N个子序列。其中,子序列的长度与N的乘积小于或等于L。后处理模块计算L与子序列的长度的比值,并向下取整,得到的整数即为所要划分的子序列的个数。
步骤201c,根据各类子序列在N个子序列中的占比,确定各类子序列对应的正向编码和反向编码。
在划分得到N个子序列后,后处理模块首先确定N个子序列中的各类子序列。子序列类型的个数与子序列的长度相关。例如,若子序列的长度为2,则划分出4类子序列:00、01、10和11;若子序列的长度为3,则划分出8类子序列:000、001、010、011、100、101、110和111。其次,后处理模块确定各类子序列在N个子序列中的占比,再根据各类子序列的占比,确定对应的正向编码和反向编码。各类子序列在N个子序列中的占比反映了各类子序列在历史随机数序列中的占比。因此,根据各类子序列在N个子序列中的占比确定正向编码,实际是根据各类子序列在历史随机数序列中的占比确定正向编码。其中,占比大的子序列所对应的编码位数大于或等于占比小的子序列所对应的编码位数。在确定各类子序列对应的正向编码后,将正向编码的反码作为对应的反向编码。
可选地,为了确定各类子序列对应的正向编码,后处理模块根据N个子序列中各类子序列的占比,生成二叉树。后处理模块先将各类子序列根据占比的大小由小到大排序。其中,子序列类型的个数为M。后处理模块根据排序后的第一类子序列和第二类子序列生成二叉树中的第M层即最下层的两个节点。两个节点中的左节点对应于第一类子序列,右节点对应于第二类子序列。节点的权重为所对应的子序列的占比。后处理模块生成上述第M层两个节点的父节点。父节点的权重为子节点的权重之和。后处理模块检测排序后的第三类子序列的占比是否小于第M-1层父节点的权重;若不小于,则将第M-1层父节点最为二叉树第M-1层的左节点,并根据第三类子序列的占比生成第M-1层的右节点;若小于,则将第M-1层父节点最为二叉树第M-1层的右节点,并根据第三类子序列的占比生成第M-1层的左节点。后处理模块在生成上述第M-1层两个节点的父节点,检测排序后的第四类子序列的占比是否小于第M-2层父节点的权重;若不小于,则将第M-2层父节点最为二叉树第N-2层的左节点,并根据第四类子序列的占比生成第M-2层的右节点;若小于,则将第M-2层父节点最为二叉树第M-2层的右节点,并根据第四类子序列的占比生成第M-2层的左节点。以此类推,直至检测排序后的第M类子序列的占比是否小于第2层父节点的权重;若不小于,则将第2层父节点最为二叉树第2层的左节点,并根据第M类子序列的占比生成第2层的右节点;若小于,则将第2层父节点最为二叉树第2层的右节点,并根据第M类子序列的占比生成第2层的左节点。最后,生成二叉树的根节点。根节点的权重为1或100%。通过上述方式,生成的二叉树中的叶节点对应于各类子序列,且叶节点的权重为对应的子序列的占比。二叉树中的各个父节点的权重为子节点的权重之和。二叉树中各节点的权重大于下层节点的权重,且各层节点中左节点的权重小于右节点的权重。二叉树中除根节点外,各层节点的数量为2。
示例性地,请参考图3,其示出了后处理模块构建二叉树的过程。后处理模块划分出4类子序列:00、01、10和11。4类子序列在历史随机数序列中的占比分别为:20%、35%、40%和5%。首先,根据占比的大小,后处理模块将4类子序列排序,依次为:11、00、01和10。后处理模块生成节点301和节点302,分别对应于子序列11和00。节点301的权重为5%,而节点302的权重为20%。后处理模块再生成节点301和节点302的父节点:节点303。节点303的权重为25%。节点303的权重25%小于第三类子序列01的占比35%。因此,后处理模块将节点303最为第3层的左节点,并生成与第三类子序列01对应的节点304。后处理模块再生成节点303和节点304的父节点:节点305。节点305的权重为60%。节点305的权重60%大于第四类子序列10的占比40%。因此,后处理模块将节点305最为第2层的右节点,并生成与第四类子序列10对应的节点306。最后,后处理模块生成节点305和节点305的父节点即根节点307,完成二叉树的构建。
在根据占比构建完二叉树之后,后处理模块根据二叉树中各叶节点的路径,确定各叶节点对应的各类子序列的正向编码。将上述二叉树中的右树枝赋值1,左树枝赋值0,或者,右树枝赋值0,左树枝赋值1,以0和1的数字序列表示各节点的路径,而各叶节的路径即为对应的子序列的正向编码。
示例性地,仍以图3示例为例,将右树枝赋值1,左树枝赋值0。四个叶节点:节点301、节点302、节点304和节点306的路径分别为:011、010、00和1。相应地,四个叶节点对应的子序列:11、00、01和10的正向编码分别为:011、010、00和1。
在确定各类子序列对应的正向编码后,将正向编码的反码作为对应的反向编码。
步骤201d、根据各类子序列对应的正向编码和反向编码,生成随机数编码表。
后处理模块在确定各类子序列对应的正向编码和反向编码,生成随机数编码表。示例性地,仍以图3示例为例,后处理模块生成的随机数编码表如下表-1所示
子序列 | 正向编码 | 反向编码 |
00 | 010 | 101 |
01 | 00 | 11 |
10 | 1 | 0 |
11 | 011 | 100 |
表-1
需要说明的是,上述子步骤201a至子步骤201d是对生成随机数编码表的一种可能的方式的介绍,还可以有其它生成随机数编码表的方式,本申请实施例对此不一一进行介绍。
步骤202,从量子随机数发生器的读出系统获取待处理的随机数序列。
在生成随机数编码表后,后处理模块根据随机数编码表对随机数序列编码。读出系统在当前时刻输出的、尚未经过后处理的随机数序列即为待处理的随机数序列。后处理模块根据随机数编码表对待处理的随机数序列编码。
步骤203,根据随机数编码表,将待处理的随机数序列中各个子序列转化为对应的正向编码或反向编码,得到处理后的随机数序列。
在获取到待处理的随机数序列后,后处理模块需要将将待处理的随机数序列中各个子序列转化为对应的编码。但是,若仅采用正向编码,可能导致0与1的不均衡,从而影响随机数的随机性。示例性地,以上述表-1示出的随机数编码表为例。子序列11对应的正向编码为00,没有“1”。若待处理的随机数序列中子序列11出现较多,则后处理模块编码后会导致0与1的不均衡。因此,在生成随机数编码表时,包括了反向编码。在进行编码时,对应同类的子序列,后处理模块不仅转化为对应的正向编码,还转化为反向编码。由于反向编码是正向编码的反码,因此通过正向编码和反向编码相结合的方式可以保证的01比例的均衡。
可选地,为了保证处理后的随机数序列中01比例的均衡,后处理模块需要在编码时不仅需要采用正向编码,还要采用反向编码。对此,后处理模块对每一类子序列设定一个对应的编码标识位。编码标识位的值为0或1。后处理模块通过寄存器存储编码标识位的值。后处理模块根据各个子序列在待处理的随机数序列中位置顺序,在未确定编码的子序列中确定第一个子序列对应编码标识位的值。若上述编码标识位的值为0,则确定所第一个子序列的编码为随机数编码表中对应的正向编码;若上述编码标识位的值为1,则确定第一个子序列的编码为随机数编码表中对应的反向编码。在确定第一个子序列的编码后,后处理模块翻转上述第一子序列对应的编码标识位,即改变编码标识位的值。若待处理的随机数序列中存在未确定编码的子序列,则后处理模块再次在未确定编码的子序列中确定第一个子序列对应编码标识位的值,并根据对应编码标识位的值确定对应的编码,直至待处理的随机数序列中不再有未确定编码的子序列。
示例性地,以上述表-1示出的随机数编码表为例。待处理的随机数序列为:0001011011111000。各类子序列对应的编码标识位的初始值为0。开始时,未确定编码的子序列中第一个子序列为:00,对应的编码标识位的值为0,则后处理模块确定对应的编码为正向编码:010,并翻转00对应的编码标识位。之后,未确定编码的子序列中第一个子序列为:01,对应的编码标识位的值为0,则后处理模块确定对应的编码为正向编码:00,并翻转01对应的编码标识位。之后,未确定编码的子序列中第一个子序列为:01,此时,01对应的编码标识位的值为1,则后处理模块确定对应的编码为反向编码:100。以此类推,直至后处理模块确定最后一个子序列00对应的编码为反向编码:101。最终,得到处理后的随机数序列010001110111000101。
在一种可能的实施方式中,后处理模块会更新随机数编码表。由于量子随机数发生器的实际器件的非理想性,因此实际器件随着时间变化可能发生变化,从而导致随机数序列中随机数的分布情况发生变化。由于后处理模块对随机数序列进行编码是根据随机数编码表进行的,而随机数编码表是根据随机数序列中各类子序列占比生成的,因此,若随机数序列中随机数的分布情况发生变化,则随机数序列中各类子序列占比也将发生变化,以生成的随机数编码表就不再适用。此时,需要更新随时数编码表序列。在获取到待处理的随机数序列后,后处理模块检测读出系统输出的随机数序列中各类子序列的占比是否改变;若占比改变,则更新随机数编码表;若占比没有改变,则不更新随机数编码表。后处理模块可以每隔预设时间间隔,检测各类子序列的占比是否改变,也可以每获取到预设长度的待处理的随机数序列,检测各类子序列的占比是否改变。对于何时检测各类子序列的占比,以及检测的频率,本申请实施例不做具体限定。
在另一种可能的实施方式中,对于实际器件随着时间变化可能发生变化,从而导致随机数序列中随机数的分布情况发生变化的情况。后处理模块在获取到待处理的随机数序列后,根据自适应霍夫曼编码方式,确定待处理的随机数序列的编码,得到处理后的随机数序列。其中,自适应霍夫曼编码方式又可以称为动态哈夫曼编码的方式。在采用自适应霍夫曼编码时,后处理模块在对待处理的随机数序列编码前,无需预先生成随机数编码表,而是根据实时的随机数分布情况去生成并调整随机数编码表。由于是实时地调整随机数编码表,因此即使实际器件随着时间变化发生变化,也不会对处理后的随机数序列中的随机数分布造成影响。
上述两种可能的实施方式,都在编码的过程实时地更新随机数编码表。通过这种动态更新的方式,提高随机数后处理的鲁棒性。
在本申请提供的方法中,通过对随机数序列编码,来对随机数序列进行后处理。编码的依据是根据随机数分布情况所生成的随机数编码表。由于随机数编码表中的正向编码是根据子序列在随机数序列中的占比生成的,并且随机数编码表中还包括用于均衡01分布的反向编码,因此在根据随机数编码表得到的处理后的随机数序列中,随机数分布均匀,从而提高了随机数序列的随机性。
此外,对于量子随机数发生器输出的随机数序列,若在输出后进行后处理,则会导致处理后随机数序列的长度缩短。本申请实施例提供的方法中,处理后的随机数序列的长度取决于待处理的随机数序列,即处理前的随机数序列,的信息熵。待处理的随机数序列每比特的信息熵大于0.7,则处理后的随机数序列的长度为处理前的随机数序列长度的70%。而其它随机数后处理的方式,例如异或处理,会导致处理后的随机数序列长度缩短至处理前的随机数序列长度的二分之一,甚至四分之一。因此,本申请提供的方法能够提高处理后的随机数序列的长度,进而提高随机数序列的输出效率。
上述主要对本申请实施例提供的方案进行了介绍。可以理解的是,量子随机数发生器中的后处理模块为了实现上述功能,包含了执行各个功能相应的硬件结构和/或软件模块。结合本申请中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的技术方案的范围。
本申请实施例可以根据上述方法示例对量子随机数的后处理装置进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
参见图4,为本申请一实施例提供的一种量子随机数的后处理装置的结构示意图,该装置400包括:表格生成单元401、序列获取单元402和编码转化403,此外,还可以包括其它功能单元或功能模块,用于执行上述实施例所述的后处理方法。
表格生成单元401,用于根据历史随机数序列,生成随机数编码表,所述随机数编码表用于指示随机数序列中各类子序列对应的正向编码和反向编码,所述正向编码是根据对应的子序列在所述历史随机数序列中的占比生成,所述反向编码为所述正向编码的反码。
序列获取单元402,用于从量子随机数发生器的读出系统获取待处理的随机数序列,所述待处理的随机数序列至少包括一类子序列。
编码转化单元403,用于根据所述随机数编码表,将所述待处理的随机数序列中各个子序列转化为对应的正向编码或反向编码,得到处理后的随机数序列。
在本申请提供的装置中,通过对随机数序列编码,来对随机数序列进行后处理。编码的依据是根据随机数分布情况所生成的随机数编码表。由于随机数编码中的正向编码是根据子序列在随机数序列中的占比生成的,并且随机数编码表中还包括用于均衡01分布的反向编码,因此在根据随机数编码得到的处理后的随机数序列中,随机数分布均匀,从而提高了随机数序列的随机性。
在一种可能的设计中,所述表格生成单元401,用于:
从所述读出系统获取历史随机数序列,所述历史随机数序列的长度为L,L为正整数;根据所述读出系统的位宽,将所述历史随机数序列划分为N个子序列,所述位宽与所述N的乘积小于或等于L;根据各类子序列在所述N个子序列中的占比,确定各类子序列对应的正向编码和反向编码,其中,占比大的子序列所对应的编码位数大于或等于占比小的子序列所对应的编码位数;根据各类子序列对应的正向编码和反向编码,生成所述随机数编码表。
在另一种可能的设计中,所述表格生成单元401,用于:
根据所述N个子序列中各类子序列的占比,生成二叉树,所述二叉树中的叶节点对应于各类子序列,所述叶节点的权重为对应的子序列的占比,所述二叉树中的各个父节点的权重为子节点的权重之和,所述二叉树中各节点的权重大于下层节点的权重,且各层节点中左节点的权重小于右节点的权重,所述二叉树中除根节点外,各层节点的数量为2;根据所述二叉树中各叶节点的路径,确定各叶节点对应的各类子序列的正向编码;根据所述各类子序列的正向编码,确定所述各类子序列的反向编码。
在又一个可能的设计中,所述编码转化单元403,用于:
根据所述各个子序列在所述待处理的随机数序列中位置顺序,在未确定编码的子序列中确定第一个子序列对应编码标识位的值,同类子序列对应于同一编码标识位;若所述编码标识位的值为0,则确定所述第一个子序列的编码为所述随机数编码表中对应的正向编码;若所述编码标识位的值为1,则确定所述第一个子序列的编码为所述随机数编码表中对应的反向编码;翻转所述编码标识位;若所述待处理的随机数序列中存在未确定编码的子序列,则再次执行所述根据所述各个子序列在所述待处理的随机数序列中位置顺序,在未确定编码的子序列中确定第一个子序列对应编码标识位的值的步骤。
在又一个可能的设计中,所述编码转化单元403,还用于:
根据所述待处理的随机数序列,检测所述读出系统输出的随机数序列中各类子序列的占比是否改变;若所述读出系统输出的随机数序列中各类子序列的占比改变,则更新所述随机数编码表。
在又一个可能的设计中,所述装置还包括:动态编码单元。
所述动态编码单元,用于根据自适应霍夫曼编码方式,确定所述待处理的随机数序列的编码,得到处理后的随机数序列。
本申请还提供一种量子随机数发生器。如图5A所示,该量子随机数发生器包括:熵源50、读出系统51和后处理模块52。该后处理模块52被配置为:
根据历史随机数序列,生成随机数编码表,所述随机数编码表用于指示随机数序列中各类子序列对应的正向编码和反向编码,所述正向编码是根据对应的子序列在所述历史随机数序列中的占比生成,所述反向编码为所述正向编码的反码;
从所述读出系统51获取待处理的随机数序列,所述待处理的随机数序列至少包括一类子序列;
根据所述随机数编码表,将所述待处理的随机数序列中各个子序列转化为对应的正向编码或反向编码,得到处理后的随机数序列。
如图5B所示,其示出了上述量子随机数发生器的硬件结构。熵源50包括激光器501和干涉仪502。读出系统51包括光电探测器511、放大器512和模数转换器513。后处理模块52包括后处理芯片521。该后处理芯片521包括CPU、FPGA和ASIC等处理器中的至少一个。
此外,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序或可执行指令,该程序或指令被执行时可包括本申请提供的方法实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体ROM或随机存储记忆体RAM等。
所述计算机程序产品包括一个或多个计算机指令。在计算机加载和执行所述计算机程序时,全部或部分地产生按照本申请上述各个实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。
本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例之间相同相似的部分互相参见即可。
此外,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
以上所述的本申请实施方式并不构成对本申请保护范围的限定。
Claims (10)
1.一种量子随机数的后处理方法,其特征在于,所述方法包括:
根据历史随机数序列,生成随机数编码表,所述随机数编码表用于指示随机数序列中各类子序列对应的正向编码和反向编码,所述正向编码是根据对应的子序列在所述历史随机数序列中的占比生成,所述反向编码为所述正向编码的反码;
从量子随机数发生器的读出系统(Readout System)获取待处理的随机数序列,所述待处理的随机数序列至少包括一类子序列;
根据所述随机数编码表,将所述待处理的随机数序列中各个子序列转化为对应的正向编码或反向编码,得到处理后的随机数序列。
2.根据权利要求1所述的方法,其特征在于,所述生成随机数编码表,包括:
从所述读出系统获取历史随机数序列,所述历史随机数序列的长度为L,L为正整数;
根据所述读出系统的位宽,将所述历史随机数序列划分为N个子序列,所述位宽与所述N的乘积小于或等于L;
根据各类子序列在所述N个子序列中的占比,确定各类子序列对应的正向编码和反向编码,其中,占比大的子序列所对应的编码位数大于或等于占比小的子序列所对应的编码位数;
根据各类子序列对应的正向编码和反向编码,生成所述随机数编码表。
3.根据权利要求2所述的方法,其特征在于,所述确定各类子序列对应的正向编码和反向编码,包括:
根据所述N个子序列中各类子序列的占比,生成二叉树,所述二叉树中的叶节点对应于各类子序列,所述叶节点的权重为对应的子序列的占比,所述二叉树中的各个父节点的权重为子节点的权重之和,所述二叉树中各节点的权重大于下层节点的权重,且各层节点中左节点的权重小于右节点的权重,所述二叉树中除根节点外,各层节点的数量为2;
根据所述二叉树中各叶节点的路径,确定各叶节点对应的各类子序列的正向编码;
根据所述各类子序列的正向编码,确定所述各类子序列的反向编码。
4.根据权利要求1所述的方法,其特征在于,所述将所述待处理的随机数序列中各个子序列转化为对应的正向编码或反向编码,包括:
根据所述各个子序列在所述待处理的随机数序列中位置顺序,在未确定编码的子序列中确定第一个子序列对应编码标识位的值,同类子序列对应于同一编码标识位;
若所述编码标识位的值为0,则确定所述第一个子序列的编码为所述随机数编码表中对应的正向编码;
若所述编码标识位的值为1,则确定所述第一个子序列的编码为所述随机数编码表中对应的反向编码;
翻转所述编码标识位;
若所述待处理的随机数序列中存在未确定编码的子序列,则再次执行所述根据所述各个子序列在所述待处理的随机数序列中位置顺序,在未确定编码的子序列中确定第一个子序列对应编码标识位的值的步骤。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述获取待处理的随机数序列之后,还包括:
根据所述待处理的随机数序列,检测所述读出系统输出的随机数序列中各类子序列的占比是否改变;
若所述读出系统输出的随机数序列中各类子序列的占比改变,则更新所述随机数编码表。
6.根据权利要求1所述的方法,其特征在于,所述读出系统的位宽为8比特,所述N为10^6。
7.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
获取所述待处理的随机数序列;
根据自适应霍夫曼编码方式,确定所述待处理的随机数序列的编码,得到处理后的随机数序列。
8.一种量子随机数的后处理装置,其特征在于,所述装置包括:
表格生成单元,用于根据历史随机数序列,生成随机数编码表,所述随机数编码表用于指示随机数序列中各类子序列对应的正向编码和反向编码,所述正向编码是根据对应的子序列在所述历史随机数序列中的占比生成,所述反向编码为所述正向编码的反码;
序列获取单元,用于从量子随机数发生器的读出系统(Readout System)获取待处理的随机数序列,所述待处理的随机数序列至少包括一类子序列;
编码转化单元,用于根据所述随机数编码表,将所述待处理的随机数序列中各个子序列转化为对应的正向编码或反向编码,得到处理后的随机数序列。
9.一种量子随机数发生器,其特征在于,所述量子随机数发生器包括:熵源、读出系统(Readout System)和后处理模块,所述后处理模块被配置为:
根据历史随机数序列,生成随机数编码表,所述随机数编码表用于指示随机数序列中各类子序列对应的正向编码和反向编码,所述正向编码是根据对应的子序列在所述历史随机数序列中的占比生成,所述反向编码为所述正向编码的反码;
从所述读出系统获取待处理的随机数序列,所述待处理的随机数序列至少包括一类子序列;
根据所述随机数编码表,将所述待处理的随机数序列中各个子序列转化为对应的正向编码或反向编码,得到处理后的随机数序列。
10.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有可执行指令,所述可执行指令用于执行如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910739558.4A CN110471644B (zh) | 2019-08-12 | 2019-08-12 | 量子随机数的后处理方法、装置及量子随机数发生器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910739558.4A CN110471644B (zh) | 2019-08-12 | 2019-08-12 | 量子随机数的后处理方法、装置及量子随机数发生器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110471644A true CN110471644A (zh) | 2019-11-19 |
CN110471644B CN110471644B (zh) | 2021-10-22 |
Family
ID=68511427
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910739558.4A Active CN110471644B (zh) | 2019-08-12 | 2019-08-12 | 量子随机数的后处理方法、装置及量子随机数发生器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110471644B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527190A (zh) * | 2020-09-11 | 2021-03-19 | 苏州浪潮智能科技有限公司 | 一种量子数据擦除的方法、系统、设备及可读存储介质 |
US20240005185A1 (en) * | 2020-02-14 | 2024-01-04 | International Business Machines Corporation | Quantum readout error mitigation by stochastic matrix inversion |
CN117579178A (zh) * | 2024-01-15 | 2024-02-20 | 北京量子信息科学研究院 | 基于随机数的量子通信方法和装置、量子通信系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2481554A1 (en) * | 2001-01-22 | 2002-07-25 | Technology Innovation Ltd | METHOD AND DEVICE FOR BETTING ON A RANDOM EVENT |
CN1623506A (zh) * | 2003-12-07 | 2005-06-08 | 倪蔚民 | 基于虹膜纹理分析的生物测定系统 |
CN101394266A (zh) * | 2008-10-24 | 2009-03-25 | 华中科技大学 | 一种生成变参数混沌信号的方法及混沌保密通信系统 |
US20170054555A1 (en) * | 2015-08-20 | 2017-02-23 | Alibaba Group Holding Limited | Method, apparatus, terminal device and system for generating shared key |
CN107533553A (zh) * | 2015-03-24 | 2018-01-02 | 凯恩迪股份有限公司 | 认知存储器图形索引、存储和检索 |
CN110086619A (zh) * | 2019-04-29 | 2019-08-02 | 国网安徽省电力有限公司信息通信分公司 | 密钥流生成方法及装置 |
-
2019
- 2019-08-12 CN CN201910739558.4A patent/CN110471644B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2481554A1 (en) * | 2001-01-22 | 2002-07-25 | Technology Innovation Ltd | METHOD AND DEVICE FOR BETTING ON A RANDOM EVENT |
CN1623506A (zh) * | 2003-12-07 | 2005-06-08 | 倪蔚民 | 基于虹膜纹理分析的生物测定系统 |
CN101394266A (zh) * | 2008-10-24 | 2009-03-25 | 华中科技大学 | 一种生成变参数混沌信号的方法及混沌保密通信系统 |
CN107533553A (zh) * | 2015-03-24 | 2018-01-02 | 凯恩迪股份有限公司 | 认知存储器图形索引、存储和检索 |
US20170054555A1 (en) * | 2015-08-20 | 2017-02-23 | Alibaba Group Holding Limited | Method, apparatus, terminal device and system for generating shared key |
CN110086619A (zh) * | 2019-04-29 | 2019-08-02 | 国网安徽省电力有限公司信息通信分公司 | 密钥流生成方法及装置 |
Non-Patent Citations (4)
Title |
---|
A. DUDKOV: "Asymptotic optimality of random PSK signature ensembles", 《IEEE 6TH INTERNATIONAL SYMPOSIUM ON ELECTROMAGNETIC COMPATIBILITY AND ELECTROMAGNETIC ECOLOGY》 * |
LEQUAN MIN: "A Novel 3 Dimensional Chaotic System and Design of Pseudorandom Number Generator", 《2013 NINTH INTERNATIONAL CONFERENCE ON COMPUTATIONAL INTELLIGENCE AND SECURITY》 * |
徐孜: "比例失效率模型的年龄性质及反失效率加型脆弱模型的年龄性质和随机序比较", 《重庆工学院学报(自然科学)》 * |
李杨: "自由空间保密光通信关键技术研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240005185A1 (en) * | 2020-02-14 | 2024-01-04 | International Business Machines Corporation | Quantum readout error mitigation by stochastic matrix inversion |
US11960971B2 (en) * | 2020-02-14 | 2024-04-16 | International Business Machines Corporation | Quantum readout error mitigation by stochastic matrix inversion |
CN112527190A (zh) * | 2020-09-11 | 2021-03-19 | 苏州浪潮智能科技有限公司 | 一种量子数据擦除的方法、系统、设备及可读存储介质 |
CN112527190B (zh) * | 2020-09-11 | 2022-05-10 | 苏州浪潮智能科技有限公司 | 一种量子数据擦除的方法、系统、设备及可读存储介质 |
US11783219B2 (en) | 2020-09-11 | 2023-10-10 | Inspur Suzhou Intelligent Technology Co., Ltd. | Quantum data erasure method, system and device, and readable storage medium |
CN117579178A (zh) * | 2024-01-15 | 2024-02-20 | 北京量子信息科学研究院 | 基于随机数的量子通信方法和装置、量子通信系统 |
CN117579178B (zh) * | 2024-01-15 | 2024-03-29 | 北京量子信息科学研究院 | 基于随机数的量子通信方法和装置、量子通信系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110471644B (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110471644A (zh) | 量子随机数的后处理方法、装置及量子随机数发生器 | |
Duclos-Cianci et al. | Fast decoders for topological quantum codes | |
Herman | Probabilistic self-stabilization | |
Amini et al. | Deterministic construction of binary, bipolar, and ternary compressed sensing matrices | |
US20140046885A1 (en) | Method and apparatus for optimized representation of variables in neural systems | |
CN103843252B (zh) | 确定准循环低密度奇偶校验码的方法和基于准循环低密度奇偶校验码进行数据编码的系统 | |
KR101405962B1 (ko) | Ldpc 코드를 이용한 복호화 방법 | |
US20180189653A1 (en) | System and method for performing fast computations using quantum counting and pseudo-random sets | |
JP2017508173A (ja) | デジタル値処理装置及び方法 | |
JP3921098B2 (ja) | 試験信号発生装置及び方法並びにポアソン分布エラー信号発生器及び発生方法 | |
Condo et al. | Pseudo‐random Gaussian distribution through optimised LFSR permutations | |
CN110472739B (zh) | 量子随机数的高效后处理方法、装置及量子随机数发生器 | |
Li et al. | Improvement of min-entropy evaluation based on pruning and quantized deep neural network | |
KR20050063660A (ko) | 저밀도 패리티 검사 부호의 부호화와 복호 장치 및 그방법 | |
Soloveychik et al. | Pseudo-Wigner matrices | |
CN111831955A (zh) | 一种锂离子电池剩余寿命预测方法及系统 | |
US9356617B2 (en) | Uniform distribution dithering in sigma-delta A/D converters | |
CN112631549A (zh) | 一种对fts随机算法中伪随机数生成器的跨平台改造方法 | |
Salehi | Low-correlation low-cost stochastic number generators for stochastic computing | |
US20220318611A1 (en) | Data processing | |
Kavvousanos et al. | Hardware implementation aspects of a syndrome-based neural network decoder for bch codes | |
KR101974465B1 (ko) | 노이즈가 삽입된 물리적 복제 불가 함수 시스템 | |
Fatemi-Behbahani et al. | Analysis of chaotic behavior in pipelined analog to digital converters | |
CN111457947A (zh) | 位置编码系统及编码方法和装置、电子设备和存储介质 | |
CN115885251A (zh) | 随机数量子生成方法,特别是彩票、游戏及用于量子生成随机数的设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PP01 | Preservation of patent right |
Effective date of registration: 20220916 Granted publication date: 20211022 |
|
PP01 | Preservation of patent right |