999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

高效Kasumi加密算法的軟件設計與實現(xiàn)

2012-10-27 06:35:02翔,童,
通信技術(shù) 2012年3期
關鍵詞:指令方法

李 翔, 徐 童, 熊 焰

(中國科學技術(shù)大學 計算機科學與技術(shù)學院,安徽 合肥 230027)

0 引言

為了保證移動通信的安全性并滿足實時性的要求,加密算法往往采用硬件實現(xiàn)而非軟件實現(xiàn)。但近年來,隨著通用處理器工藝的提高,其性能也越來越接近移動通信芯片的要求。使用通用處理器,同時具有開發(fā)周期短、開發(fā)模式靈活等優(yōu)點,這使得對通信算法軟件實現(xiàn)的研究越發(fā)重要,并使軟件無線電(SDR)的實際部署成為可能。

Kasumi算法作為第三代移動通信系統(tǒng)(3G)的核心加密算法,以 f 8和 f 92種模式使用[1],其中 f 8是加密算法,f 9是完整性算法,二者都是基于 Kasumi算法的輸出反饋模式(OFB)形成的流密碼。由于 Kasumi算法是基于 Feistel網(wǎng)絡結(jié)構(gòu)的分組密碼,其 OFB模式無法并行實現(xiàn),而且在移動通信中同時通信的不同用戶需要使用不同的密鑰,密鑰分配也是十分耗時的計算模塊,因此少有高效的軟件實現(xiàn)方法提出。

在本文中,提出一種基于包并行的高效軟件實現(xiàn)方法,并且對 FI子函數(shù)以查表的方式進行優(yōu)化,同時引入新的SSE轉(zhuǎn)置指令用于快速生成不同用戶的密鑰。實驗表明我們的方法比協(xié)議中的實現(xiàn)快四倍,達到3GPP規(guī)定的實際部署的要求。

1 Kasumi算法

Kasumi算法是分組密碼 MISTY1[2]的一個改進版本,64 bit的輸入在128 bit密鑰的加密下產(chǎn)生64比特的輸出。該算法是一個八輪的 Feistel網(wǎng)絡[3],包括FL,F(xiàn)O和FI 3個子函數(shù),每個子函數(shù)使用對應的子密鑰 KL,KO和 KI,分別由 128位密鑰生成。其結(jié)構(gòu)如圖1所示。

具體加密過程如下:將 64 bit的輸入 I分成32 bit的2部分,分別為L0和R0,即I = L0|| R0。對于第 i輪迭代(1 ≤ i ≤ 8),Ri= Li-1,Li= Ri-1⊕fi(Li-1, RKi)。其中fi指代第i輪的子函數(shù)FLi和FOi,RKi為該輪的子密鑰,如圖所示。最后,第 8輪的結(jié)果L8|| R8即為Kasumi算法最終的64 bit輸出。

Kasumi算法中的替換操作(Substitution)由FI子函數(shù)實現(xiàn),如圖 1所示,16 bit的輸入被分成9 bit和7 bit2部分,分別經(jīng)過S9和S72個S盒進行替換操作后,再與該輪的子密鑰做異或運算,然后再做一次 S盒替換操作。所得結(jié)果連接在一起作為FI子函數(shù)的輸出。

圖1 Kasumi算法結(jié)構(gòu)

在f 8和f 9算法中,每個用戶的數(shù)據(jù)包,由基站分配初始向量和加密密鑰。其中初始向量作為第一次 Kasumi算法的輸入,經(jīng)密鑰加密后其輸出作為流密碼對原文進行加密,并作為下一次 Kasumi算法的輸入,以此類推。由于 Kasumi算法基于Feistel網(wǎng)絡,且每個用戶的數(shù)據(jù)包的初始向量和加密密鑰均不相同,因此每一次 Kasumi的加密過程依賴于前一次 Kasumi的完全結(jié)束,從而使得包內(nèi)的并行不可能實現(xiàn)。另外,S盒的替換操作可轉(zhuǎn)化為一組邏輯運算,較容易用硬件高效實現(xiàn),而對軟件實現(xiàn)來說計算復雜度較高,因此少有高效的軟件實現(xiàn)方法提出。在軟件無線電大力發(fā)展的今天,Kasumi算法的高效的軟件實現(xiàn)亟待解決。

2 相關工作

目前有很多 Kasumi算法高效實現(xiàn)的方法,但大部分是通過硬件設計來實現(xiàn),例如文獻[4-5]提出的以簡單模塊重用和雙通道同步內(nèi)存等方式為特點的FPGA高效實現(xiàn)等,都是對硬件設計進行優(yōu)化。

但也有基于軟件的高效實現(xiàn)方法,如文獻[6-7]提出的基于“比特切割”(bit-sliced)的快速算法。該方法同時處理 128個數(shù)據(jù)包,每次提取每個數(shù)據(jù)包中的 1 bit組成一個 128位的向量存入一個XMM寄存器中,然后對其做邏輯運算來實現(xiàn) S盒的替換操作。該方法效率很高,但是其假設存在一個硬件接口用于做比特轉(zhuǎn)置,這在軟件中實現(xiàn)的效率是很低的,因此該方法在實際使用中還是不可行。

