CN112199073A - 一种基于单片机的随机数生成方法 - Google Patents

一种基于单片机的随机数生成方法 Download PDF

Info

Publication number
CN112199073A
CN112199073A CN202011004484.9A CN202011004484A CN112199073A CN 112199073 A CN112199073 A CN 112199073A CN 202011004484 A CN202011004484 A CN 202011004484A CN 112199073 A CN112199073 A CN 112199073A
Authority
CN
China
Prior art keywords
interrupt
clock source
random number
chip microcomputer
single chip
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
Application number
CN202011004484.9A
Other languages
English (en)
Other versions
CN112199073B (zh
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.)
Shenzhen Weite Precision Technology Co ltd
Original Assignee
Shenzhen Microtest Automation Co ltd
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 Shenzhen Microtest Automation Co ltd filed Critical Shenzhen Microtest Automation Co ltd
Priority to CN202011004484.9A priority Critical patent/CN112199073B/zh
Publication of CN112199073A publication Critical patent/CN112199073A/zh
Application granted granted Critical
Publication of CN112199073B publication Critical patent/CN112199073B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/588Random 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)
  • Microcomputers (AREA)

Abstract

本发明涉及随机数生成技术领域,尤其涉及一种基于单片机的随机数生成方法,本发明基于单片机实现,单片机包括不同源的中断时钟源、第一禁止中断时钟源,所述方法包括以下步骤:A、将中断时钟源配置为开启中断并将其中断时间设置为T,将第一禁止中断时钟源配置为禁止中断;B、同时启动中断时钟源、第一禁止中断时钟源;C、当中断时钟源发生中断后,读取第一禁止中断时钟源此时的寄存器数值V1;D、将寄存器数值V1作为所需随机数;本发明不仅能够生成真随机数,而且系统简单、成本低、可靠性高、易于实现,能够适用于多种使用场合。

Description

