專利名稱:一種塊解擾方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)解擾技術(shù),尤其涉及一種塊解擾方法。
背景技術(shù):
在數(shù)字視頻廣播(Digital Video Broadcasting,DVB)標準中,解擾技術(shù)是一項核心技術(shù),解擾算法用來對加擾后的傳輸流(TS,transport stream)進行解擾。解擾算法由兩部分組成流解擾(Stream cipher)和塊解擾(Block cipher)。如圖1a所示,輸入的傳輸流以TS包的形式出現(xiàn),每個TS包由188個字節(jié)組成,其中前四個字節(jié)為TS包頭,在沒有適應(yīng)域的情況下,后面的184個字節(jié)為TS包凈荷(payload),只有凈荷才可能需要解擾。輸入數(shù)據(jù)寬度為8位,前8個字節(jié)用來對流解擾單元進行初始化,同時也進入第一寄存器中。當(dāng)流解擾單元完成初始化的同時,前8個字節(jié)也從第一寄存器中一起輸入到塊解擾單元中開始塊解擾過程。從第9個字節(jié)開始,每個輸入數(shù)據(jù)與流解擾單元的輸出異或后進入第一寄存器中,每存滿8個字節(jié)后就輸入到塊解擾單元開始塊解擾過程。塊解擾完成后,數(shù)據(jù)進入第二寄存器,并與第一寄存器中的數(shù)據(jù)異或后就是解擾機最終的輸出。流解擾是隨輸入字節(jié)連續(xù)進行的,即每輸入一個字節(jié)都要做流解擾;而塊解擾是每8個字節(jié)分塊進行的,即每輸入8個字節(jié)才啟動一次塊解擾。
圖2是現(xiàn)有技術(shù)中標準塊解擾方法的示意圖。如圖所示,該標準塊解擾方法的具體過程如下在開始塊解擾前,先用解擾控制字(CW)作為初始值,并依據(jù)標準中規(guī)定的排序算法產(chǎn)生一組用于塊解擾的kk(i),該排序算法將64位輸入重新排序后產(chǎn)生64位輸出,共8個kk(i),然后再以當(dāng)前的kk(i)為輸入產(chǎn)生另外8個kk(i),總共要進行7次排序,則一共產(chǎn)生56個kk(i)。因此,解擾控制字一旦確定,則用于塊解擾的56個kk(i)也就相應(yīng)確定。經(jīng)過56個時鐘周期,寄存器中的數(shù)據(jù)沿箭頭方向移位56次后,完成對該數(shù)據(jù)塊的塊解擾處理。在本專利中,將現(xiàn)有技術(shù)下進行56次移位的每一次移位稱為一個基本移位。
圖2中的S_box稱為S盒子,功能上相當(dāng)于一個查找表,輸入和輸出各為8位,其輸入為kk(i)和R7的異或結(jié)果,輸出再經(jīng)過一次8位的排序(即圖中的Perm所作的排序處理),然后與R6異或后作為R7的下一個值。而R7的當(dāng)前值就是R8的下一個值,其余寄存器也可以依此類推,其中,R1~R8為八個8位的寄存器。
整個電路在時鐘控制下沿箭頭方向作數(shù)據(jù)的移位,每個時鐘周期移位一次,并且更換一個kk(i),這樣在56個時鐘周期后,就完成了塊解擾過程,并且在寄存器R1~R8中存儲的為塊解擾的最終計算結(jié)果,并輸出該最終結(jié)果。
在實際應(yīng)用中采用這種標準的塊解擾方式,其結(jié)果是塊解擾速度慢于流解擾速度,因為流解擾單元每處理一個輸入字節(jié)需要4個時鐘周期,這樣8個字節(jié)就需要32個時鐘周期;而塊解擾單元處理8個字節(jié)則需要56個時鐘周期,因此在流解擾結(jié)束后,需要等待24個時鐘周期的時間,嚴重地影響了解擾速度。
為了提高解擾的速度,產(chǎn)生了第二種解擾方式,如圖1b所示。在第二種解擾方式中,使用兩個標準塊解擾單元對數(shù)據(jù)流進行并行操作,其原理是在流解擾單元完成一個數(shù)據(jù)塊的解擾后,即啟動一個塊解擾單元(即第一塊解擾單元),然后流解擾單元繼續(xù)解擾下一個數(shù)據(jù)塊,當(dāng)?shù)诙€數(shù)據(jù)塊的流解擾完成后,第一個數(shù)據(jù)塊解擾過程還沒有結(jié)束,因此可以再啟動另一個塊解擾單元(即第二塊解擾單元)對第二個數(shù)據(jù)塊進行塊解擾。如此交替進行,直到最后一個塊解擾結(jié)束后,則完成了對一個TS數(shù)據(jù)包的解擾處理。
從上述描述可以看出,由于在現(xiàn)有技術(shù)中采用的是標準塊解擾方法,因此,在解擾過程中,要提高整個解擾過程的解擾速度,只能采用多個塊解擾單元的技術(shù)方案。
雖然在采用多個塊解擾單元的實現(xiàn)方式中,等待時間可以縮短,但由于需要兩個塊解擾單元,因此不僅增加了資源消耗,而且需要更為復(fù)雜的控制邏輯。另外,對于最后一個數(shù)據(jù)塊,仍然要等待56個時鐘周期,全部解擾過程才能結(jié)束。
發(fā)明內(nèi)容
本發(fā)明的目的是提出一種能夠在少量增加資源開銷的基礎(chǔ)上,進一步提高塊解擾速度的方法,不僅能夠進一步提高塊解擾的計算速度,而且解決現(xiàn)有技術(shù)中雙塊解擾方案資源消耗多的問題。
本發(fā)明提供一種塊解擾方法,包括
a.根據(jù)塊解擾裝入新的輸入值的第1個時鐘周期各寄存器中的數(shù)據(jù)值和相應(yīng)的控制字,計算作第n次基本移位后各寄存器的數(shù)據(jù)值,并將結(jié)果存入寄存器中;n為能夠被56整除的任何一個整數(shù);設(shè)i=n;b.根據(jù)第i次基本移位后各寄存器中的數(shù)據(jù)值和相應(yīng)的控制字,計算第i+n次基本移位后各寄存器中的數(shù)據(jù)值;c.將步驟b的計算結(jié)果存入寄存器中,并將i設(shè)為i+n;重復(fù)執(zhí)行步驟b,直到計算出塊解擾裝入新的輸入值開始算起經(jīng)過56次基本移位后的各寄存器中的數(shù)據(jù)值;d.從各寄存器并行輸出所述塊解擾裝入新的輸入值之后第56次基本移位后的數(shù)據(jù)值,以完成塊解擾。
優(yōu)選地,步驟b是根據(jù)第i次基本移位后各寄存器中的數(shù)據(jù)值和相應(yīng)的控制字,計算第i+2次基本移位后的各寄存器中的數(shù)據(jù)值。
優(yōu)選地,步驟b包括b11.根據(jù)第i次基本移位后各寄存器中的數(shù)據(jù)值和相應(yīng)的控制字,計算第i+1次基本移位后的各寄存器中的數(shù)據(jù)值;b12.根據(jù)第i+1次基本移位后各寄存器中的數(shù)據(jù)值和相應(yīng)的控制字,計算第i+2次基本移位后的各寄存器中的數(shù)據(jù)值。
優(yōu)選地,步驟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次基本移位后的各寄存器中的數(shù)據(jù)值,R1’、R2’、R3’、R4’、R5’、R6’、R7’、R8’為第i+1次基本移位后的各寄存器中的數(shù)據(jù)值,S_box為S盒子輸出的數(shù)值,該S盒子的輸入為kk(i)^R7,Perm為排序單元輸出的數(shù)值,^為異或運算,kk(i)為56個控制字之一。
優(yōu)選地,步驟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’重新排序的結(jié)果。其中,R1、R2、R3、R4、R5、R6、R7、R8為第i次基本移位后的各寄存器中的數(shù)據(jù)值,R1’、R2’、R3’、R4’、R5’、R6’、R7’、R8’為第i+1次基本移位后的各寄存器中的數(shù)據(jù)值,R1”、R2”、R3”、R4”、R5”、R6”、R7”、R8”為第i+2次基本移位后的各寄存器中的數(shù)據(jù)值,S_box,S_box’為S盒子輸出的數(shù)值,Perm,Perm’為排序單元輸出的數(shù)值,^為異或運算,kk(i+1)為56個控制字之一。
優(yōu)選地,步驟b是根據(jù)第i次基本移位后各寄存器中的數(shù)據(jù)值和相應(yīng)的控制字,計算第i+4次基本移位后的各寄存器中的數(shù)據(jù)值。
優(yōu)選地,步驟b包括b21.根據(jù)第i次基本移位后的控制字和各寄存器中的數(shù)據(jù)值,計算第i+1次基本移位后的各寄存器中的數(shù)據(jù)值;b22.根據(jù)第i+1次基本移位后的控制字和各寄存器中的數(shù)據(jù)值,計算第i+2次基本移位后的各寄存器中的數(shù)據(jù)值;b23.根據(jù)第i+2次基本移位后的控制字和各寄存器中的數(shù)據(jù)值,計算第i+3次基本移位后的各寄存器中的數(shù)據(jù)值;b24.根據(jù)第i+3次基本移位后的控制字和各寄存器中的數(shù)據(jù)值,計算第i+4次基本移位后的各寄存器中的數(shù)據(jù)值。
優(yōu)選地,步驟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次基本移位后的各寄存器中的數(shù)據(jù)值,R1’、R2’、R3’、R4’、R5’、R6’、R7’、R8’為第i+1次基本移位后的各寄存器中的數(shù)據(jù)值,S_box為S盒子輸出的數(shù)值,該S盒子的輸入為kk(i)^R7,Perm為排序單元輸出的數(shù)值,^為異或運算,kk(i)為56個控制字之一。
優(yōu)選地,步驟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’重新排序的結(jié)果;其中,R1、R2、R3、R4、R5、R6、R7、R8為第i次基本移位后的各寄存器中的數(shù)據(jù)值,R1’、R2’、R3’、R4’、R5’、R6’、R7’、R8’為第i+1次基本移位后的各寄存器中的數(shù)據(jù)值,R1”、R2”、R3”、R4”、R5”、R6”、R7”、R8”為第i+2次基本移位后的各寄存器中的數(shù)據(jù)值,S_box,S_box’為S盒子輸出的數(shù)值,Perm,Perm’為排序單元輸出的數(shù)值,^為異或運算kk(i+1)為56個控制字之一。
優(yōu)選地,步驟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”重新排序的結(jié)果。S_box’為S盒子的輸出,該S盒子的輸入為kk(i+1)^R7’=kk(i+1)^R6^Perm,Perm’是S_box’重新排序的結(jié)果;其中,R1、R2、R3、R4、R5、R6、R7、R8為第i次基本移位后的各寄存器中的數(shù)據(jù)值,R1’、R2’、R3’、R4’、R5’、R6’、R7’、R8’為第i+1次基本移位后的各寄存器中的數(shù)據(jù)值,R1”、R2”、R3”、R4”、R5”、R6”、R7”、R8”為第i+2次基本移位后的各寄存器中的數(shù)據(jù)值,R1、R2、R3、R4、R5、R6、R7、R8為第i+3次基本移位后的各寄存器中的數(shù)據(jù)值,S_box為S盒子的輸出,Perm為排序單元輸出的數(shù)值,^為異或運算。
優(yōu)選地,步驟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重新排序的結(jié)果;S_box”為S盒子的輸出,該S盒子的輸入為R7”^kk(i+2)=R5^Perm’^kk(i+2),Perm”是S_box”重新排序的結(jié)果;S_box’為S盒子的輸出,該S盒子的輸入為kk(i+1)^R7’=kk(i+1)^R6^Perm,Perm’是S_box’重新排序的結(jié)果。其中,R1、R2、R3、R4、R5、R6、R7、R8為第i次基本移位后的各寄存器中的數(shù)據(jù)值,R1’、R2’、R3’、R4’、R5’、R6’、R7’、R8’為第i+1次基本移位后的各寄存器中的數(shù)據(jù)值,R1”、R2”、R3”、R4”、R5”、R6”、R7”、R8”為第i+2次基本移位后的各寄存器中的數(shù)據(jù)值,R1、R2、R3、R4、R5、R6、R7、R8為第i+3次基本移位后的各寄存器中的數(shù)據(jù)值,R1””、R2””、R3””、R4””、R5””、R6””、R7””、R8””為第i+4次基本移位后的各寄存器中的數(shù)據(jù)值,S_box為S盒子輸出的數(shù)值,Perm為排序單元輸出的數(shù)值,^為異或運算。
相對于現(xiàn)有技術(shù),利用本發(fā)明所提供的塊解擾方法,可以通過合并多個運算步驟而使運算速度成倍提高。例如,如果通過各寄存器的當(dāng)前值計算出它們的下兩次基本移位后的值,這樣就相當(dāng)于標準塊解擾方法將計算速度提高了一倍。因此可以使整個解擾過程速度更快,并且,本發(fā)明只采用一個流解擾單元和一個塊解擾單元,其中塊解擾單元只比標準塊解擾增加了一個S_box和Perm,S_box、Perm的具體實現(xiàn)由現(xiàn)有的通用解擾方法標準規(guī)定。S_box在功能上相當(dāng)于一個查找表,占用的資源量不多,而Perm只是一個簡單的8位排序電路,幾乎不占用資源。因此本發(fā)明的硬件實現(xiàn)結(jié)構(gòu)比現(xiàn)有技術(shù)的雙塊解擾方案要簡單,而且占用的資源要少。
另外,如圖1c所示,本發(fā)明的有益效果可以通過對比現(xiàn)有技術(shù)中使用標準塊解擾單元的雙塊解擾技術(shù)方案和使用本發(fā)明的塊解擾方法的技術(shù)方案來清楚地體現(xiàn)如果需要進行流解擾和塊解擾的數(shù)據(jù)塊只有4個,本發(fā)明的塊解擾方案比現(xiàn)有技術(shù)的雙塊并行解擾方案提前28個時鐘周期結(jié)束。在實際應(yīng)用中,一個TS數(shù)據(jù)包有23個數(shù)據(jù)塊,這時本發(fā)明需要的時鐘周期數(shù)為32×23+28=764,雙塊并行解擾需要的時鐘周期數(shù)為32×23+56=792,可以看出,本發(fā)明比雙塊解擾方法快了28個時鐘周期。也就是說,本發(fā)明的解擾效率比雙塊解擾方法提高了4%,而占用的資源卻少了很多。
圖1a是現(xiàn)有技術(shù)的單塊解擾方法示意圖;圖1b是現(xiàn)有技術(shù)的采用雙塊解擾方法的示意圖;圖1c是本發(fā)明一個實施例和現(xiàn)有技術(shù)的雙塊解擾方案的技術(shù)效果比較圖;圖2是現(xiàn)有技術(shù)中標準塊解擾方法的示意圖;圖3是應(yīng)用本發(fā)明第一實施例的塊解擾方法的示意圖;圖4是應(yīng)用本發(fā)明第二實施例的塊解擾方法的示意圖。
具體實施例方式
本發(fā)明的思想是將標準塊解擾方法中需要多個時鐘周期才能完成的計算步驟合并到一個時鐘周期中執(zhí)行,因此成倍地提高了塊解擾的效率。也就是說,本發(fā)明中一個時鐘周期進行的一次移位相當(dāng)于現(xiàn)有技術(shù)的多次移位。如前所述,現(xiàn)有技術(shù)中一次移位稱為一個基本移位,則本發(fā)明的一個時鐘周期的一次移位相當(dāng)于進行了多次基本移位。
圖2是現(xiàn)有技術(shù)中標準塊解擾方法的示意圖,整個電路在時鐘控制下沿箭頭方向移位,每個時鐘移位一次,若用R1’~R8’表示寄存器的下一個值,則根據(jù)圖2所示的結(jié)構(gòu)可知,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表示當(dāng)前值,R1’~R8’表示R1~R8的下一個值(即寄存器作一次基本移位后的值)。在現(xiàn)有技術(shù)中,每隔一個時鐘周期,寄存器組進行一次循環(huán)移位。符號^表示異或運算。
要得出一次進行多步運算的結(jié)果,需要在上述技術(shù)方案的基礎(chǔ)上進行進一步的推導(dǎo)。在本發(fā)明的第一實施例中首先提供了一種能夠?qū)崿F(xiàn)在當(dāng)前時鐘周期計算出移位兩次后各寄存器中的數(shù)值結(jié)果的技術(shù)方案。
具體地,對于S_box,其當(dāng)前輸入為kk(i)^R7,則下一次輸入為kk(i+1)^R7’,而R7’=R6^Perm,因此,S_box的下一次輸入為kk(i+1)^R6^Perm。S_box的當(dāng)前輸出與R8的異或運算后的輸出為R1’,即R1的下一個值,同理,S_box的下一次輸出與R8的下一個值R8’的異或運算結(jié)果就是R1”,即R1的下兩個值,而R8’就是R7,因此,可以用當(dāng)前的數(shù)值和下一個kk產(chǎn)生出下兩個R1的值。
根據(jù)上述方法,只要能得到R2~R8的下兩個值(即R2”~R8”)與當(dāng)前寄存器中數(shù)值的關(guān)系,就可以實現(xiàn)在一個時鐘周期內(nèi)完成原來需兩個時鐘周期才能完成的運算,也就是一次移位相當(dāng)于兩次基本移位。
因為R8’=R7,則R8”=R7’,而R7’=R6^Perm,所以R8”=R6^Perm,同理可得如下結(jié)果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的下兩個值(即進行兩次基本移位后的數(shù)值)。
如果要在當(dāng)前時鐘周期計算出R1”-R8”,上述等式的右側(cè)必須均為當(dāng)前時鐘周期的寄存器值和其他參數(shù)。而在上述等式右側(cè),只有S_box’和Perm’是S盒子和排序單元的下一次輸出值,其余均為寄存器的當(dāng)前值。因此只要得到S_box’和Perm’即可。而Perm’是與S_box’相對應(yīng)的數(shù)值(即對S盒子的輸出再進行排序運算),因此,只需要求出S_box’的數(shù)值即可。所述S盒子和排序方式均在現(xiàn)有標準中規(guī)定,為本領(lǐng)域技術(shù)人員所公知,在此不贅述。
據(jù)前述的分析,S_box的下一次輸入為kk(i+1)^R7’=kk(i+1)^R6^Perm,這樣S_box’也可以得到。
根據(jù)上述推導(dǎo)所得的變量之間的關(guān)系,可以得到一個完整的塊解擾方法示意圖,具體參見圖3。在圖3中,塊解擾方法涉及八個寄存器和第一S盒子、第一排序單元、第二S盒子和第二排序單元。
其中,第一S盒子和第二S盒子具有同樣的結(jié)構(gòu)。第一S盒子的輸入為控制字kk(i)與R7異或結(jié)果;第二S盒子的輸入為kk(i+1)異或R6,再異或Perm。
所述排序單元可以通過排序電路實現(xiàn),排序規(guī)則有現(xiàn)有技術(shù)標準規(guī)定,在此不作描述。排序單元的輸出再根據(jù)上述解擾方法的邏輯進行連接。
八個寄存器以及上述S盒子和排序單元的輸出和輸入端按照上述解擾方法的邏輯進行連接。
圖3的具體結(jié)構(gòu)完全體現(xiàn)了本實施例中的塊解擾方法,例如在本實施例中,要計算寄存器R5中的值,則利用R5”=R3^R8^S_box^S_box’^R7進行計算,相應(yīng)地,在圖3的具體結(jié)構(gòu)中,R5的輸入端是由三個部分進行異或運算的輸出,其中這三部分分別是R3、R8^S_box、S_box’^R7,從而使得在時鐘沿到來時,即將進入R5的值是R5”,而不是R5’,這樣就等于跳過了計算R5’的步驟,從而使速度提高了一倍。其他寄存器內(nèi)數(shù)值計算的實現(xiàn)也類似上述描述,在此不一一列舉。
在本發(fā)明的第二實施例中,提供了一種能夠?qū)崿F(xiàn)在當(dāng)前時鐘周期計算出基本移位四次后各寄存器中的數(shù)值結(jié)果的技術(shù)方案。圖4是本發(fā)明的第二實施例的塊解擾方法示意圖。
本發(fā)明第二實施例所描述的塊解擾方法具體如下首先,與第一實施例相同,需要得出R1’~R8’、R1”~R8”的數(shù)值,即,R1’~R8’的數(shù)值為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”的數(shù)值為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~R8R1=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_boxR2””=R1=R6^Perm^S_box”R3””=R2^R1””=R7^S_box’^R5^Perm’^S_boxR4””=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’)^PermR8””=R7=(R4^R8^S_box)^Perm”在表達式左側(cè)是R1””~R8””,在表達式的右側(cè)是當(dāng)前值R1~R8,需要確定的只有S_box’、S_box”、S_box、Perm’、Perm”、Perm,而Perm’、Perm”和Perm分別與S_box’、S_box”和S_box一一對應(yīng),因此只要確定三個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)。
根據(jù)上述推導(dǎo)所得的變量之間的關(guān)系,可以得到一個完整的塊解擾方法示意圖,具體參見圖4。在圖4中,塊解擾方法涉及八個寄存器和第一S盒子、第一排序單元、第二S盒子、第二排序單元、第三S盒子、第三排序單元、第四S盒子和第四排序單元。
其中,各個S盒子的結(jié)構(gòu)完全相同。
所述排序單元可以通過排序電路實現(xiàn),排序規(guī)則有現(xiàn)有技術(shù)標準規(guī)定,在此不作描述。排序單元的輸出再根據(jù)上述解擾方法的邏輯進行連接。
八個寄存器以及上述S盒子和排序單元的輸出和輸入端按照上述解擾方法的邏輯進行連接。
圖4完整的示出本發(fā)明第二實施例中的塊解擾方法,例如在本實施例中,要計算寄存器R5中的值,則利用R5””=R4^R1””=(R1^R7^S_box’)^(R6^Perm^S_box”)^(R5^Perm’^S_box)進行計算,相應(yīng)地,在圖4中還示出,R5的輸入端是兩個部分進行異或運算的輸出,其中這兩部分分別是R4^R1””。其中,R4是由R3和R1””經(jīng)過異或運算得出的,R1””是由R8和S_box經(jīng)過異或運算得出的。根據(jù)上述推導(dǎo)過程,能夠得到R5是由(R1^R7^S_box’)、(R6^Perm^S_box”)、(R5^Perm’^S_box)進行異或運算得出的,從而能夠?qū)崿F(xiàn)塊解擾方法的相關(guān)步驟,得到了R5下四次基本移位后的數(shù)值。其他寄存器內(nèi)數(shù)值計算的實現(xiàn)也類似上述描述,在此不一一列舉。
以上所舉的例子,分別是將標準塊解擾方法中需要兩個和四個時鐘周期才能完成的計算步驟合并到一個時鐘周期中執(zhí)行,當(dāng)然也可以將標準塊解擾方法中需要七個、八個、十四個、二十八個時鐘周期才能完成的計算步驟合并到一個時鐘周期中執(zhí)行,只要是經(jīng)過以上所述的多次移位后正好可以完成56次基本移位即可。
以上所述的本發(fā)明實施方式,并不構(gòu)成對本發(fā)明保護范圍的限定。任何在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的權(quán)利要求保護范圍之內(nèi)。
權(quán)利要求
1.一種塊解擾方法,其特征在于,包括a.根據(jù)塊解擾裝入新的輸入值的第1個時鐘周期各寄存器中的數(shù)據(jù)值和相應(yīng)的控制字,計算作第n次基本移位后各寄存器的數(shù)據(jù)值,并將結(jié)果存入寄存器中;n為能夠被56整除的任何一個整數(shù);設(shè)i=n;b.根據(jù)第i次基本移位后各寄存器中的數(shù)據(jù)值和相應(yīng)的控制字,計算第i+n次基本移位后各寄存器中的數(shù)據(jù)值;c.將步驟b的計算結(jié)果存入寄存器中,并將i設(shè)為i+n;重復(fù)執(zhí)行步驟b,直到計算出塊解擾裝入新的輸入值開始算起經(jīng)過56次基本移位后的各寄存器中的數(shù)據(jù)值;d.從各寄存器并行輸出所述塊解擾裝入新的輸入值之后第56次基本移位后的數(shù)據(jù)值,以完成塊解擾。
2.根據(jù)權(quán)利要求1所述的塊解擾方法,其特征在于,步驟b是根據(jù)第i次基本移位后各寄存器中的數(shù)據(jù)值和相應(yīng)的控制字,計算第i+2次基本移位后的各寄存器中的數(shù)據(jù)值。
3.根據(jù)權(quán)利要求2所述的塊解擾方法,其特征在于,步驟b包括b11.根據(jù)第i次基本移位后各寄存器中的數(shù)據(jù)值和相應(yīng)的控制字,計算第i+1次基本移位后的各寄存器中的數(shù)據(jù)值;b12.根據(jù)第i+1次基本移位后各寄存器中的數(shù)據(jù)值和相應(yīng)的控制字,計算第i+2次基本移位后的各寄存器中的數(shù)據(jù)值。
4.根據(jù)權(quán)利要求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次基本移位后的各寄存器中的數(shù)據(jù)值,R1’、R2’、R3’、R4’、R5’、R6’、R7’、R8’為第i+1次基本移位后的各寄存器中的數(shù)據(jù)值,S_box為S盒子輸出的數(shù)值,該S盒子的輸入為kk(i)^R7,Perm為排序單元輸出的數(shù)值,^為異或運算,kk(i)為56個控制字之一。
5.根據(jù)權(quán)利要求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’重新排序的結(jié)果。其中,R1、R2、R3、R4、R5、R6、R7、R8為第i次基本移位后的各寄存器中的數(shù)據(jù)值,R1’、R2’、R3’、R4’、R5,、R6’、R7’、R8’為第i+1次基本移位后的各寄存器中的數(shù)據(jù)值,R1”、R2”、R3”、R4”、R5”、R6”、R7”、R8”為第i+2次基本移位后的各寄存器中的數(shù)據(jù)值,S_box,S_box’為S盒子輸出的數(shù)值,Perm,Perm’為排序單元輸出的數(shù)值,^為異或運算,kk(i+1)為56個控制字之一。
6.根據(jù)權(quán)利要求1所述的塊解擾方法,其特征在于,步驟b是根據(jù)第i次基本移位后各寄存器中的數(shù)據(jù)值和相應(yīng)的控制字,計算第i+4次基本移位后的各寄存器中的數(shù)據(jù)值。
7.根據(jù)權(quán)利要求6所述的塊解擾方法,其特征在于,步驟b包括b21.根據(jù)第i次基本移位后的控制字和各寄存器中的數(shù)據(jù)值,計算第i+1次基本移位后的各寄存器中的數(shù)據(jù)值;b22.根據(jù)第i+1次基本移位后的控制字和各寄存器中的數(shù)據(jù)值,計算第i+2次基本移位后的各寄存器中的數(shù)據(jù)值;b23.根據(jù)第i+2次基本移位后的控制字和各寄存器中的數(shù)據(jù)值,計算第i+3次基本移位后的各寄存器中的數(shù)據(jù)值;b24.根據(jù)第i+3次基本移位后的控制字和各寄存器中的數(shù)據(jù)值,計算第i+4次基本移位后的各寄存器中的數(shù)據(jù)值。
8.根據(jù)權(quán)利要求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次基本移位后的各寄存器中的數(shù)據(jù)值,R1’、R2’、R3’、R4’、R5’、R6’、R7’、R8’為第i+1次基本移位后的各寄存器中的數(shù)據(jù)值,S_box為S盒子輸出的數(shù)值,該S盒子的輸入為kk(i)^R7,Perm為排序單元輸出的數(shù)值,^為異或運算,kk(i)為56個控制字之一。
9.根據(jù)權(quán)利要求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’重新排序的結(jié)果;其中,R1、R2、R3、R4、R5、R6、R7、R8為第i次基本移位后的各寄存器中的數(shù)據(jù)值,R1’、R2’、R3’、R4’、R5’、R6’、R7’、R8’為第i+1次基本移位后的各寄存器中的數(shù)據(jù)值,R1”、R2”、R3”、R4”、R5”、R6”、R7”、R8”為第i+2次基本移位后的各寄存器中的數(shù)據(jù)值,S_box,S_box’為S盒子輸出的數(shù)值,Perm,Perm’為排序單元輸出的數(shù)值,^為異或運算kk(i+1)為56個控制字之一。
10.根據(jù)權(quán)利要求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”重新排序的結(jié)果。S_box’為S盒子的輸出,該S盒子的輸入為kk(i+1)^R7’=kk(i+1)^R6^Perm,Perm’是S_box’重新排序的結(jié)果;其中,R1、R2、R3、R4、R5、R6、R7、R8為第i次基本移位后的各寄存器中的數(shù)據(jù)值,R1’、R2’、R3’、R4’、R5’、R6’、R7’、R8’為第i+1次基本移位后的各寄存器中的數(shù)據(jù)值,R1”、R2”、R3”、R4”、R5”、R6”、R7”、R8”為第i+2次基本移位后的各寄存器中的數(shù)據(jù)值,R1”’、R2”’、R3”’、R4”’、R5”’、R6”’、R7”’、R8”’為第i+3次基本移位后的各寄存器中的數(shù)據(jù)值,S_box為S盒子的輸出,Perm為排序單元輸出的數(shù)值,^為異或運算。
11.根據(jù)權(quán)利要求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”’重新排序的結(jié)果;S_box”為S盒子的輸出,該S盒子的輸入為R7”^kk(i+2)=R5^Perm’^kk(i+2),Perm”是S_box”重新排序的結(jié)果;S_box’為S盒子的輸出,該S盒子的輸入為kk(i+1)^R7’=kk(i+1)^R6^Perm,Perm’是S_box’重新排序的結(jié)果。其中,R1、R2、R3、R4、R5、R6、R7、R8為第i次基本移位后的各寄存器中的數(shù)據(jù)值,R1’、R2’、R3’、R4’、R5’、R6’、R7’、R8’為第i+1次基本移位后的各寄存器中的數(shù)據(jù)值,R1”、R2”、R3”、R4”、R5”、R6”、R7”、R8”為第i+2次基本移位后的各寄存器中的數(shù)據(jù)值,R1”’、R2”’、R3”’、R4”’、R5”’、R6”’、R7”’、R8”’為第i+3次基本移位后的各寄存器中的數(shù)據(jù)值,R1””、R2””、R3””、R4””、R5””、R6””、R7””、R8””為第i+4次基本移位后的各寄存器中的數(shù)據(jù)值,S_box為S盒子輸出的數(shù)值,Perm為排序單元輸出的數(shù)值,^為異或運算。
全文摘要
本發(fā)明提供一種塊解擾方法,包括a.根據(jù)塊解擾裝入新的輸入值的第1個時鐘周期各寄存器中的數(shù)據(jù)值和相應(yīng)的控制字,計算作第n次基本移位后各寄存器的數(shù)據(jù)值,并將結(jié)果存入寄存器中;n為能夠被56整除的任何一個整數(shù);設(shè)i=n;b.根據(jù)第i次基本移位后各寄存器中的數(shù)據(jù)值和相應(yīng)的控制字,計算第i+n次基本移位后各寄存器中的數(shù)據(jù)值;c.將步驟b的計算結(jié)果存入寄存器中,并將i設(shè)為i+n;重復(fù)執(zhí)行步驟b,直到計算出塊解擾裝入新的輸入值開始算起經(jīng)過56次基本移位后的各寄存器中的數(shù)據(jù)值;d.從各寄存器并行輸出所述塊解擾裝入新的輸入值之后第56次基本移位后的數(shù)據(jù)值,以完成塊解擾。本發(fā)明能夠提高塊解擾的計算速度。
文檔編號H04N7/167GK1878293SQ20061008970
公開日2006年12月13日 申請日期2006年7月12日 優(yōu)先權(quán)日2006年7月12日
發(fā)明者杜生海 申請人:大唐微電子技術(shù)有限公司