【正文】
28 比特的密鑰衍生而來的。子密鑰 KLi被分為 16 比特的左右兩個子密鑰, KLi,1和 KLi,2 即 KLi=KLi,1||KLi,2 同樣輸入數(shù)據(jù)也被分為兩個 16 比特的左右兩部分,即 Indata=L’||R’ 定義: R’=R ROL( L KLi,1) (ROL():循環(huán)左移 1 位 ) L’=L ROL (R’ KLi,2) 共同構(gòu)成函數(shù) FL 的輸出 32 比特( L’ || R’)。 ZE( x)表示在 7比特的數(shù)據(jù) x尾部(最右邊)添加 2個零,將 7 比特轉(zhuǎn)換為 9 比特。輪函數(shù)自身由兩個子 FL 和 FO構(gòu)成,與之相關(guān)的子密鑰分別為 KLi(FL 應(yīng)用的密鑰 ),KOi,KIi( FO應(yīng)用的密鑰) ,如圖 21所示。輪函數(shù) 保括一個輸入輸出為 32 比特的非線性混合函數(shù) F0和一個輸入輸出為 32比特的線性混合函數(shù) FL。 f8算法是加密算法, f9 是完整性算法, 這兩個算法都是基于 KASUMI 算法的。 f8算法是加密算法, f9 是完整性算法,這兩個算法都是基于 KASUMI 算法的。 關(guān)鍵字: KASUMI 算法; 3G; 安全性 ; Feistel The Research and Implementation of Kasumi Algorithm with VC Abstract As the development of munication technology is arriving at a bewildering rate, the third generation of mobile telemunication system (3G) is doomed to dominate our way of that. Meanwhile, how to maintain the security of operating information and work resources will be playing an everincreasing role. In order to provide 3G with steady security, its international anization 3GPP ( 3rd Generation Partnership Project) has defined two standardized key arithmetic: f8 and f9. The arithmetic f8 belongs to encrypted one, while f9 has kept its integrality. But they are both based on the arithmetic of KASUMI. The article is mainly focusing on the arithmetic of KASUMI, which is the key to the encrypted third generation of mobile telemunication. And it sheds light on the theory, position as well as how it can be carried out in VC in detail. Key words: KASUMI。 KASUMI 算法的實(shí)現(xiàn)是 在 Microsoft Visual C++ 環(huán)境下 實(shí)現(xiàn)的,但是源代碼確實(shí)利用 C語言編寫的 ,因?yàn)?C 語言編寫的程序比 C++編寫的程序普遍效率要高。 KASUMI 算法對 64 比特的分組應(yīng)用 128 比特的密鑰進(jìn)行加密,生成 64 比特的輸出,具體實(shí)現(xiàn)如下:輸入數(shù)據(jù) Indata 被分為 32 比特的左右兩部分 L0和 R0,即 Indata= L0||R0 對整數(shù) i, 1 =i = 8 定義 Ri=Li1 Li=Ri1 fi(Li1,RKi) 即每輪 KASUMI 算 法的操作: 將第 i1 輪的輸出的 左半部 Li1作為第 i輪的右半部 Ri。 CF ig. 1 : KA S UM IF O1F L 1F O3F L 3F O5F L 5F O7F L 7F O2 F L 2F O4 F L 4F O6 F L 6F O8 F L 8KL1KO1, KI1F I i1KIi ,1KOi ,1F I i2KIi ,2KOi ,2F I i3KIi ,3KOi ,3S9S9z e r o e xte ndz e r o e xte ndtr un c a teKIi ,j ,1KIi ,j ,232 326416 1632 169 7F : F O F un c ti on F : F I F un c ti onF : F L F un c ti onbitwis e AND ope r a t i onbitwis e O R o pe r a ti onon e b it le f t r ota ti on3216 16KLi ,1KLi ,2KL6KL8KL7KL2KL5KL4KL3KO2, KI2KO3, KI3KO4, KI4KO5, KI5KO6, KI6KO7, KI7KO8, KI8tr un c a teS7S7L0L8R0R8 CF ig. 1 : KA S UM IF O1F L 1F O3F L 3F O5F L 5F O7F L 7F O2 F L 2F O4 F L 4F O6 F L 6F O8 F L 8KL1KO1, KI1F I i1KIi ,1KOi ,1F I i2KIi ,2KOi ,2F I i3KIi ,3KOi ,3S9S9z e r o e xte ndz e r o e xte ndtr un c a teKIi ,j ,1KIi ,j ,232 326416 1632 169 7F : F O F un c ti on F : F I F un c ti onF : F L F un c ti onbitwis e AND ope r a t i onbitwis e O R o pe r a ti onon e b it le f t r ota ti on3216 16KLi ,1KLi ,2KL6KL8KL7KL2KL5KL4KL3KO2, KI2KO3, KI3KO4, KI4KO5, KI5KO6, KI6KO7, KI7KO8, KI8tr un c a teS7S7L0L8R0R8 圖 21 f函數(shù) 圖 22 FI函數(shù) 第 3 頁 共 26頁 CF ig. 1 : KA S UM IF O1F L 1F O3F L 3F O5F L 5F O7F L 7F O2 F L 2F O4 F L 4F O6 F L 6F O8 F L 8KL1KO1, KI1F I i1 KI i ,1KOi ,1F I i2 KI i ,2KOi ,2F I i3 KI i ,3KOi ,3S9S9z e r o e xte ndz e r o e xte ndtr un c a teKIi ,j ,1KIi ,j ,232 326416 1632 169 7F : F O F un c ti on F : F I F un c ti onF : F L F un c ti onbitwis e AND ope r a t i onbitwis e O R o pe r a ti onon e b it le f t r ota ti on3216 16KLi ,1KLi ,2KL6KL8KL7KL2KL5KL4KL3KO2, KI2KO3, KI3KO4, KI4KO5, KI5KO6, KI6KO7, KI7KO8, KI8tr un c a teS7S7L0L8R0R8 CF ig. 1 : KA S UM IF O1F L 1F O3F L 3F O5F 5F O7F L 7F O2 F L 2F O4 F L 4F O6 F L 6F O8 F L 8KL1KO1, KI1F Ii1KIi,1KOi,1F Ii2KIi,2KOi,2F Ii3KIi,3KOi,3S9S9z e ro e xte ndz e ro e xte ndtr un c a teKIi,j ,1KIi,j ,232 326416 1632 169 7F : F O F un c ti on F : F I F un c ti onF : F L F un c ti onbitwis e AND ope ra tionbitwis e O R o pe ra ti onon e b it le ft r ota ti on3216 16KLi,1KLi,2KL6KL8KL7KL2KL5KL4KL3KO2, KI2KO3, KI3KO4, KI4KO5, KI5KO6, KI6KO7, KI7KO8, KI8tr un c a teS7S7L0L8R0R8 圖 23 FL函數(shù) 圖 24 FO函數(shù) FI 函數(shù) 函數(shù) FI 由 16 比特的輸入數(shù)據(jù) I 和 16 比特的子密鑰 KIi,j構(gòu)成。 FO 函數(shù) 輸入函數(shù)由 32 比特的輸入數(shù)據(jù) Indata 和兩組分別為 48 比特的子密鑰: KOi和 KIi構(gòu)成。 輸出的左半部 L, 由輸出數(shù)據(jù)的右半部 R, 與子密鑰的右半部 KLi, 2進(jìn)行按位或的運(yùn)算,再進(jìn)行循環(huán)左移一位,然后再與輸入數(shù)據(jù)的左半部 L 進(jìn)行異或(模 2加)運(yùn)算得到。 f8 算法是用來對 UE(移動用戶設(shè)備)和 RNC(無線網(wǎng)絡(luò)控制器)之間的無線鏈路上的用戶數(shù)據(jù)和信令數(shù)據(jù)加密,以保證其安全性。它的可證明安全性是來源于算法中的被證明具有可證明安全性的較小的構(gòu)成部件, Feistel 結(jié)構(gòu)的 KASUMI 算法正是通過重復(fù)迭代調(diào)用較小的函數(shù) FO和 FI 來保證其安全性。在 3GPP 組織的測評中, KASUMI 算法可以對抗目前的大部分密碼攻擊方法:差分密碼分析(差分選擇明文攻擊、差分相關(guān)密鑰攻擊、不可能差分攻擊),截?cái)嗖罘置艽a分析,高階差分密碼分析,線性密碼分析;而且對于使用儀器的攻擊:定時(shí)攻擊,簡單能量攻擊,差分能量攻擊也具有很好的安全性,尤其是 在 3G的特殊環(huán)境中。 。其中 S7 和 S9 是通過查表得到數(shù)據(jù)。 圖 35 FL函數(shù)算法流程圖 按位與操 作 16 位輸入 KLi,1 異或 16 位輸入 左循環(huán)一位 按位或操 作 左循環(huán)一位 異或 左移 16 位 兩數(shù)相加 32 位輸出 FIi,1 KOi,1 16 位輸 入 異或 KIi,1 異或 16 位輸 入 FIi,1 KOi,2 異或 KIi,2 異或 FIi,1 KOi,3 異或 KIi,3 異 或 左移 16 位 兩數(shù)相加 32位輸 出 第 12 頁 共 26頁 4 系統(tǒng) 設(shè)計(jì) 本系統(tǒng)是為驗(yàn)證 KASUMI 算法程序?qū)崿F(xiàn)而設(shè)計(jì)的。 主控程序 主控程序在此方案中起到了一個中轉(zhuǎn)站的作用,它與每一個模塊都有密切的關(guān)系,就輸入接口而言,主控程序?qū)慕涌诮邮諗?shù)據(jù)(明文和密鑰),然后