一种基于单片机的随机数生成方法
技术领域:
本发明涉及随机数生成技术领域,尤其涉及一种基于单片机的随机数生成方法。
背景技术:
随机数是专门的随机试验的结果,在统计学的不同技术中需要使用随机数,比如在从统计总体中抽取有代表性的样本的时候,或者在将实验动物分配到不同的试验组的过程中,或者在进行蒙特卡罗模拟法计算的时候等。随机数最重要的特性是它在产生时是随机的、不可预测的,真正的随机数是使用物理现象产生的:比如掷钱币、骰子、转轮、核裂变等。在实际应用中很多用的是伪随机数生成方法,计算机通过一个固定的、可以重复的计算方法产生随机数,伪随机数实际上是有规律的,在重要场合比如密码学等中应用是有缺陷的。
尽管已有的随机数生成方法千差万别、各有不同,但是研究工作集中在真随机数的产生和测试方法,以及产生装置的系统复杂性、成本、和可靠性等方面。
真随机数的产生主要利用物理系统的随机性来实现。比如利用电子线路中的随机噪声、电子线路中产生的混沌信号、光学系统中的相位噪声、混沌激光器以及量子物理的随机性等物理基础,人们已经从原理上论证了多种真随机数的产生方案。其中基于电子线路中的随机噪声以及混沌信号的方案已有商用基础。然而,使用电子线路中的物理过程产生随机数的方案,其随机二进制比特的产生速率难以进一步提升。近年来,随着光量子信息技术、光电子技术以及光通信系统不断成熟和发展,采用光学系统实现真随机数产生的方案引起人们的广泛关注。比如,利用激光器输出光场的真空涨落和半导体激光器的混沌信号输出,人们可以实现真随机数的产生,这是一种利用量子物理随机性实现真随机数产生的经典信息技术,上述基于光学系统的经典信息技术可以实现真随机数的高速产生,但是需要使用复杂的后级电子学辅助以实现对激光器相位噪声或混沌特性的测量,增加了系统的复杂性;同时半导体激光器的混沌信号产生需要配合外腔反馈等精密光学控制系统,导致上述产生真随机数的光学方案不利于进一步的向实用化发展。因此设计一种系统简单、成本低、可靠性高且能生成真随机数的方法成为本技术领域的技术人员亟待解决的技术问题。
发明内容:
本发明的目的就是针对现有技术存在的不足而提供一种基于单片机的随机数生成方法,不仅能够生成真随机数,而且系统简单、成本低、可靠性高、易于实现,能够适用于多种使用场合。
为了实现上述目的,本发明采用的技术方案是:一种基于单片机的随机数生成方法,本发明基于单片机实现,单片机包括不同源的中断时钟源、第一禁止中断时钟源,所述方法包括以下步骤:
A、将中断时钟源配置为开启中断并将其中断时间设置为T,将第一禁止中断时钟源配置为禁止中断;
B、同时启动中断时钟源、第一禁止中断时钟源;
C、当中断时钟源发生中断后,读取第一禁止中断时钟源此时的寄存器数值V1;
D、将寄存器数值V1作为所需随机数。
对上述方案的进一步改进为,在所述步骤D中,在将寄存器数值V1作为所需随机数输出前将寄存器数值V1作为第一随机数种子,将第一随机数种子进行第一预设函数处理后得所需随机数。
对上述方案的进一步改进为,所述第一预设函数为用于将第一随机数种子转换为特定范围内的数值的映射函数。
对上述方案的进一步改进为,所述第一预设函数包括加法运算和/或减法运算和/或乘法运算和/或除法运算。
对上述方案的进一步改进为,在所述步骤D中,还将寄存器数值V1作为时间值T1,将时间值T1作为中断时钟源的下一次中断时间T。
对上述方案的进一步改进为,所述单片机还包括第二禁止中断时钟源,将所述第二禁止中断时钟源配置为禁止中断,在启动中断时钟源、第一禁止中断时钟源的同时启动第二禁止中断时钟源,当中断时钟源发生中断后,读取第二禁止中断时钟源此时的寄存器数值V2,将寄存器数值V2作为时间值T1,将时间值T1作为中断时钟源的下一次中断时间T。
对上述方案的进一步改进为,在将所述时间值T1作为中断时钟源的下一次中断时间T前将所述时间值T1作为第二随机数种子,将第二随机数种子进行第二预设函数处理后得中断时钟源的下一次中断时间T。
对上述方案的进一步改进为,所述第二预设函数为用于将第二随机数种子转换为特定范围内的数值的映射函数。
对上述方案的进一步改进为,所述第二预设函数包括加法运算和/或减法运算和/或乘法运算和/或除法运算。
对上述方案的进一步改进为,所述中断时钟源为高速时钟且第一禁止中断时钟源为低速时钟,或中断时钟源为低速时钟且第一禁止中断时钟源为高速时钟。
本发明有益效果在于:本发明提供的一种基于单片机的随机数生成方法,本发明基于单片机实现,单片机包括不同源的中断时钟源、第一禁止中断时钟源,所述方法包括以下步骤:
A、将中断时钟源配置为开启中断并将其中断时间设置为T,当到达所述中断时间T后,中断时钟源发生中断,将第一禁止中断时钟源配置为禁止中断;
B、同时启动中断时钟源、第一禁止中断时钟源;
C、当中断时钟源发生中断后,读取第一禁止中断时钟源此时的寄存器数值V1;
D、将寄存器数值V1作为所需随机数;
本发明基于单片机实现,系统简单、成本低、可靠性高、易于实现,由于中断时钟源与第一禁止中断时钟源不是同源的且受到环境温度、湿度、器件噪声等因素影响,第一禁止中断时钟源在中断时钟源发生中断时的寄存器数值V1与上一次的数值是不同的且没有关联性,由于寄存器数值V1受到环境温度、湿度、器件噪声等因素影响,中断时钟源发生中断时的寄存器数值V1是不可预测的,所以将寄存器数值V1作为所需随机数是利用物理系统的随机性来生成随机数的,所得到的随机数为真随机数,本发明不仅能够生成真随机数,而且系统简单、成本低、可靠性高、易于实现,能够适用于多种使用场合,实用性更强。
具体实施方式:
实施例1,一种基于单片机的随机数生成方法,该方法基于单片机实现,单片机包括两个不同源的时钟源,本实施例中的中断时钟源为高速时钟,第一禁止中断时钟源为低速时钟,当然,在其他实施例中,中断时钟源可以为低速时钟,第一禁止中断时钟源可以为高速时钟,单片机包括不同源的中断时钟源、第一禁止中断时钟源,所述方法包括以下步骤:
A、将中断时钟源配置为开启中断并将其中断时间设置为T,将第一禁止中断时钟源配置为禁止中断;
B、同时启动中断时钟源、第一禁止中断时钟源;
C、当中断时钟源发生中断后,读取第一禁止中断时钟源此时的寄存器数值V1;
D、将寄存器数值V1作为所需随机数;
本发明基于单片机实现,系统简单、成本低、可靠性高、易于实现,由于中断时钟源与第一禁止中断时钟源不是同源的且受到环境温度、湿度、器件噪声等因素影响,第一禁止中断时钟源在中断时钟源发生中断时的寄存器数值V1与上一次的数值是不同的且没有关联性,由于寄存器数值V1受到环境温度、湿度、器件噪声等因素影响,中断时钟源发生中断时的寄存器数值V1是不可预测的,所以将寄存器数值V1作为所需随机数是利用物理系统的随机性来生成随机数的,所得到的随机数为真随机数,本发明不仅能够生成真随机数,而且系统简单、成本低、可靠性高、易于实现,能够适用于多种使用场合,实用性更强。
实施例2,本实施例与实施例1的不同之处在于:在所述步骤D中,在将寄存器数值V1作为所需随机数输出前将寄存器数值V1作为第一随机数种子,将第一随机数种子进行第一预设函数处理后得所需随机数;第一预设函数为用于将第一随机数种子转换为特定范围内的数值的映射函数,能够获得所需特定范围内的随机数值,实用性更强;其余部分均与实施例1相同,此处不再赘述。
实施例3,本实施例与实施例1的不同之处在于:在所述步骤D中,在将寄存器数值V1作为所需随机数输出前将寄存器数值V1作为第一随机数种子,将第一随机数种子进行第一预设函数处理后得所需随机数;第一预设函数既可以包括简单的加法运算、减法运算、乘法运算、除法运算,也可以包括线性同余法等算法;其余部分均与实施例1相同,此处不再赘述。
实施例4,本实施例与实施例1的不同之处在于:在所述步骤D中,还将寄存器数值V1作为时间值T1,将时间值T1作为中断时钟源的下一次中断时间T,能够进一步增加随机数产生的不确定性,从而进一步增加所生成的随机数的可靠性;其余部分均与实施例1相同,此处不再赘述。
实施例5,本实施例与实施例1的不同之处在于:本实施例的单片机还包括第二禁止中断时钟源,将所述第二禁止中断时钟源配置为禁止中断,在启动中断时钟源、第一禁止中断时钟源的同时启动第二禁止中断时钟源,当中断时钟源发生中断后,读取第二禁止中断时钟源此时的寄存器数值V2,将寄存器数值V2作为时间值T1,将时间值T1作为中断时钟源的下一次中断时间T,能够进一步增加随机数产生的不确定性,从而进一步增加所生成的随机数的可靠性;其余部分均与实施例1相同,此处不再赘述。
实施例6,本实施例与实施例4的不同之处在于:在将所述时间值T1作为中断时钟源的下一次中断时间T前将所述时间值T1作为第二随机数种子,将第二随机数种子进行第二预设函数处理后得中断时钟源的下一次中断时间T;第二预设函数为用于将第二随机数种子转换为特定范围内的数值的映射函数,能够获得所需特定范围内的中断时间T,实用性更强;其余部分均与实施例4相同,此处不再赘述。
实施例7,本实施例与实施例4的不同之处在于:在将所述时间值T1作为中断时钟源的下一次中断时间T前将所述时间值T1作为第二随机数种子,将第二随机数种子进行第二预设函数处理后得中断时钟源的下一次中断时间T;第二预设函数既可以包括简单的加法运算、减法运算、乘法运算、除法运算,也可以包括线性同余法等算法;其余部分均与实施例4相同,此处不再赘述。
实施例8,本实施例与实施例5的不同之处在于:在将所述时间值T1作为中断时钟源的下一次中断时间T前将所述时间值T1作为第二随机数种子,将第二随机数种子进行第二预设函数处理后得中断时钟源的下一次中断时间T;第二预设函数为用于将第二随机数种子转换为特定范围内的数值的映射函数,能够获得所需特定范围内的中断时间T,实用性更强;其余部分均与实施例5相同,此处不再赘述。
实施例9,本实施例与实施例5的不同之处在于:在将所述时间值T1作为中断时钟源的下一次中断时间T前将所述时间值T1作为第二随机数种子,将第二随机数种子进行第二预设函数处理后得中断时钟源的下一次中断时间T;第二预设函数既可以包括简单的加法运算、减法运算、乘法运算、除法运算,也可以包括线性同余法等算法;其余部分均与实施例5相同,此处不再赘述。
工作原理:
将中断时钟源配置为开启中断并将其中断时间设置为T,将第一禁止中断时钟源配置为禁止中断;同时启动中断时钟源、第一禁止中断时钟源;当到达所述中断时间T后,中断时钟源发生中断,读取第一禁止中断时钟源此时的寄存器数值V1;将寄存器数值V1作为所需随机数输出;本发明不仅能够生成真随机数,而且系统简单、成本低、可靠性高、易于实现,能够适用于多种使用场合,实用性更强。
当然,以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述的构造、特征及原理所做的等效变化或修饰,均包括于本发明专利申请范围内。

