一种块解扰方法

文档序号:7962886阅读:197来源:国知局
专利名称:一种块解扰方法
技术领域
本发明涉及数据解扰技术,尤其涉及一种块解扰方法。
背景技术
在数字视频广播(Digital Video Broadcasting,DVB)标准中,解扰技术是一项核心技术,解扰算法用来对加扰后的传输流(TS,transport stream)进行解扰。解扰算法由两部分组成流解扰(Stream cipher)和块解扰(Block cipher)。如图1a所示,输入的传输流以TS包的形式出现,每个TS包由188个字节组成,其中前四个字节为TS包头,在没有适应域的情况下,后面的184个字节为TS包净荷(payload),只有净荷才可能需要解扰。输入数据宽度为8位,前8个字节用来对流解扰单元进行初始化,同时也进入第一寄存器中。当流解扰单元完成初始化的同时,前8个字节也从第一寄存器中一起输入到块解扰单元中开始块解扰过程。从第9个字节开始,每个输入数据与流解扰单元的输出异或后进入第一寄存器中,每存满8个字节后就输入到块解扰单元开始块解扰过程。块解扰完成后,数据进入第二寄存器,并与第一寄存器中的数据异或后就是解扰机最终的输出。流解扰是随输入字节连续进行的,即每输入一个字节都要做流解扰;而块解扰是每8个字节分块进行的,即每输入8个字节才启动一次块解扰。
图2是现有技术中标准块解扰方法的示意图。如图所示,该标准块解扰方法的具体过程如下在开始块解扰前,先用解扰控制字(CW)作为初始值,并依据标准中规定的排序算法产生一组用于块解扰的kk(i),该排序算法将64位输入重新排序后产生64位输出,共8个kk(i),然后再以当前的kk(i)为输入产生另外8个kk(i),总共要进行7次排序,则一共产生56个kk(i)。因此,解扰控制字一旦确定,则用于块解扰的56个kk(i)也就相应确定。经过56个时钟周期,寄存器中的数据沿箭头方向移位56次后,完成对该数据块的块解扰处理。在本专利中,将现有技术下进行56次移位的每一次移位称为一个基本移位。
图2中的S_box称为S盒子,功能上相当于一个查找表,输入和输出各为8位,其输入为kk(i)和R7的异或结果,输出再经过一次8位的排序(即图中的Perm所作的排序处理),然后与R6异或后作为R7的下一个值。而R7的当前值就是R8的下一个值,其余寄存器也可以依此类推,其中,R1~R8为八个8位的寄存器。
整个电路在时钟控制下沿箭头方向作数据的移位,每个时钟周期移位一次,并且更换一个kk(i),这样在56个时钟周期后,就完成了块解扰过程,并且在寄存器R1~R8中存储的为块解扰的最终计算结果,并输出该最终结果。
在实际应用中采用这种标准的块解扰方式,其结果是块解扰速度慢于流解扰速度,因为流解扰单元每处理一个输入字节需要4个时钟周期,这样8个字节就需要32个时钟周期;而块解扰单元处理8个字节则需要56个时钟周期,因此在流解扰结束后,需要等待24个时钟周期的时间,严重地影响了解扰速度。
为了提高解扰的速度,产生了第二种解扰方式,如图1b所示。在第二种解扰方式中,使用两个标准块解扰单元对数据流进行并行操作,其原理是在流解扰单元完成一个数据块的解扰后,即启动一个块解扰单元(即第一块解扰单元),然后流解扰单元继续解扰下一个数据块,当第二个数据块的流解扰完成后,第一个数据块解扰过程还没有结束,因此可以再启动另一个块解扰单元(即第二块解扰单元)对第二个数据块进行块解扰。如此交替进行,直到最后一个块解扰结束后,则完成了对一个TS数据包的解扰处理。
从上述描述可以看出,由于在现有技术中采用的是标准块解扰方法,因此,在解扰过程中,要提高整个解扰过程的解扰速度,只能采用多个块解扰单元的技术方案。
虽然在采用多个块解扰单元的实现方式中,等待时间可以缩短,但由于需要两个块解扰单元,因此不仅增加了资源消耗,而且需要更为复杂的控制逻辑。另外,对于最后一个数据块,仍然要等待56个时钟周期,全部解扰过程才能结束。

