寇文龍,張宇陽,李鳳華,3,曹曉剛,李佳旻,王竹,耿魁
(1.西安電子科技大學網絡與信息安全學院,陜西 西安 710071;2.中國科學院信息工程研究所,北京 100093;3.中國科學院大學網絡空間安全學院,北京 100049)
隨著“互聯網+”戰略的不斷推進,互聯網經濟與各行各業不斷融合,各種新業態和新型服務模式不斷涌現,尤其是云服務、電子商務、電子支付、共享經濟、大數據中心、社交網絡的迅猛發展,直接導致了用戶數量和業務種類均大幅增長。
隨著企業上云和數字化轉型升級的深化,數據正在成為企業的核心資產之一,在生產過程中發揮越來越大的價值。數據安全也成為廣大企業和云服務商共同關注的話題之一。數據顯示,2020—2021 年數據泄露的平均總成本增加了10%,業務損失占數據泄露總成本的38%。采用人工智能、安全分析和加密是降低數據泄露總成本的三大因素,與沒有大量使用這些工具的公司相比,它們為公司節省了125 萬~149 萬美元[1]。Facebook 被曝涉及數億用戶手機號碼數據泄露,事件原因是服務器沒有設置保護措施[2]。根據2018 年全國性國密普查結果顯示,所選取的等保三級以上系統中使用密碼服務的僅占24.77%[3]。因此,業務系統的安全性直接影響著業務的發展,密碼服務是保障業務安全的核心基礎。
互聯網服務面臨著業務類型多樣、資源需求個性化、服務多輪交互、在線鏈接高并發、請求隨機交叉、峰值差異大等巨大挑戰。因此亟須實現對各類服務資源的高效差異化管理與動態利用,形成服務資源按需供給能力。在業務系統實現按需服務的同時,密碼服務也應根據業務系統的特點和需求進行動態配置、管理和調度,實現提供密碼按需服務的能力,從而滿足互聯網服務峰值差異大、高并發、需求個性化的業務特點和需求。然而,現有的密碼系統、密碼設備、各類密碼計算資源尚不能根據需求進行動態配置、管理和調度,不具備滿足差異化動態按需密碼服務的能力。
針對上述問題,本文提出了一種高效的密碼作業按需調度方案,為接入服務體系的用戶和設備提供動態可擴展的密碼服務資源,為密碼服務設備提供設備運行監測、負載均衡、作業高效流轉等服務,優化密碼設備的服務供給能力,保障密碼服務的高效性和可靠性。本文的主要貢獻如下。
1) 提出了基于優化熵值法的密碼設備歸一化評價模型。該模型通過分析密碼設備的運行狀態和服務供給能力,可客觀公平地反映密碼設備之間的差異,實現對密碼服務能力的描述和動態監測,為保障密碼服務質量的可靠性和實現密碼服務能力的可描述性提供支撐。
2) 提出了適用于不同密碼服務需求的密碼作業調度策略。該策略可適應密碼服務在服務質量、服務效率等方面的差異化需求,并結合密碼資源重構策略,實現對密碼資源的差異化配置與調度,滿足典型密碼服務場景的服務需求。
3) 實現了高性能的密碼按需服務系統,并在實際生產環境中部署和測試。測試結果表明,所提方案在滿足差異化密碼服務需求的同時,能較好地保證密碼服務調度的高效性和可靠性,加解密吞吐率可達56 Gbit/s。
本節主要從設備服務能力評價體系和資源調度算法兩方面入手,對相關研究進行論述。
設備服務能力評價是指通過獲取設備部分或者全部所需的指標數據,并根據算法對指標數據進行處理,得到一個評價結果。
焦揚等[4]提出了基于馬爾可夫鏈的六維服務質量(QoS,quality of service)評價體系,有效滿足了云環境中QoS 可靠性評估需求。但是該方案沒有考慮不同服務之間的關聯關系,無法對多種服務組合的場景進行服務能力評價。Wang 等[5]提出了一種基于信任和隱私感知的云服務評估模型,引入客戶滿意度等參數來動態更新信任值,確保實際的服務質量。然而,該方案僅依靠信任值來度量服務質量,缺乏其他如用戶滿意度等必要的參考信息,影響服務質量評價的準確性。Jiang 等[6]提出了一種基于云模型的綜合服務質量定性評價方法,利用高斯云變換將屬于不同指標的概念組合在一起來評價服務質量。但是由于對指標概念劃分粒度較粗,可能會導致指標概念被不正確劃分,從而影響服務質量評價的準確性。
林闖等[7]認為QoS 的評價指標僅反映了技術層面的性能,而忽略了用戶的主觀因素,提出用戶體驗質量(QoE,quality of experience)的概念,綜合考慮服務、用戶和環境層面的影響因素,直接反映了用戶對服務的認可程度。陽小蘭等[8]提出了一種基于博弈優化調度的篩選加權評價方法,通過用戶QoE 評價等多個指標的博弈,能夠準確地評價資源調度的有效性和準確性。但是該方案缺乏對服務質量的詳細描述,導致資源匹配精度不高。Li 等[9]采用主觀檢驗方法歸納出一個多QoS 度量的多元函數,來評估視頻流業務的整體QoS。Song 等[10]提出了一種以用戶為中心的客觀QoE 評價模型,綜合考慮了技術、內容、上下文、用戶等影響因素。文獻[9-10]所提方案過于依賴用戶的主觀體驗,會降低服務質量評估的準確性。
現有的設備服務能力評價方法都是根據部分或全部QoS、QoE 或者其他參數指標,針對一種特定的服務進行評價,缺少對不同設備提供若干種差異化服務組合能力的評價,尤其是密碼服務,通常包括簽名、驗簽、哈希、加密、解密等多種不同的密碼算法運算功能。
資源調度算法一直是學術界的研究熱點,陸續形成了幾類典型的調度方案和架構。
Prassanna 等[11]針對突發性工作負載的問題,提出了基于閾值的多目標模因優化輪詢調度算法。但該方案需要對其平衡性和負載的分散性進行優化以提高算法的效率。Patel 等[12]提出了一種增強型負載均衡Min-Min 算法,將完成時間最長的任務分配給適當的資源。Grandl 等[13]提出了Altruistic 調度方法,優先考慮將部分完成時間長的任務搶占完成時間短的任務的資源。文獻[12-13]所提方案結合了Min-Min 算法和Max-Min 算法的優點,但是動態調整能力不足,無法根據任務和負載的實時變化來調整調度方案。蘇命峰等[14]基于多重貪婪算法設計了MQoS 云資源調度算法,綜合量化云任務執行時間等5 個指標,取得云計算系統最大效用。但該方案中指標權重是一個預設值,不能根據服務需求進行動態調整。馬小晉等[15]提出一種基于改進模擬退火算法的虛擬機調度優化方法,在資源利用率、執行成本、負載均衡3 個方面達到平衡。但該方案主要支持的是云中科學應用的實現,限制了算法的應用范圍。Jana等[16]提出了一種改進的粒子群優化算法,專注于調度算法中平均調度長度和執行成功率2 個關鍵目標,有效地提高了云計算的業務性能。但該方案成本較高,需要耗費大量的內存,并且在某些情況下會關閉部分關鍵的虛擬機。Jiang 等[17]提出了一種基于動態一致性哈希的集群負載均衡算法,有效地降低了服務響應時間,提高了系統的吞吐量。然而,該方案中性能權重、負載參數等指標需要根據實驗數據進行設定,不利于算法在其他應用場景下進行擴展。
李莉等[18]設計了一種同時支持非關聯任務和關聯任務的負載均衡作業調度算法,能實現高速的密碼處理吞吐率。然而,該方案從密碼算法層面對作業調度進行優化,缺少對用戶密碼服務需求的考慮。Li 等[19]提出了一種基于虛擬化技術的密碼資源管理框架,給出了一種加密服務虛擬機的動態遷移方法,可以實現密碼服務虛擬機的調度和遷移。但是該方案是對靜態密碼服務資源的調度,沒有考慮密碼服務資源的動態變化,不能很好地滿足用戶差異化的密碼服務需求。
現有的資源調度算法對密碼資源指標的影響考慮較少,而密碼服務調度需要以密碼資源指標為主,綜合考慮網絡帶寬、系統負載、內存使用情況等多種影響因素。此外,還需要根據密碼服務需求的變化動態調整調度策略,保證密碼服務的高效性和可靠性。
為了提高整個密碼設備的服務性能和服務質量,在業務系統提供服務時,密碼資源應根據業務系統的特點和需求進行動態配置、管理和調度。如圖1 所示,典型的密碼服務模型包括密碼服務應用、密碼服務調度和密碼設施。其中,密碼服務應用主要包括各種使用密碼服務的應用和系統;密碼服務調度主要包括運行狀態管理與監控、密碼服務需求分析與調度和密碼設備配置管理;密碼設施包括密鑰管理、密碼設備集群和密碼設備重構管理。密碼服務以密碼設施為基礎,能提供基本的密碼算法運算功能,密碼服務調度在密碼設施的基礎上,將面向應用場景的密碼功能進行整合,對密碼服務應用提供易部署、易使用的密碼服務,同時結合運行狀態管理與監控,合理地調度密碼設備集群中的密碼設備,提高密碼服務的服務質量和效率。

