CN101882969A - 一种线性递归序列的生成方法及系统 - Google Patents

一种线性递归序列的生成方法及系统 Download PDF

Info

Publication number
CN101882969A
CN101882969A CN2010102189823A CN201010218982A CN101882969A CN 101882969 A CN101882969 A CN 101882969A CN 2010102189823 A CN2010102189823 A CN 2010102189823A CN 201010218982 A CN201010218982 A CN 201010218982A CN 101882969 A CN101882969 A CN 101882969A
Authority
CN
China
Prior art keywords
register
sequence
state
state vector
parameter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010102189823A
Other languages
English (en)
Other versions
CN101882969B (zh
Inventor
朱宣勇
戚文峰
田甜
陈华瑾
郑群雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PLA Information Engineering University
Original Assignee
PLA Information Engineering University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by PLA Information Engineering University filed Critical PLA Information Engineering University
Priority to CN201010218982.3A priority Critical patent/CN101882969B/zh
Publication of CN101882969A publication Critical patent/CN101882969A/zh
Application granted granted Critical
Publication of CN101882969B publication Critical patent/CN101882969B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明涉及一种线性递归序列的生成方法及系统,该方法包括:选取参数e和n,e和n均为≥2的正整数,其中,参数e用于确定寄存器中的元素的取值空间,n为寄存器的总长度;确定寄存器中反馈位置的个数k,2≤k≤n;根据所述反馈位置的个数k,确定反馈位置集合{i1,i2,...,ik-1,ik},其中,ik=n-1,0≤i1<i2<…<ik-1≤n-2;选取寄存器的状态转移矩阵;选取寄存器非退化的初始状态向量;根据状态转移矩阵对所述初始状态向量进行递归计算,得到寄存器的状态向量序列S=(S0,S1,...)=(St)t≥0=((s0,t,s1,t,...,sn-1,t))t≥0

Description

一种线性递归序列的生成方法及系统
技术领域
本发明涉及信息安全技术领域,特别涉及一种基于快速实现的环Z/(2e-1)上具有复杂特征多项式的线性递归序列的生成方法及系统。
背景技术
序列密码是密码学的重要分支之一,它在军事、外交、政府以及商业的通信安全领域发挥着极为重要的作用。序列密码设计的核心是如何快速生成安全的密钥流。
2000年以前,序列密码设计的主要思想是线性序列源结合非线性改造,例如:非线性组合、非线性过滤和钟控等。2000年以后,欧洲的NESSIE计划和eSTREAM计划对序列密码的发展起到了积极的推动作用。尤其在eSTREAM计划的带动下,序列密码的整体设计思想有了重大突破,各类型非线性序列源取代线性序列源占据主导地位。目前,对于序列密码设计,业界通常认为:一个好的密码体制应采用具有丰富非线性结构的序列源。
由于进位运算,整数环Z模2e-1的剩余类环Z/(2e-1)(下述简称环Z/(2e-1),其中e为大于1的整数)上的线性递归序列是一类天然蕴含丰富非线性结构的序列源。环Z/(2e-1)上的任意元素a都有唯一的2-adic表示,即a=a0+a1·2+…+ae-1·2e-1,其中ai∈{0,1},0≤i≤e-1。进一步,环Z/(2e-1)上线性递归序列a可自然导出e条比特序列a 0a 1,...,a e-1,其中aa 0+a 1·2+…+a e-1·2e-1。因为每一比特序列都是由其它比特序列和递归运算过程中产生的复杂进位序列复合而成,从而天然蕴含丰富的非线性结构。环Z/(2e-1)上的本原序列,即极大周期的线性递归序列,具备诸多好的伪随机性质,例如保熵性,丰富的非线性结构和几乎平衡的元素分布等,是一类伪随机性质优良的非线性序列源。
环Z/(2e-1)上线性递归序列的传统生成方式是基于单点反馈模式,即每加载一拍时钟周期,只反馈计算一个新元素。请参阅图1,为现有技术中基于单点反馈模式的n级移位寄存器的框图;在该图1中,Sn-1,Sn-2,...,S1,S0是n个寄存器单元,每个寄存器单元可存储Z/(2e-1)上的一个元素,特征多项式f(x)用于反馈计算寄存器单元Sn-1在下一时刻的值。设
f(x)=xn-(cn-1·xn-1+...+c1·x+c0)
其中ci∈Z/(2e-1),0≤i≤n-1,n个寄存器单元Sn-1,Sn-2,...,S1,S0在第0时刻的值分别为an-1,an-2,...,a1,a0,即移位寄存器的初始状态为(an-1,an-2,...,a1,a0),则反馈计算的下一拍新元素
an≡cn-1·an-1+...+c1·a1+c0·a0(mod 2e-1),
下一时刻寄存器的状态为(an,an-1,...,a2,a1),输出端口输出a0。一般地,设第t时刻的状态为(an-1+t,an-2+t,...,a1+t,at),则反馈计算的下一拍新元素:
an+t≡cn-1·an-1+t+...+c1·a1+t+c0·at(mod 2e-1),
下一时刻寄存器的状态为(an+t,an-1+t,...,a2+t,a1+t),输出端口输出at;按时钟的先后顺序输出端口输出一条序列a,即a=(a0,a1,a2,...),a称为Z/(2e-1)上由f(x)=xn-(cn-1·xn-1+...+c1·x+c0)生成的线性递归序列,f(x)称为序列a的特征多项式。
设u∈Z/(2e-1),u不但有前述的2-adic表示,还可以表示为
u=u0+u1·2+...+ue-1·2e-1,u0,u1,...,ue-1∈{0,1,-1},
称集合{u0,u1,...,ue-1}为元素u的三元表示,该集合中非零元的个数称为其对应的三元表示的重量。称元素u重量最小的三元表示为u的最小三元表示,其重量称为u的最小三元重量,记为w3(u)。对于Z/(2e-1)上n次多项式
f(x)=xn-(cn-1·xn-1+...+c1·x+c0),
记其最小三元重量为w3(f(x))=w3(c0)+w3(c1)+…+w3(cn-1)。特征多项式的最小三元重量是衡量特征多项式生成序列的复杂度与输出速度的有效度量。主要从下述两方面来衡量:
(1)最小三元重量与复杂度的关系
设Z/(2e-1)上的序列a=(at)t≥0
f(x)=xn-(cn-1·xn-1+...+c1·x+c0)
为特征多项式,即有
an+t≡cn-1·an-1+t+...+c1·a1+t+c0·at(mod 2e-1),t≥0,
其中c0,c1,...,cn-1∈Z/(2e-1)。显然,f(x)的最小三元重量越大,则at+n与at+n-1,at+n-2,...,at的代数关系就越复杂,并且由a导出的e条比特序列a 0a 1,...,a e-1的非线性结构也越复杂。
(2)最小三元重量与速度的关系
由于Z/(2e-1)上乘法运算的低效性,在软件实现中,Z/(2e-1)上的乘法运算是利用循环移位和模2e-1的加法运算来实现的。
设u∈Z/(2e-1),其2-adic表示为u=u0+u1·2+…+ue-1·2e-1,其中u0,u1,...,ue-1∈{0,1},用“<<<”表示e比特左循环移位运算,即对于非负整数k有
(u<<<k)=un-k+un-k+1·2+...+u0·2k+...+un-k-1·2e-1
从而
u·2k(mod 2w-1)=u<<<k.
表示对a逐比特取反运算,即
a ‾ = ( 1 - a 0 ) + ( 1 - a 1 ) · 2 + . . . + ( 1 - a e - 1 ) · 2 e - 1 ,
从而
- a ( mod 2 e - 1 ) = a ‾
设u∈Z/(2e-1),u的最小三元表示为{u0,u1,...,ue-1},记{u0,u1,...,ue-1}中等于1的元素集合为等于-1的元素集合为
Figure BSA00000175854200035
其中r+s=w3(u),则u与v在Z/(2e-1)中的乘积u·v按照以下方式实现:
( v < < < i 1 ) + . . . + ( v < < < i r ) + ( v &OverBar; < < < j 1 ) + . . . + ( v &OverBar; < < < j s ) ,
由此可见,u·v至少需要w3(u)-1次Z/(2e-1)上的加法运算和w3(u)-1次循环移位运算。
对于单点反馈方式来说,给定序列a的初态(an-1,an-2,...,a0),序列a按如下方式递归生成:
an+t≡cn-1·an-1+t+...+c1·a1+t+c0·at(mod 2e-1),t≥0,
其中f(x)=xn-(cn-1·xn-1+...+c1·x+c0)是a的特征多项式,所以若f(x)的最小三元重量为w,则每一次计算反馈元素at+n至少需要w-1次Z/(2e-1)上的加法运算和若干次循环移位运算。因此,序列特征多项式的最小三元重量越大,单点反馈方式的效率越低。
由上述两点分析可知,环Z/(2e-1)上基于单点反馈模式的线性递归序列生成方式势必导致输出序列的复杂度与序列的输出效率处于强烈的矛盾中,无法同时兼顾序列的复杂度和序列的输出效率。当序列特征多项式的最小三元重量稍大时,这种生成方式的效率将非常低,导致序列的输出速度远远不能满足序列密码设计的要求。
发明内容
本发明提供一种线性递归序列的生成方法及系统,以实现快速生成Z/(2e-1)上具有复杂特征多项式的线性递归序列,并提高线性递归序列的输出效率。
为解决上述技术问题,本发明提供一种线性递归序列的生成方法,基于环Z/(2e-1)上具有复杂特征多项式的线性递归序列的生成,所述方法包括:
选取参数e和n,e和n均为大于或等于2的正整数,其中,e用于确定寄存器中元素的取值空间,n为寄存器的总长度;
确定寄存器中反馈位置的个数k;其中,2≤k≤n;
根据所述反馈位置的个数k,确定反馈位置集合{i1,i2,...,ik-1,ik},其中,ik=n-1,0≤i1<i2<…<ik-1≤n-2;
根据所述反馈位置集合{i1,i2,...,ik-1,ik}选取寄存器的状态转移矩阵;
选取寄存器非退化的初始状态向量S0=(s0,0,s1,0,...,sn-1,0),其中,si,0∈Z/(2e-1),i=0,1,...,n-1;
根据所述状态转移矩阵对所述初始状态向量S0=(s0,0,s1,0,...,sn-1,0)进行递归计算,得到寄存器的状态向量序列S=(S0,S1,...)=(St)t≥0=((s0,t,s1,t,...,sn-1,t))t≥0
相应的,本发明还提供一种线性递归序列的生成系统,基于环Z/(2e-1)上具有复杂特征多项式的线性递归序列的生成,所述系统包括:
参数选择单元,用于选取参数e和n,e和n均为大于或等于2的正整数,其中,e用于确定寄存器中元素的取值空间,n为寄存器的总长度;
位置个数确定单元,用于确定寄存器中反馈位置的个数k;其中,2≤k≤n;
反馈位置集合确定单元,用于根据所述反馈位置的个数k,确定反馈位置集合{i1,i2,...,ik-1,ik},其中,ik=n-1,0≤i1<i2<…<ik-1≤n-2;
状态转移矩阵选取单元,用于根据所述反馈位置集合{i1,i2,...,ik-1,ik}选取寄存器的状态转移矩阵;
非退化初始状态向量选取单元,选取寄存器非退化的初始状态向量S0=(s0,0,s1,0,...,sn-1,0),其中,si,0∈Z/(2e-1),i=0,1,...,n-1;
状态向量序列生成单元,用于根据所述状态转移矩阵对所述初始状态向量S0=(s0,0,s1,0,...,sn-1,0)进行递归计算,得到寄存器的状态向量序列S=(S0,S1,...)=(St)t≥0=((s0,t,s1,t,...,sn-1,t))t≥0
由上述技术方案可知,本发明将传统的单点反馈模式拓展为多点反馈模式,增加反馈元素的个数;并通过选取合适的状态转移矩阵,加速寄存器元素之间的混乱和扩散,以实现在有限的计算资源下获得具有复杂特征多项式的序列。由于本发明提供的基于状态转移的多点反馈实现方式的序列输出速度不是由序列特征多项式的复杂度直接决定,因此,本发明所述技术方案可以兼顾序列的输出效率和序列的复杂度,从而提高了线性递归序列的输出效率。
附图说明
图1为现有技术中基于单点反馈模式的n级移位寄存器的框图;
图2为本发明提供的一种线性递归序列的生成方法的流程图;
图3为本发明中环Z/(2e-1)上n级k点反馈方式第t时刻寄存器状态示意图;
图4为本发明中参数
Figure BSA00000175854200051
元素列表示意图;
图5为本发明中环Z/(232-1)上8级寄存器的示意图;
图6为本发明中将环Z/(232-1)上8级的移位寄存器分成两部分的示意图;
图7为本发明中环Z/(232-1)上8级两点反馈方式生成序列的设计示意图;
图8为本发明中环Z/(232-1)上8级四点反馈方式生成序列的设计示意图;
图9为本发明提供的一种线性递归序列生成系统结构示意图。
具体实施方式
为了便于本领域技术人员的理解,在说明本发明具体实例之前,先介绍本发明涉及的名词术语及概念:
代数中环的概念:“环”是代数学中的一个基本概念,“环”可以一般地理解为是一个集合,在这个集合上定义了两种具有某些性质的运算。
整数环Z:Z表示所有整数构成的集合,在整数的加法和乘法运算下构成一个环,称为整数环。
数论中同余的概念:设a,b是整数,n是正整数,符号“a≡b(mod n)”表示a-b被n整除,即a-b是n的倍数,也即存在整数k,使得a-b=k·n。
对于任意的整数a,在集合{0,1,2,...,n-1}中,必然存在唯一的元素b,使得
a≡b(mod n),
称b为a模n的最小非负剩余,由于集合{0,1,2,...,n-1}在模n的加法和乘法(即先进行整数的加法/乘法运算,然后将运算值模n,使得计算结果在集合{0,1,2,...,n-1},例如:11+22≡3(mod 15),1-5≡11(mod 15),4·5≡5(mod 15))下构成环,因此,称集合{0,1,2,...,n-1}以及模n的加法运算和乘法运算构成整数环Z模n的剩余类环(有时也简称模n的剩余类环/剩余类环),并记为Z/(n),称{0,1,2,...,n-1}为Z/(n)的一个代表元集。
同理,{1,2,...,n}也可看作Z/(n)的一个代表元集,即,以上关于{0,1,...,n-1}的讨论完全适用于{1,2,...,n}。
在本发明中,为了达到快速实现模2e-1的运算,建议选{1,2,...,2e-1}为Z/(2e-1)的代表元集。
环Z/(2e-1)上移位寄存器:还以图1为例,图1为环Z/(2e-1)上n级移位寄存器框图。在图1中,Sn-1,Sn-2,...,S1,S0是n个寄存器单元,每个寄存器单元可存储Z/(2e-1)上的一个元素,特征多项式f(x)用于反馈计算寄存器单元Sn-1在下一时刻的值。设
f(x)=xn-(cn-1·xn-1+...+c1·x+c0)
其中,ci∈Z/(2e-1),0≤i≤n-1,n个寄存器单元Sn-1,Sn-2,...,S1,S0在第0时刻的取值分别为an-1,an-2,...,a1,a0,即移位寄存器的初始状态为(an-1,an-2,...,a1,a0),则反馈计算的下一拍新元素
an≡cn-1·an-1+...+c1·a1+c0·a0(mod 2e-1),
下一时刻寄存器的状态为(an,an-1,...,a2,a1),输出端口输出a0。一般地,设第t时刻的状态为(an-1+t,an-2+t,...,a1+t,at),则反馈计算的下一拍新元素
an+t≡cn-1·an-1+t+...+c1·a1+t+c0·at(mod 2e-1),
下一时刻寄存器的状态为(an+t,an-1+t,...,a2+t,a1+t),输出端口输出at.输出端口按时钟的先后顺序输出一条序列a,即a=(a0,a1,a2,...),a称为Z/(2e-1)上由f(x)=xn-(cn-1·xn-1+...+c1·x+c0)生成的线性递归序列,f(x)称为序列a的特征多项式。
环Z/(2e-1)上序列的2-adic分解:设a∈Z/(2e-1),则a有如下的2-adic(二进制)分解,
a=a0+a1·2+...+ae-1·2e-1
其中ai的取值为0或1,设a=(a(t))t≥0是环Z/(2e-1)上的序列,将序列a的每个元素进行2-adic分解,如
a(0)=a0(0)+a1(0)·2+...+ae-1(0)·2e-1
a(1)=a0(1)+a1(1)·2+...+ae-1(1)·2e-1
a(2)=a0(2)+a1(2)·2+...+ae-1(2)·2e-1
......
a i=(ai(t))t≥0,0≤i≤e-1,则a i是一条取值为0或1的序列(即比特序列)。因此,环Z/(2e-1)上的任一条序列均可自然导出e条比特序列。
下面我们将结合附图,对本发明的实施方案进行详细描述。需要说明的是,下述寄存器和移位寄存器不是同一实体,因为反馈位置是移位断点。
请参阅图2,为本发明提供一种线性递归序列的生成方法的流程图,该方法可生成基于环Z/(2e-1)上具有复杂特征多项式的线性递归序列,所述方法包括:
步骤201:选取参数e和n,e和n均为大于或等于2的正整数,其中,e用于确定寄存器中元素的取值空间,n用于确定寄存器的总长度;
步骤202:确定寄存器中反馈位置的个数k,2≤k≤n,具体包括:将n级寄存器分成k部分,形成k个位置反馈点,k个寄存器的长度之和等于n。
步骤203:根据所述反馈位置的个数k,确定反馈位置集合{i1,i2,...,ik-1,ik},其中,ik=n-1,0≤i1<i2<…<ik-1≤n-2;
步骤204:根据所述反馈位置集合{i1,i2,...,ik-1,ik}选取寄存器的状态转移矩阵;
步骤205:选取寄存器非退化的初始状态向量S0=(s0,0,s1,0,...,sn-1,0),即对于2e-1的每个素因子p,至少有一个si,0与p互素,其中Si,0∈Z/(2e-1),i=0,1,...,n-1;
步骤206:对所述初始状态向量S0=(s0,0,s1,0,...,sn-1,0)进行递归计算,得到寄存器的状态向量序列S=(S0,S1,...)=(St)t≥0=((s0,t,s1,t,...,sn-1,t))t≥0
优选的,所述选取参数e包括:按照计算机平台的整数运算的字长来选取参数e;所述选取参数n包括:使e·n的取值等于安全强度参数或者等于安全强度参数的倍数。
优选的,若当前主流计算机的字长为32比特,选取参数e=32,则依据当前安全强度,选取参数n=8,12或16。
优选的,为了保证序列的生成效率,所述反馈位置个数k可以选取{2,3,4},以保证序列的生成效率。
优选的,根据所述反馈位置集合{i1,i2,...,ik-1,ik}确定k个移位寄存器的级数,分别为i1+1,i2-i1,...,n-1-ik-1,使得所述i1+1,i2-i1,...,n-1-ik-1,级数尽量相同。
优选的,在确定该寄存器的状态转移矩阵时,矩阵中出现的非0元素尽量选取形如(a1+...+as)·(b1+...+bt)和
Figure BSA00000175854200091
的整数。
该实施方式提供一种可快速实现环Z/(2e-1)上具有复杂特征多项式的线性递归序列的生成方法。也即是提供一种基于状态转移的多点反馈实现方式,其主要包括:a、将传统的单点反馈模式拓展为多点反馈模式,增加反馈元素的个数;b、通过选取合适的状态转移矩阵,加速寄存器元素之间的混乱和扩散,以期望在有限的计算资源下获得具有复杂特征多项式的序列。
本发明提供的基于状态转移的多点反馈实现方式,由于增加了反馈元素个数,加速了移位寄存器元素之间的混乱和扩散,可以快速实现具有复杂特征多项式的序列。其中,基于状态转移的多点反馈实现方式将单点反馈方式用于计算一个反馈元素所需的计算资源平均分配到多个反馈元素的计算上,在同样的计算资源前提下,序列特征多项式的复杂度远高于单点反馈方式所产生序列的特征多项式。本发明提供的基于状态转移的多点反馈实现方式的序列输出速度不是由序列特征多项式的复杂度直接决定,因此,本发明所述技术方案可以兼顾序列的输出效率和序列的复杂度。
为了便于本领域技术人员的理解,下面具体来说明。
本发明提供线性递归序列的生成方法为“Z/(2e-1)上本原序列多点反馈生成方式”,具体生成方法包括:
1)选取参数e和n,参数e和n都是大于或等于2的正整数。其中,参数e确定了寄存器中的元素的取值空间,寄存器中的元素取自环Z/(2e-1),并且其上的运算都是在模2e-1上的;参数e的选择是按照计算平台的整数运算的字长来设定的。例如,当前主流计算机的字长为32比特,选取参数e=32,这样可以充分利用32比特整数运算的特性,快速实现模232-1运算。另外,对于专用硬件平台,字长可以根据需求设定。参数n表示寄存器的总长度,即一个状态包含元素的个数。
2)选取合适的反馈位置个数k,其中2≤k≤n。通常情况下,反馈位置越多,该寄存器生成的序列的复杂度越高。这是因为,反馈位置的新元素并不是相邻元素经过简单的移位得到,而需要经过比较复杂的运算(由抽头位置和特征多项式决定)得到。但是,反馈位置越多,计算量越大,从而影响序列的生成效率。因此,在具体实施过程中,对反馈位置个数要折中考虑。
3)根据所述反馈位置个数k选取合适的反馈位置集合{i1,i2,...,ik-1,ik},其中ik=n-1,0≤i1<i2<…<ik-1≤n-2。
如2)中所述,假设选取反馈位置个数为k,进一步,设这k个反馈位置为i1,i2,...,ik-1,ik,其中ik=n-1,0≤i1<i2<…<ik-1≤n-2,那么它们就构成了反馈位置集合{i1,i2,...,ik-1,ik}。
4)根据所述反馈位置集合{i1,i2,...,ik-1,ik}选取寄存器的状态转移矩阵M:
M = [ m i , j ] n &times; n = m 0,0 m 0,1 . . . m 0 , n - 1 m 1,0 m 1,1 . . . m 1 , n - 1 . . . . . . . . . . . . m n - 1,0 m n - 1,1 . . . m n - 1 , n - 1 n &times; n = &alpha; 0 &alpha; 1 . . . &alpha; n - 1 n &times; n
其中mi,j∈Z/(2e-1),0≤i,j≤n-1,α0,α1,...,αn-1为M的n个行向量(即αj=(mj,0,mj,1,...,mj,n-1),j=0,1,...,n-1),如3)中所述,假设反馈位置集合为{i1,i2,...,ik-1,ik},则M的行向量满足以下两个性质:
(a)若
Figure BSA00000175854200102
(b)行向量
Figure BSA00000175854200104
的元素选自Z/(2e-1),满足使得M的特征多项式fM(x)=|xE-M|是Z/(2e-1)的n次本原多项式(即对于整数2e-1的任意大于1的素数方幂因子pw,f(x)(mod pw)的最小正周期为T=pw-1·(pn-1),或者说,整数T是使得xT≡1(modf(x),pw)成立的最小正整数),其中E是n级单位矩阵,|xE-M|是n阶方阵xE-M的行列式。M的特征多项式是每个移位寄存器所产生序列的特征多项式,它可以决定序列的周期、线性复杂度等诸多重要性质。
5)根据所述状态转移矩阵选取非退化的初始状态向量S0=(s0,0,s1,0,...,sn-1,0),即对于2e-1的每个素因子p,至少有一个si,0与p互素,其中si,0∈Z/(2e-1),i=0,1,...,n-1。
6)对所述初始状态向量S0=(s0,0,s1,0,...,sn-1,0)进行递归计算,得到寄存器的状态向量序列S=(S0,S1,...)=(St)t≥0=((s0,t,s1,t,...,sn-1,t))t≥0,其中,可以按照下述递归方式生成该状态向量序列:
首先,给定初始状态S0=(s0,0,s1,0,...,sn-1,0),即第i个寄存器存储si,0,0≤i≤n-1;
然后,由S0计算S1=(s0,1,s1,1,...,sn-1,1);
S 0,1 S 1,1 . . . S n - 1 , 1 = m 0,0 S 0,0 + m 0,1 S 1,0 + . . . + m 0 , n - 1 S n - 1,0 m 1,0 S 0,0 + m 1,1 S 1,0 + . . . + m 1 , n - 1 S n - 1,0 . . . m n - 1,0 S 0,0 + m n - 1,1 S 1,0 + . . . + m n - 1 , n - 1 S n - 1,0 ,
其中,加法和乘法运算都是环Z/(2e-1)上运算。同理,再由S1求S2,S2求S3,如此递归下去:
S 0 , k + 1 S 1 , k + 1 . . . S n - 1 , k + 1 = m 0,0 S 0 , k + m 0,1 S 1 , k + . . . + m 0 , n - 1 S n - 1 , k m 1,0 S 0 , k + m 1,1 S 1 , k + . . . + m 1 , n - 1 S n - 1 , k . . . m n - 1,0 S 0 , k + m n - 1,1 S 1 , k + . . . + m n - 1 , n - 1 S n - 1 , k , k=1,2,...
Sk+1=M·Sk,k=0,1,2,...
序列a j=(sj,0,sj,1,sj,2,...)=(sj,t)t≥0为Z/(2e-1)上以fM(x)为特征多项式的本原序列,j=0,1,...,n-1。所有以fM(x)为特征多项式的本原序列之集记为G′(fM(x),2e-1),其中序列都能以M为状态转移矩阵来产生。
由上述方法得到的Z/(2e-1)上本原序列集G′(fM(x),2e-1)可以用作流密码的序列源。
下面对环Z/(2e-1)上线性递归序列多点反馈生成方式做几点补充说明:
在上述生成方法中,对于参数e和n的选取
1)参数e的选择,通常按照计算平台的整数运算的字长设定。例如,当前主流计算机的字长为32比特,选取参数e=32,可以充分利用32比特整数运算的特性,快速实现模232-1运算。另外,对于专用硬件平台,字长可以根据需求设定。此时可以选择参数e=29,它可以避免出现同一条序列不同权位的平移等价情况。
参数n的选择,通常使得e·n的取值等于安全强度参数或者等于安全强度参数的2倍左右。若e·n的取值等于安全强度参数,则需要同时使用两个不同的这样参数的序列源。
当前主流计算机的字长为32比特,选取参数e=32。依据当前安全强度,选取参数n=8,12或16。但并不限于此。
2)模2e-1的代表元集选取
通常情况下建议取模2e-1的代表元集合为{1,2,...,2e-1},但并不限于此。
采用该代表元集,可以快速实现Z/(2e-1)上元素的模运算。模运算结果只要落入e比特表示的范围内,模运算就结束了。若采用常用的代表元集合{0,1,...,2e-2},模运算结果落入e比特表示的范围内;之后还需要判断结果是否是2e-1,若是,需要将其置0,增加了额外的运算开销;也就是说,每次加法运算,使用{0,1,...,2e-2}比使用{1,2,...,2e-1}多1~2个步骤,即判断某元素是否等于2e-1,如果是,将寄存器中元素重新设为零。因此,不论是硬件还是软件,使用代表元集{1,2,...,2e-2}实现效率应该更高。
3)状态转移矩阵M的选取
3.1)反馈位置个数k(简称为参数k)的选取
通常情况下,建议参数k在{2,3,4}中选取。
参数k是反馈位置的数量,即所有寄存器状态更新一次,通过一系列环Z/(2e-1)上运算产生新元素的个数。一方面,每产生一个新元素至少需要1次乘法运算或取反运算或加法运算,因此,反馈位置的数量与寄存器状态更新的计算复杂度紧密相关,如果反馈位置个数太多不利于序列的快速生成,因此,要适当选择反馈位置的个数。
3.2)反馈位置集合{i1,i2,...,ik-1}的选取(简称反馈位置参数{i1,i2,...,ik-1}):
通常情况下,建议选取反馈位置参数{i1,i2,...,ik-1}使得i1+1,i2-i1,...,n-1-ik-1尽量相同。
根据反馈位置参数{i1,i2,...,ik-1,ik},序列源的以e比特字为单位且长为n的状态寄存器可以看做被分割为k个长度分别为i1+1,i2-i1,...,n-1-ik-1的移位寄存器,如图3所示,为本发明中环Z/(2e-1)上n级k点反馈方式第t时刻寄存器状态示意图。图3中,1标号表示长为i1+1的移位寄存器在第t时刻的状态;标号2表示长为i2-i1的移位寄存器在第t时刻的状态;标号3表示长为n-1-ik-1的移位寄存器在第t时刻的状态;标号4表示移位寄存器元素移动方向;标号5表示反馈位置i1;标号6表示反馈位置i2;标号7表示反馈位置n-1;也即反馈位置ik
图3中,若i1,i2,...,ik-1,n-1之间的间隔相同,则序列源实现结构具有对称性,k条序列a j=(sj,t)t≥0,j∈{0,i1+1,...,ik-1+1}具有相似的密码性质和代数性质,有利于密码应用。
3.3)参数的非零分量位置的选取,其中j=1,2,...,k.
因为行向量的非零分量位置分别是所示k个反馈位置i1,i2,...,ik-1,ik在全体n个寄存器上所选择的反馈抽头,也即n个寄存器上参与反馈运算的元素,所以,为了使每一个寄存器中的元素都至少参与到一个反馈计算中,在如图4所示的每一列元素中至少有1个为非零元;为了尽量避免某一个寄存器中的元素参与多个反馈元素的计算,通常情况如图4所示的每一列非零元不要太多,尽量不要多于两个非零元,其中,图4为本发明中参数
Figure BSA00000175854200133
元素列表示意图。
3.4)参数
Figure BSA00000175854200134
的非零分量值的选取,其中j=1,2,...,k.行向量
Figure BSA00000175854200135
Figure BSA00000175854200136
非零分量的取值要兼顾序列输出速度和序列特征多项式的复杂度。行向量
Figure BSA00000175854200137
非零分量的取值按照以下原则确定:
(1)为了尽可能地提高序列源的状态更新速度,应选用Z/(2e-1)中具有低三元重量的整数;
(2)为了使反馈运算达到较好的混乱效果,非零分量的最小三元表示中所有2的方幂尽量两两不同,方幂之间的间隔尽量不同;
(3)为了使序列的复杂度足够大,尽可能地提高矩阵M特征多项式fM(x)的最小三元重量w3(fM(x));
(4)为了以足够小的代价尽可能大地提高矩阵M特征多项式fM(x)的三元重量,可以利用乘法的分配率,即
a·(b1+…+bk)≡a·b1+…+a·bk(mod 2e-1),
其中a,b1,...,bk∈Z/(2e-1),因此,如图4所示的每一行中的多个非零元具有公因子并且公因子的三元重量低,但每一行所有非零元公因子应仍为1。例如,若第一行有且仅有三个非零元A,B,C∈Z/(2e-1),可以取A=(1+22)(1+216),B=(1+216),C=225,则gcd(A,B)=1+216,gcd(A,B,C)=1。
(5)矩阵M的特征多项式fM(x)为Z/(2e-1)上的n次本原多项式。
3.4)序列不退化设定
设M是Z/(2e-1)上n×n的矩阵并且M的特征多项式fM(x)是Z/(2e-1)上的本原多项式,以M为状态转移矩阵、以S0=(s0,0,s1,0,...,sn-1,0)为初始状态产生的n条序列aj=(st,j)t≥0,j=0,1,...,n-1,是本原序列的充要条件为:对于2e-1的每个素因子p,至少有一个si,0与p互素,0≤i≤n-1。在实际的使用过程中,可以设定初态S0某个分量位置为一个与2e-1互素的常数。
本发明中,由于进位运算,环Z/(2e-1)上线性递归序列蕴含丰富非线性结构,因而是用于序列密码算法设计的较理想的序列源。
本发明所述技术方案中,实现了将传统的单点反馈模式拓展为多点反馈模式,从而有效地解决在生成环Z/(2e-1)上线性递归序列时所面临的速度问题与复杂度问题这对矛盾。
下面以两个具体实例为例来说明本发明提供的一种环Z/(2e-1)上线性递归序列多点反馈生成方式。
实例1
步骤1:根据参数e和n的选取原则,选取e=32,n=8;
具体地,如图5所示,图5为本发明中环Z/(232-1)上8级寄存器的示意图,在该图中,8个寄存器单元由右至左依次编号为0,1,...,7,每个寄存器可存储Z/(232-1)中的一个元素。
步骤2:根据反馈位置个数和反馈位置的选取原则,选取k=2及反馈位置集合为{3,7};
具体地,如图6所示,图6为本发明中将环Z/(232-1)上8级的移位寄存器分成两部分的示意图,在该图中,是将图5所示8级寄存器分为两个4级的移位寄存器,第I个移位寄存器的寄存器单元编号从右至左依次为0,1,2,3,第II个移位寄存器的寄存器单元编号从右至左依次为4,5,6,7,两个移位寄存器的移动方向为从左至右,每个移位寄存器的最左端单元为相应的反馈位置单元,从而反馈位置集合为{3,7}。
步骤3:根据矩阵M行向量非零分量的位置确定原则和取值原则,确定状态转移矩阵M,具体包括:
步骤3.1:选取α3和α7的非零元位置以及非零元因子基本形式如下:
M = &alpha; 0 &alpha; 1 &alpha; 2 &alpha; 3 &alpha; 4 &alpha; 5 &alpha; 6 &alpha; 7 = 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 B 2 A 3 B 0 0 B 2 B 2 B 3 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 C 0 C 1 0 C 1 C 3 0 0 0 0 ,
其中A3,B0,B2,B3,C0,C1,C3为待定的Z/(2e-1)中的非零元。此时,M的特征多项式可以表达成
fM(x)=x8-[B2·A3·x7+B2·B3·C1·C3·x6+B2·C1·C3·x5+B2·B3·C1·x4
+(B2·B3·C0+B2·C1+B0·C1·C3)·x3+B2·C0·x2+B0·C1·x+B0·C0].
步骤3.2:根据3.4)所述非零元素的选取原则,取
A 3 = 2 i 1 ,
B 0 = 2 i 2 ,
B 2 = ( 1 + 2 i 3 ) &CenterDot; ( 1 + 2 i 4 ) ,
B 3 = 2 i 5 ,
C 0 = 1 + 2 i 6 + 2 i 7 ,
C 1 = ( 1 + 2 i 8 ) &CenterDot; ( 1 + 2 i 9 ) ,
C 3 = 2 i 10 .
经计算机部分搜索,当i1=26,i2=0,i3=8,i4=14,i5=5,i6=2,i7=13,i8=5,i9=16,i10=25时,矩阵M的特征多项式为
fM(x)=x8-[67174660·x7+1515870810·x6+3537031890·x5
+757935405·x4+3616951562·x3+157377805·x2
+2162721·x+8197],
fM(x)为Z/(232-1)上的8次本原多项式,其最小三元重量为84。
步骤4:选取非退化的初始状态向量S0=(s0,0,s1,0,s2,0,s3,0,s4,0,s5,0,s6,0,s7,0),例如S0=(1,0,0,0,1,0,0,0),(1,0,0,0,0,0,0,0),(0,0,0,0,1,0,0,0)等等。
步骤5:根据所述状态转移矩阵,对所述初始状态进行状态更新,得到寄存器的状态向量序列S=(S0,S1,...)=(St)t≥0=((s0,t,s1,t,...,sn-1,t))t≥0.
具体地,如图7所示,图7为本发明中环Z/(232-1)上8级两点反馈方式生成序列的设计示意图。整个寄存器状态的更新方式为:设当前时刻(第t时刻)寄存器的状态为(s7,t,...,s1,t,s0,t),下一时刻(第t+1时刻)的状态为(s7,t+1,...,s1,t+1,s0,t+1),则:
s0,t+1=s1,t
s1,t+1=s2,t
s2,t+1=s3,t
s3,t+1=s4,t+(1+28)(1+214)[226s3,t+s6,t+25s7,t];
s4,t+1=s5,t
s5,t+1=s6,t
s6,t+1=s7,t
s7,t+1=(1+25+213)s0,t+(1+25)(1+216)[s1,t+225s3,t].
例如若初始状态为S0=(1,0,0,0,1,0,0,0),则
s0,1=s1,0=0;
s1,1=s2,0=0;
s2,1=s3,0=0;
s3,1=s4,0+(1+28)(1+214)[226s3,0+s6,0+25s7,0]=1;
s4,1=s5,0=0;
s5,1=s6,0=0;
s6,1=s7,0=0;
s7,1=(1+25+213)s0,0+(1+25)(1+216)[s1,0+225s3,0]=1+25+213,故S1=(0,0,0,1,0,0,0,8225).
按时钟的先后顺序每个寄存器序列s i=(si,0,si,1,...)=(si,t)t≥0均是以状态转移矩阵M的特征多项式fM(x)为特征多项式的本原序列,其中0≤i≤7.例如,当初始状态为S0=(1,0,0,0,1,0,0,0)时,移位寄存器1编号为0的寄存器单元输出序列为
a=(s0,t)t≥0=(1,0,0,0,1,...),
移位寄存器2编号为4的寄存器单元输出序列为
b=(s4,t)t≥0=(1,0,0,0,8225,...),
序列ab均以状态转移矩阵M的特征多项式fM(x)为特征多项式的本原序列。
若采用传统的单点反馈方式生成以实例1中fM(x)为特征多项式的本原序列,例如序列a,则因为fM(x)的最小三元重量达到84,所以每次状态更新需要Z/(232-1)上的83次加法、80次循环移位以及一次取反运算;而采用如图7所示的两点反馈方式,仅需要Z/(232-1)上的11次加法和9次循环移位便可完成新元素的反馈,序列生成速度提高了大约8.4倍。
实例2
步骤1:根据参数e和n的选取原则,选取e=32,n=8;
步骤2:根据反馈位置个数和反馈位置的选取原则,选取k=4及反馈位置集合为{1,3,5,7};
步骤3:根据矩阵M行向量非零分量的位置确定原则和取值原则,确定状态转移矩阵M.
具体地有:
步骤3.1:选取α1,α3,α5,α7的非零元位置以及非零元因子基本形式如下:
M = 0 1 0 0 0 0 0 0 D 1 A 1 A 0 D 1 A 1 0 0 0 0 D 0 D 0 0 0 0 1 0 0 0 0 A 1 A 0 A 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 B 0 B 0 B 1 C 0 B 1 C 0 C 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 C 0 C 0 C 1 0 0
其中A0,A1,B0,B1,C0,C1,D0,D1为待定的Z/(2e-1)中的非零元。此时,M的特征多项式可以表达成
gM(x)=x8-[(A1+E1)x7+(A0+E0-A1E1)x6+(-A1E0-A0E1)x5
+(B1C1D1F1-A0E0)x4+(B1C1D1F0+B1C1D0F1+B1C0D1F1
+B0C1D1F1)x3+(B1C1D0F0+B1C0D1F0+B0C1D1F0
+B1C0D0F1+B0C1D0F1+B0C0D1F1)x2+(B1C0D0F0
+B0C1D0F0+B0C0D1F0+B0C0D0F1)x+B0C0D0F0].
根据3.4)所述非零元素的选取原则,取
A 0 = 2 i 1 ,
A 1 = 1 + 2 i 2 + 2 i 3 ,
B 0 = 1 + 2 i 4 + 2 i 5 ,
B 1 = 2 i 6 ,
C 0 = 1 + 2 i 7 + 2 i 8 ,
C 1 = 2 i 9 ,
D 0 = 2 i 10 ,
D 1 = 2 i 11 .
经计算机部分搜索,当i1=5,i2=7,i3=15,i4=17,i5=24,i6=12,i7=5,i8=18,i9=20,i10=14,i11=8时,矩阵M的特征多项式为
gM(x)=x8-[8683809·x7+998345982·x6+1673231988·x5
+3547233361·x4+2341546720·x3+363894861·x2
+4000859588·x+1256600293],
gM(x)为Z/(232-1)上的8次本原多项式,其最小三元重量为83。
步骤4:选取非退化的初始状态向量S0=(s0,0,s1,0,s2,0,s3,0,s4,0,s5,0,s6,0,s7,0),例如S0=(1,0,0,0,1,0,0,0),(1,0,0,0,0,0,0,0),(0,0,0,0,1,0,0,0)等等。
步骤5:根据所述状态转移矩阵,对所述初始状态进行状态更新,得到寄存器的状态向量序列S=(S0,S1,...)=(St)t≥0=((s0,t,s1,t,...,sn-1,t))t≥0。
具体地,如图8所示,图8为本发明中环Z/(232-1)上8级四点反馈方式生成序列的设计示意图。整个寄存器状态的更新方式为:设当前时刻(第t时刻)寄存器的状态为(s7,t,...,s1,t,s0,t),下一时刻(第t+1时刻)的状态为(s7,t+1,...,s1,t+1,s0,t+1),则:
s0,t+1=s1,t
s1,t+1=28·(1+27+215)·(25s0,t+s1,t)+214·(s6,t+s7,t);
s2,t+1=s3,t
s3,t+1=(1+27+215)·(25s0,t+s 1,t);
s4,t+1=s5,t
s5,t+1=(1+217+224)·(s2,t+s3,t)+212·(1+25+218)·(s4,t+220·s5,t);
s6,t+1=s7,t
s7,t+1=(1+25+218)·(s4,t+220·s5,t).
例如若初始状态为S0=(1,0,0,0,1,0,0,0),则
s0,1=s 1,0=0;
s1,1=28·(1+27+215)·(25s0,0+s 1,0)+214·(s6,0+s7,0)=269492224;
s2,1=s3,t=0;
s3,1=(1+27+215)·(25s0,0+s1,0)=1052704;
s4,1=s5,0=0;
s5,1=(1+217+224)·(s2,0+s3,0)+212·(1+25+218)·(s4,0+220·s5,0)
=1073876992;
s6,1=s7,0=0;
s7,1=(1+25+218)·(s4,0+220·s5,0)=262177,
故S1=(0,269492224,0,1052704,0,1073876992,0,262177).
按时钟的先后顺序每个寄存器序列s i=(si,0,si,1,...)=(si,t)t≥0均是以状态转移矩阵M的特征多项式fM(x)为特征多项式的本原序列,其中0≤i≤7.例如,当初始状态为S0=(1,0,0,0,1,0,0,0)时,移位寄存器1编号为0的寄存器单元输出序列为
c=(s0,t)t≥0=(1,0,269492224,...),
移位寄存器2编号为2的寄存器单元输出序列为
d=(s2,t)t≥0=(0,0,1052704,...),
序列cd均以状态转移矩阵M的特征多项式fM(x)为特征多项式的本原序列。
若采用传统的单点反馈方式生成以实例2中gM(x)为特征多项式的本原序列,例如序列c,则因为gM(x)的最小三元重量达到83,所以每次状态更新需要Z/(232-1)上的82次加法、79次循环移位以及一次取反运算;而采用如图8所示的两点反馈方式,仅需要Z/(232-1)上的18次加法和17次循环移位便可完成新元素的反馈,序列生成速度提高了大约4.6倍。
相应的,本发明还提供一种线性递归序列的生成系统,其结构示意图如图9所示,该系统基于环Z/(2e-1)上具有复杂特征多项式的线性递归序列的生成,所述系统包括:参数选择单元91,位置个数确定单元92,反馈位置集合确定单元93,状态转移矩阵选取单元94,非退化初始状态向量选取单元95和状态向量序列生成单元96。其中,
参数选择单元91,用于选取参数e和n,e和n均为大于或等于2的正整数,其中,e用于确定寄存器中元素的取值空间,n为寄存器的总长度;
位置确定单元92,用于确定寄存器中反馈位置的个数k;其中,2≤k≤n;
反馈位置集合确定单元93,用于根据所述反馈位置的个数k,确定反馈位置集合{i1,i2,...,ik-1,ik},其中,ik=n-1,0≤i1<i2<…<ik-1≤n-2;
状态转移矩阵选取单元94,用于根据所述反馈位置集合{i1,i2,...,ik-1,ik}选取寄存器的状态转移矩阵;
非退化初始状态向量选取单元95,选取寄存器非退化的初始状态向量S0=(s0,0,s1,0,...,sn-1,0),其中si,0∈Z/(2e-1),i=0,1,...,n-1;
状态向量序列生成单元96,用于根据所述状态转移矩阵对所述初始状态向量S0=(s0,0,s1,0,...,sn-1,0)进行递归计算,得到寄存器的状态向量序列S=(S0,S1,...)=(St)t≥0=((s0,t,s1,t,...,sn-1,t))t≥0
本发明提供的线性递归序列的生成方法为基于状态转移的多点反馈实现方式,由于增加了反馈元素个数,加速了移位寄存器元素之间的混乱和扩散,可以快速实现具有复杂特征多项式的序列。其中,基于状态转移的多点反馈实现方式将单点反馈方式用于计算一个反馈元素所需的计算资源平均分配到多个反馈元素的计算上,在同样的计算资源前提下,序列特征多项式的复杂度远高于单点反馈方式所产生序列的特征多项式。本发明提供的基于状态转移的多点反馈实现方式的序列输出速度不是由序列特征多项式的复杂度直接决定,因此,本发明所述技术方案可以兼顾序列的输出效率和序列的复杂度,从而提高了线性递归序列的输出效率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实例或者实例的某些部分所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种线性递归序列的生成方法,基于环Z/(2e-1)上具有复杂特征多项式的线性递归序列的生成,其特征在于,包括:
选取参数e和n,e和n均为大于或等于2的正整数,其中,e用于确定寄存器中元素的取值空间,n为寄存器的总长度;
确定寄存器中反馈位置的个数k;其中,2≤k≤n;
根据所述反馈位置的个数k,确定反馈位置集合{i1,i2,...,ik-1,ik},其中,ik=n-1,0≤i1<i2<…<ik-1≤n-2;
根据所述反馈位置集合{i1,i2,...,ik-1,ik}选取寄存器的状态转移矩阵;
选取寄存器非退化的初始状态向量S0=(s0,0,s1,0,...,sn-1,0),其中,si,0∈Z/(2e-1),i=0,1,...,n-1;
根据所述状态转移矩阵对所述初始状态向量S0=(s0,0,s1,0,...,sn-1,0)进行递归计算,得到寄存器的状态向量序列S=(S0,S1,...)=(St)t≥0=((s0,t,s1,t,...,sn-1,t))t≥0
2.根据权利要求1所述的方法,其特征在于,所述选取参数e包括:按照计算机平台的整数运算的字长来选取参数e;
所述选取参数n包括:使e·n的取值等于安全强度参数或者等于安全强度参数的倍数。
3.根据权利要求2所述的方法,其特征在于,若当前主流计算机的字长为32比特,选取参数e=32,则依据当前安全强度,选取参数n=8,12或16。
4.根据权利要求1所述的方法,其特征在于,所述确定寄存器中反馈位置的个数k具体包括:将n级寄存器分成k部分,形成k个位置反馈点,k个寄存器的长度之和等于n。
5.根据权利要求1所述的方法,其特征还包括:根据所述反馈位置集合{i1,i2,...,ik-1,ik}确定k个移位寄存器的级数,分别为i1+1,i2-i1,...,n-1-ik-1,使得所述i1+1,i2-i1,...,n-1-ik-1级数尽量相同。
6.根据权利要求1所述的方法,其特征在于,根据所述反馈位置集合{i1,i2,...,ik-1,ik}选取寄存器的状态转移矩阵包括:根据所述反馈位置集合为{i1,i2,...,ik-1,ik}确定该寄存器的状态转移矩阵的第i1行,第i2行,...,第ik行对应的元素,得到寄存器的状态转移矩阵。
7.根据权利要求1或6所述的方法,其特征在于,在选取该寄存器的状态转移矩阵时,矩阵中出现的非0元素尽量选取形如(a1+...+as)·(b1+...+bt)和
Figure FSA00000175854100021
的整数。
8.根据权利要求1所述的方法,其特征在于,所述选取寄存器的初始状态向量S0=(s0,0,s1,0,...,sn-1,0)应满足:对于2e-1的每个素因子p,至少有一个si,0与p互素,0≤i≤n-1,也即p不是si,0的因子。
9.根据权利要求1或8所述的方法,其特征在于,根据所述状态转移矩阵对所述初始状态向量S0=(s0,0,s1,0,...,sn-1,0)进行递归计算,得到寄存器的状态向量序列S=(S0,S1,...)=(St)t≥0=((s0,t,s1,t,...,sn-1,t))t≥0包括:
根据所述状态转移矩阵对所述初始状态向量S0=(s0,0,s1,0,...,sn-1,0)进行递归计算,得到寄存器的状态向量S1=(s0,1,s1,1,...,sn-1,1);
根据所述状态转移矩阵对所述S1=(s0,1,s1,1,...,sn-1,1)进行递归计算,得到寄存器的状态向量S2=(s0,2,s1,2,...,sn-1,2);
根据所述状态转移矩阵对所述S2=(s0,2,s1,2,...,sn-1,2)依次进行递归计算,得到寄存器的状态向量序列S=(S0,S1,...)=(St)t≥0=((s0,t,s1,t,...,sn-1,t))t≥0。
10.一种线性递归序列的生成系统,基于环Z/(2e-1)上具有复杂特征多项式的线性递归序列的生成,其特征在于,包括:
参数选择单元,用于选取参数e和n,e和n均为大于或等于2的正整数,其中,e用于确定寄存器中元素的取值空间,n为寄存器的总长度;
位置个数确定单元,用于确定寄存器中反馈位置的个数k;其中,2≤k≤n;
反馈位置集合确定单元,用于根据所述反馈位置的个数k,确定反馈位置集合{i1,i2,...,ik-1,ik},其中,ik=n-1,0≤i1<i2<…<ik-1≤n-2;
状态转移矩阵选取单元,用于根据所述反馈位置集合{i1,i2,...,ik-1,ik}选取寄存器的状态转移矩阵;
非退化初始状态向量选取单元,选取寄存器非退化的初始状态向量S0=(s0,0,s1,0,...,sn-1,0),其中,si,0∈Z/(2e-1),i=0,1,...,n-1;
状态向量序列生成单元,用于根据所述状态转移矩阵对所述初始状态向量S0=(s0,0,s1,0,...,sn-1,0)进行递归计算,得到寄存器的状态向量序列S=(S0,S1,...)=(St)t≥0=((s0,t,s1,t,...,sn-1,t))t≥0
CN201010218982.3A 2010-06-30 2010-06-30 一种线性递归序列的生成方法及系统 Expired - Fee Related CN101882969B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010218982.3A CN101882969B (zh) 2010-06-30 2010-06-30 一种线性递归序列的生成方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010218982.3A CN101882969B (zh) 2010-06-30 2010-06-30 一种线性递归序列的生成方法及系统

