任意周期可控复杂度满足公设的随机序列方法和系统 本发明属于现代信息科学,涉及数字信息处理中的加密、解密、密钥、模拟等诸多领域,是不可破译密码体系、计算机模拟和科学研究所必须的方法和技术。提供一种容易实现、成本低廉、性能优良--周期任意长、可以控制其复杂度且符合Golomb随机性公设的伪随机序列的方法和系统。
伪随机序列是现代信息科学在信息处理时经常使用的工具,在密码系统、计算机模拟和科学研究中又是必须使用的工具,其周期长度、复杂度和是否符合Golomb随机性公设等是现代信息科学一直追求,但在理论和实际上都还没有十分好解决的课题。现有的方法和系统产生的随机序列都不能同时符合这些理论上的要求,一般只能满足其中一项或几项,特别是随机序列的周期都比较短,至今还没有一种非常好的能产生任意长周期的随机序列的方法,随机序列复杂度一般也不易或不可控制,因此造成许多在信息科学理论上成立的好方法因找不到符合要求的随机序列而在实际上不能应用。
本发明的目的是:提出一整套完整的方法和系统产生完全不同与其它方法和系统产生的随机序列,其随机序列具有现代信息科学追求地周期任意长,复杂度可以控制,符合Golomb随机性公设的特征,是其他方法和系统不能产生的随机序列。
任意周期可控复杂度满足Golomb公设的随机序列系统可以产生周期是任意长的随机序列,其周期长度由系统设计者定义,随机序列的复杂度高低也由系统设计者自行控制,而随机序列满足Golomb随机性公设的特性则是本方法自动满足,并且随机序列中的随机数与该随机数在整个序列周期中的位置是一一对应关系,因此应用任意周期可控复杂度满足Golomb公设的随机序列系统的随机序列具有
1:序列周期可充分长,任意长;
2:良好的随机统计性,序列中每位均匀分布;
3:序列线性不可预测性可充分大,由系统设计者设计;
4:序列中随机数与该随机数的在周期中的位置一一对应,从随机数位置可得出随机数,从随机数可得出该数位置;
5:序列完全满足Golomb随机性公设的优良特征。
下面具体描述任意周期可控复杂度满足Golomb公设的随机序列系统:
(1)任意周期可控复杂度满足Golomb公设的随机序列系统中存在随机序列基础矩阵,该矩阵的定义如下:X11X21X32......Xn1X12X22X32......Xn2X13X23X33......Xn3......X1mX2mX3m......Xnm]]>
矩阵中元素Xij是m进制数,每一列i[Xi1Xi2...Xim]中任意两数都不相等,即
Xij∈[0,1,2,3,...m-2,m-1]其中Xip≠Xiq p,q∈[1,2,3,...m-1,m]且 p≠q
(2)任意周期可控复杂度满足Golomb公设的随机序列系统中的随机数由基础矩阵中元素X1y1X2y2...Xnyn组成,y1,y2,...yn∈[1,2,3,...n-1,n]为n个任意的m进制数,一种简便的组成是:随机数X=X1y1*m((n-1)*m)+X2y2*m((n-2)*m)+...Xnyn*m((n-n)*m)
或随机数X是:X1y1X2y2X3y3...Xnyn
(3)任意周期可控复杂度满足Golomb公设的随机序列系统中存在确定y1,y2...yn的关系f(i),i是某随机数在随机序列中的位置
i∈[0,1,2,3,...2(n*m)-4,2(n*m)-3,2(n*m)-2,2(n*m)-1],关系f(i)可以是矩阵或线性、非线性等关系式。
(4)任意周期可控复杂度满足Golomb公设的随机序列系统中的随机序列周期是2(n*m),m和n决定周期长度,随机序列的复杂度和统计预测性由关系f决定。
(5)任意周期可控复杂度满足Golomb公设的随机序列系统在一个周期中取遍基础矩阵中所有元素的组合,正好有2(n*m)个数且这些数就是0~2(n*m)-1。
(6)任意周期可控复杂度满足Golomb公设的随机序列系统中随机数Xi=f(i),i=f1(Xi),也就是说随机数与在随机序列周期中的位置是一一对应关系,由随机数即可确定其位置,由位置即可确定某一随机数。
本发明的意义和优点在于:
(1)使产生随机序列系统有本质上的改进,产生的随机序列具有周期任意长、复杂度可以控制、满足Golomb随机性公设等优良特性。现有系统产生的随机序列不能同时具有这些特性,存在各自的缺陷。
(2)实现众多过去不能实现的在理论上成立且非常有国防、科学和工业价值的信息处理方法和系统。现有系统因不能产生符合其要求的随机序列而使这些方法和系统不可实现。
(3)实现众多过去不能实现或完成的科学和工程实验。现有系统因其自身的缺陷而使这些实验不可实现或完成。
(4)重新验证和改进众多科学和工程实验的结果。现有系统因其自身的缺陷已不能完成这项工作。
(5)为科学和工程提供一种全新的研究随机序列产生的方法,在学术上有重大意义和价值。现有系统已基本完成其可研究的工作。
(6)实现随机序列中随机数与该随机数在随机序列周期中位置一一对应的关系。现有系统一般不能提供这种一一对应关系。
实施例:一、制造随机序列基础数据模块,具体是:
(1)确定随机序列基础矩阵中元素的进制数、行数m、列数n,
(2)确定m进制数在每一列中的排放方式,
(3)依据实际系统要求用硬件或软件实现随机序列基础模块。二、制造关系f(i)器件,具体是:
(1)确定关系f(i),
(2)依据实际系统要求用硬件或软件实现关系f(i)。三、制造关系f(i)的反关系f1(Xi)器件,具体是:
(1)依据关系f(i)求出其反关系f1(Xi),
(2)依据实际系统要求用硬件或软件实现反关系f1(Xi)。
随机序列基础矩阵是系统实现随机序列的基础,系统依据关系f(i)实现随机序列,系统依据反关系f1(Xi)从某一随机数求出该随机数在周期中的位置。这三者组成一个完整的任意周期可控复杂度满足Golomb公设的随机序列系统,实现随机序列的产生和依据某随机数确定该随机数在随机序列周期中位置的功能。依据实际需求可由随机序列基础数据模块和关系f(i)器件组成仅产生随机序列的随机序列输出系统,或由随机序列基础数据模块和反关系f1(Xi)器件组成由随机数得出其位置的系统。一、制造随机序列基础数据模块
随机序列基础数据模块的制造基本分为两步:一是随机序列基础矩阵的定义,二是该随机序列基础数据模块的实现。基础矩阵定义的主要考虑是系统要求随机序列的周期长度,其次是实现的难度。这两点在各实际系统中会有很大的不同。
(1)确定随机序列基础矩阵中元素的进制数、行数m、列数n
矩阵中元素进制数的确定基本由系统实现的难易决定。如果要在通用计算机系统中用软件实现,m以8、10、16进制为易,但m越小矩阵将越大,取16进制数在C语言中是十分明智的选择;如果要在专用系统中用硬件实现则m的确定要依据硬件制造的难易来确定。
列数n由系统要求的随机序列周期长度(假设是)2x和行数m算得,其计算公式是:n=x/m。例:系统要求随机序列的周期是21024位,则n=1024/16=64。
依据系统要求随机序列周期是21024位,取矩阵中元素为16进制数,则随机序列基础矩阵的行数m是16,列数n是64。
(2)确定m进制数在每一列中的排放方式
因为基础矩阵有m行所以每一列正好有m个元素,而元素是m进制则正好是把m进制中的m个基数放到这一列中。排放方法可由系统设计者随意排放,最简单的有按顺序和随机排放两种。为控制随机序列的复杂度最好是每一列的排放都不相同,都用随机的方式产生排放的顺序。
下面是随机排放的一个例子(16行*64列),随机序列基础矩阵B=
下面是顺序排放的一个例子(16行*64列),随机序列基础矩阵B’=
(3)依据实际系统要求实现随机序列基础数据模块
实现基础数据模块在软件和硬件方式下都会有很多种不同的方法。例如在软件方式下,用C语言实现就可以有许多种方法,最简单的是用矩阵定义的方法直接定义随机序列基础数据矩阵。
下面是一个具体例子:
int B[16,64]={d,2,a,3,d,a,6,1,0,3,a,a,9,b,1,f,a,8,7,c,b,4,a,6,a,7,0,8,e,0,d,2,7,0,d,6,9,2,5,b,2,2,c,8,f,e,6,f,f,0,8,c,c,b,c,5,b,f,5,a,1,f,2,0,1,9,e,0,3,6,0,2,2,1,9,d,1,a,6,2,3,e,9,8,5,8,5,2,1,9,2,3,1,5,2,9,6,7,5,1,7,4,9,8,d,4,d,2,0,9,e,6,a,7,2,d,0,7,4,0,c,a,8,e,3,0,1,c,7,6,b,f,e,f,4,5,8,c,c,e,4,1,7,b,e,2,2,d,6,5,4,3,f,4,1,e,9,4,8,3,8,d,7,c,5,7,c,9,1,0,e,9,a,8,b,d,d,9,5,5,4,1,e,1,9,6,a,0,a,e,6,d,9,c,5,4,a,7,9,4,f,e,3,5,0,d,b,7,c,4,f,4,8,2,6,0,6,d,d,6,3,f,7,c,5,f,2,f,2,e,e,3,a,d,2,5,9,a,1,b,8,4,a,e,b,6,9,4,5,2,1,f,4,c,d,6,8,b,7,8,9,8,d,6,b,2,e,4,8,6,f,e,b,d,e,f,d,7,d,a,e,1,f,7,c,e,b,7,4,1,9,7,0,c,d,4,e,1,5,0,b,c,8,5,1,8,e,4,8,9,a,e,6,b,3,8,0,a,3,a,b,7,9,e,7,d,f,7,1,8,8,6,3,7,0,a,1,0,8,b,2,6,b,b,9,6,9,a,b,c,a,4,f,e,3,e,6,a,b,0,4,7,0,d,e,2,f,2,3,f,d,7,d,5,0,f,f,e,f,7,9,d,e,e,6,5,6,2,8,5,8,c,3,0,d,9,2,8,5,1,0,1,6,1,7,a,9,f,7,5,6,b,d,3,6,0,3,8,4,4,b,b,a,1,5,c,b,f,1,d,9,8,2,e,7,8,6,8,f,9,e,9,6,6,f,1,8,1,f,a,1,5,0,b,5,8,5,d,f,0,5,4,a,5,2,c,a,7,1,3,8,c,4,c,e,d,a,d,4,f,b,5,0,b,e,5,1,6,c,5,1,7,6,1,d,9,7,5,c,9,f,4,6,d,1,3,7,5,7,2,7,b,e,f,0,1,b,2,1,9,7,a,1,8,d,f,e,d,d,3,c,6,0,1,3,4,c,3,5,f,2,9,c,6,1,4,8,d,1,f,3,a,6,3,a,4,d,6,c,4,c,a,4,b,e,2,7,c,4,7,0,c,e,5,5,8,3,e,2,9,6,1,3,b,d,f,0,1,a,9,9,3,7,7,4,e,c,c,c,e,8,b,a,5,4,7,3,5,2,2,1,9,d,8,6,d,b,6,8,a,2,b,7,7,9,2,1,2,a,3,b,b,d,d,2,b,b,6,c,4,a,8,c,6,f,9,a,0,e,9,5,2,7,2,2,6,f,b,b,2,e,0,e,9,5,8,8,1,6,a,9,1,c,b,b,3,4,d,8,5,f,e,3,c,3,3,4,a,4,c,9,1,9,e,1,2,7,8,d,9,c,8,b,f,2,0,3,a,4,0,7,a,a,4,b,c,f,5,d,c,8,f,0,0,4,9,f,5,0,0,c,4,0,8,e,d,e,a,e,0,c,9,7,e,0,9,4,e,c,0,0,3,e,d,3,3,7,a,2,a,2,c,b,1,2,3,9,9,5,4,d,c,5,3,2,3,9,7,2,3,c,e,4,4,4,a,d,a,a,d,0,d,b,f,7,9,f,6,5,b,a,9,6,a,f,0,f,f,8,f,f,1,4,7,5,e,b,3,6,6,2,f,d,6,8,1,9,3,d,9,0,3,0,d,8,7,2,e,e,d,4,6,4,b,b,3,3,0,5,6,1,5,3,b,7,8,2,e,3,0,5,b,f,a,0,3,f,8,8,3,4,c,3,a,7,3,7,4,2,1,5,b,0,0,5,d,8,3,a,4,4,2,5,b,4,2,4,1,f,b,1,c,c,f,c,5,6,f,6,0,8,8,6,9,5,9,f,f,2,7,d,2,b,c,7,2,1,8,d,c,a,2,3,6,0,7,7,b,6,b,5,5,a,c,0,1,b,a,1,0,5,7,3,5,c,4,6,4,a,7,c,3,4,d,c,4,b,e,6,b,7,7,e,c,c,9,9,5,3,3,9,e,1,1,3,a,4,2,8,1,0,e,9,6,c,5,a,1,2,2,9,8,9,6,8,f,3,0,6,6,f,f,3,c,3,8,0,0,e,d,8,7,f,5,□};二、制造关系f(i)器件,具体是:
(1)确定关系f(i)
关系f(i)决定随机序列的复杂度,是系统设计者需要着重考虑的问题,实际上可以有无数种关系,这里仅简单地列举矩阵和线性关系各一例。
矩阵关系:f(i)是一个16*64矩阵F=
即y1y2...y63由矩阵F决定。如:当i(1024位)=3456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123时
y1=F[3,0]=7;
y2=F[4,1]=3;
y3=F[5,2]=7;
y4=F[6,3]=5;
...
y61=F[0,60]=c;
y62=F[1,61]=2;
y63=F[2,62]=4;
y64=F[3,63]=1;
这时的随机数=B[1,y1]*m((n-1)*m)+B[2,y2]*m((n-2)*m)+...+B[n-1,yn-1]*m((n-(n-1))*m)+B[n,yn]*m((n-n)*m)]]>=B[1,7]*16((64-1)*16)+B[2,3]*16((64-2)*16)+B[63,4],16((64-63)*16)+B[64,1]*16((64-64)*16)=f*16(63*16)+c,16(62*16)+1*16(61*16)+...+d*16(3*16)+e*16(2*16)+3*16(1*16)+c*16(0*16)=fcle...de3c (共1024位)
线性关系:f(i)是一个函数表达式yj(i)等于i的第(j-1)*4位到(j)*4-1位。当i=789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456时
y1=7:
y2=8:
y3=9:
y4=a:
y61=3:
y62=4:
y63=5:
y64=6:
这时的随机数=B[1,y1]*m((n-1)*m)+B[2,y2]*m((n-2)*m)+...+B[n-1,yn-1]*m((n-(n-1))*m)+B[n,yn]*m((n-n)*m)]]>=B[1,7]*16((64-1)*16)+B[2,8]*16((64-2)*16)+B[63,5]*16((64-63)*16)+B[64,6],16((64-64)*16)=f*16(63*16)+f*16(62*16)+2*16(61*16)+...+4*16(3*16)+a*16(2*16)+e*16(1*16)+1*16(0*16)=ff26...4ael (共1024位)
(2)依据实际系统要求用硬件或软件实现关系f(i)
实际系统根据关系f(i)编写程序或制造硬件实现关系f(i)。三、制造关系f(i)的反关系f1(Xi)器件,具体:
(1)依据关系f(i)求出其反关系f1(Xi)
运用数学手段求出关系f(i)的反关系式f-1(Xi)。此例的反关系f-1(Xi)可利用矩阵B和F实现。例:当随机数X=fcle...de3c(共1024位)时可由矩阵B得出
y1=7 (f对应第0列第7行):
y2=3 (c对应第1列第3行):
y3=7 (1对应第2列第7行):
y4=e (e对应第3列第e行):y61=c (d对应第60列第c行);y62=2 (e对应第61列第2行);y63=4 (3对应第62列第4行);y64=1 (c对应第63列第1行);
利用y1 y2 y3...y61 y62 y63 y63和矩阵F得出i=3456...0123(共1024位)(2)依据实际系统要求硬件或软件实现反关系f1(X)
实际系统根据反关系f-1(Xi)编写程序或制造硬件实现反关系f-1(Xi)。