欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

設計最優(yōu)加密函數(shù)的方法和優(yōu)化的加密設備的制作方法

文檔序號:2392142閱讀:256來源:國知局
專利名稱:設計最優(yōu)加密函數(shù)的方法和優(yōu)化的加密設備的制作方法
技術領域
本發(fā)明涉及移動通信系統(tǒng),特別是涉及一種在移動通信系統(tǒng)中設計用于硬件實施的最優(yōu)加密函數(shù)的方法以及優(yōu)化的加密設備。
背景技術
隨著第一模擬通信系統(tǒng)發(fā)展為隨后的數(shù)字通信系統(tǒng),移動用戶期望穩(wěn)定、高速的數(shù)據(jù)傳輸。因此,服務的提供者做出努力,通過提出更可靠、更先進的加密方法來滿足使用者的需求。第三代通信系統(tǒng),是一個為高度復雜的基于信息社會提供多媒體服務(包括聲音和視頻數(shù)據(jù))的系統(tǒng),它需要確保多媒體信號的機密,安全和可靠的加密算法的標準化。11個加密算法的使用,考慮了在通用移動通信系統(tǒng)(UMTS)中的實施f0到f10。UMTS是由第三代通信合作計劃(3GPP)提出的基于全球移動通信系統(tǒng)(GSM)的核心網(wǎng)絡的第三代系統(tǒng)。在這些密碼算法中,3GPP機密性算法f8和3GPP完整性算法f9已經(jīng)被標準化了。這兩個算法基于KASUMI,即由日本三菱電子公司(Mitsubishi Electronic Corporation)開發(fā)的MISTY1密碼算法的改進型。
KASUMI是一個Feistel區(qū)塊密碼(Feistel block cipher),它通過對輸入的64-bit的明文進行8次操作,輸出一個64-bit密文。明文是指未加密的明碼電文消息,密文是指經(jīng)過加密算法和密鑰加密的確保機密性的報文。
圖1是傳統(tǒng)KASUMI硬件的方框圖。參照圖1,KASUMI加密塊包括多個多路復用器(MUX1、MUX2和MUX3)101、103及107;多路信號分離器(DEMUX)109;寄存器(寄存器A1和寄存器A2)102及104;多個函數(shù)塊(FL1、FL2及FO)106、110和108;控制器100,用來控制KASUMI加密塊的各個部件;以及提供密碼密鑰的密鑰調度器105。
輸入的一個64-bit的明文被分為兩個32-bit的字符串L0和R0,它們被分別施加到多路復用器MUX1 101和MUX2 103的輸入端。在控制器100的控制下,多路復用器MUX1 101輸出32-bit的字符串L0給寄存器A1 102,多路復用器MUX2 103輸出32-bit的字符串R0給寄存器A2 104。寄存器A1 102和寄存器A2 104臨時地存儲32-bit的字符串L0和R0,當接收到控制器100的控制信號時,就將它們輸出。
KASUMI加密塊根據(jù)它是奇數(shù)次還是偶數(shù)次操作來采用不同的加密通路。如果是奇數(shù)次,F(xiàn)L1塊106用從密鑰調度器105接收到的第一密鑰KLi,1和KLi,2對從寄存器A1102接收到的比特字符串L0進行加密,并向MUX3 107輸出密文L01。根據(jù)來自控制器100的控制信號,MU3 107將密文L01輸出到FO塊108。在控制器100的控制下,F(xiàn)O塊108用從密鑰調度器105接收的第二密鑰KIi,j和第三密鑰KOi,j對32-bit的字符串L01進行加密,并向DMUX109輸出密文L02。在控制器100的控制下,DMUX 109輸出32-bit的字符串L02。比特字符串L02與來自寄存器A2 104的比特字符串R0進行異或運算(exclusive-OR),得到密文R1。信號R1再反饋到MUX2 103。
如果是偶數(shù)次,在控制器100的控制下,MUX3 107將從寄存器A2 104接收的32-bit的字符串R0傳輸給FO塊108。在控制器100的控制下,F(xiàn)O塊108用從密鑰調度器105接收到的第二和第三密鑰KIi,j和KOi,j加密32-bit字符串R0,并向DEMUX 109輸出密文R01。在控制器100的控制下,DMUX 109向FL2塊110輸出32-bit字符串R01。FL2塊110用從密鑰調度器105接收的第一密鑰KLi,j對比特字符串R01進行加密,并輸出密文R02。比特字符串R02與來自寄存器A1 102的比特字符串L0進行異或運算,得到密文L1。信號L1再反饋到MUX1101。隨著次數(shù)的增加,密鑰KLi,j,KIi,j和KOi,j中的i和j也在增加。
在傳統(tǒng)的KASUMI加密中,兩個函數(shù)塊FL 106和110執(zhí)行相同的加密功能。函數(shù)塊的過多的使用,降低了設備的用戶效率,增加了功率的消耗。
圖2描述了在傳統(tǒng)的KASUMII計算中的3GPP加密函數(shù)f8。參照圖2,加密函數(shù)f8在輸入存儲器270中存儲一個待發(fā)送的明文。通過對明文重復進行KASUMI計算,就得到了密文,并將其存儲到輸出存儲器280中。在控制器200的控制下,寄存器C220臨時地存儲64-bit輸入數(shù)據(jù)。BLKCNT表示塊計數(shù)器,用于處理輸入的64-bit數(shù)據(jù),CK表示一個128-bit的密鑰,KM表示密鑰修改量,它是一個128-bit的常量。每個KASUMI可以加密最多5114比特,相當于80次??刂破?00通過控制信號來控制輸入和輸出存儲器260及280??刂破餍盘柊ㄒ粋€地址信號,用于給存儲器260和280分配地址;一個使能/廢能信號,用于使存儲器處于使能/廢能狀態(tài);一個讀/寫信號,用于讀/寫存儲的數(shù)據(jù)或密文;以及一個數(shù)據(jù)信號用于在一個已分配的地址中存儲一個數(shù)據(jù)單元。這樣,存儲器260和280就能在已分配的地址中存儲或從已分配的地址輸出數(shù)據(jù)單元。
KASUMI加密塊230用128-bit CK和128-bitKM的異或(CK□KM)來加密輸入的初始的64-bit字符串,并輸出一個初始的密文K00。寄存器C 220臨時地存儲信號K00,并在加密塊控制器(未示出)的控制下將其輸出。信號K00與塊計數(shù)值0(BLKCNT 0)進行異或運算,并將運算結果施加到KASUMI加密塊230的輸入端。KASUMI加密塊230用CK加密接收到的信號,并輸出一個密文K01。同時,控制器200從輸入存儲器270的第一地址中讀取一個明文D1。信號K01和D1進行異或運算得到密文K1。在控制器200的控制下,輸出存儲器280在它的第一地址中存儲最終的密文K1。函數(shù)f8根據(jù)明文的長度來重復該加密過程。
如上所述的f8函數(shù),控制器200從輸入存儲器270的每個地址中讀取一個明文,用KASUMI加密塊的輸出信號對讀取的明文進行加密,并在輸出存儲器280中存儲密文結果。輸入、輸出存儲器的分開使用導致f8函數(shù)硬件實施效率低,增加了功率的消耗。

