《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于硬件加密卡技術(shù)的RSA加密引擎的局部封裝
基于硬件加密卡技術(shù)的RSA加密引擎的局部封裝
來源:微型機(jī)與應(yīng)用2011年第20期
徐 敏
(國(guó)網(wǎng)電力科學(xué)研究院, 江蘇 南京 210003)
摘要: 目前主流的VPN是通過SSL協(xié)商進(jìn)行認(rèn)證的,其在調(diào)用Openssl的加密引擎過程中帶來一個(gè)問題,即進(jìn)行數(shù)據(jù)加密所使用的公鑰不是自身的密鑰,于是加密引擎不僅要有對(duì)私鑰解密進(jìn)行硬件實(shí)現(xiàn),還要有對(duì)公鑰加密實(shí)現(xiàn)原有算法調(diào)用的技術(shù)。本文介紹了目前主流的Openssl實(shí)現(xiàn)硬件RSA加密引擎僅對(duì)私鑰解密數(shù)據(jù)進(jìn)行調(diào)用,而對(duì)于公鑰加密數(shù)據(jù)不調(diào)用的局部封裝方法,有著重要的實(shí)用價(jià)值。
Abstract:
Key words :

摘  要: 目前主流的VPN是通過SSL協(xié)商進(jìn)行認(rèn)證的,其在調(diào)用Openssl的加密引擎過程中帶來一個(gè)問題,即進(jìn)行數(shù)據(jù)加密所使用的公鑰不是自身的密鑰,于是加密引擎不僅要有對(duì)私鑰解密進(jìn)行硬件實(shí)現(xiàn),還要有對(duì)公鑰加密實(shí)現(xiàn)原有算法調(diào)用的技術(shù)。本文介紹了目前主流的Openssl實(shí)現(xiàn)硬件RSA加密引擎僅對(duì)私鑰解密數(shù)據(jù)進(jìn)行調(diào)用,而對(duì)于公鑰加密數(shù)據(jù)不調(diào)用的局部封裝方法,有著重要的實(shí)用價(jià)值。
關(guān)鍵詞: VPN;SSL協(xié)商;Openssl引擎;RSA加密

    目前,國(guó)家電網(wǎng)公司信息內(nèi)外網(wǎng)邊界的各類業(yè)務(wù)接入對(duì)象已經(jīng)越來越多地采用多種接入方式。傳統(tǒng)的內(nèi)網(wǎng)專線模式已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足日益增長(zhǎng)的辦公需要。隨著智能電網(wǎng)的普及,電網(wǎng)內(nèi)部專線資源也逐漸對(duì)外網(wǎng)的接入提出了迫切的需求。因此對(duì)滿足內(nèi)外網(wǎng)數(shù)據(jù)安全交互的VPN技術(shù)提出了更高的要求。Openssl以其開源、高效、安全的加密方式在數(shù)據(jù)加密的過程中發(fā)揮了巨大作用。但是由于SSL協(xié)議的特性,公鑰將會(huì)在服務(wù)器和客戶端直接傳遞,即進(jìn)行數(shù)據(jù)加密所使用的公鑰是由對(duì)方傳遞來的,而不是自身的密鑰。這樣也帶來一個(gè)問題,傳統(tǒng)openssl加密引擎必須實(shí)現(xiàn)對(duì)于RSA引擎的局部調(diào)用,即只對(duì)需要RSA私鑰解密的數(shù)據(jù)進(jìn)行硬件引擎的調(diào)用,而對(duì)于RSA公鑰加密的數(shù)據(jù)采用原來的軟加密方式不經(jīng)過硬件引擎調(diào)用。
1 硬件RSA加密引擎主要技術(shù)
1.1 Openssl硬件加密引擎封裝技術(shù)[1]

  Openssl硬件引擎(Engine)能夠使用戶比較容易地將自己的硬件加入到Openssl中去,替換其提供的軟件算法。一個(gè)Engine提供了密碼計(jì)算中各種計(jì)算方法的集合,它用于控制Openssl的各種密碼計(jì)算。引擎機(jī)制的目的是為了使Openssl能夠透明地使用第三方提供的軟件加密卡或者硬件設(shè)備進(jìn)行加密。換句話說就是對(duì)Openssl進(jìn)行了一種“欺騙”,對(duì)于指定的一種算法,Openssl會(huì)自動(dòng)用引擎內(nèi)的方法對(duì)其實(shí)現(xiàn)加解密,然后默認(rèn)其是由該算法進(jìn)行加密的,而對(duì)于引擎內(nèi)的具體實(shí)現(xiàn)不去關(guān)心。因此可以對(duì)引擎進(jìn)行自定義式的實(shí)現(xiàn),比如用硬件加密卡接口對(duì)其進(jìn)行數(shù)據(jù)的加解密等,從而實(shí)現(xiàn)硬件加密卡與軟件數(shù)據(jù)流之間的交互。