Claims (10)

1.一种基于单片机的随机数生成方法,其特征在于,所述方法基于单片机实现,单片机包括不同源的中断时钟源、第一禁止中断时钟源,所述方法包括以下步骤:
A、将中断时钟源配置为开启中断并将其中断时间设置为T,将第一禁止中断时钟源配置为禁止中断;
B、同时启动中断时钟源、第一禁止中断时钟源;
C、当中断时钟源发生中断后,读取第一禁止中断时钟源此时的寄存器数值V1;
D、将寄存器数值V1作为所需随机数。
2.根据权利要求1所述的一种基于单片机的随机数生成方法,其特征在于:在所述步骤D中,在将寄存器数值V1作为所需随机数输出前将寄存器数值V1作为第一随机数种子,将第一随机数种子进行第一预设函数处理后得所需随机数。
3.根据权利要求2所述的一种基于单片机的随机数生成方法,其特征在于:所述第一预设函数为用于将第一随机数种子转换为特定范围内的数值的映射函数。
4.根据权利要求2所述的一种基于单片机的随机数生成方法,其特征在于:所述第一预设函数包括加法运算和/或减法运算和/或乘法运算和/或除法运算。
5.根据权利要求1所述的一种基于单片机的随机数生成方法,其特征在于:在所述步骤D中,还将寄存器数值V1作为时间值T1,将时间值T1作为中断时钟源的下一次中断时间T。
6.根据权利要求1所述的一种基于单片机的随机数生成方法,其特征在于:所述单片机还包括第二禁止中断时钟源,将所述第二禁止中断时钟源配置为禁止中断,在启动中断时钟源、第一禁止中断时钟源的同时启动第二禁止中断时钟源,当中断时钟源发生中断后,读取第二禁止中断时钟源此时的寄存器数值V2,将寄存器数值V2作为时间值T1,将时间值T1作为中断时钟源的下一次中断时间T。
7.根据权利要求5或6所述的一种基于单片机的随机数生成方法,其特征在于:在将所述时间值T1作为中断时钟源的下一次中断时间T前将所述时间值T1作为第二随机数种子,将第二随机数种子进行第二预设函数处理后得中断时钟源的下一次中断时间T。
8.根据权利要求7所述的一种基于单片机的随机数生成方法,其特征在于:所述第二预设函数为用于将第二随机数种子转换为特定范围内的数值的映射函数。
9.根据权利要求7所述的一种基于单片机的随机数生成方法,其特征在于:所述第二预设函数包括加法运算和/或减法运算和/或乘法运算和/或除法运算。
10.根据权利要求1所述的一种基于单片机的随机数生成方法,其特征在于:所述中断时钟源为高速时钟且第一禁止中断时钟源为低速时钟,或中断时钟源为低速时钟且第一禁止中断时钟源为高速时钟。
CN202011004484.9A 2020-09-22 2020-09-22 一种基于单片机的随机数生成方法 Active CN112199073B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011004484.9A CN112199073B (zh) 2020-09-22 2020-09-22 一种基于单片机的随机数生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011004484.9A CN112199073B (zh) 2020-09-22 2020-09-22 一种基于单片机的随机数生成方法