发明内容
本发明的目的是提出一种能够在少量增加资源开销的基础上,进一步提高块解扰速度的方法,不仅能够进一步提高块解扰的计算速度,而且解决现有技术中双块解扰方案资源消耗多的问题。
本发明提供一种块解扰方法,包括
a.根据块解扰装入新的输入值的第1个时钟周期各寄存器中的数据值和相应的控制字,计算作第n次基本移位后各寄存器的数据值,并将结果存入寄存器中;n为能够被56整除的任何一个整数;设i=n;b.根据第i次基本移位后各寄存器中的数据值和相应的控制字,计算第i+n次基本移位后各寄存器中的数据值;c.将步骤b的计算结果存入寄存器中,并将i设为i+n;重复执行步骤b,直到计算出块解扰装入新的输入值开始算起经过56次基本移位后的各寄存器中的数据值;d.从各寄存器并行输出所述块解扰装入新的输入值之后第56次基本移位后的数据值,以完成块解扰。
优选地,步骤b是根据第i次基本移位后各寄存器中的数据值和相应的控制字,计算第i+2次基本移位后的各寄存器中的数据值。
优选地,步骤b包括b11.根据第i次基本移位后各寄存器中的数据值和相应的控制字,计算第i+1次基本移位后的各寄存器中的数据值;b12.根据第i+1次基本移位后各寄存器中的数据值和相应的控制字,计算第i+2次基本移位后的各寄存器中的数据值。
优选地,步骤b11包括R1’=R8^S_box;R2’=R1;R3’=R2^R1’=R2^R8^S_box;R4’=R3^R1’=R3^R8^S_box;R5’=R4^R1’=R4^R8^S_box;R6’=R5;R7’=R6^Perm;R8’=R7,其中,R1、R2、R3、R4、R5、R6、R7、R8为第i次基本移位后的各寄存器中的数据值,R1’、R2’、R3’、R4’、R5’、R6’、R7’、R8’为第i+1次基本移位后的各寄存器中的数据值,S_box为S盒子输出的数值,该S盒子的输入为kk(i)^R7,Perm为排序单元输出的数值,^为异或运算,kk(i)为56个控制字之一。
优选地,步骤b12包括R1”=R8’^S_box’=R7^S_box’;R2”=R1’=R8^S_box;R3”=R2’^R1”=R1^(R7^S_box’);R4”=R3’^R1”=(R2^R8^S_box)^(R7^S_box’);R5”=R4’^R1”=(R3^R8^S_box)^(R7^S_box’);R6”=R5’=R4^R8^S_box;R7”=R6’^Perm’=R5^Perm’;R8”=R7’=R6^Perm;S_box’为另一个S盒子的输出,该S盒子的输入为kk(i+1)^R7’=kk(i+1)^R6^Perm,Perm’是S_box’重新排序的结果。其中,R1、R2、R3、R4、R5、R6、R7、R8为第i次基本移位后的各寄存器中的数据值,R1’、R2’、R3’、R4’、R5’、R6’、R7’、R8’为第i+1次基本移位后的各寄存器中的数据值,R1”、R2”、R3”、R4”、R5”、R6”、R7”、R8”为第i+2次基本移位后的各寄存器中的数据值,S_box,S_box’为S盒子输出的数值,Perm,Perm’为排序单元输出的数值,^为异或运算,kk(i+1)为56个控制字之一。
优选地,步骤b是根据第i次基本移位后各寄存器中的数据值和相应的控制字,计算第i+4次基本移位后的各寄存器中的数据值。
优选地,步骤b包括b21.根据第i次基本移位后的控制字和各寄存器中的数据值,计算第i+1次基本移位后的各寄存器中的数据值;b22.根据第i+1次基本移位后的控制字和各寄存器中的数据值,计算第i+2次基本移位后的各寄存器中的数据值;b23.根据第i+2次基本移位后的控制字和各寄存器中的数据值,计算第i+3次基本移位后的各寄存器中的数据值;b24.根据第i+3次基本移位后的控制字和各寄存器中的数据值,计算第i+4次基本移位后的各寄存器中的数据值。
优选地,步骤b21包括R1’=R8^S_box;R2’=R1;R3’=R2^R1’=R2^R8^S_box;R4’=R3^R1’=R3^R8^S_box;R5’=R4^R1’=R4^R8^S_box;R6’=R5;R7’=R6^Perm;R8’=R7,其中,R1、R2、R3、R4、R5、R6、R7、R8为第i次基本移位后的各寄存器中的数据值,R1’、R2’、R3’、R4’、R5’、R6’、R7’、R8’为第i+1次基本移位后的各寄存器中的数据值,S_box为S盒子输出的数值,该S盒子的输入为kk(i)^R7,Perm为排序单元输出的数值,^为异或运算,kk(i)为56个控制字之一。
优选地,步骤b22包括R1”=R8’^S_box’=R7^S_box’;R2”=R1’=R8^S_box;R3”=R2’^R1”=R1^(R7^S_box’);R4”=R3’^R1”=(R2^R8^S_box)^(R7^S_box’);R5”=R4’^R1”=(R3^R8^S_box)^(R7^S_box’);R6”=R5’=R4^R8^S_box;R7”=R6’^Perm’=R5^Perm’;R8”=R7’=R6^Perm,S_box’为另一个S盒子的输出,该盒子的输入为kk(i+1)^R7’=kk(i+1)^R6^Perm,Perm’是S_box’重新排序的结果;其中,R1、R2、R3、R4、R5、R6、R7、R8为第i次基本移位后的各寄存器中的数据值,R1’、R2’、R3’、R4’、R5’、R6’、R7’、R8’为第i+1次基本移位后的各寄存器中的数据值,R1”、R2”、R3”、R4”、R5”、R6”、R7”、R8”为第i+2次基本移位后的各寄存器中的数据值,S_box,S_box’为S盒子输出的数值,Perm,Perm’为排序单元输出的数值,^为异或运算kk(i+1)为56个控制字之一。
优选地,步骤b23包括R1=R8”^S_box”=R6^Perm^S_box”;R2=R1”=R7^S_box’;R3=R2”^R1=(R8^S_box)^(R6^Perm^S_box”);R4=R3”^R1=(R1^R7^S_box’)^(R6^Perm^S_box”);R5=R4”^R1=(R2^R8^S_box)^(R7^S_box’)^(R6^Perm^S_box”);R6=R5”=(R3^R8^S_box)^(R7^S_box’);R7=R6”^Perm”=(R4^R8^S_box)^Perm”;R8=R7”=R5^Perm’,S_box”为S盒子的输出,该S盒子的输入为R7”^kk(i+2)=R5^Perm’^kk(i+2),Perm”是S_box”重新排序的结果。S_box’为S盒子的输出,该S盒子的输入为kk(i+1)^R7’=kk(i+1)^R6^Perm,Perm’是S_box’重新排序的结果;其中,R1、R2、R3、R4、R5、R6、R7、R8为第i次基本移位后的各寄存器中的数据值,R1’、R2’、R3’、R4’、R5’、R6’、R7’、R8’为第i+1次基本移位后的各寄存器中的数据值,R1”、R2”、R3”、R4”、R5”、R6”、R7”、R8”为第i+2次基本移位后的各寄存器中的数据值,R1、R2、R3、R4、R5、R6、R7、R8为第i+3次基本移位后的各寄存器中的数据值,S_box为S盒子的输出,Perm为排序单元输出的数值,^为异或运算。
优选地,步骤b24包括R1””=R8^S_box=R5^Perm’^S_box;R2””=R1=R6^Perm^S_box”;R3””=R2^R1””=R7^S_box’^R5^Perm’^S_box;R4””=R3^R1””=(R8^S_box)^(R6^Perm^S_box”)^(R5^Perm’^S_box);R5””=R4^R1””=(R1^R7^S_box’)^(R6^Perm^S_box”)^(R5^Perm’^S_box);R6””=R5=(R2^R8^S_box)^(R7^S_box’)^(R6^Perm^S_box”);R7””=R6^Perm=(R3^R8^S_box)^(R7^S_box’)^Perm;R8””=R7=(R4^R8^S_box)^Perm”,S_box为S盒子的输出,该S盒子的输入为R7^kk(i+3)=(R4^R8^S_box)^Perm”^kk(i+3),Perm是S_box重新排序的结果;S_box”为S盒子的输出,该S盒子的输入为R7”^kk(i+2)=R5^Perm’^kk(i+2),Perm”是S_box”重新排序的结果;S_box’为S盒子的输出,该S盒子的输入为kk(i+1)^R7’=kk(i+1)^R6^Perm,Perm’是S_box’重新排序的结果。其中,R1、R2、R3、R4、R5、R6、R7、R8为第i次基本移位后的各寄存器中的数据值,R1’、R2’、R3’、R4’、R5’、R6’、R7’、R8’为第i+1次基本移位后的各寄存器中的数据值,R1”、R2”、R3”、R4”、R5”、R6”、R7”、R8”为第i+2次基本移位后的各寄存器中的数据值,R1、R2、R3、R4、R5、R6、R7、R8为第i+3次基本移位后的各寄存器中的数据值,R1””、R2””、R3””、R4””、R5””、R6””、R7””、R8””为第i+4次基本移位后的各寄存器中的数据值,S_box为S盒子输出的数值,Perm为排序单元输出的数值,^为异或运算。
相对于现有技术,利用本发明所提供的块解扰方法,可以通过合并多个运算步骤而使运算速度成倍提高。例如,如果通过各寄存器的当前值计算出它们的下两次基本移位后的值,这样就相当于标准块解扰方法将计算速度提高了一倍。因此可以使整个解扰过程速度更快,并且,本发明只采用一个流解扰单元和一个块解扰单元,其中块解扰单元只比标准块解扰增加了一个S_box和Perm,S_box、Perm的具体实现由现有的通用解扰方法标准规定。S_box在功能上相当于一个查找表,占用的资源量不多,而Perm只是一个简单的8位排序电路,几乎不占用资源。因此本发明的硬件实现结构比现有技术的双块解扰方案要简单,而且占用的资源要少。
另外,如图1c所示,本发明的有益效果可以通过对比现有技术中使用标准块解扰单元的双块解扰技术方案和使用本发明的块解扰方法的技术方案来清楚地体现如果需要进行流解扰和块解扰的数据块只有4个,本发明的块解扰方案比现有技术的双块并行解扰方案提前28个时钟周期结束。在实际应用中,一个TS数据包有23个数据块,这时本发明需要的时钟周期数为32×23+28=764,双块并行解扰需要的时钟周期数为32×23+56=792,可以看出,本发明比双块解扰方法快了28个时钟周期。也就是说,本发明的解扰效率比双块解扰方法提高了4%,而占用的资源却少了很多。


