随机序列产生设备、加密/解密设备及其方法和程序的制作方法

文档序号:2392170阅读:165来源:国知局
专利名称:随机序列产生设备、加密/解密设备及其方法和程序的制作方法
技术领域
本发明涉及随机序列产生设备,加密/解密设备,随机序列产生方法,加密/解密方法和程序。
背景技术
迄今为止,已经提出了许多的随机序列产生技术。通过使用这些技术获得的随机数例如可以用在蒙特卡罗分析法中的物理现象和化学现象的各种类型的模拟中,以及用在用于保密通信的块加密系统中。
期望这些随机序列产生技术能满足各种属性,如此包含在获得的随机序列中的数值分布应当是相同的。当只看到这个预定义位时,在计算机里的数值表达式中的预定义位上的“0”和 “1”的出现频率应尽可能平衡,且随机序列的周期应尽量的长。

发明内容
因此,本发明的目的就是提供随机序列产生设备和随机序列产生方法,该设备和方法产生作为随机序列的具有更可取的属性的随机数序列,并且提供加密/解密设备和加密/解密方法,该方法使用该随机序列产生设备和方法,以及提供程序,该程序能使用计算机实现那些设备和方法。
为实现这个目的,根据本发明的第一方面,提供一种随机序列产生设备,该设备产生w位的整数序列,并且该设备包括种子接收部,初始化部,转换部,旋转部,更新部和输出部,设计如下。
种子接收部,该部接收w位的整数序列s1,s2,...,sn,...,sm作为整数n和m(1≤n≤m-1)的种子。
初始化部,该部将接收的整数序列s1,s2,...,sn,...,sm作为整数序列x1,x2,...,xn,...,xm提供给转换部。
所述转换部在每个所述提供的整数序列x1,x2,...,xn,...,xm上执行预定的转换,以获得w位的整数序列y1,y2,...,yn,...,ym。
旋转部,该部从整数序列yn+1,...,ym获得大量的旋转位,并在获得的、与所述作为wm位的位序列的整数序列y1,y2,...,yn,...,ym的全部或部分有关的旋转位数上执行旋转操作,从而从已获得的wm位的位序列获得w位的整数序列z1,z2,...,zn,...,zm。
更新部,该部将整数序列z1,z2, ...,zn,...,zm作为所述整数序列x1,x2,...,xn,...,xm提供给转换部。
输出部,在所述转换部中的转换和所述旋转部中的旋转都重复预定次数时,该部输出最后获得的整数序列z1,z2,...,zn或zn+1,...,zm,它们分别作为随机序列r1,r2,...,rn或r1,r2,...,rm-n。
在随机序列产生设备中,转换部通过以下给出的、对于整数i(1≤i≤m-1)的使用映射g(·,·)的递推公式执行转换y1=g(xm,x1)yi+1=g(xi,xi+1)。
在随机序列产生设备中,转换部能够通过以下给出的、对于整数i(1≤i≤m-1)的使用映射g(·,·)的递推公式执行转换y1=g(xm,x1)yi+1=g(xi,xi+1)。
可选择的,在随机序列产生设备中,转换部能够通过以下给出的、对于整数i(1≤i≤m-1)的使用预定整数c和映射g(·,·)的递推公式执行转换y1=g(c,x1)yi+1=g(yi,xi+1)。
在随机序列产生设备中,转换部还能够通过以下给出的对于整数i(1≤i≤m-1)的使用映射g(·,·)的递推公式来执行转换y1=g(c,x1)yi+1=g(xi,xi+1)。
在任一随机序列产生设备中,映射g(·,·)由预定映射h (·)和预定整数q(0≤q≤2w-1)定义为g(a,b)=2b2+h(a)b+q(mod 2w)。
在随机序列产生设备中,映射h(·)定义为h(a)=a。
在随机序列产生设备中,映射h(·)可以通过清除在给定值的数字表达式中的一预定位的操作定义。
在随机序列产生设备中,映射h(·)可以通过倒置给定值的数字表达式中的一预定位的操作定义。
在随机序列产生设备中,映射h(·)可以通过将在给定值的数字表达式中的最低两个有效位设置为01的操作定义的。
在任一随机序列产生设备中,把整数序列yn+1,......,ym作为w(m-n)位序列的位序列,旋转部可以获得与作为整数的位序列等数的整数值作为所述的旋转位数,且该位序列通过在由所述位序列中析取的预定位置处布置至少一位而获得的。
在任一随机序列产生设备中,把整数序列yn+1,......,ym作为w(m-n)位序列的位序列,旋转部可以根据位序列中的预定位置上的位值来确定旋转方向。
在任一随机序列产生设备中,旋转部可以从所述整数序列yn+1, ...,ym获得旋转位的位数,针对整数序列y1,Y2,yn,...,ym被视为wn位的位序列,执行所述获得的旋转位数的旋转操作,可以从已获得的wn位的位序列获得w位的整数序列z1,z2,...zn,针对整数序列y1,Y2,yn,...,ym被视为wn位的位序列,执行已获得的旋转位数的旋转操作,而且由所述获得的w(m-n)位的位序列获得w位的位序列的整数序列zn+1,...,zm。也就是说,ui通过预定旋转位数的旋转操作便得到zi。
根据本发明第二方面,提供加密/解密设备,它包括旋转部、信息接收部,加密/解密部,上述部定义如下。
随机序列产生部通过上述随机序列产生设备产生随机序列r1,r2,...,rn。
消息接收部接收作为消息的w位的整数序列p1,p2,。
加密/解密部输出整数序列p1xor r1,p2xor r2, ...,pixor r((i+n-1)mod n)+1),其作为加密或解密的结果。
根据本发明的第三方面,提供随机序列产生方法,此方法产生w位整数序列,该方法包括种子接收步骤,初始化步骤、转换步骤、旋转步骤、更新步骤和输出步骤,其设计如下。
种子接收步骤,该步骤接收w位的整数序列s1,s2,...,sn,...,sm作为整数n和m(1≤n≤m-1)的种子。
初始化步骤,该步骤将接收到的整数序列s1,s2,...,sn,...,sm作为整数序列x1,x2,...,xn,...,xm提供给转换步骤。
转换步骤在每个所述提供的整数序列x1,x2,...,xn,...,xm上执行预定的转换,以获得w位的整数序列y1,y2,...,yn,...,ym。
旋转步骤从整数序列yn+1,...,ym获得旋转位数,针对整数序列y1,y2,...,yn,...,ym的全部或部分被视作为wm位的位序列,执行获得的旋转位数的旋转操作,从而从wm位的已获得的位序列获得w位的整数序列z1,z2,...,zn,...,zm。
更新步骤将整数序列z1,z2,...,zn,...,zm作为所述整数序列x1,x2,...,xn,...,xm提供给转换步骤。
输出步骤在转换步骤中的转换和所述旋转步骤中的旋转都重复预定次数的情况下,输出最后获得的整数序列z1,z2,...,zn或zn+1,...,zm分别作为随机序列r1,r2,...,rn或r1,r2,...,rm-n。
在随机序列产生方法中,转换步骤通过以下给出的、对于整数i(1≤i≤m-1)的使用映射g(·,·)的递推公式执行转换y1=g(xm,x1)yi+1=g(xi,xi+1)。
可选择的,在随机序列产生方法中,转换步骤通过以下给出的、对于的整数i(1≤i≤m-1)的使用预定整数c和映射g(·,·)的递推公式执行转换y1=g(c,x1)yi+1=g(yi,xi+1)。
在随机序列产生方法中,转换部还通过以下给出的对于整数i(1≤i≤m-1)的使用映射g(·,·)的递推公式执行转换y1=g(c,x1)yi+1=g(xi,xi+1)。
在任一随机序列产生方法中,映射g(·,·)由预定映射h(·)和预定整数q(0≤q≤2w-1)定义为g(a,b)=2b2+h(a)b+q(mod 2w)。
在随机序列产生方法中,映射h(·)定义为h(a)=a。
在随机序列产生方法中,映射h(·)可以通过清除给定值的数字表达式中的预定位操作定义。
在随机序列产生方法中,映射h(·)可以通过倒置给定值的数字表达式中的预定位操作定义。
在随机序列产生方法中,映射h(·)可以通过将给定值的数字表达式中的最低两个有效位设置为01的操作来定义的。
在任一随机序列产生方法中,把整数序列yn+1,......,ym作为w(m-n)位序列的位序列,旋转步骤可以获得与视为整数并通过在从该位序列抽取的预定位置处至少布置一位而获得的位序列等效的整数值作为所述的旋转位数。
在随机序列产生方法中,将整数序列yn+1,...,ym视为w(m-n)的位序列,旋转步骤可以基于位序列中的预定位置处的位值确定旋转的方向。
在任一随机序列产生方法中,旋转步骤从所述整数序列yn+1,...,ym获得旋转位的数字,针对整数序列y1,y2,yn,...,ym被视为wn位的位序列执行已获得的旋转位数的旋转,可以从获得的wn位的位序列获得wn位的整数序列z1,z2,...zn,针对整数序列yn+1,...,ym被视为w(m-n)位,执行已获得的旋转位数的旋转,且由所述获得的w(m-n)位的位序列获得w位的位序列的整数序列zn+1,...,zm。
根据本发明第四方面,提供加密/解密方法,其包括随机列产生步骤、信息接收步骤、加密/解密步骤,上述步骤定义如下。
随机序列产生步骤通过上述随机序列产生设备产生随机序列r1,r2,...,rn。
消息接收步骤接收w位整数序列p1,p2,...作为消息。
加密/解密步骤输出整数序列p1xor r1,p2xor r2,...,pixor r((i+n-1)mod n)+1,其作为加密或解密的结果。
根据本发明的第五方面,提供一程序,该程序可使计算机起上述随机序列产生设备、加密/解密设备的作用,以执行上述随机序列产生方法或加密/解密方法。
这些程序可以记录在计算机可读信息记录介质上,例如压缩盘、软盘、硬盘、光盘、数字视频盘、磁盘或半导体存储器。
每个程序可以通过计算机通信网络分配和出售,而与运行该程序的计算机无关。计算机可读信息记录介质可独立于计算机进行分配和出售。