圖1 密碼服務模型
本文著重對密碼服務系統中調度系統展開研究,密碼服務調度系統模型如圖2 所示。其中,密碼服務需求分析對密碼服務需求進行解析,結合密碼設備的屬性、運行狀態以及資源使用情況等信息,對密碼設備進行歸一化評價,在評價結果的基礎上通過計算密碼設備的負載距離來生成密碼作業調度策略,如果需要重構,則生成密碼作業遷移策略和密碼設備配置策略,并反饋密碼服務供給能力;密碼作業管理根據密碼作業遷移策略和密碼作業調度策略對密碼作業進行管理。

圖2 密碼服務調度系統模型
為了客觀公平地反映密碼設備之間的差異,實現對密碼服務能力的描述,為密碼服務調度提供支撐,本節提出一種基于優化熵值法的密碼設備評價方法。
首先,定義m個密碼設備的集合為C={c1,c2,… ,cm},在n項資源評價指標下的原始采集數據矩陣為

其中,xij表示第i個密碼設備中第j項資源的資源使用率,Xi=(x1i,x2i,…,xmi)T,i=1,…,n表示第i項資源在m個密碼設備中的資源使用率。
隨后,對Xi進行線性歸一化處理

得到標準化數據矩陣為

根據密碼設備的自身特點,本文選擇密碼設備的密碼運算資源使用率和網絡帶寬資源利用率作為密碼服務資源的評價指標。其中,密碼運算資源使用率以密碼設備的I/O 吞吐率為衡量指標,包括各種密碼算法的運算速度;網絡帶寬資源利用率則以密碼設備整體的I/O 吞吐率和最大網絡帶寬的比值作為衡量指標。
針對在線業務高效調度、資源動態配置的需求,在基于優化熵值法的歸一化評價方法的基礎上,綜合生成密碼作業調度策略。首先通過密碼設備評價方法得出服務能力評價系數,在此基礎上根據密碼服務請求期望和當前密碼服務資源使用情況,生成密碼作業調度策略,同時配合密碼設備動態重構,擴展了密碼服務能力,解決了密碼資源的動態擴展和單一設備利用率不高的問題。
密碼按需服務調度策略首先對密碼服務需求進行解析,將密碼服務需求轉化為密碼服務應用對完成密碼作業所需密碼資源的期望,結合當前密碼設備運行狀態,對能否滿足密碼服務需求進行評估。若滿足需求則生成密碼作業調度策略,計算密碼設備的期望負載距離,將密碼作業調度到具體的密碼設備;若不滿足需求則生成密碼設備配置策略,對指定的密碼設備進行重構,待重構完成后,更新密碼設備資源屬性,生成新的密碼作業調度策略。
密碼服務需求由密碼服務需求標識符、密碼服務類型、密碼服務有效期、密碼服務最大速率、密碼服務最小速率、密碼算法標識符、密碼算法參數、工作模式等參數組成。各項參數描述如下。
1) 密碼服務需求標識符。密碼服務請求的唯一標識符。
2) 密碼服務類型。密碼服務請求的具體服務類型,為加密、解密、簽名、驗簽、哈希等一種或幾種服務的組合。
3) 密碼服務有效期。密碼服務請求的密碼服務時間,可以表示為起始時間和終止時間,或者起始時間和持續時間。
4) 密碼服務最大速率。密碼服務請求的最大需求,包括最大加密速度(bit/s 或byte/s)、最大解密速度(bit/s 或byte/s)、最大簽名速度(次/秒)、最大驗簽速度(次/秒)、最大哈希速度(bit/s 或byte/s)。
5) 密碼服務最小速率。密碼服務請求的最小需求,包括最小加密速度(bit/s 或byte/s)、最小解密速度(bit/s 或byte/s)、最小簽名速度(次/秒)、最小驗簽速度(次/秒)、最小哈希速度(bit/s 或byte/s)。
6) 密碼算法標識符。密碼服務請求所使用的算法類型。
7) 密碼算法參數。密碼算法的參數信息包括簽名算法曲線參數和密鑰長度、哈希算法分組長度、分組密碼算法的密鑰長度和分組長度等。
8) 工作模式。密碼算法所用的模式,例如商密SM4 算法包括電子密碼模式(ECB,electronic codebook mode)、密碼分組鏈接模式(CBC,cipher block chaining mode)、密文反饋模式(CFB,cipher feedback mode)、輸出反饋模式(OFB,output feedback mode)和計數器模式(CTR,counter mode)5 種模式。
定義Ei為對第i種密碼服務資源的需求期望,表示密碼服務最大速率和密碼服務最小速率的均值,采用此期望可以減少密碼設備出現滿載或過載的可能性,提高密碼服務的可靠性。
定義SATij為第i個密碼設備中第j種密碼服務資源的密碼作業飽和度,xij為當前第i個密碼設備中第j種密碼服務資源的速率,為當前第i個密碼設備中第j種密碼服務資源的理論最大速率,則SATij可表示為