3 本方法的實現(xiàn)過程

在這一部分詳細介紹了本文提出的基于包并行的高效 Kasumi算法的軟件實現(xiàn),主要包括:①利用Intel SSE指令并行處理8個數(shù)據(jù)包;②利用查找表的算法優(yōu)化子函數(shù)FI;③引入新的轉(zhuǎn)置指令用于快速生成密鑰。

3.1 利用Intel SSE指令并行處理8個數(shù)據(jù)包

Intel在x86架構(gòu)上繼MMX之后引入的新單指令流多數(shù)據(jù)流指令集(SSE,Streaming SIMD Extension)。該指令集既支持定點運算,又支持浮點運算,且作用在128位的XMM寄存器上,可以分別對 8位、16位、32位、64位和 128位的數(shù)進行并行運算,因而十分高效。目前Intel的Nehalem微架構(gòu)中含有16個XMM寄存器。

在f 8和f 9算法的加密過程中,320 bit的數(shù)據(jù)包需要同等長度的流密鑰,因此需要進行 5次Kasumi計算。Kasumi算法過程中最耗時的模塊是FI子函數(shù),為了提高 CPU緩存的命中率,我們以FI的吞吐率來決定數(shù)據(jù)包并行的粒度。由于 FI的輸入輸出均為16 bit,而Intel XMM寄存器的大小為128 bit,因此我們選擇以8個數(shù)據(jù)包為單位進行并行處理。對于每個數(shù)據(jù)包,我們將 64 bit的密鑰初始向量分為 Ll、Lr、Rl和 Rr 4部分,然后把 8個數(shù)據(jù)包的初始向量的對應部分分別放入一個XMM寄存器中進行并行處理。

3.2 以查找表方式優(yōu)化FI

FI子函數(shù)中的 S盒替換操作是整個 Kasumi算法中最耗時的模塊,因此我們用查找表的方式對其進行了優(yōu)化。我們將S9和S72個S盒合并為一個大小為 216的表,每次替換操作只需以 16 bit的輸入為索引直接查表即可,而 FI子函數(shù)則簡化為在兩次查表操作之間進行一次異或運算。由于表所占空間不大,而且在設計包并行處理時將 FI模塊的處理集中在一起,因此該表基本可以裝入 CPU緩存中且命中率較高,從而極大地提高了加密速度。同時,還省去了對 16 bit數(shù)據(jù)進行拆分與合并的過程,并簡化了密鑰的生成。與協(xié)議原方法的比較見圖2。

圖2 FI子函數(shù)結(jié)構(gòu)比較

3.3 快速密鑰生成

無論是在根據(jù) 3G基站分配的參數(shù)生成初始向量,還是在由密鑰生成子密鑰時,都需要用到對四個128位的XMM寄存器以32 bit為單位進行轉(zhuǎn)置運算。Intel SSE提供了這樣一條復合指令_MM_TRANSPOSE4_PS,但是該指令是浮點數(shù)運算,由于 Kasumi加密過程中不存在浮點數(shù)運算,因此在執(zhí)行該指令時需要先將變量轉(zhuǎn)為浮點型,待指令執(zhí)行完成后再轉(zhuǎn)為整形。經(jīng) VTune工具分析后,定位到該指令為程序執(zhí)行瓶頸,效率十分低下。因此,我們引入了一條新的復合指令_MM_TRANSPOSE4_EPI32,直接在整形數(shù)據(jù)上進行轉(zhuǎn)置操作,從而省去了類型轉(zhuǎn)換的時間。該指令具體定義如下:

4 實驗結(jié)果

為了評估本文方法的性能,我們在Intel Nehalem 3.33GHz CPU和Intel C++ Compiler 11.1環(huán)境下進行了3組實驗,每組運行1000000次,最后取3組實驗的平均值與協(xié)議中的標準實現(xiàn)[8]進行比較。比較結(jié)果如圖3。

圖3 實驗結(jié)果數(shù)據(jù)比較

以上實驗結(jié)果表明,本文的方法在加密過程中可以達到每個字節(jié)消耗19.2個CPU周期,比協(xié)議的標準實現(xiàn)快 415%,因此本文提出的 8個數(shù)據(jù)包并行處理的實現(xiàn)方法已經(jīng)達到了實際部署的要求。

5 結(jié)語

