TECHNOLOGY
SM4算法高速實(shí)現(xiàn)
引言
信息系統(tǒng)開展密評(píng)是規(guī)范密碼應(yīng)用、維護(hù)網(wǎng)絡(luò)空間安全的基本要求,同時(shí)又可促進(jìn)國產(chǎn)密碼在各個(gè)行業(yè)的廣泛應(yīng)用。隨著應(yīng)用場景的深入挖掘,各種應(yīng)用環(huán)境對(duì)密碼算法的性能及安全性需求提出了不同的要求,尤其是應(yīng)用最為廣泛的SM4密碼算法。
例如多路視頻高清和超高清監(jiān)控?cái)?shù)據(jù)需要超高性能的密碼算法進(jìn)行保護(hù)。網(wǎng)絡(luò)和通信安全需要采用密碼技術(shù)對(duì)通信過程中的敏感數(shù)據(jù)做機(jī)密性保護(hù),這就對(duì)SM4算法高性能實(shí)現(xiàn)提出了具體需求,否則必然對(duì)系統(tǒng)的性能造成較明顯的損耗,影響網(wǎng)絡(luò)通信能力。還有很多行業(yè)對(duì)加密存儲(chǔ)的性能要求非常高。2008年Intel、AMD等處理器廠商紛紛宣布在其處理器上推出用于AES加解密的AES-NI指令集,這使得采用AES-NI指令集實(shí)現(xiàn)AES算法的性能得到進(jìn)一步提升。目前SM4算法性能與AES算法相比有一定差距,特別是與AES-NI加速指令的差距更加明顯,如果不盡快補(bǔ)上這些性能短板,必將影響國密算法的廣泛應(yīng)用。
SM4算法實(shí)現(xiàn)介紹
SM4分組密碼算法是我國第一個(gè)公開的商用分組密碼算法,分組長度為128比特,密鑰長度也是128比特,加密算法與密鑰擴(kuò)展算法都采用32輪廣義Feistel結(jié)構(gòu)進(jìn)行迭代,這使得解密算法與加密算法的結(jié)構(gòu)相同,只是輪密鑰的使用順序相反。
為了高效地實(shí)現(xiàn)SM4算法,國內(nèi)外眾多學(xué)者提出了多種軟硬件工程實(shí)現(xiàn)思路。早期的SM4軟件實(shí)現(xiàn)方法僅限于查表實(shí)現(xiàn),但因SM4算法架構(gòu)等因素,其查表實(shí)現(xiàn)的性能明顯低于AES算法。國內(nèi)外許多學(xué)者嘗試采用SIMD技術(shù)應(yīng)用到密碼算法的軟件快速實(shí)現(xiàn)中,例如SSE指令集、AVX指令集等。SIMD可實(shí)現(xiàn)一條指令操作多個(gè)數(shù)據(jù),是CPU基本指令集的擴(kuò)展,用于提供數(shù)據(jù)的并行操作,比如數(shù)字圖像處理。學(xué)者們將SSE指令與比特切片等技術(shù)應(yīng)用到密碼算法上提高了算法的實(shí)現(xiàn)性能。中科院軟件所利用SIMD技術(shù)優(yōu)化實(shí)現(xiàn)SM4算法,該方法相比于查表方法,其軟件實(shí)現(xiàn)性能可以提高85%至138%。北航軟件開發(fā)環(huán)境國家重點(diǎn)實(shí)驗(yàn)室簡化S盒,采用比特切片技術(shù),結(jié)合AVX指令實(shí)現(xiàn)SM4算法的256個(gè)分組并行加解密,實(shí)現(xiàn)效率提高了43%。2014,Intel公司提出了基使用AES-NI指令集實(shí)現(xiàn)SM4的專利,2017年,道里云公司也公開發(fā)表了使用AES-NI指令集實(shí)現(xiàn)SM4的另一種方案。
另外也有借助硬件GPU進(jìn)行SM4加速實(shí)現(xiàn)的方案。北京電科院通過研究最優(yōu)明文數(shù)據(jù)塊、GPU存儲(chǔ)類型和線程塊對(duì)SM4加密的加速比,提出GPU并行SM4加解密方案,將性能提升到25倍左右。中國工業(yè)控制系統(tǒng)網(wǎng)絡(luò)應(yīng)急響應(yīng)小組利用CUDA提出了SM4的CPU-GPU方案,并引入頁鎖內(nèi)存和CUDA流方案使得SM4的速度提升到88倍左右。這兩篇文章都指出,當(dāng)明文數(shù)據(jù)塊較小時(shí)(如小于8KB),由于CPU和GPU之間的數(shù)據(jù)交互傳輸耗時(shí)以及小數(shù)據(jù)包時(shí)GPU無法調(diào)用全部的計(jì)算單元參與運(yùn)算,使得GPU方案的效率可能不升反降,因此應(yīng)用場景有一定的局限性。此外,GPU本身的性能也與加速效果強(qiáng)相關(guān)。
10Gb每秒!海泰的新篇章!
海泰以密碼技術(shù)融合創(chuàng)新為依托深耕國密算法高性能實(shí)現(xiàn),基于國內(nèi)外研究成果進(jìn)行SM4的軟件高性能實(shí)現(xiàn)研究。重點(diǎn)針對(duì)CPU流水線和不同類型的SIMD的深入理解和分析,結(jié)合SSE、AVX指令集的并行化實(shí)現(xiàn)特點(diǎn)以及對(duì)SM4性能優(yōu)化的改善程度,剖析不同工作模式的可并行性以及對(duì)并行加解密性能的改善情況,設(shè)計(jì)出高性能的SM4并行實(shí)現(xiàn)方法,此外,設(shè)計(jì)的SM4高性能實(shí)現(xiàn)自適應(yīng)匹配技術(shù)以及內(nèi)置智能最優(yōu)解方案模塊,可根據(jù)監(jiān)測的CPU架構(gòu)特征自適應(yīng)地匹配符合CPU特征的高性能加解密方案,自動(dòng)快速搜尋局部最優(yōu)解,使得加解密性能盡可能達(dá)到局部最優(yōu)。該方案已部署在SM4算法的五種常見工作模式中,在英特爾I5處理器上優(yōu)化部署后的SM4軟件高性能實(shí)現(xiàn)方案性能從原有的3.54Gbps(百萬比特每秒)提升至7.36Gbps,性能為原方案的2.08倍;在英特爾的十一代i7 Rocket Lake處理器上進(jìn)行單線程性能測試,ECB模式的加密和解密速度達(dá)到10 Gbps,CTR模式的加解和解密性能不低于9 Gbps,CBC模式和CFB模式的解密性能也都超過9 Gbps,如下圖。
海泰SM4高性能密碼實(shí)現(xiàn)方案的性能
SM4實(shí)現(xiàn)方案除了已經(jīng)支持上述五種常見工作模式之外,其它更多的工作模式也正在全力支持中。此外,海泰的SM4算法高性能實(shí)現(xiàn)還在進(jìn)行持續(xù)迭代,多種模式的實(shí)驗(yàn)室測試數(shù)據(jù)均在10 Gbps以上。
高性能SM4的應(yīng)用
海泰SM4算法的高性能實(shí)現(xiàn),使得單線程的加解密速度可達(dá)到10Gbps(1.25GB/s),多線程可達(dá)到100Gbps以上,這使得海量數(shù)據(jù)的安全存儲(chǔ)和安全“閃”存得以實(shí)現(xiàn)。
幾乎所有的數(shù)據(jù)密集型應(yīng)用場景都將是海泰高性能SM4算法大顯身手之處。當(dāng)前,移動(dòng)應(yīng)用、AI應(yīng)用、AR/VR、云手機(jī)、物聯(lián)網(wǎng)、車聯(lián)網(wǎng)等新型應(yīng)用、智能物聯(lián)網(wǎng)應(yīng)用爆發(fā)式增長,更加多樣化的算力產(chǎn)生在云上,提供個(gè)性化服務(wù),改變?nèi)藗兊纳睿@些應(yīng)用場景要求簡化現(xiàn)有IT基礎(chǔ)架構(gòu),優(yōu)化服務(wù)器資源利用率,提高系統(tǒng)可用性,這是海泰密碼技術(shù)賦能高質(zhì)量密碼供給,確保數(shù)據(jù)安全的重要應(yīng)用領(lǐng)域。
與此同時(shí),海泰高性能SM4也正在與相關(guān)密碼產(chǎn)品進(jìn)行對(duì)接集成,支持更多的密碼產(chǎn)品,為更多的安全產(chǎn)品賦能更高性能的國密算法實(shí)現(xiàn),提供更加完善的安全功能,為云計(jì)算、大數(shù)據(jù)、物聯(lián)網(wǎng)、移動(dòng)互聯(lián)、工業(yè)控制、人工智能等領(lǐng)域提供更加完善的安全服務(wù)。
總結(jié)與展望
如今,海泰方圓正全面開展國產(chǎn)密碼算法系列的高性能實(shí)現(xiàn),不僅進(jìn)一步優(yōu)化SM4算法性能,還在進(jìn)行SM3算法、SM2算法、SM9算法、ZUC算法的高性能實(shí)現(xiàn),將商密算法的高性能實(shí)現(xiàn)延展到國產(chǎn)化平臺(tái),助力國產(chǎn)化安全。