定義aj為隸屬函數,表示為

定義disti為密碼設備的期望負載距離,表示為。若disti≥ 0,則說明第i個密碼設備滿足密碼服務需求,可將密碼作業調度至該密碼設備進行密碼算法運算;若disti< 0,則說明第i個密碼設備無法滿足密碼服務需求。
按需服務的密碼作業調度策略步驟如下。
Step1解析密碼服務請求,計算密碼服務請求的需求期望,轉到Step2。
Step2獲取每個密碼設備的密碼運算資源使用率和網絡帶寬資源利用率,計算每個密碼設備的服務能力評價系數并排序,將對應的密碼設備索引值依次放入密碼設備候選隊列,轉到Step3。
Step3判斷密碼設備候選隊列是否還有可選擇的密碼設備,若沒有則轉到Step4,否則計算當前選擇的密碼設備的期望負載距離,若期望負載距離大于或等于0,則將該密碼服務請求中的密碼作業添加到當前密碼設備的密碼作業隊列中,轉到Step5;若期望負載距離值小于0,則當前密碼設備無法滿足密碼服務需求,將該設備從密碼設備候選隊列中移除,轉到Step3。
Step4生成密碼設備配置策略,對指定的密碼設備進行密碼資源重構,待重構完成后,更新密碼設備的密碼資源配置,轉到Step2。
Step5生成密碼服務調度策略,轉到Step1。
通過分析可知,密碼服務資源按需調度方案的算法復雜度主要由基于優化熵值法的密碼設備歸一化評價算法的復雜度和密碼作業調度算法的復雜度兩部分組成。調度方案整體的復雜度與密碼設備的數量、密碼資源評價指標項的數量和單位時間內密碼服務請求的數量有關。
基于優化熵值法的密碼設備歸一化評價模型的算法復雜度主要為計算服務能力評價系數的復雜度,也就是模型中數據矩陣的量級,為O(m+n),其中m為密碼設備的數量,n為資源評價指標的數量。密碼作業調度算法需要對用戶的期望和當前的密碼計算資源進行匹配,對單個密碼服務請求進行分配的算法復雜度為O(logm),則密碼作業調度算法的復雜度為O((k+m)logm),其中k為單位時間內密碼服務請求的數量。
在實際應用中,密碼設備的數量總是遠小于單位時間內密碼服務請求的數量,密碼資源評價指標的數量也有限,因此本文所提調度方案的算法復雜度在最優情況下為O(k),最差情況下為O(klogm) 。
密碼服務調度系統的安全性以密碼計算資源池的安全性為基礎。首先,密碼服務需求數據和密碼作業數據中不包含任何諸如密鑰之類的敏感信息,保證了業務數據通信的安全性。其次,密碼服務調度系統在和密碼服務應用進行通信時,基于身份認證機制保證密碼服務應用的合法性,防止非法或者惡意應用對密碼服務系統的訪問。最后,密碼服務調度系統的需求解析和密碼作業調度可通過不同的數據通路與密碼服務應用通信,實現業務數據和請求數據的分離,數據安全性更高。
為驗證本文所提密碼服務資源按需調度方案的有效性,設計實現了密碼按需服務原型系統,整體架構如圖3 所示。該系統對外提供簽名、驗簽、摘要、加解密、密鑰交換、證書操作等通用密碼服務,并根據不同密碼服務需求動態調度、管理密碼設備。

