基于振荡器噪声的随机数发生器的制作方法

文档序号:7513560阅读:114来源:国知局
专利名称:基于振荡器噪声的随机数发生器的制作方法
技术领域
本发明的实施例一般涉及集成电路领域,并且更具体地,涉及用于基 于振荡器噪声的随机数发生器的系统、方法和装置。
背景技术
密码技术通常需要生成随机数,以提供不为攻击者所知的秘密值。例如,随机数用于生成在如RSA的算法中使用的公钥/私钥对。随机数用于 各种各样的其它密码用途,包括质询、特殊场合等。发明内容根据本发明的一个方面,提供一种集成电路,包括第一振荡器; 第二振荡器,其中第一和第二振荡器用独立的硬件实现;以及随机数发 生器,与第一和笫二振荡器耦合,其中所述随机数发生器接收第一和第 二振荡器的热噪声之差,并至少部分地基于数字信号处理(DSP )操作生 成随机数。根据本发明的另一个方面,提供一种方法,包括将在第二振荡器 所定义的连续时间间隔期间发生的第 一 振荡器的多个振荡存储成所观'j量 噪声序列;使用基于数字信号处理(DSP)的滤波器对所测量噪声序列进 行滤波,以产生热噪声频带,其中对所测量噪声序列进行滤波包括使具 有高热噪声功率与伪随机过程功率之比的频带中的热噪声频谱变平;使用基于数字信号处理(DSP)的滤波器将所述热噪声频带分成N个子带; 以及至少部分地基于所述N个子带的数字信号的实部和虚部与零的比较 来生成二进制数字序列。根据本发明的又一个方面,提供一种系统,包括集成电路,包含: 笫一振荡器;笫二振荡器,其中第一和第二振荡器用独立的硬件实现;以及随机数发生器,与第一和第二振荡器耦合,其中所述随机数发生器 接收来自第一和第二振荡器的热噪声,并至少部分地基于数字信号处理(DSP)操作来生成随机数;以及无线收发器,与所述集成电路耦合。