图1a是现有技术的单块解扰方法示意图;图1b是现有技术的采用双块解扰方法的示意图;图1c是本发明一个实施例和现有技术的双块解扰方案的技术效果比较图;图2是现有技术中标准块解扰方法的示意图;图3是应用本发明第一实施例的块解扰方法的示意图;图4是应用本发明第二实施例的块解扰方法的示意图。
具体实施例方式
本发明的思想是将标准块解扰方法中需要多个时钟周期才能完成的计算步骤合并到一个时钟周期中执行,因此成倍地提高了块解扰的效率。也就是说,本发明中一个时钟周期进行的一次移位相当于现有技术的多次移位。如前所述,现有技术中一次移位称为一个基本移位,则本发明的一个时钟周期的一次移位相当于进行了多次基本移位。
图2是现有技术中标准块解扰方法的示意图,整个电路在时钟控制下沿箭头方向移位,每个时钟移位一次,若用R1’~R8’表示寄存器的下一个值,则根据图2所示的结构可知,R1’~R8’的值分别为R1’=R8^S_box;R2’=R1;R3’=R2^R1’=R2^R8^S_box;R4’=R3^R1’=R3^R8^S_box;R5’=R4^R1’=R4^R8^S_box;R6’=R5;R7’=R6^Perm;
R8’=R7。
其中,R1-R8表示当前值,R1’~R8’表示R1~R8的下一个值(即寄存器作一次基本移位后的值)。在现有技术中,每隔一个时钟周期,寄存器组进行一次循环移位。符号^表示异或运算。
要得出一次进行多步运算的结果,需要在上述技术方案的基础上进行进一步的推导。在本发明的第一实施例中首先提供了一种能够实现在当前时钟周期计算出移位两次后各寄存器中的数值结果的技术方案。
具体地,对于S_box,其当前输入为kk(i)^R7,则下一次输入为kk(i+1)^R7’,而R7’=R6^Perm,因此,S_box的下一次输入为kk(i+1)^R6^Perm。S_box的当前输出与R8的异或运算后的输出为R1’,即R1的下一个值,同理,S_box的下一次输出与R8的下一个值R8’的异或运算结果就是R1”,即R1的下两个值,而R8’就是R7,因此,可以用当前的数值和下一个kk产生出下两个R1的值。
根据上述方法,只要能得到R2~R8的下两个值(即R2”~R8”)与当前寄存器中数值的关系,就可以实现在一个时钟周期内完成原来需两个时钟周期才能完成的运算,也就是一次移位相当于两次基本移位。
因为R8’=R7,则R8”=R7’,而R7’=R6^Perm,所以R8”=R6^Perm,同理可得如下结果R7”=R6’^Perm’=R5^Perm’;R6”=R5’=R4^R1’=R4^R8^S_box;R5”=(R5’)’=(R4^R1’)’=R4’^R1”=(R3^R1’)^R1”=R3^R8^S_box^R1”;R4”=(R4’)’=(R3^R1’)’=R3’^R1”=(R2^R1’)^R1”=R2^R8^S_box^R1”;R3”=(R3’)’=(R2^R1’)’=R2’^R1”=R1^R1”;R2”=(R2’)’=R1’=R8^S_box;因为R1”=S_box’^R8’=S_box’^R7,以及R8”=R6^Perm,代入上述等式后可以得到R8”=R6^Perm;
R7”=R5^Perm’;R6”=R4^R8^S_boxR5”=R3^R8^S_box^S_box’^R7;R4”=R2^R8^S_box^S_box’^R7;R3”=R1^S_box’^R7;R2”=R8^S_box;R1”=S_box’^R7。
其中,R1”-R8”表示R1到R8的下两个值(即进行两次基本移位后的数值)。
如果要在当前时钟周期计算出R1”-R8”,上述等式的右侧必须均为当前时钟周期的寄存器值和其他参数。而在上述等式右侧,只有S_box’和Perm’是S盒子和排序单元的下一次输出值,其余均为寄存器的当前值。因此只要得到S_box’和Perm’即可。而Perm’是与S_box’相对应的数值(即对S盒子的输出再进行排序运算),因此,只需要求出S_box’的数值即可。所述S盒子和排序方式均在现有标准中规定,为本领域技术人员所公知,在此不赘述。
据前述的分析,S_box的下一次输入为kk(i+1)^R7’=kk(i+1)^R6^Perm,这样S_box’也可以得到。
根据上述推导所得的变量之间的关系,可以得到一个完整的块解扰方法示意图,具体参见图3。在图3中,块解扰方法涉及八个寄存器和第一S盒子、第一排序单元、第二S盒子和第二排序单元。
其中,第一S盒子和第二S盒子具有同样的结构。第一S盒子的输入为控制字kk(i)与R7异或结果;第二S盒子的输入为kk(i+1)异或R6,再异或Perm。
所述排序单元可以通过排序电路实现,排序规则有现有技术标准规定,在此不作描述。排序单元的输出再根据上述解扰方法的逻辑进行连接。
八个寄存器以及上述S盒子和排序单元的输出和输入端按照上述解扰方法的逻辑进行连接。
图3的具体结构完全体现了本实施例中的块解扰方法,例如在本实施例中,要计算寄存器R5中的值,则利用R5”=R3^R8^S_box^S_box’^R7进行计算,相应地,在图3的具体结构中,R5的输入端是由三个部分进行异或运算的输出,其中这三部分分别是R3、R8^S_box、S_box’^R7,从而使得在时钟沿到来时,即将进入R5的值是R5”,而不是R5’,这样就等于跳过了计算R5’的步骤,从而使速度提高了一倍。其他寄存器内数值计算的实现也类似上述描述,在此不一一列举。
在本发明的第二实施例中,提供了一种能够实现在当前时钟周期计算出基本移位四次后各寄存器中的数值结果的技术方案。图4是本发明的第二实施例的块解扰方法示意图。
本发明第二实施例所描述的块解扰方法具体如下首先,与第一实施例相同,需要得出R1’~R8’、R1”~R8”的数值,即,R1’~R8’的数值为R1’=R8^S_box;R2’=R1;R3’=R2^R8^S_box;R4’=R3^R8^S_box;R5’=R4^R8^S_box;R6’=R5R7’=R6^PermR8’=R7R1”~R8”的数值为R1”=S_box’^R7;R2”=R8^S_box;R3”=R1^S_box’^R7;R4”=R2^R8^S_box^S_box’^R7;R5”=R3^R8^S_box^S_box’^R7;R6”=R4^R8^S_box;R7”=R5^Perm’;R8”=R6^Perm;然后,可以进一步得到R1~R8R1=R8”^S_box”=R6^Perm^S_box”
R2=R1”=R7^S_box’R3=R2”^R1=(R8^S_box)^(R6^Perm^S_box”)R4=R3”^R1=(R1^R7^S_box’)^(R6^Perm^S_box”)R5=R4”^R1=(R2^R8^S_box)^(R7^S_box’)^(R6^Perm^S_box”)R6=R5”=(R3^R8^S_box)^(R7^S_box’)R7=R6”^Perm”=(R4^R8^S_box)^Perm”R8=R7”=R5^Perm’最后,可以得到R1””~R8””R1””=R8^S_box=R5^Perm’^S_boxR2””=R1=R6^Perm^S_box”R3””=R2^R1””=R7^S_box’^R5^Perm’^S_boxR4””=R3^R1””=(R8^S_box)^(R6^Perm^S_box”)^(R5^Perm’^S_box)R5””=R4^R1””=(R1^R7^S_box’)^(R6^Perm^S_box”)^(R5^Perm’^S_box)R6””=R5=(R2^R8^S_box)^(R7^S_box’)^(R6^Perm^S_box”)R7””=R6^Perm=(R3^R8^S_box)^(R7^S_box’)^PermR8””=R7=(R4^R8^S_box)^Perm”在表达式左侧是R1””~R8””,在表达式的右侧是当前值R1~R8,需要确定的只有S_box’、S_box”、S_box、Perm’、Perm”、Perm,而Perm’、Perm”和Perm分别与S_box’、S_box”和S_box一一对应,因此只要确定三个S_box的值即可。
因为S_box的输入为R7^kk(i),所以S_box’的输入为R7’^kk(i+1)=R6^Perm^kk(i+1);S_box”的输入为R7”^kk(i+2)=R5^Perm’^kk(i+2);S_box的输入为R7^kk(i+3)=(R4^R8^S_box)^Perm”^kk(i+3)。
根据上述推导所得的变量之间的关系,可以得到一个完整的块解扰方法示意图,具体参见图4。在图4中,块解扰方法涉及八个寄存器和第一S盒子、第一排序单元、第二S盒子、第二排序单元、第三S盒子、第三排序单元、第四S盒子和第四排序单元。
其中,各个S盒子的结构完全相同。
所述排序单元可以通过排序电路实现,排序规则有现有技术标准规定,在此不作描述。排序单元的输出再根据上述解扰方法的逻辑进行连接。
八个寄存器以及上述S盒子和排序单元的输出和输入端按照上述解扰方法的逻辑进行连接。
图4完整的示出本发明第二实施例中的块解扰方法,例如在本实施例中,要计算寄存器R5中的值,则利用R5””=R4^R1””=(R1^R7^S_box’)^(R6^Perm^S_box”)^(R5^Perm’^S_box)进行计算,相应地,在图4中还示出,R5的输入端是两个部分进行异或运算的输出,其中这两部分分别是R4^R1””。其中,R4是由R3和R1””经过异或运算得出的,R1””是由R8和S_box经过异或运算得出的。根据上述推导过程,能够得到R5是由(R1^R7^S_box’)、(R6^Perm^S_box”)、(R5^Perm’^S_box)进行异或运算得出的,从而能够实现块解扰方法的相关步骤,得到了R5下四次基本移位后的数值。其他寄存器内数值计算的实现也类似上述描述,在此不一一列举。
以上所举的例子,分别是将标准块解扰方法中需要两个和四个时钟周期才能完成的计算步骤合并到一个时钟周期中执行,当然也可以将标准块解扰方法中需要七个、八个、十四个、二十八个时钟周期才能完成的计算步骤合并到一个时钟周期中执行,只要是经过以上所述的多次移位后正好可以完成56次基本移位即可。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。
权利要求
1.一种块解扰方法,其特征在于,包括a.根据块解扰装入新的输入值的第1个时钟周期各寄存器中的数据值和相应的控制字,计算作第n次基本移位后各寄存器的数据值,并将结果存入寄存器中;n为能够被56整除的任何一个整数;设i=n;b.根据第i次基本移位后各寄存器中的数据值和相应的控制字,计算第i+n次基本移位后各寄存器中的数据值;c.将步骤b的计算结果存入寄存器中,并将i设为i+n;重复执行步骤b,直到计算出块解扰装入新的输入值开始算起经过56次基本移位后的各寄存器中的数据值;d.从各寄存器并行输出所述块解扰装入新的输入值之后第56次基本移位后的数据值,以完成块解扰。
2.根据权利要求1所述的块解扰方法,其特征在于,步骤b是根据第i次基本移位后各寄存器中的数据值和相应的控制字,计算第i+2次基本移位后的各寄存器中的数据值。
3.根据权利要求2所述的块解扰方法,其特征在于,步骤b包括b11.根据第i次基本移位后各寄存器中的数据值和相应的控制字,计算第i+1次基本移位后的各寄存器中的数据值;b12.根据第i+1次基本移位后各寄存器中的数据值和相应的控制字,计算第i+2次基本移位后的各寄存器中的数据值。
4.根据权利要求3所述的块解扰方法,其特征在于,步骤b11包括R1’=R8^S_box;R2’=R1;R3’=R2^R1’=R2^R8^S_box;R4’=R3^R1’=R3^R8^S_box;R5’=R4^R1’=R4^R8^S_box;R6’=R5;R7’=R6^Perm;R8’=R7,其中,R1、R2、R3、R4、R5、R6、R7、R8为第i次基本移位后的各寄存器中的数据值,R1’、R2’、R3’、R4’、R5’、R6’、R7’、R8’为第i+1次基本移位后的各寄存器中的数据值,S_box为S盒子输出的数值,该S盒子的输入为kk(i)^R7,Perm为排序单元输出的数值,^为异或运算,kk(i)为56个控制字之一。
5.根据权利要求3所述的块解扰方法,其特征在于,步骤b12包括R1”=R8’^S_box’=R7^S_box’;R2”=R1’=R8^S_box;R3”=R2’^R1”=R1^(R7^S_box’);R4”=R3’^R1”=(R2^R8^S_box)^(R7^S_box’);R5”=R4’^R1”=(R3^R8^S_box)^(R7^S_box’);R6”=R5’=R4^R8^S_box;R7”=R6’^Perm’=R5^Perm’;R8”=R7’=R6^Perm;S_box’为另一个S盒子的输出,该S盒子的输入为kk(i+1)^R7’=kk(i+1)^R6^Perm,Perm’是S_box’重新排序的结果。其中,R1、R2、R3、R4、R5、R6、R7、R8为第i次基本移位后的各寄存器中的数据值,R1’、R2’、R3’、R4’、R5,、R6’、R7’、R8’为第i+1次基本移位后的各寄存器中的数据值,R1”、R2”、R3”、R4”、R5”、R6”、R7”、R8”为第i+2次基本移位后的各寄存器中的数据值,S_box,S_box’为S盒子输出的数值,Perm,Perm’为排序单元输出的数值,^为异或运算,kk(i+1)为56个控制字之一。
6.根据权利要求1所述的块解扰方法,其特征在于,步骤b是根据第i次基本移位后各寄存器中的数据值和相应的控制字,计算第i+4次基本移位后的各寄存器中的数据值。
7.根据权利要求6所述的块解扰方法,其特征在于,步骤b包括b21.根据第i次基本移位后的控制字和各寄存器中的数据值,计算第i+1次基本移位后的各寄存器中的数据值;b22.根据第i+1次基本移位后的控制字和各寄存器中的数据值,计算第i+2次基本移位后的各寄存器中的数据值;b23.根据第i+2次基本移位后的控制字和各寄存器中的数据值,计算第i+3次基本移位后的各寄存器中的数据值;b24.根据第i+3次基本移位后的控制字和各寄存器中的数据值,计算第i+4次基本移位后的各寄存器中的数据值。
8.根据权利要求7所述的块解扰方法,其特征在于,步骤b21包括R1’=R8^S_box;R2’=R1;R3’=R2^R1’=R2^R8^S_box;R4’=R3^R1’=R3^R8^S_box;R5’=R4^R1’=R4^R8^S_box;R6’=R5;R7’=R6^Perm;R8’=R7,其中,R1、R2、R3、R4、R5、R6、R7、R8为第i次基本移位后的各寄存器中的数据值,R1’、R2’、R3’、R4’、R5’、R6’、R7’、R8’为第i+1次基本移位后的各寄存器中的数据值,S_box为S盒子输出的数值,该S盒子的输入为kk(i)^R7,Perm为排序单元输出的数值,^为异或运算,kk(i)为56个控制字之一。
9.根据权利要求7所述的块解扰方法,其特征在于,步骤b22包括R1”=R8’^S_box’=R7^S_box’;R2”=R1’=R8^S_box;R3”=R2’^R1”=R1^(R7^S_box’);R4”=R3’^R1”=(R2^R8^S_box)^(R7^S_box’);R5”=R4’^R1”=(R3^R8^S_box)^(R7^S_box’);R6”=R5’=R4^R8^S_box;R7”=R6’^Perm’=R5^Perm’;R8”=R7’=R6^Perm,S_box’为另一个S盒子的输出,该盒子的输入为kk(i+1)^R7’=kk(i+1)^R6^Perm,Perm’是S_box’重新排序的结果;其中,R1、R2、R3、R4、R5、R6、R7、R8为第i次基本移位后的各寄存器中的数据值,R1’、R2’、R3’、R4’、R5’、R6’、R7’、R8’为第i+1次基本移位后的各寄存器中的数据值,R1”、R2”、R3”、R4”、R5”、R6”、R7”、R8”为第i+2次基本移位后的各寄存器中的数据值,S_box,S_box’为S盒子输出的数值,Perm,Perm’为排序单元输出的数值,^为异或运算kk(i+1)为56个控制字之一。
10.根据权利要求7所述的块解扰方法,其特征在于,步骤b23包括R1”’=R8”^S_box”=R6^Perm^S_box”;R2”’=R1”=R7^S_box’;R3”’=R2”^R1”’=(R8^S_box)^(R6^Perm^S_box”);R4”’=R3”^R1”’=(R1^R7^S_box’)^(R6^Perm^S_box”);R5”’=R4”^R1”’=(R2^R8^S_box)^(R7^S_box’)^(R6^Perm^S_box”);R6”’=R5”=(R3^R8^S_box)^(R7^S_box’);R7”’=R6”^Perm”=(R4^R8^S_box)^Perm”;R8”’=R7”=R5^Perm’,S_box”为S盒子的输出,该S盒子的输入为R7”^kk(i+2)=R5^Perm’^kk(i+2),Perm”是S_box”重新排序的结果。S_box’为S盒子的输出,该S盒子的输入为kk(i+1)^R7’=kk(i+1)^R6^Perm,Perm’是S_box’重新排序的结果;其中,R1、R2、R3、R4、R5、R6、R7、R8为第i次基本移位后的各寄存器中的数据值,R1’、R2’、R3’、R4’、R5’、R6’、R7’、R8’为第i+1次基本移位后的各寄存器中的数据值,R1”、R2”、R3”、R4”、R5”、R6”、R7”、R8”为第i+2次基本移位后的各寄存器中的数据值,R1”’、R2”’、R3”’、R4”’、R5”’、R6”’、R7”’、R8”’为第i+3次基本移位后的各寄存器中的数据值,S_box为S盒子的输出,Perm为排序单元输出的数值,^为异或运算。
11.根据权利要求7所述的块解扰方法,其特征在于,步骤b24包括R1””=R8”’^S_box”’=R5^Perm’^S_box”’;R2””=R1”’=R6^Perm^S_box”;R3””=R2”’^R1””=R7^S_box’^R5^Perm’^S_box”’;R4””=R3”’^R1””=(R8^S_box)^(R6^Perm^S_box”)^(R5^Perm’^S_box”’);R5””=R4”’^R1””=(R1^R7^S_box’)^(R6^Pem^S_box”)^(R5^Perm’^S_box”’);R6””=R5”’=(R2^R8^S_box)^(R7^S_box’)^(R6^Perm^S_box”);R7””=R6”’^Perm”’=(R3^R8^S_box)^(R7^S_box’)^Perm”’;R8””=R7”’=(R4^R8^S box)^Perm”,S_box”’为S盒子的输出,该S盒子的输入为R7”’^kk(i+3)=(R4^R8^S_box)^Perm”^kk(i+3),Perm”’是S_box”’重新排序的结果;S_box”为S盒子的输出,该S盒子的输入为R7”^kk(i+2)=R5^Perm’^kk(i+2),Perm”是S_box”重新排序的结果;S_box’为S盒子的输出,该S盒子的输入为kk(i+1)^R7’=kk(i+1)^R6^Perm,Perm’是S_box’重新排序的结果。其中,R1、R2、R3、R4、R5、R6、R7、R8为第i次基本移位后的各寄存器中的数据值,R1’、R2’、R3’、R4’、R5’、R6’、R7’、R8’为第i+1次基本移位后的各寄存器中的数据值,R1”、R2”、R3”、R4”、R5”、R6”、R7”、R8”为第i+2次基本移位后的各寄存器中的数据值,R1”’、R2”’、R3”’、R4”’、R5”’、R6”’、R7”’、R8”’为第i+3次基本移位后的各寄存器中的数据值,R1””、R2””、R3””、R4””、R5””、R6””、R7””、R8””为第i+4次基本移位后的各寄存器中的数据值,S_box为S盒子输出的数值,Perm为排序单元输出的数值,^为异或运算。
全文摘要
本发明提供一种块解扰方法,包括a.根据块解扰装入新的输入值的第1个时钟周期各寄存器中的数据值和相应的控制字,计算作第n次基本移位后各寄存器的数据值,并将结果存入寄存器中;n为能够被56整除的任何一个整数;设i=n;b.根据第i次基本移位后各寄存器中的数据值和相应的控制字,计算第i+n次基本移位后各寄存器中的数据值;c.将步骤b的计算结果存入寄存器中,并将i设为i+n;重复执行步骤b,直到计算出块解扰装入新的输入值开始算起经过56次基本移位后的各寄存器中的数据值;d.从各寄存器并行输出所述块解扰装入新的输入值之后第56次基本移位后的数据值,以完成块解扰。本发明能够提高块解扰的计算速度。
文档编号H04N7/167GK1878293SQ20061008970
公开日2006年12月13日 申请日期2006年7月12日 优先权日2006年7月12日
发明者杜生海 申请人:大唐微电子技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1