圖3 密碼按需服務原型系統架構
具體來說,密碼服務需求分析模塊根據密碼服務需求動態生成密碼設備配置需求、密碼作業調度策略,為密碼計算單元柔性重構模塊和密碼作業管理模塊提供支撐;密碼作業管理模塊根據密碼作業、密碼計算單元中密碼資源的屬性和使用情況,動態調度密碼設備中的密碼計算單元進行密碼計算,實現密碼作業虛擬化、按需調度與管理;密碼設備運行狀態管理模塊根據密碼作業調度信息和密碼設備返回的密碼設備運行狀態,生成新的密碼資源使用情況;密碼設備配置管理模塊對密碼設備以及密碼計算單元的各類屬性和使用情況進行精細化、細粒度管理;密鑰管理模塊對整個密碼服務系統的對稱密鑰、非對稱密鑰和證書進行管理;密碼計算單元柔性重構模塊根據密碼設備配置管理模塊下發的重構和配置指令對密碼計算單元中的密碼芯片、芯片中的塊、知識產權(IP,intellectual property)核的數據傳輸帶寬、數據緩沖區大小、密碼算法類型、密碼算法速率、密碼算法參數、工作模式等相關屬性進行細粒度的重構與配置。
密碼服務資源按需調度算法的主要流程如圖4所示,結合密碼服務需求分析、密碼作業管理、密碼設備配置管理和密碼計算單元柔性重構等模塊來生成密碼服務調度策略。密碼服務資源按需調度算法主要步驟說明如下。

