• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于兆芯CPU的國密算法硬件加速及應(yīng)用研究

      2019-09-30 01:16:49薛剛?cè)?/span>
      網(wǎng)絡(luò)空間安全 2019年4期
      關(guān)鍵詞:信息安全

      薛剛?cè)?

      摘要:伴隨著云計算、大數(shù)據(jù)等新技術(shù)應(yīng)用的飛速發(fā)展,信息安全問題也愈發(fā)凸顯。密碼學(xué)算法是應(yīng)對信息安全問題的核心技術(shù)和基礎(chǔ)支撐。針對我國的商用密碼算法,實現(xiàn)了一套基于CPU的硬件加速指令(GMI)。文章圍繞著GMI的特點、應(yīng)用加以闡述,希望能夠開發(fā)一套靈活高效的密碼應(yīng)用解決方案。

      關(guān)鍵詞:信息安全;國密算法;硬件加速;GMI

      中圖分類號:TP309????????? 文獻標識碼:A

      1 引言

      隨著互聯(lián)網(wǎng)、物聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)絡(luò)和信息安全事件頻頻發(fā)生,因此信息安全越來越受到世界各國以及各個行業(yè)的廣泛重視。特別是在云計算、大數(shù)據(jù)等新技術(shù)應(yīng)用快速崛起的時代,通過數(shù)據(jù)挖掘技術(shù)往往可以從海量數(shù)據(jù)中獲取關(guān)鍵信息,這對企業(yè)和個人的信息安全都產(chǎn)生了嚴重威脅。

      密碼學(xué)算法是信息安全的核心技術(shù)和基礎(chǔ)支撐,可以說是整個信息安全的靈魂所在。在密碼學(xué)領(lǐng)域,國家也在積極發(fā)展獨立自主的密碼體系,其中應(yīng)用范圍最為廣泛的國產(chǎn)商用密碼(簡稱國密算法)就是我國密碼體系中的重要一環(huán)。

      經(jīng)過多年的發(fā)展,現(xiàn)在支持國密算法的設(shè)備,從小到TPM/TCM的密碼芯片,到兼顧成本與性能的加密卡,再到專用的加密服務(wù)器,可謂種類繁多。但是,這些設(shè)備依然存在著性能欠缺、使用不夠靈活或者成本較高等不足。

      為了探索國密算法應(yīng)用的新途徑,創(chuàng)新應(yīng)用的新模式,上海兆芯集成電路有限公司(簡稱兆芯)實現(xiàn)了基于CPU的安全、靈活、高效的國密算法加速指令—GMI(Guo Mi Instruction)。本文旨在介紹兆芯GMI指令的模式、特點,并探討一些基于GMI的可能應(yīng)用場景。

      2 GMI 和相關(guān)概念

      國密算法是指由國家密碼管理局頒布的一系列密碼學(xué)算法標準,包括SM1、SM2、SM3、SM4、SM7、SM9以及祖沖之密碼算法(ZUC)等一系列的密碼算法。其中,SM1、SM4、SM7以及ZUC屬于對稱加密算法,SM2、 SM9屬于非對稱密碼算法,而SM3是密碼雜湊算法,即常見的哈希算法。

      目前,支持國密算法的TPM/TCM等芯片類設(shè)備,往往受限于成本而性能較低;性能較高的加密卡需要高性能的計算機來配合,給用戶帶來了不小的成本壓力。與此同時,經(jīng)過幾代產(chǎn)品的發(fā)展,兆芯CPU的性能有了大幅的提升。為提高密碼學(xué)相關(guān)應(yīng)用的性能,充分利用CPU的計算能力,兆芯提出了使用CPU指令來實現(xiàn)國密算法的構(gòu)想,由此設(shè)計實現(xiàn)了GMI。

      GMI是依據(jù)已經(jīng)公開的國密算法標準而自主設(shè)計實現(xiàn)的一組硬件加速指令集。目前,已經(jīng)實現(xiàn)了兩條CPU指令,分別用于加速國密算法SM3和SM4。其中,SM3常用于計算消息摘要、驗簽數(shù)字簽名、生成與驗證消息認證碼以及產(chǎn)生隨機數(shù),可滿足多種密碼應(yīng)用的安全需求。SM4是分組密碼算法,適用于對稱加解密等密碼應(yīng)用場景。根據(jù)使用場景的不同,SM4又可以有很多的操作模式,GMI支持常見的ECB、CBC、CTR、OFB、CFB五種模式。

      概括來說,得益于CPU的高性能,GMI可以為用戶帶來許多好處。GMI具有三項特性。

      易用性。在傳統(tǒng)的國密算法使用方式中,比較常見的就是通過軟件編程的方式來實現(xiàn)相應(yīng)的密碼算法,通常這都需要進行大量、復(fù)雜的編程。以O(shè)penSSL為例,SM3、SM4的代碼量大概在200~300行左右,但是在將這些密碼算法進行硬件指令化后,原本需要使用數(shù)百行復(fù)雜編碼才可以實現(xiàn)的算法,現(xiàn)在只需要簡單地調(diào)用一條硬件指令即可完成相應(yīng)的操作。這明顯地簡化了操作的復(fù)雜度,為用戶帶來了極大的便利性。GMI SM3/4的具體指令代碼如表1所示。

      同時,對GMI指令進行了封裝,提供了適合上層應(yīng)用開發(fā)使用的API和庫,便于需要開發(fā)上層應(yīng)用的用戶使用。

      安全性。無論是在運行之前,還是在運行過程中, 軟件最常遇到的攻擊就是被非法篡改。使用軟件編程實現(xiàn)的密碼算法也同樣會受到這類威脅。然而,硬件則不會存在被篡改的風險, 因此在將密碼算法硬件固化后, 也就消除了密碼算法被非法篡改的風險,留給攻擊者的攻擊面也相應(yīng)減小。在密碼算法實現(xiàn)硬件化后,不僅用于實現(xiàn)算法的代碼量會變少,而且調(diào)用、使用密碼算法的代碼量也會隨著減少,這就意味著在程序中引入Bug的幾率也會隨之大大降低。這些都大大增強了用戶程序的健壯性。

      高效性。將密碼算法硬件化,省去了大量的軟件調(diào)用等系統(tǒng)開銷,可以使密碼算法應(yīng)用獲得極大的性能提升。在將GMI集成到OpenSSL后,借助于OpenSSL的Speed 測試命令,測試了使用GMI和未使用GMI兩種方式下的國密算法的性能(單線程),對比情況如圖1和圖2所示。

      該測試分別對不同長度(16~8192字節(jié))的數(shù)據(jù)塊,進行了SM3摘要計算和SM4-ECB模式的加密計算。從測試結(jié)果的對比可以看出,使用了GMI硬件加速指令后, SM3和SM4的性能較之軟件實現(xiàn)都有了巨大提升,特別是在處理大數(shù)據(jù)塊時,提升尤其顯著。

      3 GMI應(yīng)用

      3.1 SM3的應(yīng)用

      實現(xiàn)了SM3的GMI可用于校驗文件的完整性,確保使用的文件或軟件是沒有被攻擊者篡改過的?,F(xiàn)在比較常見的文件校驗算法有奇偶校驗和CRC校驗,但是這兩種校驗都不具有較強的抗數(shù)據(jù)篡改的能力,對于超過一定位數(shù)的篡改就無力校驗了。然而,由于哈希算法的特點,SM3則可以校驗出任意長度的篡改,而且由于其產(chǎn)生的數(shù)據(jù)摘要長度要更長,因此更難以發(fā)生碰撞,也就更加安全。因此,用戶只需要調(diào)用GMI的SM3指令計算所用到的文件/軟件的摘要值,與文件自帶的校驗值進行比較,就可以檢驗出文件是否被篡改過,從而保證了所用文件/軟件的完整性。

      此外,由于在計算信息摘要時, 用戶所關(guān)心的主要是消息的完整性,而不是機密性,因此在使用性能較低的安全芯片或者加密卡時,可以將計算摘要值的工作交給GMI的SM3指令來完成,以獲取更高的系統(tǒng)性能。

      3.2 SM4的應(yīng)用

      與其他對稱加解密算法一樣,SM4同樣可以用在靜態(tài)數(shù)據(jù)加密、傳輸數(shù)據(jù)加密以及應(yīng)用層的數(shù)據(jù)加密。

      3.2.1 靜態(tài)數(shù)據(jù)加密

      全磁盤加密是對靜態(tài)數(shù)據(jù)加密的一個典型應(yīng)用。顧名思義,全磁盤加密就是對磁盤上的所有數(shù)據(jù)都進行加密存儲。在存儲著個人隱私或商業(yè)機密等敏感信息的計算機設(shè)備丟失或者需要維修時,如果使用了全磁盤加密的保護,就可以避免信息泄露的風險。特別是對于企業(yè)用戶來說,在設(shè)備更新時,如何處理舊硬盤上的敏感數(shù)據(jù)是一個令人棘手的問題。借助于全磁盤加密,只需要將全磁盤加密的加解密密鑰銷毀,即可達到銷毀舊磁盤上敏感數(shù)據(jù)的目的。同時,借助于GMI的加速特性,可以讓全磁盤加密具有更高的性能,大大改善了用戶的使用體驗。此外,在安全可靠的要求下,有些行業(yè)會對加解密算法有要求,比如要求使用SM4算法來加解密系統(tǒng)中的數(shù)據(jù)。在這種情況下,就可以使用GMI的SM4指令替代傳統(tǒng)的純軟件實現(xiàn),不僅能防止算法被篡改,還能提高運算速度,同時還可以滿足政策法規(guī)的合規(guī)要求, 可謂一舉三得。

      3.2.2 傳輸數(shù)據(jù)加密

      另一個對稱加解密的常用領(lǐng)域是對傳輸中的數(shù)據(jù)加以保護。比如在使用HTTPS訪問網(wǎng)站時,在完成最初的密鑰交換后,客戶與Web Server之間就使用對稱加密算法來保護雙方的數(shù)據(jù)傳輸。另外,在云計算領(lǐng)域,保存在云環(huán)境中的數(shù)據(jù)或涉及個人隱私,或涉及企業(yè)商業(yè)機密,用戶對這些數(shù)據(jù)的機密性格外關(guān)心。在這種情況下,就需要在將數(shù)據(jù)加密后再通過網(wǎng)絡(luò)傳輸?shù)皆浦?。這樣,數(shù)據(jù)不僅可以確保云環(huán)境中數(shù)據(jù)的機密性,還可以確保數(shù)據(jù)在網(wǎng)絡(luò)傳輸過程中的機密性。此時,如果能夠在瀏覽器或者云的客戶端支持GMI SM4硬件加速指令,可以滿足用戶對數(shù)據(jù)傳輸?shù)陌踩砸蟆?/p>

      3.2.3 應(yīng)用層數(shù)據(jù)加密

      在應(yīng)用層的數(shù)據(jù)加密中,數(shù)據(jù)庫是一個典型的應(yīng)用場景。眾所周知,常見的數(shù)據(jù)庫都支持一種稱為透明數(shù)據(jù)加密(TDE)的安全特性。這種特性可以將數(shù)據(jù)庫的內(nèi)容整體加密。其中所用到的三個加密中有兩個屬于對稱加密:服務(wù)主密鑰(Service Master Key)和數(shù)據(jù)加密密鑰(Data Encryption Key)。這些都可以利用到GMI SM4的硬件加密指令。

      3.3 結(jié)合密鑰保護的GMI應(yīng)用

      在各種GMI的應(yīng)用里,還有一個影響安全性的重要因素—密鑰本身的安全性。在一些受管制的行業(yè),比如銀行、醫(yī)療健康以及電子商務(wù)都需要使用行業(yè)認可的密鑰管理設(shè)備(比如HSM, Hardware Security Module)來保護用戶的密碼、密鑰等敏感信息。

      密鑰是保證信息安全的基石,密鑰本身的保密性也必須要受到保護,因此要確保密鑰絕對不能以明文的形式出現(xiàn)在內(nèi)存中。為了確保GMI所使用的密鑰的安全,在CPU內(nèi)部實現(xiàn)一段專用空間來存放這些密鑰。這里設(shè)計了一些只有CPU才可以訪問的私有MSR用于保存密鑰,并設(shè)計了一種新的SM4的調(diào)用模式,使得SM4指令可以直接從指定的MSR中找到所需要的Key,而無需再從內(nèi)存中取回。

      盡管CPU內(nèi)的存儲空間有限,但是利用CPU的私鑰(CPU Private Key,CPK),將一些臨時不用的密鑰使用CPK加密后保存在內(nèi)存或NVRAM中,下次使用時再通過GMI Driver從內(nèi)存/NVRAM中取回,既保證了密鑰的安全性,又實現(xiàn)了密鑰存儲空間的擴展性。具體的流程分為幾個步驟。

      (1)在應(yīng)用幾個部署階段

      a)?用戶在外部的密鑰服務(wù)器上生成并存儲一個對稱加密密鑰( Symmetric Wrapping Key,SWK),使用這個對稱加密密鑰加密用戶的私鑰(Private Key),生成一個WPK(Wrapped Private Key),該WPK跟應(yīng)用 image存放在一起。

      b)?使用密鑰導(dǎo)入?yún)f(xié)議將SWK從外部的密鑰服務(wù)器安全的部署到用戶應(yīng)用程序?qū)⒁\行的主機,并使用主機CPU的私鑰(CPK)加密保存在硬盤或者SPI Flash等NVRAM空間。這一步是為了確保操作環(huán)境的安全,可以利用兆芯的TCT可信計算技術(shù),并配合內(nèi)存保護技術(shù)DPR(DMA Protected Region,DPR)/PMR(Protected Memory Region,PMR)來對這一部署過程加以保護。

      (2)在用戶應(yīng)用程序啟動時,CPU會根據(jù)應(yīng)用程序的ID從NVRAM空間找到對應(yīng)的經(jīng)CPK加密過的SWK—CPK(SWK),并加載到CPU的Key MSR中,在調(diào)用SM3指令驗證其完整性后,再使用CPK將其解密,得到SWK,同樣保存在Key MSR中。此時,應(yīng)用程序會收到與該Key MSR對應(yīng)的動態(tài)Handle。

      (3)在應(yīng)用程序運行時,應(yīng)用程序會使用該Handle以及用戶的WPK作為參數(shù)調(diào)用GMI Driver。通過這兩個參數(shù)就可以得到對應(yīng)的SWK,進而調(diào)用GMI的SM4指令就可以對WPK解密,從而得到用戶的私鑰以繼續(xù)完成相關(guān)的操作。最后,在調(diào)用結(jié)束后CPU會自動清除相關(guān)的Key MSR,以清除用戶私鑰, 防止私鑰泄露。

      4 未來工作

      未來還會繼續(xù)豐富GMI的指令集,比如實現(xiàn)對SM2/SM9等國密算法的支持。同時,也會不斷完善現(xiàn)有的GMI指令,比如完善SM4對GCM/XTS等模式的支持,使其具有更高的性能,適應(yīng)更廣泛的應(yīng)用領(lǐng)域。另外,為了方便用戶使用,將GMI逐步適配諸如OpenSSL的主流密碼應(yīng)用平臺,積極推廣國密算法的應(yīng)用。

      5 結(jié)束語

      本文以信息安全中的關(guān)鍵技術(shù)——密碼算法的硬件加速實現(xiàn)為主線,介紹了兆芯基于CPU的GMI國密算法硬件加速指令的模式、特點以及應(yīng)用,并特別描述了一種結(jié)合密鑰保護的GMI應(yīng)用場景,希望能幫助用戶開發(fā)出更加靈活高效的安全應(yīng)用解決方案。最后,介紹了兆芯GMI的未來的工作,希望能夠支持更多的國密算法指令和更豐富的運算模式,為用戶提供更高性能、更高安全性的產(chǎn)品。

      參考文獻

      [1]?Hari Tadepalli. Intel QuickAssist Technology with Intel Key Protection Technology in Intel Server Platforms Based on Intel Xeon Processor Scalable Family[EB/OL]. https://www.intel.com/content/www/us/en/architecture-and-technology/key-protection-technology-white-paper.html. 2017.

      [2]?鄧宇珊.探究云計算之完全問題[J].網(wǎng)絡(luò)空間安全, 2018(9):78~81.

      [3]?徐樹民,等.國產(chǎn)算法安全芯片與市場應(yīng)用[J].信息安全與通信保密,2012(2):36~38.

      [4]?李芳芳.國產(chǎn)密碼行業(yè)應(yīng)用的初步研究和探索[J].金融科技時,2016(9):28~33.

      [5]?蔡成杭.支持國產(chǎn)密碼算法的OpenSSL設(shè)計實現(xiàn)及應(yīng)用[J].信息安全研究,2018(2):115~132.

      [6]?王良田.數(shù)據(jù)存儲及碼流數(shù)據(jù)傳輸中的國密算法安全應(yīng)用[J].電子世界,2019(1):161~163

      猜你喜歡
      信息安全
      《信息安全與通信保密》征稿函
      基于三級等級保護的CBTC信號系統(tǒng)信息安全方案設(shè)計
      《信息安全研究》2018年(第4卷)總目次
      信息安全專業(yè)人才培養(yǎng)探索與實踐
      計算機網(wǎng)絡(luò)信息安全及防護策略
      電子制作(2018年12期)2018-08-01 00:47:58
      保護信息安全要滴水不漏
      高校信息安全防護
      談電子檔案的信息安全
      保護個人信息安全刻不容緩
      WebSocket技術(shù)在信息安全系統(tǒng)中的應(yīng)用
      九江县| 昭平县| 新闻| 深泽县| 陆丰市| 礼泉县| 美姑县| 民和| 会宁县| 花莲市| 伊金霍洛旗| 临澧县| 类乌齐县| 板桥市| 宽城| 韶关市| 临武县| 通江县| 廉江市| 华蓥市| 澄迈县| 沧源| 聂荣县| 崇阳县| 桐庐县| 喀喇沁旗| 延寿县| 泊头市| 嘉峪关市| 万全县| 宣威市| 桐乡市| 东台市| 涞源县| 福鼎市| 会宁县| 静乐县| 九龙县| 清河县| 阿鲁科尔沁旗| 柯坪县|