情況下來 對流進行處理。然而,這種解決方案在移動設(shè)備上的資源利用方面將是非常昂貴的,并且最 終導(dǎo)致較短的電池壽命。現(xiàn)代寄存器的大小通常是4或8字節(jié),這意味著使用這樣的方法 浪費了寄存器的大部分空間。在這種情況下,資源利用被定義為對移動設(shè)備上的系統(tǒng)資源 (包括中央處理單元(CPU)、高速緩存、存儲器等)的有效使用。
[0042] 提出了另一種解決方案是緩沖模式。在緩沖模式中,在未對齊的邊界處開始的明 文會在加密之前被復(fù)制到暫時對齊的緩沖器中。雖然這種解決方案不需要考慮明文的錯位 的前導(dǎo)字節(jié),但是將仍然需要針對處理尾部字節(jié)來進行特殊的考慮。此外,如同逐字節(jié)的方 法一樣,緩沖模式是資源昂貴的。首先,針對暫時緩沖器,需要額外的存儲器可用性。另外, 暫時緩沖器所需要的復(fù)制和處理可能阻止移動設(shè)備達到LTE網(wǎng)絡(luò)中所要求的高數(shù)據(jù)速率。 例如,LTE類別3的UE設(shè)備支持lOOmbps的下行鏈路和50mbps的上行鏈路。
[0043] 另外的解決方案是在不使用暫時緩沖器的情況下,將未對齊的明文移位成與密鑰 流對齊。因為密鑰流是以4字節(jié)的組來生成的,因此以4或8字節(jié)的組來應(yīng)用密鑰流是平 常的。在將密鑰流應(yīng)用于明文之后,對輸出進行重新對齊將需要額外的移位來將其與原始 明文對齊,以便實現(xiàn)"就地"操作。也就是說,該解決方案的目標是使用所生成的密文來完 全地覆蓋原始的明文。因此,需要額外的工作來將輸出正好放回其原來的地方。雖然該解 決方案不像逐字節(jié)或緩沖模式解決方案那樣是資源昂貴的,但是額外的移位操作為總體解 決方案增加了復(fù)雜度。
[0044] 本公開內(nèi)容的各個方面提供了在明文上就地發(fā)生的流式模式的加密/解密。該解 決方案既不需要將明文復(fù)制到暫時對齊的緩沖器中,也不需要任何額外的移位操作來將明 文與加密密鑰(cipherkey)和所得到的輸出對齊。相反地,對加密密鑰進行移位來與原始 明文對齊。使用加密密鑰的操作在處理器的寄存器內(nèi)部發(fā)生,甚至不需要訪問處理器的高 速緩存,更不需要進入外部存儲器。該方面以高效的資源利用提供了快速運算。
[0045] 圖4是示出根據(jù)本公開內(nèi)容的一個方面來配置的加密過程40的框圖。數(shù)據(jù)流400 表示將要被加密的并且在無線設(shè)備之間以無線方式發(fā)送的明文輸入、或者已經(jīng)從進行發(fā)送 的設(shè)備接收的并且要在無線裝置處被解密以用于進一步處理的密文。數(shù)據(jù)流400包括非明 文數(shù)據(jù)(其可以是管理數(shù)據(jù),例如,可能已經(jīng)由諸如H)CP、RLC、MAC之類的用戶面層中的一 個層添加的報頭或其它管理編碼等)和要由加密過程處理的明文或密文。非明文數(shù)據(jù)還可 以是具有數(shù)據(jù)塊之間的丟失的字節(jié)的分段后的分組的結(jié)果。
[0046] 諸如ZUC算法之類的加密算法產(chǎn)生包括8字節(jié)的密鑰Key(l、Keyi、KeyjPKey3的 密鑰流401。在寄存器405中使用XOR運算402對數(shù)據(jù)流400和密鑰流401進行處理。所 得到的經(jīng)解密/經(jīng)加密的流403表示加密功能的加密或解密結(jié)果。隨著數(shù)據(jù)流400的前沿 開始處理,無線設(shè)備知道實際的有效載荷或明文的起始存儲器地址?;谠撘阎钠鹗嫉?址,無線設(shè)備知道數(shù)據(jù)分組404的前沿(列406中所示出的)與寄存器405的邊界未對齊。 此外,該設(shè)備知道數(shù)據(jù)分組404的前沿沒有對齊的確切量。如圖所示,數(shù)據(jù)分組404的前沿 向右移位了 5個字節(jié)或八位字節(jié)。相應(yīng)地,設(shè)備將Key(l右移5個字節(jié),從而將密鑰流401與 數(shù)據(jù)流400的明文對齊。然后,在寄存器X0R402處對對齊的明文和Key。進行適當(dāng)?shù)奶幚恚?以產(chǎn)生列406中所示出的經(jīng)解密/經(jīng)加密的流403。
[0047] 如列407中所示,數(shù)據(jù)流400的數(shù)據(jù)分組404的明文塊中的要處理的下一個部分 是8字節(jié)對齊的。然而,因為僅使用Key(l的前3個字節(jié)來處理列406中所示出的數(shù)據(jù)分組 404的前沿,所以使用Key(l的剩余字節(jié)與Key:中的前幾個字節(jié)的組合來處理同一數(shù)據(jù)分組 404中的明文的下一個部分。將Key(l中的5個字節(jié)移位超出寄存器405的邊界。對Key。中 的這5個字節(jié)進行保存以用于下一個處理操作。如列407中所示出的,為了形成完整的8 字節(jié)密鑰,將Keyi右移5個字節(jié)并且與Key^的剩余部分進行組合。然后在寄存器405中, 使用寄存器X0R402來將KeyjPKey:中的這些部分的組合密鑰與數(shù)據(jù)分組404的第二塊 一起進行處理,以產(chǎn)生列407中表示的經(jīng)解密/經(jīng)加密的流403。
[0048] 如列408中所示出的,數(shù)據(jù)流400的數(shù)據(jù)分組404的明文塊中的要處理的下一個 部分也是8字節(jié)對齊的。所應(yīng)用的組合密鑰包括1^ 71中的被移位超出寄存器405的邊界的 5個字節(jié)、以及Key2中的被右移5個字節(jié)的前3個字節(jié)。由寄存器XOR402對組合密鑰和 數(shù)據(jù)分組404的下一個明文塊進行處理,以產(chǎn)生列408中示出的經(jīng)解密/經(jīng)加密的流403。 [0049] 數(shù)據(jù)分組404在列409處結(jié)束,其中后沿在邊界之前的2個字節(jié)處結(jié)束。當(dāng)接收 到數(shù)據(jù)流400的數(shù)據(jù)分組404時,設(shè)備具有起始存儲器地址和數(shù)據(jù)分組404的長度的記錄。 因此,設(shè)備將確定后沿短于邊界2個字節(jié)。為了對數(shù)據(jù)分組404的后沿進行處理,組合密鑰 包括心?中的被移位超出寄存器405的邊界的5個字節(jié)、以及Key3中的已被右移5個字節(jié) 的第一字節(jié)。由寄存器X0R402將組合密鑰與數(shù)據(jù)分組404的后沿一起進行處理,以產(chǎn)生 如列409中所示出的經(jīng)解密/經(jīng)加密的流403。因為無線設(shè)備知道其已經(jīng)到達了數(shù)據(jù)分組 404的結(jié)尾,因此其丟棄Key3中的被移位超出數(shù)據(jù)分組404的最后字節(jié)的剩余7個字節(jié)。在 數(shù)據(jù)流400中處理的每個新的數(shù)據(jù)分組將觸發(fā)加密算法的重新初始化,從而生成用于加密 功能的新的密鑰流。
[0050] 在操作中,將(在目標設(shè)備處所接收的密文或者將要由發(fā)起設(shè)備加密并發(fā)送的明 文)數(shù)據(jù)流存儲在緩沖器中以用于處理。每個緩沖器具有固定的大小。數(shù)據(jù)分組可以完全 放在單個緩沖器內(nèi),可以與緩沖器中的另一數(shù)據(jù)分組進行組合,或者可以部分放在兩個緩 沖器內(nèi)。當(dāng)單個數(shù)據(jù)分組跨越兩個單獨的緩沖器時,那些緩沖器被認為是鏈接在一起的。因 此,將對在對第一緩沖器中的數(shù)據(jù)分組的最后部分進行處理時被移位到邊界之外的任何剩 余的密鑰字節(jié)進行保存,以應(yīng)用到數(shù)據(jù)分組在下一個緩沖器中出現(xiàn)的剩余部分。
[0051] 圖5是示出根據(jù)本公開內(nèi)容的一個方面來配置的加密過程50的框圖。圖5中所 示出的加密過程50的例子示出了針對用于加密處理的兩個緩沖器(緩沖器501和505)的 數(shù)據(jù)流500和密鑰流502。為了清楚起見,沒有示出加密處理器和寄存器(例如,圖4的寄 存器X0R402和寄存器405)。然而,應(yīng)當(dāng)注意的是,雖然沒有在圖5中示出,但是使用無線 設(shè)備的寄存器中的加密部件操作,來將數(shù)據(jù)流500的數(shù)據(jù)分組與密鑰流502的加密密鑰一 起進行處理。
[0052] 還應(yīng)當(dāng)注意的是,當(dāng)實現(xiàn)本公開內(nèi)容的各個方面時,可以使用不同大小的寄存器 和處理器緩沖器。
[0053] 緩沖器501的列508示出了數(shù)據(jù)分組503的前沿。基于數(shù)據(jù)分組503的已知起始 地址,裝置知道數(shù)據(jù)分組503是未對齊的,并且將密鑰流502的Key(l右移5個字節(jié)以便與 數(shù)據(jù)分組503的前沿對齊。因此,將通過數(shù)據(jù)分組503的明文或密文以及Key。中的對齊的 字節(jié)來處理數(shù)據(jù)流500。列509和510示出了數(shù)據(jù)分組503中的要處理的8字節(jié)對齊的部 分。密鑰流502的密鑰是被移位以適應(yīng)Key(l的初始移位的、生成的密鑰的組合。因此,用 于列509中的處理的組合密鑰將在處理列508時Key。中的被移位超出寄存器邊界的最后5 個字節(jié)與Keyi中的被右移5個字節(jié)而仍然在列509中的前3個字節(jié)進行組合,并且用于列 510中的處理的組合密鑰對以類似的方式而形成的、Keyi的最后5個字節(jié)和Key2的前3個 字節(jié)進行組合。
[0054] 在操作期間,可以將數(shù)據(jù)分組中的明文或密文分解成分段的分組。因此,可能存在 位于同一數(shù)據(jù)分組內(nèi)的明文或密文之間的空白字節(jié)。處理明文或密文的裝置知道中斷的位 置,并且因此將能夠根據(jù)要處理的明文或密文的位置來調(diào)整密鑰移位。列511示出了緩沖 器501的結(jié)束存儲器位置。處理裝置認識到數(shù)據(jù)分組503是分段的,并且列511中的明文 或密文的后沿雖然是對齊的,但是具有2字節(jié)的尾部非明文數(shù)據(jù)。因此,當(dāng)形成用于在緩沖 器501中對數(shù)據(jù)分組503的未對齊的后沿進行處理的密鑰流502的組合密鑰時,該裝置將 在處理列510的數(shù)據(jù)時1(^2中的被移位超出寄存器邊界的5個字節(jié)與Key3中的被移位5 個字節(jié)以適應(yīng)對齊的密鑰移位的第一字節(jié)進行組合。因此,1(^ 3的剩余7個字節(jié)不用于處 理數(shù)據(jù)分組503的未對齊的分段。因為處理裝置知道數(shù)據(jù)分組503具有要處理的額外的數(shù) 據(jù),因此其創(chuàng)建包括Key3中的未使用的7個字節(jié)的保存的字節(jié)504,其中Key3中的未使用 的7個字節(jié)將要應(yīng)用于數(shù)據(jù)分組503的下一個被處理的塊。
[0055] 當(dāng)處理進行到緩沖器505時,緩沖器505的列508中的數(shù)據(jù)流500的前幾個字節(jié) 是數(shù)據(jù)分組503的延續(xù)部分的8字節(jié)對齊的明文或密文。處理裝置取得保存的字節(jié)504以 形成密鑰流502的組合密鑰。組合密鑰包括在緩沖器501的列511中對后沿文本的處理之 后剩余的7個字節(jié)以及Key4中的已被右移7個字節(jié)以適應(yīng)對保存的字節(jié)504的使用的第一 字節(jié)。緩沖器505的列509的文本也是字節(jié)對齊的,并且將其與Key4中的7個字節(jié)和Key5 中的1個字節(jié)的組合密鑰一起進行處理。數(shù)據(jù)分組503的已知長度向處理裝置指示數(shù)據(jù)分 組503將在緩沖器505的列510中結(jié)束。緩沖器505中的數(shù)據(jù)分組503的后沿是未對齊 的。因此,組合密鑰僅包括在處理緩沖器505的列509中的文本時被移位超出寄存器邊界 的4個字節(jié)。隨著數(shù)據(jù)分組503到達結(jié)尾,丟棄1(^ 5中剩余的3個字節(jié)。
[0056] 為了優(yōu)化處理,利用要處理的明文或密文的盡可能多的字節(jié)來填充每個緩沖器。 因此,如在緩沖器505的列510中所示出的,對數(shù)據(jù)分組506的前沿進行存儲。在兩個非明 文字節(jié)之后,數(shù)據(jù)分組506的前沿在沒有字節(jié)對齊的情況下開始。隨著新數(shù)據(jù)分組的開始, 重新發(fā)起加密算法來向密鑰流502提供新的密鑰。對于數(shù)據(jù)分組506的未對齊的部分,處 理裝置將NewKey。右移6個字節(jié)以與數(shù)據(jù)分組506的前沿對齊。如列511中所示出的,緩 沖器505的最后的字節(jié)是字節(jié)對齊的,并且將由包括NewKey。中剩余的6個字節(jié)和NewKey1 中的被右移6個字節(jié)以適應(yīng)移位對齊的前兩個字節(jié)的組合密鑰來處理。隨著數(shù)據(jù)分組506 在下一個緩沖器中繼續(xù),處理裝置保存NeWKeyi中的剩余字節(jié),以用于對數(shù)據(jù)分組506中的 明文或密文的下一塊進行處理。