發(fā)明內容
因此,本發(fā)明的第一個目的是提供一種加密設備,用于把一個長度為2nbit的輸入明文比特字符串分成長度為n的第一和第二子比特字符串,并在對它們進行加密后,輸出一個長度為2n的密文比特字符串。
本發(fā)明的另一個目的是提供一種加密方法,用于把一個長度為2n bit的輸入明文比特字符串分成長度為n的第一和第二子比特字符串,并在對它們進行加密后,輸出一個長度為2n的密文比特字符串。
本發(fā)明的另一個目的是提供一種加密設備,用于在第一加密過程中對長度為2n的明文比特字符串進行加密,輸出長度為n的第一密文比特字符串,并在第二加密過程中通過對長度為2m的第二明文比特字符串進行加密,輸出一個長度為m的第二密文比特字符串。
本發(fā)明的另一個目的是提供一種加密設備,用于在第一加密過程中對長度為2n的明文比特字符串進行加密,輸出長度為n的第一密文比特字符串,并在第二加密過程中通過對長度為2m的第二明文比特字符串進行加密,輸出一個長度為m的第二密文比特字符串。
根據(jù)本發(fā)明的一個方面,一種加密設備,用于將一個長度為2n的明文分為長度為n的第一和第二子比特字符串,并且通過加密第一和第二子比特字符串,產生一個長度為2n的密文,第一函數(shù)塊通過使用第一加密碼KL1,1和KL1,2對第一子比特字符串進行加密產生一個長度為n的第一密文,或通過用第一加密碼KL1,1和KL1,2對第二子比特字符串進行加密產生一個長度為n的第三密文。第二函數(shù)塊通過用第二加密碼KO1,1,KO1,2和KO1,3對第一密文進行加密產生一個長度為n的第四密文,或通過用第二加密碼KO1,1,KO1,2和KO1,3以及第三加密碼KI1,1,KI1,2和KI1,3對第一子比特字符串進行加密產生第二密文。一個密鑰調度器為第一和第二函數(shù)塊提供第一加密碼KL1,1和KL1,2,第二加密碼KO1,1,KO1,2和KO1,3,以及第三加密碼KI1,1,KI1,2,KI1,3。這些加密碼的長度均為n。一個控制器控制多個多路復用器,它們將第一子比特字符串輸入到第一或第二函數(shù)塊,并且控制第一和第二函數(shù)塊用第一加密碼KL1,1和KL1,2,第二加密碼KO1,1,KO1,2和KO1,3以及第三加密碼KI1,1,KI1,2, KI1,3加密所接收到的子比特字符串。
根據(jù)本發(fā)明的另一方面,一種加密方法,用于將一個長度為2n的明文分為長度為n的第一和第二子比特字符串,并通過加密第一和第二子比特字符串產生一個長度為2n的密文,通過用第一加密碼KL1,1和KL1,2對第一子比特字符串進行加密產生長度為n的第一密文。通過用第二加密碼KO1,1,KO1,2和KO1,3以及第三加密碼KI1,1,KI1,2和KI1,3加密第一密文產生長度為n的第四密文。通過對第四密文與第二子比特字符串進行異或運算產生第五密文。通過用第二加密碼KO1,1,KO1,2和KO1,3以及第三加密碼KI1,1,KI1,2和KI1,3對第一子比特字符串進行加密產生長度為n的第二密文。通過用第一加密碼KL1,1和KL1,2對第二密文進行加密產生長度為n的第三密文。通過對第三密文及第二子比特字符串進行異或運算產生第六密文。
根據(jù)本發(fā)明的另一方面,一種加密設備,函數(shù)塊在控制器的控制下通過用一個從密鑰調度器產生的長度為4n的加密碼對長度為2n的第一明文進行加密產生一個長度為2n的第一密文,并通過用一個長度為m的第二明文對第一密文進行加密產生一個長度為m的第二密文。密鑰調度器產生加密碼。在控制器的控制下,存儲器輸出第二明文和存儲第二密文??刂破鲝拇鎯ζ髦凶x取第二明文,并在存儲器中存儲第二密文。
根據(jù)本發(fā)明的另一方面,一種加密方法,通過用長度為4n的加密碼對長度為2n的第一明文進行加密產生長度為2n的第一密文。然后通過用長度為m的第二明文對第一密文進行加密產生長度為m的第二密文,并且將其存儲在存儲器中。


