随机时钟生成器的制作方法

文档序号:14420254阅读:2292来源:国知局
随机时钟生成器的制作方法

本发明涉及随机时钟信号生成器。该类型的生成器用于其中要避免与外部设备的同步的时钟处理器。



背景技术:

为了在通信和电子交易中保证一定水平的安全性,有时使用经加密的信息交换。为了保证所使用的密钥的机密性,常见的是使用普遍称为安全元件或se的安全集成电路。se普遍用在芯片卡、usb密钥或其它安全便携设备中,或者甚至被集成在诸如计算机或移动电话之类的较大设备中。

这些se具有许多安全元件以便保护它们所包含的信息的机密性。为此,有时对可能用于提取机密信息的攻击进行标识,并且有时将对策集成在se中以对抗每种类型的攻击。在各种攻击当中,常见的是对由电路或其电磁辐射所消耗的电流进行监视,以便确定哪个算法当前正在操作中。另外,对时钟信号的同步允许引入故障以观察算法如何反应并基于得到的信号(signature)来推断某些值。在已知的对策当中,一个选项是使用时钟信号生成器使时钟信号去同步,所述时钟信号生成器使用伪随机或随机型分量以便使对测量到的信号的分析复杂化。

伪随机生成器使得能够部分地掩蔽时钟信号。然而,伪随机生成器仍然是重复的,并且因此在某时间段之后是可预测的。

纯随机时钟生成器的主要缺点是它太不可预测,并且因此有时提供对于所要求的用途而言太过缓慢的时钟。

当前,不存在用以提供随机时钟信号的理想的生成器。



技术实现要素:

本发明提出一种随机时钟生成器,其包括接收由一系列规则的且规则地间隔的脉冲组成的主时钟信号的时钟输入信号,以及接收所述主时钟信号和整数n并且提供输出信号的时钟信号缩减电路,所述输出信号对应于每m个时钟脉冲的一串n个脉冲,其中m是大于1的整数并且n是大于1且小于或等于m的整数。另外,数字生成器每主时钟信号的p个脉冲向所述时钟信号缩减电路提供新的数字n,其中n和/或p是随机产生的。

因此,遵循由电路设计者定义的值m、n和p,控制由随机时钟生成器提供的脉冲的“频率”是可能的。

根据优选实施例,p可以等于m并且n可以是随机产生的。n可以是在最小值与最大值之间。所述数字n可以作为加法器或加法器/减法器的输出而获得,所述加法器或加法器/减法器接收n的平均值以及要与该平均值相加或者潜在地从该平均值减去的随机修正值。所述数字生成器包括非线性移位寄存器和随机数字生成器,其中该随机数字生成器用于周期性地重置所述非线性移位寄存器。所述随机修正值于是可以由所述非线性移位寄存器来提供。

附图说明

以下描述使我们能够更好地理解本发明的实施方式;该描述参考了在附件中提供的各图,包括:

•图1表示本发明的优选实施例,

•图2示出了如在本发明中使用的减频器的实施例,

•图3是如其可能用在本发明中的查找表的示例,

•图4示出了从频率缩减电路得到的脉冲串,

•图5示出了在受控值的范围内的随机数字的生成器的优选实施例,

•图6示出了随机数字生成器的示例。

具体实施方式

图1中的时钟生成器电路对应于本发明的优选实施例。根据优选实施例,该时钟生成器在时钟缩减模式和随机时钟生成器模式中操作,同时保证平均频率。该时钟生成器电路优选地集成在与要对其计时(clocking)进行掩蔽的处理器相同的芯片中。在优选示例中,选择使用主时钟信号mclk并且将其转换成经转换的时钟信号sclk。做出该选择是因为可能的是并且甚至推荐的是在集成电路上同时使用主时钟mclk和经转换的时钟信号sclk,以便进一步掩蔽由经转换的时钟信号sclk进行的计时。以这种方式,并未表示出主时钟信号mclk的产生,但是它可以通过对于本领域技术人员已知的任何类型的振荡器电路来获得。作为示例,在该同一集成电路上引入环形振荡器将是适当的。