Publications (2)

Publication Number Publication Date
CN101882969A true CN101882969A (zh) 2010-11-10
CN101882969B CN101882969B (zh) 2014-04-09

Family

ID=43054877

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010218982.3A Expired - Fee Related CN101882969B (zh) 2010-06-30 2010-06-30 一种线性递归序列的生成方法及系统

Country Status (1)

Country Link
CN (1) CN101882969B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106293611A (zh) * 2015-06-03 2017-01-04 宜春市等比科技有限公司 一种用于扩频通信和频率复用的伪随机码生成方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645772A (zh) * 2009-09-11 2010-02-10 华东交通大学 基于t半序的伪随机序列生成方法及序列发生器
CN101674180A (zh) * 2008-09-10 2010-03-17 中国人民解放军信息工程大学 一种伪随机序列产生方法及加密方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101674180A (zh) * 2008-09-10 2010-03-17 中国人民解放军信息工程大学 一种伪随机序列产生方法及加密方法
CN101645772A (zh) * 2009-09-11 2010-02-10 华东交通大学 基于t半序的伪随机序列生成方法及序列发生器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106293611A (zh) * 2015-06-03 2017-01-04 宜春市等比科技有限公司 一种用于扩频通信和频率复用的伪随机码生成方法

Also Published As

Publication number Publication date
CN101882969B (zh) 2014-04-09