Publications (2)

Publication Number Publication Date
CN112199073A true CN112199073A (zh) 2021-01-08
CN112199073B CN112199073B (zh) 2024-02-02

Family

ID=74015982

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011004484.9A Active CN112199073B (zh) 2020-09-22 2020-09-22 一种基于单片机的随机数生成方法

Country Status (1)

Country Link
CN (1) CN112199073B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030002266A (ko) * 2001-06-30 2003-01-08 주식회사 하이닉스반도체 난수 발생 장치
US20070140485A1 (en) * 2004-02-26 2007-06-21 Giovanni Ghigo Method and circuit for generating random numbers, and computer program product therefor
CN101620665A (zh) * 2009-08-10 2010-01-06 成都三零盛安信息系统有限公司 一种超高频无源射频识别阅读器及其跳频方法
CN201773390U (zh) * 2010-09-01 2011-03-23 中国电力科学研究院 基于电阻噪声处理的真随机数发生器
CN103838545A (zh) * 2012-11-22 2014-06-04 西安元朔科技有限公司 一种随机数生成方法
CN107769923A (zh) * 2016-08-23 2018-03-06 中国科学院声学研究所 一种基于cpu时钟和usb独立时钟的真随机数产生方法
CN110647310A (zh) * 2018-06-26 2020-01-03 西安电子科技大学 一种用于生成Android设备真随机数的方法
CN111046381A (zh) * 2019-12-27 2020-04-21 南方电网科学研究院有限责任公司 一种嵌入式cpu抗差分功耗分析装置及方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030002266A (ko) * 2001-06-30 2003-01-08 주식회사 하이닉스반도체 난수 발생 장치
US20070140485A1 (en) * 2004-02-26 2007-06-21 Giovanni Ghigo Method and circuit for generating random numbers, and computer program product therefor
CN101620665A (zh) * 2009-08-10 2010-01-06 成都三零盛安信息系统有限公司 一种超高频无源射频识别阅读器及其跳频方法
CN201773390U (zh) * 2010-09-01 2011-03-23 中国电力科学研究院 基于电阻噪声处理的真随机数发生器
CN103838545A (zh) * 2012-11-22 2014-06-04 西安元朔科技有限公司 一种随机数生成方法
CN107769923A (zh) * 2016-08-23 2018-03-06 中国科学院声学研究所 一种基于cpu时钟和usb独立时钟的真随机数产生方法
CN110647310A (zh) * 2018-06-26 2020-01-03 西安电子科技大学 一种用于生成Android设备真随机数的方法
CN111046381A (zh) * 2019-12-27 2020-04-21 南方电网科学研究院有限责任公司 一种嵌入式cpu抗差分功耗分析装置及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
董俊;朱文;蒲秀英;席月平;: "物理真随机数发生器的设计", 电光与控制, no. 02 *

