用于随机数和流密码生成的小型密码引擎的制作方法

文档序号:7679553阅读:193来源:国知局
专利名称:用于随机数和流密码生成的小型密码引擎的制作方法
技术领域
本发明涉及一种用于鉴别和信息数据加扰的密码引擎。
背景技术
许多密码系统的安全性取决于不可预料的数值的生成,这些数值必须有足够的规模并且是随机的。线性反馈移位寄存器(LFSR)因其实现起来简单并且有效而成为最普遍使用的流密码生成器中的基本组成部件。然而,伴随着LFSR的某些吸引人的特性产生了这些构造中的许多构造不能满足良好的密码强度的问题。特别是,LFSR固有的线性和代数结构经常是破译这些密码系统的基础。可以很容易地获得生成的多项式,而且生成一个具体序列的初始状态将会产生许多可预知的序列。
为了避免此线性问题,采用一种其输入取自移位寄存器的某些级以产生输出的非线性滤波函数来打破原始序列的线性和代数结构。采用非线性组合发生器形式的非线性滤波器是使这些结果更安全的必要因素。然而,这些滤波器中的大多数是基于若干个平行LFSR的输出的非线性组合函数f设计的。
所采用的非线性函数f是一个固定函数。因此非线性函数f定义的映射是一对一的映射,而且对于加在f上的相同输入,将获得相同的输出。如果在密钥流和各个子发生器的输出序列之间存在相关性,这种发生器则会遭到分离并破解的攻击。
上述问题的一种解决方案可以利用数据加密标准(DES)使输出随机化,但是,因为需要大量的硬件,这种解决方案非常不经济。总而言之,问题的出现是由于基于LFSR的流密码或随机数发生器加密不安全,而为了使其安全必须使用大量的硬件。

发明内容
本发明的目的在于克服或至少减少上述问题。
根据本发明,提供一种小型双函数随机数发生器(RNG)和流密码发生器(SCG),包括密码引擎和用于控制密码引擎按RNG或SCG操作的控制器,控制器控制的三个复用器有选择地向密码引擎提供信号和接收来自密码引擎的信号,其中安排第一复用器用来接收RNG种子信号或SCG密钥信号,安排第二复用器用来接收动态同步参数信号或恒定同步信号,安排第三复用器用来接收来自密码引擎的信号,和分别提供在每种情况下的随机数输出信号或流密码输出信号。
可以提供并安排异或门用来接收来自第三复用器的流密码输出信号并将流密码信号分成明文或密文,以使异或门的输出分别是密文或明文。
在双函数发生器中可以提供多个剪裁的(clipped)跳跃字段神经网络对。
可以包括种子/密钥输入;同步参数输入;种子/密钥随机函数发生器和非线性操纵器。
剪裁的跳跃字段神经网络对可以具有为非线性交互作用提供动态/恒定同步参数输入的输入CHNN(ICHNN),和为非线性交互作用提供相邻ICHNN输出的输出CHNN(OCHNN)。
剪裁的跳跃字段神经网络可以包括单个迭代CHNN对和k流水线CHNN对中的一个、判定框(DEC)和吸引子(attractor)映射表(AMT)。
剪裁的跳跃字段神经网络可以包括两个状态的神经元{0,1}、三个状态的突触(synaptic)权值{-1,0,1}、和非线性激活函数{0,1}。
可以安排到n个神经元的剪裁跳跃字段神经网络的输入在有限的k次迭代步骤以后收敛到网络的2n+1个稳定状态或吸引子中的一个。
如果n值较小的话,可以利用级联的查阅表构成剪裁的跳跃字段神经网络。该查阅表可与初始突触权值矩阵和随机选择的置换突触权值矩阵相关联。
该小型双函数可以在某些选定的比特序列组合中包括“反复”特征,以避免统计偏差和可能的相关攻击。


