李 萍,朱春琴,曹 磊,孫 毅,魏房忠
(江蘇省大數據管理中心,江蘇 南京 210000)
目前,信息技術發展較快,已經步入了人工智能技術時代。人工智能技術的建立主要基于大數據計算。現如今,大數據計算技術取得較快發展,在多種計算模式下,利用大數據處理技術,能在大量而且分散的數據中,及時找出有價值、有意義的數據,促使生產力水平得到顯著提高,助推經濟發展。
如圖1所示為邏輯架構,從邏輯上來看,針對大數據安全,可把邏輯結構分為3層。從邏輯架構層中可以得知,密碼算法層占據關鍵的位置,在很大程度上,能為方案奠定有力的技術支撐。數據安全方案中含有多種密碼算法,例如大家熟知的SM4-XTS算法,通過密碼算法層,都能促使這些算法得到使用。在密碼算法層中,應當加大密碼技術的研究力度,不斷對相關的優化算法進行摸索,例如大整數運算。此外,也不能忽視對眾核并行技術的研究,以便在FPGA平臺中,使高性能運算得到實現。強化對眾核技術的優化,重視對智能協同計算的健全,充分結合并發任務,以便能促使處理陣列得到提升,有效發揮FPGA平臺的作用,有助于達到高速密碼算法的目標,基于大數據安全方案,保證方案能更好地滿足密碼運算的要求。對密碼服務層來講,在多數情況下,服務對象往往是算法層,可實現對算法層的封裝。在此基礎上,能向外部提供接口,積極發揮密碼服務層的作用,操作人員能達到自定義指令的目的。在此情況下,能隨意使用密碼算法層,最終對目標進行服務,比如文件儲存加密、身份認證等。對于應用層而言,主要是基于密碼服務層,對其接口進行調用,來處理大數據應用問題[1]。在調用儲存加密接口之后,能在極短的時間內解密較多的大數據;通過對身份認證接口進行調用,可更好地滿足身份認證需求;對模冪運算進行調用,能快速對同臺算法進行封裝,有效完成業務需求。
對于大數據安全的快速實現,本文主要從SM4-XTS的快速實現、SM2的快速實現等方面進行分析。
SM4實現:在SM4性能影響方面,S-BOX的影響最大。對于S-BOX的實現,主要包括兩種方式,一種是基于數個S-BOX,而形成的邏輯方式;另一種是依據ROM的查找表,進而形成的方式。若選取數個S-BOX,那么基于輪函數,可通過組合邏輯方式,不需借對寄存器,往往只需依靠1個時鐘周期,就能有效完成迭代過程。另一方面,對于多個S-BOX而言,即便會耗用大多數的資源,然而通過對邏輯的控制,能降低復雜度,更加容易采用流水線處理;若通過一個S-BOX實現,若要達到變換非線性的目的,則需分時復用S-BOX,與此同時,雖然不使用資源,不過在邏輯控制方面,變得更加復雜,需使用到較多的寄存器資源,而且明顯提高花費的時間,對于一次迭代的完成,需使用數個時鐘周期。基于此,對于組合邏輯實現而言,采用多個S-BOX方式,能實現對流水線方式的支持,僅需一個周期,即可完成整輪函數[2]。
圖1 邏輯結構
在SM4密鑰拓展方面,使用動態即時輪技術,在任何一個周期中,通過一個單獨密鑰,來對1個分組進行加密解密,而且對性能不造成影響,可為流水線技術的應用奠定堅實的基礎。基于此硬件架構,在性能提升方面,可借助于流水線方式得以實現。采用即時輪拓展技術,在SM4運算方面,在同一時間內,即可以進行加解密運算,也能進行輪密鑰拓展。對流水線開展精心設計,在一個周期內,采用一個單獨密鑰,對一個分組進行加密解密,而且對性能不造成影響。通過這樣的方式,能以較少的周期實現對流水線的建立,在流水線被填滿之后,基于部分邏輯電路,能促使運算能力得到積極發揮,極大地提高算法性能。基于快速實現方案,采用的流水線技術為32級,使SM4算法得以實現,為SM4-XTS的快速實現,提供了強有力的技術支持。
對于SM2協議而言,通常可劃分為4層,圖2為SM2總體架構,頂層為SM2協議,其中包括諸多內容,比如密鑰協商、簽名以及加解密等,對于全部協議而言,皆依據點乘操作。點乘操作的實現,主要基于兩方面,一是倍點運算,二是點加運算。架構底端的運算為算數運算,所包含的運算一共有4種[3]。有效利用一系列的優化策略,能實現加速運算的目的。基于此,不但能極大縮短運算所需要的時間,而且在一定程度上,也能促使性能得到提升。
對模乘器的優化:在全部的算術運算中,對SM2協議來講,模乘運算占據了重要的位置,在實際應用中,模乘運算使用的頻率是最高的,而且對于所有的模塊而言,模乘運算是相當重要的,從運算時間上來看,所占的比例高達90%。對模減以及模加運算來講,所包含的邏輯結構較為簡單,在實際應用過程中,使用模逆運算的情況相對較少,并沒有得到廣泛的利用,所以對于模逆運算的實現而言,有必要對模乘器進行優化。優化策略,主要包括以下幾點:借助于DSP運算單元,來對模乘器進行構建。對于DSP而言,主要基于FPGA平臺,向其內置的運算單元,對于乘累加運算是支持的。基于DSP,對其進行精心設計并組合,避免主要路徑出現延時,可為高速模乘運算,提供強有力的支持。對于模乘運算而言,在對運算時間進行確定的過程中,往往是依據一些積數量。對256b乘法進行構建,在少量加法形成方面,通過Karastusba算法,僅需使用3個128b乘法即可完成,相對于簡單乘法,在使用Karastusba算法之后,能極大地降低運算量,通常情況下能減少1/4。通過分而治之方式,對N使用相同的策略,能極大縮短模乘運算時間。
圖2 SM2總體架構
充分利用SM2參數,實現對模約減運算的優化。為更好地實現模乘運算,可基于模約減過程,有效結合協議素數,進而能達到這一目的,這主要由于素數P有一定的特殊性。可通過兩種方式,得到模約減結果,一種是采用若干次加法,另一種是借助于減法運算[4]。相比于一般的Montgomery算法,可省掉多次乘法運算,而且性能得到顯著提高。點加以及倍點的改進:針對倍點與點加,在對兩者進行運算時,為避免模逆運算,主要是由于此運算比較耗時,須對坐標進行改變,最終形成雅克比坐標。在SM2協議中,對于倍點而言,需進行四次模減、八次模乘以及六次模加;對于點加而言,需進行六次模減、十一次模乘以及兩次模加。在優化策略方面,主要有以下兩點:針對模乘器,促使其流水線能力得到積極發揮,進而有助于提升運算效率;充分結合點加與倍點,采取有效手段,盡可能減少模乘的相關性。對于模乘器而言,為更好發揮流水線性能,可有效結合運算公式,全面分析數據的相關性,對計算順序進行詳細的設計,促使模乘運算與模加運算沒有數據相關性。點乘的優化:對于簽名而言,在所有的操作中,點乘操作是最耗時的,也就是(x1,y1)=[k]G。針對系數k,以二進制的形式,將其展開為1和0的組合,通過NAF編碼方式,來實現對系數k的編碼,針對點乘系數K,增加其中0的數量,通過這樣的方式,在降低運算次數的同時,也能加快簽名速度。
通過同態加密算法,針對數據密文和明文,可保持兩者之間的同態關系,其中包括諸多算法。對于全同態算法而言,存在一系列的缺點,比如效果不高、速度較為緩慢、有著很大的密文規模等,在此情況下,業務場景將很難適應;對于一系列的單同態算法而言,比如Paillier算法,在實現上較為簡單。單同態算法主要研究的內容是Paillier算法。通常情況下,在Paillier算法中,最為棘手的問題就是模冪問題。模冪運算實質上是大整數的模乘,基于此,對模乘的快速實現進行介紹。圖3為大整數模乘算法,借助FIOS實現方式,有助于FPGA的實現。基于此算法,ω為128,也就是128b乘法運算,由此當s為4、8、12以及16時,在模乘運算位方面,長度依次為512、1 024、1 536以及2 048,結合s不同值的解釋,由此基于乘器長度,能達到動態配置的目的[5]。
在實現過程中,值得一提的是,對結果儲存問題要加以重視。基于1個大整數,若借助于寄存器來保存數據,將會造成資源的大量浪費,在數據寬度加大的同時,針對寄存器,促使其硬件資源顯著增加。因此針對M、A、B以及中間結果,可通過BRAM來進行儲存,BRAM源于FPGA。通過實驗證明,能極大地降低對資源的消耗,大概可降低60%左右,伴隨數據寬度的不斷加大,效果將會變得更突出。總的來講,通過模冪處理器可實現動態配置長度。基于FIOS算法,對其進一步優化,并合理應用BRAM,模冪的運算能高速、高效地完成。
充分結合FPGA芯片,有助于對密碼協處理器的實現,對于該處理器而言,其性能是很強的,具體而言,可為多種密碼功能的實現提供強有力的支持,比如模冪運算、SM2簽名等。在實際應用過程中,當設置不同的密碼之后,能實現對密碼功能的調用。對于數據安全方案而言,通過對該處理器的有效使用,在單芯片方面能提供相應處理方案,基于此,可為產品更好地推廣發揮一定的促進作用。
借助于KC705開發板,促使各算法得以實現,并對方法進行測試,獲取實驗數據。對于KC705而言,是一種開發套件,源于7系列的FPGA,對于FPGA芯片來講,屬于XC7L425T-4,源于Kintex-7系列,該系列屬于中端系列,在Xilinx公司所有的產品中,該產品有著最高的性價比,有助于對產業進行推廣,而且推廣價值是很大的。通過對KC705開發板的使用,基于密碼協處理器,可為密碼運算的實現提供強有力的支持,對3種算法的有關內容進行了優化處理,比如地址分配以及資源共享等,在輸入不一樣的命令碼之后,能實現對有關密碼功能的支持。
本方案的執行有助于對密碼協處理的實現,具體而言,可為多種密碼功能的實現提供強有力的支持,比如模冪運算、SM2簽名等。在實際應用過程中,當設置不同的密碼之后,能實現對密碼功能的調用。在此該處理器中,存在3個密碼模塊,從功能上來分析,模塊之間是沒有聯系的,是相互獨立的;不過從時鐘頻率上來看,不同密碼模塊存在一定的差別,所以需要處理異步時鐘,與此同時,充分結合算法模塊,來分配相應的訪問地址。該處理器實驗結果如表1所示。
圖3 大整數模乘算法
表1 實驗結果
從表中的數據可以得知,在資源占有率以及時鐘頻率方面,這三種算法存在不同。對于SM4-XTS而言,可運行的時鐘頻率為250 MHz,在對1個SM4分組進行處理時,所需的時間為0.004 μs,在加密性能方面,可達到31.5 Gbps;對于SM2 Signature而言,可運行的時鐘頻率為150 MHz,在簽名速度方面,可達到26 062次/s;對于大整數模冪運算而言,可運行的時鐘頻率為66 MHz,完成1次模冪運算,所需的時間為149.3 μs,在速度方面,可達到6 702 次/s。如表2所示,針對此密碼協處理器,列舉了其資源使用情況,在表中LUT為look-up-table的簡稱,DSP是乘法器,皆屬于基本邏輯單元。本方案有效應用了元器件特性,促使各模塊實現效率得到提升。從表2中的數據可以得知,本方案是可行的,不僅能實現高性能算法,而且預留了很多的資源,有助于控制邏輯的實現,比如邏輯調度。
表2 資源使用情況(FPGA)
通過以上的分析可以得知,對于多個S-BOX而言,雖然占用了大部分資源,然而通過對邏輯的控制,能降低復雜度,更加容易采用流水線處理;在流水線被填滿之后,基于部分邏輯電路,能促使運算能力得到積極發揮,極大地提高算法性能。通過實驗得知,本方案是可行的,不僅能實現高性能算法,而且預留了很多的資源,有助于控制邏輯的實現。