用于随机数产生器的可变架构的制作方法

文档序号:6453114阅读:242来源:国知局
专利名称:用于随机数产生器的可变架构的制作方法
技术领域
此标的物大体来说涉及电子器件,且更特定来说涉及包含随机数产生器的微控制器架构。
背景技术
微控制器可包含随机数产生器模块。所述随机数产生器模块可基于来自熵源的输入而产生随机数。熵源的变化可影响由嵌入于微控制器中的随机数产生器模块产生的数据的随机性。同一系列中的或来自同一生产批量的微控制器可在其熵源上具有较少变化且可在于一系列中的微控制器中所包含的随机数产生器之间产生的数据中的随机性上展现较 小变化。

实用新型内容本实用新型揭示一种用于随机数产生器的可变架构。一种用于随机数产生器的可变架构,其特征在于包括一个或一个以上输入,其经配置以用于接收实质上恒定且对于所述架构是唯一的一个或一个以上数字值;及一个或一个以上电路,其耦合到所述一个或一个以上输入,所述一个或一个以上电路包含一个或一个以上数字电路元件,所述一个或一个以上数字电路元件可通过所述一个或一个以上所接收的数字值配置以产生一个或一个以上伪随机数字值。一方面,其中所述一个或一个以上输入为熔丝位。所述熔丝位记载嵌入于所述架构中的一个或一个以上模拟单元的校准或记载与所述架构相关联的唯一识别符。另一方面,其中所述一个或一个以上输入由所述架构的输入垫驱动或由嵌入于所述架构中的快闪存储器的输出驱动。所述快闪存储器的所述输出记载嵌入于所述架构中的模拟单元的校准或记载与所述架构相关联的唯一识别符。再一方面,其中所述一个或一个以上数字电路元件包含于环形振荡器中且经配置以修改所述环形振荡器中的传播延迟。所述传播延迟是通过在所述环形振荡器中添加更多延迟元件而修改的。再一方面,其中所述一个或一个以上数字电路元件包含于耦合到所述环形振荡器的线性反馈移位寄存器中且经配置以修改描述所述线性反馈移位寄存器的线性函数的多项式。再一方面,其中所述一个或一个以上数字电路元件包含于耦合到所述线性反馈移位寄存器的组合混合器架构中且经配置以对所述组合混合器的随机输出信号的至少一部分进行反相。再一方面,所述用于随机数产生器的可变架构为微控制器,其中所述一个或一个以上输入由所述微控制器中的可编程寄存器驱动,所述可编程寄存器是用先前从所述架构的非易失性寄存器读取的值编程的。在一些实施方案中,随机数产生器的所述架构可基于存储于微控制器上的微控制器特有数据而变化。举例来说,随机数产生器模块可嵌入于微控制器电路中。所述随机数产生器模块可经设计以从所述电路中的含有微控制器特有数据(例如,唯一芯片识别符、熔丝位中所携载的数据)的数据源接收输入。在一些实施方案中,所述随机数产生器模块的架构可基于所述微控制器特有数据而调整或变化。特定实施例可经实施以实现以下优点中的一者或一者以上(I)改进在同一生产系列中的随机数产生器模块之间产生的数的随机性;(2)使与产生随机数有关的功率消耗最小化;⑶使生产测试的复杂性最小化;及/或⑷减少生产成本。