1.2 RSA加密技術(shù)[2]
    RSA算法是一種非對(duì)稱密碼算法。所謂非對(duì)稱,就是指該算法需要一對(duì)密鑰,使用其中一個(gè)加密,而需要用另一個(gè)才能解密。RSA的算法涉及三個(gè)參數(shù):n、e1、e2。其中,n是兩個(gè)大質(zhì)數(shù)p、q的積,n的二進(jìn)制表示鑰所占用的位數(shù),就是所謂的密鑰長(zhǎng)度。e1和e2是一對(duì)相關(guān)的值,e1可以任意取,但要求e1與(p-1)×(q-1)互質(zhì);再選擇e2,要求(e2×e1)mod((p-1)*(q-1))=1。(n及e1),(n及e2)就是密鑰對(duì)。RSA加解密的算法完全相同,設(shè)A為明文,B為密文,則:A=B^e1 mod n;B=A^e2 mod n;e1和e2可以互換使用,即:A=B^e2 mod n;B=A^e1 mod n。
2 RSA硬件加密引擎局部封裝技術(shù)
2.1 RSA加密引擎[3]

    RSA加密引擎是在vpn進(jìn)行身份認(rèn)證SSL協(xié)議握手時(shí)對(duì)私鑰解密部分進(jìn)行硬件加密卡的調(diào)用,從而提高設(shè)備數(shù)據(jù)處理的效率。由于證書只能存放于加密卡內(nèi)無法取出,可以做到一人一卡從而大大增加設(shè)備的安全性和防黑客攻擊的能力。如圖1所示,vpn采用Openssl框架進(jìn)行加解密運(yùn)算,用戶通過硬件加密key專用接口或通用CSP接口,使用硬件加密key對(duì)數(shù)據(jù)進(jìn)行加解密,而不是采用Openssl默認(rèn)的軟加密方式進(jìn)行加解密。從而可以對(duì)程序的安全性有更好的保障,黑客在沒有獲得加密key的情況下,無法對(duì)數(shù)據(jù)進(jìn)行加解密運(yùn)算,也就保證了程序在應(yīng)對(duì)黑客攻擊的過程中更加具有安全性。

2.2 傳統(tǒng)加密引擎封裝方法[4]
    傳統(tǒng)加密引擎封裝主要通過指定一個(gè)加密算法,對(duì)其進(jìn)行替換處理,用來“欺騙”Openssl,例如圖2所示采用AES128算法進(jìn)行替換,每當(dāng)Openssl需要進(jìn)行加解密并且判斷得知所采用的算法是AES128算法后,會(huì)自動(dòng)放棄使用軟件加解密的方式。而通過接口調(diào)用硬件中的加解密函數(shù),由于Openssl本身并不知道硬件中所采用的算法究竟是什么算法,因此相當(dāng)于對(duì)Openssl進(jìn)行了某種意義上的欺騙。Openssl默認(rèn)該硬件加密卡采用了AES128算法進(jìn)行了加解密,但是實(shí)際上采用的也許是用戶自定義的算法,從而實(shí)現(xiàn)了對(duì)AES128算法的替換。具體流程如圖2所示。

2.3 只封裝私鑰的RSA加密引擎
    在實(shí)際運(yùn)用過程中,由于公私鑰不是同一臺(tái)電腦產(chǎn)生的,在vpn中客戶端使用的公鑰加密的公鑰是來自于服務(wù)端,因此在硬件key中不可能預(yù)先保存公鑰信息,對(duì)于公鑰加/解密不能一并用硬件引擎實(shí)現(xiàn)。由于Openssl是通過識(shí)別AES128算法來進(jìn)行對(duì)硬件引擎的調(diào)用,其本身并不能識(shí)別出此次加/解密所用的密鑰是公鑰或是私鑰,因此公私鑰判斷并調(diào)用不同運(yùn)算的過程只能在引擎封裝中實(shí)現(xiàn)。在引擎加密初始化時(shí)需要聲明如下:
     name_rsa.rsa_pub_enc = ossl_rsa_meth->rsa_pub_enc;
     name _rsa.rsa_pub_dec = ossl_rsa_meth->rsa_pub_dec;
其中ossl_rsa_meth->rsa_pub_enc表示openssl自身的公鑰加密算法,即不通過調(diào)用硬件引擎的軟加密算法,name_rsa.rsa_pub_enc表示該硬件引擎所要采用的公鑰加密算法,第一行代碼連起來的作用解釋為將Openssl自身的公鑰加密算法賦值給該硬件引擎所要采用的公鑰加密算法。通過此次賦值,硬件再次調(diào)用公鑰加密算法時(shí),實(shí)際上又再次調(diào)用了軟加密方法,即相當(dāng)于對(duì)硬件加密引擎也進(jìn)行了一次“欺騙”,重新回到主程序調(diào)用硬件加密引擎前的狀態(tài)。第二行代碼與第一行代碼作用相似,只不過是將公鑰加密變?yōu)楣€解密的算法。具體流程如圖3所示。

 

 

