Dataconverter,dataconversionmethod,andcomputerprogram的製作方法
2023-10-04 22:18:54 1
專利名稱:Data converter, data conversion method, and computer program的製作方法
技術領域:
本發明涉及數據轉換器、數據轉換方法以及電腦程式。更具體地,本發明涉及實 現了高效數據擴散或加密處理的數據轉換器、數據轉換方法以及電腦程式。
背景技術:
在通過逐塊地對輸入數據實施數據轉換處理來加密輸入數據的塊密碼、哈希函數 等中,希望具有對於輸入數據的高數據擾亂能力。例如,執行如下的處理,其中輸入數據被 劃分為固定大小(比如字節)的數據塊,並在字節數據塊相互影響的同時重複實施比如線 性轉換處理和非線性轉換處理等多種運算以擾亂數據。例如,作為美國加密標準而為人所知的AES(高級加密標準,Advanced Encryption Standard)算法是用於通過如下方式對數據進行擾亂的算法將輸入數據劃分為字節數據 塊,將數據塊排列成正方形或長方形矩陣,以及重複比如逐行處理或逐列處理(更具體地, 非線性轉換處理和線性轉換處理)等多種處理。將參照
圖1描述一具體示例。在要經受轉換處理的數據是8X 16 = 128比特的數 據的情況下,如圖1 (a)中所示,由於1位元組數據塊包含8比特,因此正方形矩陣由字節數據
塊ai、a2、a3........a16來配置,以及數據轉換是通過重複對數據塊的多種運算處理來執行
的,所述運算處理比如逐行的運算,例如,對於比如(a1; a2, a3, a4)的每行的運算處理,或者逐列的運算,例如,對於比如(a1; a5, a9, a13)的每列的運算處理,更具體地,比如非線性轉換處理、線性轉換處理、移位處理和使用密鑰的異或運算 等多種處理。如圖1(a)中所示,已知當對字節數據塊排列成的正方形矩陣實施逐行或逐列的 處理時,高效擾亂是可達到的。然而,僅在要經受轉換處理的輸入數據是特定比特數量的數 據(比如,圖1(a)中示出的8X16 = 128比特的數據)的情況下,才允許配置包含1位元組 的數據塊的正方形矩陣。更具體地,僅在如下情況下配置正方形矩陣比特數量=8X (η)2比特的情況(其中η是自然數),以字節而言,字節數量=(η)2位元組的情況(其中η是自然數)。128比特等於比特數=8Χ (4)2比特,以及如圖1(a)中所示,允許128比特配置包 含4Χ4 = 16個i字節數據塊的正方形矩陣。然而,在要經受轉換的數據例如是256比特的情況下,由於有256 = 8X32成立, 即256無法表示為256 = 8X (η)2比特,因此不能配置包含字節數據塊的正方形矩陣。在該情況下,如圖1(b)中所示,將32個包含8比特的字節數據塊ai、a2、
a3........a32排列成長寬比為2 1的長方形矩陣,以及通過對該長方形矩陣重複逐行處
理或逐列處理來實施擾亂。然而,存在如下問題即使無所謂以與正方形矩陣的情況下相同 的步驟來對圖1(b)中示出的長方形矩陣執行擾亂時用於運算的時間和花費均增加,但是擾亂能力卻並未得到提高。以下將參照圖2及其後面的圖描述在包含字節數據塊的正方形矩陣(正方形狀 態)的情況下和在包含字節數據塊的長方形矩陣(長方形狀態)的情況下的擾亂處理的示 例。(A)對於正方形矩陣(正方形狀態)的處理的示例以下將參照圖2及其後面的圖描述對於128比特的數據的數據轉換處理中的擾亂 處理。128比特的數據被劃分為1位元組(8比特)的數據塊。在此,16個1位元組的數據塊分
另Ij由a1 M a16表示。如通過圖2中的正方形數據矩陣(正方形狀態)11所示,16個1位元組的數據塊[ 至a16]被存儲成4X4的矩陣。下文中,存儲成正方形矩陣的數據被稱為正方形狀態。在AES塊密碼算法中,定義了多種對於正方形狀態的運算,以及通過重複施加所 定義的運算實現了加密。在AES中定義的運算包括圖2中示出的以下四種。(1)非線性轉換處理(SUB)通過逐字節地使每個1位元組的數據塊經受非線性轉換S(X)來更新值的運算,其中,如圖2(1)中所示,在1位元組的輸入 和轉換處理後的1位元組的輸出h之間 的關係是bj = S (Bi)i = l,2, ···, 16例如,在AES密碼中,該運算對應於使用S-box的非線性轉換。(2)移位處理(SHIFT)使每行都經受輪換移位運算的處理。一行與另一行的移位量是不同的,並且在AES 的情況下,如圖2(2)中所示,第一行中的1位元組的數據塊不被輪換移位,而第二行中的1字 節的數據塊、第三行中的1位元組的數據塊以及第四行中的1位元組的數據塊分別被向右輪換 移位了 1個1位元組的數據塊、2個1位元組的數據塊以及3個1位元組的數據塊。(3)線性轉換處理(MAT)通過對於4X4矩陣[M]的運算來更新值的運算(假定將每列中的4個1位元組的 數據塊看作一個向量)。在1位元組的輸入 和轉換處理後的1位元組的輸出bi之間的關係是^bi, bi+4, bi+8, bi+12) = Mt (ai; ai+4, ai+8, ai+12)i = 1,2,3,4此外,tO表示通過將矩陣中的行列互換形成的轉置矩陣。即,上述表達式含義如 下。[數學表達式1]
權利要求
一種數據轉換器,包括數據轉換部,執行重複進行回合運算的數據轉換處理,所述數據轉換部被配置為在所述回合運算中實施以下處理對於兩個數據段之一的線性轉換處理,所述兩個數據段是將長方形數據矩陣劃分為兩部分而得到的,所述長方形數據矩陣是通過排列大小相等的數據塊來配置的;所述兩個數據段之間的異或運算處理;對於所述數據段之一的移位處理;以及所述兩個數據段之間的交換處理。
2.根據權利要求1所述的數據轉換器,其中所述大小相等的數據塊是1位元組的數據塊,並且所述數據轉換部被配置為在所述回合 運算中執行對於所述兩個數據段的處理,所述兩個數據段是將所述長方形數據矩陣劃分為 兩部分而得到的,所述長方形數據矩陣是通過排列所述1位元組的數據塊來配置的。
3.根據權利要求1所述的數據轉換器,其中所述數據轉換部被配置為在所述回合運算中進一步實施以下處理 對於所述數據段之一的非線性轉換處理;以及 對於所述數據段之一的密鑰適用運算處理。
4.根據權利要求3所述的數據轉換器,其中所述密鑰適用運算是在所述數據段之一的配置數據和加密密鑰數據之間的異或運算。
5.根據權利要求1所述的數據轉換器,其中所述數據轉換部利用所述異或運算的結果來作為所述數據段之一的更新數據。
6.根據權利要求1所述的數據轉換器,其中在實施所述移位處理時,所述數據轉換部實施如下移位處理 對於包括在具有m行和2η列數據的長方形矩陣中的、要經受所述移位處理的、具有m 行和η列的數據段,在滿足m彡η的關係的情況下,在所述移位處理前屬於同一列的數據塊 被移位,以使得在所述移位處理後屬於不同的列;以及在滿足m> η的關係的情況下,在所述移位處理前屬於同一列的數據塊被移位,以使得 這些數據塊在所述移位處理後的任意列中的塊數包含在(m/n)-l以上、(m/n)+l以下的範 圍內。。
7.根據權利要求1所述的數據轉換器,其中所述數據轉換部對於所述兩個數據段都實施所述移位處理。
8.根據權利要求1所述的數據轉換器,其中在所述回合運算中,所述數據轉換部對於所述數據段中的一個數據段A實施非線性轉 換和移位處理,以更新所述數據段A,並進一步對於更新的數據段A實施線性轉換處理並在 所述線性轉換處理的結果和另一數據段B之間實施異或運算,從而利用該異或運算的結果 作為所述數據段B的更新數據,並進一步在所述數據段A和所述數據段B之間實施所述交 換處理,並隨後在所述數據段A和密鑰數據之間實施異或運算。
9.根據權利要求1所述的數據轉換器,其中在所述回合運算中,所述數據轉換部對於所述數據段中的一個數據段A實施非線性轉 換處理、移位處理和線性轉換處理,以更新所述數據段A,並進一步在更新的數據段A和另一數據段B之間實施異或運算,從而利用該異或運算的結果作為數據段B的更新數據,並進 一步在所述數據段A和所述數據段B之間實施所述交換處理,並隨後在所述數據段A和密 鑰數據之間實施異或運算。
10.根據權利要求1所述的數據轉換器,其中在所述回合運算中,所述數據轉換部對於所述數據段中的一個數據段A實施非線性轉 換處理和線性轉換處理,並在其結果和另一數據段B之間實施異或運算,從而利用該異或 運算的結果作為所述數據段B的更新數據,並進一步在所述數據段A和所述數據段B之間 實施所述交換處理,並且對於所述數據段A實施移位處理,並隨後在所述數據段A和密鑰數 據之間實施異或運算。
11.根據權利要求1所述的數據轉換器,其中在所述回合運算中,所述數據轉換部對於所述數據段中的一個數據段A實施非線性轉 換處理、移位處理和線性轉換處理,並進一步在其結果和另一數據段B之間實施異或運算, 從而利用該異或運算的結果作為所述數據段A的更新數據,並進一步在所述數據段A和所 述數據段B之間實施交換處理,並隨後在所述數據段A和密鑰數據之間實施異或運算。
12.根據權利要求1所述的數據轉換器,其中在所述回合運算中的線性轉換處理中,所述數據轉換部被配置為每個回合都選擇和使 用多個不同矩陣中的一個矩陣。
13.根據權利要求12所述的數據轉換器,其中所述數據轉換部被配置為藉助於使用DSM(擴散交換機制)的處理來選擇和使用多個 不同矩陣中的一個矩陣。
14.一種通過數據轉換器實施的數據轉換方法,包括在數據轉換部中通過重複回合運算來執行數據轉換的數據轉換步驟,所述數據轉換步 驟在所述回合運算中實施以下處理對於兩個數據段之一的線性轉換處理,所述兩個數據段是將長方形數據矩陣劃分為兩 部分而得到的,所述長方形數據矩陣是通過排列大小相等的數據塊來配置的;所述兩個數據段之間的異或運算處理;對於所述數據段之一的移位處理;以及所述兩個數據段之間的交換處理。
15.根據權利要求14所述的數據轉換方法,其中所述大小相等的數據塊是1位元組的數據塊,並且所述數據轉換部被配置為在所述回合 運算中執行對於所述兩個數據段的處理,所述兩個數據段是將長方形數據矩陣劃分為兩部 分而得到的,所述長方形數據矩陣是通過排列1位元組的數據塊來配置的。
16.根據權利要求14所述的數據轉換方法,其中所述數據轉換步驟被配置為在所述回合運算中進一步實施以下處理對於所述數據段之一的非線性轉換處理;以及對於所述數據段之一的密鑰適用運算處理。
17.根據權利要求16所述的數據轉換方法,其中所述密鑰適用運算是在所述數據段之一的配置數據和加密密鑰數據之間的異或運算。
18.根據權利要求14所述的數據轉換方法,其中所述數據轉換步驟利用所述異或運算的結果來作為所述數據段之一的更新數據。
19.根據權利要求14所述的數據轉換方法,其中在實施所述移位處理時,所述數據轉換步驟實施如下移位處理 對於包括在具有m行和2η列數據的長方形矩陣中的、要經受所述移位處理的、具有m 行和η列的數據段,在滿足m彡η的關係的情況下,在所述移位處理前屬於同一列的數據塊 被移位,以使得在所述移位處理後屬於不同的列;以及在滿足m> η的關係的情況下,在所述移位處理前屬於同一列的數據塊被移位,以使得 這些數據塊在所述移位處理後的任意列中的塊數包含在(m/n)-l以上、(m/n)+l以下的範 圍內。
20.根據權利要求14所述的數據轉換方法,其中所述數據轉換步驟對於所述兩個數據段都實施所述移位處理。
21.根據權利要求14所述的數據轉換方法,其中在所述回合運算中,所述數據轉換步驟對於所述數據段中的一個數據段A實施非線性 轉換和移位處理,以更新所述數據段A,並進一步對於更新的數據段A實施線性轉換處理並 在該線性轉換處理的結果和另一數據段B之間實施異或運算,從而利用該異或運算的結果 作為所述數據段B的更新數據,並進一步在所述數據段A和所述數據段B之間實施所述交 換處理,並隨後在所述數據段A和密鑰數據之間實施異或運算。
22.根據權利要求14所述的數據轉換方法,其中在所述回合運算中,所述數據轉換步驟對於所述數據段中的一個數據段A實施非線性 轉換處理、移位處理和線性轉換處理,以更新數據段A,並進一步在更新的數據段A和另一 數據段B之間實施異或運算,從而利用該異或運算的結果作為所述數據段B的更新數據,並 進一步在所述數據段A和所述數據段B之間實施所述交換處理,並隨後在所述數據段A和 密鑰數據之間實施異或運算。
23.根據權利要求14所述的數據轉換方法,其中在所述回合運算中,所述數據轉換步驟對於所述數據段中的一個數據段A實施非線性 轉換處理和線性轉換處理,並在其結果和另一數據段B之間實施異或運算,從而利用該異 或運算的結果作為所述數據段B的更新數據,並進一步在所述數據段A和所述數據段B之 間實施所述交換處理,並且對於所述數據段A實施移位處理,並隨後在所述數據段A和密鑰 數據之間實施異或運算。
24.根據權利要求14所述的數據轉換方法,其中在所述回合運算中,所述數據轉換步驟對於所述數據段中的一個數據段A實施非線性 轉換處理、移位處理和線性轉換處理,並進一步在其結果和另一數據段B之間實施異或運 算,從而利用該異或運算的結果作為所述數據段A的更新數據,並進一步在所述數據段A和 所述數據段B之間實施所述交換處理,並隨後在所述數據段A和密鑰數據之間實施異或運笪弁。
25.根據權利要求14所述的數據轉換方法,其中在所述回合運算中的線性轉換處理中,所述數據轉換步驟被配置為每個回合都選擇和 使用多個不同矩陣中的一個矩陣。
26.根據權利要求25所述的數據轉換方法,其中所述數據轉換步驟被配置為藉助於使用DSM(擴散交換機制)的處理來選擇和使用多 個不同矩陣中的一個矩陣。
27. 一種在數據轉換器中實施數據轉換處理的電腦程式,所述電腦程式包括 在數據轉換部中通過重複回合運算來執行數據轉換的數據轉換步驟,所述數據轉換步 驟是在所述回合運算中實施如下處理的步驟對於兩個數據段之一的線性轉換處理,所述兩個數據段是將長方形數據矩陣劃分為兩 部分而得到的,所述長方形數據矩陣是通過排列大小相等的數據塊來配置的; 所述兩個數據段之間的異或運算處理; 對於所述數據段之一的移位處理;以及 所述兩個數據段之間的交換處理。
全文摘要
文檔編號G09C1/00GK101952870SQ20098010579
公開日2011年1月19日 申請日期2009年1月21日 優先權日2008年1月21日
發明者Iwata Tetsu, Shirai Taizo, Shibutani Kyoji, Moriai Shiho, Akishita Toru 申請人:Sony Corp, Iwata Tetsu