伪随机数据序列的生成的制作方法

文档序号:6508398阅读:309来源:国知局
专利名称:伪随机数据序列的生成的制作方法
技术领域
本发明涉及编码/解码领域,尤其涉及生成伪随机数据序列的系统和方法。
本发明具有非常有优势的应用,因为它可以产生能进行对称加密的比特序列,其中加密和解密都使用同一密钥。它适用于加密操作和解密操作相同的标准流加密方法。对称加密常用于所有类型的通信中,诸如移动通信(GSM、UMTS等)、因特网(SSL等)、智能卡(银行卡)等。
背景技术
最普遍的流加密方法利用线性反馈移位寄存器生成与要加密的消息无关的加密序列,以节省硬件。
线性反馈移位寄存器的主要缺陷是它们的线性。实际上,由于知道寄存器的若干输出比特等于寄存器长度以及与寄存器相关联的反馈多项式,因此能确定输出比特及寄存器的全部后续状态。
因此,要“打破”线性反馈移位寄存器的线性,一般做法就是合并多个寄存器的输出并且也有可能合并它们的内部状态,例如利用非线性布尔函数。
图7示出了这种发生器100,也称为“缩减发生装置(shrinkinggenerator)”,其在欧洲专利申请EP0619659中有所描述,包括第一线性反馈移位寄存器111a,第二线性反馈移位寄存器111b,和用于选择发生器100的输出的装置112。
因此,在每次移位,两个寄存器111a和111b同时移位;如果第一寄存器111a的输出为1,则设备100的输出等于第二寄存器111b的输出;否则没有输出。
缩减发生器不仅合并两个线性反馈寄存器的输出,而且更为常见的是,也合并任何比特序列对。缩减发生器用在由一个线性反馈寄存器控制另外一个的流加密方法中。这一思想首先改变在所用的不同寄存器之间的移位数目,其次是在两个连续比特之间的移位数目,从而打破该寄存器的线性。
称作 “自缩发生器(self-shrinking generator)”的一种缩减发生器变型是基于相同的原理但只用一个寄存器。寄存器的输出比特是被两个两个地读取的;第一比特控制第二比特的输出,以便在第一比特为1的情况下系统的输出是第二比特;否则没有输出。
仅使用线性反馈寄存器有很多缺陷。主要缺陷是源自设备线性的弱点。如果利用布尔函数合并寄存器,则也存在不利之处。在硬件级别,这些缺点是源于实施这一函数的复杂性。另外,这个函数是固定的,并且很有可能受到攻击。
此外,统计方法突显了缩减发生器和其他时钟控制的加密方法的某些弱点。尤其是在缩减发生器中,受两个寄存器影响的、在两个输出比特之间的移位数目对于两个寄存器改变相同的量。
最后,缩减发生器的最后一个缺陷是输出比特数目与计算出的比特数目之比较低,平均只有1/4。这一比率对于自缩发生器是相同的,该自缩发生器具有缩减发生器的大部分弱点。