3 實(shí)驗(yàn)結(jié)果
    本次實(shí)驗(yàn)服務(wù)器性能如下:linux 64位操作系統(tǒng)、1 000 MB以太網(wǎng)卡、4 GB內(nèi)存、E5300@2.60 GHz雙核CPU、高速PCI加密卡。
    本次實(shí)驗(yàn)客戶機(jī)性能如下:Windows xp32位操作系統(tǒng)、1 000 MB以太網(wǎng)卡、4 GB內(nèi)存、M520@2.4 GHz雙核CPU、高速加密USB key。
    實(shí)驗(yàn)數(shù)據(jù)如表1所示,采用硬件RSA加密方式可以既安全又快速地完成SSL握手階段。如表2所示,在大規(guī)模海量客戶端接入時(shí)采用硬件RSA加密方式的優(yōu)勢(shì)十分明顯。

    通過硬件實(shí)現(xiàn)vpn會(huì)話過程中的加解密具有快速、安全、抗攻擊等優(yōu)點(diǎn),但是傳統(tǒng)的硬件封裝技術(shù)只能對(duì)整體算法進(jìn)行替換封裝,對(duì)于vpn中公私鑰不是同一套密鑰的情況,傳統(tǒng)的封裝方法顯然不能滿足要求,因此對(duì)硬件加密引擎進(jìn)行局部封裝。本文提出的方法只封裝私鑰加解密部分,而對(duì)于公鑰加解密部分則重新調(diào)用原有軟加密算法進(jìn)行加解密,實(shí)現(xiàn)了加密引擎封裝的靈活可靠性,并很好地解決了vpn中公私鑰分離的難點(diǎn),對(duì)用硬件加密卡實(shí)現(xiàn)數(shù)據(jù)加密的VPN技術(shù)有著重要的實(shí)用價(jià)值。