結合附圖,從以下的詳細描述中,本發(fā)明實施例的上述和其它目的、特征、優(yōu)點將會變的更明顯。
圖1是一個傳統(tǒng)的KASUMI硬件的方框圖;圖2說明了一個使用傳統(tǒng)的KASUMI操作的傳統(tǒng)加密算法;圖3說明了一個應用了本發(fā)明的一個實施例的KASUMI加密算法;圖4說明了圖3中所示FL函數(shù)塊的細節(jié)結構;圖5說明了圖3中所示FO函數(shù)塊的細節(jié)結構;圖6說明了圖5所示的FI子函數(shù)塊的細節(jié)結構;圖7是根據(jù)本發(fā)明的一個實施例的KASUMI硬件方框圖;圖8說明了根據(jù)本發(fā)明的一個實施例的應用KASUMI操作的一種傳統(tǒng)加密算法。
具體實施例方式
在這里,參照相關附圖,本發(fā)明的各種實施例均將被詳細描述。在下面的敘述中,為避免不必要的細節(jié)混淆本發(fā)明,對于一些公知的函數(shù)或結構不再做詳細描述。
圖3說明了一個應用了本發(fā)明的KASUMI加密算法。參照圖3,KASUMI加密算法是一個通過8次操作從輸入的64-bit明文輸出一個64-bit密文的Feistel塊密碼。Feistel結構是指一個加密系統(tǒng),它將輸入的2n-bit的字符串分成2個n-bit的字符串L0和R0,并將它們在各自的函數(shù)塊中進行m次加密/解密操作。因為在Feistel結構中,經(jīng)過2次操作,即可獲得全擴散,因此使快速加密成為可能。具體的講,KASUMI加密塊將輸入的64-bit的明文分為2個32-bit的字符串L0和R0,并通過在FLi和FOi(1≤i≤8)函數(shù)塊中用密鑰調度器(未示出)產生的密鑰KIi(1≤i≤8),KLi(1≤i≤8)和KOi(1≤i≤8)對它們進行加密,輸出一個64-bit的密文。
對于奇數(shù)次操作,F(xiàn)L1函數(shù)塊310用第一密鑰KL1對32-bit字符串L0進行加密并輸出密文L01。FO1函數(shù)塊410用第二密鑰KO1和第三密鑰KI1對比特字符串L01進行加密,然后輸出一個32-bit字符串L02。信號L02與32-bit的字符串R0進行異或運算,產生一個密文R1。
對于偶數(shù)次操作(比如第2次操作),F(xiàn)O2函數(shù)塊420用第二密鑰KO2和第三密鑰KI2加密32-bit字符串R1(=L1),并輸出一個密文L11。 FL2函數(shù)塊320用第一密鑰KL2加密比特字符串L11,并輸出一個密文L12。信號L12與初始輸入的字符串L0進行異或運算,得到密文R2。如圖3所示,用同樣的方式,使用適當?shù)暮瘮?shù)塊及密鑰,執(zhí)行剩余次的操作。在這種方式下,在進行8次操作后,KASUMI從輸入的64-bit明文產生一個64-bit密文。
圖4說明了圖3所示的FL函數(shù)塊的細節(jié)結構。參照圖4,以FL1函數(shù)塊3 10為例。FL1函數(shù)塊310包括多個與門301,移位寄存器302和304,和一個或門303。一個32-bit輸入字符串被分為兩個16-bit字符串L0和R0。與門301對16-bit字符串L0和一個16-bit子密鑰KL1,1進行與運算,并輸出一個16-bit字符串AL1。移位寄存器302將信號AL1向左移位一個bit,并輸出一個字符串SAL1。16-bit字符串SAL1和R0進行異或運算,得到子密文R1。或門303對信號R1和子密鑰KL1,2進行或操作,并輸出一個16-bit字符串OR1。移位寄存器304將信號OR1向左移位一個bit,并輸出信號SOR1。信號SOR1與L0進行異或運算,得到子密文L1。因此,F(xiàn)L1函數(shù)塊310通過子密文R1和L1,就產生了一個32-bit密文L1/R1(=L01如圖3中)。
圖5說明了圖3所示的FO函數(shù)塊的細節(jié)結構。參照圖5,以FO1函數(shù)塊410為例,F(xiàn)O1函數(shù)塊410包括多個FIi,j子函數(shù)塊(1≤i≤3,1≤j≤3)。圖3中的32-bit輸入字符串L01被分為兩個16-bit字符串L0和R0。對于第一次操作,通過對16-bit字符串L0和16-bit子密鑰KO1,1進行異或運算,產生信號L1。FI1,1子函數(shù)塊401用16-bit子密鑰KI1,1加密信號L1并輸出信號L1D。同時,為了與信號L1D的輸出時間同步,延遲器(D1)411延遲信號R0(=R1),并輸出延遲的信號R1D。
對于第二次操作,通過對16-bit字符串R1D和16-bit子密鑰KO1,2進行異或運算,產生信號L2。FI1,2子函數(shù)塊403用16-bit子密鑰KI1,2加密信號L2并輸出信號L2D。同時,通過對信號R1D與L1D進行異或運算,產生信號R2。為了與信號L2D的輸出時間同步,延遲器(D2)412延遲信號R2,并輸出延遲的信號R2D。
對于第三次操作,通過對16-bit字符串R2D和16-bit子密鑰KO1,3進行異或運算,產生信號L3。FI1,3子函數(shù)塊405用16-bit子密鑰KI1,3加密信號L3并輸出信號L3D。同時,對信號R2D與L2D進行異或運算,產生信號R3。為了與信號L3D的輸出時間同步,延遲器(D3)413延遲信號R3,并輸出延遲的信號R3D。將信號L3D與R3D進行異或運算,產生信號R4。從16-bit字符串R4和R3D(=L4)產生最終的32-bit密文L4/R4(=L02如圖3中)。
圖6說明了圖5所示的FI子函數(shù)塊的細節(jié)結構。以FI11子函數(shù)塊為例做說明。
參照圖6,一個16-bit輸入信號(圖5中所示的L1)被分為一個9-bit的字符串RL0和一個7-bit的字符串RR0。SBox91(S91)操作器610根據(jù)下列等式從輸入信號RL0產生9-bit的字符串y0,y1,...,y8。
y0=x0x2x3x2x5x5x6x0x7x1x7x2x7x4x8x5x8x7x81y1=x1x1x1x2x3x0x4x1x4x0x5x3x5x6x1x7x2x7x5x81y2=x1x0x3x3x4x0x5x2x6x3x6x5x6x4x7x5x7x6x7x8x0x81y1=x0x11x2x0x3x2x4x5x0x6x1x6x4x7x0x8x1x87x8y4=x0x1x1x3x4x0x5x3x6x0x7x6x7x1x8x2x8x3x8y5=x2x1x4x4x5x0x6x1x6x3x7x4x7x6x7x5x8x6x8x7x7x81y6=x0x2x3x1x5x2x5x4x5x3x6x4x6x5x6x7x1x8x3x8x5x8x7x8y7=x0x1x0x2x1x2x3x0x3x2x3x4x5x2x6x3x6x2x7x5x7x81y8=x0x1x2x1x2x3x4x1x5x2x5x16x4x6x7x2x8x3x8……(1)ZET單元620接收到信號RR0,在信號RR0的MSB(最高有效位)加兩個零,并輸出一個9-bit的字符串。將S91操作器610的輸出與ZE1單元620的輸出進行異或運算,得到一個9-bit的字符串RL1。將信號RL1與9-bit的子密鑰KI1,1,2進行異或運算,得到一個9-bit的字符串RL2。
TR1單元630從9-bit字符串RL1的MSB除去兩個零。SBox71(S71)操作器640根據(jù)下列等式從輸入信號RR0(=RR1)產生7-bit的字符串y0,y1,...,y6。
y0=x1x3x4x0x1x4x5x2x5x3x4x5x6x0x6x1x6x3x6x2x4x6x1x5x6x4x5x6y1=x0x1x0x4x2x4x5x1x2x5x0x3x5x6x0x2x6x3x6x4x5x61y2=x0x0x3x2x3x1x2x4x0x3x4x1x5x0x2x5x0x6x0x1x6x2x6x4x61y3=x1x0x1x2x1x4x3x4x0x5x0x1x5x2x3x5x1x4x5x2x6x1x3x6y4=x0x2x3x1x3x1x4x0x1x4x2x3x4x0x5x1x3x5x0x4x5x1x6x3x6x0x3x6x5x61y5=x2x0x2x0x3x1x2x3x0x2x4x0x5x2x5x4x5x1x6x1x2x6x0x3x6x3x4x6x2x5x61y6=x1x2x0x1x3x0x4x1x5x3x5x6x0x1x6x2x3x6x1x4x6x0x5x6……(2)TR1 630和S71操作器640的輸出與子密鑰KI1,1,1進行異或運算,得到一個7-bit的字符串RR2。
SBox92(S92)操作器650根據(jù)等式(1)從信號RL2產生9-bit的字符串y0,y1,...,y8。ZE2單元660接收到信號RR1,在信號RR1的MSB加兩個零,然后輸出一個9-bit的字符串。將S92操作器650的輸出與ZE2單元660的輸出進行異或運算,得到一個9-bit的字符串RL3。TR2單元670從9-bit的字符串RL3的MSB除去兩個零。SBox72(S72)操作器680根據(jù)等式(2)從輸入信號RR2(=RR3)產生7-bit的字符串y0,y1,...,y6。TR2 670的輸出和S72操作器680的輸出進行異或運算,得到一個7-bit的字符串RR4。
從9-bit字符串RL3(=RL4)和7-bit的字符串RR4產生最終的16-bit密文RL4//RR4。
附圖7是根據(jù)本發(fā)明的KASUMI硬件方框圖。參照圖7,KASUMI加密塊包括多個多路復用器(MUX1到MUX5)701、703、706、708和710,寄存器(寄存器B1和寄存器B2)702及704,多個函數(shù)塊(FL及FO)707和709,用來控制KASUMI加密塊的部件的控制器700,提供密鑰的密鑰調度器711??刂破?00通過控制MUX 701,703,706,708和710為奇數(shù)次和偶數(shù)次操作采用不同的加密通路。
對于奇數(shù)次,一個64-bit的明文輸入信號被分成兩個32-bit的字符串L0和R0,它們被分別施加到MUX 1 701和MUX 2 703的輸入端。在控制器700的控制下,MUX1 701輸出32-bit的字符串L0給寄存器B1,MUX2 703輸出32-bit的字符串R0給寄存器B2。寄存器B1 702和寄存器B2 704暫時存儲32-bit的字符串L0和R0,當從控制器700接收到控制信號時,就將它們輸出??刂破?00控制MUX 706,708和710采用如實線所指示的“零路徑”。MUX3706經(jīng)由零路徑向FL函數(shù)塊707輸出信號L0。FL函數(shù)塊707用從密鑰調度器711接收的第一奇數(shù)密鑰KLi,j(0≤i≤8,0≤j≤2)對比特字符串L0進行加密,并向MUX4 708輸出一個密文L01。MUX4 708經(jīng)由零路徑向FO函數(shù)塊709輸出信號L01。 FO函數(shù)塊709用從密鑰調度器711接收的第二奇數(shù)密鑰KLi,j和第三奇數(shù)密鑰KOi,j(0≤i≤8,0≤j≤3)對字符串L01進行加密,并向MUX5 710輸出一個密文L02。MUX5 710經(jīng)由零路徑輸出信號L02。通過對信號L02與從寄存器B2 704接收的信號R0進行異或運算,產生密文R1(=L1),然后再反饋到MUX1 701。
對于偶數(shù)次,32-bit字符串R1和L0被分別加到MUX1 701和MUX2 703的輸入端。在控制器700的控制下,MUX1 701輸出32-bit的字符串R1給寄存器B1 702,MUX2 703輸出32-bit的字符串L0給寄存器B2 704。寄存器B1 702和寄存器B2 704暫時存儲32-bit的字符串R1和L0,當從控制器700接收到控制信號時,就將它們輸出??刂破?00控制MUX 706、708和710采用如虛線所指示的“一路徑”。在控制器700的控制下,MUX4 708接收信號R1,然后經(jīng)由該一路徑向FO函數(shù)塊708輸出信號R1。FO函數(shù)塊709用從密鑰調度器711接收的第二偶數(shù)密鑰KLi,j和第三偶數(shù)密鑰KOi,j(0≤i≤8,0≤j≤3)對字符串R1進行加密,并向MUX3 706輸出一個密文R11。 MUX3706經(jīng)由該一路徑向FL函數(shù)塊707輸出信號R11。 FL塊707用從密鑰調度器711接收到的第一奇數(shù)密鑰KLi,j(0≤i≤8,0≤j≤2)對字符串R11進行加密,并向MUX5 710輸出一個密文R12。MUX5 710經(jīng)由該一路徑輸出信號R12。通過對信號R12與從寄存器B2 704接收的信號L0進行異或運算,產生密文R2(=L2),然后再反饋到MUX1 701。
正如上文描述的,對于奇數(shù)次操作,控制器700控制MUX 706、708和710采用“零路徑”。這樣,一個32-bit輸入字符串先在FL函數(shù)塊707中用第一奇數(shù)密鑰KLi,j進行加密,接著再在FO函數(shù)塊709中用第二奇數(shù)(off-numbered)密鑰KLi,j及第三奇數(shù)(off-numbered)密鑰KOi,j來加密。對于偶數(shù)次,控制器700控制MUX 706、708和710采用“一路徑”。這樣,一個32-bit輸入字符串先使用第二偶數(shù)(off-numbered)密鑰KLi,j及第三偶數(shù)(off-numbered)KOi,j進行加密,再在FL函數(shù)塊707中用第一奇數(shù)密鑰KLi,j來加密。
在硬件中使用單個的FL函數(shù)塊707和單個的FO函數(shù)塊709的KASUMI實施與傳統(tǒng)的KASUMI實施相比,可以得到相同的效果,但卻減少了所用的部件數(shù)量和功率消耗。
圖8描述了根據(jù)本發(fā)明的一個實施例的采用KASUMI算法的3GPP機密性函數(shù)f8。來自存儲器870的一個明文,使用多個KASUMI加密塊進行多次加密操作,并在相同的存儲器870中存儲最終的密文。
機密性f8算法是一中用于可加密5114比特的塊密碼,也就是說,可進行80次的KASUMI操作。KASUMI加密操作的次數(shù)根據(jù)明文的長度而變化,并且由塊計算器(BLKCNT)計算。示出多個KASUMI加密塊的目的是為了說明來自一個KASUMI加密塊的密文的反饋以及將密文作為明文多次進行再加密。CK表示從一個密鑰調度器(未示出)產生的一個128-bit密鑰,KM表示一個密鑰修改量,它是一個128-bit的常量??刂破?00利用控制信號控制存儲器870。控制信號包括一個用于分配明文地址的地址信號;一個使能/廢能信號,用于控制存儲器870使其處于使能/廢能狀態(tài);一個讀/寫信號,用于讀/寫存儲的數(shù)據(jù)或在存儲器870存入/讀出的密文;一個數(shù)據(jù)信號,用于在存儲器870的已分配的地址中存儲一個數(shù)據(jù)單元。
KASUMI加密塊810利用從密鑰調度器接收的一個128-bit的CK與128-bit的KM相異或(CKKM)的結果來加密輸入的初始64-bit字符串,并輸出一個初始密文K00。寄存器D 820臨時存儲信號K00,并且在一個加密塊控制器(未示出)的控制下,將其輸出。這就是KASUMI加密的最初操作。
對于第一次KASUMI加密,信號K00與一個塊計數(shù)值0(BLKCNT 0)進行異或運算,并將結果施加到KASUMI加密塊830的輸入端。KASUMI加密塊830用CK加密接收到的信號并輸出的范圍從0bit到63bit的64-bit密文K01??刂破?00從存儲器870的第一地址中讀取一個明文D1。信號K01與D1進行異或運算,得到密文K1。存儲器870在分配給明文D1的地址存儲第一密文K1,也就是說,第一地址在控制器800的控制下。
對于第二次KASUMI加密,通過對信號K00與塊計數(shù)值1(BLKCNT 1)進行異或運算,得到一個信號K10,然后與從KASUMI加密塊830接收的信號K01進行異或運算,最后得到信號K11。KASUMI加密塊840用CK加密信號K11并輸出的范圍從64bit到127bit的64-bit密文K02。控制器800從存儲器870的第二地址中讀取一個明文D2。信號K02和D2進行異或運算,得到密文K2。存儲器870在分配給明文D2的地址存儲第二密文K2,也就是說,第二地址在控制器800的控制下。
函數(shù)f8中,塊計數(shù)和KASUMI加密操作的次數(shù)是由明文的長度決定的。通過共享存儲器870用于讀取明文和存儲密文,控制器800從存儲器870的一個地址中讀取明文,并且在存儲器870的相同地址中存儲一個密文。
根據(jù)本發(fā)明的某些實施例,在硬件上使用更少的設備及共享一個存儲器來讀取明文及存儲密文,就可以實現(xiàn)加密算法。因此,加密設備的整個功率消耗就被降低了。
盡管本發(fā)明的多種實施例均被示出,并且還對前面某些實施例進行了詳細的描述,但本領域的技術人員很容易理解,在不離開本發(fā)明的精神和范圍的情況下,正如后面的權利要求敘述的那樣,可以在本發(fā)明的形式和細節(jié)上做各種變化。
權利要求
1.一種加密設備,用于將一個長度為2n的明文分為長度為n的第一和第二子比特字符串,并通過對第一和第二子比特字符串進行加密,產生一個長度為2n的密文,它包括第一函數(shù)塊,用于通過使用第一加密碼KL1,1和KL1,2加密第一子比特字符串,產生一個長度為n的第一密文,或通過使用第一加密碼KL1,1和KL1,2加密一個第二密文,產生一個長度為n的第三密文;第二函數(shù)塊,用于通過使用第二加密碼KO1,1,KO1,2和KO1,3及第三加密碼KI1,1,KI1,2和KI1,3來加密第一密文,產生一個長度為n的第四密文,或通過使用第二加密碼KO1,1,KO1,2和KO1,3及第三加密碼KI1,1,KI1,2,KI1,3來加密第一子比特字符串,產生第二密文;密鑰調度器,用于為第一子比特字符串,第一密文,第二密文提供第一加密碼KL1,1和KL1,2,第二加密碼KO1,1,KO1,2和KO1,3,和第三加密碼KI1,1,KI1,2和KI1,3,這些加密碼的長度為n;和控制器,用于控制多個多路復用器,將第一子比特字符串傳送給第一或第二函數(shù)塊,并控制第一和第二函數(shù)塊用第一加密碼KL1,1和KL1,2,第二加密碼KO1,1,KO1,2和KO1,3,及第三加密碼KI1,1,KI1,2,KI1,3加密接收到的子比特字符串。
2.權利要求1所述的加密設備,其中所述控制器控制第一函數(shù)塊,通過用第一加密碼KL1,1和KL1,2加密第一子比特字符串產生長度為n的第一密文,控制第二函數(shù)塊,通過用第二加密碼KO1,1,KO1,2和KO1,3,及第三加密碼KI1,1,KI1,2和KI1,3加密第一密文產生長度為n的第四密文,并通過將第二子比特字符串與第四密文進行異或運算,產生第五密文。
3.權利要求1所述的加密設備,其中所述控制器控制第二函數(shù)塊,通過用第二加密碼KO1,1,KO1,2和KO1,3,及第三加密碼KI1,1,KI1,2和KI1,3加密第一子比特字符串產生長度為n的第二密文,并控制第一函數(shù)塊,通過用第一加密碼KL1,1和KL1,2加密第二密文產生長度為n的第三密文,并通過將第二子比特字符串與第三密文進行異或運算,產生第六密文。
4.權利要求1所述的加密設備,還包括至少兩個寄存器,用于臨時存儲第一和第二子比特字符串,并在控制器的控制下輸出第一和第二子比特字符串。
5.權利要求2所述的加密設備,其中所述控制器通過給多路復用器施加第一控制信號,控制多路復用器將第一子比特字符串傳送給第一函數(shù)塊,控制第一函數(shù)塊通過使用第一加密碼KL1,1和KL1,2加密第一子比特字符串產生第一密文,并控制第二函數(shù)塊通過使用第二加密碼KO1,1,KO1,2和KO1,3,及第三加密碼KI1,1,KI1,2和KI1,3加密第一密文產生第四密文。
6.權利要求3所述的加密設備,其中所述控制器通過給多路復用器施加第二控制信號,控制多路復用器將第一子比特字符串傳送給第二函數(shù)塊,控制第二函數(shù)塊通過用第二加密碼KO1,1,KO1,2和KO1,3,及第三加密碼KI1,1,KI1,2和KI1,3加密第一子比特字符串產生第二密文,并控制第一函數(shù)塊通過用第一加密碼KL1,1和KL1,2加密第二密文產生第三密文。
7.一種加密方法,用于將一個長度為2n的明文分成長度為n的第一和第二子比特字符串,通過加密第一和第二子比特字符串產生一個長度為2n的密文,包括下列步驟相應于從控制器接收的控制信號,接收長度為n的第一子比特字符串,并在第一函數(shù)塊中通過使用從一個密鑰調度器接收的第一加密碼KL1,1和KL1,2加密第一子比特字符串,產生一個長度為n的第一密文,或通過使用第一加密碼KL1,1和KL1,2加密從第二函數(shù)塊接收的第二密文,產生長度為n的第三密文;相應于從控制器接收的控制信號,接收長度為n的第一密文,并通過使用從密鑰調度器接收的第二加密碼KO1,1,KO1,2和KO1,3及第三加密碼KI1,1,KI1,2和KI1,3加密第一密文,產生長度為n的第四密文,或通過使用第二加密碼KO1,1,KO1,2和KO1,3及第三加密碼KI1,1,KI1,2和KI1,3加密第一子比特字符串產生長度為n的第二密文。
8.權利要求7所述的加密方法,還包括步驟根據(jù)在第一函數(shù)塊中的控制信號,通過使用從密鑰調度器接收到的第一加密碼KL1,1和KL1,2加密第一子比特字符串產生長度為n的第一密文;在第二函數(shù)塊中,通過使用從密鑰調度器接收的第二加密碼KO1,1,KO1,2和KO1,3及第三加密碼KI1,1,KI1,2和KI1,3加密第一密文產生長度為n的第四密文;以及通過對第二子比特字符串與第四密文進行異或運算產生第五密文。
9.權利要求7所述的加密方法,還包括步驟在第二函數(shù)塊中,通過使用從密鑰調度器接收的第二加密碼KO1,1,KO1,2和KO1,3及第三加密碼KI1,1,KI1,2和KI1,3加密第一子比特字符串產生長度為n的第二密文;在第一函數(shù)塊中,通過使用從的密鑰調度器接收的第一加密碼KL1,1和KL1,2加密第二密文產生長度為n的第三密文;通過對第二子比特字符串與第三密文進行異或運算產生第六密文。
10.權利要求7所述的加密方法,還包括步驟臨時存儲第一和第二子比特字符串,并在控制器的控制下輸出第一和第二子比特字符串。
11.權利要求8所述的加密方法,還包括步驟通過有控制器給多路復用器施加第一控制信號,控制多個多路復用器將第一子比特字符串傳送給第一函數(shù)塊;控制器控制第一函數(shù)塊通過使用第一加密碼KL1,1和KL1,2加密第一子比特字符串產生第一密文;以及控制器控制第二函數(shù)塊,通過使用第二加密碼KO1,1,KO1,2和KO1,3,及第三加密碼KI1,1,KI1,2和KI1,3加密第一密文產生第四密文。
12.權利要求9所述的加密方法,還包括步驟通過由控制器給多路復用器施加第二控制信號,控制多路復用器將第一子比特字符串傳送給第一函數(shù)塊;控制器控制第二函數(shù)塊,用第二加密碼KO1,1, KO1,2和KO1,3及第三加密碼KI1,1,KI1,2和KI1,3加密第一子比特字符串產生第二密文;控制器控制第一函數(shù)塊,通過使用第一加密碼KL1,1和KL1,2加密第二密文產生第三密文。
13.一種加密設備,用于通過首先加密一個長度為2n的第一明文產生一個長度為2n的第一密文,并其次通過用長度為m的第二明文加密第一密文產生一個長度為m的第二密文,它包括函數(shù)塊,用于通過使用從密鑰調度器產生的長度為4n的加密碼加密長度為2n的第一明文,產生長度為2n的第一密文;控制器,用于從存儲器中讀取長度為m的第二明文,控制用第二明文加密第一密文產生的長度為m的第二密文,并將第二密文存儲在存儲器中。
14.權利要求13所述的加密設備,其中所述控制器通過給存儲器施加控制信號來控制存儲器從預定的地址輸出長度為m的第二明文中的一個預定長度的第一子比特字符串,控制所述的函數(shù)塊通過使用第一密文加密第一子比特字符串產生一個預定長度的第二子密文,并且控制存儲器在預先地址存儲第二子密文。
15.權利要求13所述的加密設備,其中所述的函數(shù)塊根據(jù)存儲于存儲器中的第二明文的長度,重復長度為2n的第一密文的第一加密操作。
16.權利要求14所述的加密設備,其中所述控制器將一個讀取信號施加到存儲器,使存儲器輸出第一子比特字符串,控制所述的函數(shù)塊通過使用第一密文加密第一子比特字符串產生第二子密文,并將一個寫信號施加到存儲器使其存儲第二子密文。
17.權利要求16所述的加密設備,其中所述的存儲器在控制器的控制下是一個用于讀取和寫入的緩沖器。
18.一種加密方法,用于首先通過加密長度為2n的第一明文產生一個長度為2n的第一密文,并且其次通過用長度為m的第二明文加密第一密文產生一個長度為m的第二密文,包括下列步驟由函數(shù)塊通過使用從密鑰調度器接收的長度為4n的一個加密碼加密長度為2n的第一明文,產生長度為2n的第一密文;由控制器從存儲器讀取長度為m的第二明文,通過用第二明文加密第一密文,產生一個長度為m的第二密文,并將第二密文存儲在存儲器中。
19.權利要求18所述的加密方法,其中所述的讀取第二明文,產生第二密文,存儲第二密文的步驟還包括下列步驟由控制器從存儲器的預定的地址中,讀取在長度為m的第二明文里的一個預定長度的第一子比特字符串;由控制器通過其次使用第一密文加密第一子比特字符串,控制產生一個預定長度的第二子密文;由控制器在預定的地址中存儲第二子密文。
20.權利要求18所述的加密方法,其中所述產生第一密文的步驟中,函數(shù)塊根據(jù)存儲在存儲器中的第二明文的長度,通過重復第一加密操作,產生第一密文。
21.權利要求19所述的加密方法,其中所述的讀取第二明文,產生第二密文,并存儲第二密文的步驟還包括下列步驟由控制器從存儲器的預定地址讀取在長度為m的第二明文里的一個預定長度的第一子比特字符串;由控制器通過其次使用第一密文加密第一子比特字符串,產生一個預定長度的第二子密文;以及由控制器通過給存儲器施加一個寫信號,在其預定地址中存儲第二子密文。
22.權利要求21所述的加密方法,其中所述的存儲器在控制器的控制下是一個用于讀取和寫入的緩沖器。
全文摘要
本發(fā)明公開了一種設計最優(yōu)加密算法和優(yōu)化的加密設備。該加密設備中,在控制器的控制下,一個函數(shù)塊通過用從一個密鑰調度器產生的一個長度為4n的加密碼加密長度為2n的第一明文,產生一個長度為2n的第一密文,并通過用一個長度為m的第二明文加密第一密文,產生一個長度為m的第二密文。一個存儲器存儲該第二密文。
文檔編號G09C1/00GK1523810SQ200410028330
公開日2004年8月25日 申請日期2004年2月5日 優(yōu)先權日2003年2月5日
發(fā)明者許原碩, 金錫燦, 樸東昱 申請人:三星電子株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
江城| 辽源市| 凌海市| 栖霞市| 措勤县| 阳泉市| 新化县| 景泰县| 岳阳县| 湘乡市| 林口县| 阿克| 永和县| 邻水| 闻喜县| 土默特左旗| 府谷县| 峡江县| 南丹县| 大姚县| 阳新县| 平乡县| 冷水江市| 怀宁县| 石门县| 平潭县| 大石桥市| 凌海市| 兴义市| 开化县| 科技| 吉安县| 晋中市| 宁化县| 开封市| 宁化县| 洛浦县| 高要市| 富顺县| 石楼县| 建平县|