吳彥北,朱宇霞,陳印峰
(1.武漢郵電科學(xué)研究院 湖北 武漢430074;2.北方烽火科技有限公司 北京 100085)
PDCP中EEA/EIA在FPGA上的實(shí)現(xiàn)
吳彥北1,2,朱宇霞1,2,陳印峰2
(1.武漢郵電科學(xué)研究院 湖北 武漢430074;2.北方烽火科技有限公司 北京 100085)
隨著LTE系統(tǒng)的發(fā)展,PDCP層需要處理的數(shù)據(jù)流量越來(lái)越大,其中EEA/EIA功能在CPU上通過(guò)軟件的方式已經(jīng)無(wú)法滿足系統(tǒng)對(duì)吞吐量的需求。在分析了128-EEA3/128-EIA3[1]算法以后,提出了一種基于PFGA的PDCP加速處理實(shí)現(xiàn)方案,在經(jīng)過(guò)編碼、仿真、驗(yàn)證以后,實(shí)際處理性能有很大提升,并準(zhǔn)備實(shí)際運(yùn)用于4G基站設(shè)備中。
PDCP;FPGA;EEA;EIA
LTE是一種基于分組低時(shí)延無(wú)線交換網(wǎng)絡(luò),PDCP層位于LTE空中接口協(xié)議棧RLC層之上子層用于對(duì)用戶平面和控制平面數(shù)據(jù)提供頭壓縮、加密與完整性保護(hù)(EEA/EIA)[2]等操作。在LTE-A中引入傳輸模式9,對(duì)PDCP處理能力提出了更高要求,但是通過(guò)軟件的實(shí)現(xiàn)方式在算法優(yōu)化到極限時(shí)仍不能滿足系統(tǒng)要求,通過(guò)硬件加速是通常采取的方法。
基于FPGA(可編程門陣列)的硬件開發(fā)具有周期短、成本低和能根據(jù)系統(tǒng)需求的變化可以靈活的更改硬件電路的特點(diǎn)[3],所以這里采用FPGA用來(lái)加速PDCP中EEA/EIA處理。
1.1 EEA(加密/解密)功能簡(jiǎn)介
PDCP子層中EEA/EIA兩者處理流程有很大的相似之處,所以這里以加密處理在FPGA上的實(shí)現(xiàn)為主,完整性分析的處理可以類比得到。
PDCP加密功能只針對(duì)PDCP數(shù)據(jù)PDU(控制平面數(shù)據(jù)PDU和用戶平面數(shù)據(jù)PDU),實(shí)體所使用的具體算法和參數(shù)都由高層配置。
這里設(shè)計(jì)中EEA選擇的加密算法為128-EEA3,該算法由中科院數(shù)據(jù)與通信保護(hù)研究教育中心設(shè)計(jì),其核心為ZUC算法。ZUC算法作為一種流式加密算法,根據(jù)系統(tǒng)輸入的參數(shù)生成128 bit初始化key和128 bit初始化iv,然后進(jìn)入工作狀態(tài),最后在密匙流輸出階段每次運(yùn)算輸出32bit密匙,用于加密/解密消息。
1.2 ZUC算法簡(jiǎn)介
核心ZUC算法在邏輯上分為3層:線性反饋移位寄存器(LFSR)、比特重組(BR)和非線性函數(shù)F。ZUC算法執(zhí)行時(shí)分為初始化狀態(tài)、工作狀態(tài)和密匙流輸出狀態(tài)[4],其中層一和層三在不同模工作模式下,計(jì)算流程上存在區(qū)別。
1)初始化狀態(tài)
在輸入初始化序列K、IV以后,將r1、r2置0,然后執(zhí)行下面操作32次:
①Bitreorganization(); //比特重組
②W=F(X0,X1,X2); //非線性F函數(shù)
③LFSRWithInitialisationMode(w>>1).//線性反饋移位工作單元
2)工作階段
僅執(zhí)行下面的操作一次,不產(chǎn)生W,也不產(chǎn)生Z:
①Bitreorganization();
②F(X0,X1,X2);
③LFSRWithWorkMode().
3)密匙流輸出階段
每次執(zhí)行下面的迭代運(yùn)算,然后輸出32 bit的Z
①Bitreorganization();
②Z=F(X0,X1,X2)⊕X3;
③LFSRWithWorkMode().
ZUC加密算法中核心功能在于線性移位單元 (LFSR)中s16狀態(tài)的計(jì)算塊以及非線性函數(shù)F中S盒運(yùn)算,而比特重組的功能僅是從線性移位單元中提取s0、s2、s5、s7、s9、s11、s14、s15若干比特組成4個(gè)32bit的數(shù)X0、X1、X2、X3用于非線性函數(shù)F和密匙流的計(jì)算。在設(shè)計(jì)中,將層一和層二合并,扁平化設(shè)計(jì)。
2.1 線性移位單元
ZUC算法第一層線性反饋移位單元(LFSR)中,核心功能是計(jì)算。線性移位單元工作在初始化模式和非初始化模式時(shí),關(guān)鍵區(qū)別在與的計(jì)算方式不同:
比較公式(1)與公式(3),可以發(fā)現(xiàn):線性移位反饋單元(LFSR)在初始狀態(tài)計(jì)算s16時(shí),需要加上u,工作狀態(tài)則不需要加上u。因此,在工作狀態(tài)時(shí),將公式(1)中的u置為0,即可計(jì)算工作狀態(tài)時(shí)的s16。
[1]中說(shuō)明:a+b mod GF(231-1),計(jì)算規(guī)則如下
1)計(jì)算v=a+b;
2)如果進(jìn)位位為1,則令v=v+1。
這里將公式(1)與公式(2)合并簡(jiǎn)化,有:
同時(shí)調(diào)用Xilinx加法IP core生成一個(gè)38bit無(wú)符號(hào)的累加器,通過(guò) 6次加法運(yùn)算,得到 215s15、217s13、221s10、28s0、u的和sum,然后將sum與sum的高6 bit再次相加,取低位的31 bit執(zhí)行公式(4),再做判斷即可得到s16。根據(jù)這種方式,避免了每次執(zhí)行加法后要判斷最高位的進(jìn)為位是否為1。同時(shí),若按照參考文獻(xiàn)[1]中提供運(yùn)算方式,則需要進(jìn)行5次進(jìn)位判斷運(yùn)算和12次加法運(yùn)算,這里僅用7次加法運(yùn)算即可完成。
2.2 非線性函數(shù)F
在完成線性移位操作以后,ZUC算法設(shè)計(jì)了基于查表方式的非線性函數(shù)F,用于破壞數(shù)據(jù)之間的線性關(guān)系,增強(qiáng)加密算法的破解難度,其具體計(jì)算步驟如下:
其中L1、L2同為一個(gè)32bit到32bit的線性運(yùn)算:
L1(X)=X⊕(X<<2)⊕(X<<10)⊕(X<<18)⊕(X<<24)
L2(X)=X⊕(X<<8)⊕(X<<14)⊕(X<<22)⊕(X<<30)
F函數(shù)中通過(guò)S盒操作破壞比特之間的線性關(guān)系。32*32的S盒運(yùn)算由4個(gè)并列的8乘8的S盒組成:S=(S0,S1,S2, S3),其中S0=S2,S1=S3。在FPGA處理能力已經(jīng)滿足系統(tǒng)要求還有余量時(shí),從資源優(yōu)化的角度考慮設(shè)計(jì),定義2個(gè)深度256,寬度為8bit的雙端口ROM,通過(guò)時(shí)分復(fù)用的方式在2個(gè)時(shí)鐘周期內(nèi)完成R1、R2查找,節(jié)約了片上資源[5]。
在對(duì)算法系統(tǒng)功能明確劃分以后,按照模塊化開發(fā)的方法,開始對(duì)每個(gè)模塊進(jìn)行詳細(xì)設(shè)計(jì)。在Modelsim 10.0c下仿真,輸入?yún)⒖嘉墨I(xiàn)[6]中的Test set4,在經(jīng)過(guò)初始化狀態(tài)、工作狀態(tài),最后在密匙流輸出狀態(tài)觀察加密處理器的輸出結(jié)果如圖1所示,其中pid_k_din、pid_iv_din為輸入的初始密匙,pod_key_dout為輸出的密匙,pod_key_ready高指示密匙輸出有效:
圖1 加密算法工作模式仿真圖Fig.1 The simulation of encryption algorithm in working mode
當(dāng)FPGA系統(tǒng)時(shí)鐘為312.50 MHz時(shí),在輸入初始化參數(shù)以后,ZUC加密算法經(jīng)過(guò)99個(gè)時(shí)鐘周期完成初始化,在工作模式下每3個(gè)時(shí)鐘周期輸出一個(gè)32 bit秘鑰,此時(shí)系統(tǒng)吞吐量為:156.25*32*0.5=2.5 G/s。與中科院數(shù)據(jù)與通信保護(hù)研究教育中心提供的參考數(shù)據(jù)[6]作對(duì)比,對(duì)比結(jié)果如表1所示。
The EEA/EIA in PDCP im p lement on FPGA
WU Yan-bei1,2,ZHU Yu-xia1,2,CHEN Yin-feng2
(1.Wuhan Research Institute of Post and Telecommunication,Wuhan 430074,China; 2.Beijing Northern FiberHome Technologies Co.,Ltd,Beijing 100085,China)
With the development of LTE,the throughput of PDCP is increasing more and more,especially the EEA/EIA can't finish by software on CPU in time.After analyzing the 128-EEA3/128-EIA3[1]method,this paper put out a way to accelerate the processing of PDCP based on FPGA,after coding、modeling and testing which will be used in the 4G base station.
PDCP;FPGA;EEA;EIA
TN929.5
A
1674-6236(2015)07-0096-02
2014-07-27 稿件編號(hào):201407210
吳彥北(1989—),男,湖北武漢人,碩士。研究方向:信號(hào)與信息處理及可編程片上系統(tǒng)(SOPC)。