图1中的时钟生成器电路主要由时钟缩减电路101和数字生成器102组成。时钟缩减电路101接收主时钟信号mclk并且提供经转换的时钟信号sclk。时钟缩减电路101的原理是在m个时钟周期上仅让n个时钟脉冲通过,其中n是在1与m之间,其中数字n被提供在时钟缩减电路输入101上。数字生成器102提供随机数字n,其用来配置时钟缩减电路101。在优选示例中,使用分频器电路103每m个时钟周期执行所述配置,分频器电路103每m个时钟周期从时钟缩减电路101的生效输入vain上使数字n生效。由数字生成器102使用多路复用器104将随机数字n提供给时钟缩减电路101,多路复用器104使得能够使用选择信号sel来选择操作的随机或非随机模式。多路复用器104因此可以提供随机数字或者定值数字c,该定值数字c可以由另一电路提供。

如本领域技术人员将理解的那样,多路复用器104对于本发明而言不是必需的,并且仅仅用来提供用以控制本发明的实施方式的手段。通过直接将数字生成器102的输出连接到时钟缩减电路101的输入来移除多路复用器104是完全可能的。电路于是将总是在随机模式中运行。

分频器电路103用于简化用以改变数字n的命令。实际上,随机方面是通过相当经常地将数字n替换为另一数字而与数字n的改变相联系的,以便不可能通过观察电流而容易地预测或标识经转换的时钟信号sclk。每m个周期对数字进行改变的选择是基于对时钟缩减电路101进行最优使用,时钟缩减电路101的输出建议从m个脉冲当中仅保留n个脉冲。

作为替换,可能的是周期性地每p个周期改变n的值,其中p与m不同,但是这将不会优化时钟缩减电路101的使用。也可以随机地执行该数字改变。在这种情况下,随机生成器将每p个周期提供脉冲,其中p是随机数字,并且第二生成器将随机地或者可预测地提供n。值n将被随机地加载到时钟缩减电路101中。本领域技术人员将理解,使用如图1中所示的优选实施例是更加简单的。

为了更好地解释本发明的操作,必须详述本发明的主要元件的操作。图2示出了时钟缩减电路101的示例实施例,时钟缩减电路101例如是围绕查找表201和移位寄存器202而设计的。查找表包括输入总线以接收数字n,生效输入vain使总线的值n能够被采样以便在m个输出n0至nm-1上提供在对应于数字n的地址处所记忆的状态值。查找表的m个输出n0至nm-1被连接到移位寄存器202的并行输入,并且生效输入vain选择移位寄存器的操作模式。移位寄存器与主时钟信号mclk同步。当生效输出vain信号有效时,于是在查找表201的m个输出n0至nm-1上提供的值被传递给移位寄存器202。当生效输入vain信号无效时,寄存机将其内容右移一个锁存器,其中寄存器202的最后一个锁存器的输出反馈到寄存器202的第一锁存器的输入。与(and)门203接收移位寄存器202的最后一个锁存器的输出和主时钟信号mclk。与门203的输出提供经转换的时钟信号sclk。

图3是用于m值为16的查找表201的内容的示例。经4位编码的值n是在0与15之间;然而在此处,值0对应于值16,第5最高有效位已从其中移除。为了例示时钟缩减电路的操作,图4示出了针对n的每个值的经转换的时钟信号,其中m总是等于16。本领域技术人员将理解,通过移除脉冲来控制时钟信号与改变前述时钟信号的频率是相同的。

