CN111708513B - 一种伪随机数种子生成方法及相关产品 - Google Patents
一种伪随机数种子生成方法及相关产品 Download PDFInfo
- Publication number
- CN111708513B CN111708513B CN202010413812.4A CN202010413812A CN111708513B CN 111708513 B CN111708513 B CN 111708513B CN 202010413812 A CN202010413812 A CN 202010413812A CN 111708513 B CN111708513 B CN 111708513B
- Authority
- CN
- China
- Prior art keywords
- data
- address
- initial
- target
- address table
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000004422 calculation algorithm Methods 0.000 claims description 82
- 238000006243 chemical reaction Methods 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 125000004122 cyclic group Chemical group 0.000 description 7
- 238000004590 computer program Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012067 mathematical method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000011282 treatment 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/582—Pseudo-random number generators
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)
- Microcomputers (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请实施例公开了一种伪随机数种子生成方法及相关产品。该方法包括:在单片机上电或重启的情况下,读取初始数据,该初始数据为在单片机上一次上电或重启的情况下存储在只读存储器ROM中的数据;利用该初始数据计算得到目标地址表;根据该目标地址表读取所述随机存取存储器RAM中的数据,得到第一目标数据;计算该第一目标数据,得到第一伪随机数种子;将该第一伪随机数种子和第一目标数据存储至ROM中。在本申请实施例中,通过结合单片机运行必须的随机存取存储器RAM和只读存储器ROM产生一种伪随机种子的生成方法,使其能够适合在单片机上运行,而且可以根据不同单片机的不同性能做出相应的调整,实现伪随机数种子的生成。
Description
技术领域
本申请涉及计算机算法领域,尤其涉及一种伪随机数种子生成方法及相关产品。
背景技术
随机数在信息通讯、数据加密、计算机数据处理等领域应用广泛,有着至关重要的作用,特别是在无线通信防碰撞设计、数据加密通讯和认证等技术领域,随机数是关键基础和安全的保障。
在单片机中使用的随机数并非严格意义上的“随机数”,而是按照一定的数学方法产生的数列,只要这种数列符合均匀性、抽样随机性等统计要求,便被当作随机数来使用,并称之为伪随机数。计算机伪随机数的生成需要一个伪随机数种子(初值),通过一定的算法,生成伪随机数列,从中选取伪随机数使用。伪随机数种子的取得多种多样,通常由当前计算机状态确定,如当前时间。但是单片机中不存在实时时间,因而在单片机中产生伪随机数种子,变成了单片机使用随机数的关键。
现有的单片机种类繁多,资源配置、性能差异各有所不同,有许多单片机无法很好的生成伪随机数种子,因而很难找出一种比较通用的且适用于单片机的伪随机数种子的生成方案。
发明内容
本申请实施例公开了一种伪随机数种子生成方法及相关产品。在本方法中,通过结合单片机运行必须的随机存取存储器(Random Access Memory,RAM)和只读存储器(ReadOnly Memory,ROM)产生一种伪随机种子的生成方法,使其能够适合在单片机上运行,而且可以根据不同单片机的不同性能做出相应的调整,实现伪随机数种子的生成。
第一方面,本申请实施例提供了一种伪随机数种子生成方法,该方法包括:
在单片机上电或重启的情况下,读取初始数据,所述初始数据为在所述单片机上一次上电或重启的情况下存储在所述单片机的只读存储器ROM中的数据;
在读取到所述初始数据的情况下,利用所述初始数据计算得到目标地址表,所述目标地址表中的地址用于指示所述单片机的随机存取存储器RAM中数据的地址;
根据所述目标地址表读取所述随机存取存储器RAM中的数据,得到第一目标数据;
计算所述第一目标数据,得到第一伪随机数种子。
在该实现方式中,通过结合ROM和RAM的特性,提供一种适用于单片机生成伪随机数种子的方案。具体为在单片机上电或重启的情况下,若单片机的只读存储器ROM中保存有初始数据,则读取初始数据,该初始数据为上述单片机在上一次上电或重启的情况下存储在只读存储器ROM中的数据,再根据相应算法计算该初始数据得到目标地址表,该目标地址表中的地址为随机存取存储器RAM中部分数据的地址,根据该目标地址表可读取随机存取存储器RAM中相应地址的数据,再根据相应算法计算上述随机存取存储器RAM中读取到的数据,可得到伪随机数种子。由于大多数单片机运行都必须同时具备ROM和RAM,故本实现方式可以满足对ROM和RAM的需求,同时可以根据不同的单片机的性能差异,对其生成伪随机数种子过程中需要用到的算法进行灵活的配置,使得绝大部分单片机都可以产生伪随机数种子,且可以不依赖于任何其他的硬件,而只是依赖本身单片机运行的资源,提高单片机生成伪随机数种子的效率。
在一个可选的实现方式中,所述方法还包括:
在未读取到所述初始数据的情况下,获取初始地址表,所述初始地址表中的地址为固化在所述单片机的程序中的数据,所述初始地址表中的地址用于指示所述随机存取存储器RAM中数据的地址;
根据所述初始地址表读取所述随机存取存储器RAM中的数据,得到第二目标数据;
计算所述第二目标数据,得到第二伪随机数种子。
在该实现方式中,提供了另一种适用于单片机生成伪随机数种子的方案,具体为在单片机上电或重启的情况下,未读取到所述初始数据时,即单片机的只读存储器ROM中未保存有初始数据,则获取初始地址表,该初始地址表中的地址为固化在单片机的程序中的数据,再根据该初始地址表读取随机存取存储器RAM中的数据,计算读取到的数据,得到伪随机数种子,提高单片机生成伪随机数种子的效率。
在一个可选的实现方式中,所述计算所述第一目标数据,得到第一伪随机数种子之后,还包括:
将所述第一伪随机数种子和所述第一目标数据存入所述只读存储器ROM中。
在该实现方式中,在生成得到第一伪随机数种子之后,将该第一伪随机数种子和上述得到的第一目标数据存入只读存储器ROM中,是为了在单片机下次上电或重启的时候,方便计算出随机存取存储器RAM的目标地址表,提高效率。
在一个可选的实现方式中,所述计算所述第二目标数据,得到第二伪随机数种子之后,还包括:
将所述第二伪随机数种子和所述第二目标数据存入所述只读存储器ROM中。
在一个可选的实现方式中,所述利用所述初始数据计算得到目标地址表包括:
根据第一算法和所述初始数据,计算得到地址中间数据;
根据第二算法和所述地址中间数据,计算得到所述目标地址表,所述第二算法为不同于所述第一算法的算法。
在该实现方式中,提供了计算初始数据得到目标地址表的一种实现方法,具体为先根据第一算法和初始数据计算得到一个地址换算数作为地址中间数据,再根据第二算法(地址转换算法)通过地址换算数换算出目标地址表。上述两个计算步骤所用到的算法不同,其中,第一算法可以是异或算法、循环冗余校验码算法、哈希算法、对称加密算法,还可以是自定义算法,具体可根据不同的单片机性能做不同处理,可以提高单片机生成伪随机数种子的效率。
在一个可选的实现方式中,所述根据第二算法和所述地址中间数据,计算得到所述目标地址表包括:
选取所述地址中间数据各个数位上的数字,得到第一集合,所述第一集合包含的数据为所述地址中间数据各个数位上的数字;
根据所述第一集合计算得到第二集合,所述第二集合包含至少一个第二数据,所述第二数据各个数位上的数字为所述第一集合中的任意两个数据;
根据所述第一集合计算得到第三集合,所述第三集合包含至少一个第三数据,所述第三数据各个数位上的数字为所述第一集合中的任意三个数据;
对所述第一集合中的数据和所述第二集合中的数据做乘积运算,得到第四集合;
对所述第二集合中的数据和所述第三集合中的数据做乘积运算,得到第五集合;
对所述第四集合和所述第五集合做并集运算,得到所述目标地址表,所述目标地址表中的数据为所述第四集合和所述第五集合的并集中的数据。
在该实现方式中,阐述了根据第二算法和地址中间数据计算得到目标地址表的具体方案。
在一个可选的实现方式中,所述读取初始数据包括:
判断所述只读存储器ROM中是否保存有所述初始数据;
在所述只读存储器ROM中保存有所述初始数据的情况下,读取所述初始数据。
在该实现方式中,对单片机两种不同场景下生成伪随机数种子提供了相应的处理方法,即在单片机上电或重启的情况下,先判断只读存储器ROM中是否保存有上述初始数据,如果判断结果为是,则读取该初始数据。
在一个可选的实现方式中,所述获取初始地址表包括:
判断所述只读存储器ROM中是否保存有所述初始数据;
在所述只读存储器ROM中未保存有所述初始数据的情况下,获取所述初始地址表。
在该实现方式中,对单片机两种不同场景下生成伪随机数种子提供了相应的处理方法,即在单片机上电或重启的情况下,先判断只读存储器ROM中是否保存有上述初始数据,如果判断结果为否,则获取该初始地址表。
在本申请实施例中,通过结合ROM和RAM的特性,提供一种适用于单片机生成伪随机数种子的方案。具体为在单片机上电或重启的情况下,先判断只读存储器ROM中是否保存有初始数据,该初始数据为上述单片机在上一次上电或重启的情况下存储在只读存储器ROM中的数据,若判断结果为是,则读取该初始数据,再根据相应算法计算该初始数据得到目标地址表,该目标地址表中的地址为随机存取存储器RAM中部分数据的地址,根据该目标地址表可读取随机存取存储器RAM中相应地址的数据,再根据相应算法计算上述随机存取存储器RAM中读取到的数据,可得到伪随机数种子;若上述的判断结果为否,则获取初始地址表,该初始地址表为中的地址为固化在单片机的程序中的数据,在根据该初始地址表读取随机存取存储器RAM中的数据,计算读取到的数据,得到伪随机数种子。由于大多数单片机运行都必须同时具备ROM和RAM,故上述生成伪随机数种子的方法可以满足对ROM和RAM的需求,同时可以根据不同的单片机的性能差异,对其生成伪随机数种子过程中需要用到的算法进行灵活的配置,使得绝大部分单片机都可以产生伪随机数种子,且可以不依赖于任何其他的硬件,而只是依赖本身单片机运行的资源,提高单片机生成伪随机数种子的效率。
第二方面,本申请实施例还提供了一种伪随机数种子生成装置,该装置包括:
读取单元,用于在单片机上电或重启的情况下,读取初始数据,所述初始数据为在所述单片机上一次上电或重启的情况下存储在所述单片机的只读存储器ROM中的数据;
计算单元,用于在读取到所述初始数据的情况下,利用所述初始数据计算得到目标地址表,所述目标地址表中的地址用于指示所述单片机的随机存取存储器RAM中数据的地址;
所述读取单元,还用于根据所述目标地址表读取所述随机存取存储器RAM中的数据,得到第一目标数据;
所述计算单元,还用于计算所述第一目标数据,得到第一伪随机数种子。
在一个可选的实现方式中,所述读取单元,还用于在未读取到所述初始数据的情况下,获取初始地址表,所述初始地址表中的地址为固化在所述单片机的程序中的数据,所述初始地址表中的地址用于指示所述随机存取存储器RAM中数据的地址;
所述读取单元,还用于根据所述初始地址表读取所述随机存取存储器RAM中的数据,得到第二目标数据;
所述计算单元,还用于计算所述第二目标数据,得到第二伪随机数种子。
在一个可选的实现方式中,所述装置还包括:
存储单元,用于在所述计算单元计算所述第一目标数据,得到第一伪随机数种子之后,将所述第一伪随机数种子和所述第一目标数据存入所述只读存储器ROM中。
在一个可选的实现方式中,所述计算单元,具体用于根据第一算法和所述初始数据,计算得到地址中间数据;所述计算单元,具体还用于根据第二算法和所述地址中间数据,计算得到所述目标地址表,所述第二算法为不同于所述第一算法的算法。
在一个可选的实现方式中,所述计算单元,具体用于选取所述地址中间数据各个数位上的数字,得到第一集合,所述第一集合包含的数据为所述地址中间数据各个数位上的数字;根据所述第一集合计算得到第二集合,所述第二集合包含至少一个第二数据,所述第二数据各个数位上的数字为所述第一集合中的任意两个数据;根据所述第一集合计算得到第三集合,所述第三集合包含至少一个第三数据,所述第三数据各个数位上的数字为所述第一集合中的任意三个数据;对所述第一集合中的数据和所述第二集合中的数据做乘积运算,得到第四集合;对所述第二集合中的数据和所述第三集合中的数据做乘积运算,得到第五集合;对所述第四集合和所述第五集合做并集运算,得到所述目标地址表,所述目标地址表中的数据为所述第四集合和所述第五集合的并集中的数据。
在一个可选的实现方式中,所述装置还包括:
判断单元,用于判断所述只读存储器ROM中是否保存有所述初始数据;
所述读取单元,用于在所述判断单元判断所述只读存储器ROM中保存有所述初始数据的情况下,读取所述初始数据。
在一个可选的实现方式中,所述读取单元,还用于在所述判断单元判断所述只读存储器ROM中未保存有所述初始数据的情况下,获取所述初始地址表。
第三方面,本申请实施例提供了一种伪随机数种子生成设备,包括处理器、存储器;所述处理器被配置为支持所述伪随机数种子生成设备执行上述第一方面以及上述第一方面中可选的实现方式的方法中相应的功能。所述存储器保存所述伪随机数种子生成设备必要的程序(指令)和数据。可选的,所述伪随机数种子生成设备还可以包括输入/输出接口,用于支持所述伪随机数种子生成设备与其他设备之间的通信。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行如上述第一方面以及上述第一方面中可选的实现方式的方法。
第五方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面及其任一种可选的实现方式的方法。
在本申请中,通过结合单片机运行必须的随机存取存储器RAM和只读存储器ROM产生一种伪随机种子的生成方法,使其能够适合在单片机上运行,而且可以根据不同单片机的不同性能做出相应的调整,实现伪随机数种子的生成,不依赖于任何其他的硬件,只是依赖本身单片机运行的资源,提高单片机生成伪随机数种子的效率。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种伪随机数种子生成方法的流程示意图;
图2为本申请实施例提供的另一种伪随机数种子生成方法的流程示意图;
图3为本申请实施例提供的一种伪随机数种子生成装置的结构示意图;
图4为本申请实施例提供的一种终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请实施例方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。
本申请的说明书实施例和权利要求书及上述附图中的术语“第一”、“第二”和“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或优先级。本申请的说明书实施例和权利要求书中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例提供了一种单片机的伪随机数种子生成方法,为了更清楚地描述本申请的方案,下面先介绍一些与单片机和伪随机数种子相关的知识。
单片机:单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存取存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。几乎所有的单片机都有RAM和ROM,只是有不同类型的RAM或ROM,比如RAM有静态随机存取存储器(Static Random-Access Memory,SRAM)等,而ROM有带电可擦可编程只读存储器(Electrically Erasable Programmable read only memory,EEPROM)、快闪只读存储器(Flash Read-Only Memory,flash ROM)等。RAM提供了单片机运行时的读写,掉电数据丢失,上电时有随机性,ROM提供了单片机的代码和初始数据存储的环境,掉电不失。
单片机重启:对于单片机重启,主要有上电重启和软重启两种方式。
上电重启,通过对单片机的控制电源进行开关操作,使得单片机重启,在这种重启方式下RAM是要重新上电的,这个时候RAM的未使用部分的值是随机产生的。
软重启:可能是由单片机内部软件控制重启,或者是外部的Reset复位引脚检测到相应电平切换导致的重启,由于这个时候RAM并没有掉电,因而里面的值还是和上一次上电重启的时候一样的,这样对于同一单片机同一RAM地址来说是不具有随机性的,因为是上次上电的值。
单片机生成伪随机数种子,可利用RAM上电后未使用部分的值存在随机性的特性,在上电后,读取ROM相应地址的值,并对他们做相应运算,算出一个用于读取RAM的目标地址表,按照地址表读取RAM里面的N个值,并对他们做相应的算法运算,算出伪随机数种子,最后把从RAM读取的值及计算得到的伪随机数种子,存入ROM中,给单片机下次重启做初始参数。
当前存在多种单片机生成伪随机数种子的方法,在此列出几种较为常用的单片机生成伪随机数种子的方法。第一种单片机生成伪随机数种子的方案主要由三个步骤组成,首先,通过模拟数字转换器(Analog Digital,AD)采样传感器数据或读取系统时间或开机时长数据等方式,得到数据的初值,然后根据该数据初值的长度情况,选用按权分段法或镜像法得到中间数据,最后将中间数据进行加或非进位加处理、截断处理和重复处理等,得到伪随机数种子。该方案只有在依靠AD转换器采样白噪声数据的时候才可以保证初值的随机性,因为通过系统时间的读取或者时长,对于同一软件算法的不同设备来说,几乎是运算出同一结果的,所以方案一需要通过AD转化器来确保不同设备初值的随机性。第二种单片机生成伪随机数种子的方案是首先获取要生成的伪随机数种子S的字节数SN,然后使用伪随机数生成函数生成字节数为SN的伪随机数R,获取操作组的字节数BN,其中,SN为BN的整数倍,伪随机数R与伪随机数种子S中包括SN/BN个对应的操作组,从伪随机数R中取一个操作组,结合随机因子E,利用操作函数F,计算伪随机数种子S的对应操作组,直至所有操作组已完成操作。该方案运用到的算法比较复杂,对设备的运算性能要求较高,普通的单片机很多不能完成或者需要很长的时间完成,所以并不能适用所有的单片机。通过上述几种现有的单片机生成伪随机数种子的方案可知,由于单片机的种类繁多,性能差异各有所不同,资源配置等都有差异,因而无法适用所有单片机,故缺少一种比较通用的伪随机数种子的生成方案。
下面结合本申请实施例中的附图对本申请实施例进行描述。
请参阅图1,图1为本申请实施例提供的一种伪随机数种子生成方法的流程示意图。
101、终端读取存储在只读存储器ROM中的初始数据。
随着信息技术的广泛应用,我们生活的方方面面中都能看见单片机的存在,不管是在日常的高铁检票,还是在计算机领域,单片机都发挥着巨大的作用,因此,单片机的应用场景十分广泛。在本实施例中,终端指的是搭载了上述单片机的电子设备。在单片机上电或重启的情况下,搭载了该单片机的终端读取该单片机的只读存储器ROM中的初始数据,该初始数据为在单片机上一次上电或重启的情况下存储在只读存储器ROM中的数据,具体包括了在单片机上一次上电或重启的情况下从随机存取存储器RAM中读取到的数据和计算得到的伪随机数种子,这些初始数据都将给单片机下次重启做为初始参数以计算得到目标地址表。
102、利用上述初始数据计算得到目标地址表。
单片机上电或重启后,在读取到上述初始数据的情况下,利用上述初始数据计算得到目标地址表,该目标地址表中的地址用于指示单片机的随机存取存储器RAM中数据的地址。其中,利用上述初始数据计算得到目标地址表的过程主要由两个步骤组成,这两个步骤所运用到的算法也是不同的。首先根据第一算法和读取到的初始数据,计算得到地址转换数作为地址中间数据;然后再根据第二算法和上述得到的地址中间数据,计算得到上述目标地址表。
具体的,上述的第一算法可以是运用一系列函数算法对读取到的初始数据进行运算,具体选用何种算法可以根据不同的单片机性能进行调整,简单的如异或算法(XOR8)、循环冗余校验码算法(ModbusCRC16、CRC32)等算法,复杂的如哈希算法(Hash)、对称加密算法(AES)等算法,或者自定义算法也可以。以上述其中一项循环冗余校验码算法为例,此处可选用ModbusCRC16算法进行运算,假设循环冗余校验(Cyclic Redundancy Check,CRC)寄存器初始值为FFFF;即16个字节全为1,CRC-16/MODBUS的多项式A001H(1010 0000 00000001B),‘H’表示16进制数,‘B’表示二进制数,具体计算步骤为:第一、预置16位寄存器为十六进制FFFF(即全为1),称此寄存器为CRC寄存器;第二、把第一个8位数据与16位CRC寄存器的低位相异或把结果放于CRC寄存器;第三、检测相异或后的CRC寄存器的最低位,若最低位为1,CRC寄存器先右移1位,再与多项式A001H进行异或,若为0,则CRC寄存器右移1位,无需与多项式进行异或;第四、重复步骤三,直到右移8次,这样整个8位数据全部进行了处理;第五、重复步骤二到步骤四,进行下一个8位数据的处理;第六、最后得到的CRC寄存器即为CRC码。算出的数据作为地址换算数,再通过地址转换算法换算出用于读取RAM中的数据的目标地址表。
具体的,此处的地址转换算法即为上述的第二算法中的一种可选算法。下面以地址转换算法为例,将根据第二算法和上述得到的地址中间数据计算得到上述目标地址表的过程进行详细阐述。由上述计算过程中的第一个步骤可得到地址换算数作为地址中间数据,无论得到的地址中间数据是什么结果,只选取该地址中间数据从最末位开始往前位依次递进的四位数字,若地址中间数据的位数不够,则对空缺的位数补零。接下来,选取上述得到的地址中间数据各个数位上的数字,得到第一集合,故该第一集合包含的数据为上述地址中间数据各个数位上的数字;将第一集合中的任意两个数据作为不同数位上的数字,可组成一个两位数的第二数据,从而可以得到包含了至少一个上述第二数据的第二集合;同理,将第一集合中的任意三个数据作为不同数位上的数字,可组成一个三位数的第三数据,从而可以得到包含了至少一个上述第三数据的第三集合;对上述第一集合中的数据和上述第二集合中的数据做乘积运算,可得到第四集合;同理,对上述第二集合中的数据和上述第三集合中的数据做乘积运算,可得到第五集合;再对上述得到的第四集合和第五集合做并集运算,可得到上述的目标地址表,该目标地址表中的数据为上述第四集合和上述第五集合的并集中的数据。
103、根据上述目标地址表读取随机存取存储器RAM中的数据,得到第一目标数据。
计算得到的目标地址表中的地址用于指示随机存取存储器RAM中数据的地址,故可根据该目标地址表读取随机存取存储器RAM中相应的数据,作为第一目标数据,用于后续计算伪随机数种子。
104、计算上述第一目标数据,得到第一伪随机数种子。
利用读取到的第一目标数据通过相应的种子算法可计算得到第一伪随机数种子,该种子算法和上述步骤102中计算得到地址换算数过程中运用到的第一算法类似,具体选用何种算法也可以根据不同的单片机性能进行调整,简单的如异或算法(XOR8)、循环冗余校验码算法(ModbusCRC16、CRC32)等算法,复杂的如哈希算法(Hash)、对称加密算法(AES)等算法,或者自定义算法也可以。以上述其中一项循环冗余校验码算法为例,此处可选用ModbusCRC16算法进行运算得到第一伪随机数种子。最后可将该第一伪随机数种子和上述第一目标数据一起存储至只读存储器ROM中,为了单片机下次上电或重启时,可以更快计算出用于读取RAM中的数据的目标地址表。
由于不同单片机资源不同,所以其相对应的RAM和ROM的大小,也会有所差异。但是几乎所有的单片机正常工作都需要RAM和ROM。RAM的数据随机性仅体现在程序编译时,代码未使用到的部分,所以可以从RAM的最大地址,往小的地址取数据,这样就算读取到使用到的地址的值,也能读取到未使用到的地址的值。由于不同单片机的性能不同,其运行能力也不同,所以可以采用不同的算法计算,对于上述步骤102和步骤104使用相同的算法也是可以的,所以可以根据不同的单片机进行不同的配置。
此外,基于上述步骤101至步骤104所生成的伪随机数种子是具备随机性的,其原理是利用单片机的RAM上电后,其未使用部分值的随机性的特性。RAM的使用部分是在代码编译的时候确定下来的,单片机上电后会先把从ROM把RAM使用部分的值拷贝到RAM,这样对于同一程序来说,这部分的值就是固定的不是随机产生的,而是在编译后唯一确定的,这部分相当于固定值的数表。RAM未使用部分的值是,在单片机上电时确定下来的,也就是说如果不断电,这部分的值是相对固定的。但是由于查询的地址不一样,所以产生的数据组合也是不一样的,因而也是可以认为是随机的。同时单片机每次重新上电,RAM的初始化,由于受到电平噪声的影响,使得未使用部分的值被更新,因此是随机的。通过保存数据的方式,生成后续的用于读取RAM中的数据的目标地址表的随机性。由于前面保存的数据是RAM里面随机出来的,且个数也是不一定的,这样使得下次得到的地址表是不确定的,且其个数也是不确定的。所以综上,通过上述实施例生成的伪随机数种子是具有随机性的。
为了更为直观的阐述伪随机数种子的生成过程,下面仅以一项例子加以说明。
在本实施例中,首先读取保存在Flash ROM中所有数据,然后使用简单的ModbusCRC16算法,计算保存在Flash ROM中所有数据的ModbusCRC16值,再把该值通过下面的地址转换算法转换为用于读取RAM中的数据的目标地址表,读取出RAM中对应的内容后再通过ModbusCRC16算法计算出伪随机数种子。
其中,地址转换算法如下所述,当从ROM中读取出数据并计算出ModbusCRC16的值后,进一步算出地址换算数,比如算出的是1234。此时,不管运算出什么结果,只取4位数,少的后面补0,如123则补为1230,多的取尾数,如1234567,则取4567。步骤一,取出地址换算数的个十百千万位的数据,如果出现0则舍去,此处的结果为[4,3,2,1];步骤二,再取出地址换算数的两两相邻的数据,如果出现00则舍去,此处的结果为[12,23,34,];步骤三,再取出地址换算数的三个相邻的数据,如果出现000则舍去,此处的结果为[123,234];步骤四,将步骤一和步骤二的数据相乘,得到结果为[12,23,34,24,46,68,36,69,102,48,92,136];步骤五,将步骤一和步骤三的数据相乘,得到结果为[123,234,246,468,369,702,492,936];步骤六,将步骤四和步骤五的数据合并,得出目标地址表的结果为[12,23,34,24,46,68,36,69,102,48,92,136,123,234,246,468,369,702,492,936],该目标地址表用于读取随机存取存储器RAM中相应地址的数据;步骤七,从随机存取存储器RAM的最大值按照上述计算得到的目标地址表向下偏移,获取数据,由于RAM是1K,则地址12对应的是1024-12=1012地址的值,而936对应的是1024-936=88位置的值,同理得出其他数值,如果得出的是0则舍弃,如果得出的是0XFF,则修改为0XFE,从而得到目标数据,该目标数据为RAM中与上述目标地址表相对应地址的数据。之后再对上述目标数据进行ModbusCRC16算法计算出伪随机数种子,并保存目标数据和算出的伪随机数种子,供单片机下次启动时生成伪随机数种子使用。需要注意的是,由于上述步骤三、四、五中存在对0的舍去和步骤七中对RAM数据为0的舍去,会使得RAM数据的个数随机变动,同时增加了随机性;保存RAM数据会使得每次单片机启动后步骤一计算出的ModbusCRC16值不一样,也具有一定随机性。
请参阅图2,图2为本申请实施例提供的另一种伪随机数种子生成方法的流程示意图。
201、终端的单片机上电或重启。
单片机的应用场景十分广泛,本实施例中的终端指的是搭载了上述单片机的电子设备。单片机上电或重启,其中,重启有两种情况,分别为上电重启和软重启。通过对单片机的控制电源进行开关操作,使得单片机重启,在这种重启方式下RAM是要重新上电的,这个时候RAM的未使用部分的值是随机产生的,具有随机性。由单片机内部软件控制重启,或者是外部的Reset复位引脚检测到相应电平切换导致的重启,由于这个时候RAM并没有掉电,因而里面的值还是和上一次上电重启的时候一样的,这样对于同一单片机同一RAM地址来说是不具有随机性的。
202、判断只读存储器ROM中是否保存有初始数据。
在单片机上电或重启的情况下,终端判断该单片机的只读存储器ROM中是否保存有初始数据,该初始数据为在单片机上一次上电或重启的情况下存储在只读存储器ROM中的数据,具体包括了在单片机上一次上电或重启的情况下从随机存取存储器RAM中读取到的数据和计算得到的伪随机数种子,这些初始数据都将给单片机下次重启做为初始参数以计算得到目标地址表。若判断只读存储器ROM中保存有初始数据,则读取存储在只读存储器ROM中的初始数据,即执行下述步骤205;若判断只读存储器ROM中未保存有初始数据,则获取默认的初始地址表,即执行下述步骤203。
203、获取默认的初始地址表。
在只读存储器ROM中未保存有初始数据的情况下,终端获取默认的初始地址表,该初始地址表中的地址为固化在单片机的程序中的数据,是在固件生成后就确定下来的。
204、按照初始地址表读取随机存取存储器RAM中的数据,得到目标数据。
该初始地址表中的地址用于指示随机存取存储器RAM中数据的地址,故可按照该初始地址表读取随机存取存储器RAM中相应的数据,作为目标数据,用于后续计算伪随机数种子。
205、读取存储在只读存储器ROM中的初始数据。
同上述步骤101。
206、利用上述初始数据计算得到目标地址表。
同上述步骤102。
207、根据上述目标地址表读取随机存取存储器RAM中的数据,得到第二目标数据。
同上述步骤103。
208、计算上述第二目标数据,得到第二伪随机数种子。
同上述步骤104。
209、将上述第二伪随机数种子和第二目标数据保存至只读存储器ROM中。
在计算生成伪随机数种子之后,可将该第二伪随机数种子和第二目标数据(从随机存取存储器中读取到的数据)存储至只读存储器ROM中。保存上述数据的作用在于加入时间随机性,因为开机关机的不确定性会导致滚动存储的数据不同。该操作的目的还在于在单片机下次上电或重启时,可以更快的计算得到用于读取随机存取存储器RAM中的数据的目标地址表,提高生成伪随机数种子的效率。
上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的装置。
请参阅图3,图3为本申请实施例提供的一种伪随机数种子生成装置的结构示意图。该装置包括:读取单元31、计算单元32、存储单元33、以及判断单元34。其中:
读取单元31,用于在单片机上电或重启的情况下,读取初始数据,上述初始数据为在上述单片机上一次上电或重启的情况下存储在上述单片机的只读存储器ROM中的数据;
计算单元32,用于在读取到上述初始数据的情况下,利用上述初始数据计算得到目标地址表,上述目标地址表中的地址用于指示上述单片机的随机存取存储器RAM中数据的地址;
上述读取单元31,还用于根据上述目标地址表读取上述随机存取存储器RAM中的数据,得到第一目标数据;
上述计算单元32,还用于计算上述第一目标数据,得到第一伪随机数种子。
进一步地,上述读取单元31,还用于在未读取到上述初始数据的情况下,获取初始地址表,上述初始地址表中的地址为固化在上述单片机的程序中的数据,上述初始地址表中的地址用于指示上述随机存取存储器RAM中数据的地址;
上述读取单元31,还用于根据上述初始地址表读取上述随机存取存储器RAM中的数据,得到第二目标数据;
上述计算单元32,还用于计算上述第二目标数据,得到第二伪随机数种子。
进一步地,上述装置还包括:
存储单元33,用于在上述计算单元32计算上述第一目标数据,得到第一伪随机数种子之后,将上述第一伪随机数种子和上述第一目标数据存入上述只读存储器ROM中。
进一步地,上述计算单元32,具体用于根据第一算法和上述初始数据,计算得到地址中间数据;根据第二算法和上述地址中间数据,计算得到上述目标地址表,上述第二算法为不同于上述第一算法的算法。
进一步地,上述计算单元32,具体还用于选取所述地址中间数据各个数位上的数字,得到第一集合,所述第一集合包含的数据为所述地址中间数据各个数位上的数字;根据所述第一集合计算得到第二集合,所述第二集合包含至少一个第二数据,所述第二数据各个数位上的数字为所述第一集合中的任意两个数据;根据所述第一集合计算得到第三集合,所述第三集合包含至少一个第三数据,所述第三数据各个数位上的数字为所述第一集合中的任意三个数据;对所述第一集合中的数据和所述第二集合中的数据做乘积运算,得到第四集合;对所述第二集合中的数据和所述第三集合中的数据做乘积运算,得到第五集合;对所述第四集合和所述第五集合做并集运算,得到所述目标地址表,所述目标地址表中的数据为所述第四集合和所述第五集合的并集中的数据。
进一步地,上述装置还包括:
判断单元34,用于判断上述只读存储器ROM中是否保存有上述初始数据;
上述读取单元31,用于在上述判断单元34判断上述只读存储器ROM中保存有上述初始数据的情况下,读取上述初始数据。
进一步地,上述读取单元31,还用于在上述判断单元34判断上述只读存储器ROM中未保存有上述初始数据的情况下,获取上述初始地址表。
根据本申请实施例,图1和图2中终端执行的方法所涉及的各个步骤均可以是由图3所示的装置中的各个单元来执行。例如,图1中所示的101由图3中所示的31来执行;又如,图2中所示的202由图3中所示的34来执行。
根据本申请实施例,图3所示的装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,基于终端也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
基于上述方法实施例以及装置实施例的描述,本申请实施例还提供了一种终端的结构示意图。如图4所示,该终端400对应于上述实施例中的终端,该终端400可以包括:至少一个处理器401,例如CPU,至少一个网络接口404,用户接口403,存储器405,至少一个通信总线402。其中,通信总线402用于实现这些组件之间的连接通信。其中,用户接口403可以包括显示屏(display)、输入设备,可选用户接口403还可以包括标准的有线接口、无线接口。网络接口404可选地可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器405可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器405可选地还可以是至少一个位于远离前述处理器401的存储装置。如图4所示,作为一种计算机存储介质的存储器405中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图4所示的终端400中,网络接口404主要用于连接其他终端设备;而用户接口403主要用于为用户提供输入的接口;而处理器401可以用于调用存储器405中存储的设备控制应用程序,以实现:在单片机上电或重启的情况下,读取初始数据,所述初始数据为在所述单片机上一次上电或重启的情况下存储在所述单片机的只读存储器ROM中的数据;在读取到所述初始数据的情况下,利用所述初始数据计算得到目标地址表,所述目标地址表中的地址用于指示所述单片机的随机存取存储器RAM中数据的地址;根据所述目标地址表读取所述随机存取存储器RAM中的数据,得到第一目标数据;计算所述第一目标数据,得到第一伪随机数种子。应当理解,终端400可以执行前述实施例中终端执行的操作,例如图1和图2中终端执行的操作。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且所述计算机可读存储介质中存储有前文提及的终端所执行的计算机程序,且所述计算机程序包括程序指令,当所述处理器执行所述程序指令时,能够执行图1和图2所对应实施例中对自动对焦拍照方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,ROM)或随机存储记忆体(random accessmemory,RAM)等。
以上所揭露的仅为本申请提供的实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (8)
1.一种伪随机数种子生成方法,其特征在于,包括:
在单片机上电或重启的情况下,读取初始数据,所述初始数据为在所述单片机上一次上电或重启的情况下存储在所述单片机的只读存储器ROM中的数据;
在读取到所述初始数据的情况下,利用所述初始数据计算得到目标地址表,所述目标地址表中的地址用于指示所述单片机的随机存取存储器RAM中数据的地址;
根据所述目标地址表读取所述随机存取存储器RAM中的数据,得到第一目标数据;
计算所述第一目标数据,得到第一伪随机数种子;
所述利用所述初始数据计算得到目标地址表包括:
根据第一算法和所述初始数据,计算得到地址中间数据;
根据第二算法和所述地址中间数据,计算得到所述目标地址表,所述第二算法为不同于所述第一算法的算法;
所述根据第二算法和所述地址中间数据,计算得到所述目标地址表包括:
选取所述地址中间数据各个数位上的数字,得到第一集合,所述第一集合包含的数据为所述地址中间数据各个数位上的数字;
根据所述第一集合计算得到第二集合,所述第二集合包含至少一个第二数据,所述第二数据各个数位上的数字为所述第一集合中的任意两个数据;
根据所述第一集合计算得到第三集合,所述第三集合包含至少一个第三数据,所述第三数据各个数位上的数字为所述第一集合中的任意三个数据;
对所述第一集合中的数据和所述第二集合中的数据做乘积运算,得到第四集合;
对所述第二集合中的数据和所述第三集合中的数据做乘积运算,得到第五集合;
对所述第四集合和所述第五集合做并集运算,得到所述目标地址表,所述目标地址表中的数据为所述第四集合和所述第五集合的并集中的数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在未读取到所述初始数据的情况下,获取初始地址表,所述初始地址表中的地址为固化在所述单片机的程序中的数据,所述初始地址表中的地址用于指示所述随机存取存储器RAM中数据的地址;
根据所述初始地址表读取所述随机存取存储器RAM中的数据,得到第二目标数据;
计算所述第二目标数据,得到第二伪随机数种子。
3.根据权利要求1所述的方法,其特征在于,所述计算所述第一目标数据,得到第一伪随机数种子之后,还包括:
将所述第一伪随机数种子和所述第一目标数据存入所述只读存储器ROM中。
4.一种伪随机数种子生成装置,其特征在于,包括:
读取单元,用于在单片机上电或重启的情况下,读取初始数据,所述初始数据为在所述单片机上一次上电或重启的情况下存储在所述单片机的只读存储器ROM中的数据;
计算单元,用于在读取到所述初始数据的情况下,利用所述初始数据计算得到目标地址表,所述目标地址表中的地址用于指示所述单片机的随机存取存储器RAM中数据的地址;
所述读取单元,还用于根据所述目标地址表读取所述随机存取存储器RAM中的数据,得到第一目标数据;
所述计算单元,还用于计算所述第一目标数据,得到第一伪随机数种子;
所述计算单元具体用于根据第一算法和所述初始数据,计算得到地址中间数据;根据第二算法和所述地址中间数据,计算得到所述目标地址表,所述第二算法为不同于所述第一算法的算法;
所述计算单元具体还用于选取所述地址中间数据各个数位上的数字,得到第一集合,所述第一集合包含的数据为所述地址中间数据各个数位上的数字;根据所述第一集合计算得到第二集合,所述第二集合包含至少一个第二数据,所述第二数据各个数位上的数字为所述第一集合中的任意两个数据;根据所述第一集合计算得到第三集合,所述第三集合包含至少一个第三数据,所述第三数据各个数位上的数字为所述第一集合中的任意三个数据;对所述第一集合中的数据和所述第二集合中的数据做乘积运算,得到第四集合;对所述第二集合中的数据和所述第三集合中的数据做乘积运算,得到第五集合;对所述第四集合和所述第五集合做并集运算,得到所述目标地址表,所述目标地址表中的数据为所述第四集合和所述第五集合的并集中的数据。
5.根据权利要求4所述的装置,其特征在于,所述读取单元,还用于在未读取到所述初始数据的情况下,获取初始地址表,所述初始地址表中的地址为固化在所述单片机的程序中的数据,所述初始地址表中的地址用于指示所述随机存取存储器RAM中数据的地址;
所述读取单元,还用于根据所述初始地址表读取所述随机存取存储器RAM中的数据,得到第二目标数据;
所述计算单元,还用于计算所述第二目标数据,得到第二伪随机数种子。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
存储单元,用于将所述第一伪随机数种子和所述第一目标数据存入所述只读存储器ROM中。
7.一种电子设备,其特征在于,包括:处理器和存储器,其中,所述存储器存储有程序指令,所述程序指令被所述处理器执行时,使所述处理器执行权利要求1至3任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行如权利要求1至3任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010413812.4A CN111708513B (zh) | 2020-05-15 | 2020-05-15 | 一种伪随机数种子生成方法及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010413812.4A CN111708513B (zh) | 2020-05-15 | 2020-05-15 | 一种伪随机数种子生成方法及相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111708513A CN111708513A (zh) | 2020-09-25 |
CN111708513B true CN111708513B (zh) | 2023-12-08 |
Family
ID=72536983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010413812.4A Active CN111708513B (zh) | 2020-05-15 | 2020-05-15 | 一种伪随机数种子生成方法及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111708513B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112822083B (zh) * | 2021-01-25 | 2022-03-01 | 华电通用轻型燃机设备有限公司 | 面向modbus应用层的数据校验方法和系统 |
CN114301589B (zh) * | 2021-12-27 | 2024-02-23 | 中国电信股份有限公司 | 目标任务的执行方法和装置、存储介质及电子装置 |
CN115277646B (zh) * | 2022-09-29 | 2022-12-30 | 河北振创电子科技有限公司 | 一种以太网数据采集仪mac地址自动设置方法及装置 |
CN118519614B (zh) * | 2024-07-25 | 2024-10-08 | 浙江力积存储科技有限公司 | 随机数生成方法、装置、电子设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004109420A (ja) * | 2002-09-18 | 2004-04-08 | Sony Corp | 乱数生成装置及び乱数生成方法 |
WO2004073167A2 (de) * | 2003-02-14 | 2004-08-26 | Infineon Technologies Ag | Verfahren und schaltung zur adressgenerierung von pseudo-zufalls-interleavern oder -deinterleavern |
JP2006129345A (ja) * | 2004-11-01 | 2006-05-18 | Matsushita Electric Ind Co Ltd | テレビインターホン装置 |
CN1787415A (zh) * | 2004-12-08 | 2006-06-14 | 中兴通讯股份有限公司 | 实现伪随机码相位偏移的装置及其生成伪随机码的方法 |
CN109150239A (zh) * | 2017-06-27 | 2019-01-04 | 深圳市道通智能航空技术有限公司 | 射频设备的通信方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016132506A1 (ja) * | 2015-02-19 | 2016-08-25 | 三菱電機株式会社 | 疑似乱数生成装置及び疑似乱数生成プログラム |
-
2020
- 2020-05-15 CN CN202010413812.4A patent/CN111708513B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004109420A (ja) * | 2002-09-18 | 2004-04-08 | Sony Corp | 乱数生成装置及び乱数生成方法 |
WO2004073167A2 (de) * | 2003-02-14 | 2004-08-26 | Infineon Technologies Ag | Verfahren und schaltung zur adressgenerierung von pseudo-zufalls-interleavern oder -deinterleavern |
JP2006129345A (ja) * | 2004-11-01 | 2006-05-18 | Matsushita Electric Ind Co Ltd | テレビインターホン装置 |
CN1787415A (zh) * | 2004-12-08 | 2006-06-14 | 中兴通讯股份有限公司 | 实现伪随机码相位偏移的装置及其生成伪随机码的方法 |
CN109150239A (zh) * | 2017-06-27 | 2019-01-04 | 深圳市道通智能航空技术有限公司 | 射频设备的通信方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111708513A (zh) | 2020-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111708513B (zh) | 一种伪随机数种子生成方法及相关产品 | |
JP3467489B2 (ja) | Rsa符号化装置 | |
JP6300796B2 (ja) | 算術及び論理ユニットを伴わないコンピュータプロセッサ及びシステム | |
EP1723532B1 (en) | Multiple burst protocol device controller | |
CN111984400B (zh) | 神经网络的内存分配方法及装置 | |
CN110192178B (zh) | 程序打补丁的方法、装置、微控制单元和终端设备 | |
US20230315213A1 (en) | Program download method for intelligent terminal and intelligent terminal | |
US20040168012A1 (en) | Memory address decoding method and related apparatus by bit-pattern matching | |
CN109213774B (zh) | 数据的存储方法及装置、存储介质、终端 | |
CN111432013A (zh) | 配置项下发方法、配置项获取方法、设备及可读存储介质 | |
CN112256472B (zh) | 分布式数据调取方法、装置、电子设备及存储介质 | |
US6871274B2 (en) | Instruction code conversion apparatus creating an instruction code including a second code converted from a first code | |
CN107832086B (zh) | 计算机设备、程序写入方法及程序读取方法 | |
CN114490074B (zh) | 仲裁系统、方法、电子设备、存储介质及芯片 | |
CN111078132B (zh) | 基于Redis集群的数据均匀缓存方法、装置、终端及存储介质 | |
CN113625992B (zh) | 基于除法器的任务处理方法、装置、除法器及存储介质 | |
CN102325023B (zh) | 一种延长芯片使用寿命的数据生成方法和装置 | |
CN109634560B (zh) | 随机数生成方法、装置及存储介质 | |
CN110008059B (zh) | 非易失性存储介质的数据更新方法、装置及存储介质 | |
CN113114271A (zh) | 低密度奇偶校验编码装置和方法 | |
CN114499465A (zh) | 散列算法及电路、电子设备 | |
JP2007520729A (ja) | 改良された低減計算 | |
CN109597654B (zh) | 寄存器初始化方法、基础配置表的生成方法及嵌入式系统 | |
CN114168541A (zh) | 数据处理方法、装置、介质及电子设备 | |
US9645793B2 (en) | Random permutation generator and method for generating a random permutation sequence |
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 |