圖4 密碼服務資源按需調度算法的主要流程
Step1密碼服務需求分析模塊接收來自密碼應用提出的密碼服務需求,轉到Step2。
Step2密碼設備運行狀態管理模塊獲取各密碼計算單元的運行狀態、密碼算法處理速率和網絡吞吐率等信息,根據本文提出的基于優化熵值法的歸一化評價方法,計算密碼計算單元的密碼服務能力評價系數,轉到Step3。
Step3對所有密碼計算單元的服務能力評價系數排序,從服務能力評價系數最高的密碼計算單元開始計算期望負載距離,轉到Step4。
Step4根據密碼計算單元的期望負載距離判斷是否有密碼計算單元滿足需求,如果沒有,則向密碼應用返回無法滿足需求,轉到Step1;否則向密碼應用返回滿足需求。然后繼續判斷是否需要重構,如果不需要重構,轉到Step6;如果需要重構,則首先生成密碼作業遷移策略,并發送給密碼作業管理單元,完成重構之前的密碼作業遷移工作,轉到Step5。
Step5根據新的密碼設備配置生成密碼資源配置策略,并發送給密碼計算單元柔性重構模塊,轉到Step6。
Step6生成密碼作業調度策略,轉到Step1。
密碼計算單元柔性重構流程如圖5 所示。當密碼服務需求分析模塊判斷當前的密碼資源配置無法滿足密碼服務需求時,會生成密碼設備配置策略。其中,密碼計算單元柔性重構算法如算法1 所示,具體步驟說明如下。

圖5 密碼計算單元柔性重構流程
算法1密碼計算單元柔性重構算法

