随机数产生方法及相关装置、蓝牙芯片与电子设备
技术领域
本发明实施方式涉及无线技术领域,特别是涉及一种随机数产生方法及相关装置、蓝牙芯片与电子设备。
背景技术
传统的单片机在生成随机数时,需要一个固定的种子作为初始参数,往往只能生成伪随机数。因为单片机的大部分库都是通过线性同余生成随机数的,即“随机数=(种子*X+Y)mod Z”,这就导致经过一定的周期后产生的随机数会开始循环。另外在生产蓝牙产品时生产的每个产品都需要有独一无二的蓝牙地址,但是因为所有同款产品的程序是完全相同的,这就导致了如果使用线性同余生成随机蓝牙地址,那么这些设备的地址很可能也是相同的。
鉴于此,克服上述现有技术所存在的缺陷是本技术领域亟待解决的问题。
发明内容
本发明实施方式主要解决的技术问题是提供一种随机数产生方法及相关装置、蓝牙芯片与电子设备,能够产生真正的随机数。
为解决上述技术问题,本发明实施方式采用的一个技术方案是:提供一种随机数产生方法,包括:从外部获取无线数据;对获取到的无线数据进行循环冗余校验;在校验未通过时,将获取到的无线数据生成为随机数。
其中,从外部获取无线数据的步骤包括:蓝牙设备的无线射频模块接收无线数据。
其中,方法还包括:蓝牙设备的无线射频模块接收访问地址数据;在访问地址数据中存在至少部分与预置地址数据匹配时,触发蓝牙设备的无线射频模块接收无线数据。
其中,预置地址数据为32位数据;访问地址数据中存在至少部分与预置地址数据匹配具体为:访问地址数据中存在至少5位与预置地址数据匹配。
其中,蓝牙设备的无线射频模块接收无线数据具体为:无线射频模块通过数据信道接收无线数据。
其中,蓝牙设备为蓝牙低功耗设备、蓝牙基础速率设备或蓝牙增强数据率设备。
为解决上述技术问题,本发明实施方式采用的另一个技术方案是:提供一种随机数产生装置,包括:获取模块,用于从外部获取无线数据;校验模块,用于对获取模块获取到的无线数据进行循环冗余校验;产生模块,用于在校验未通过时,将获取模块接收到的无线数据生成为随机数。
其中,装置为蓝牙设备,获取模块包括该蓝牙设备的无线射频模块,用于接收无线数据。
其中,蓝牙设备的无线射频模块用于接收访问地址数据,在访问地址数据中存在至少部分与预置地址数据匹配时,接收无线数据。
其中,预置地址数据为32位数据;访问地址数据中存在至少部分与预置地址数据匹配具体为:访问地址数据中存在至少5位与预置地址数据匹配。
其中,蓝牙设备的无线射频模块通过数据信道接收无线数据。
其中,蓝牙设备为蓝牙低功耗设备、蓝牙基础速率设备或蓝牙增强数据率设备。
为解决上述技术问题,本发明实施方式采用的另一个技术方案是:提供一种蓝牙芯片,包括:无线射频天线,用于从外部接收无线数据;处理器,用于对无线射频天线获取到的无线数据进行循环冗余校验;在校验未通过时,将获取到的无线数据生成为随机数。
为解决上述技术问题,本发明实施方式采用的另一个技术方案是:提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令程序,指令程序被至少一个处理器执行,以使至少一个处理器用于:从外部获取无线数据;对获取到的无线数据进行循环冗余校验;在校验未通过时,将获取到的无线数据生成为随机数。
与现有技术相比,本发明实施方式的有益效果是:
在本发明实施例中,通过从外部获取无线数据,并通过对该无线数据进行循环冗余校验来排除有意义的数据,而未通过校验的无线数据即为随机噪声,从而产生真正的随机数。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明随机数产生方法的一个实施例的流程示意图;
图2是本发明随机数产生方法的另一实施例的流程示意图;
图3是本发明随机数产生装置的一个实施例的结构示意图;
图4是本发明蓝牙芯片的一个实施例的结构示意图;
图5是本发明电子设备的一个实施例的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在本发明实施例中,提供了一种随机数产生方法,通过从外部获取无线数据;对获取到的无线数据进行循环冗余校验;在校验未通过时,将获取到的无线数据生成为随机数。
因为在不同时间或不同地点存在的电磁波都是不相同的,所以即使多个设备的硬件和软件是完全相同的,但它们放置的地点或开机时间是不同的,因此通过它们接收到的这些电磁波是随机噪声,不会有固定的循环周期,是真正的随机数。
由于随机噪声不能像有意义的数据包那样通过循环冗余校验,因此,本发明的主要思路是获取外部的无线数据,并对这些无线数据进行循环冗余校验来排除有意义的数据包,而未通过校验的无线数据即为随机噪声,从而产生真正的随机数。
下面结合具体实施例对本发明实施例作进一步阐述。
请参阅图1,图1是本发明随机数产生方法的一个实施例的流程示意图。如图1所示,本实施例包括:
步骤101:从外部获取无线数据;
本实施例的执行主体可以是Wi-Fi设备、紫蜂(ZigBee)设备、无线USB等无线设备。执行主体也可以是蓝牙设备,例如蓝牙低功耗(BLE,Bluetooth Low Energy)设备、蓝牙基础速率(BR,Basic Rate)设备、蓝牙增强数据率(EDR,Enhanced data rate)设备。
本实施例中以蓝牙低功耗设备为例进行说明。步骤101具体可以是蓝牙低功耗设备的无线射频模块(RF,Radio Frequency)接收无线数据,例如,蓝牙低功耗设备的无线射频模块从空气中接收2.4G频段的电磁波。
步骤102:对获取到的无线数据进行循环冗余校验;
在步骤101中,获取到的无线数据可能是其它无线设备发送的有意义的数据包,并非随机噪声,例如蓝牙低功耗设备接收到的无线数据中,有些可能是其它蓝牙设备发送的蓝牙数据。因此,需要对接收到的无线数据进行循环冗余校验。
具体地,蓝牙低功耗设备利用无线数据中的协议数据单元(PDU,ProtocolDataUnit)的所有数据位,使用线性反馈移位寄存器(LFSR,Linear Feedback ShiftRegister)来计算循环冗余校验值。此为现有公知技术,此处不作赘述。
步骤103:在循环冗余校验未通过时,将获取到的无线数据生成为随机数。
如果循环冗余校验通过,则认为接收到的无线数据是有意义的数据(例如其它蓝牙设备发送的蓝牙数据),并非随机噪声;如果循环冗余校验未通过,则认为接收到的无线数据是随机噪声,将该无线数据生成为随机数。生成的随机数可以用于组成动态的蓝牙地址,动态的时间参数等。
本实施例中,通过从外部获取无线数据,并通过对该无线数据进行循环冗余校验来排除有意义的数据,而未通过校验的无线数据即为随机噪声,从而产生真正的随机数。
请参阅图2,图2是本发明随机数产生方法的另一实施例的流程示意图。如图2所示,本实施例包括:
步骤201、蓝牙低功耗设备的无线射频模块接收访问地址数据,并根据该访问地址数据进行地址匹配;
本实施例中,蓝牙低功耗设备在现有协议基础上执行操作。在现有协议中,蓝牙低功耗设备的RF模块需要先通过接收访问地址(Access Address)数据,并进行地址匹配来判断是否收到真正的无线数据包;在认为收到真正的无线数据包时,RF模块继续接收访问地址数据后面的无线数据。
在现有协议中,在蓝牙低功耗设备刚开启时,RF模块会先接收32位访问地址数据,判断32位访问地址数据与32位预先约定的地址数据是否相同,若是,则认为真正收到无线数据包,这时RF模块会继续接收无线数据。若不相同,则RF模块会继续接收1位访问地址数据,并判断最新接收的32位访问地址数据与32位预置地址数据是否相同。
但是,本实施例目的是为了生成随机数,因此可以配置蓝牙低功耗设备的32位访问地址数据为任意数值;并且,访问地址数据不需要32位都相同,只要有至少部分与预置地址数据相同即认为匹配,RF模块即继续接收后面的无线数据,这样蓝牙低功耗设备就能够尽快地接收到真正的无线数据包。
步骤202、在访问地址数据中存在至少5位与32位预置地址数据匹配时,蓝牙低功耗设备的无线射频模块接收无线数据;
实验证明,将访问地址数据的匹配检测数设置为20位,即检测到的访问地址数据只要有20位与预置的32位相同,就判定为匹配,就能够使蓝牙低功耗设备明显地较快接收到真正的无线数据包。
在本实施例中,具体地,访问地址数据中存在至少5位与32位预置地址数据相同时,就认为访问地址数据匹配,蓝牙低功耗设备的RF模块接收后面的无线数据。
此外,RF信道可以配置为任意信道。但是,因为广播信道(Advertising channel)中可能会有其它蓝牙设备进行蓝牙广播,所以若配置为广播信道,则会加大收到固定或有规律的蓝牙数据的概率。因此,为了提高接收到的无线数据是随机噪声而不是有意义数据包(例如蓝牙数据)的概率,蓝牙低功耗设备的RF信道优选配置为数据信道,即步骤202中的蓝牙低功耗设备的RF模块接收无线数据具体为:蓝牙低功耗设备的RF模块通过数据信道接收无线数据。
步骤203、对接收到的无线数据进行循环冗余校验,校验未通过,则触发步骤204,否则结束操作;
在蓝牙低功耗设备计算循环冗余校验值之前,需要先对循环冗余校验寄存器赋初始值。在现有协议中循环冗余校验初始值是事先约定好的固定值,而本发明旨在产生随机数,因此可以将24位循环冗余校验初始值设置为任意数值。
如果循环冗余校验未通过,则认为接收到的无线数据是随机噪声,触发步骤204。如果循环冗余校验通过,则说明接收到的无线数据并非随机噪声,可以结束本次操作,等下次设备启动时再尝试生成随机数。
步骤204、将接收到的无线数据生成为随机数。
若步骤203中校验未通过,则将接收到的无线数据生成为随机数。蓝牙低功耗设备可以将生成的随机数保存在本地,待需要时读取出来使用,例如,在蓝牙低功耗设备需要与其它设备进行通信时,可以读取出来作为生成伪随机数的种子使用。
本实施例中,蓝牙低功耗设备通过RF模块接收无线数据,并通过对该无线数据进行循环冗余校验来排除有意义的数据,而未通过校验的无线数据即为随机噪声,从而产生真正的随机数。并且,本实施例在基于现有协议进行访问地址匹配时,匹配检测数较少,使得蓝牙低功耗设备能够尽快地接收到真正的无线数据包,尽快地生成随机数。另外,RF模块通过数据信道接收无线数据,能够提高接收到的无线数据是随机噪声而不是有意义数据包的概率。
在本发明实施例中,还提供了一种随机数产生装置,包括:获取模块,用于从外部获取无线数据;校验模块,用于对获取模块获取到的无线数据进行循环冗余校验;产生模块,用于在校验未通过时,将获取模块接收到的无线数据生成为随机数。
请参阅图3,图3是本发明随机数产生装置的一个实施例的结构示意图。如图3所示,随机数产生装置包括:
获取模块310,用于从外部获取无线数据;
随机数产生装置可以是Wi-Fi设备、紫蜂设备、无线USB等无线设备,也可以是蓝牙设备,例如蓝牙低功耗设备、蓝牙基础速率设备、蓝牙增强数据率设备。
本实施例以随机数产生装置为蓝牙低功耗设备为例进行说明。获取模块210可以包括蓝牙低功耗设备中的RF模块,RF模块用于从外部(例如空气中)接收无线数据。
进一步地,蓝牙低功耗设备在现有协议基础上执行操作。即蓝牙低功耗设备的RF模块先通过接收访问地址数据,并进行地址匹配来判断是否收到真正的无线数据包;在认为收到真正的无线数据包时,RF模块继续接收访问地址数据后面的无线数据。
优选地,蓝牙低功耗设备的RF模块用于接收访问地址数据,在访问地址数据中存在至少部分与预置地址数据匹配时,从外部接收无线数据,使得蓝牙低功耗设备能够尽快地接收到真正的无线数据包。
具体地,预置地址数据为32位数据;访问地址数据中存在至少部分与预置地址数据匹配具体可以为:访问地址数据中存在至少5位与预置地址数据匹配。
此外,为了提高接收到的无线数据是随机噪声而不是有意义数据包(例如蓝牙数据)的概率,蓝牙低功耗设备的RF信道优选配置为数据信道。即获取模块310中,RF模块通过数据信道接收无线数据。
校验模块320,用于对获取模块获取到的无线数据进行循环冗余校验;
获取模块310获取的无线数据可能是其它无线设备发送的有意义的数据包,并非随机噪声,例如蓝牙低功耗设备接收到的无线数据中,有些可能是其它蓝牙设备发送的蓝牙数据。因此,通过校验模块320对接收到的无线数据进行循环冗余校验。
在蓝牙低功耗设备计算循环冗余校验值之前,需要先对循环冗余校验寄存器赋初始值。在现有协议中循环冗余校验初始值是事先约定好的固定值,而本发明旨在产生随机数,因此可以将循环冗余校验初始值设置为任意数值。
产生模块330,用于在校验未通过时,将获取模块接收到的无线数据生成为随机数。
如果校验模块对无线数据的循环冗余校验通过,则认为接收到的无线数据是有意义的蓝牙数据,而非随机噪声。如果循环冗余校验未通过,则认为接收到的无线数据是随机噪声,产生模块330将该无线数据生成为随机数。生成的随机数可以用于组成动态的蓝牙地址,动态的时间参数等。
本实施例中,通过从外部获取无线数据,并通过对该无线数据进行循环冗余校验来排除有意义的数据,而未通过校验的无线数据即为随机噪声,从而产生真正的随机数。
在本发明实施例中,还提供了一种蓝牙芯片,包括:无线射频天线,用于从外部接收无线数据;处理器,用于对无线射频天线获取到的无线数据进行循环冗余校验,在校验未通过时,将获取到的无线数据生成为随机数。
请参阅图4,图4是本发明蓝牙芯片的一个实施例的结构示意图,包括:
无线射频天线410,用于从外部接收无线数据;
蓝牙芯片可以设置于各种蓝牙设备中,例如蓝牙低功耗设备、蓝牙基础速率设备、蓝牙增强数据率设备。
本实施例以蓝牙芯片设置于蓝牙低功耗设备为例进行说明。无线射频天线410可以基于蓝牙低功耗设备的现有协议进行操作,即先接收访问地址数据,并进行地址匹配来判断是否收到真正的无线数据包;在认为收到真正的无线数据包时,RF模块继续接收访问地址数据后面的无线数据。
优选地,无线射频天线410用于接收访问地址数据,在访问地址数据中存在至少部分与预置地址数据匹配时,从外部接收无线数据,使得蓝牙芯片能够尽快地接收到真正的无线数据包。
此外,为了提高接收到的无线数据是随机噪声而不是有意义数据包(例如蓝牙数据)的概率,无线射频天线410通过数据信道接收无线数据。
处理器420,用于对无线射频天线410获取到的无线数据进行循环冗余校验;在校验未通过时,将获取到的无线数据生成为随机数。
处理器可以包括校验单元和产生单元,校验单元用于对无线射频天线410获取到的无线数据进行循环冗余校验,产生单元用于在校验未通过时,将获取到的无线数据生成为随机数。
本实施例中,通过从外部获取无线数据,并通过对该无线数据进行循环冗余校验来排除有意义的数据,而未通过校验的无线数据即为随机噪声,从而产生真正的随机数。
在本发明实施例中,还提供了一种电子设备。
请参阅图5,图5是本发明电子设备的一个实施例的结构示意图。如图5所示,电子设备500包括:
至少一个处理器510,图5中以一个处理器510为例;以及与所述至少一个处理器510通信连接的存储器520;其中,所述存储器存储有可被所述至少一个处理器执行的指令程序,所述指令程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述随机数产生方法。
处理器510和存储器520可以通过总线或者其他方式连接,图5中以通过总线连接为例。
存储器520作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的随机数产生方法对应的程序指令/模块。处理器510通过运行存储在存储器520中的非易失性软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述方法实施例的应用于电子设备的随机数产生方法。
存储器520可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储上述随机数产生方法的使用所创建的数据等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器520可包括相对于处理器510远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器520中,当被所述一个或者多个处理器510执行时,执行上述任意方法实施例中的应用于电子设备的随机数产生方法。
在本发明实施例中,电子设备500可以是蓝牙低功耗设备、蓝牙基础速率设备、蓝牙增强数据率设备;也可以是Wi-Fi设备、紫蜂设备,无线USB等其它无线设备。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考上述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。