发明内容
本发明的目的是克服上述缺陷并简化具有高质量的伪随机数据序列的生成。
本发明的另一目的是提供一种使输出比特数目与计算出的比特数目之比大于1/4的方法和发生器。
本发明进一步的目的是提供一种非常有效的低成本发生器。
上述目的可以通过一种生成伪随机数据序列的方法来实现,其中所述伪随机数据序列是通过一种在N个比特的初始数据序列中对搜索模板(search pattern)进行搜索的过程而生成的。
因此,根据本发明的方法涉及一种基于对实现一个或多个比特流的非线性合并以获得新比特流的模板的检测来生成伪随机数据的非线性方法。
本方法在易于实现的同时,为达到产生高质量的伪随机数据序列的目的也具有其固有的复杂性。
搜索过程包括以下步骤-在所述初始数据序列中检测r个比特的特定搜索模板,它是一组搜索模板中的一个;-通过取决于在前步骤的进展的操作,确定k个比特的输出模板;以及-继续重复前述步骤以从一系列输出模板中形成伪随机数据序列。
检测所述搜索模板的步骤和确定所述输出模板的步骤,是通过一系列操作来完成的,包括用于定义移动模式的第一组规则,所述移动模式用于在所述初始数据序列上移动窗口以检测所述搜索模板,所述窗口在所述初始数据序列上具有特定的初始位置以及特定的比特长度。
所述一系列操作还包括第二组规则,用来确定停止在所述初始数据序列上移动所述窗口的条件。
所述第二组规则中的一条规则根据所述窗口的移动和/或内容,来管理所述搜索模板组的更新和/或所述输出模板的更新。
所述一系列操作可以重复进行直到满足预定的条件。
所述一系列操作有利地在每次执行之后被修改。
根据本发明的特征,所述一系列操作在每次执行之后保持不变,并且在所述初始数据序列上逐个比特地将窗口连续移动1个比特,以检测1比特的搜索模板并确定1比特的输出模板。
在本发明的第一实现中,所述一系列操作包括以下步骤-将来自窗口的比特置于搜索模板中;
-将窗口从当前比特到下一比特移动一个比特;-如果窗口内容与搜索模板内容相等,则根据第一法则更新输出模板;-如果窗口内容与搜索模板的比特不相等,则根据第二法则更新输出模板;-如果窗口内容与搜索模板的比特不相等,则逐个比特地向下一比特移动该窗口;-将窗口从当前比特到下一比特移动一个比特;以及-输出所述输出模板。
在第一实现中,第一法则将特定值b指派给输出模板,而第二法则对特定值b和值1进行模2相加,并将该加法运算的结果赋予输出模板。
在第二实现中,第一法则对特定值b和搜索模板的值E进行模2相加,并将该加法运算的结果赋予输出模板,而第二法则对特定值b、搜索模板的值E和值1进行模2相加,并将该加法运算的结果赋予输出模板。
在第三实现中,所述一系列操作包括以下步骤-将来自第一窗口的比特置于搜索模板中;-将该第一窗口从当前比特到下一比特移动一个比特;-如果所述第一窗口的内容与搜索模板的值相等,则通过将对第一特定值b1和搜索模板的值E进行模2相加所得出的结果赋予输出模板来更新该输出模板;-如果所述第一窗口内容与搜索模板的值E不相等,则通过将对第一特定值b1、搜索模板的值E和值1进行模2相加所得出的结果赋予输出模板来更新该输出模板;-如果所述第一窗口的内容与搜索模板的值E不相等,则逐个比特地向下一比特移动该第一窗口;-将所述第一窗口从当前比特到下一比特移动一个比特;-用来自第二窗口的比特来替代搜索模板的值;-将所述第二窗口从当前比特到下一比特移动一个比特;
-如果所述第二窗口的内容与搜索模板的值相等,则通过将对第二特定值b2、输出模板的当前值s和搜索模板的值E进行模2相加所得出的结果赋予输出模板来更新该输出模板;-如果所述第二窗口的内容与搜索模板的值不相等,则通过将对输出模板的当前值s、第二特定值b2、搜索模板的值E和值1进行模2相加所得出的结果赋予输出模板来更新该输出模板;-如果所述第二窗口的内容与搜索模板的值不相等,则逐个比特地向下一比特移动该第二窗口;-将该第二窗口从当前比特到下一比特移动一个比特;以及-输出所述输出模板。
在应用本发明时,将所述伪随机数据序列的每个比特与要加密的消息的数据序列中相应的比特通过模2相加进行合并,以构成加密的数据序列。
本发明还提供了一种伪随机数据序列的发生器,其包括搜索装置用于在N个比特的初始数据序列中对搜索模板进行搜索。
所述发生器的搜索装置包括-检测装置,用于在所述初始数据序列中检测r个比特的特定搜索模板,该搜索模板是一组搜索模板中的一个;-确定装置,用于根据取决于对所述搜索模板进行检测的进展的操作,来确定k个比特的输出模板;以及-重复装置,用于从一系列输出模板中生成伪随机数据序列。
所述检测装置包括能在所述初始数据序列上移动的窗口,和用于控制所述窗口在所述初始数据序列上的移动的第一控制装置。
所述确定装置包括用于更新所述搜索模板组和/或所述输出模板的第二控制装置。
所述发生器还包括用于生成N个比特的初始数据序列的初始化装置。
所述初始化装置可以包括线性反馈移位寄存器。
本发明的目的还在于一种编码设备,其包括异或逻辑门和具有前述特征的发生器。
本发明的目的还在于一种安全系统,其包括至少两个实体,每个实体都包括编码设备。