Step1密碼服務需求分析模塊在解析密碼應用的密碼服務需求時,如果現有的密碼資源配置不能滿足需求,則根據密碼服務需求的密碼算法類型、密碼算法參數、密碼算法性能要求等指標生成密碼設備配置策略,并發送給密碼設備配置管理模塊,轉到Step2。
Step2密碼服務配置管理模塊解析密碼設備配置策略,根據配置策略中的密碼算法類型、密碼算法性能要求等指標生成重構指令,并將重構指令發給指定的密碼計算單元柔性重構模塊,轉到Step3。
Step3密碼計算單元柔性重構模塊在收到重構指令之后,根據重構指令的要求對密碼計算單元進行重構,并等待重構完成,轉到Step4。
Step4密碼計算單元柔性重構模塊將重構結果返回給密碼設備配置管理單元,轉到Step5。
Step5密碼設備配置管理單元將所有密碼計算單元柔性重構模塊返回的重構結果進行匯總并分析,生成新的密碼設備配置信息,然后將新的密碼設備配置信息返回給密碼服務需求分析模塊。
實驗環境拓撲如圖6 所示,包括應用服務器、調度服務器和密碼設備。其中,應用服務器共5 臺,模擬不同密碼服務應用發送的密碼服務請求;調度服務器1 臺,部署本文所提調度方案;密碼設備1 臺,共8 個現場可編程門陣列(FPGA,field programmable gate array)密碼計算單元,提供密碼算法運算功能。應用服務器和調度服務器之間通過100 Gbit/s 交換機連接,調度服務器和密碼設備之間通過100 Gbit/s電纜線連接。

圖6 實驗環境拓撲
在密碼算法方面,本文采用商用密碼算法SM2、SM3、SM4,提供SM2 算法簽名、SM2 算法驗簽、SM3 算法哈希和SM4 算法ECB 模式加解密等密碼運算服務。在FPGA 上實現3 種密碼設備配置,每種配置的算法IP 核個數如表1 所示。

表1 3 種密碼設備配置的算法IP 核個數
本文所實現的SM2、SM3、SM4 算法的單核性能以及3 種密碼設備配置的性能如表2 所示。

表2 SM2、SM3、SM4 算法的單核性能以及3 種密碼設備配置的性能
應用服務器發送密碼服務請求至調度服務器,經過調度算法的計算,將密碼作業調度至密碼設備中的FPGA 密碼計算單元,待密碼作業完成后將結果返回給應用服務器。每個應用服務器發送的請求數從20 增加到100,調度服務器端分別采用文獻[12]提出的增強型負載均衡Min-Min 算法和文獻[17]提出的基于動態一致性哈希的集群負載均衡算法與本文所提調度算法進行對比,分別測試3 種調度算法的密碼作業最大完成時間、單位時間可服務請求數量和FPGA 密碼計算單元平均負載。3 種調度算法進行對比實驗時,應用服務器發送的密碼服務請求數量和種類完全相同,并運行多次取平均值。
應用服務器發送的密碼服務請求從以下3 個維度出發進行設計。
1) 密碼服務請求中的密碼服務類型從實際應用場景出發,包含一種或多種密碼服務,以適用不同場景的密碼服務需求。例如,SM2 算法簽名和SM3算法哈希適用于電子發票或電子簽章等應用;SM4算法ECB 模式加解密,適用于視頻加密等應用。
2) 密碼服務請求中的密碼服務最大速率和最小速率,根據測試環境中的密碼設備配置的性能以及FPGA 密碼計算單元的數量等因素進行設計,范圍覆蓋SM2 算法簽名、SM2 算法驗簽、SM3 算法哈希和SM4 算法ECB 加解密等密碼服務性能的最大值,以檢驗調度算法中密碼作業遷移和密碼設備重構算法的可靠性和效率。
3) 密碼服務請求中密碼服務有效時長從分鐘到小時不等,以檢驗調度算法的穩定性。
隨著密碼服務請求數量的增加,單個密碼作業的最大完成時間的變化情況如圖7 所示。從圖7 中可以看出,隨著密碼服務請求數量的增加,3 種調度算法的密碼作業最大完成時間都在增加,當密碼服務請求數量較少時,3 種調度算法的差異不太明顯,但是隨著密碼服務請求數量的增加,FPGA 計算單元的負載逐漸增大,另外2 種調度算法由于不考慮密碼作業遷移和FPGA 計算單元動態配置,密碼作業排隊時間增加顯著,與本文調度算法的差距越來越大。