參考文獻(xiàn)
[1] 陳宏標(biāo). 超長(zhǎng)距離光傳輸系統(tǒng)設(shè)計(jì)[D]. 武漢:華中科技大學(xué),2006.
[2] 朱柯嘉,楊青松,徐科,等.一種RSA算法的新型ASIC實(shí)現(xiàn)[J].復(fù)旦大學(xué)學(xué)報(bào):自然科學(xué)版,2004,43(1):16-20.
[3] RIVEST R L.A method for obtaining digital signatures and public-key cryptosystems[D]. Communications of the ACM,1978,12.
[4] 宋磊,羅其亮,羅毅,等.電力系統(tǒng)實(shí)時(shí)數(shù)據(jù)通信加密方案[J].電力系統(tǒng)自動(dòng)化,2004(14):76-81.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲国产精品久久久久久女王 | 99国产精品一区| 国产丝袜一区二区| 国产精品男gay被猛男狂揉视频| 欧美伦理一区二区| 欧美精品在线极品| 欧美国产在线电影| 欧美激情第二页| 欧美精品色一区二区三区| 欧美多人爱爱视频网站| 久久夜色精品国产| 久久综合网络一区二区| 久久综合久久综合这里只有精品 | 夜夜嗨av一区二区三区四区| 亚洲乱亚洲高清| 99国产精品国产精品久久| 亚洲精品一区二区在线| 日韩亚洲欧美精品| 一区二区久久久久久| 一区二区三区不卡视频在线观看| 9色精品在线| 亚洲在线免费| 欧美一级片一区| 久久久久国产精品厨房| 久久青草欧美一区二区三区| 久久另类ts人妖一区二区| 老巨人导航500精品| 欧美777四色影视在线| 欧美激情免费在线| 欧美日韩国产综合一区二区| 欧美三级在线播放| 国产精品一区二区在线| 国产日韩欧美亚洲| 黑人一区二区三区四区五区| 在线免费观看成人网| 亚洲精品久久久一区二区三区| 日韩午夜电影| 亚洲女同同性videoxma| 久久国产手机看片| 亚洲美女网站| 亚洲欧美日本另类| 久久久久久久久久久久久女国产乱| 久久人人爽人人爽爽久久| 欧美成人免费va影院高清| 欧美日韩免费在线观看| 国产欧美日本一区二区三区| 狠狠入ady亚洲精品经典电影| 亚洲国内在线| 亚洲一区二区日本| 亚洲第一视频| 一区二区日本视频| 欧美在线一区二区三区| 免费观看久久久4p| 国产精品v欧美精品v日韩精品 | 久久国产一区二区| 一本大道久久a久久精二百| 午夜精品福利在线| 老牛国产精品一区的观看方式| 欧美日本一区二区视频在线观看| 国产精品一区二区三区免费观看| 在线观看91精品国产麻豆| 99这里有精品| 久久精品国产清自在天天线| 中文精品视频一区二区在线观看| 久久精品一区二区三区四区| 欧美日韩国产美| 国产亚洲成人一区| 一区二区免费看| 久久精品国产欧美激情| 亚洲一级电影| 另类图片国产| 国产女精品视频网站免费| 亚洲激情视频在线播放| 香港成人在线视频| 一区二区高清视频| 狂野欧美激情性xxxx欧美| 国产精品久久久久久户外露出| 一区二区三区自拍| 亚洲专区欧美专区| 99视频一区二区三区| 久久久久久久999精品视频| 欧美午夜激情小视频| 精品动漫3d一区二区三区| 亚洲一区在线直播| 一本综合精品| 免费av成人在线| 国产精品一区二区三区久久| 亚洲精品三级| 亚洲黄色成人久久久| 久久国产一区二区三区| 欧美三级视频在线播放| 亚洲国产精品一区| 久久av在线看| 欧美在线一区二区三区| 欧美亚洲第一页| 亚洲日本欧美| 亚洲人成人一区二区三区| 久久久久综合| 国产精品一区二区三区成人| 亚洲作爱视频| 99视频精品| 欧美黑人在线观看| 狠狠操狠狠色综合网| 亚洲欧美日本另类| 亚洲欧美99| 国产精品国产三级国产普通话蜜臀| 亚洲日本va午夜在线电影| 亚洲国产一区二区视频| 久久香蕉国产线看观看av| 国产欧美日韩一级| 亚洲一区观看| 亚洲欧美日韩中文播放| 欧美视频在线播放| 99精品免费视频| 亚洲天堂网站在线观看视频| 欧美日本精品一区二区三区| 91久久精品久久国产性色也91| 久久精品亚洲热| 久久综合伊人77777蜜臀| 狠狠综合久久av一区二区小说 | 久久激情网站| 久热这里只精品99re8久| 激情久久久久久| 亚洲国产三级在线| 欧美成人综合| 亚洲国产福利在线| 亚洲精品免费一区二区三区| 美女精品在线观看| 亚洲国产成人久久综合一区| 亚洲日本va午夜在线电影| 欧美电影在线观看| 亚洲片区在线| 一区二区精品| 国产精品美女久久福利网站| 亚洲一区二区在线| 久久久91精品| 在线 亚洲欧美在线综合一区| 亚洲国产精品久久久久婷婷老年| 免费亚洲婷婷| 亚洲靠逼com| 亚洲欧美成人| 国产亚洲日本欧美韩国| 久久福利影视| 欧美成人四级电影| 99re成人精品视频| 午夜一区不卡| 国产主播在线一区| 亚洲人体大胆视频| 欧美色道久久88综合亚洲精品| 亚洲午夜精品久久| 欧美与欧洲交xxxx免费观看| 国产在线不卡视频| 亚洲精品一区在线观看| 欧美三级欧美一级| 欧美一区激情视频在线观看| 欧美成人精品高清在线播放| 99精品欧美一区| 久久精品国产亚洲精品| 在线观看视频一区二区欧美日韩| av成人动漫| 国产伦精品一区二区三区在线观看| 欧美在线视频免费播放| 欧美电影在线观看| 亚洲午夜视频在线| 久久免费视频网| 亚洲美女免费精品视频在线观看| 性高湖久久久久久久久| 精品51国产黑色丝袜高跟鞋| 一区二区激情视频| 国产亚洲精品v| 亚洲免费观看高清在线观看| 国产精品国产三级欧美二区| 久久成人久久爱| 欧美日韩国产成人在线免费| 亚洲欧美一区在线| 欧美激情视频在线播放| 亚洲综合色丁香婷婷六月图片| 美女尤物久久精品| 亚洲小视频在线| 欧美成人精品一区二区| 亚洲伊人伊色伊影伊综合网| 欧美二区不卡| 欧美一二三区在线观看| 欧美久久久久久蜜桃| 销魂美女一区二区三区视频在线| 欧美激情网友自拍| 欧美亚洲一区二区在线| 欧美日本精品在线| 亚洲第一区色| 国产精品实拍| 亚洲每日在线| 国产在线欧美| 亚洲欧美在线视频观看| 亚洲激情精品| 久久精品水蜜桃av综合天堂| 正在播放欧美一区| 欧美韩日一区二区| 久久激情一区| 国产欧美一区二区三区久久人妖| 夜夜夜精品看看|