Similar Documents

Publication Publication Date Title
JP6682041B2 (ja) モジュロ演算に基づく完全準同型暗号化の処理方法
CN101674180B (zh) 一种伪随机序列产生方法及加密方法
CN104038232B (zh) 基于二次异或运算的测试数据压缩与解压缩方法
CN103248372A (zh) 基于循环左移的准循环ldpc串行编码器
CN101894229A (zh) 一种兼容三种sha标准的装置及其实现方法
CN101911009B (zh) 用于以签名方案进行非对称加密的对策方法和设备
CN102684709A (zh) 一种译码方法及其译码装置
CN110244932B (zh) 用于关联存储器中的长加法和长乘法的系统和方法
CN103838649B (zh) 一种降低二进制编码存储系统中计算量的方法
CN100382011C (zh) 蒙哥马利乘法器中的流水线内核
CN101257312A (zh) 一种解码伴随式的计算方法、电路及解码器
Dinh et al. MDS Symbol-Pair Repeated-Root Constacylic Codes of Prime Power Lengths Over $\mathbb F_ {p^ m}+ u\mathbb F_ {p^ m} $
CN101295237B (zh) 求商和余数的高速除法器
CN103986475A (zh) 里德-所罗门伞型代码的并行分解
Kaltofen Computing with polynomials given by straight-line programs I: greatest common divisors
JP2002215385A (ja) 剰余系表現を利用した演算装置及び方法及びプログラム
CN101882969B (zh) 一种线性递归序列的生成方法及系统
CN103259544A (zh) 共享存储机制的dtmb中准循环ldpc串行编码器
Zajac A new method to solve MRHS equation systems and its connection to group factorization
Kleinjung Quadratic sieving
CN108809323A (zh) 循环冗余校验码的生成方法和装置
CN101496291A (zh) Lfsr仿真
Sala et al. Efficient constructions of the Prefer-same and Prefer-opposite de Bruijn sequences
D'yachkov et al. On DNA codes
CN103268214A (zh) 基于查找表的深空通信中准循环矩阵高速乘法器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140409

Termination date: 20190630

CF01 Termination of patent right due to non-payment of annual fee