• 
    

    
    

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

      非對(duì)稱加密算法在身份認(rèn)證中的應(yīng)用研究

      2020-01-10 06:38:32煜,朱明,夏
      關(guān)鍵詞:私鑰公鑰加密算法

      王 煜,朱 明,夏 演

      (1.安徽大學(xué) 電子信息工程學(xué)院,安徽 合肥 230601;2.安徽理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001)

      0 引 言

      隨著信息時(shí)代的快速發(fā)展,網(wǎng)絡(luò)給人們帶來的信息安全問題越來越嚴(yán)重,亦是當(dāng)前社會(huì)急需解決的一個(gè)難題。近年來,國內(nèi)外主要通過加密的方式來保證信息的安全。1977年美國國家標(biāo)準(zhǔn)局正式公布了一種數(shù)據(jù)加密標(biāo)準(zhǔn)DES(data encryption standard)[1],這是第一個(gè)加密算法。但是隨著DES的廣泛應(yīng)用,人們發(fā)現(xiàn)DES有個(gè)明顯的弱點(diǎn),那就是它的密鑰長度太短,安全性受到質(zhì)疑。后來,美國國家標(biāo)準(zhǔn)與技術(shù)研究院聯(lián)合發(fā)布了高級(jí)加密標(biāo)準(zhǔn)AES(advanced encryption standard)[2]。這種算法的安全性和實(shí)用性無疑是優(yōu)于DES算法的,但這兩者都屬于對(duì)稱密碼體制,在這個(gè)密碼體制中加密和解密使用的是同一個(gè)密鑰,而且整個(gè)系統(tǒng)的保密性主要取決于密鑰的保密性,一旦密鑰泄露,將會(huì)給整個(gè)系統(tǒng)帶來威脅。數(shù)字加密技術(shù)不僅包括對(duì)稱加密技術(shù),還包括非對(duì)稱加密技術(shù)[3]。1978年,Rivest,Shamir和Adleman提出了一個(gè)比較完善的公鑰體制RSA(Rivest,Shamir和Adleman姓氏開頭字母的組合)[4],它的密鑰包括公鑰和私鑰,公鑰是對(duì)外公開的,私鑰由用戶保存,這樣就避免了密鑰被泄露的可能性,從而更好地保障了信息的安全。

      1 非對(duì)稱加密

      1.1 PKI公鑰體系

      1.1.1 PKI的定義

      PKI(public key infrastructure)即公開密鑰基礎(chǔ)設(shè)施體系,是一種網(wǎng)絡(luò)基礎(chǔ)服務(wù)設(shè)施,它充分利用公鑰密碼學(xué)的理論基礎(chǔ),為密鑰和證書建立了一個(gè)安全的網(wǎng)絡(luò)環(huán)境,為各種網(wǎng)絡(luò)應(yīng)用提供了全面的安全服務(wù)[5]。RSA密碼機(jī)制包括一組密鑰,即公鑰和私鑰,私鑰由CA認(rèn)證用戶獨(dú)自掌管,該用戶發(fā)布或傳遞用其私鑰加密的信息,只能用其對(duì)應(yīng)的公鑰解密,進(jìn)而證明信息的真正來源,即完成身份認(rèn)證;公鑰是公開的,需要在網(wǎng)上公開,所以公鑰體制的密鑰管理主要針對(duì)公鑰進(jìn)行管理[6]。

      1.1.2 PKI公鑰體系結(jié)構(gòu)

      PKI主要用于公鑰的管理和數(shù)字簽名的服務(wù),主要包括三個(gè)部分:認(rèn)證中心(certification authority,CA)、服務(wù)提供商和用戶[7],如圖1所示。

      圖1 PKI公鑰體系結(jié)構(gòu)

      (1)認(rèn)證中心。CA中心是PKI的核心部分,主要負(fù)責(zé)證書的發(fā)放和管理,申請(qǐng)證書的用戶合法性的驗(yàn)證以及密鑰的生成和管理。CA中心對(duì)密鑰的管理具有高度的保密性,而且可以保證密鑰在傳送過程中的完整性,所以CA中心頒布的證書具有合法性和權(quán)威性。

      (2)服務(wù)提供商。服務(wù)提供商持本機(jī)構(gòu)的合法營業(yè)執(zhí)照或合法公司的注冊(cè)信息向CA中心提交申請(qǐng),從而獲得有CA數(shù)字簽名的證書。該證書中包含服務(wù)提供商加密信息時(shí)所需要的密鑰。

      (3)用戶。當(dāng)用戶需要驗(yàn)證某個(gè)服務(wù)提供商提供的信息是否真實(shí)時(shí),可以從CA中心下載該服務(wù)提供商的證書,此時(shí)CA中心會(huì)先驗(yàn)證用戶身份的合法性,如果審核通過,則CA向用戶提供相應(yīng)的證書,該證書中包含信息解密所需要的密鑰。

      1.2 非對(duì)稱加密

      非對(duì)稱加密算法需要兩個(gè)密鑰:公鑰和私鑰。非對(duì)稱加密算法的公鑰和私鑰是成對(duì)產(chǎn)生的,如果用公鑰對(duì)信息加密,那么只能用對(duì)應(yīng)的私鑰解密,相反,如果用私鑰對(duì)信息加密,那么只能用對(duì)應(yīng)的公鑰解密。目前,RSA算法和ECC算法是應(yīng)用最為廣泛的兩種非對(duì)稱加密算法[8]。下面對(duì)這兩種算法進(jìn)行說明分析。

      1.2.1 RSA算法

      RSA算法是一種非對(duì)稱加密算法,也是目前最有影響力的公鑰加密算法。在RSA公開密鑰密碼體制中包含一組密鑰對(duì),即公鑰和私鑰,公鑰對(duì)外公開,而私鑰是私密的,由用戶保管[9]。RSA算法的安全性依賴于大數(shù)的因式分解,將兩個(gè)大質(zhì)數(shù)相乘很容易,但是要將其乘積因式分解則是非常困難的,所以用乘積作為加密密鑰,安全系數(shù)高。RSA算法的安全性主要基于大整數(shù)分解的困難(兩個(gè)素?cái)?shù)的乘積),而且它數(shù)學(xué)原理簡(jiǎn)單、在工程應(yīng)用中比較易于實(shí)現(xiàn),但是它的單位安全強(qiáng)度相對(duì)較低。目前用國際上公認(rèn)的對(duì)于RSA算法最有效的攻擊方法—一般數(shù)域篩(NFS)方法去破譯和攻擊RSA算法,它的破譯或求解難度是亞指數(shù)級(jí)[10]。在RSA中發(fā)送者有一個(gè)密鑰(加密指數(shù),公鑰),接收者有一個(gè)密鑰(解密指數(shù),公鑰)。加密指數(shù)也稱為公鑰,用于加密;解密指數(shù)也稱為私鑰,用于解密。RSA是目前最有影響力和最常用的公鑰加密算法,能夠抵抗到目前為止已知的絕大多數(shù)密碼攻擊,已被ISO推薦為公鑰數(shù)據(jù)加密標(biāo)準(zhǔn)[11]。身份認(rèn)證技術(shù)是在計(jì)算機(jī)網(wǎng)絡(luò)中確認(rèn)操作者身份的過程而產(chǎn)生的有效解決方法。

      1.2.2 ECC算法

      ECC(error correcting code)算法的安全性主要基于有限域上的橢圓曲線離散對(duì)數(shù)問題,在工程應(yīng)用中比較難于實(shí)現(xiàn),但它的單位安全強(qiáng)度相對(duì)較高。用國際上公認(rèn)的對(duì)于ECC算法最有效的攻擊方法—Pollard rho方法去破譯和攻擊ECC算法,它的破譯或求解難度基本上是指數(shù)級(jí)。ECC算法目前僅僅只能完成密鑰的生成與解析,如果想要獲得ECC算法實(shí)現(xiàn),需要調(diào)用硬件完成加密/解密,這過程相對(duì)而言是比較復(fù)雜的,所以文中主要對(duì)RSA算法進(jìn)行研究。

      無論是RSA算法還是ECC算法,由于采用公鑰加密,所以很難證明加密后的密文是來自真正的發(fā)送者,即很難證明信息的真?zhèn)?,也就是很難驗(yàn)證信息發(fā)布者的真實(shí)身份。為了較好地解決這個(gè)問題,文中提出了私鑰加密公鑰解密的思想。

      2 改進(jìn)后的RSA算法

      2.1 改進(jìn)RSA密鑰生成算法

      RSA密鑰是成對(duì)產(chǎn)生的,而且公鑰和私鑰是一對(duì)大素?cái)?shù)(100到200位十進(jìn)制數(shù)或更大)的函數(shù)。通過公鑰和密文來恢復(fù)明文,等價(jià)于分解兩個(gè)大素?cái)?shù)之積,難度非常大[12-13]。

      RSA密鑰的生成算法如下:

      (1)隨機(jī)產(chǎn)生兩個(gè)大素?cái)?shù)p和q,且p、q互異;

      (2)計(jì)算n=p*q,同時(shí)令φ(n)=(p-1)(q-1);

      (3)隨機(jī)產(chǎn)生一個(gè)與φ(n)互質(zhì)的整數(shù)e,令gcd(e,φ(n))=1,且滿足1

      (4)計(jì)算d≡e-1(modφ(n)),即d*e≡1(modφ(n));

      (5)公鑰PU={e,n},私鑰PR={d,n}。

      注:p和q保密。gcd()函數(shù)的作用是返回兩個(gè)或多個(gè)證書的最大公約數(shù)?!允菙?shù)論中表示同余的符號(hào),它的左右兩邊必須同余,也就是兩邊的模運(yùn)算結(jié)果相同。

      2.2 改進(jìn)RSA加密、解密算法

      首先將明文編碼成整數(shù)分組m,m對(duì)應(yīng)的十進(jìn)制數(shù)小于n,即整數(shù)分組m的位數(shù)小于log2nbits,然后再對(duì)每個(gè)分組用私鑰PR={d,n}進(jìn)行加密操作[14-15]。其中c為密文,即c=E(m)≡md(modn)。

      利用公鑰PU={e,n}對(duì)密文c進(jìn)行解密,得到明文m,即m=D(c)≡ce(modn)。

      2.3 RSA算法性能分析

      算法性能的好壞直接決定了整個(gè)系統(tǒng)的性能,所以在搭建一個(gè)系統(tǒng)之前選擇一個(gè)好的算法是至關(guān)重要的。通過對(duì)系統(tǒng)進(jìn)行多次試驗(yàn)測(cè)試,可以看出RSA算法具有一定的性能優(yōu)勢(shì),如圖2所示。通過近10次重復(fù)計(jì)算統(tǒng)計(jì),task-clock也就是運(yùn)行的周期數(shù),占用了0.943,說明大部分時(shí)間都是CPU的運(yùn)行時(shí)間;同時(shí)通過對(duì)perf-stat的研究分析可得,程序的運(yùn)行時(shí)間是6.288 ms,這表明程序運(yùn)行的速率是非??斓腫11]。所以RSA算法在性能上具有一定的優(yōu)勢(shì)。

      2.4 算法設(shè)計(jì)

      該系統(tǒng)設(shè)計(jì)了一個(gè)RSA工具集,主要包括密鑰生成器模塊、加密模塊和解密模塊。其中密鑰生成器模塊就扮演著PKI公鑰體系中CA認(rèn)證中心的角色,管理著密鑰對(duì)。當(dāng)加密文本或文件的時(shí)候,就向CA中心申請(qǐng)經(jīng)過CA中心數(shù)字簽名的證書,CA中心在驗(yàn)證申請(qǐng)者身份的真實(shí)合法性后,向其頒發(fā)證書,證書中包含加密所需的私鑰;當(dāng)解密文本或文件的時(shí)候,就向CA中心申請(qǐng)?jiān)L問證書,這時(shí)需要向CA中心提供要訪問的對(duì)象以及自身的相關(guān)信息,CA中心在驗(yàn)證其提供的信息的真實(shí)合法性后,向其頒發(fā)證書,證書中包含著解密所需的公鑰。加密模塊所扮演的就是PKI公鑰體系中服務(wù)提供商的角色,必要的時(shí)候向CA中心申請(qǐng)證書,獲取私鑰。解密模塊所扮演的就是PKI公鑰體系中用戶的角色,必要的時(shí)候向CA中心申請(qǐng)?jiān)L問證書,獲取公鑰。

      2.4.1 密鑰生成器模塊

      密鑰生成器主要負(fù)責(zé)生成一組密鑰,即公鑰和私鑰,然后將這兩個(gè)密鑰分別保存到相應(yīng)的文件夾,以備后續(xù)的加密、解密使用。該系統(tǒng)的密鑰長度和數(shù)據(jù)的顯示形式都是可以選擇的。首先,密鑰的長度在512位到4 096位,原則上密鑰的長度越大,密鑰就越難破解,它的安全系數(shù)就越高,但同時(shí)解密的復(fù)雜度就越高,所需的時(shí)間也越長。該系統(tǒng)中選擇了512位密鑰長度。其次,在數(shù)據(jù)的顯示形式上,可以選擇二進(jìn)制,也可以選擇十進(jìn)制。當(dāng)選擇好密鑰長度和顯示形式后,選中生成密鑰,這時(shí)系統(tǒng)會(huì)自動(dòng)生成P,Q,n,E,D參數(shù)的值,而且系統(tǒng)會(huì)生成一個(gè)后綴名為PublicKey的公鑰文件和一個(gè)后綴名為PrivateKey的私鑰文件,這時(shí)將公鑰文件和私鑰文件分別保存到指定路徑。密鑰生成器模塊如圖2所示。

      圖2 密鑰生成器模塊

      2.4.2 加密模塊

      加密模塊主要有加密文本和加密文件,如果是加密文本就直接在文本框中輸入要加密的信息,然后選擇密鑰路徑,這里是用私鑰進(jìn)行加密,所以只要選中私鑰所在文件的路徑即可,最后點(diǎn)擊加密按鈕,則實(shí)現(xiàn)了對(duì)文本信息的加密。如果是加密文件,則需要分別選擇加密的密鑰路徑、明文路徑以及密文的存放路徑,然后選中加密按鈕,實(shí)現(xiàn)了對(duì)文件的加密。加密模塊如圖3所示。

      2.4.3 解密模塊

      解密模塊主要有解密文本和解密文件,如果是解密文本就直接在文本框中輸入要密文文本,然后選擇密鑰路徑,這里是用公鑰進(jìn)行解密,所以只要選中公鑰所在文件的路徑即可,最后點(diǎn)擊解密按鈕,則實(shí)現(xiàn)了對(duì)文本信息的解密。如果是解密文件,則需要分別選擇解密的密鑰路徑、密文路徑以及明文的存放路徑,然后選中解密按鈕,實(shí)現(xiàn)對(duì)文件的解密。解密模塊如圖3所示。

      圖3 加密、解密模塊

      3 編程與實(shí)驗(yàn)

      系統(tǒng)以微軟公司的Microsoft Visual Studio 2010作為開發(fā)的IDE工具,利用C#語言進(jìn)行編程。系統(tǒng)主要包括三個(gè)模塊,分別為密鑰生成器模塊、加密模塊和解密模塊。

      3.1 密鑰生成器模塊實(shí)驗(yàn)

      系統(tǒng)通過密鑰生成器生成密鑰對(duì),即公鑰和私鑰,選擇密鑰長度為512位,顯示方式為十進(jìn)制,然后點(diǎn)擊“生成密鑰”,得到P,Q,n,E,D所有參數(shù)的值,如圖4所示。密鑰生成后會(huì)彈出提示框顯示密鑰生成完畢以及生成密鑰所耗的時(shí)長,如圖5所示。最后,將私鑰、公鑰分別保存到相應(yīng)的文件夾以備后面的加密、解密使用。

      圖4 密鑰生成器模塊

      3.2 加密模塊實(shí)驗(yàn)

      這里以加密文本為例,比如對(duì)非對(duì)稱加密算法的研究進(jìn)行加密。首先,點(diǎn)擊RSA工具集中的加密文本按鈕,如圖6所示。點(diǎn)進(jìn)去后需要選擇加密密鑰的路徑,也就是私鑰所在的路徑,然后在左邊文本框中輸入要加密的文本信息,即非對(duì)稱加密算法的研究,如圖7所示。點(diǎn)擊加密,會(huì)發(fā)現(xiàn)右邊的模塊出現(xiàn)了信息加密后的密文,而且會(huì)彈出提示框顯示是否加密成功以及加密所耗的時(shí)長,如圖8所示。最后需要將密文保存在相應(yīng)的文檔里,以備后面解密文本需要。

      圖5 密鑰生成

      圖6 RSA工具集

      圖7 文本加密

      圖8 文本加密完成

      3.3 解密模塊實(shí)驗(yàn)

      這里以解密文本為例,比如有一串密文需要解密。首先,點(diǎn)擊RSA工具集中的解密文本按鈕,如圖6所示。點(diǎn)進(jìn)去后需要選擇解密密鑰的路徑,也就是公鑰所在的路徑,然后在左邊文本框中粘貼要密文文本,如圖9所示。點(diǎn)擊解密發(fā)現(xiàn)右邊的模塊出現(xiàn)了解密后的文本,而且會(huì)彈出提示框顯示是否解密成功以及解密所耗的時(shí)長,如圖10所示。最后通過將解密后的文本與明文作對(duì)比,可以檢驗(yàn)系統(tǒng)的準(zhǔn)確性。

      圖9 文本解密

      圖10 文本解密完成

      4 結(jié)束語

      文中主要研究了非對(duì)稱加密算法—RSA算法,它是目前最有影響力且應(yīng)用最廣泛的公鑰加密算法。RSA算法中主要包含一組密鑰,即公鑰和私鑰,用來對(duì)信息進(jìn)行加密和解密。文中主要利用私鑰進(jìn)行加密,公鑰進(jìn)行解密,由于密鑰是整個(gè)方案的核心,所以提出用PKI公鑰體系來自動(dòng)生成和管理密鑰,對(duì)于密鑰的分發(fā)都需要經(jīng)過CA中心的審核,審核通過后才會(huì)通過一定的安全途徑分發(fā)密鑰,這大大增加了密鑰的安全性。采用公鑰進(jìn)行解密無疑降低了信息的保密程度,如何解決這個(gè)問題是今后繼續(xù)研究的重點(diǎn),例如是否可以采用雙重加密方法加以解決,即利用對(duì)稱加密算法先加密保證信息的保密程度,再利用非對(duì)稱加密算法加密實(shí)現(xiàn)身份認(rèn)證等等。

      猜你喜歡
      私鑰公鑰加密算法
      比特幣的安全性到底有多高
      基于改進(jìn)ECC 算法的網(wǎng)絡(luò)信息私鑰變換優(yōu)化方法
      一種基于混沌的公鑰加密方案
      一種基于虛擬私鑰的OpenSSL與CSP交互方案
      HES:一種更小公鑰的同態(tài)加密算法
      SM2橢圓曲線公鑰密碼算法綜述
      基于小波變換和混沌映射的圖像加密算法
      Hill加密算法的改進(jìn)
      基于格的公鑰加密與證書基加密
      對(duì)稱加密算法RC5的架構(gòu)設(shè)計(jì)與電路實(shí)現(xiàn)
      塔河县| 新龙县| 勃利县| 阳西县| 洞口县| 萨嘎县| 连南| 砚山县| 西藏| 乌拉特前旗| 鄂伦春自治旗| 紫金县| 滁州市| 武夷山市| 盐津县| 楚雄市| 疏附县| 萨迦县| 石棉县| 吴川市| 苍山县| 平湖市| 北宁市| 沽源县| 北京市| 外汇| 青神县| 舞阳县| 庄河市| 正安县| 太和县| 静安区| 石河子市| 吉首市| 任丘市| 大邑县| 榆社县| 米易县| 仲巴县| 台中市| 嵊泗县|