CN1860434A - 具有可控周期的伪随机序列的基于细胞自动机的生成方法和装置 - Google Patents
具有可控周期的伪随机序列的基于细胞自动机的生成方法和装置 Download PDFInfo
- Publication number
- CN1860434A CN1860434A CNA2005800011715A CN200580001171A CN1860434A CN 1860434 A CN1860434 A CN 1860434A CN A2005800011715 A CNA2005800011715 A CN A2005800011715A CN 200580001171 A CN200580001171 A CN 200580001171A CN 1860434 A CN1860434 A CN 1860434A
- Authority
- CN
- China
- Prior art keywords
- sequence
- cell
- pseudo
- cellular automaton
- rule
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Storage Device Security (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Complex Calculations (AREA)
Abstract
本发明的一个目的是提供一种用于生成具有可控周期的合乎需要的伪随机序列的紧凑装置。用于生成伪随机序列的装置包括用于生成第一序列的二维细胞自动机310、用于生成第二序列的2乘L细胞自动机320、用于执行第一序列与第二序列的逐位模2求和的加法器330-1、330-2、…、330-n、以及用于缓冲来自加法器330-1、330-2、…、330-n的所得序列的缓冲器340。
Description
技术领域
本发明涉及一种使用紧凑有限状态机来生成具有可控周期的伪随机序列的方法和装置。
背景技术
近年来报告了多种基于使用细胞自动机的具有非常良好的统计特性的伪随机序列的生成方法。例如,非专利文献1公开了用于生成高质量的随机数的二维细胞自动机。以下将解释典型的二维细胞自动机(2D-CA)。
细胞自动机(CA)是其中空间和时间离散的动态系统。细胞自动机包含细胞阵列,其中每个细胞可处在有限个数的可能状态中的一个,而这些状态根据局部的交互规则在离散的时间步骤同步更新。在此,仅考虑其中细胞状态s∈{0,1}的布尔自动机。细胞在下一个时间步骤的状态由周围的细胞邻域的当前状态确定。
细胞阵列(网格)是d维的,其中在实践中使用d=1,2,3。在本说明书的这一部分,考虑d=2,即二维网格。
每个细胞中所包含的规则本质上是有限状态机规则,它通常是以规则表(也称为转移函数)的形式指定的,其中状态的每个可能的邻域配置对应于一个条目。细胞的细胞邻域由它自己和周围的(邻近的)细胞构成。对于一维CA,一个细胞被连接到每一边的r个局部邻居(细胞),其中r被称为半径(由此,每个细胞有2r+1个邻居)。
对下二维CA(2D-CA),通常考虑两种类型的细胞邻域。它们是:五细胞,由该细胞与它的四个直接的非对角邻居组成(也称为冯.诺伊曼(von Neumann)邻域);以及九细胞,由该细胞与它的八个周围的邻居组成(也称为莫尔(Moore)邻域)。
当考虑有限大小的网格时,经常应用循环边界条件,这在一维情形中导致环形网格,而在二维情形中导致超环面网格。也可使用固定的或null(空)的边界条件,其中网格被处于固定状态为0的外层细胞所包围。后一情形通常较易在硬件中实现。
非均匀的、或非均质的细胞自动机与均匀的细胞自动机以相同方式工作,唯一的差异是细胞规则无需对所有细胞都完全相同。非均匀CA共享均匀CA的基本的具吸引力的属性:简单性、平行性和局部性。
2D-CA的合适的背景研究可在例如非专利文献2中获得。
[非专利文献1]
M.Tomassini,M.Sipperland,M.Perrenoud,“On the generation of high-qualityrandom number by two-dimensional cellular automata”(关于由二维细胞自动机生成高质量的随机数),IEEE Trans.(IEEE学报),Computers(计算机),第49卷,第1146-1151页,2000年10月。
[非专利文献2]
P.P.Chaudhuri,D.R.Chaudhuri,S.Nandiand,S.Chattopadhyay,“AdditiveCellular Automata:Theory and Applications”(加性细胞自动机:原理及应用),纽约,IEEE出版社,1997年。
[非专利文献3]
S.Wolfram,“Cryptography with Cellular Automata”(使用细胞自动机的密码学),Advances in cryptology-CRYPTO85(密码学进展-CRYPTO85),LectureNotes in Computer Science(计算机科学讲义),第218卷,第429-432页,1985年。
[非专利文献4]
K.Cattell,S.Zhang,M.Serraand,J.C.Muzio,“2-by-n hybrid cellluar automatawith regular configuration:Theory and application”(具有规则配置的2乘n混合细胞自动机:原理及应用),IEEE Trans.(IEEE学报),Computer(计算机),第48卷,第285-295页,1999年3月。
[非专利文献5]
A.Klimov和A.Shamir,“Cryptogrphic applications of T-functions”(T函数的密码应用),SAC’2003,预印15页,2003年8月(出现在Lecture Notes in ComputerScience(计算机科学讲义)中)。
[非专利文献6]
S.-U.Guan和S.Zhang,“An evolutionary approach to the design of controllablecellular automata:structure for random number generation”(可控细胞自动机设计的进化方法:随机数生成的结构),IEEE Trans.(IEEE学报),Evolutionary Computation(进化计算),第7卷,第23-36页,2003年2月。
[非专利文献7]
P.D.Hortensius,R.D.Mcleod,W.Pries,D.M.Miller和H.C.Card,“Cellularautomata-based pseudorandom number generators for built-in self-test”(用于内建自测的基于细胞自动机的伪随机数生成),IEEE Transactions on Computer-AidedDesign(计算机辅助设计主题的IEEE学报),第8卷,第842-859页,1989年8月。
[非专利文献8]
M.Mihaljevic,M.P.C.Fossorier和H.Imai,“Fast correlation attack algorithmwith the list decoding and an application”(使用列表解码的快速相关攻击算法及应用),FSE2001,Lecture Notes in Computer Science(计算机科学讲义),第2355卷,第196-210页,2002年。
[非专利文献9]
N.T.Courtois和W.Meier,“Algebraic attacks on stream ciphers with linearfeedback”(使用线性反馈对流密码的代数攻击),EURO-CRYPT2003,Lecture Notesin Computer Science(计算机科学讲义),第2656卷,第345-359页,2003年。
[非专利文献10]
M.Mihaljevic和H.Imai,“A family of fast keystream generators based onprogrammable linear celluar automata over GF(q)and time variant table”(基于GF(q)和时变表上的可编程线性细胞自动机的快速密钥流生成器族),IEICE Transactionson Fundamentals(IEICE基础学报),第E82-A卷,第32-39页,1999年1月。
[非专利文献11]
G.Marsaglia,“Diehard”(1998)。http:JJstat.fsu.eduJgeoJdiehard.htm。
[非专利文献12]
A.K.Das,A.Ganguly,A.Dasgupta,S.Bhawmik和P.PalChaudhuri,“Efficientcharacterization of cellular automata”(细胞自动机的高效表征),IEE Proc.(IEE会刊)Pt.E,第137卷,第81-87页,1990年1月。
[非专利文献13]
K.Cattell和J.C.Muzio,“Synthesis of one-dimensional linear hybrid celluarautomata”(一维线性混合细胞自动机的合成),IEEE Trans.(IEEE学报),Computer-Aided Design(计算机辅助设计),第15卷,第325-335页,1996年3月。
[非专利文献14]
S.Nandi,B.K.Kar和P.Pal Chaudhuri,“Theory and applications of cellularautomata in cryptography”(密码学中细胞自动机的原理及应用),IEEE Trans.(IEEE学报),Computer(计算机),第43卷,第1346-1357页,1994年12月。
[非专利文献15]
W.Meier和O.Staffelbach,“Analysis ofpseudo random sequences generated bycellular automata”(细胞自动机生成的伪随机序列的分析),Advances in Cryptology(密码学进展)-EOROCRYPT91,Lecture Notes in Computer Science(计算机科学讲义),第547卷,第186-189页,1992年。
[非专利文献16]
C.K.Koc和A.M.Apohan,“Inversion of cellular automata iterations”(细胞自动机迭代的求逆),IEE Proc.(IEE会刊),Comput.Digit.Tech.(计算机数字技术),第44卷,第279-284页,1997年。
[非专利文献17]
M.Mihaljevic,“An improved key stream generator based on the programmablecellular automata”(基于可编程细胞自动机的改良密钥流生成器),ICICS’97,Lecture Notes in Computer Science(计算机科学讲义),第1334卷,第181-191页,1997年。
[非专利文献18]
M.Mihaljevic,“Security examination of a cellular automata basedpseudoramdom bit generator using an algebraic replica approach”(使用代数复制法对基于细胞自动机的伪随机比特生成器的安全检查),AAECC12,Lecture Notes inComputer Science(计算机科学讲义),第1255卷,第250-262页,1997年。
[非专利文献19]
S.R.Blackburn,S.Murphy和K.G.Peterson,“Comments on“Theory andApplications of Cellular Automata in Cryptography”” (对“密码学中细胞自动机的原理及应用”的评注),IEEE Trans.(IEEE学报),Computer(计算机),第46卷,第637-638页,1997年5月。
[非专利文献20]
M.Mihaljevic,“Security examination of a cellular automata based pseudorandombit generator using an algebraic replica approach”(使用代数复本法对基于细胞自动机的伪随机比特生成器的安全检查)AAECC12,Lecture Notes in Computer Science(计算机科学中的讲义),第1255卷,第250-262页,1997年。
[非专利文献21]
A.J.Menezes,P.C.van Oorschot和S.A.Vanstone,应用密码学手册,Boc.Roton:CRC出版社,1997年。
发明公开
本发明要解决的问题
但是,上述这些方案的主要缺点是对所生成的伪随机序列的周期没有任何保证。由此,需要提供一种用于生成具有最大或基本上最大的周期、并且和上述方案一样具有合乎需要的随机性统计性质的序列的方法和装置。
考虑以上作出本发明。本发明的一个目的是提供一种用于生成具有可控周期的合乎需要的伪随机序列的方法和/或紧凑装置。
解决问题的手段
根据本发明的一个实施例,提供了一种用于生成伪随机序列的装置,其特征在于包括:第一类型的细胞自动机,用于生成具有较高随机性的第一序列;第二类型的细胞自动机,用于生成周期有预定下界的第二序列;以及加法器,用于执行第一序列与第二序列的逐位模2求和。
在根据本发明的装置中,第一类型的细胞自动机可以是二维细胞自动机,第二类型的细胞自动机可以是2乘L细胞自动机;而来自加法器的求和结果可作为伪随机序列输出。
根据本发明的另一个实施例,根据上述的装置还可包括:第三类型的细胞自动机,用于生成第三序列,其中第三类型的细胞自动机具有可基于对应的细胞控制字和/或规则控制字来计算其状态的细胞。在此实施例中,细胞控制字由第二类型的细胞自动机生成;规则控制字由第一类型的细胞自动机生成;并且加法器用于执行第一、第二和第三序列的逐位模2求和。
根据本发明的又一个实施例,上述装置还可包括:用于对来自加法器的求和结果执行非线性映射的块;以及用于对非线性映射的结果执行非均匀抽取的块;其中所抽取的结果作为伪随机序列输出。在本装置中,每个块可包括至少一个非线性函数。或者,用于执行非线性映射的块可包括至少一个查找表,用于进行基于拉丁方的非线性映射。
根据本发明的另一个实施例,提供了一种用于执行密码处理的装置。该装置的特征在于包括:密码处理器,用于使用伪随机序列来对数据加密;以及伪随机序列生成器,用于生成伪随机序列。在本实施例中,伪随机数生成器被配置成包括根据上述任一实施例的装置。
根据本发明的另一个实施例,一种用于使用细胞自动机来生成伪随机序列的方法,或一种使计算机执行该方法的计算机程序,或存储该计算机程序的存储介质。该方法包括生成具有较高随机性的第一序列的步骤;生成周期有预定下界的第二序列的步骤;以及执行第一序列和第二序列的逐位模2求和的步骤。
本发明的效果
根据本发明,提供了一种用于生成具有可控周期的合乎需要的伪随机序列的方法和/或紧凑装置。
附图简述
图1是示出2乘L细胞自动机的示意图。
图2是示出二维细胞自动机(2D-CA)的示例的示意图。
图3是示出根据本发明的第一实施例的伪随机序列生成器的示例性结构的示意图。
图4是示出可控细胞自动机(CCA)的宏块结构的示例的示意图。
图5是示出CCA中的组件的结构示例的示意图。
图6是示出根据本发明的第二实施例的伪随机序列生成器的示例性结构的示意图。
图7是根据本发明的第三实施例的使用存储器的非线性映射的框图。
图8是根据本发明的第三实施例的非均匀抽取的框图。
图9是示出基于拉丁方的非线性映射的典型形式的框图。
图10是示出根据本发明的第三实施例的伪随机序列生成器的示例性结构的示意图。
图11是示出根据本发明的第四实施例的密码处理装置的示例性结构的示意图。
实现本发明的最佳模式
第一实施例
根据本发明的第一实施例,提供了一种使用紧凑有限状态机来生成具有可控周期的伪随机序列的方法和装置。根据本实施例的装置是基于两个不同类的细胞自动机。该装置和方法是灵活的,并且产生在空间复杂性和序列周期下界之间折衷的机会。
在描述本发明的第一实施例之前,参考附图回顾关于本发明中所使用的细胞自动机的一些基本技术。
基本二进制细胞自动机
一维二进制细胞自动机(CA)由L个细胞(其中每个细胞取0或1值)的线性连接的阵列,以及具有q个变量的布尔函数f(x)构成。使用此函数在离散的时间步骤平行(同步)地更新细胞xi的值,为x’i=f(x),其中i=1,2,…,L。通常通过取索引值模块L来处理边界条件。参数q通常是奇数,即,q=2r+1,其中r通常称为函数f(x)的半径;第i个细胞的新值是使用第i个细胞的值以及第i个细胞右边和左边的r个邻域细胞的值来计算的。
因为有L个细胞,其中每一个都取0或1值,所以有2L个可能的状态矢量。令Sk表示在时间步骤k的状态矢量。从初始状态向量S0开始,细胞自动机在时间步骤k=1;2;3;...等移至状态S1,S2,S3等。当k前进时,状态矢量Sk从L位二进制矢量集合中取值,并且状态机最终将循环,即,它将到达状态Sk+P,而该状态是较早已经访问过的Sk=Sk+P。周期P是初始状态、更新函数和细胞个数的函数。
对于q=3的CA,第i个细胞在每个离散的时间步骤t(时钟周期)的演变可被表示为第(i-1)、第(i)和第(i+1)个细胞的当前状态的函数,如下
xi(t+1)=f{xi-1(t),xi(t),xi+1(t)}. (1)
f也称为与该CA相关联的组合逻辑。每个组合逻辑表示用于演化至下一个状态的更新规则。
如果细胞的下一个状态函数以真值表的形式表达,则真值表中输出列的十进制等值数通常称为CA规则数。非专利文献3中所提出并研究的称为规则30的非线性规则根据下式来实现更新:
xi(t+1)=xi-1(t)XOR[xi(t)OR xi+1(t)]. (2)
特别值得关注的是GF(2)上的两个线性规则。它们分别称为规则90和规则150。规则90指定根据以下组合逻辑从当前到下一个状态的演化(更新):
xi(t+1)=xi-1(t)xi+1(t). (3)
其中表示XOR(异或)操作。注意,当应用规则90时,第i个细胞的下一个状态取决于其左边和右边的邻居的当前状态。类似地,规则150的组合逻辑由下式给出:
xi(t+1)=xi-1(t)xi(t)xi+1(t). (4)
即,第i个细胞的下一个状态取决于其左边和右边的邻居的当前状态,并且还取决于它本身的当前状态。
如果在一CA中同一规则适用于所有细胞,则该CA称为均匀CA;否则它称为混合CA。可以有各种边界条件;即,null(极端细胞被连接到逻辑“0”),周期性(极端细胞是相邻的),等等。
关于CA的背景可在非专利文献2中找到。
2乘L细胞自动机
非专利文献4中提出并研究了2乘L的CA,本节概述2乘L CA的某些特性。
回忆线性有限状态机(LFSM)包括L个单比特存储器元件以及一转移函数。第i个存储器元件在时刻t的值或状态被表示为st i。LFSM在时刻t的状态被表示为st。转移函数f从LFSM在时刻t的状态确定其在时刻t+1的状态;即,st+1=f(st)。LFSM的下一个状态函数可使用状态图来图形地描述。注意,LFSM的线性是指f是从n比特矢量到n比特矢量的线性函数;即,对于任何两个状态a和b,
f(a+b)=f(a)+f(b).
转移函数f可被指定为n个函数f1、f2、...、fn,其中第i个函数计算细胞i的下一个状态。
在CA的环境中,函数fi称为细胞i的细胞规则。当且仅当每个fi都是线性的时候,转移函数f是线性的。为简单起见,使用s来表示当前状态,并使用s+来表示下一个状态。类似地,si表示细胞i的当前状态,而si +表示细胞i的下一个状态。在CA中,细胞之间的通信是最近邻域的,这意味着每个细胞仅被连接到其直接邻居。图1示出2乘L CA的互连结构。假定最左和最右的细胞分别在它们左边和右边的输入上具有恒0的输入(图中省略)。此类CA称为具有规则配置的2乘L CA。
在每个时间步骤,每个细胞使用其细胞规则来计算新的状态。不同的细胞可使用不同的规则,这使CA变成混合CA。还假定CA是完全连通的,这是指每个细胞从它所有的三个邻居接收输入。因此,对于细胞i的细胞规则fi必须是以下两者之一:
fi(sl,sr,sv,ss)=slsrsv 如果细胞使用规则0 (5)
fi(sl,sr,sv,ss)=slsrsvss 如果细胞使用规则1 (6)
其中sl(sr)表示左(右)邻居的当前状态,sv表示垂直邻居的当前状态,而ss表示细胞i本身的状态。规则0和规则1分别是相关技术的一维CA文献中出现的规则90和规则150的自然推广。
因为这里只有两个规则,所以细胞所使用的规则可被编码为单个比特,即“1”表示规则1,而“0”表示规则0。使用变量t1、t2、...、tL和b1、b2、...bL来指示这些细胞所使用的规则。为简单起见,顶细胞编号从1到L对应于t1、t2、...、tL,而底细胞编号从L+1到2L对应于b1、b2、...bn。一般而言,使用规则矢量[[t1,t2,...,tn],[b1,b2,...,bn]]来标识给定的2乘L CA。
LFSM的转移矩阵T代数地定义转移函数,从而s+=s·T。一维CA的转移函数是三对角(tridiagonal)的。对于2乘L CA,转移矩阵有如下的块结构
其中T1和T2是L乘L的三对角矩阵,而I是L乘L的单位矩阵。例如,2乘4的CA的转移矩阵为
其中ti和bi(1≤i≤4)定义如上。注意,2乘L CA的转移矩阵是对称的。
考虑2乘3的CA的示例,并假定该CA使用规则矢量[[1,1,0],[0,0,1]],从而有,
[t1,t2,t3]=[1,1,0],
并且
[b1,b2,b3]=[0,0,1].
令si(1≤i≤4)为当前状态
最小成本的2乘L CA
对于任何应用,一般而言,试图将LFSM实现的硬件成本最小化都是合乎需要的。对于1D CA,以类似的方式,非专利文献4中计算并报告了甚至最高达500次的最小成本的2乘L CA。注意,将硬件成本最小化是指将使用规则1的细胞个数最小化,因为规则1对于求值和实现而言都具有略高的复杂性。
非专利文献4中提出的确定给定的2乘1的CA是否具有最大长度的循环期的算法如下:1.使用非专利文献4中所描述的定理1中的递归关系来计算CA的特征多项式,2.检查该特征多项式是否是本原的,如果是,则该CA具有最大长度的循环期。
由此,对于每个n(1≤n≤250),该算法首先生成并检查均匀的规则0的CA。如果不成功(这将总是不成功的),则该算法生成所有具有单个规则1细胞的2乘n的CA。如果不成功,则该算法随即生成所有具有一对规则1细胞的CA,依此类推。对于每个n,搜索在具有最大长度的循环期的第一个2乘n的CA停止。因此,所生成的CA具有最小成本,即,使用最少个数的规则1细胞。该算法的结果在非专利文献4的表3中示出。
注意,对于L=2和L=4,具有最大长度的循环期的2乘n CA不存在。2乘2的CA的结构和循环线性混合CA的结构相同,所以没有最大长度的机器是不出乎意料的。
非专利文献4中计算的结果带出关于均匀且权重1的CA的两个观察结论。如果所有细胞使用同一规则,则CA是均匀的。如果所有细胞使用规则0,则此类CA称为规则0的CA,如果所有细胞使用规则1,则称为规则1的CA。权重1的CA有单个使用规则1的细胞,而其它所有细胞使用规则0。非专利文献4中报告的观察结论是:
观察结论1.最大长度的均匀CA不存在。
观察结论2.对于L>1,最大长度的权重1的CA不存在。
根据本实施例的装置和方法
首先描述根据用于生成具有可控周期的伪随机序列的第一实施例的方法。
假设二进制序列{ai}i和{bi}i是两个独立过程的实现,并且以下有效。
·生成序列{ai}i的过程保证此序列具有可由统计测试系统测量的合乎需要的随机性性质、以及可经由实验来估算的至少中等长度的周期。
·生成序列{bi}i的过程保证此序列具有可由统计测试系统测量的至少中等程度的随机性性质、以及其值可被分析地证明的长周期。
由此,本申请的发明人发现,以下命题成立:
·序列{ci}i={aibi}i具有可由统计测试系统测量的合乎需要的随机性性质、以及其值可被分析地证明的长周期。
根据上述发现,本发明提供用于生成具有高度随机性性质和可控周期的二进制序列的以下方法,该方法包括以下步骤:
(1)使用基于适当细胞自动机的方法,并指定用于生成具有合乎需要的随机性性质和(至少)中等长度的预期周期的二进制序列的算法;
(2)使用基于适当细胞自动机的方法,并指定用于生成具有合乎需要的周期和(至少)中等程度的随机性性质的二进制序列的算法;
(3)生成以上两个分量序列的逐位模2和作为结果序列;结果序列的预期特性是:合乎需要的统计特性以及序列周期的可控下界。
接下来描述根据用于生成具有可控周期的伪随机序列的第一实施例的装置的示例。用于生成具有可控周期的伪随机序列的装置有三个主要构件。它们是:
·图1中所显示、并在上节和表1中指定的2乘L CA;
·图2中所显示、并基于表2指定的2D-CA(详见上节);以及
·用于对2乘L CA和2D-CA的结果序列逐位模2求和的加法器。
表1
L | 2乘L CA的描述 |
3 | 1,2,6 |
32 | 8,13 |
64 | 1,4,46 |
96 | 5,10 |
128 | 2,226 |
表2
规则15: | si,j(t+1)=si-1,j(t)si,j-1(t)si+1,j(t)si,j+1(t) |
规则31: | si,j(t+1)=si-1,j(t)si,j-1(t)si+1,j(t)si,j+1(t)si,j(t) |
规则47: | si,j(t+1)=1si-1,j(t)si,j-1(t)si+1,j(t)si,j+1(t) |
规则63: | si,j(t+1)=1si-1,j(t)si,j-1(t)si+1,j(t)si,j+1(t)si,j(t) |
表1指定多个特定的2乘L CA。该表中的条目指示哪些细胞使用规则1。例如,条目
3 1, 2, 6
表示对应于2乘3的CA的一个规则矢量,即,规则向量如下的6个细胞的CA
[[t1,t2,t3],[b1,b2,b3]=[[1,1,0],[0,0,1]]
其中“1”表示细胞1、2和6中的规则1。
该装置使用非专利文献1中所报告的特定2D-CA,它生成高质量的伪随机序列。它由排列在二维(2D)8×8阵列中的64个细胞构成。
令si,j(t)表示2D-CA中坐标为(i,j)的细胞在时刻t的状态,其中i,j=1,2,...,8。在所使用的2D-CA中,细胞是根据表2中所给出的一个规则来更新的。图2中显示所使用的2D-CA。
图3示出根据本发明的第一实施例的装置的配置示例。该装置具有2D-CA310、2乘L CA 320、用于执行2D-CA细胞输出与对应的2乘L CA的细胞输出的逐位模2加法的加法器330-1、330-2、...、330-n、以及用于缓冲模2加法操作的结果以输出所生成的具有可控周期的高质量伪随机序列350的缓冲器340。在此,高质量伪随机序列是指通过测试序列随机性的一组特定统计测试的序列。
该装置能以带CPU和存储器的计算机、通过使该计算机执行预定程序来实现,或能以硬件逻辑设备来实现。
图3中所显示的装置工作如下。
·初始化:使用独立的随机比特序列来初始化所有细胞。
·序列生成:该装置的每个循环包含以下步骤。
(1)运行2乘L CA 320的一个循环以更新其所有细胞。
(2)运行2D-CA 310的一个循环以更新其所有细胞。
(3)执行2D-CA 310的细胞与对应的2乘L CA 320的细胞的逐位模2加法。
下表3示出该装置空间复杂性的典型值以及所获得的输出序列周期的下界。
表3
所使用的CA细胞个数 | 输出序列周期的下界 |
128 | 264 |
160 | 296 |
160 | 296 |
第二实施例
根据本发明的第二实施例,提供流密码设计所使用的构件块族。这些构件块的主要作用是生成适于进一步处理的伪随机序列。这些序列具有高度随机性性质、极大的周期,并且实际上是不可预测的。本实施例的构件块是基于三类不同的细胞自动机,它们以产生输出伪随机序列的合乎需要的特性的方式被组合在一起。本实施例的族产生选择适于各种各样的特定实现或应用约束的某些族成员的可能性。
为流密码进行的合适的基本构件块的开发是公知和开放的问题。不久前,在非专利文献5中报告了对此主题的新颖贡献,其中研究了基于T函数的密码构件块。
但是,提供不同的方法来解决该问题、由此为用户或系统设计者提供更加灵活的生成伪随机序列的方法是合乎需要的。例如,基于细胞自动机的使用来提供一种新颖的框架、以获得供流密码使用的合适的构件块是合乎需要的。在详细描述本实施例之前,描述本实施例中所使用的CCA的一些基本技术。
可控细胞自动机(CCA)
本节给出在非专利文献6中介绍的可控细胞自动机(CCA)的概述,在该文献中可找到更详细的研究。为了解释CCA,首先定义若干论点来标识CCA性质。
定义:CCA是可经由细胞控制信号来控制一些细胞的动作(在每个循环如何更新细胞的状态)的CA。类似于规则控制信号,细胞控制信号可被存储在ROM中,或可由CA生成。
定义:如果细胞在细胞控制信号的控制之下,则它是可控细胞;否则,它是基本细胞。CCA是可控细胞和基本细胞的组合。可控细胞和基本细胞都应具有规则控制信号。
可控细胞的动作由其当前的细胞控制信号来确定。可控细胞可以是常态的(当细胞控制信号为0时)或被激活的(当细胞控制信号为1时)。当可控细胞是常态的时候,该可控细胞及其邻居的状态计算如常(根据当前规则控制信号及其邻居的状态)。当可控细胞被激活的时候,该可控细胞及其邻居的状态计算由一些预定义的动作来指定。应用于可控细胞及其邻居的动作可以是不同的。观察推断,预定义的动作会影响可控细胞的状态计算。
CCA的结构总共有L个细胞。M(M≤L)个细胞是可控细胞,而剩余的细胞是基本细胞。此处,所有基本细胞都是可编程细胞。因此,在此CCA中有规则控制比特和细胞控制比特。与具有规则控制比特的L细胞可编程CA(PCA)相比较,CCA的额外成本是这M个细胞控制比特。在CA转移期间,规则控制信号将决定对基本和可控细胞要使用哪个规则;细胞控制信号将决定可控细胞的状态。
CCA中可控细胞的使用将其与可编程CA(PCA)区别开来,PCA中仅存在规则控制信号。一旦指定了可控细胞和基本细胞的动作,可控细胞的设置就会决定CCA的性能。PCA和CCA中共有的概念是它们都使用CA细胞上的一些控制线来使CA转移更加不可预测和更加灵活。区别在于,在PCA中,所有细胞具有均匀的结构,而在CCA中,显然可控细胞的结构与基本细胞的结构是不同的。
为达到相似的CA性能,可使用其它方法。例如,增加半径(即,邻居个数),在每个细胞中使用更多的状态,或是为每个细胞演化规则表。很难说哪种方法在性能或硬件设计方面较佳,因为它们的成本是不可比的。为代替演化规则表,建议了一种控制CA细胞的状态、从而在状态改变时可应用不同的计算方法的方案。基于此方案,非专利文献6中提出了一类新的CA-CCA,它能够在进行中改变细胞状态。由此工作被聚焦在寻找能够获得良好随机性质量的CCA的好配置。
以下提出两种可控细胞类型,并且将它们作为CCA的示例来使用以进一步研究它们的性能。
如上所述,当细胞控制信号为0时,可控细胞与基本细胞动作相同,而当细胞控制信号为1时,可控细胞执行某个预定义的动作,该动作可能与它在常态时所执行的动作不同。这意味着可控细胞在被激活时执行的动作决定了可控细胞的性质。
被激活的可控细胞可采取的最简单的动作是在CA计算处理期间保持其状态。与此同时,照常计算其邻居的状态。此类可控细胞称为类型0可控细胞。以下把作为类型0可控细胞和基本细胞的组合的CCA称为CCA0。
当可控细胞被激活时可找到类型2可控细胞,并且它保持其最新的状态,而它的邻居将绕过它。这意味着被激活的可控细胞将不参与其邻居的状态计算。以此方式,在CA计算过程期间动态地改变了邻域关系。作为类型2可控细胞和基本细胞的组合的CCA称为CCA2或邻域改变CA(NCA)。由于CCA2的邻域改变行为,它不能被任何PCA模拟。
本实施例的装置和方法
为例如流密码设计根据本实施例的新颖构件块族基本概念包括以下。
(1)使用关于细胞自动机的某些最近报告的结果以及基于CA的伪随机数生成器,这产生控制构件块输出序列的以下两个特性的背景:
·统计特性(随机性),
·周期
(2)经由为构件块输出序列生成使用时变算法来提供该输出序列的不可预测性,尤其是提供以下:
·抵抗被报告和改进的快速相关攻击(见例如非专利文献8)和代数攻击(见例如非专利文献9)的能力。
构件块包含某些部件,它们每一个都有助于实现以下项目中的一或两项,即,长周期、良好的统计特性、以及不可预测性。
在根据本实施例的设计中,把细胞自动机作为基本组件来使用。考虑了以下涉及CA的近期报告。
·非专利文献1和6指出2D-CA(二维细胞自动机)和CCA(可控细胞自动机)的CA结构,它们生成能通过非专利文献11中所公开的表4中所枚举的称为DIEHARD测试集合的大量统计测试的高度随机二进制序列的。
·非专利文献4中所报告的结果指出生成具有分析可证明性的最大周期序列的CA结构(并参见上述章节)。
表4
索引号 | 测试名称 | 分级 |
12345678910111213141516171818 | Overlapping Sum(交叠和)Runs up 1(向上跑1)Runs down 1(向下跑1)Runs up 2(向上跑2)Runs Down 2(向下跑2)3D Sphere(三维球面)A Parking Lot(停车场)Birthday Spacing(生日间隔)Count the Ones 1(计算1的个数1)Binary Rank 6*8(二进制分级6*8)Binary Rank 31*31(二进制分级31*31)Binary Rank 32*32(二进制分级32*32)Count the Ones 2(计算1的个数2)Bitstream Test(比特流测试)Craps Wins(掷骰子赢)Craps Throws(掷骰子)Minimum Distance(最小距离)Overlapping Permutation(交叠变换)Squeeze(挤压)OPSO Test(OPSO测试)OQSO Test(OQSO测试)DNA Test(DNA测试)Overall KS Test(总KS测试) | 当p值不是0或1时认为通过 |
在本实施例中,可为构件块使用以下三种主要组件:
·图1中所显示的、并在表1中给出特定示例的第一实施例的描述中指定的2乘L CA;
·图2中所显示的、并在基于表2的第一实施例的描述中指定的2D-CA;
·图4-5中所显示的、并在表5中指定的CCA;以及
·用于对2乘L CA、2D-CA和CCA的结果序列逐位模2求和的加法器。
表5
细胞索引间隔 | 1-10 | 11-20 | 21-30 | 31-40 | 41-50 | 51-60 | 61-64 |
细胞更新规则 | 0110101111 | 0010110001 | 1100101011 | 1101111011 | 1100110001 | 0001000000 | 1111 |
细胞输出规则 | 0000111110 | 0000011010 | 1111100010 | 0101100111 | 1001010111 | 1000110111 | 1101 |
表5中指定了由优化(改良多目标优化-EEOO)算法获得、并在非专利文献6中作为具有最佳统计特性的结构报告的所使用的CCA结构。在表5的第二行,“1”表示可控细胞,而在第三行,“1”表示对CCA输出起作用的细胞。
图4示出本发明的装置中包括CCA的总体块结构的示例。图5(B)示出CCA内部结构的示例,而图5(A)示出构成CCA的细胞单元的结构示例。
如图4中所示,在本实施例中,假定CCA 400所使用的规则控制信号(规则控制字)和细胞控制信号(细胞控制字)分别由两个CA 401、402生成。生成规则控制信号的CA 401称为规则控制CA。生成细胞控制信号的CA 402称为细胞控制CA。
如图5(B)中所示,CCA 400包含多个细胞单元510-1、...、510-i、..、510-j、...、和510-L。在本例中,假定CCA 400共有L个细胞,其中M(M≤L)个细胞是可控细胞(例如,细胞单元510-i、510-j),而剩余的细胞是基本细胞(例如,510-1、510-L)。例如图5(A)中所示,可控CA细胞单元具有其状态受细胞控制信号和规则控制信号控制的细胞5101、以及用于输入其右边和左边的邻域细胞的状态的加法器5102。
在此,所有基本细胞都是可编程细胞。因此,在此CCA中有规则控制比特和细胞控制比特。与具有规则控制比特的L细胞可编程CA(PCA)相比,CCA的额外成本是M个细胞控制比特。在CA转移期间,规则控制信号将决定对基本和可控细胞使用哪个规则;细胞控制信号将决定可控细胞的状态。
在每个循环中,CCA细胞所使用的规则(细胞)控制信号的位组合称为规则(细胞)控制字。规则控制字的长度和CCA 400的规则控制字长度相同,而细胞控制字的长度由CCA 400中的可控细胞个数决定。
CCA的运行序列描述如下。将初始种子和转移规则输入到规则控制CA 400、细胞控制CA 402和CCA 400中来将它们初始化。两个控制CA 401、402与CCA 400同步运行,以生成CCA细胞的规则和细胞控制字。在每个循环中,CCA细胞先前的状态加上规则/细胞控制字决定了CCA细胞的当前状态。一些CCA细胞的当前状态作为输出比特序列被记录在每个循环中。
因为对PCA中好的转移规则的搜索已经进行了可观的工作,所以非专利文献6遵照建议的规则选择。非专利文献6中使用的其它四个规则是规则90、150、105和30。规则90和150在CCA中作为转移规则使用,这是为便于与1比特PCA 90150进行比较。规则30在规则控制CA中使用,而规则105在细胞控制CA中使用,因为根据非专利文献7所说,在随机数生成中这两个规则是在最佳的规则之中。应当注意,在所使用的在非专利文献6中描述的具有64个细胞的CCA(CCA2)中,有35个可控细胞和35个输出细胞,其中20个是可控细胞。
根据本发明的本实施例,提供了一种包括上述构件块族(3-CA)的装置。该装置生成具有可控周期的实际上不可预测的高质量伪随机序列。
图6中显示具有典型的3-CA构件块的装置。该装置具有2D-CA 310、2乘L CA320、CCA 400、用于执行来自2D-CA 310、2乘L CA 320和CCA 400的对应细胞输出的逐位模2加法的加法器600-1、600-2、...、600-n、以及用于缓冲模2加法运算的结果以输出所生成的高质量伪随机序列650的缓冲器340。
此外,在本发明的该装置中,2D-CA 310和2乘L CA 320分别担当规则控制CA 401和细胞控制CA 402。换言之,规则控制字610和细胞控制字620分别从2D-CA 310和2乘L CA 320生成,并被提供给CCA 400用于细胞和规则控制,如图4和5中所示。
图6中所显示的装置工作如下。
·初始化:使用独立随机比特序列初始化所有细胞。
·序列生成:具有3-CA结构的该装置的每个循环包括以下步骤:
(1)运行2乘L CA的一个循环以更新其所有细胞;
(2)运行2D-CA的一个循环以更新其所有细胞;
(3)基于2D-CA细胞来指定CCA规则控制字;
(4)基于2乘L CA细胞来指定细胞控制字;
(5)运行CCA的一个循环以更新其所有细胞;以及
(6)执行对应的CCA、2D-CA和2乘L CA细胞的逐位模2加法。
表6示出由所使用的CA细胞总数测量的构件块空间复杂性以及所获得的输出序列周期的下界的示例。
表6
所使用的CA细胞个数 | 输出序列周期的下界 |
128 | 264 |
256 | 2128 |
第三实施例
在本发明的第三实施例中,为流密码设计和相关应用提供密码伪随机序列生成器(密钥流生成器)族。本实施例的族同时产生很高的效率和安全性。本实施例的密钥流生成器产生具有高度随机性统计特性、极大周期和实际上不可预测的序列。
本实施例的密钥流生成器基于三类不同的细胞自动机、基于拉丁方的非线性映射、以及对非均匀抽取的使用,它们以产生输出伪随机序列合乎需要的特性的方式组合。
为流密码开发合适的密码伪随机序列生成器或密钥流生成器是公知和开放的问题。在相关技术的文献中已报告了许多基本的组件和密钥流生成器。所报告的方案中一些是基于细胞自动机(CA)的。
细胞自动机(CA)最初由冯.诺伊曼(von Neumann)在20世纪50年代早期提出的,目的是探索自复制结构。对基于CA的伪随机数生成器(PRNG)日益增长的关注可能是由于它们简单和级联的结构。CA是规则的、局部互连和模块化的。这些特性使得CA比其它模型更易在硬件中实现。CA可顺序地或并行地生成随机序列。在实践中,大多数CA并行地产生序列以获得较高的输出效率。
细胞自动机是一种细胞阵列,其中每个细胞可处于其可允许的状态中的任一状态。在每个离散的时间步骤(时钟周期),细胞的改变取决于它的转移规则,而对于k邻域的CA,其转移规则是它的k个邻居的当前状态的函数。细胞阵列(网格)是n维的,在实践中使用n=1,2,3。具有XOR(异或)和XNOR(同)规则的CA称为加性CA(非专利文献3)。如果所有CA细胞服从同一规则,则该称CA是均匀的;否则,它是非均匀或混合的(非专利文献7)。如果极端细胞(第一和最后一个细胞)相邻,则称该CA是周期性边界CA(PBCA)。如果极端细胞仅被连接到其左边(右边)的细胞,则称该CA是null边界CA(非专利文献3)。
加件细胞自动机
非常重要的一类CA是GF(2)中的线性CA或加性CA。如果下一个状态生成逻辑仅使用XOR或XNOR运算,则称该CA是加性CA。线性CA是线性有限状态机(LFSM)的特殊形式。每个LFSM由GF(2)上的一个转移矩阵唯一地表示,并且每个转移矩阵有一个特征多项式。
对于仅使用XOR操作的L细胞一维加性CA,非专利文献12中已示出该CA可由一线性算子来表征,该线性算子由T表示,它是L×L的布尔矩阵,且其第i行指定第i个细胞的邻域依存关系。CA的下一个状态是通过将此线性算子施加于被表示为列向量的当前CA状态来生成的。该运算是普通的矩阵乘法,但是所涉及的加法是模2和。如果x(t)是表示自动机在第t个时刻的状态的列向量,则自动机的下一个状态由下式给出:
x(t+1)=T×x(t).
如果CA的特征多项式是本原的,则称其为最大长度CA。这样一个L细胞CA在连续的循环中生成除全0状态以外的所有2L-1个状态。
因为,对于固定的秩L,有2L**2个转移矩阵(由此有2L**2个LFSM),但仅有2L个L次多项式,所以有以下情况:L细胞LFSM与L×L矩阵之间具有一对一的对应关系,并且与此同时,在转移矩阵和L次多项式之间具有多对一的对应关系。
LFSM的特征多项式总是不难获得,因为它可通过对行列式求值来计算。另一方面,寻找具有特定的特征多项式的特定类型的LFSM(诸如CA)是非专利文献13中解决了的问题,该文献中给出了一种获得具有给定特征多项式的CA的方法。还可使用相同的方法来解决是否存在对应于每个不可约多项式的CA的问题。
可编程细胞自动机
规则90和规则150的位置表示显示它们的邻域依存关系仅仅在一个位置,即,仅在该细胞本身上不同。因此,通过允许每个细胞有一条单独的控制线,就可在不同的时间步骤将规则90和规则150施加于同一个细胞。由此,可使用L细胞CA结构来实现2L CA配置。可通过使用控制逻辑控制适当的开关来达到在同一个结构上实现不同的CA配置(细胞更新规则)的目的,存储在ROM中的控制程序可用来激活该控制。ROM字的第i比特的1(0)状态关闭(开启)控制第i个细胞的开关。这一结构称为可编程细胞自动机(PCA)。
由此,允许每个细胞有一个配置更新规则的控制输入,就能够将规则90或者规则150施加于该细胞。如果规则90(150)被施加于第i个细胞,则对应于n细胞PCA的n比特控制字在第i个细胞上有0(1)。
基于细胞自动机的伪随机数生成器
应用了本实施例的CA伪随机数生成器(PRNG)近来一直是活跃的研究领域。非专利文献3已示出,由最大长度CA生成的模式的随机性显著优于诸如线性反馈移位寄存器(LFSR)等其它广泛使用的方法。
在多篇论文中,已讨论了一维(1-d)CA PRNG以及某些PCA。但是,即便是1-d PCA的随机性质量也不完全令人满意,因为它们仍未能通过一些随机性测试。
为提高CA的随机性,已报告了通过在一些细胞上增加细胞控制信号来增强1-d PCA、以及控制CA状态的方法(见非专利文献6)。起初的想法被进一步提炼为邻居改变CA(NCA)的概念。1-d NCA上的随机性测试结果显示,它们优于1-d PCA。在非专利文献6中用最小成本将1-d NCA演化到其最佳性能。
另一方面,已报告的替换方法是在伪随机数生成中使用二维(2-d)CA来进一步提高CA PRNG的随机性质量。在非专利文献1中,已报告了演化出能够通过非专利文献11的DIEHARD测试的64细胞2-d CA,该测试据说是目前最难通过的测试组。对随机性测试结果的比较显示,2-d CA在随机性上与1-d NCA相当。但是与1-d CA相比,2-d CA的结构复杂性略高。
不久前,在非专利文献14提出了称为带ROM的PCA和两阶段PCA的基于GF(2)上的线性细胞自动机的两种密钥流生成器及其安全性分析的结果。
另一方面,非专利文献15中给出了一种基于由中央CA细胞生成的比特序列来重构二进制非线性CA初始状态的方法。非专利文献16中提出了在假定非线性转移规则和GF(2)上的CA的前提下计算给定状态的前一状态的逆算法。
非专利文献17和18中分别报告了两阶段PCA和带ROM的PCA的密码安全性分析,其中在假定仅有密文攻击的前提下演示了这些方案在受某些密码攻击时的漏洞,并且还示出有效的保密密钥长度显著短于其形式长度。在非专利文献19中也指出在假定已知明文攻击的前提下的相同弱点。
不久前,非专利文档20中在假定在GF(2)上进行操作的前提下,提出并分析了一种基于带ROM的PCA的改良的密钥流生成器。非专利文献10报告了GF(q)上的CA的密钥流生成器的应用,其中q>2。
根据本实施例的装置和方法
根据本实施例的密钥流生成器包括以下两部分,称为α块和β块。
·第一部分α块提供
★长周期.
★良好的统计特性.
★基本不可预测性;
·第二部分β块提供
★增强的最终不可预测性.
设计α块的基本概念包括以下:
(1)使用关于细胞自动机的某些最近报告的结果以及基于CA的伪随机数生成器,这产生控制构件块输出序列的以下两个特性的背景:
·统计特性(随机性),以及
·周期。
(2)经由为α构件块输出序列生成使用时变算法来提供该输出序列的不可预测性,尤其是提供以下:
·抵抗被报告和改进的快速相关攻击和代数攻击的能力。
α块被配置成包括由某些部件组成的构件块,这些部件每一个都有助于实现以下项目中的一或两项:
-长周期,
-良好的统计特性,
-不可预测性。
α块的结构包括2乘L CA、2D-CA和CCA,它们在前几个实施例中已经详细描述。相似的元件由相同的标号指明,并且为简单起见略去对它们的描述。
β块的主要任务是提高α块的输出序列的不可预测性。
可以考虑缓冲α块的输出序列,并经由以下两个操作来执行β块的处理:
·用存储器通过非线性函数进行过滤,以及
·对从前一个步骤获得的序列进行非均匀抽取。
β块所执行的处理的示例在图7和8中显示。图7示出使用非线性函数F1(701)和F2(702)用存储器进行的非线性映射的框图示例。缓冲器700存储α块的输出序列。图8示出用非线性函数F1(701)和F3(703)进行的非均匀抽取的框图示例。抽取装置800在非线性函数F3的输出的控制下对非线性函数F1的输出序列进行抽取。
图9显示所使用的非线性映射的一般形式的示例。所使用的每个函数F1、F2和F3都遵守基于拉丁方(LS)的一般非线性映射方案。
所使用的每个非线性函数由如图9中所示的多个拉丁方表组成。这些拉丁方表中的每一个都执行{0,1}M×{0,1}M→{0,1}M的映射。在典型的情形中,每个非线性函数都是包含两个层,即,第一层和第二层的结构。第一层包含多个拉丁方表901-1、901-2、...、901-i,而第二层包含多个拉丁方表901-j、...、901-k。
在图8中所示的处理中,根据从非线性函数F3(703)输出的抽取字的权重,密钥流生成器执行多个完整的循环而不输出所生成的比特。
图10示出密钥流序列生成器的框图示例。该密钥流序列生成器包括:
-3类不同的细胞自动机(CA),310、320、400;
-基于拉丁方的3个不同的非线性函数701-703:F1、F2和F3;其中F1和F2与存储器一起担当非线性组合器/过滤器;
-基本密钥流序列的非均匀抽取块800
在本实施例中,作为三类不同的CA,使用了2乘L CA 320、二维CA(2DCA)310和可控/可编程CA(CCA)400。每种CA的详细特性在以上对第一和第二实施例的描述的对应章节中已有描述。应当注意,所使用的细胞总数是本实施例中的族参数之一。
所使用的三种CA构成称为3-CA的子结构。以所得的3-CA子结构产生以下效果的方式将这三个CA组合在一起:
-高度非线性性(及不可预测性);
-输出序列周期的有保证的下界;
-输出序列经验证的统计特性
图10中所显示的3-CA结构工作如下:
·初始化:使用独立随机比特序列来初始化所有细胞。
·序列生成:3-CA结构的每个循环包括以下步骤:
(1)运行2乘L CA的一个循环以更新其所有细胞;
(2)运行2D-CA的一个循环以更新其所有细胞;
(3)基于2D-CA细胞指定CCA规则控制字;
(4)基于2乘L CA细胞指定状态控制字;
(5)运行CCA的一个循环以更新其所有细胞;以及
(6)执行对应的CCA、2D-CA和2乘L细胞的逐位模2加法。
由此,密钥流生成器的操作包括两个步骤:初始化和密钥流生成。
在任何的密钥流生成之前需要密钥流生成器的初始化。密钥流生成器的重新同步假定相同的操作为初始化。
初始化的主要步骤如下:
-设置所有CA细胞的初始值;
-运行密钥流生成器M次但不进行任何输出,其中M是密钥流生成器族的参数。
接下来,在每个工作循环中,执行密钥流生成器内的密钥流生成的主要操作。密钥流生成包括:
(1)更新所有CA;
(2)生成非线性函数输出;
(3)根据抽取规则前进至步骤(4)或重复步骤(1)和(2);以及
(4)生成输出序列块(密钥流块)。
如上所述,根据本实施例的密钥流生成器产生选择适用于各种各样的特定实现或应用约束的某些族成员的可能性。本实施例的密钥流生成器特别适合硬件实现,并且适合要求高度随机、极长周期和实际上不可预测的序列的各种应用。
第四实施例
根据本发明的第四实施例,提供了一种能够使用根据任一上述实施例的伪随机数生成器来执行密码处理的装置。
图11示出这一装置的示例。该装置可用诸如计算机系统或IC模块等信息处理装置来实现。该装置包括例如根据一个上述实施例的伪随机数生成器(PRNG)1100、CPU 1101、I/O接口1102、存储器1103、密码处理器1104和总线1105。
CPU 1101执行各种操作和程序,诸如密码处理的控制、数据发送/接收、组成单元之中的数据传输等等。存储器1103包括用于存储由CPU 1101执行的程序及固定操作参数的ROM、用作要被执行并改变参数的程序的存储区域和/或工作区域的RAM。此外,存储器1103可包括用于存储诸如密钥数据等加密处理所需的安全数据的安全存储区域。较佳的是用反篡改结构来配置此类安全存储区域。
密码处理器1104执行诸如流密码处理和/或译码处理等密码处理。或者,密码处理器1104可通过预先将密码处理程序存储在ROM中、并使CPU 1101读出并执行这些程序来实现。
PRNG 1100生成生成密码处理所使用的密钥所需的伪随机数。PRNG 1100是基于CA的,并可具有图3、6和10中所示诸结构中的一种。
I/O接口1102与用于例如输入指明要使用的密钥的信息和输出基于该密钥加密的文本数据的外部设备相接。或者,I/O接口1102可以是用于与诸如介质读/写器或IC模块或其它装置等外部设备进行数据通信的数据通信单元。
本领域技术人员应理解,根据设计需要及其它因素,可能发生各种修改、组合、子组合和改造,而在此情况下,它们仍落入所附权利要求书及其等效技术方案的范围之内。
Claims (11)
1.一种用于生成伪随机序列的装置,其特征在于,包括:
第一类型的细胞自动机,用于生成具有较高随机性的第一序列;
第二类型的细胞自动机,用于生成周期具有预定下界的第二序列;以及
用于执行所述第一序列与所述第二序列的逐位模2求和的加法器。
2.如权利要求1所述的装置,其特征在于:
所述第一类型的细胞自动机是二维细胞自动机;
所述第二类型的细胞自动机是2乘L细胞自动机;以及
来自所述加法器的求和结果作为所述伪随机序列输出。
3.如权利要求1所述的装置,其特征在于,还包括:
第三类型的细胞自动机,用于生成第三序列,所述第三类型的细胞自动机具有可基于对应的细胞控制字和/或规则控制字来计算其状态的细胞;其中
所述细胞控制字由所述第二类型的细胞自动机生成;
所述规则控制字由所述第一类型的细胞自动机生成;以及
所述加法器用于执行所述第一、第二和第三序列的逐位模2求和。
4.如权利要求3所述的装置,其特征在于:
来自所述加法器的求和结果作为所述伪随机序列输出。
5.如权利要求2或权利要求4所述的装置,其特征在于,还包括:
用于对来自所述加法器的求和结果执行非线性映射的块;以及
用于对所述非线性映射的结果执行非均匀抽取的块;
其中,所述抽取结果作为所述伪随机序列输出。
6.如权利要求5所述的装置,其特征在于:
所述块中每一个都包括至少一个非线性函数。
7.如权利要求5所述的装置,其特征在于:
所述用于执行非线性映射的块包括用于基于拉丁方进行非线性映射的至少一个查找表。
8.一种用于执行密码处理的装置,其特征在于,包括:
密码处理器,用于使用伪随机序列来对数据加密;以及
伪随机序列生成器,用于生成所述伪随机序列;
其中,所述伪随机数生成器被配置成包括如权利要求1-7中的任何一个所述的装置。
9.一种使用细胞自动机来生成伪随机序列的方法,其特征在于,包括以下步骤:
生成具有较高随机性的第一序列;
生成周期具有预定下界的第二序列;以及
执行所述第一序列与所述第二序列的逐位模2求和。
10.一种使计算机执行使用细胞自动机来生成伪随机序列的方法的计算机程序,所述计算机程序的特征在于:
所述方法包括以下步骤:
生成具有较高随机性的第一序列;
生成周期具有预定下界的第二序列;以及
执行所述第一序列和所述第二序列的逐位模2求和。
11.一种存储用于使计算机执行使用细胞自动机来生成伪随机序列的方法的计算机程序的记录介质,所述记录介质的特征在于:
所述方法包括以下步骤:
生成具有较高随机性的第一序列;
生成周期具有预定下界的第二序列;以及
执行所述第一序列和所述第二序列的逐位模2求和。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004258186A JP2006072891A (ja) | 2004-09-06 | 2004-09-06 | セルオートマトンに基づく、制御可能な周期を有する擬似乱数シーケンスの生成方法および装置 |
JP258186/2004 | 2004-09-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1860434A true CN1860434A (zh) | 2006-11-08 |
Family
ID=35149074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2005800011715A Pending CN1860434A (zh) | 2004-09-06 | 2005-09-05 | 具有可控周期的伪随机序列的基于细胞自动机的生成方法和装置 |
Country Status (8)
Country | Link |
---|---|
US (1) | US8023649B2 (zh) |
EP (1) | EP1787192A1 (zh) |
JP (1) | JP2006072891A (zh) |
KR (1) | KR20070048641A (zh) |
CN (1) | CN1860434A (zh) |
BR (1) | BRPI0506372A (zh) |
RU (1) | RU2006115569A (zh) |
WO (1) | WO2006028235A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614148A (zh) * | 2018-12-11 | 2019-04-12 | 中科驭数(北京)科技有限公司 | 数据逻辑运算方法、监测方法及装置 |
CN110213037A (zh) * | 2019-06-03 | 2019-09-06 | 华中师范大学 | 一种适合硬件环境的流密码加密方法及系统 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
HU227781B1 (hu) * | 2006-03-17 | 2012-02-28 | Pal Bela Dr Doemoesi | Szimmetrikus kulcsú kriptográfiai berendezés és eljárás információk titkosítására és visszafejtésére |
US8290287B2 (en) * | 2009-03-09 | 2012-10-16 | Laurence Hamid | Method for displaying encoded image data |
US8942373B2 (en) * | 2010-11-29 | 2015-01-27 | Beijing Z & W Technology Consulting Co., Ltd. | Data encryption and decryption method and apparatus |
US8793295B2 (en) * | 2011-07-18 | 2014-07-29 | Lsi Corporation | Method for fast calculation of the beginning of pseudo random sequences for long term evolution |
HUP1300501A1 (hu) * | 2013-08-26 | 2015-03-02 | Pannon Szoftver Kft | Automataelméleti alapú kriptográfiai berendezés és eljárás információk titkosítására és visszafejtésére |
DE102013222218A1 (de) * | 2013-10-31 | 2014-05-22 | Siemens Aktiengesellschaft | Konstruieren einer Schaltung geeignet zur Erzeugung von Zufallsbits und Schaltung zur Erzeugung von Zufallsbits |
US10078492B2 (en) * | 2014-05-13 | 2018-09-18 | Karim Salman | Generating pseudo-random numbers using cellular automata |
US10678511B1 (en) * | 2014-05-13 | 2020-06-09 | Karim Salman | Generating pseudo-random numbers using cellular automata |
US10394523B2 (en) * | 2015-10-14 | 2019-08-27 | Avanseus Holdings Pte. Ltd. | Method and system for extracting rule specific data from a computer word |
EP3659502A4 (en) * | 2017-07-28 | 2021-08-11 | Osaka University | DISTINCTION OF COMFORT / UNCOMFORT |
GB2568660B (en) * | 2017-10-20 | 2020-10-14 | Graphcore Ltd | Generating Random Numbers Based on a Predetermined Probaility Distribution in an Execution Unit |
JP7389348B2 (ja) * | 2020-03-12 | 2023-11-30 | 富士通株式会社 | 擬似乱数生成回路装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2841882B2 (ja) * | 1991-02-04 | 1998-12-24 | 日本電気株式会社 | 疑似乱数パタン発生器 |
US5511146A (en) * | 1991-06-26 | 1996-04-23 | Texas Instruments Incorporated | Excitory and inhibitory cellular automata for computational networks |
US6985918B2 (en) * | 2001-10-17 | 2006-01-10 | Hewlett-Packard Development Company, L.P. | Random number generators implemented with cellular array |
US7571200B2 (en) * | 2002-04-24 | 2009-08-04 | Hewlett-Packard Development Company, L.P. | Seedable pseudo-random number generator |
US6865660B2 (en) * | 2002-06-28 | 2005-03-08 | Micron Technology, Inc. | Method and apparatus for generating deterministic, non-repeating, pseudo-random addresses |
US7788479B2 (en) * | 2002-07-25 | 2010-08-31 | International Business Machines Corporation | Apparatus, system and method of ensuring that only randomly-generated numbers that have passed a test are used for cryptographic purposes |
WO2004086673A1 (ja) * | 2003-03-25 | 2004-10-07 | National Institute Of Information And Communications Technology Incorporated Administrative Agency | 乱数生成、暗号化および復号のための装置、方法、プログラム、並びに記録媒体 |
US7389316B1 (en) * | 2004-11-24 | 2008-06-17 | Xilinx, Inc. | Method and apparatus for true random number generation |
US7634522B1 (en) * | 2004-11-30 | 2009-12-15 | Novell, Inc. | Random number generation |
JP4500213B2 (ja) * | 2005-05-20 | 2010-07-14 | オリンパスイメージング株式会社 | データ符号化装置、データ復号化装置、データ符号化方法、データ復号化方法、プログラム |
US7716100B2 (en) * | 2005-12-02 | 2010-05-11 | Kuberre Systems, Inc. | Methods and systems for computing platform |
-
2004
- 2004-09-06 JP JP2004258186A patent/JP2006072891A/ja active Pending
-
2005
- 2005-09-05 RU RU2006115569/09A patent/RU2006115569A/ru not_active Application Discontinuation
- 2005-09-05 CN CNA2005800011715A patent/CN1860434A/zh active Pending
- 2005-09-05 EP EP05781965A patent/EP1787192A1/en not_active Withdrawn
- 2005-09-05 BR BRPI0506372-8A patent/BRPI0506372A/pt not_active Application Discontinuation
- 2005-09-05 US US10/578,505 patent/US8023649B2/en not_active Expired - Fee Related
- 2005-09-05 WO PCT/JP2005/016686 patent/WO2006028235A1/en not_active Application Discontinuation
- 2005-09-05 KR KR1020067008913A patent/KR20070048641A/ko not_active Application Discontinuation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614148A (zh) * | 2018-12-11 | 2019-04-12 | 中科驭数(北京)科技有限公司 | 数据逻辑运算方法、监测方法及装置 |
CN110213037A (zh) * | 2019-06-03 | 2019-09-06 | 华中师范大学 | 一种适合硬件环境的流密码加密方法及系统 |
CN110213037B (zh) * | 2019-06-03 | 2022-05-20 | 华中师范大学 | 一种适合硬件环境的流密码加密方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US8023649B2 (en) | 2011-09-20 |
BRPI0506372A (pt) | 2006-12-26 |
RU2006115569A (ru) | 2007-11-20 |
EP1787192A1 (en) | 2007-05-23 |
US20080304667A1 (en) | 2008-12-11 |
WO2006028235A1 (en) | 2006-03-16 |
KR20070048641A (ko) | 2007-05-09 |
JP2006072891A (ja) | 2006-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1860434A (zh) | 具有可控周期的伪随机序列的基于细胞自动机的生成方法和装置 | |
CN1714377A (zh) | 用于生成伪随机数的方法及伪随机数生成器 | |
CN1242587C (zh) | 高速、灵活的加密系统的方法及设备 | |
CN1148643C (zh) | 模幂运算装置 | |
CN1349182A (zh) | 加密、解密装置及扩展密钥生成装置、方法以及记录媒体 | |
CN1761185A (zh) | 乱序执行的数据流aes加密电路结构 | |
CN1879138A (zh) | 密码处理装置、密码处理方法及其计算机程序 | |
CN1702613A (zh) | 蒙哥马利模乘法器 | |
CN1822538A (zh) | 加密方法,加密装置,解密方法和解密装置 | |
CN1921382A (zh) | 一种基于aes算法的加解密方法及加解密器 | |
CN1701294A (zh) | 计算单元及以加密操作数执行算术运算之方法 | |
CN1282324C (zh) | 数据加密装置和方法 | |
CN1285191C (zh) | 公共密钥签字的方法和系统 | |
CN1782987A (zh) | 随机数发生器及生成随机数的方法 | |
CN1728634A (zh) | 伽罗瓦域中相乘的方法和设备与求逆设备及字节替换设备 | |
CN1320764C (zh) | 分段电路 | |
CN1312630A (zh) | 基于分块加密方式的加密装置与方法及译码装置与方法 | |
CN1130731C (zh) | 半导体只读存储器 | |
CN1221909C (zh) | 并行处理方法中的作业分配方法及并行处理方法 | |
CN101042682A (zh) | 访问控制装置、系统和方法,处理器 | |
CN1319210A (zh) | 可配置的硬件块的配置方法 | |
CN1102260C (zh) | 求乘数和被乘数之积的方法、系统、装置和乘法器 | |
CN1977250A (zh) | 进行加密或解密的计算机系统和计算机程序 | |
CN1235446A (zh) | 椭圆曲线变换装置、利用装置和利用系统 | |
CN1345495A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1094059 Country of ref document: HK |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1094059 Country of ref document: HK |