CN117850740A - 一种基于卷积神经网络产生物理真随机数的方法及系统 - Google Patents
一种基于卷积神经网络产生物理真随机数的方法及系统 Download PDFInfo
- Publication number
- CN117850740A CN117850740A CN202410023658.8A CN202410023658A CN117850740A CN 117850740 A CN117850740 A CN 117850740A CN 202410023658 A CN202410023658 A CN 202410023658A CN 117850740 A CN117850740 A CN 117850740A
- Authority
- CN
- China
- Prior art keywords
- random numbers
- target identification
- neural network
- convolutional neural
- target
- 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
Links
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 38
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000004422 calculation algorithm Methods 0.000 claims description 22
- 238000005070 sampling Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000007664 blowing Methods 0.000 claims description 3
- 238000013145 classification model Methods 0.000 claims description 3
- 238000013019 agitation Methods 0.000 claims 1
- 238000006243 chemical reaction Methods 0.000 abstract description 3
- 239000011159 matrix material Substances 0.000 abstract description 3
- 210000005036 nerve Anatomy 0.000 abstract description 3
- 230000000875 corresponding effect Effects 0.000 description 20
- 239000008267 milk Substances 0.000 description 4
- 210000004080 milk Anatomy 0.000 description 4
- 235000013336 milk Nutrition 0.000 description 4
- 238000005336 cracking Methods 0.000 description 2
- 238000000342 Monte Carlo simulation Methods 0.000 description 1
- 238000010171 animal model Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- RKTYLMNFRDHKIL-UHFFFAOYSA-N copper;5,10,15,20-tetraphenylporphyrin-22,24-diide Chemical compound [Cu+2].C1=CC(C(=C2C=CC([N-]2)=C(C=2C=CC=CC=2)C=2C=CC(N=2)=C(C=2C=CC=CC=2)C2=CC=C3[N-]2)C=2C=CC=CC=2)=NC1=C3C1=CC=CC=C1 RKTYLMNFRDHKIL-UHFFFAOYSA-N 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000003756 stirring Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
-
- 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/582—Pseudo-random number generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
- G06V10/765—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects using rules for classification or partitioning the feature space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Medical Informatics (AREA)
- Mathematical Analysis (AREA)
- Databases & Information Systems (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Image Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
Abstract
本发明提供一种基于卷积神经网络产生物理真随机数的方法及系统,包括:步骤S1:设置目标识别物;步骤S2:使目标识别物翻转以改变目标识别物的状态;步骤S3:通过录像或视频获取目标识别物的状态;步骤S4:通过卷积神经网络识别目标识别物的当前状态;步骤S5:根据目标识别物当前状态的特征信息生成一组随机数。本发明的方法具备简单快捷、抗干扰性强、完全无法预测、大并发生成等优点,每秒钟可创建数万甚至数十万(取决于卷积网络神经识别的速度,容器的大小,以及数据矩阵的转换方式)真随机数供调用。如果采用真随机数TRNG作为伪随机数生成器的初始状态“种子”,每秒钟可创建出数十万甚至上百万的随机数供多个系统调用,从而提升了随机数取用的并发量。
Description
技术领域
本发明属于人工智能算法领域,尤其涉及一种基于卷积神经网络产生物理真随机数的方法及系统。
背景技术
随机数是专门的随机试验的结果。随机数最重要的特性是:(1)随机性,(2)不可预测性,(3)不可重现性。简单的说就是:它所生成的后面的那个数与前面的那个数毫无关系。随机数的主要用于:1、在从统计总体中抽取有代表性的样本的时候;2、在将实验动物分配到不同的试验组的过程中;3、在进行蒙特卡罗模拟法计算的时候等等;4、对银行来说,银行的ID和密码非常脆弱。如果有随机数表,就可以防备此类事件。随机数表是指为每个客户指定各不相同的数字列表,申请时将该随机数表分配给客户,而不是按照一定的规律给出,这就安全很多;5、要考察某公司的牛奶产品质量,想从800袋牛奶中抽取60袋,就可以在随机数表中选中一数,并用向上、下、左、右不同的读法组成60个数,并按牛奶的标号进行检测,虽然麻烦,但很常用;6、企业要调查消费者对某产品的需求量,要从很多消费者中抽选一定数量的样本调查;7、区块链中的用于SHA加密的随机数K,用于避免加密块被碰撞,从而被破解。
目前,基于计算机纯算法生成的随机数一般是“伪随机数”,生成一个真正随机的数并非易事,常用的伪随机数的生成用的是模余法,大致是这样的公式:Rn=(Rn_1*A+C)mod B,式中,B,C都是常数,Rn为产生的随机数,Rn_1为上一拍的随机数,从这个可以看出,这种算法产生的随机数并不足够随机,与初始状态有关,初始状态定了,随机序列也就定了。因此,大部分随机数被破解,例如某些电子彩票的号码,就是随机数的初始状态“种子”被通过大量的样本进行碰撞而猜到,从而导致了下一期彩票中奖号码范围的泄漏。
计算机领域的“真随机数”主要为基于天然的随机数,比如热噪声、键盘的输入、鼠标的位置,这些都是随机的,但是这些随机的信号直接拿来做随机数也不一定就很随机,比如热噪声在频谱上并不是白噪声,而可能是有色噪声,鼠标的位置前后会有关联,一段时期可能在一个区域,所以这些随机信号并不能直接拿来作为随机数,而是需要经过处理。有些系统例如UNIX,就内置了真随机数生成器(True Random Number Generator,简称TRNG)。这个TRNG通过放大计算中无法预测的各种微小变量的起伏来产生随机数,但产生随机数的速度很低。因为噪声放大电路有低通特性,使得高频的噪声被滤除了,而放大低频噪声就需要较长的时间,使得TRNG的工作频率受限。其次,是电路系统里有很多不同的噪声,但并不是所有噪声都是随机的,比如电源噪声中很大一部分就是和系统时钟强相关的。而TRNG是一个放大极小信号的电路,它对外界干扰是极其敏感的,为了避免外界非随机信号的干扰TRNG必须要耗费不少功率和面积在屏蔽上。再次,由于面积和功耗限制,CPU中不能内置很多个TRNG;由于频率限制,单个TRNG输出的随机数数量有限,这使得单靠TRNG产生的随机数数量不足以满足系统需要。综上,完全随机数即“真随机数”的产生,是必须引入一个外部系统的物理变量才能生成,其次,系统内置的真随机数效率低无法满足部分特定业务的需求。
发明内容
本发明的目的在于,提供一种基于卷积神经网络产生物理随机数的方法及系统,该方法具备简单快捷、抗干扰性强、完全无法预测、大并发生成等优点,解决现有随机数生成方法生成的真随机数生成效率低,无法满足部分特定业务需求的缺陷。
为了解决或者改善上述问题,本发明提供一种基于卷积神经网络产生物理随机数的方法,包括如下步骤:
步骤S1:设置目标识别物,所述目标识别物为多面体,所述多面体的每个面包含一种或多种特征信息,所述特征信息为数字、符号、图形中的至少一种;
步骤S2:通过物理的方式使得目标识别物翻转以改变目标识别物的状态;
步骤S3:通过录像或视频获取目标识别物的状态;
步骤S4:通过卷积神经网络识别目标识别物的当前状态;
步骤S5:根据目标识别物当前状态的特征信息生成一组随机数。
优选的,取样生成的随机数存储于高速缓存数据库中,以供其它系统调用。具体的,提供WebAPI、TCP/IP报文、动态库、RS232/485等多种接口。
优选的,步骤S2中,通过震动、吹动或转动的方式使目标识别物翻转。
优选的,步骤S3中,若采用录像的方式获取目标识别物的状态,需抽取视频内的关键帧图片。
优选的,步骤S4中,具体包括如下步骤:
步骤S41,采集多张录像或视频拍摄到的目标识别物图片内容,并根据采集到的内容分别进行标记;
步骤S42,建立卷积神经网络分类模型,将图片与标记信息送入所述卷积神经网络模型学习训练;
步骤S43,采用学习训练后的所述卷积神经网络模型,针对实际拍摄的照片进行识别,识别出照片中的大量信息。
优选的,步骤S5中,根据特征信息的识别结果,采用特定采样算法进行取样,最终生成随机数,所述特定采样算法包括:
(1)目标识别物的每个面用不同的图案进行区分,并设置相应的编号;
(2)整个容器识别面划分为n*n个单元格,每个单元格可精准放置一个目标识别物,因此,充满整个面需要n*n个目标识别,充满长度为n的立方体识别容器,如容器有6个面,需要6*n*n个目标识别物;
(3)建立二位数组长度为array[n][n]与识别面上的单元格一一对应,并统一赋值为0;
(4)从原点(n/2,n/2),n/2如果不为整数则进行取整,每个目标识别物的坐标用变量(x,y)进行表示,单一识别面递归算法如下:
A.如果目标识别物呈现在识别面上的图像对应的编号为奇数,则下一个目标识别物的坐标为(y-1,x);
B.如果目标识别物呈现在识别面上的图像对应的编号为偶数,则下一个目标识别物的坐标为(y+1,x);
C.如果连续两次目标识别物呈现在识别面上的图像对应的编号为奇数,则下一个目标识别物的坐标为(y,x+1);
D.如果连续两次目标识别物呈现在识别面上的图像对应的编号为偶数,则下一个目标识别物的坐标为(y,x-1);
E.如果x-1<0,则坐标y+1,如果x+1>n,则y-1;
F.如果y-1<0,则坐标x+1,如果y+1>n,则x-1;
G.x值不能小于0,也不能大于n,y值不能小于0,也不能大于n,n为目标识别面的容器长度,是n个目标识别物对应这一侧;
H.每次计算完单元格坐标,则往array[x][y]中进行赋值,值为新坐标目标识别物图案对应的编号,当array[x][y]中的值不为0,则表示已经使用过该单元格内容;
I.如果计算后的坐标中,对应的array[x][y]中有非0值,则从array数组中找出最小未用过的单元格作为起点坐标,重新进行上述A~G步骤;
(5)采用X台相机进行识别,则可以同时识别X组n*n长度的物理随机数,即获得X*n*n长度的随机数,n和X均为整数;
随机数通常大于16位以上,随机数的长度越大,破解时碰撞的几率越低,鲁棒性越好。目前最常用的随机数长度从64~512位不等。以512位长度的随机数为例,可将已生成的X*n*n长度的随机数按每512位截取,则可以截取X*n*n/512组可用的物理随机数,而用这X*n*n/512个物理随机数作为随机数种子,每个种子可生成任意数量m(m和别的没有任何关系,m只是用真随机数作为种子,生成的伪随机数的数量,可以任意生成无限多个,用m代替。因为种子是真的随机数,所以,在不知道种子具体内容的情况下,用该种子生成的伪随机数原则上也认为是真随机数)组伪随机数放于缓存中,由WebAPI或TCPIP或MQTT或RPC多种接口多种途径同时提供X*n*n/512组512位的物理随机数。
举个简单例子:以立方体为例,有6个面,每个面长度为128个单位,宽度也为128个单位。每个单位刚好可以容纳一个目标识别物。则最原始的物理随机数长度为:6*128*128=98304,把这个数按照512位一组顺序切割分离,可以切割分离出192组512位长度的随机数。
(6)为了保证单一种子生成的m组伪随机数,不因为连续使用真随机数作为伪随机数生成的种子从而被破解程序提前预判下一个数据的生成。因此生成的伪随机数应采用简单混淆算法。以上述192组长度为512位的随机数为例:
A.将192组真随机数存入数组seedArray。取出第1组随机数模192
(模192的原因是因为随机数的总数是192组,模192之后,得到余数是0~191之间,下标是落在seedArray的索引中),产生一个余数s。该余数作为存储数据的索引;
B.创建一个随机数缓存池cacheArray;
C.创建一个循环,其中m(m为要生成的伪随机数总个数),从0开始,m-1结束,以A步计算的余数为索引,从seedArray取出下标为s的数如:seedArray[s]作为种子,生成一个伪随机数,存入cacheArray中;
D.seedArray[s]模192后的余数s2,则作为存储数据的索引赋值于s,重复执行C步,为避免两次生成的伪随机数的种子重复,如果s2=s,则s=s2+1,加1之后如果s大于191,则s=0;
(上述算法的用处就是,不让连续生成的伪随机数存在相同的种子生成,而是随机从192组真随机数中根据余数来抽取下标对应的真随机数来生成伪随机数。)
E.改变m的长度,即可产生甚至上百万组顺序上没有关联的随机数;
(7)步骤(1)~(4)可根据实际需要,每k秒钟设备震动/吹动/翻动一次,并按照步骤(6)方式进行更新,即可满足大批量的物理随机数的调用需求。
以目前Nvidia RTX 2080Ti为例,采用卷积网络神经识别一张图的时间为70ms左右,11代intel i7根据识别结果生成原始数据约需要4ms,利用识别到的原始数据切割后的192组真随机数作为种子,开启多线程生成共计192万个随机数的时间为240ms左右,也就是一秒钟可以生成约620万个随机数。
本发明的另一个技术方案:一种基于卷积神经网络产生物理真随机数的系统,包括:
目标识别物,所述目标识别物为多面体,多面体的每个面包含一种或多种特征信息;
目标识别物容器,用于放置所述识别目标物,所述目标识别物在所述目标识别物容器中放置的数量为一层或多层;
动力装置,所述动力装置通过物理的方式使得目标识别物发生翻转;
录像抓拍装置,所述录像抓拍装置设置于所述目标识别物容器的上方和/或侧面和/或底部,用于对所述目标识别物进行录像或抓拍,并从录像视频中提取关键帧;
基于卷积神经网络的识别模块,用于识别所述目标识别物展现的内容,并将识别到的结果通过计算机算法进行取样,生成随机数。
优选的,所述目标识别物有多个,所述多面体为四方体或六方体。
优选的,所述动力装置为震动装置、搅动装置或气动装置。
优选的,所述目标识别物容器为透明状,所述录像抓拍装置设置多个。
本发明的有益效果为:本发明的方法具备简单快捷、抗干扰性强(1.设备在异地,破解者不能直接去到设备前进行操作;2.由于随机数完全由物理振动频率只能影响跳转次数,无法进行提前测算;3.由多个真随机数作为种子生成多个伪随机数,伪随机数之间不为同一个真随机数种子。)、完全无法预测、大并发生成等优点,每秒钟可创建数万甚至数十万(取决于容器的大小,以及数据矩阵的转换方式)真随机数供调用。如果采用真随机数TRNG作为伪随机数生成器(Pseudo Random Number Generator,PRNG)的初始状态“种子”,从而创建出每秒钟数十万的随机数供多个系统调用,从而大大的提升了随机数取用的并发量。
附图说明
图1是根据本发明的系统流程图;
图2是根据本发明的随机算法生成图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
实施例
结合如图1,一种基于卷积神经网络产生物理真随机数的系统,包括:目标识别物、目标识别物容器、动力装置、录像抓拍装置和基于卷积神经网络的识别模块。
所述目标识别物为多面体,如四方体、六方体等。多面体的每个面包含一种或多种特征信息。所述特征信息包括数字、符号、图形等等。所述目标识别物可设置1个或多个。
所述目标识别物容器用于放置所述识别目标物,所述目标识别物在所述目标识别物容器中放置的数量为一层或多层。设置多层时,可同时生成多组随机数,同时,多组目标识别物,随机性也会越高。优选的,所述目标识别物容器为透明状,即可从目标识别物容器的正面、侧面等多个角度去识别目标识别物的状态。
所述动力装置通过物理的方式使得目标识别物发生翻转,从而改变目标识别物的状态。所述动力装置为震动装置、搅动装置、气动装置等。动力装置可直接与目标识别物容器接触,如振动装置、搅动装置等,也可以采用不接触的气动装置使目标识别物翻转。
所述录像抓拍装置设置于所述目标识别物容器的上方和/或侧面和/或底部,用于对所述目标识别物进行录像或抓拍,从而获取目标识别物的状态。其中,采用录像获取目标识别物状态的,需抽取视频流内的关键帧图片,再传送给所述基于卷积神经网络的识别模块。
所述基于卷积神经网络的识别模块用于识别所述目标识别物展现的内容,并将识别到的结果通过计算机算法进行取样,生成随机数。
取样生成的随机数存储于高速缓存数据库中,以供其它系统调用。具体的,提供WebAPI、TCP/IP报文、动态库、RS232/485等多种接口。
结合图1-2,上述基于卷积神经网络产生物理真随机数的系统的运行方法包括如下步骤:
(一)通过动力装置的振动、吹动或转动等使得目标识别物翻转以改变目标识别物的状态。
(二)通过一个或多个录像抓拍装置对目标识别物进行拍照或录像,以获取目标识别物的状态。其中,采用录像获取目标识别物状态的,需抽取视频流内的关键帧图片,再传送给所述基于卷积神经网络的识别模块。
(三)通过卷积神经网络识别目标识别物的当前状态。
具体包括如下步骤:
1)采集多张录像或视频拍摄到的目标识别物图片内容,并根据采集到的内容分别进行编号标记;如,目标识别物为6面体,每个面印刷不同的图案,并进行编号;
2)建立卷积神经网络分类模型,将图片与标记信息送入所述卷积神经网络模型学习训练;
3)采用学习训练后的所述卷积神经网络模型,针对实际拍摄的照片进行识别,识别出照片中的目标识别物对应的图案。
(四)根据目标识别物当前状态的特征信息,采用特定的算法进行取样,最终生成一组随机数,供RNG算法使用。
所述特定算法流程如下:
(1)目标识别物的每个面用不同的图案进行区分,并设置相应的编号;
(2)整个容器识别面划分为n*n个单元格,每个单元格可精准放置一个目标识别物,因此,充满整个面需要n*n个目标识别,充满长度为n的立方体识别容器,如容器有6个面,需要6*n*n个目标识别物;
(3)建立二位数组长度为array[n][n]与识别面上的单元格一一对应,并统一赋值为0;
(4)从原点(n/2,n/2),n/2如果不为整数则进行取整,每个目标识别物的坐标用变量(x,y)进行表示,单一识别面递归算法如下:
A.如果目标识别物呈现在识别面上的图像对应的编号为奇数,则下一
个目标识别物的坐标为(y-1,x);
B.如果目标识别物呈现在识别面上的图像对应的编号为偶数,则下一
个目标识别物的坐标为(y+1,x);
C.如果连续两次目标识别物呈现在识别面上的图像对应的编号为奇数,则下一个目标识别物的坐标为(y,x+1);
D.如果连续两次目标识别物呈现在识别面上的图像对应的编号为偶数,则下一个目标识别物的坐标为(y,x-1);
E.如果x-1<0,则坐标y+1,如果x+1>n,则y-1;
F.如果y-1<0,则坐标x+1,如果y+1>n,则x-1;
G.x值不能小于0,也不能大于n,y值不能小于0,也不能大于n,n为目标识别面的容器长度,是n个目标识别物对应这一侧;
H.每次计算完单元格坐标,则往array[x][y]中进行赋值,值为新坐标目标识别物图案对应的编号,当array[x][y]中的值不为0,则表示已经使用过该单元格内容;
I.如果计算后的坐标中,对应的array[x][y]中有非0值,则从array数组中找出最小未用过的单元格作为起点坐标,重新进行上述A~G步骤;
(5)采用X台相机进行识别,则可以同时识别X组n*n长度的物理随机数,即获得X*n*n长度的随机数,n和X均为整数;
随机数通常大于16位以上,随机数的长度越大,破解时碰撞的几率越低,鲁棒性越好。目前最常用的随机数长度从64~512位不等。以512位长度的随机数为例,可将已生成的X*n*n长度的随机数按每512位截取,则可以截取X*n*n/512组可用的物理随机数,而用这X*n*n/512个物理随机数作为随机数种子,每个种子可生成任意数量m(m和别的没有任何关系,m只是用真随机数作为种子,生成的伪随机数的数量,可以任意生成无限多个,用m代替。因为种子是真的随机数,所以,在不知道种子具体内容的情况下,用该种子生成的伪随机数原则上也认为是真随机数)组伪随机数放于缓存中,由WebAPI或TCPIP或MQTT或RPC多种接口多种途径同时提供X*n*n/512组512位的物理随机数。
举个简单例子:以立方体为例,有6个面,每个面长度为128个单位,宽度也为128个单位。每个单位刚好可以容纳一个目标识别物。则最原始的物理随机数长度为:6*128*128=98304,把这个数按照512位一组顺序切割分离,可以切割分离出192组512位长度的随机数。
(6)为了保证单一种子生成的m组伪随机数,不因为连续使用真随机数作为伪随机数生成的种子从而被破解程序提前预判下一个数据的生成。因此生成的伪随机数应采用简单混淆算法。以上述192组长度为512位的随机数为例:
A.将192组真随机数存入数组seedArray。取出第1组随机数模192(模192的原因是因为随机数的总数是192组,模192之后,得到余数是0~191之间,下标是落在seedArray的索引中),产生一个余数s。该余数作为存储数据的索引;
D.创建一个随机数缓存池cacheArray;
E.创建一个循环,其中m(m为要生成的伪随机数总个数),从0开始,m-1结束,以A步计算的余数为索引,从seedArray取出下标为s的数如:seedArray[s]作为种子,生成一个伪随机数,存入cacheArray中;
D.seedArray[s]模192后的余数s2,则作为存储数据的索引赋值于s,重复执行C步,为避免两次生成的伪随机数的种子重复,如果s2=s,则s=s2+1,加1之后如果s大于191,则s=0;
(上述算法的用处就是,不让连续生成的伪随机数存在相同的种子生成,而是随机从192组真随机数中根据余数来抽取下标对应的真随机数来生成伪随机数。)
E.改变m的长度,即可产生甚至上百万组顺序上没有关联的随机数;
(7)步骤(1)~(4)可根据实际需要,每k秒钟设备震动/吹动/翻动一次,并按照步骤(6)方式进行更新,即可满足大批量的物理随机数的调用需求。
本方法每秒钟可创建数万甚至数十万(取决于容器的大小,以及数据矩阵的转换方式)真随机数供调用。如果采用真随机数TRNG作为伪随机数生成器(Pseudo RandomNumber Generator,PRNG)的初始状态“种子”,从而创建出每秒钟数十万的随机数供多个系统调用,从而大大的提升了随机数取用的并发量。以目前Nvidia RTX 2080Ti为例,采用卷积网络神经识别一张图的时间为70ms左右,11代intel i7根据识别结果生成原始数据约需要4ms,利用识别到的原始数据切割后的192组真随机数作为种子,开启多线程生成共计192万个随机数的时间为240ms左右,也就是一秒钟可以生成约620万个随机数。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
Claims (10)
1.一种基于卷积神经网络产生物理随机数的方法,其特征在于,包括如下步骤:
步骤S1:设置目标识别物,所述目标识别物为多面体,所述多面体的每个面包含一种或多种特征信息,所述特征信息为数字、符号、图形中的至少一种;
步骤S2:通过物理的方式使得目标识别物翻转以改变目标识别物的状态;
步骤S3:通过录像或视频获取目标识别物的状态;
步骤S4:通过卷积神经网络识别目标识别物的当前状态;
步骤S5:根据目标识别物当前状态的特征信息生成一组随机数。
2.根据权利要求1所述基于卷积神经网络产生物理随机数的方法,其特征在于,所述随机数存储于高速缓存数据库中,以供其它系统调用。
3.根据权利要求1所述基于卷积神经网络产生物理随机数的方法,其特征在于,步骤S2中,通过震动、吹动或转动的方式使目标识别物翻转。
4.根据权利要求1所述基于卷积神经网络产生物理随机数的方法,其特征在于,步骤S3中,若采用录像的方式获取目标识别物的状态,需抽取视频内的关键帧图片。
5.根据权利要求1所述基于卷积神经网络产生物理随机数的方法,其特征在于,步骤S4中,具体包括如下步骤:
步骤S41,采集多张录像或视频拍摄到的目标识别物图片内容,并根据采集到的内容分别进行标记;
步骤S42,建立卷积神经网络分类模型,将图片与标记信息送入所述卷积神经网络模型学习训练;
步骤S43,采用学习训练后的所述卷积神经网络模型,针对实际拍摄的照片进行识别,识别出照片中的各个目标识别物停止后,对应面上的图像信息。
6.根据权利要求1所述基于卷积神经网络产生物理随机数的方法,其特征在于,步骤S5中,根据特征信息的识别结果,采用特定采样算法进行取样,最终生成随机数,所述特定采样算法包括:
(1)目标识别物的每个面用不同的图案进行区分,并设置相应的编号;
(2)整个容器识别面划分为n*n个单元格,每个单元格可精准放置一个目标识别物,因此,充满整个面需要n*n个目标识别,充满长度为n的立方体识别容器,容器有N个面,需要N*n*n个目标识别物,N为整数;
(3)建立二位数组长度为array[n][n]与识别面上的单元格一一对应,并统一赋值为0;
(4)从原点(n/2,n/2),n/2如果不为整数则进行取整,每个目标识别物的坐标用变量(x,y)进行表示,单一识别面递归算法如下:
A.如果目标识别物呈现在识别面上的图像对应的编号为奇数,则下一个目标识别物的坐标为(y-1,x);
B.如果目标识别物呈现在识别面上的图像对应的编号为偶数,则下一个目标识别物的坐标为(y+1,x);
C.如果连续两次目标识别物呈现在识别面上的图像对应的编号为奇数,则下一个目标识别物的坐标为(y,x+1);
D.如果连续两次目标识别物呈现在识别面上的图像对应的编号为偶数,则下一个目标识别物的坐标为(y,x-1);
E.如果x-1<0,则坐标y+1,如果x+1>n,则y-1;
F.如果y-1<0,则坐标x+1,如果y+1>n,则x-1;
G.x值不能小于0,也不能大于n,y值不能小于0,也不能大于n,n为目标识别面的容器长度,是n个目标识别物对应这一侧;
H.每次计算完单元格坐标,则往array[x][y]中进行赋值,值为新坐标目标识别物图案对应的编号,当array[x][y]中的值不为0,则表示已经使用过该单元格内容;
I.如果计算后的坐标中,对应的array[x][y]中有非0值,则从array数组中找出最小未用过的单元格作为起点坐标,重新进行上述A~G步骤;
(5)采用X台相机进行识别,则可以同时识别X组n*n长度的物理随机数,即获得X*n*n长度的随机数,n和X均为整数;
将已生成的X*n*n长度的随机数按每L位截取,则可以截取X*n*n/L组可用的物理随机数,而用这X*n*n/L个物理随机数作为随机数种子,每个种子可生成任意数量m组伪随机数放于缓存中,由WebAPI或TCPIP或MQTT或RPC多种接口多种途径同时提供X*n*n/L组长度为L位的物理随机数;L为64-512的任意一位数;
(6)为了保证单一种子生成的m组伪随机数,不因为连续使用真随机数作为伪随机数生成的种子从而被破解程序提前预判下一个数据的生成,因此生成的伪随机数应采用简单混淆算法:
A.将X*n*n/L组真随机数存入数组seedArray。取出第1组随机数模X*n*n/L,产生一个余数s,该余数作为存储数据的索引;
B.创建一个随机数缓存池cacheArray;
C.创建一个循环,其中m为要生成的伪随机数总个数,从0开始,m-1结束,以A步计算的余数为索引,从seedArray取出下标为s的数如:seedArray[s]作为种子,生成一个伪随机数,存入cacheArray中;
D.seedArray[s]模X*n*n/L后的余数s2,则作为存储数据的索引赋值于s,重复执行C步,为避免两次生成的伪随机数的种子重复,如果s2=s,
则s=s2+1,加1之后如果s大于X*n*n/L-1,则s=0;
E.改变m的长度,即可产生甚至上百万组顺序上没有关联的随机数;
(7)步骤(1)~(4)根据实际需要,每k秒钟使得目标识别物翻转一次,并按照步骤(6)方式进行更新,即可满足大批量的物理随机数的调用需求。
7.一种基于卷积神经网络产生物理真随机数的系统,其特征在于,包括:
目标识别物,所述目标识别物为多面体,多面体的每个面包含一种或多种特征信息;
目标识别物容器,用于放置所述识别目标物,所述目标识别物在所述目标识别物容器中放置的数量为一层或多层;
动力装置,所述动力装置通过物理的方式使得目标识别物发生翻转;
录像抓拍装置,所述录像抓拍装置设置于所述目标识别物容器的上下左右前后等多个面,用于对所述目标识别物进行录像或抓拍,并从录像视频中提取关键帧;
基于卷积神经网络的识别模块,用于识别所述目标识别物展现的内容,并将识别到的结果通过计算机算法进行取样,生成随机数。
8.根据权利要求7所述的基于卷积神经网络产生物理真随机数的系统,其特征在于,所述目标识别物有多个,所述多面体为四方体或六方体。
9.根据权利要求7所述基于卷积神经网络产生物理随机数的方法,其特征在于,所述动力装置为震动装置、搅动装置或气动装置。
10.根据权利要求7所述基于卷积神经网络产生物理随机数的方法,其特征在于,所述目标识别物容器为透明状,所述录像抓拍装置设置多个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410023658.8A CN117850740A (zh) | 2024-01-08 | 2024-01-08 | 一种基于卷积神经网络产生物理真随机数的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410023658.8A CN117850740A (zh) | 2024-01-08 | 2024-01-08 | 一种基于卷积神经网络产生物理真随机数的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117850740A true CN117850740A (zh) | 2024-04-09 |
Family
ID=90545767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410023658.8A Pending CN117850740A (zh) | 2024-01-08 | 2024-01-08 | 一种基于卷积神经网络产生物理真随机数的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117850740A (zh) |
-
2024
- 2024-01-08 CN CN202410023658.8A patent/CN117850740A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wan et al. | Occlusion robust face recognition based on mask learning | |
US5732138A (en) | Method for seeding a pseudo-random number generator with a cryptographic hash of a digitization of a chaotic system | |
CN110168607A (zh) | 用于自动桌面游戏活动识别的系统和方法 | |
CN113254549B (zh) | 人物关系挖掘模型的训练方法、人物关系挖掘方法及装置 | |
US20060235917A1 (en) | Systems and methods for generating random numbers from astronomical events | |
CN113283446A (zh) | 图像中目标物识别方法、装置、电子设备及存储介质 | |
CN106910156A (zh) | 一种具有与明文相关密钥流生成机制的混沌图像加密方法 | |
CN107392835A (zh) | 一种粒子系统的处理方法及装置 | |
CN107204844A (zh) | 一种基于组合细胞自动机的多媒体加密及解密方法 | |
Eisenstein et al. | Generation and prediction of time series by a neural network | |
CN113887408A (zh) | 活化人脸视频的检测方法、装置、设备及存储介质 | |
CN114398557A (zh) | 基于双画像的信息推荐方法、装置、电子设备及存储介质 | |
CN117850740A (zh) | 一种基于卷积神经网络产生物理真随机数的方法及系统 | |
CN107408031B (zh) | 使用材料样品中存在的物理变化生成随机数的系统和方法 | |
CN111063093B (zh) | 一种彩票开奖系统及方法 | |
CN110223436B (zh) | 一种应用区块链的彩票随机出号方法及设备 | |
Childress et al. | Transition rule complexity in grid-based automata models | |
Biebighauser | Testing random number generators | |
CN106897650A (zh) | 二维码的扫描方法及其扫描设备 | |
Markuš et al. | Fast rendering of image mosaics and ascii art | |
Ping et al. | Image scrambling scheme based on bit-level permutation and 2-d cellular automata | |
CN111028409B (zh) | 一种彩票随机选号系统及方法 | |
Cirauqui et al. | Quantum random number generators: benchmarking and challenges | |
Koushik et al. | Generation of true random numbers using entropy sources present within portable computers | |
US6798883B1 (en) | Method of testing a randomizer |
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 |