亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于多引擎并發(fā)的密碼服務(wù)軟件架構(gòu)*

        2022-11-04 02:23:22馬占飛李克見史國振
        關(guān)鍵詞:引擎機(jī)制服務(wù)

        馬占飛 李克見 史國振

        1.內(nèi)蒙古科技大學(xué)包頭師范學(xué)院,包頭市 014030

        2.內(nèi)蒙古科技大學(xué),包頭市 014010

        3.北京電子科技學(xué)院,北京市 100700

        0 引言

        隨著我國電子政務(wù)內(nèi)網(wǎng)及安全應(yīng)用系統(tǒng)的逐步推廣和部署,安全應(yīng)用系統(tǒng)面臨著高并發(fā)、高吞吐率的性能需求。 國內(nèi)有很多學(xué)者針對密碼硬件模塊采用并行處理機(jī)制[1,2]性能優(yōu)化,而對于整個(gè)應(yīng)用系統(tǒng)的性能瓶頸往往體現(xiàn)在軟件方面,密碼服務(wù)軟件是為安全應(yīng)用系統(tǒng)提供密碼服務(wù)不可少的密碼處理模塊,負(fù)責(zé)接受和處理上層安全應(yīng)用系統(tǒng)的密碼服務(wù)軟件的隨機(jī)性、多樣性的調(diào)用請求,為安全應(yīng)用系統(tǒng)提供數(shù)據(jù)的機(jī)密性、完整性和不可篡改性保護(hù)。 密碼服務(wù)軟件的數(shù)據(jù)處理架構(gòu)性能直接影響著安全應(yīng)用系統(tǒng)在多用戶下并發(fā)響應(yīng)速率,對數(shù)據(jù)包的響應(yīng)效率要求較高。

        單引擎的密碼服務(wù)架構(gòu)的密碼處理模塊已經(jīng)不能滿足上層安全應(yīng)用系統(tǒng)的多用戶、高并發(fā)性能需求,是限制安全應(yīng)用系統(tǒng)在多用戶場景下數(shù)據(jù)處理性能的關(guān)鍵因素之一。

        從密碼服務(wù)提供者角度分析,影響密碼服務(wù)性能的有三個(gè)方面,一是密碼應(yīng)用接口通信性能;二是密碼服務(wù)軟件的數(shù)據(jù)處理架構(gòu)性能;三是密碼算法的性能。 其中密碼服務(wù)軟件的數(shù)據(jù)處理架構(gòu)性能是最易也是提升空間較大的關(guān)鍵方面,是本文研究的主要內(nèi)容,本文重點(diǎn)分析密碼服務(wù)軟件面臨安全應(yīng)用系統(tǒng)高性能需求環(huán)境下,如何提供多線程并發(fā)[3,4]的密碼服務(wù),引入多包處理機(jī)制和無鎖隊(duì)列[5,6]技術(shù)進(jìn)行優(yōu)化,提出多引擎機(jī)制的軟件架構(gòu),利用共享鎖處理機(jī)制和無鎖隊(duì)列技術(shù)進(jìn)行性能研究對比,優(yōu)化密碼服務(wù)軟件的數(shù)據(jù)包處理性能,從而更好地滿足上層安全應(yīng)用系統(tǒng)對密碼服務(wù)的性能需求。

        本文組織架構(gòu)如下:第1 節(jié)介紹密碼服務(wù)方軟件架構(gòu);第2 節(jié)介紹高性能隊(duì)列,無鎖隊(duì)列技術(shù);第3 節(jié)描述了提議的方案設(shè)計(jì)和已完成工作,包括多引擎架構(gòu)設(shè)計(jì)、多包處理機(jī)制和引擎可配置;第4 節(jié)描述實(shí)驗(yàn)及測試結(jié)論;第5 節(jié)本文總結(jié)了相關(guān)工作和未來的改進(jìn)方向。 前兩節(jié)屬于本文的預(yù)備知識,之后章節(jié)為本文的新工作內(nèi)容。

        1 單引擎密碼服務(wù)架構(gòu)

        單引擎密碼服務(wù)由算法初始化、應(yīng)用容器初始化、任務(wù)接受、任務(wù)處理等模塊組成。 密碼服務(wù)軟件的軟件架構(gòu)如圖1 所示。

        圖1 單引擎密碼服務(wù)架構(gòu)框圖

        算法初始化主要配置和初始化密碼算法庫操作。 密碼服務(wù)軟件為上層安全應(yīng)用系統(tǒng)提供偽隨機(jī)數(shù)、對稱加密、非對稱加密、摘要運(yùn)算、消息認(rèn)證碼運(yùn)算、簽名驗(yàn)簽運(yùn)算等密碼服務(wù)。 具體的密碼運(yùn)算提供由算法庫來實(shí)現(xiàn),密碼算法庫實(shí)現(xiàn)方式可分為軟實(shí)現(xiàn)和硬實(shí)現(xiàn),軟實(shí)現(xiàn)指軟件編程實(shí)現(xiàn)的密碼算法組件,常見的開源算法庫有OpenSSL、Crypto++、MbedTLS 等,硬實(shí)現(xiàn)指調(diào)用一些加密硬件部件或加密芯片進(jìn)行運(yùn)算,常見的硬件部件有USBKEY 加密鑰匙、PCIE 密碼卡、服務(wù)器密碼機(jī)等。

        應(yīng)用容器初始化負(fù)責(zé)對應(yīng)用策略相關(guān)配置和初始化操作,應(yīng)用容器是為安全應(yīng)用系統(tǒng)提供密碼服務(wù)軟件的最小單元,安全應(yīng)用系統(tǒng)通過打開應(yīng)用容器使用容器內(nèi)所配置的算法和密鑰,密碼服務(wù)軟件支持多應(yīng)用容器配置,每個(gè)應(yīng)用容器的算法和密鑰是按容器分割,不同的應(yīng)用容器配用的算法、應(yīng)用密鑰不同。 密碼服務(wù)軟件可按照應(yīng)用場景不同進(jìn)行配置應(yīng)用容器,可配置對稱算法、非對稱算法、簽名驗(yàn)簽、摘要運(yùn)算、消息驗(yàn)證碼運(yùn)算等為安全應(yīng)用系統(tǒng)提供密碼服務(wù)。

        任務(wù)處理線程負(fù)責(zé)處理任務(wù)隊(duì)列中的任務(wù)數(shù)據(jù)包,依次將任務(wù)數(shù)據(jù)包取出、解析、處理、返回結(jié)果。

        2 無鎖隊(duì)列技術(shù)

        密碼服務(wù)軟件架構(gòu)中設(shè)計(jì)輸入緩存機(jī)制,輸入緩存隊(duì)列是影響密碼服務(wù)引擎處理性能的關(guān)鍵因素。 隊(duì)列(queue)是一種先進(jìn)先出(FIFO)的線性表,只允許在表的一端進(jìn)行插入,在另一端進(jìn)行刪除元素。 針對作業(yè)排隊(duì)處理的多線程并發(fā)的軟件架構(gòu)中,隊(duì)列是程序設(shè)計(jì)中經(jīng)常使用的一種數(shù)據(jù)結(jié)構(gòu),隊(duì)列在多線程操作一般模式是基于互斥鎖與信號量想結(jié)合實(shí)現(xiàn),生產(chǎn)者和消費(fèi)者在操作隊(duì)列之前,先獲得共享鎖再操作,完成操作之后將鎖釋放,但這種共享鎖的機(jī)制效率不高,使用不當(dāng)很容易產(chǎn)生死鎖的情況,無鎖隊(duì)列是一種非互斥鎖的并發(fā)數(shù)據(jù)結(jié)構(gòu),相比共享鎖效率高且避免死鎖現(xiàn)象,無鎖隊(duì)列主要是通過原子操作或細(xì)粒度鎖來實(shí)現(xiàn)的一種支持多線程并發(fā)的高效線程安全隊(duì)列[7]。

        無鎖隊(duì)列處理模型按照生產(chǎn)者和消費(fèi)者模型的對應(yīng)關(guān)系可分為:單生產(chǎn)者-單消費(fèi)者模型(一對一)、多生產(chǎn)者-單消費(fèi)者模型(多對一)、單生產(chǎn)者-多消費(fèi)者模型(一對多)、多生產(chǎn)者-多消費(fèi)者模型(多對多)共四種模型。

        (1) 單生產(chǎn)者-單消費(fèi)者模型

        圖2 一對一隊(duì)列模型

        (2) 多生產(chǎn)者-單消費(fèi)者模型

        圖3 多對一隊(duì)列模型

        (3) 單生產(chǎn)者-多消費(fèi)者模型

        黎永蘭母親李玉說,林雪川在事后第一時(shí)間隱瞞了真相,試圖以意外來掩飾故意,這是不悔罪的表現(xiàn),從事發(fā)到被抓,三天的空檔時(shí)間,林雪川也有機(jī)會(huì)將不利的證據(jù)毀滅,這都應(yīng)該罪加一等。

        圖4 一對多隊(duì)列模型

        (4)多生產(chǎn)者-多消費(fèi)者模型

        圖5 多對多隊(duì)列模型

        以上是無鎖隊(duì)列的四種處理模型,無鎖隊(duì)列技術(shù)實(shí)現(xiàn)有很多方式,其性能也各有不同,常見的無鎖隊(duì)列主要是通過比較再交換(CAS Compare and Swap)、增加指定的值(FAA Fetch and add)等原子操作或Retry-Loop 細(xì)粒度的鎖機(jī)制實(shí)現(xiàn)。

        3 多引擎可配置架構(gòu)設(shè)計(jì)

        3.1 多引擎架構(gòu)設(shè)計(jì)

        本文基于圖1 所示的單引擎密碼服務(wù)軟件架構(gòu)進(jìn)行性能優(yōu)化,針對單引擎的任務(wù)處理架構(gòu)提出一種多引擎處理機(jī)制架構(gòu),處理引擎由隊(duì)列和處理線程組成,每一個(gè)接受隊(duì)列綁定一個(gè)處理線程,這樣的隊(duì)列與處理線程綁定的結(jié)構(gòu)組成一個(gè)密碼引擎(Crypto Engine),接受線程將收到的數(shù)據(jù)包采用順序輪循的調(diào)度方式投入到處理引擎中,處理引擎將待處理數(shù)據(jù)處理完畢,根據(jù)數(shù)據(jù)包頭信息將處理結(jié)果發(fā)送返回。 如圖6 所示多引擎并行處理機(jī)制,接受線程將任務(wù)分別投入不同的引擎中處理并返回結(jié)果。

        圖6 多引擎并行處理架構(gòu)

        多引擎密碼服務(wù)主要由接受任務(wù)模塊、緩存隊(duì)列、處理線程等功能模塊組成。

        為提高數(shù)據(jù)傳輸效率和穩(wěn)定性,密碼引擎中設(shè)計(jì)輸入緩存機(jī)制-緩存隊(duì)列,緩存隊(duì)列的是為了匹配數(shù)據(jù)傳輸速率和密碼服務(wù)處理速率,提高數(shù)據(jù)通信帶寬,在多線程并發(fā)場景下,緩存隊(duì)列的入隊(duì)和出隊(duì)性能是影響密碼服務(wù)處理性能的關(guān)鍵。 密碼服務(wù)軟件接受n個(gè)任務(wù)請求后,按照順序輪詢放入每個(gè)密碼引擎的緩存隊(duì)列中,對應(yīng)的處理線程模塊分別處理緩存隊(duì)列的任務(wù)并將結(jié)果發(fā)送返回,從而實(shí)現(xiàn)密碼服務(wù)的并行性處理,提高密碼服務(wù)的處理性能,滿足上層安全應(yīng)用系統(tǒng)高并發(fā)高性能的需求。

        3.2 多包處理機(jī)制

        軟件支持并發(fā)訪問的數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)可以基于互斥鎖或無鎖機(jī)制,無鎖隊(duì)列的應(yīng)用與平臺和編譯器依賴緊密,在實(shí)際的應(yīng)用場景中,無鎖機(jī)制是不能完全代替有鎖機(jī)制的應(yīng)用,因此本文針對基于有鎖隊(duì)列下單包處理機(jī)制,提出一種基于有鎖隊(duì)列的多包處理機(jī)制,也是一種多線程并行處理[8-10]的軟件架構(gòu)的性能優(yōu)化項(xiàng)。

        在生產(chǎn)環(huán)境中廣泛使用生產(chǎn)者和消費(fèi)者模型,生產(chǎn)者在生產(chǎn)的同時(shí),消費(fèi)者可以進(jìn)行消費(fèi),通常使用互斥鎖保證數(shù)據(jù)同步。 當(dāng)多線程并發(fā)設(shè)計(jì)中線程互斥鎖的開銷較大且頻繁出現(xiàn)鎖競爭,會(huì)導(dǎo)致線程等待情況,CPU 不停地中斷,使得軟件整體性能下降。 為盡可能降低線程鎖爭用帶來的影響,可以運(yùn)用多包處理的設(shè)計(jì)思路即每次獲取到競爭鎖,獲取盡可能多的數(shù)據(jù)包,降低所競爭的頻度,從而提升優(yōu)化軟件架構(gòu)性能。

        密碼服務(wù)軟件中競爭鎖情況主要體現(xiàn)在接受線程與多個(gè)處理線程之間,接受線程將收到的合法請求數(shù)據(jù)包通過輪詢方法放入隊(duì)列中,隊(duì)列中存在數(shù)據(jù)包時(shí)將觸發(fā)處理線程工作,處理線程將數(shù)據(jù)取出隊(duì)列,任務(wù)隊(duì)列是一個(gè)臨界區(qū),為了提升密碼服務(wù)軟件的處理性能,降低接受線程與處理線程競爭線程鎖的概率,本文提出多包處理機(jī)制,即處理線程每次獲取到鎖之后,取出盡可能多的數(shù)據(jù)包,之后再循環(huán)處理多包,相比頻繁獲取鎖,多包處理機(jī)制更加節(jié)省系統(tǒng)開銷,這種多包處理機(jī)制在高并發(fā)、高吞吐量情況下,密碼服務(wù)軟件處理任務(wù)的性能有明顯提升。

        3.3 引擎可配置

        多引擎密碼服務(wù)軟件性能提升的關(guān)鍵在于處理引擎合理配置,如何更加合理設(shè)計(jì)配置是本文要解決的問題,多引擎是基于多線程并發(fā)思路來提升服務(wù)軟件架構(gòu)的性能,但處理線程或引擎?zhèn)€數(shù)并不是越多越好[11]。 在系統(tǒng)資源有限的情況下,需要在服務(wù)軟件的多引擎性處理性能和系統(tǒng)硬件配置能之間把握平衡,線程過多反而會(huì)影響軟件本身的性能。

        考慮到系統(tǒng)資源的有限性,為更加合理分配系統(tǒng)資源,滿足安全應(yīng)用系統(tǒng)響應(yīng)需求,需要對應(yīng)用系統(tǒng)的調(diào)用性能進(jìn)行評估,本文重點(diǎn)關(guān)注應(yīng)用系統(tǒng)的關(guān)鍵的業(yè)務(wù)處理流程,通常這些調(diào)用頻繁的業(yè)務(wù)處理流程,是評估應(yīng)用系統(tǒng)業(yè)務(wù)處理的性能的關(guān)鍵。 通過模擬應(yīng)用系統(tǒng)關(guān)鍵業(yè)務(wù)流程的高并發(fā)調(diào)用業(yè)務(wù)場景,評估出對密碼服務(wù)軟件的處理引擎配置數(shù)。 例如網(wǎng)關(guān)密碼設(shè)備內(nèi)部關(guān)鍵的密碼業(yè)務(wù)為認(rèn)證協(xié)商,認(rèn)證協(xié)商流程的性能是應(yīng)用系統(tǒng)用戶認(rèn)證接入響應(yīng)指標(biāo),我們可針對認(rèn)證協(xié)商流程進(jìn)行多線程并發(fā)調(diào)用進(jìn)行密碼服務(wù)軟件的性能調(diào)優(yōu),即評估出密碼服務(wù)軟件的合理配置引擎?zhèn)€數(shù)。

        研究表明,密碼服務(wù)軟件的處理引擎?zhèn)€數(shù)的配置對性能處理有明顯的提升,如圖7 所示,通過配置密碼服務(wù)軟件的處理引擎?zhèn)€數(shù)來實(shí)現(xiàn)性能的可擴(kuò)展性,從而更好地滿足應(yīng)用系統(tǒng)的性能需求。

        4 實(shí)驗(yàn)測試

        本文實(shí)驗(yàn)測試使用本地Socket 編程實(shí)現(xiàn)應(yīng)用接口與密碼服務(wù)之間的通信,密碼算法使用開源OpenSSL 庫實(shí)現(xiàn),使用Boost C++標(biāo)準(zhǔn)庫中的無鎖隊(duì)列方案,是一種基于原子操作的無鎖隊(duì)列(Lock-free),基于多引擎并行處理機(jī)制實(shí)現(xiàn)了多引擎并發(fā)的密碼服務(wù)軟件。 通過實(shí)驗(yàn)對比,較單引擎處理架構(gòu)的密碼服務(wù)軟件的數(shù)據(jù)處理性能有大幅度提高。

        4.1 測試環(huán)境

        在終端測試機(jī)上使用C/C++語言實(shí)現(xiàn)發(fā)包程序和多引擎密碼服務(wù)軟件進(jìn)行數(shù)據(jù)處理性能測試對比。 終端測試機(jī)配置為四核Inter(R)Core(TM) i3-2120 CPU @3.30GHZ 處理器,操作系統(tǒng)為Linux Ubuntu 14.04,其內(nèi)核版本為Linux version 3.13.0,使用的編譯器為GCC Version 4.8.4。

        發(fā)包程序與多引擎密碼服務(wù)軟件之間使用TCP 網(wǎng)絡(luò)通信方式收發(fā)任務(wù)數(shù)據(jù)包,多引擎密碼服務(wù)軟件可通過配置文件設(shè)置處理引擎?zhèn)€數(shù),算法運(yùn)算通過調(diào)用OpenSSL 開源加密庫實(shí)現(xiàn),發(fā)包軟件執(zhí)行多線程、多通道方式進(jìn)行發(fā)包操作,多引擎密碼服務(wù)軟件分別運(yùn)用無鎖隊(duì)列、多包處理機(jī)制測試1KB 數(shù)據(jù)AES 加密、SHA256摘要運(yùn)算和64Bytes 數(shù)據(jù)RSA 簽名性能并對比。

        (1) 配置不同引擎?zhèn)€數(shù)條件下,多引擎密碼服務(wù)軟件運(yùn)用無鎖隊(duì)列機(jī)制實(shí)現(xiàn),測試對稱加密、摘要運(yùn)算性能并對比;

        (2) 配置不同引擎?zhèn)€數(shù)條件下,多引擎密碼服務(wù)軟件分別運(yùn)用單包處理、多包處理機(jī)制和無鎖隊(duì)列實(shí)現(xiàn),測試RSA 簽名的性能對比。

        4.2 測試結(jié)果及分析

        (1) 密碼服務(wù)軟件分別配置1 引擎、2 引擎、4 引擎、8 引擎、10 引擎,測試對稱加密和摘要運(yùn)算的性能,測試明文數(shù)據(jù)長度為1KB,測試結(jié)果如圖7 所示。

        圖7 不同引擎配置密碼服務(wù)性能

        由圖7 可以看出配置不同的引擎?zhèn)€數(shù),處理1KB 數(shù)據(jù)進(jìn)行AES256 對稱加密和SHA256 運(yùn)算的性能有明顯的提升。 但是并不是配置越多的處理引擎?zhèn)€數(shù)性能就越高,受限于測試平臺的硬件配置,因此本文提出可配置處理引擎數(shù)量的思路,更加合理地利用系統(tǒng)資源,使得整體密碼服務(wù)軟件處理能力得到更好體現(xiàn)。

        (2) 密碼服務(wù)軟件分別配置1 引擎、2 引擎、4 引擎、8 引擎、10 引擎,測試RSA 簽名性能,簽名數(shù)據(jù)長度為64 Bytes,結(jié)果如圖8 所示。

        由圖8 中可以看出,密碼服務(wù)軟件進(jìn)行簽名處理性能隨著配置處理引擎的個(gè)數(shù)的增加而提升。 使用無鎖隊(duì)列的性能明顯比使用共享鎖性能高出75%-150%左右,使用共享鎖情況下多包處理機(jī)制明顯比單包處理機(jī)制性能要高。通過有鎖隊(duì)列和無鎖隊(duì)列性能對比,無鎖隊(duì)列對于整個(gè)軟件架構(gòu)處理性能的提升效果明顯。

        圖8 不同引擎?zhèn)€數(shù)的RSA 簽名性能

        5 結(jié)束語

        本文基于單線程業(yè)務(wù)處理架構(gòu)設(shè)計(jì)提出一種多引擎并行處理機(jī)制軟件架構(gòu),結(jié)合無鎖隊(duì)列技術(shù)實(shí)現(xiàn)了基于多引擎處理、多線程并發(fā)的軟件處理架構(gòu),該架構(gòu)與傳統(tǒng)架構(gòu)性能有較高提升,能夠更好地滿足安全應(yīng)用系統(tǒng)的密碼業(yè)務(wù)性能需求,為安全應(yīng)用系統(tǒng)提供高效的密碼服務(wù),滿足安全應(yīng)用系統(tǒng)對于多算法,多任務(wù)流交叉情況下密碼服務(wù)請求的快速響應(yīng)。 通過實(shí)驗(yàn)測試該密碼服務(wù)的軟件架構(gòu)的可行性,并給出了一個(gè)可配置性能的多引擎高并行的密碼服務(wù)軟件架構(gòu)設(shè)計(jì),如何更加合理智能化配置處理引擎?zhèn)€數(shù)是本課題下一階段要研究的問題。

        猜你喜歡
        引擎機(jī)制服務(wù)
        服務(wù)在身邊 健康每一天
        服務(wù)在身邊 健康每一天
        服務(wù)在身邊 健康每一天
        自制力是一種很好的篩選機(jī)制
        文苑(2018年21期)2018-11-09 01:23:06
        藍(lán)谷: “涉藍(lán)”新引擎
        商周刊(2017年22期)2017-11-09 05:08:31
        招行30年:從“滿意服務(wù)”到“感動(dòng)服務(wù)”
        商周刊(2017年9期)2017-08-22 02:57:56
        破除舊機(jī)制要分步推進(jìn)
        無形的引擎
        河南電力(2015年5期)2015-06-08 06:01:46
        基于Cocos2d引擎的PuzzleGame開發(fā)
        注重機(jī)制的相互配合
        四虎国产精品免费久久| 日韩av一区在线播放| 岛国av一区二区三区| 一区二区三区手机看片日本韩国| av一区二区三区观看| 日韩有码在线观看视频| 久久99精品久久久久麻豆| 亚洲熟妇丰满多毛xxxx| 曰韩人妻无码一区二区三区综合部| 亚洲旡码a∨一区二区三区| 人人妻人人澡人人爽精品欧美| 91亚洲国产成人aⅴ毛片大全| 尤物yw午夜国产精品视频 | 国产91成人自拍视频| 狠色人妻丝袜中文字幕| 一区二区精品国产亚洲| 天堂网站一区二区三区| 亚洲a∨无码一区二区三区| 激情综合色五月丁香六月亚洲| 亚洲最大日夜无码中文字幕| 亚洲中文字幕久久精品蜜桃| 久久精品国产亚洲片| 亚洲中文字幕永久网站| 亚洲国产成人va在线观看天堂| 国产最新女主播福利在线观看| 久久理论片午夜琪琪电影网| 中文亚洲欧美日韩无线码| 美女扒开内裤让男生桶| 国产精品国产三级国产专播| 中文字幕一区二区三区在线乱码| 亚洲乱码av一区二区蜜桃av| 老熟妇乱子伦牲交视频| 99国产精品自在自在久久| 吃奶摸下的激烈视频| 一本一道波多野结衣av中文 | 国产av综合网站不卡| 国产太嫩了在线观看| 国产女主播喷水视频在线观看| 国产精品刺激好大好爽视频| 亚洲AV日韩Av无码久久| 中文无字幕一本码专区|