参考附图,通过阅读下面作为非限制性例子给出的描述,本发明的其他特征及优点将变得显而易见,其中图1概略地示出了根据本发明的伪随机数据序列发生器的实例;图2示出了包括图1的发生器的安全系统;图3示出了根据本发明的用于生成伪随机数据序列的搜索过程的实例;图4到图6示出了根据本发明的方法的特定实现;图7概略地示出了现有技术发生器。
具体实施例方式
图1概略地示出了根据本发明的用于生成伪随机数据序列3的发生器1的实例。
发生器1包括用于在N比特的初始数据序列9中对搜索模板7进行搜索的搜索装置5。该搜索模板包含于一组搜索模板中。
以下所用术语“模板”是指仅由0和1组成的任何字。例如,0、11、000、1010、00111是长度分别为1、2、3、4和5的模板。另外,一个“空”模板是一个空字。
N(N为整数)个比特的初始数据序列由初始化装置11生成,该初始化装置11可以包括有最大周期的线性反馈移位寄存器。
线性反馈移位寄存器是具有表条目的线性组合的有限长度(寄存器)的比特表,由称为反馈多项式的多项式来表示。每次移位,输出最高索引的比特,所有其他比特移动一个索引,并且最低索引的比特取移位前线性组合的值。
举例来说,反馈多项式可以有利地是与最大周期线性移位寄存器相对应的本原多项式,或者形如Q=(x2+1)P的多项式,其中P是本原多项式。
发生器1的搜索装置5包括检测装置13、确定装置15以及重复装置17。
检测装置13在初始数据序列中检测r个比特的搜索模板7,其中r是小于N的整数。确定装置15定义一组搜索模板,被检测装置13检测到的搜索模板7属于该组搜索模板。
所述检测装置包括可在初始数据序列9上移动的窗口19,和用于控制窗口19在初始数据序列9上移动的第一控制装置21。
每个窗口19被置于初始数据序列9的特定初始位置,并且具有特定的比特长度。例如,被置于初始数据序列9上的长度为t(t为小于N的整数)的窗口19,是能在序列9上移动以在每次移位时准确暴露序列9的t个比特的掩蔽物。
确定装置15通过连接23与检测装置13交互。确定装置15通过取决于对搜索模板7进行搜索的进展的操作来确定k(k为小于N的整数)个比特的输出模板25。
事实上,确定装置15包括用于定义或更新搜索模板组和/或输出模板25的第二控制装置27。
另外,重复装置17分别通过连接29和31连接到检测装置13和确定装置15。
因此,重复装置17可以与检测装置13和确定装置15交换信号,从而在没有满足预定停止条件的情况下重新开始检测和确定操作,例如在从确定装置15接收到关于输出模板25刚被输出的信号之后。重复装置17另外通过与检测装置13和确定装置15交换信号来测试停止条件。这生成了级联地构成伪随机数据序列3的一系列输出模板25。
应当指出,重复装置17还可以集成到检测装置13的第一控制装置21或者确定装置15的第二控制装置27中。
图2示出了安全系统31,其包括通过因特网、GSM、UMTS等类型的通信网络35而互连的至少两个实体。
该图的实例显示了通过通信网35连接到第二实体33b的第一实体33a。第一实体33a包括第一终端37a、第一编码设备39a和第一调制解调器41a,而第二实体33b包括第二终端37b、第二编码设备39b和第二调制解调器41b,调制解调器41a和41b是由可与通信网络35接口连接(interfacing)的任何装置构成的。
第一编码设备39a和第二编码设备39b中每一个都包括如前所述的用于生成伪随机数据序列3的发生器1以及异或逻辑门43。
每个编码设备39a、39b都实施流加密或解密,这在于对消息逐个比特地进行加密或解密。
在该实例中,第一编码设备39a实现加密操作,因此,异或逻辑门43将称为加密序列的伪随机数据序列3和在由第一终端37a以明文发送的消息45的相应位置处的每个比特进行合并,以得到加密文本47,该加密文本然后由第一调制解调器41a发送给第二实体33b。加密操作因而在于将加密序列3逐个比特地添加到消息45的明文中,以得到加密文本47。
第二编码设备39b实现解密操作,其在于将相同的加密序列3逐个比特地添加到由第一实体33a发送的加密文本47中,以重新制定明文的文本消息45。
加密操作和解密操作因而是相同的。
图3到图6示出了根据本发明的生成伪随机数据的方法。
这个方法在于从用于在初始数据序列9中对搜索模板进行搜索的过程中生成伪随机数据序列3。
因此,根据本发明对伪随机数据序列的元素进行确定,可能取决于搜索到的模板及搜索历史或者搜索方式。
图3示出了根据本发明的用于生成伪随机数据序列3的搜索过程的实例。
步骤E1涉及在初始数据序列9中检测一组搜索模板中的r个比特的特定搜索模板7。
步骤E2涉及通过取决于在前步骤E1的进展的操作来确定k个比特的输出模板25。
事实上,对输出模板25的确定可能取决于搜索模板7及搜索历史,尤其取决于在初始数据序列9中找到正讨论的搜索模板7之前所实施的步骤或迭代的数目。
检测搜索模板7的步骤E1和确定输出模板25的步骤E2是通过一系列操作来实现的。
这一系列操作涉及第一组规则,该第一组规则由发生器1的第一控制装置21来实现以定义移位模式,该移位模式用于在初始数据序列9上移动窗口19,从而检测搜索模板7。
一个或多个非零长度的窗口19通常在初始数据序列9上移动。在搜索过程开始时,每个窗口19是在初始数据序列9上的初始位置处(例如,它们可以都在初始数据序列9的起点)。窗口19的各比特被用来确定输出模板25。
所述第一组规则可以定义移位方向、移位幅度或者移动窗口19的形式,例如在初始数据序列9的一部分上循环移动。
例如,所述第一组规则可包括如下定义的规则r1r1=“向右移动一个比特”。
另外,所述一系列操作包括由发生器1的第二控制装置27实现的第二组规则,其确定窗口19在初始数据序列9上停止移动的条件。
所述第二组规则可以包括必须在发生器1递送输出模板25之前以特定顺序实施的规则。因此,发生器1对一系列输出模板25的递送形成了伪随机数据序列3。
例如,所述第二组规则可以包括如下定义的规则r2r2=“当窗口19的内容不是来自搜索模板组7中的模板,根据规则r1移动窗口19”,其中r1是来自所述第一组规则中的规则。
另外,来自该第二组规则中的另一规则按照给定的二进制法则并根据窗口19的移动和/或内容,来管理搜索模板组7和/或输出模板25的更新。
因此,搜索模板7可以为空,即没有模板,这取决于窗口19的内容或者包括第一和第二组规则的一系列操作的在前执行。
类似地,输出模板25也可以为空,即没有模板,这取决于窗口19的内容或者包括第一和第二组规则的一系列操作的在前执行。
另外,搜索过程中的步骤E3连续地重复前面两个步骤E1和E2,以从级联的一系列输出模板中形成伪随机数据序列3。
应当指出,所述一系列操作可以重复进行,直到满足预定的条件。该条件可以是初始数据序列9的窗口19的内容,如果它是有限的话。也有可能重复这一系列操作直到满足用户定义的条件。
另外,在每次执行后可以对这一系列操作进行修改,从而进一步提高伪随机数据序列3的质量。
因此,该方法在于利用一个或多个窗口19扫描初始比特流(初始数据序列9),以便伪随机数据序列3的每个输出比特都取决于在初始流9中对一个或多个模板7的一个或多个搜索。另外,要搜索的模板7可能取决于窗口19的内容和/或移动。
图4到图6示出了根据本发明方法的特定实现。
在这些例子中,所述一系列操作在每次执行后保持不变,窗口19为“长度1”(即每个窗口包含1个比特),所述搜索模板组7包括一个搜索模板,并且搜索模板7和输出模板25也为长度1。
另外,窗口19的移动幅度等于一个单位,即每个窗口19例如在每次迭代时移动1个比特,从当前比特移到下一比特(即从左到右)。
因此,每个初始数据序列9可以被连续读取,即逐个比特读取,这样操作起来就非常简单了。
下面的E是指搜索模板7的值,s是输出模板25的值,以及f、f1和f2是各窗口19的值。
最初,搜索模板7和输出模板25是通过为其赋予空比特而被初始化的,如E←φ和s←φ,φ是空集。类似地,将b、b1和b2所表示二进制或常数值定义为在每次实施这些实现的一系列操作时保持不变。
在第一实现中,单个窗口19在初始数据序列9上移动。最初,它可以固定在初始数据序列9的第一个比特上。
第一实现的一系列操作可以如下定义-将规则r1,1=“向右移动一个比特”设置为所述第一组规则中仅有的规则;-将下列规则设置为所述第二组规则中的规则-r2,1=“将来自窗口的比特f置于搜索模板中(E←f)”;-r2,2=“根据r1,1移动窗口一次”;-r2,3=“如果窗口的内容与搜索模板的比特E相等,则更新输出模板s←b”;-r2,4=“如果窗口的内容与搜索模板的比特E不相等,则更新输出模板s←b1”;-r2,5=“当窗口内容f不是搜索模板时,按照规则r1,1移动窗口”;-r2,6=“按照r1,1将窗口移动一次”;-按照这个顺序实施规则r2,1,r2,2,r2,3,r2,4,r2,5和r2,6;以及-输出所述输出模板s。
实际上,图4的流程图示出了上述一系列操作的执行。
步骤E11将来自窗口19的比特置于搜索模板7中。
步骤E12将窗口19从当前比特向下一比特移动一个比特。
步骤E13是将窗口19的内容与搜索模板7的内容进行比较的测试。
步骤E14是在窗口19的内容与搜索模板7的内容相等的情况下,根据第一法则更新输出模板25。在该实例中,第一法则相当于将特定值b赋予输出模板25(s←b)。
步骤E15是在窗口19的内容与搜索模板7的的比特E不相等的情况下,根据第二法则更新输出模板25。在该实例中,第二法则相当于对特定值b和值1进行模2相加,并且将该加法运算的结果赋予输出模板25(s←b1)。
步骤E16和E17形成了循环,即,如果窗口19的内容与搜索模板7的比特E相等,则逐个比特地向下一比特移动窗口19。
步骤E18是将窗口19从当前比特向下一比特移动一个比特。
最后,步骤E19将输出模板25从发生器1输出。
宽泛地说,所述一系列操作可以总结如下初始数据序列9中的当前比特E被读取,接着在序列9上向右移位直到找到比特E。如果为找到E而进行的移位只移动了一个索引,则输出b,否则输出b1。然后在重新开始前向右移一个比特。
当然,该流程还可以包括用于确定是否满足预定条件的停止测试(图中为简化而未示出)。
例如,上述步骤可以重复进行以形成伪随机数据序列,直到窗口19离开初始数据序列9。
图5是说明第二实现的一系列操作的执行的流程图。
该图中的流程与图4的不同之处仅在于步骤E24和E25。
实际上,在步骤E24中,第一法则相当于对特定值b和搜索模板7的值E进行模2相加,并将该加法运算的结果赋予输出模板25(s←bE)。
相反,在步骤E25,第二法则相当于对特定值b、搜索模板7的值E和值1进行模2相加,并且将该加法运算的结果赋予输出模板25(s←bE1)。
因此,该第二实现的一系列操作可以如下定义-将r1,1=“向右移动一个比特”设为所述第一组规则中仅有的规则;-将下列规则设为所述第二组规则中的规则-r2,1=“将来自窗口的比特f置于搜索模板中(E←f)”;-r2,2=“根据r1,1移动窗口一次”;-r2,3=“如果窗口内容与搜索模板7的比特E相等,则更新输出模板s←bE”;
-r2,4=”“如果窗口内容与搜索模板的比特E不相等,则更新输出模板s←bE1”;-r2,5=“如果窗口内容f不是搜索模板,则根据规则r1,1移动窗口”;-r2,6=“根据规则r1,1移动窗口一次”;-按这个顺序实施规则r2,1,r2,2,r2,3,r2,4,r2,5及r2,6;以及-输出所述输出模板s。
宽泛地说,该第二实现的一系列操作可以总结如下读取初始数据序列9中的当前比特E,接着在所述序列上向右移位直到找到比特E。如果为找到E而进行的移位仅移动了一个索引,则输出bE;否则输出bE1。然后在重新开始前向右移一个比特。
图6是说明第三实现的一系列操作的流程图。
在该第三实现中,两个窗口19在所述初始数据序列上移动。第一窗口最初固定于初始数据序列9的第一个比特上,而第二窗口最初固定于初始数据序列9的第二个比特上。在这种情形下,定义两个常量,即表示为b1的第一比特和表示为b2的第二比特。例如,常量b1和b2可以有相同的值0。
步骤E31将来自第一窗口的比特置于搜索模板7中。
步骤E32将第一窗口从当前比特向下一比特移动一个比特。
步骤E33是对第一窗口的内容与搜索模板7的内容进行比较的测试。
步骤E34更新输出模板25,该更新是这样实现的如果第一窗口的内容与搜索模板7的值E相等,则将对第一特定值b1和搜索模板的值E进行模2相加所得出的结果赋予该输出模板25(s←b1E)。
步骤E35更新输出模板25,该更新是这样实现的如果第一窗口的内容与搜索模板的值E不相等,则将对第一特定值b1、搜索模板的值E和值1进行模2相加所得出的结果赋予该输出模板25(s←b1E1)。
步骤E36和E37形成循环,即,如果第一窗口的内容与搜索模板7的比特不相等,则逐个比特地向下一比特移动第一窗口。
步骤E38将第一窗口从当前比特向下一比特移动一个比特。
步骤E39将来自第二窗口的比特置于搜索模板7中。
步骤40将第二窗口从当前比特向下一比特移动一个比特。
步骤E41是将第二窗口的内容与搜索模板7的内容进行比较的测试。
步骤E42更新输出模板25,该更新是这样实现的如果第二窗口的内容与搜索模板7的值相等,则将对第二特定值b2、输出模板25的当前值s和搜索模板7的值E进行模2相加所得出的结果赋予该输出模板25(s←sb2E)。
步骤E43更新输出模板25,该更新是这样实现的如果第二窗口的内容与搜索模板7的值不相等,则将对输出模板25的当前值s、第二特定值b2、搜索模板7的值E和值1进行模2相加所得出的结果赋予该输出模板25(s←sb2E1)。
步骤E44和E45形成循环,即,如果第二窗口的内容与搜索模板的比特不相等,则逐个比特地向下一比特移动第二窗口。
步骤E46将第二窗口从当前比特向下一比特移动一个比特。
最后,步骤E47将输出模板25从发生器1输出。
因此,所述第三实现的一系列操作可以如下定义-将r1,1=“向右移动一个比特”设为所述第一组规则中仅有的规则;-将下列规则设为所述第二组规则中的规则-r2,1=“将来自窗口的比特f1置于所述搜索模板中(E←f1)”;-r2,2=“根据r1,1将第一窗口移动一次”;-r2,3=“如果第一窗口的内容f1与所述搜索模板的比特E相等,则进行更新s←b1E”;-r2,4=“如果第一窗口的内容与所述搜索模板的比特E不相等,则更新输出模板s←b1E1”;-r2,5=“当第一窗口的内容与所述搜索模板的比特E不相等时,根据规则r1,1移动第一窗口”;-r2,6=“根据r1,1移动第一窗口一次”;-r2,7=“用来自第二窗口的比特f2替代所述搜索模板的值”;
-r2,8=“根据r1,1移动第二窗口一次”;-r2,9=“如果第二窗口的内容f2与所述搜索模板的比特E相等,则更新输出模板s←sb2E”;-r2,10=“如果第二窗口的内容f2与所述搜索模板的比特E不相等,则更新输出模板s←sb2E1”;-r2.11=“当第二窗口的内容f2与所述搜索模板的比特E不相等时,则根据r1,1移动第二窗口”;-r2,12=“根据r1,1移动第二窗口一次”;-以该顺序实施规则r2,1到r2,12;以及-输出所述输出模板s。
宽泛地说,该第三实现是逐个比特地添加输出,所述输出是通过并行执行以下操作而获得的首先,在第二实现中最初将第一窗口置于初始数据序列9的第一个比特上,其次,在第二实现中最初将第二窗口置于初始数据序列9的第二个比特上。
这些实现很容易执行。另外,举例来说,如果提供初始数据序列9的初始化装置11是线性反馈移位寄存器,则输出比特数目与计算出的比特数目之比平均为1/3。
因此,根据本发明的方法生成了高质量的伪随机比特序列,其可以用于对称流加密。
实际上,伪随机数据序列3中的每个比特都可以与要加密的消息45的数据序列中的相应比特通过模2相加而进行合并,以构成加密的数据序列47(见图2)。
权利要求
1.一种生成伪随机数据序列(3)的方法,其特征在于,所述伪随机数据序列(3)是通过用于在N个比特的初始数据序列(9)中对搜索模板(7)进行搜索的过程而被生成的。
2.如权利要求1所述的方法,其特征在于,所述搜索过程包括以下步骤-在所述初始数据序列(9)中检测(E1)r个比特的特定搜索模板(7),该搜索模板是一组搜索模板中的一个;-通过取决于在前步骤(E1)的进展的操作,来确定(E2)k个比特的输出模板(25);和-连续重复前述步骤(E1,E2),以从一系列输出模板(25)中形成所述伪随机数据序列(3)。
3.如权利要求2所述的方法,其特征在于,检测所述搜索模板(7)的所述步骤(E1)和确定所述输出模板(25)的所述步骤(E2),是通过包括第一组规则的一系列操作来实现的,其中所述第一组规则用于定义在所述初始数据序列(9)上移动窗口(19)的移动模式,从而检测所述搜索模板(7),所述窗口(19)在所述初始数据序列(9)上具有特定的初始位置并具有特定的比特长度。
4.如权利要求3所述的方法,其特征在于,所述一系列操作还包括第二组规则,该第二组规则确定在所述初始数据序列(9)上停止移动所述窗口(19)的条件。
5.如权利要求4所述的方法,其特征在于,所述第二组规则中的一条规则根据所述窗口的移动和/或内容,来管理对所述搜索模板组和/或所述输出模板的更新。
6.如权利要求3和4中任一个所述的方法,其特征在于,所述一系列操作重复进行,直到满足预定的条件为止。
7.如权利要求3和4中任一个所述的方法,其特征在于,所述一系列操作在每次执行之后被修改。
8.如权利要求3和4中任一个所述的方法,其特征在于,所述一系列操作在每次执行之后保持不变,并且在所述初始数据序列(9)上逐个比特地将窗口(19)连续移动1个比特,从而检测1比特的搜索模板(7)并确定1比特的输出模板(25)。
9.如权利要求8所述的方法,其特征在于,所述一系列操作包括以下步骤-将来自窗口的比特置于所述搜索模板中;-将所述窗口从当前比特向下一比特移动一个比特;-如果所述窗口内容与所述搜索模板内容相等,则根据第一法则更新所述输出模板;-如果所述窗口内容与所述搜索模板内容不相等,则根据第二法则更新所述输出模板;-如果所述窗口的内容与所述搜索模板的比特不相等,则逐个比特地向下一比特移动所述窗口;-将所述窗口从当前比特向下一比特移动一个比特;以及-输出所述输出模板。
10.如权利要求9所述的方法,其特征在于,所述第一法则将特定值b赋予所述输出模板,而所述第二法则对所述特定值b和值1进行模2相加并将该加法运算的结果赋予所述输出模板。
11.如权利要求9所述的方法,其特征在于,所述第一法则对特定值b和所述搜索模板的值E进行模2相加,并将该加法运算的结果赋予所述输出模板,而所述第二法则对所述特定值b、所述搜索模板的值E和值1进行模2相加,并将该加法运算的结果赋予所述输出模板。
12.如权利要求8所述的方法,其特征在于,所述一系列操作包括以下步骤-将来自第一窗口的比特置于所述搜索模板中;-将所述第一窗口从当前比特向下一比特移动一个比特;-更新所述输出模板,其中该更新是这样实现的如果所述第一窗口内容与所述搜索模板的值相等,则将第一特定值b1和所述搜索模板的值E进行模2相加所得出的结果赋予该输出模板;-更新所述输出模板,其中该更新是这样实现的如果所述第一窗口内容与所述搜索模板的值E不相等,则将对所述第一特定值b1、所述搜索模板的值E和值1进行模2相加所得出的结果赋予该输出模板;-如果所述第一窗口内容与所述搜索模板的比特E不相等,则逐个比特地向下一比特移动所述第一窗口;-将所述第一窗口从当前比特向下一比特移动一个比特;-用来自第二窗口的比特来替代所述搜索模板的值;-将所述第二窗口从当前比特向下一比特移动一个比特;-更新所述输出模板,其中该更新是这样实现的如果所述第二窗口内容与所述搜索模板的值相等,则将对第二特定值b2、所述输出模板的当前值s和所述搜索模板的值E进行模2相加所得出的结果赋予该输出模板;-更新所述输出模板,其中该更新是这样实现的如果所述第二窗口内容与所述搜索模板的值不相等,则将对所述输出模板的当前值s、所述第二特定值b2、所述搜索模板的值E和值1进行模2相加所得出的结果赋予该输出模板;-如果所述第二窗口内容与所述搜索模板的值不相等,则逐个比特地向下一比特移动所述第二窗口;-将所述第二窗口从当前比特向下一比特移动一个比特;以及-输出所述输出模板。
13.如权利要求1到12中任一个所述的方法,其特征在于,所述伪随机数据序列中的每个比特都与要加密的消息的数据序列中相应的比特通过模2相加进行合并,以形成加密的数据序列。
14.一种伪随机数据序列(3)的发生器,其特征在于,它包括搜索装置(5),用于在N个比特的初始数据序列(9)中对搜索模板(7)进行搜索。
15.如权利要求14所述的发生器,其特征在于,所述搜索装置(5)包括-检测装置(13),用于在所述初始数据序列(9)中检测r个比特的特定搜索模板,该特定搜索模板是一组搜索模板中的一个;-确定装置(15),用于根据取决于对至少一个搜索模板(7)进行检测的进展的操作来确定k个比特的输出模板(25);-重复装置(17),用于从一系列输出模板(25)中生成所述伪随机数据序列(3)。
16.如权利要求15所述的发生器,其特征在于,所述检测装置(13)包括可在所述初始数据序列(9)上移动的窗口(19),和用于控制所述窗口在所述初始数据序列上的移动的第一控制装置(21)。
17.如权利要求15所述的发生器,其特征在于,所述确定装置(15)包括第二控制装置(27),用于更新所述搜索模板组和/或所述输出模板。
18.如权利要求14到17中任一个所述的发生器,其特征在于,它还包括初始化装置(11),用于生成N个比特的初始数据序列。
19.如权利要求18所述的发生器,其特征在于,所述初始化装置(11)包括线性反馈移位寄存器。
20.一种编码设备(39),其包括异或逻辑门(43),其特征在于,该编码设备还包括如权利要求14到19中任一个所述的发生器(1)。
21.一种安全系统,其包括至少两个实体(33a,33b),其特征在于,所述至少两个实体(33a,33b)中每一个都包括如权利要求20所述的编码设备(39a,39b)。
全文摘要
本发明提供了一种伪随机数据序列的发生器(1),其包括搜索装置(5),用于在N个比特的初始数据序列(9)中对搜索模板(7)进行搜索。
文档编号G06F7/58GK101036115SQ200480044116
公开日2007年9月12日 申请日期2004年8月2日 优先权日2004年8月2日
发明者H·赛伯特, A·古热 申请人:法国电信公司, 卡昂大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1