每m个周期随机地改变n的值与随机地改变图4上表示的脉冲线的演替次序是相同的。因此,对由经转换的时钟sclk部分地同步的电路的消耗电流测量将会记录不可能预测的、以随机间隔的消耗下降。因为这些电流下降干扰算法的分析,所以更加难以对尝试进行监视的算法进行分析。另外,接下来的脉冲的存在或不存在的不可预测的性质使得在操作中的同时改变寄存机中的值的任何尝试变得非常困难。

利用其中值n可以是在1与m之间的这样的电路,与主时钟信号mclk的脉冲数相比,经转换的时钟信号sclk的有效脉冲数最多可以被除以m。处理速度明显降低,但是降低了可控制的最大值。

考虑到增加m冒着按比例缩减处理速度的风险,优选模式在于使n的值在小于m的值的值域内变化。例如,如果n仅在m/2与m之间变化,则与最大处理速度相比,处理速度最多将被除以二。然后m值的增加使得能够增加时钟的随机性质的熵,而不会损害性能。相当简单的实施例在于仅随机地变化值n的最低有效位同时将最高有效位保持为1。

根据优选实施例,可以控制脉冲数以便有可能控制熵和计时速度。为了该目的并且作为优选示例,建议使用图5的数字生成器电路102。数字生成器102包括加法器501、随机生成器502和整形电路503。保持m=16,加法器501是接收设定值c和由整形电路503提供的随机数字的4位加法器。随机生成器502向整形电路提供一3位随机数字。加法器501的输出提供4位数字n。例如,整形电路503是查找表,其将把经3位编码的随机数字转换成一4位带符号的整数,以便能够将随机数字加到设定值c或者从设定值c中减去随机数字。在整形电路503的输入处的随机数字的采样必须是以与在时钟缩减电路101的输入处的值n的采样相同的计时频率来执行的。分频器电路504。作为示例,本领域技术人员将理解,因为n是4位编码的并且因为将3加到设定值c或者从设定值c减去4是可能的,所以于是必要的是使4<c<m-3。

这样的电路允许对值n的相当精确的控制;控制n的平均值以及n的最小值nmin和最大值nmax因此是可能的。为了保证最小计时速度,只需将nmin/m的比设定为最大可能值。优选的是尝试将该nmin/m的比保持为大于或等于1/2。另外,nmax-nmin的差允许控制随机性质的熵;nmax-nmin的差越大,熵越大。本领域技术人员将选择适于他们需求的n、nmin、nmax和m的值。

作为示例,在图6中描绘了随机数字生成器502。噪声生成器ng向触发器电路601提供难以预测的模拟信号。触发器电路601是例如施密特触发器,施密特触发器基于所述模拟信号的值来提供具有值0或1的逻辑信号。该逻辑信号在随机的时间段之后改变状态。因此,在主时钟信号mclk的每个前沿时,该逻辑信号的值是0或者1,并且这不能被预测。

移位寄存器602在串行化输入上接收前述逻辑信号,以使得寄存器602随机填充有0或1。移位寄存器的内容形成随机逻辑数字,其针对主时钟mclk的每个周期而改变。根据第一实施例,随机数字生成器可以被限制为上文描述的事物。

然而,先前电路的缺点在于,有时逻辑信号在某一时段上提供一连串的值0或1。那么将会存在将交替改变的一连串的随机数字。为了避免在输出处连续不断地具有两个相同的随机数字,优选的是添加非线性移位寄存器603,例如每q个周期将寄存器602的内容调换到该非线性寄存器603上。因此,如果触发器电路601提供太过重复的一系列的位,则这将被非线性移位寄存器603所改变。为了恢复随机字,在寄存器r0、r1和r2的并行输出上提取所需要的位数。字r0-2对应于随机生成器502的输出字。

本领域技术人员可以在方便时在要求一定的安全性水平并且他们希望针对其来掩蔽处理器的有效输出的电路中使用根据前述或所建议的变体中的一个而描述的生成器。作为示例,对于多处理器电路而言,可以使用若干个生成器来尽可能地掩蔽每个处理器的计时。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1