Also Published As

Publication number Publication date
CN112199073B (zh) 2024-02-02

Similar Documents

Publication Publication Date Title
Wayne et al. Photon arrival time quantum random number generation
CN103713879A (zh) 基于光子到达时间的无偏高速量子随机数发生器
Ertl Probminhash–a class of locality-sensitive hash algorithms for the (probability) jaccard similarity
EP1320026A1 (en) Method for generating a random number sequence and a relative random bit generator
Chizhevsky Symmetrization of single-sided or nonsymmetrical distributions: The way to enhance a generation rate of random bits from a physical source of randomness
CN112199073A (zh) 一种基于单片机的随机数生成方法
CN111130536A (zh) 一种同时具有老化检测和puf功能的电路
Shifman et al. Preselection methods to achieve very low BER in SRAM-based PUFs—A tutorial
CN1914847B (zh) 使用数字逻辑产生随机数的装置和方法
CN110647310B (zh) 一种用于生成Android设备真随机数的方法
CN113535124B (zh) 基于片上数字反馈自校准系统的真随机数发生器
CN116382629A (zh) 基于隧穿效应的量子随机数生成器
Wang et al. A 0.116 pJ/bit latch-based true random number generator with static inverter selection and noise enhancement
US10754617B2 (en) Generating of random numbers
Lea Low-cost high-speed associative memory
Rahmann et al. Exact and efficient computation of the expected number of missing and common words in random texts
JP2004118651A (ja) 乱数発生方法及び乱数発生装置
EP2933719A1 (en) A digital method and device for generating true random numbers
Chizhevsky et al. Random bits from quantum jumps
Bisadi All-silicon-based photonic quantum random number Generators
Chizhevsky Fast generation of random bits based on polarization noises in a semiconductor vertical-cavity laser
Smith et al. A quantum photonic trng based on quaternary logic
Aliev et al. Examination of distribution regularities in static RAM microcircuit cells in case of using them as a physically unclonable function in a mutual authentication module
CN219016419U (zh) 一种高精度低功耗抗干扰电压检测电路装置
CN116643721B (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
CP03 Change of name, title or address

Address after: 518000 floor 1, No.2, Dongtang Industrial Zone, Chuangxin Road, Shatou community, Shajing street, Bao'an District, Shenzhen City, Guangdong Province

Patentee after: Shenzhen Weite Precision Technology Co.,Ltd.

Country or region after: China

Address before: 518000 1st floor, building 21, Zone C, Liantang Industrial City, Shangcun, Gongming street, Guangming New District, Shenzhen City, Guangdong Province

Patentee before: SHENZHEN MICROTEST AUTOMATION Co.,Ltd.

Country or region before: China