在附图的各图中通过举例而非限定的方式来说明本发明的实施例,在 附图中相似的参考数字指的是类似的单元。图1是说明根据本发明实施例实现的集成电路所选方面的高级框图。图2是说明根据本发明实施例实现的计算系统所选方面的框图。 的流程图。图4A和4B是说明计算系统所选方面的框图。
具体实施方式
本发明的实施例一般针对用于基于振荡器噪声的随机数发生器的系 统、方法和装置。在一些实施例中,提供真随机数发生器(TRNG),而 无需专用的TRNG硬件。代替专用的硬件,本发明实施例可使用现有的 系统时钟来提供熵源。如下面进一步描述的,在一些实施例中,TRNG 采用数字信号处理(DSP)来确保随机位完全是振荡器的物理随机性质的 输出(如系统时钟)。图1是说明书根据本发明实施例实现的集成电路所选方面的高级框 图。例如,集成电路(IC) 100可以是计算系统芯片集的一部分。IC100 其中包括两个振荡器(102和104)和RNG106。在一些实施例中,IC 100 可包括更多的单元、更少的单元和/或与图l所示单元不同的单元。在一些实施例中,振荡器102和104在它们并不专用于RNG 106的 意义上是通用振荡器。例如,振荡器102和104可给IC IOO的各种功能 单元(如处理器110)提供系统时钟。振荡器102和104必须相互独立, 由此它们可由独立的硬件(如独立的晶体)提供。在一些实施例中,RNG 106提供可用作唯一随机私用标识符的随机数。唯一随机私用标识符可支持多种功能,包括如公钥/私钥对(如在RSA算法中)的密码特征。如下面参照图2-3进一步描述的,RNG 106可采 用两级算法生成唯一随机私用标识符。在一些实施例中,第一级涉及将 振荡器的热噪声之差与其它特征分离。第二级可涉及将热噪声转换成随 机二进制序列。在一些实施例中,用固件(如固件112)实现RNG 106的所选方面。 通过集成到IC 100上的处理器(如处理器110)来执行固件。在可选实 施例中,固件112、处理器110和/或振荡器102和104可位于两个或更 多单独的集成电路上。固件112可存储在任何种类的非易失性存储器中, 例如包括闪存、可擦除可编程只读存储器(EPROM)、电可擦除可编程 只读存储器(EEPROM)等等。处理器110可以是任何种类的处理单元,包 括服务处理器、管理处理器、通用处理器等等。图2是说明根据本发明实施例实现的计算系统200所选方面的框图。 系统200包括振荡器202和204以及随机数发生器210。在可选实施例中, 系统200可包括更多的单元、更少的单元和/或不同的单元。振荡器202和204之差为随机数发生器210提供熵源。例如,振荡器 202和204可提供热噪声源。在一些实施例中, 一个振荡器(如202)充 当定时器,以指定对另一个振荡器(如204)上的振荡数进行计数的时段。 振荡器202和204可以是通用振荡器。例如,它们可以是给系统200的 不同单元提供不同系统时钟的振荡器。在一些实施例中,振荡器202和 204在硬件级上是独立的。振荡器202和204基于独立的晶体。随机数发生器210将振荡器204的所计数振荡数收集到緩冲器212中 (例如,参见如下所示的示例代码的第1-3部分)。我们将上面提到的数序 列称为所测量噪声。所测量噪声可包括真随机过程(如热噪声)和伪随 机过程(如"离散化(dicretization)噪声"、"村底噪声"等)的混合。随机 数发生器210使用数字信号处理(DSP)将热噪声与伪随机过程分离。在 一些实施例中,随机数发生器210使用DSP滤波器来获得具有"高"热噪 声功率与伪随机过程功率之比(假定,比率=100为高)的频带。我们将该频带称为"热噪声频带"。在图示的实施例中,使用无限脉冲响应(IIR)滤波器214使热噪声的功率频谱变平,从而简化其进一步处理。根据一 些实施例,如下所示的示例代码的第4部分纟是供IIR滤波器214的例子。 在可选实施例中,可使用不同的技术来使热噪声的频谱变平。在一些实 施例中,所测量噪声具有可从序列中减去的恒偏。在一些实施例中,可使用DSP将热噪声频带分成(或分离成)N个 子带。该N个子带可具有微小的交叠(例如小于功率的1% )。因此,该 N个子带提供N个不相关的复高斯信道,这些信道都是随机独立的。在 图示的实施例中,有限脉沖响应(FER)滤波器216将热噪声频带分成N 个(如4个)子带。虽然图2使用单个块示出FIR滤波器216,但要意识 到,在一些实施例中,可以有N个FIR滤波器216。冲艮据一些实施例, 如下所示的示例代码的第5部分提供FIR滤波器216的例子。在可选实 施例中,可使用不同的技术来分热噪声频带。在一些实施例中,每个子 带单元存储在相应的緩冲器218中。在一些实施例中,比较逻辑220将緩沖器218中存储的子带单元转换 成布尔序列。例如,比较逻辑220可将每个子带单元的实部和虛部与零 进行比较来产生布尔序列。在可选实施例中,可使用不同的操作来生成 布尔序列。可允许比较逻辑220运行产生期望长度布尔序列所必需的那 么长时间,以产生唯一随机私用标识符222。唯一随机私用标识符222的在一些实施例中,用固件(如图1所示的固件112)实现随机数发生 器210的所选方面。在这类实施例中,通过处理器(如图1所示的处理 器IIO)执行用固件实现的特征。例如,緩冲器212、 HR滤波器214、 FIR 滤波器216、緩沖器218和/或比较逻辑220可以作为在处理器上执行的 固件来实现。示例代码%第1部分我们加载在真实平台上测量并保存到文件的数据 bin=(-256:256);inp=fopen('decimal 1 .txt,,,rt,); x=fscanf(inp,,0/od,); fclose(inp);x-x(l:end-l); %最后的代码错误%第2部分计算测量值的增量 y=diff(x); N=length(y); N=length(y); yl=y+256*(y<-100);%第3部分删除异常测量值y2=(yl -mean(y 1)). *(abs(yl -mean(yl ))<10);%第4部分重新计算平均值 z0=y2-mean(y2);%第5部分在信号上应用IIR滤波器a=l/32; aa=l-a; num=[-aa aa]; den=[l -aa]; % IIR滤波器产生 zl=filter(num,den,zO); % zl是已滤波信号 zl=zl(100:end-100);%第6部分产生具有4个不同频带的4个FIR滤波器并应用在Z1上 Nfft=1024;w=chebwin(Nfft+2,35); w=w(2:end-l);N=floor(length(zl)/Nffl);bit=zeros(l,8*N);%第7部分通过将每个已滤波输出的Re和Im与0进行比较来为1024 个样本的每个生成8位;这些独立的随机值 for(k=0:N-l)ft=fft(w.*zl(l+k*Nfft:(k+l)*Nfft));bit(l+8*k+(0:3))=(real(ft(3+3*(0:3)))>0);bit(l+8*k+(4:7))=(imag(ft(3+3*(0:3)))>0); end;图3是说明根据本发明实施例实现的随机数发生器操作的所选方面的流程图。参考过程块302,緩冲所测量的噪声。在一些实施例中,所测 量的噪声提供熵源。例如,在一些实施例中,所测量的噪声包括真随机 过程(如热噪声)和伪随机过程的混合。可用在处理器(如图1所示的 处理器IIO)上执行的固件(如示例代码的第l部分)来实现緩冲器。参考过程块304,使用DSP将热噪声与伪随机过程分离。例如,IIR 滤波器可使热噪声变平。在一些实施例中,可用在处理器(如图1所示 的处理器110)上执行的固件(如示例代码的第1部分)来实现IIR滤波 器(或其它适当的DSP操作)。热噪声频带可被(至少部分地)标准化, 以便(至少部分地)使信号集中在零。参考过程306,将热噪声频带分成N个子带。在一些实施例中,使用 DSP操作例如FIR滤波器将热噪声频带分成N个子带。可用在处理器(如 图1所示的处理器110)上执行的固件(如示例代码的第1部分)来实现 FIR滤波器(或其它适当的DSP操作)。N个子带单元可存储在N个对应 的緩冲器(如图2所示的緩冲器218)中。参考过程块308,使用N个子带单元生成布尔序列。在一些实施例中, 将N个子带单元与零进行比较来生成布尔序列。在可选实施例中,可使 用不同的操作来生成布尔序列。允许布尔序列达到期望长度,以产生唯 一随机私用标识符。该长度是任意的,并且是比较操作运行的时间长度 的函数。图4A和4B是分别说明计算系统400和500所选方面的框图。计算 系统400包括与互连420耦合的处理器410。在一些实施例中,术语处理 器和中央处理单元(CPU)可交替使用。在一个实施例中,处理器410 是可从加利福尼亚圣克拉拉的英特尔公司得到的XEON 系列处理器的 处理器。在可选实施例中,也可使用其它处理器。在一些实施例中,处 理器410可包括多处理器核。在一个实施例中,芯片430是芯片集的组件。互连420可以是点对点 互连,或者它可以连接到两个或更多芯片(如芯片集的)。芯片430包括可与主系统存储器耦合的存储器控制器440 (如图1所示)。在可选实施 例中,存储器控制器440可以与处理器410在同 一芯片上,如图4B所示。 存储系统444可以为计算系统400 (以及计算系统500)提供主存储器。 在图示的实施例中,存储系统444包括存储设备446。输/J输出(I/O)控制器450控制处理器410与一个或多个I/O接口 (如有线和无线网络接口 )和/或I/0设备之间的数据流。例如,在图示的 实施例中,I/O控制器450控制处理器410与无线发射器和接收器460之 间的数据流。在可选实施例中,可将存储器控制器440和I/O控制器450 集成到单个控制器中。在一些实施例中,1/0控制器450包括随机数发生 器852。随机数发生器852可以为具有例如提供主时钟和次时钟的两个独 立振荡器的系统提供TRNG。读介质来提供。机器可读介质可包括但不限于闪存、光盘、光盘只读存 储器(CD-ROM )、数字通用/视频盘(DVD) ROM、随机存取存储器 (RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存 储器(EEPROM)、磁卡或光卡、传播介质或适合于存储电子指令的其它类 型机器可读介质。例如,本发明的实施例可作为计算机程序下载,其可 通过通信链路(如调制解调器或网络连接)以在载波或其它传播介质中 实施的数据信号的方式从远程计算机(如服务器)传输到请求计算机(如 客户机)。应意识到的是,说明书通篇提到的"一个实施例"或"实施例"是指结合 该实施例描述的特定的特征、结构或特性包含在本发明的至少一个实施 例中。因此,要强调和应意识到的是,在说明书的不同部分中两次或更 多次提到的"实施例"或"一个实施例"或"可选实施例"并不一定都指同一 实施例。而且,该特定的特征、结构或特性可在本发明的一个或多个实 施例中适当地组合。类似地,应意识到的是,在本发明实施例的上述描述中,有时会将各 种特征一起组合到单个实施例、附图或其描述中,以便筒化本公开,帮助理解一个或多个各种发明方面。然而,公开的这个方法并不要解释为 反映本发明,所要求的主题需要比每项权利要求中明确阐述的更多的特 征。而是,如以下权利要求书所反映的,发明的方面在于比单个前面所 公开实施例的所有特征要少。因此,具体实施方式
后的权利要求书由此 明确地结合到该具体实施方式
中。
权利要求
1. 一种集成电路,包括第一振荡器;第二振荡器,其中第一和第二振荡器用独立的硬件实现;以及随机数发生器,与第一和第二振荡器耦合,其中所述随机数发生器接收第一和第二振荡器的热噪声之差,并至少部分地基于数字信号处理(DSP)操作生成随机数。
2、 如权利要求1所述的集成电路,其中第一振荡器确定应对第二振 荡器的振荡计数多长时间,以形成所测量噪声的 一个样本。
3、 如权利要求1所述的集成电路,其中第一振荡器提供第一系统时 钟,并且第二振荡器提供第二系统时钟。
4、 如权利要求1所述的集成电路,其中所述随机数发生器还包括 緩冲器,存储所测量噪声。
5、 如权利要求4所述的集成电路,其中所述随机数发生器还包括 笫一DSP操作,使热噪声的功率频谱变平,以获得具有高热噪声功率与伪随机过程功率之比的频带中的热噪声的近似平谱。
6、 如权利要求5所述的集成电路,其中第一DSP操作为无限脉冲响 应(IIR)滤波器。
7、 如权利要求5所述的集成电路,其中所述随机数发生器还包括 第二DSP操作,使用基于数字信号处理(DSP)的滤波器将具有高
8、 如权利要求7所述的集成电路,其中第二DSP操作为有限脉冲响 应(FIR)滤波器。
9、 如权利要求7所述的集成电路,其中第一和第二DSP操作用固件实现。
10、 一种方法,包括将在第二振荡器所定义的连续时间间隔期间发生的第一振荡器的多个振荡存储成所测量噪声序列;使用基于数字信号处理(DSP)的滤波器对所测量噪声序列进行滤波, 以产生热噪声频带,其中对所测量噪声序列进行滤波包括使具有高热噪声功率与伪随机过程功率之比的频带中的热噪声频谱变平;使用基于数字信号处理(DSP)的滤波器将所述热噪声频带分成N 个子带;以及至少部分地基于所述N个子带的数字信号的实部和虚部与零的比较 来生成二进制数字序列。
11、 如权利要求IO所述的方法,其中所测量噪声由两个独立的振荡 器提供。
12、 如权利要求11所述的方法,其中所述两个独立的振荡器中的每 个都是通用振荡器。
13、 如权利要求10所述的方法,其中使用基于数字信号处理(DSP) 的滤波器对所测量噪声进行滤波包括使用无限脉冲响应(IIR)滤波器对所测量振荡器噪声进行滤波。
14、 如权利要求10所述的方法,其中使用基于数字信号处理(DSP) 的滤波器将具有高能量热噪声的频带分成N个子带包括使用有限脉沖响应(FIR)滤波器将具有高能量热噪声的频带分成N个子带。
15、 一种系统,包括集成电路,包含 第一振荡器;第二振荡器,其中第一和第二振荡器用独立的硬件实现;以及 随机数发生器,与第一和第二振荡器耦合,其中所迷随机数发 生器接收来自第一和第二振荡器的热噪声,并至少部分地基于数字信号 处理(DSP)操作来生成随机数;以及 无线收发器,与所述集成电路耦合。
16、 如权利要求15所述的系统,其中所述随机数发生器包括第一DSP操作,对所测量噪声进行滤波以产生热噪声频带,其中对 所测量噪声进行滤波包括使具有高热噪声功率与伪随机过程功率之比的 频带中的热噪声频谱变平。
17、 如权利要求16所述的系统,其中第一DSP操作为无限脉冲响应 (IIR)滤波器。
18、 如权利要求15所述的系统,其中所述随机数发生器还包括 第二DSP操作,使用基于数字信号处理(DSP)的滤波器将具有高能量热噪声的频带分成N个子带。
19、 如权利要求18所述的系统,其中第二DSP操作为有限脉冲响应 (FIR)滤波器。
全文摘要
本发明的实施例一般针对用于基于振荡器噪声的随机数发生器(RNG)的系统、方法和装置。在一些实施例中,RNG对受伪随机过程效应影响的两个独立振荡器的热噪声效应进行缓冲,并将热噪声与其它效应分离。然后,RNG可至少部分地基于数字信号处理算法将热噪声转换成随机二进制序列。
文档编号H03H17/02GK101276267SQ20081009633
公开日2008年10月1日 申请日期2008年3月24日 优先权日2007年3月23日
发明者A·克拉夫特索夫 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1