在读了以下详细的描述和附图之后,将更加清楚本发明的这些和其他目的以及优点,其中图1是示例图,它示出了根据本发明实施例的随机序列产生设备的示意性结构。
图2是程序流程图,它示出了要由实施例的随机序列产生设备执行的随机序列产生程序的控制流程。
图3是说明图,它示出了在实施例的随机序列产生设备的旋转部中如何获得旋转位的数字。
图4是说明图,它示出了在实施例的随机序列产生设备的旋转部中如何完成旋转操作。
图5是说明图,它示出了计算机的典型示意性结构,该计算机用来实现实施例的随机序列产生设备。以及,图6是说明图,它示出了加密设备和解密设备的示意性结构。
具体实施例方式
下面将参考附图来描述本发明的优选实施例。以下所描述的实施例为说明性的,并不限制发明的范围。因此,本领域熟练的技术人员可以使用其中可以用等效的组件来个别或完整地替代代替这些组件的具体实施例,并且它们也包含在发明的范围之内。
下面讨论的本发明的一个实施例中,为产生“用w位数字表示的随机数”序列,由预定映射h(·)和预定整数q(0≤q≤2w-1)定义为g(a,b)=2b2+h(a)b+q(mod 2w)的映射g(·,·)被用作有限域上的非线性转换。
实施例可以应用下列操作,该操作通过使用预定义的掩码MASK来清除给定值a的数字表达式中的预定位h(a)=a and MASK。
实施例也可以利用下列操作,该操作在给定值a的数字值表达式中倒置(invert)预定义位h(a)=a xor MASK。
此外,实施例应用下列操作,该操作在给定值a的数字值表达式中,将不重要的两位设置为01。
h(a)=(a and(not 3))or 1。
上述操作中,单独的运算符符合值a的数字表达式(整数表达式),特别的,“and”相当于位AND,“xor”相当于位异或exclusiueOR,“not”相当于位求反(bit NOT)以及“or”相当于位OR。
因此,正是使用为w位整数操作所作的准备来完成这些操作,并且没有在计算机中的进位(carry-over)和借位(carry-under)上特别考虑。
值得期望的是,w的值应当拥有在计算机的CPU(中央处理单元)中准备的机器字的位宽,或比较小的宽度。
RC6可以认为是当前在有限域内、通过使用非线性转换完成的、最快的块加密技术之一f(x)=2x2+x(mod 2w)但是,通过从种子产生的随机序列总是不同于由不同的种子(一对一映射)产生的随机序列,而且产生随机序列的最大周期是2w-1。
在这个实施例中使用的映射g(·)比在RC6中使用的有限域内的非线性转换更为普遍,而且其能够产生等同于当使用h(a)=1和q=0的映射g(·,·)时、通过RC6产生的随机序列。因为映射不同于那些相当于在本发明中可选择的RC6的映射,所以可以获得随机数的各种变化。
实验证明,即使当选择其它操作和值时,也可以得到随机数字的各种各样的变化。
图1是示例图,它示出了根据本发明实施例的随机序列产生设备的示意性结构。图2是程序流程图,它示出了通过实施例的随机序列产生设备执行的随机序列产生程序的控制流程。参考这些附图,下面将详细讨论实施例。
随机序列产生设备101,该设备产生w位整数序列,且包括种子接收部102,初始化部103,转换部104,旋转部105,更新部106和输出部107。
随机序列产生设备101中的种子接收部102接收作为种子的w位的整数序列s1,s2,...,sn,...,sm,其中1≤n≤m-1。
虽然整数序列s1,s2,...,sn,...,sm存储在诸如如RAM(随机存取存储器)此类之存储器中,这些存储器典型提供在随机序列产生设备中。整数序列可以存储在CPU的缓存或临时存储在可读写的外部记录介质中,如硬盘。
然后,初始化部103将所述接收的整数序列s1,s2,...,sn,...,sm作为整数序列x1,x2,...,xn,...,xm提供给转换部(步骤S202)。
整数序列x1,x2,...,xn,...,xm同样存储在内存中,如RAM。在这种情况下,由初始化部103执行的处理可以通过将值从相应于s1,s2,...,sn,...,sm的存储区传递到相应于x1,x2,...,xn,...,xm的存储区来完成。
此外,转换部104在每个提供的整数序列x1,x2,...,xn,...,xm上执行预定的转换,以获得w位的整数序列y1,y2,...yn,...,ym(步骤S203),该预定转换由非线性转换g(·,·)来定义。
在转换时,通过以下递推公式定义转换(1)下面给出的对于整数i(1≤i≤m-1)的递推公式y1=g(xm,x1)yi+1=g(xi,xi+1)。
(2)下面给出的是使用预定整数c和映射g(·,·)的对于整数i(1≤i≤m-1)的递推公式y1=g(c,x1)yi+1=g(yi,xi+1)。
(3)下面给出的是使用映射g(·,·)的对于整数i(1≤i≤m-1)的递推公式y1=g(c,x1)yi+1=g(xi,xi+1)。
那些计算能通过使用CPU提供的ALU(算术逻辑单元)完成。整数序列y1,y2,...,yn,...,ym同样大约存储在内存中。
旋转部105从整数序列yn+1,...,ym获得旋转位的位数(步骤S204)。以下是获得旋转位数的可利用的方案。
将yn+1,...,ym作为位序列,预定义位置的位按次序排列,再次将结果值作为整数值。图3显示了当w=4和m-n=2时,如何从预定义位处的值获得整数值。在所阐述的事例中,可以从8位随机序列中抽取3位。
从三位中获得8个整数值0~7(假如是无符号的整数值)。在此情况下,所用旋转方向是“预定义方向(向左或向右)”,并且获得的整数值直接看作是旋转位的位数。
在一替代的情况下,一个位代表符号(相关于正或负信号),从剩下的两位中获得旋转量,以绝对值的位数,如果是正符号,可以向左旋转该值,或者如果是负符号,可以向右旋转该值。
然后,旋转部105在获得的、针对整数序列y1,y2,...,yn,...,ym的全部或部分被视为wm位的位序列执行旋转位数的一个预定的旋转操作,并从wm位的已获得的位序列获得w位的整数序列z1,z2,...,zn,...,zm(步骤S205)。
下列旋转操作可用作预定义旋转操作。
(1)wn位的位序列由获得的旋转位的位数被进行循环移位。图4示出了示意性结构,该结构是在w=4、n=4、y1,y2,...,y4都排列在大的endian中并且象循环移位一样以一位向左侧移位的情况下的。这是用来旋转wn位的位序列的一部分位序列的旋转操作。
(2)wn位的全部的位序列都由获得的旋转位的位数进行循环移位。wn位的全部的位序列应当以与图4中wn位的位序列的旋转相似的方式进行循环移位。
(3)在y1,...,ynwn位的位序列循环移位获得的旋转位的位数或在y1,...,ynw(m-n)位的位序列循环移位获得的旋转位的位数。
考虑到进位和借位,这些方案可通过以CPU的一位宽度单位循环移位存储在内存中的全部或部分的y1,y2,...,yn,...,ym来完成。在这种情况下,获得的z1,z2,...,zn,...,zm则作为新值存储在存储区中,该存储区已经存储了y1,y2,...,yn,...,ym。
此外,输出部107确定在转化部104中的转化和在旋转部105中的旋转是否已重复了预定次数(步骤S206)。
例如,步骤S206中的判定可通过在步骤S201之前通过对存储器中预备的计数器变量设置“预定次数的值”做出,在步骤S204和步骤S206之间对计数器变量的值递减1,并确定计数器变量值是否成为0。
当转换和旋转已重复了预定次数时(步骤S206中的是),最后获得的z1,z2,...,zn作为随机序列r1,r2,...,rn(步骤S207)输出,在此之后,结束随机序列的产生。
当转换和旋转没有重复预定次数时(步骤S206中的否),那些z1,z2,...,zn作为整数序列x1,x2,...,xn,...,xm(步骤S208)提供给转换部104,在此之后返回步骤S203,并重复转换(步骤S203)和旋转(步骤S204和步骤S205)。
这个操作可通过将存储z1,z2,...,zn,...,zm的存储区左右中的值转换到存储x1,x2,...,xn,...,xm的存储区左右来完成。
随机序列产生设备101具有一未图解说明的存储器部,该存储器部通过对值的使用的相关性进行分析,能在不同区域或相同区域(例如,y1,y2,...yn,...,ym,z1,z2,...,zn,...,zm,等等)以存储s1,s2,...,sn,...,sm,x1,x2,...,xn,...,xm,y1,y2,...,yn,...,ym,z1,z2,...,zn,...,zm,r1,r2,...,rn等等的方式来构建。各部件将已计算值交换到另一个使用公用存储器的另一部件中。
图5是阐明计算机的典型示意性结构的实施例图,该结构根据实施例实现了随机序列产生设备101。该结构通过参照图5进行描述。
CPU302控制计算机301。当计算机301开启时,CPU302执行在ROM303中准备好的IPL(初始程序加载)。
IPL的执行是加载记录在装入软盘驱动器304中的软磁盘或硬盘等等中的OS(操作系统),使计算机301准备接收用户输入的各种指令。
用户操作键盘306或鼠标307向计算机301输入各种指令。
依照该输入,OS使CPU302执行已记录在装入CD-ROM驱动器中的硬盘305或CD-ROM(高密度磁盘ROM)中的程序,并处理已记录在那里的各种类型的数据,并且在显示器309上显示处理的进展或结果。
CPU302使用RAM311作为临时的存储区。RAM311用于存储如上述计算中使用的数字的各种序列。
此外,CPU302能保存信息,该信息是指处理产生随机序列的结果和程序执行期间在硬盘305中处理的进展。
本实施例的操作能减少到如上所述的简单位操作。因此,随机序列产生设备101能通过组合专用电子电路(加法器,减法器,移位器,锁存器等等)或使用电子元件来构成,该电子元件的电路结构能易变的更换,如ASIC(应用特殊集成电路),DSP(数字信号处理器),或FPGA(现场可编程门阵列)。这些模式包含在本发明的范围内。
(实验的结果)依据实施例,使用随机序列产生设备101从下列数据产生随机序列w=32n=32和
g(a,b)=2b2+h(a)b其中,通过操作定义映射h(·),该操作将在给出值的数值表达式中最低两位设置为01。
此外,各个转换和旋转每轮执行一次。就是说,“预定次数”是一。
要输出的随机序列是r1,r2,...,r1024,该序列由总共wn=1024位组成。
将种子的20000×89999个类型赋予随机序列,以输出20000×89999轮的随机序列r1,r2,...,r1024。
OFFIPS 140-1和FIPS140-2、检验随机序列的随机性的标准测试、将符合标准安全规格的随机性测试被应用于在1024位的随机序列中的各单独位的位置上,以检测由实施例产生的随机序列的性质。
在这些测试中,20000位的位序列由单个位位置析取,并且,接下来的过程在20000位的位序列上执行。
单一位测试,其检测在预定位置的位值出现(occurence)的频率是否不平衡。
插入(poker)测试将20000位划分为5000个模式,其每个模式由四个位组成,并校验四位模式的出现值的频率是否不平衡。
运行测试检测从随机序列析取的预定长度的运行的出现值频率是否不平衡。
长运行测试与运行测试相似,但是,当在FIPS140-1的情况下,有34或更多个运行时对随机性求反,以及当在FIPS140-2的情况下,有26或更多个运行时对随机性求反。
如FIPS140-1中所示的试验结果,在产生的1024(位)×89999取样中的每一个的20000位的序列都通过了设置标准。
在FIPS140-2中,在产生1024(位)×89999取样中,20000位序列的99.92%都通过了设置标准。
本发明应用于NIST800-22,以检测随机测试服务器的随机性,不是上述的随机测试。结果显示,使用旋转方案(3)能提供极有利的随机数字。
因为这个算法安装到了Vertex xcv 1000(100,000,000系统门)的FPGA上(XILINX(商标)公司的产品),由于算法的并行处理,随机序列能以25.62G比特/秒的速度产生。也就是说,硬件安装了算法,诸如FPGA,能在改进速度上带来重要价值。
简而言之,证明了通过实施例产生的随机序列产生具有极有利的性质,能对秘密通信的加密领域和物理现象的仿真领域及化学现象等有效,并且对由硬件以高速输出具有高随机性的随机序列将显著的有效。
(加密/解密设备)加密和解密能通过使用上述的随机序列产生设备完成。图6是示范图,它说明了加密设备和解密设备的示意性结构,该设备执行这样的加密和解密。
加密设备601和解密设备651使用s1,s2,...,sn,...,sm作为公用密钥。然后,加密设备601中的产生部602和解密设备651中的产生部652具有结构相同(相同计算方案)的随机序列产生设备201,并接收公用密钥s1,s2,...,sn,...,sm作为输入。然后,产生部602和652都产生相同的随机数字r1,r2,...,rn。
在加密设备601中,XOR部604使用随机数字将接收部603接收的传输消息的整数序列p1,p2,...变换为p1xor r1,p2xor r2,...,pixor r((i+n-1)mod n)+1,并输出结果作为加密的消息的整数序列e1,e2,...,ei,...,这里,“xor”意指上述异或OR,“a mod n”意指a除以n的余数。
解密设备651中的消息接收部653接收加密消息的整数序列e1,e2,...,ei,...,XOR部654将该整数序列变换为e1xor r1,e2xor r2,...,eixor r((i+n-1)mod n)+1,并输出结果作为加密消息的整数序列f1,f2,...,fi,...。
如fi=eixor r((i+n-1)mod n)+1=(Pixor r((i+n-1)mod n)+1)xor r((i+n-1)mod n)+1=pI,加密的传输消息的整数序列与原始传输消息的整数序列相同,这是能正确完成加密和解密的证据。
处理消息的长度可设置为n或更少。在这种情况下,((i+n-1)mod n)+1可用i替换。这样能使机密性比相同随机序列的重复使用更高。
由于加密设备601和机密设备651具有完全相同的结构,因此具有此结构的一个设备可在某种情况下用作加密设备601,在其他情况下用作解密设备651。
正如以上明确的说明,本发明能提供随机序列产生设备和随机序列产生方法,该设备和方法产生具有更可取特性的随机数字序列作为随机序列,还提供加密/解密设备和加密/解密方法,该设备和方法使用随机序列产生设备和方法,还提供程序,该程序使用计算机完成那些设备和方法。
在不脱离本发明精神和范围的情况下,可以作出许多的实施例和修改。上述实施例意在说明本发明,而不是限制本发明的范围。本发明的范围由所附的权利要求示出而不是实施例。在与本发明的权利要求等效含义之内以及在权利要求之内,可以作出的许多的变化都被视为在本发明的范围之内。
权利要求
1.一种用于产生w位的整数序列的随机序列产生设备,包括种子接收部,该部接收w位的整数序列s1,s2,...,sn,...,sm作为整数n和m(1≤n≤m-1)的种子;初始化部,该部向转换部提供作为整数序列x1,x2,...,xn,...,xm的所述接收的整数序列s1,s2...,sn,...,sm;所述转换部在每个所述提供的整数序列x1,x2,...,xn,...,xm上执行预定的转换,以获得w位的整数序列y1,y2,...,yn,...,ym;旋转部,该部从整数序列yn+1,...,ym获得旋转位的位数,针对所述整数序列y1,y2,...,yn,...,ym的全部或部分被视为wm位的位序列,执行所获得的旋转位数的旋转操作,并从所述已获得的wm位的位序列获得w位的整数序列z1,z2,...,zn,...,zm;更新部,该部向转换部提供所述整数序列z1,z2,...,zn,...,zm作为所述整数序列x1,x2,...,xn,...,xm;以及输出部,在所述转换部中的转换和所述旋转部中的旋转都重复预定次数的情况下,该输出部输出最后获得的整数序列z1,z2,...,zn或zn+1,...,zm分别作为随机序列r1,r2,...,rn或r1,r2,...,rm-n。
2.如权利要求1所述的随机序列产生设备,其中所述转换部通过以下给出的对于整数i(1≤i≤m-1)的使用映射g(·,·)的递推公式执行转换y1=g(xm,x1)yi+1=g(xi,xi+1)。
3.如权利要求1所述的随机序列产生设备,其中所述转换部通过以下给出的对于整数i(1≤i≤m-1)的使用预定整数c和映射g(·,·)的递推公式执行转换y1=g(c,x1)yi+1=g(yi,xi+1)。
4.如权利要求1所述的随机序列产生设备,其中所述转换部通过以下给出的对于整数i(1≤i≤m-1)的使用映射g(·,·)的递推公式执行转换y1=g(c,x1)yi+1=g(x1,xi+1)。
5.如权利要求2所述的随机序列产生设备,其中所述映射g(·,·)由预定映射h(·)和预定整数q(0≤1≤2w-1)定义为g(a,b)=2b2+h(a)b+q(mod 2w)。
6.如权利要求5所述的随机序列产生设备,其中所述映射h(·)定义为h(a)=a。
7.如权利要求5所述的随机序列产生设备,其中所述映射h(·)是通过在给定值的数字表达式中清除一个预定位的操作定义的。
8.如权利要求5所述的随机序列产生设备,其中所述映射h(·)是通过在给定值的数字表达式中倒置一个预定位的操作定义的。
9.如权利要求5所述的随机序列产生设备,其中所述映射h(·)是通过在给定值的数字表达式中将最低有效两位设置为01的操作定义的。
10.如权利要求1所述的随机序列产生设备,其中,把所述整数序列yn+1,...,ym视为w(m-n)位的位序列,所述旋转部获得与视为整数的位序列等效的整数值作为所述的旋转位的位数,且通过在由所述位序列析取的一个预定位置布置至少一位而获得。
11.如权利要求10所述的随机序列产生设备,其中把所述整数序列yn+1,...,ym作为w(m-n)位的位序列,所述旋转部基于在所述的位序列中的一个预定位置上的位值确定旋转方向。
12.如权利要求1所述的随机序列产生设备,其中所述旋转部从所述整数序列yn,...,ym获得旋转位的位数,针对所述的整数序列y1,y2,yn,...,ym被视为wn位的位序列执行旋转位数的旋转操作,从所述的wn位的位序列获得wn位的整数序列z1,z2,...,zn,针对所述整数序列y1,y2,yn,...,ym被视为w(m-n)位的位序列执行所述旋转位的旋转操作,且从所述获得的w(m-n)位的位序列获得w位的整数序列zn+1,...,zm。
13.一种加密/解密设备,包括随机序列产生部,该部通过如权利要求1所述的随机序列产生设备产生随机序列r1,r2,...,rn;消息接收部,该部接收作为消息的w位的整数序列p1,p2,...;以及加密/解密部,该部输出整数序列p1xor r1,p2xor r2,...,pixor r((i+n-1)mod n)+1作为加密或解密的结果。
14.一种用于产生w位的整数序列的随机序列产生方法,包括种子接收步骤,接收w位的整数序列s1,s2,...,sn,...,sm作为整数n和m(1≤n≤m-1)的种子;初始化步骤,向转换步骤提供所述接收的整数序列s1,s2,...,sn,...,sm作为整数序列x1,x2,...,xn,...,xm;所述转换步骤在每个所述提供的整数序列x1,x2,...,xn,...,xm上执行预定的转换,以获得w位的整数序列y1,y2,...,yn,...,ym;旋转步骤从整数序列yn+1,...,ym获得旋转位的位数,针对所述整数序列y1,y2,...,yn,...,ym的全部或部分被视为wm位的位序列执行所述获得的旋转位数的旋转操作,并从所述wm位的所获得的位序列获得w位的整数序列z1,z2,...,zn,...,zm;更新步骤,向转换步骤提供所述整数序列z1,z2,...,zn,...,zm作为所述整数序列x1,x2,...,xn,...,xm;以及输出步骤,该步骤在所述转换步骤中的转换和所述旋转步骤中的旋转都重复预定次数的情况下,输出最后获得的整数序列z1,z2,...,zn或zn+1,...,zm分别作为随机序列r1,r2,...,rn或r1,r2,...,rm-n。
15.如权利要求14所述的随机序列产生方法,其中转换步骤通过以下给出的对于整数i(1≤i≤m-1)的使用映射g(·,·)的递推公式执行转换y1=g(xm,x1)yi+1=(xi,xi+1)。
16.如权利要求14所述的随机序列产生方法,其中所述转换步骤通过以下给出的对于整数i(1≤i≤m-1)的使用预定整数c和映射g(·,·)的递推公式执行转换y1=g(c,x1)yi+1=g(yi,xi+1)。
17.如权利要求14所述的随机序列产生方法,其中转换步骤通过以下给出的对于整数i(1≤i≤m-1)的使用映射g(·,·)的递推公式执行转换y1=g(c,x1)yi+1=g(xi,xi+1)。
18.如权利要求15所述的随机序列产生方法,其中由预定映射h(·)和预定整数q(0≤q≤2w-1)将所述映射g(·,·)定义为g(a,b)=2b2+h(a)b+q(mod 2w)。
19.如权利要求18所述的随机序列产生方法,其中所述映射h(·)定义为h(a)=a。
20.如权利要求18所述的随机序列产生方法,其中所述映射h(·)是通过在给定值的数字表达式中清除一个预定位的操作定义的。
21.如权利要求18所述的随机序列产生方法,其中所述映射h(·)是通过在给定值的数字表达式中倒置一个预定位的操作定义的。
22.如权利要求18所述的随机序列产生方法,其中所述映射h(·)是通过在给定值的数字表达式中将最低有效两位设置为01的操作定义的。
23.如权利要求14所述的随机序列产生方法,其中,把所述整数序列yn+1,...,ym视为w(m-n)位的位序列,所述旋转步骤获得与被视为整数的且通过在由所述位序列析取的预定位置布置至少一位而获得的位序列等效的一个整数值作为所述的旋转位的位数。
24.如权利要求23所述的随机序列产生方法,其中把所述整数序列yn+1,...,ym视为w(m-n)位的位序列,所述旋转步骤基于在所述的位序列中的预定位置上的位值确定旋转方向。
25.如权利要求14所述的随机序列产生方法,其中所述旋转步骤从所述整数序列yn,...,ym获得旋转位的位数,针对所述的整数序列y1,y2,yn,...,ym被视为wn位的位序列执行所述获得的旋转位数的旋转操作,从所述获得的wn位的位序列获得w位的整数序列z1,z2,...,zn,针对所述的整数序列y1,y2,yn,...,ym被视为w(m-n)位的位序列执行所述获得的旋转位旋转操作,且由所述获得的2(m-n)位的位序列获得一个w位的整数序列zn+1,...,zm。
26.一种加密/解密方法,包括随机序列产生步骤,该步骤通过如权利要求14所述的随机序列产生设备产生随机序列r1,r2,...,rn;消息接收步骤,该步骤接收作为消息的w位的整数序列p1,p2,...;以及加密/解密步骤,输出整数序列p1xor r1,p2xor r2,...,pixor r((i+n-1)mod n)+1作为加密或解密的结果。
27.一程序,该程序可使计算机起如权利要求1所述的随机序列产生设备的作用。
28.一程序,该程序可使计算机起如权利要求13所述的加密/解密设备的作用。
全文摘要
公开一种为了产生整数序列的随机序列产生设备。种子接收部接收作为种子的整数序列。初始化部向转换部提供接收的整数序列。转换部在每个提供的整数序列上执行预定的转换以获得整数序列。旋转部从获得的整数序列的部获得旋转位的位数,针对部分或全部整数序列被视为位序列,执行获得的旋转位数的旋转操作,并获得整数序列。更新部向转换部提供所述整数序列。输出部在转换和旋转都重复预定次数的情况下,输出部输出作为随机序列的最后获得的部分整数序列。
文档编号G09C1/00GK1536769SQ20041004511
公开日2004年10月13日 申请日期2004年3月18日 优先权日2003年3月19日
发明者梅野健 申请人:独立行政法人通信综合研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1