在本文中,提出了一個Kasumi加密算法的高效軟件實現(xiàn)方法,采用了包并行、查找表等方式對加密過程進行了優(yōu)化。實驗結(jié)果表明對協(xié)議的標準實現(xiàn)有明顯的提高,并達到了移動通信實際部署的要求。目前,下一代Intel CPU Sandy Bridge已經(jīng)發(fā)布,在新的AVX指令集完整推出后,寄存器大小會升級為256 bit,屆時,本文方法的實現(xiàn)性能應該會提高數(shù)倍。另外,在保持當前包并行粒度的前提下,可以增加包并行的數(shù)量,經(jīng)大量測試來尋找性能最優(yōu)的并行數(shù)。這些都是我們將來研究的方向。

[1]馬炯.分組密碼算法KASUMI及其在 WCDMA中的應用[J].信息安全與通信保密, 2005(02):123-126.

[2]MATSUI M, BIHAM I E.New Block Encryption Algorithm MISTY[M].UK: Springer-verlag, 1997:54-68.

[3]毛光燦, 何大可.3G核心加密算法 KASUMI算法[J].通信技術(shù), 2002(11):92-94,97.

[4]BALDERAS T, CUMPLIDO R.An Efficient Hardware Implementation of the KASUMI Block Cipher for Third Generation Cellular Networks[EB/OL].(2004-07-22)[2011-10-29].http://Technical Conference of the International Embedded Solutions Event,2004.ccc.inaoep.mx/~rcumplido/.../GSPx04%20-%20 KASUMI.p...

[5]REN Fang, YAN Yingjian, FU Xiaobing.A Small and Efficienct Hardware Implementation of the KASUMI[C].USA:IEEE, 2009:377-380.

[6]SUNAR G G.Leveraging the Multiprocessing Capabilities of Modern Network Processors for Cryptographic Acceleration[C].USA:IEEE, 2005:235-238.

[7]Mitsuru Matsui, Junko Nakajima.On the Power of Bitslice Implementation on Intel Core2 Processor[EB/OL].(2007-04-27)[2011-10-29].http://www.iacr.org/archive/ches2007/47270121/47270121.

[8]3GPP TS 35.201.Specification of the 3GPP confidentiality and integrity algorithms;Document 1: f8 and t9 Specifications[S].USA:3GPP, 2009.

猜你喜歡
指令方法
聽我指令:大催眠術(shù)
學習方法
ARINC661顯控指令快速驗證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
殺毒軟件中指令虛擬機的脆弱性分析
電信科學(2016年10期)2016-11-23 05:11:56
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
一種基于滑窗的余度指令判別算法
主站蜘蛛池模板: 午夜性刺激在线观看免费| 91精品国产福利| 午夜视频www| 国产精品主播| 色AV色 综合网站| 欧美日韩中文国产va另类| 19国产精品麻豆免费观看| 天天综合网色| 国产精品深爱在线| 久草视频中文| 无码中文字幕加勒比高清| 99热国产这里只有精品无卡顿"| 六月婷婷综合| 麻豆国产原创视频在线播放| 日韩国产精品无码一区二区三区| 久久天天躁夜夜躁狠狠| 波多野结衣无码中文字幕在线观看一区二区| 狠狠色丁香婷婷综合| 99久久国产精品无码| 国产精品yjizz视频网一二区| 国产激爽爽爽大片在线观看| 亚洲第一精品福利| 日韩在线永久免费播放| 日韩精品毛片人妻AV不卡| 亚洲天堂久久新| 国产av剧情无码精品色午夜| 日韩福利视频导航| 国产成人精品在线| 91区国产福利在线观看午夜| 久久视精品| 99成人在线观看| 亚洲五月激情网| 日韩精品一区二区三区大桥未久| 色呦呦手机在线精品| 91外围女在线观看| 免费国产高清视频| 欧洲亚洲一区| 特级毛片免费视频| 一级毛片在线播放免费| 国产99精品视频| 高潮毛片免费观看| av在线手机播放| 福利视频久久| 2020亚洲精品无码| 日韩a在线观看免费观看| 国产免费观看av大片的网站| JIZZ亚洲国产| 好吊妞欧美视频免费| 中文字幕资源站| 国产小视频a在线观看| 一级一级一片免费| 亚洲视频色图| 国内精品视频在线| 毛片免费试看| 国产精品片在线观看手机版 | 亚洲AV无码一区二区三区牲色| 成人国内精品久久久久影院| 欧洲欧美人成免费全部视频| 久久久久国产一区二区| 欧美性色综合网| 性做久久久久久久免费看| 精品综合久久久久久97超人| www欧美在线观看| 欧美精品一区在线看| 亚洲久悠悠色悠在线播放| 国产成人精品一区二区| 欧洲熟妇精品视频| 亚洲国产高清精品线久久| 亚洲AⅤ综合在线欧美一区| 欧美亚洲一区二区三区在线| 97超碰精品成人国产| 国产黄色视频综合| 亚洲人成影视在线观看| 日日摸夜夜爽无码| 国产精品人成在线播放| 亚洲日韩久久综合中文字幕| 成人一区在线| 亚洲国产综合第一精品小说| 国产SUV精品一区二区6| 久热re国产手机在线观看| 91青青草视频| 免费国产高清视频|