图I是包含随机数产生器的实例性微控制器的框图。图2图解说明实例性熵产生电路。 图3是可传播穿过图2的源熵电路的实例性信号波形的图表。图4图解说明线性反馈移位寄存器的实例性架构。图5图解说明实例性组合混合器电路。图6图解说明实例性可变频率环形振荡器。图7图解说明实例性可变线性反馈移位寄存器。图8图解说明实例性可变组合混合器。图9是包含具有微控制器特有数据输入的随机数产生器的实例性微控制器的框图。图10是用于使随机数产生器的架构变化的实例性过程1000的流程图。
具体实施方式
本实用新型揭示一种用于随机数产生器的可变架构。在一些实施方案中,随机数产生器模块的内部电路可经设计以基于由非易失性寄存器馈送的输入而不同地起作用。举例来说,所述非易失性寄存器可用于电路中的其它目的,其中所述随机数产生器嵌入及/或可能已存在于所述电路内。实施方案可允许同一生产批量中所生产的同一产品族的不同电路产生不同随机数序列,即使在每一电路中熵源(例如,环形振荡器、线性反馈移位寄存器(“LFSR”))均类似。当设计随机数产生器模块时,熵源对于随机性来说为重要的因子。举例来说,所述熵源可提供随机数产生器由其产生随机数据的值。高熵源(例如,具有大量随机改变的源)难以发现且通常基于模拟单元。依赖于模拟单元作为熵源可导致增加的功率消耗及/或可引入较复杂的生产测试及相关联成本。然而,通过使用纯数字熵源,可在同一生产序列中的不同微控制器间产生真随机数序列,同时将能量消耗、生产测试复杂性及相关联成本均保持在可接受的水平。举例来说,数字熵源可包含环形振荡器、LSFR或其它类型的电路。实例性微控制器图I是实例性微控制器100的框图,所述微控制器包含微处理器核心101及经由系统总线矩阵103连接的一系列外围模块102、103、104、105、106及107。举例来说,系统总线矩阵103允许充当主控模块(例如,模块101、102)的模块连接到从控模块(例如,模块105、106、107)。在一些实施方案中,主控模块可在系统总线矩阵103上起始与从控模块的数据传送。举例来说,微处理器核心101及独立式直接存储器存取(DMA)控制器102可经配置为主控模块。举例来说,存储器控制器104、芯片上存储器105、中断控制器106及随机数产生器107可经配置为从控模块。在一些实施方案中,可使用总线120在矩阵模块103中实施主控模块与从控模块之间的互连。根据若干实施方案,微控制器100可经由所述模块中的一些模块与外部组件通信。举例来说,微控制器100可使用存储器控制器104与存储器装置通信。所述模块可包含以物理方式连接外部组件的端子接触垫154及155。在一些实施方案中,微处理器核心101可经配置以执行包含可执行指令的代码。举例来说,所述代码可存储于芯片上存储器105中或使用存储器控制器104存取的外部存储器中。在一些实施方案中,所述外部存储器大于芯片上存储器105。在一些实施方案中,真随机数产生器(“TRNG”)模块107可经配置以产生随机数 随机性可与熵源的质量相关。举例来说,如果随机数产生器107包含来自良好熵源的输入,那么随机数产生器107将产生具有较大随机性的数据。模拟熵源考虑依赖于模拟熵源的实例性随机数产生器。在一些实施方案中,可使用模拟单元来设计模拟熵源。举例来说,电阻器可具有两个端子,其中一个端子内部连接到接地电源线,且另一端子向放大器馈送。所述放大器可产生具有有效熵的模拟信号(例如,白噪声)。在使用模/数转换器将所述模拟信号转换成数字值之后,可获得纯数字随机值,可将所述纯数字随机值内部寄存到随机数产生器107中且在由主控模块102及/或103需要存取时在系统总线103上传输。在一些实施方案中,模拟熵源可来源于电源噪声及/或电阻器的热噪声。这些熵源可不取决于电阻器的制造过程、技术、大小或值。然而,这些熵源可使得电路的大量生产困难,因为测试模拟电路可比测试纯数字电路更复杂。而且,与模拟单元相关联的功率消耗可大于与数字电路相关联的功率消耗。数字熵源现在考虑依赖于数字熵源的实例性随机数产生器。数字熵源可比模拟熵源更具成本效益,因为相比于模拟熵源,测试数字熵源较不复杂且花费较少时间。图2图解说明实例性熵产生电路。图3是可由图2的电路产生的实例性信号波形的图表。参考图2,环形振荡器200可包含奇数个反相器元件(例如,反相器元件210)。在一些实施方案中,环形振荡器200可产生时钟信号220。举例来说,时钟信号220的自由运行频率可取决于环形振荡器200的反相器元件中的每一者的内部传播延迟。所述传播延迟可(举例来说)取决于元件的大小、元件中的每一者的电容电荷、温度以及还有可由于内部电源线上的噪声而变化的电源电压。在一些实施方案中,时钟信号220可驱动LFSR模块201的时钟输入。根据一些实施方案,可构建具有类似于环形振荡器200的架构的架构的第二环形振荡器(例如,环形振荡器202)。然而,环形振荡器202可构造有不同于环形振荡器200中的反相器的数目的数目个反相器(例如,反相器211),使得环形振荡器202可产生与时钟信号220完全异步的时钟信号221。在一些实施方案中,时钟信号221可驱动LFSR模块203的时钟输入。在一些实施方案中,LFSR模块201及203可分别基于时钟信号220及221而产生伪随机值。举例来说,LFSR 201可产生伪随机数据222。LFSR 203可产生伪随机数据223。由于环形振荡器200及202产生完全异步的时钟信号220及221,因此数据222的触发周期可不同于数据223的触发周期。在一些实施方案中,可使用组合混合器204将两个数据序列(伪随机数据222及223)混合在一起。举例来说,组合混合器204可基于数据222及223而产生信号224。信号224可包含随机数据序列。举例来说,信号224可为随机数产生器模块的随机数输出。图4图解说明用于线性反馈移位寄存器的实例性架构。举例来说,LFSR可包含连接为移位寄存器的一系列数据触发器(“DFF”) 403、404、405、406、407及408。第一 DFF (例如,DFF 403)可由数个DFF输出的和驱动。加法器400、401及402由两个输入XOR门构成。因此,DFF输出的和为模数2。由所有DFF输出产生的值序列可取决于将哪些DFF输出相加 在一起而不同。举例来说,LFSR的电路实施可用多项式Y= 1+X+XN+XM描述的线性函数,其中N及M为正整数。举例来说,N及M可由经选择用于产生所述和的DFF输出的索引界定。在一些实施方案中,已将门409添加到LSFR以取得2L个值,其中L为DFF的数目(因此,包含全0值)。举例来说,当DFF 403到407等于0且DFF 408为I时,加法器401的输出为I,加法器400的输出为0,且门409的输出为1,因此加法器402的输出为O。在没有门409的情况下,所述LFSR将产生2L-1个值。举例来说,在时钟的下一触发边缘之后,所述DFF可携载全0值。在门409不行动的情况下,所述LFSR将粘持为O。在一些实施方案中,当达到0值时,门409在输出402上强制I。因此,在时钟的下一触发边缘上,将在DFF输出上携载值0000. ..OOl0举例来说,在403到407当中的至少一个DFF在其输出上携载I时,门409输出经清零且不在整个LFSR中行动。图5图解说明实例性组合混合器架构。在一些实施方案中,组合混合器104可在LFSR输出222及223的每一位之间包含一 XOR门。根据若干实施方案,组合混合器104可组合LSFR 201与LSFR 203的输出(例如,分别为输出222及223)以产生随机数产生器107的随机数输出224。在一些实施方案中,图I的随机数产生器107的熵源是基于独立于微控制器100的任何其它时钟源的异步时钟源(例如,振荡器200及202)且还基于共同产生伪随机序列的LFSR。举例来说,由环形振荡器(例如,环形振荡器200及202)产生的时钟信号频率取决于跨越环的数字单元的电压值及温度,所述电压值及温度使得所述时钟信号频率难以估计。跨越环形振荡器元件的电压易发生变化,因为内部电源线为电阻性且因为内部电源线还为微控制器中的其它电路/元件供应。因此,其它电路或元件的活动会引起可在环形振荡器中发现的电压变化(例如,噪声)。环形振荡器中的电压变化或噪声可引起由随机数产生器需要的熵源。然而,关于数字熵源的问题中的一者为,当由同一批量的硅晶片制造一系列微控制器时,所述系列中的在相同条件下使用的两个微控制器可展现大致相同种类的噪声。以下情形为可能的两个环形振荡器可在其相应元件的几何形状上具有差异,此可产生环形振荡器中的时钟频率的差异。然而,如果两个微控制器是由同一晶片及取自晶片的同一区域的相同裸片制成,那么显著几何差异发生的概率可降低且致使在微控制器之间产生的数据中的随机性也可能降低。可变架构根据一些实施方案,可使用微控制器的唯一特征来使随机数产生器的架构变化。举例来说,一些微控制器含有用以区别一个芯片与另一芯片的唯一芯片识别符。一些微控制器含有可在测试生产期间编程以修整模拟单元的熔丝位。举例来说,基于芯片上电阻器电容的振荡器可包含熔丝位。这些数据源(例如,熔丝位、芯片识别符等)可在不同电路间而不同且可用以使随机数产生器模块的架构变化。在一些实施方案中,随机数产生器电路的内部架构可基于作为电路的输入接收的值而变化。举例来说,所接收的输入值可基于微控制器的唯一芯片识别符或熔丝位或两者。在一些实施方案中,可由数个子模块产生随机产生器的熵源且可基于输入而调整所述子模块中的每一者以使随机数产生器的架构变化。举例来说,可基于从对于一系列微控制器中的每一微控制器是唯一的各种固有数据源接收的输入而调整所述系列中的每一微控制器 上的随机数产生器的架构。通过基于对于每一微控制器是唯一的数据而调整随机数产生器的架构,可改进由一系列微控制器中的每一随机数产生器产生的数据的随机性。图6图解说明实例性可变频率环形振荡器。在一些实施方案中,输入630可由熔丝位上或非易失性存储器位上所携载的唯一芯片识别符驱动。在一些实施方案中,可基于信号630上所携载的值而修改环形振荡器传播延迟,因此也可基于信号630而修改环形振荡器的时钟频率。在一些实施方案中,每一选择子模块(例如,子模块610及611)可具有三个输入,包含一个选择输入(例如,输入622或623),其允许所述子模块在两个其它输入之间进行选择。所述两个其它输入中的一者可由环形振荡器输出620驱动(针对所有子模块)。所述两个其它输入中的第二者可由前面子模块的输出驱动(例如,子模块611可由子模块610驱动)。在一些实施方案中,当信号623经设定时,子模块611的多路复用器606选择由信号620驱动的输入且环形振荡器的固有传播延迟由单元606到609产生。当信号623经清零时,子模块611的多路复用器606选择由单元605驱动的输入。如果选择信号622经设定,那么环形振荡器的固有传播延迟由单元603到609产生。如果选择信号622未经设定,那么环形振荡器的固有传播延迟由单元601到609产生。因此,所述环形振荡器通过基于信号630上所携载的数字值而在环中添加单元以产生不同行为来修改其传播延迟。举例来说,可基于信号630上所携载的微控制器特有数据(例如,芯片识别符、熔丝位数据)而向环形振荡器添加单元或从环形振荡器移除单元。因此,即使制造并测试经修改环形振荡器的所有单元,在电路的寿命期间也可能仅使用所述单元中的一些单元。可以类似方式修改数字随机数产生器的其它子模块(例如LFSR)以实施具有可变架构的子模块。图7图解说明实例性可变线性反馈移位寄存器。在一些实施方案中,图7的LSFR可基于输入730而产生不同序列。举例来说,输入730可包含微控制器特有数据,例如唯一芯片识别符或熔丝位值。在一些实施方案中,图7的LFSR可不基于输入730而产生全的2n(N = DFF的数目)个序列。为了针对输入730的每一值取得全序列,可基于给出全序列的多项式而放置AND门(例如,门740及741)。在未展示的其它实施方案中,AND门可由解码输入730的解码器逻辑以使得产生数个但不同的全序列多项式(输入730上的每一值I个全序列多项式)的方式驱动。在一些实施方案中,输入730可由熔丝位或非易失性存储器位上所携载的唯一芯片识别符驱动。举例来说,信号730的每一位可驱动两位AND门(例如,门740及741)的输入。两位AND的另一输入可由LFSR内的数据触发器(DFF)(例如,DFF 710到715)的输出驱动。当信号730上所携载的数字值对AND门740的输入进行清零时,无论DFF 711输入值(正由未展示的DFF输出驱动)如何,AND门740的输出都可粘持为0且因此XOR门700可起缓冲器作用(例如,透明模式)。如果信号730上所携载的数字值经设定,那么AND门740可起缓冲器作用且可将DFF 711输入值拷贝到XOR门701。因此,在DFF 710输入上产生的和可基于驱动DFF 711的DFF输出的值而不同。此行为可针对信号730的每一位而重复。因此,多项式可基于信号730上所携载的值而不同。在一些实施方案中,可变环形振荡器(图6)与可变LSFR(图7)的组合可致使基于微控制器特有输入值而修改整体TRNG行为,借此致使TRNG在不同电路间(甚至当置于类似使用条件下时在同一系列及/或同一生产批量内)产生不同随机序列。图8图解说明实例性可变组合混合器。在一些实施方案中,可通过添加两输入XOR门以对初始输出信号的某个部分进行反相来产生组合混合器的修改。举例来说,XOR门(例如,XOR门810、811及812)可由初始输出位(分别为800、802及804)及由输入830 (例如,输入801、803及805)驱动,所述输入可由熔丝位或非易失性存储器位驱动。当信号801经清零时,XOR门810可起信号800的缓冲器的作用。当信号801经设定时,XOR门810可起信号800的反相器的作用。其它XOR门(例如,XOR门810、811及812)可以类似方式起作用。因此,可基于输入830上所携载的数字值而使初始混合器的一些位反相,借此针对在信号224上输出的整体TRNG序列产生不同型式。图9是实例性微控制器900的框图,所述微控制器包含具有微控制器特有数据输A 902的随机数产生器903。举例来说,TRNG 903可借助信号902与熔丝位/NVM模块901耦合。在一些实施方案中,信号902可在产品的整个寿命内保持稳定,即使不存在对在任何时间改变信号902的数字值的限制。图10是用于使随机数产生器的架构变化的实例性过程1000的流程图。在步骤1002处,可接收微控制器特有数据。举例来说,随机数产生器可从配置于微控制器上的一个或一个以上熔丝位接收芯片识别符或数据。在步骤1004处,可基于所接收的微控制器特有数据而调整随机数产生器的架构。举例来说,所述随机数产生器可包含环形振荡器电路、线性反馈移位寄存器及/或组合混合器子模块。在一些实施方案中,可基于微控制器特有数据而调整这些子模块中的每一者的架构。举例来说,可基于所接收的微控制器特有数据而在所述子模块中的每一者中的信号处理中包含或不包含单元、门或其它电路元件。在步骤1006处,使用随机数产生器及其子模块的经调整架构来产生随机数据。举例来说,通过根据微控制器特有数据而调整随机数产生器及其子模块的架构,所述随机数产生器可经配置以产生不同于同一产品族及/或同一生产批量中的其它微控制器中所包含的随机数产生器的随机数据的随机数据。尽管此文件含有许多特定实施方案细节,但这些细节不应解释为对可主张的范围的限定,而是应理解为对特定实施例可特有的特征的描述。在此说明书中在单独实施方案的背景中描述的某些特征还可以组合形式实施于单个实施例中。相反地,在单个实施例的背景中描述的各种特征也可单独地或以任何适合子组合形式实施于多个实施例中。而且,虽然上文可将特征描述为以某些组合形式起作用且甚至最初主张如此,但来自所主张组 合的一个或一个以上特征在一些情况下可从所述组合去除,且所述所主张组合可针对一子组合或一子组合的变化形式。
权利要求1.一种用于随机数产生器的可变架构,其特征在于包括 一个或一个以上输入,其经配置以用于接收实质上恒定且对于所述架构是唯一的一个或一个以上数字值;及 一个或一个以上电路,其耦合到所述一个或一个以上输入,所述一个或一个以上电路包含一个或一个以上数字电路元件,所述一个或一个以上数字电路元件可通过所述一个或一个以上所接收的数字值配置以产生一个或一个以上伪随机数字值。
2.根据权利要求I所述的用于随机数产生器的可变架构,其特征在于所述一个或一个以上输入为熔丝位。
3.根据权利要求2所述的用于随机数产生器的可变架构,其特征在于所述熔丝位记载嵌入于所述架构中的一个或一个以上模拟单元的校准。
4.根据权利要求2所述的用于随机数产生器的可变架构,其特征在于所述熔丝位记载与所述架构相关联的唯一识别符。
5.根据权利要求I所述的用于随机数产生器的可变架构,其特征在于所述一个或一个以上输入由所述架构的输入垫驱动。
6.根据权利要求I所述的用于随机数产生器的可变架构,其特征在于所述一个或一个以上输入由嵌入于所述架构中的快闪存储器的输出驱动。
7.根据权利要求6所述的用于随机数产生器的可变架构,其特征在于快闪存储器的所述输出记载嵌入于所述架构中的模拟单元的校准。
8.根据权利要求6所述的用于随机数产生器的可变架构,其特征在于快闪存储器的所述输出记载与所述架构相关联的唯一识别符。
9.根据权利要求I所述的用于随机数产生器的可变架构,其特征在于所述一个或一个以上数字电路元件包含于环形振荡器中且经配置以修改所述环形振荡器中的传播延迟。
10.根据权利要求9所述的用于随机数产生器的可变架构,其特征在于所述传播延迟是通过在所述环形振荡器中添加更多延迟元件而修改的。
11.根据权利要求10所述的用于随机数产生器的可变架构,其特征在于所述一个或一个以上数字电路元件包含于耦合到所述环形振荡器的线性反馈移位寄存器中且经配置以修改描述所述线性反馈移位寄存器的线性函数的多项式。
12.根据权利要求11所述的用于随机数产生器的可变架构,其特征在于所述一个或一个以上数字电路元件包含于耦合到所述线性反馈移位寄存器的组合混合器架构中且经配置以对所述组合混合器的随机输出信号的至少一部分进行反相。
13.根据权利要求I所述的用于随机数产生器的可变架构,其特征在于所述架构为微控制器。
14.根据权利要求13所述的用于随机数产生器的可变架构,其特征在于所述一个或一个以上输入由所述微控制器中的可编程寄存器驱动。
15.根据权利要求14所述的用于随机数产生器的可变架构,其特征在于所述可编程寄存器是用先前从所述架构的非易失性寄存器读取的值编程的。
专利摘要本实用新型揭示一种用于随机数产生器的可变架构。在一些实施方案中,所述用于随机数产生器的可变架构包括一个或一个以上输入,其经配置以用于接收实质上恒定且对于所述架构是唯一的一个或一个以上数字值;及一个或一个以上电路,其耦合到所述一个或一个以上输入,所述一个或一个以上电路包含一个或一个以上数字电路元件,所述一个或一个以上数字电路元件可通过所述一个或一个以上所接收的数字值配置以产生一个或一个以上伪随机数字值。
文档编号G06F7/58GK202512559SQ20112051332
公开日2012年10月31日 申请日期2011年12月6日 优先权日2011年3月9日
发明者弗雷德里克·舒马赫, 纪尧姆·佩昂, 阿兰·韦尔涅 申请人:爱特梅尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1