现在参考附图通过实例来描述用于随机数和流密码生成的小型双函数密码引擎,其中图1是小型双函数随机数发生器和流密码发生器的方框图;图2说明密码引擎的结构;图3是剪裁的跳跃字段神经网络的方框图;图4是说明具有8个神经元的剪裁跳跃字段神经网络的初始收敛域的表1;图5是说明具有8个神经元的剪裁跳跃字段神经网络的置换收敛域的表2;图6是说明利用MUX2中的恒定同步输入满足FIPS 140-2的统计测试结果的表3;和图7是说明利用到MUX2中的动态同步输入满足FIPS 140-2的统计测试结果的表4。
具体实施例方式
本发明的实施例提供双函数小型密码引擎,当以随机数发生器(RNG)的形式配置和使用该密码引擎时,该密码引擎能够产生任何长度的随机序列,当以流密码发生器(SCG)的形式配置或使用该密码引擎时,该密码引擎能够将任何长度的数据加密。以前,同一个密码引擎(本身是已知的)不能以两种形式配置或使用。
参考附图,图1中的方框图表示基本结构。用控制器10控制密码引擎11的操作是以RNG还是以SCG形式使用。复用器MUX1 12分别针对RNG选择“种子”或针对SCG选择“密钥”作为到密码引擎的初始输入。复用器MUX2 13选择两个外部输入动态或恒定同步参数。该动态参数可以是可变的地址位置或变化的实时时钟。恒定同步参数可以是另一个密钥或任何固定参数。复用器MUX3 14选择来自密码引擎的输出是来自RNG还是SCG。来自RNG的输出可以反馈到输入并且成为下一个随机数状态的新“种子”。利用异或门15,来自SCG的输出可以是加密以后的密文或解密以后的明文。
图2表示加密引擎的基本组成部分。附图的上半部分包括剪裁的跳跃字段神经网络。
首先将保密且随机的种子/密钥分成m个子种子/子密钥,其中m是指并联的CHNN的数目。使用各具有n个神经元的CHNN。图3表示具有n个神经元的CHNN的示意结构。标记为Z-1的方框表示单位延迟。每个神经元处于两个状态{0,1}中的一个。网络中的神经元对i和j通过突触权值wij连接。
如图3所示,CHNN中每个神经元的输出反馈到所有其他的神经元,包括它自己。对于上述实施例中的CHNN,两个神经元间的作用可以是激发(即,wij=1)、抑制(即,wij=-1)或不直接相连(即,wij=0)。CHNN的突触权值矩阵剪裁为三个值{0,1,-1}。
具有n个神经元的CHNN根据下面的等式取n位输入x和n位输出yyi=f(Σj=0n-1wijxj)---i=0,1,...n-1-----(1)]]>其中f是符号函数形式的非线性函数,即当σ≥0时,f(σ)=1,当σ<0时,f(σ)=0。
到CHNN的输入可以在有限的k次迭代步骤以后收敛到网络的一个稳定状态或吸引子。对于具有n个神经元的CHNN,到网络的大部分输入将在大约k次迭代步骤以后收敛到2n+1个稳定状态中的一个。对于n=8,将有17个稳定状态,迭代次数是2,即在经过2个连续的CHNN以后,达到稳定状态。
密码引擎(图2)包括种子/密钥随机函数发生器和非线性操纵器。在种子/密钥随机函数发生器中,每个n位的子种子/子密钥首先经过具有n个神经元的CHNN层。
该电路是基于如下所述剪裁的标准跳跃字段神经网络。‘剪裁的’跳跃字段神经网络已经被建议用于其它的密码系统,但不用于支持本发明的实施例提供的双函数密码引擎。来自CHNN_1到CHNN_m的输出与同步输入进行异或运算。来自OUT1_1到OUT2_m的这些输出分别成为CHNN2_1到CHNN2_m的输入。通过进一步的异或运算,生成OUT2_1到OUT2_m并传送到非线性操纵器(NLM)。利用k个连续的CHNN或k次迭代的单个CHNN构成NLM以达到稳定状态。
如果n值较小,即16,利用查找表以另一种方式可以构成CHNN。通过在突触权值矩阵上执行随机选择的n×n的置换矩阵,可以导致不同的吸引子和输入对。表1和表2(图4和图5)给出在具有8个神经元的CHNN中具有两个不同突触权值矩阵的吸引子的收敛域。从这些表中看出,密码引擎已在到CHNN的输入和输出吸引子之间产生了不规则的关系。
方框DEC(图2)是选择密码引擎是按RNG操作还是按SCG操作的判定框。对于RNG,需要进一步的异或函数,并反馈最终的随机序列输出,以便成为下一个随机数状态的新种子。对于SCG,使用吸引子映射表(AMT)将n位的吸引子映射成1位序列,其中1≤n。每个AMT的输出组合在一起形成密钥流,该密钥流分别与明文/密文异或运算以形成加密/解密数据。
为避免统计偏差和可能的相关破译,可以设计某些选定的位序列组合具有“反复”特征,即同一序列连续表现为补充(complementary)输出。
通过利用置换矩阵生成不同的突触权值矩阵,即使使用相同的“密钥”和“同步输入”,也可以获得不同的密钥流。此外,根据CHNN的非线性动态属性,下面的属性将出现在不同的密钥流中可以从相同明文生成不同的密文;可以从不同的明文生成相同的密文,或者不同的明文可以生成不同的密文。因此,此方案可以防止密码破译者只需破译密文。此外,选定的明文破译或已知的明文破译都无法猜测保密的“密钥”。
从RNG生成的随机数和从SCG生成的密钥流都满足一定程度的随机性,以确保其可用于密码处理。已经考虑到按FIPS 140-2中规定的、用于随机性测试的统计测试。这些统计测试共同用于确定该二进制序列是否具有可能呈现真正的随机序列的某些特定特性。满足比特流的下列属性单个比特的分布(单比特测试)、16个可能的4位组合中的每一个出现的次数(扑克(poker)测试)、1或0的连续出现次数(游程测试)和最大连续出现次数(长游程测试)。经过上述每种测试的20,000个连续比特的单个比特流在统计上没有表现出更高的被破译的可能性。
表3(图6)是对使用恒定同步输入产生的随机数(RNG)的测试结果。
图4(图7)是对使用动态同步输入产生的密钥流(SCG)的测试结果。这两个结果都表示该序列具有良好的统计特性并满足所有的测试。输出值Xout保持在用不同的种子/密钥和不同的突触权值矩阵生成的序列的可接受限度内。
在本发明的实施例中,随机数生成和流密码加密二者都可以利用相同的软件或硬件模块实现。这样显著节省了硬件部件、存储空间和设计时间。这在诸如使用智能卡之类有限资源的市场中提供应用尤其重要。本发明的实施例完全适用于受约束的用硅实现的装置,例如智能卡密钥生成和数据加扰,以及大型可重新配置的随机数发生器和流密码发生器。
本发明的实施例可在并联架构中实现。该结构要求简单的异或及逻辑函数。这样允许用软件或硬件技术快速而有效的实现双函数密码引擎。利用同步输入,保持了计算输出结果的匹配并且与同类型的位于外部的装置一样好。
权利要求
1.一种小型双函数随机数发生器和流密码发生器,包括密码引擎和用于控制密码引擎作为随机数发生器或流密码发生器操作的控制器,包括由控制器控制的三个复用器,以便有选择地向密码引擎提供信号和从密码引擎接收信号,其中安排第一复用器用来接收随机数发生器种子信号或流密码发生器密钥信号,安排第二复用器用来接收动态同步参数或恒定同步信号,安排第三复用器用来从密码引擎接收信号和分别在每种情况下提供随机数输出信号或流密码输出信号。
2.根据权利要求1所述的小型双函数随机数发生器和流密码发生器,其特征在于包括异或门,用于接收来自第三复用器的流密码输出信号并将流密码信号分成明文或密文,以使异或门的输出分别是密文或明文。
3.根据权利要求1所述的小型双函数随机数发生器和流密码发生器,其特征在于包括多个剪裁的跳跃字段神经网络对。
4.根据权利要求1所述的小型双函数随机数发生器和流密码发生器,其特征在于包括多个剪裁的跳跃字段神经网络对,种子/密钥输入,同步参数输入,种子/密钥随机函数发生器和非线性操纵器。
5.根据权利要求4所述的小型双函数随机数发生器和流密码发生器,其特征在于在剪裁的跳跃字段神经网络对中,输入CHNN为非线性交互作用提供动态/恒定同步参数输入,和输出CHNN为非线性交互作用提供相邻的输入CHNN的输出。
6.根据权利要求1所述的小型双函数随机数发生器和流密码发生器,其特征在于包括多个剪裁的跳跃字段神经网络对、单个迭代CHNN对和k流水线CHNN对中的一个、判定框和吸引子映射表。
7.根据权利要求1所述的小型双函数随机数发生器和流密码发生器,其特征在于包括多个剪裁的跳跃字段神经网络对、两种状态的神经元、三种状态的突触权值、和非线性激活函数。
8.根据权利要求7所述的小型双函数随机数发生器和流密码发生器,其特征在于神经元的状态是0和1;突触权值的状态是-1、0和1;非线性激活函数是0和1。
9.根据权利要求1所述的小型双函数随机数发生器和流密码发生器,其特征在于包括多个剪裁的跳跃字段神经网络对,其中安排到n个神经元的剪裁跳跃字段神经网络的一个输入在有限的k次迭代步骤后收敛到网络的2n+1个稳定状态或吸引子中的一个。
10.根据权利要求1所述的小型双函数随机数发生器和流密码发生器,其特征在于包括多个剪裁的跳跃字段神经网络对,其中如果n值较小,可以利用级联的查阅表构成剪裁的跳跃字段神经网络。
11.根据权利要求10所述的小型双函数随机数发生器和流密码发生器,其特征在于该查阅表与初始突触权值矩阵和随机选择的置换突触权值矩阵相关联。
12.根据权利要求1所述的小型双函数随机数发生器和流密码发生器,其特征在于包括多个剪裁的跳跃字段神经网络对,在某些选定的位序列组合中包括反复特征以避免统计偏差和可能的相关破译。
全文摘要
一种小型双函数随机数发生器和流密码发生器,包括密码引擎,该密码引擎具有控制该引擎工作以其一个或另一个函数操作的控制器。该密码引擎并入多个剪裁的跳跃字段神经网络对。
文档编号H04L9/22GK1381813SQ02106138
公开日2002年11月27日 申请日期2002年4月4日 优先权日2001年4月19日
发明者郑利明, 陈志光, 陈彩娟 申请人:香港城市大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1