圖7 單個密碼作業的最大完成時間的變化情況
隨著密碼服務請求數量的增加,單位時間可服務請求數量的變化情況如圖8 所示。從圖8 中可以看出,隨著密碼服務請求數量的增加,3 種調度算法的單位時間可服務請求數量都在增加,當密碼服務請求數量較少時,3 種調度算法的差異不太明顯,都能夠滿足大部分的密碼服務請求,但是隨著密碼服務請求數量的增加,3 種調度算法的單位時間可服務請求數量均達到峰值,由于本文調度算法實現了密碼作業遷移和FPGA 計算單元動態配置,使單位時間可服務請求數量要高于另外2 種調度算法。

圖8 單位時間可服務請求數量的變化情況
本文調度算法、增強型負載均衡Min-Min 算法和基于動態一致性哈希的集群負載均衡算法隨著密碼服務請求數量的增加FPGA 負載率的變化情況如圖9~圖11 所示。從圖9 中可以看出,本文調度算法在盡量減少密碼作業遷移和FPGA 計算單元重構的前提下,將密碼作業優先調度到同一個FPGA計算單元,因此在密碼服務請求數量較少時只有一個FPGA 計算單元有負載,并且隨著密碼服務請求數量的增加,同時工作的FPGA 計算單元數量也隨之增加。從圖10~圖11 中可以看出,其他2 種算法的FPGA 負載相對比較均衡,在密碼服務請求數量較大的情況下,每個FPGA 的負載均較高,當新的密碼服務請求到來時,由于不考慮密碼作業遷移和FPGA 計算單元動態配置,FPGA 計算單元剩余計算能力不足以滿足密碼服務需求。

圖9 本文調度算法FPGA 負載率

圖10 增強型負載均衡Min-Min 算法FPGA 負載率

圖11 基于動態一致性哈希的集群負載均衡算法FPGA 負載率
此外,在應用本文調度策略時,密碼應用的密碼服務請求在經過密碼服務需求分析單元的計算后即生成密碼作業調度策略,密碼作業調度單元在接收到密碼應用發送的密碼作業時,根據密碼作業調度策略,可直接將密碼作業分配給對應的FPGA計算單元,時間和空間復雜度均為O(1),FPGA 計算單元SM4 算法ECB 模式加解密運算的吞吐率即密碼作業調度的吞吐率。因此實驗所用的8個FPGA計算單元均執行SM4 算法ECB 模式加解密運算,且負載率均接近于100%時,每個FPGA 計算單元的吞吐率均為7 Gbit/s,密碼服務系統整體吞吐率為56 Gbit/s,實現了密碼計算能力的線性增長。
從實驗結果可以看出,本文所提密碼按需服務方案在不增加新的硬件密碼計算設備的基礎上,通過調度服務系統與密碼計算單元的柔性重構相結合的方式,能很好地滿足不同場景下的密碼服務需求。目前學術界和產業界推出的密碼機,如SJJ1524服務器密碼機只能通過增加硬件設備的方式來提高密碼服務的性能,SJJ1601 云加密機雖然支持虛擬化,實現一臺物理實體密碼機提供多臺虛擬密碼機的服務,但是多臺虛擬密碼機的整體性能沒有超過一臺物理實體密碼機的上限,不能滿足不同場景的密碼服務需求。
本文提出了一種高效的密碼服務資源按需調度方案。通過使用基于優化熵值法的密碼設備歸一化評價模型實現對密碼服務能力的描述和動態監測;同時,提出適用不同需求的密碼作業調度策略,并結合密碼資源重構策略,實現對密碼資源的差異化配置與調度;實現將動態可擴展的密碼服務資源提供給任何接入服務體系的用戶和設備。在實際生產環境的部署和測試表明,所提方案在滿足差異化的密碼服務需求的同時,能較好地保證密碼服務調度的高效性和可靠性,加解密吞吐率可達56 Gbit/s。