薛忠明,王 斌,吳 杰,楊 瑾,施志宏
(1.常州市金壇區(qū)廣播電視臺(tái),江蘇 常州 213200;2.揚(yáng)州大學(xué)信息工程學(xué)院,江蘇 揚(yáng)州 225009)
?
基于RSA的加密技術(shù)在網(wǎng)站中的應(yīng)用
薛忠明1,王斌2,吳杰2,楊瑾2,施志宏2
(1.常州市金壇區(qū)廣播電視臺(tái),江蘇 常州 213200;2.揚(yáng)州大學(xué)信息工程學(xué)院,江蘇 揚(yáng)州 225009)
摘要:設(shè)計(jì)使用RSA、MD5等加密算法,結(jié)合動(dòng)態(tài)加密技術(shù),通過公鑰加、解密和數(shù)字簽名認(rèn)證,對(duì)網(wǎng)絡(luò)中傳輸?shù)闹匾畔?shù)據(jù)加密和數(shù)字簽名,保障了數(shù)據(jù)在網(wǎng)站客戶認(rèn)證系統(tǒng)中傳輸?shù)目煽啃浴?/p>
關(guān)鍵詞:公鑰加密;哈希函數(shù);數(shù)字簽名
目前多數(shù)大型企業(yè)WEB應(yīng)用在用戶登錄時(shí)或敏感數(shù)據(jù),一般都會(huì)采用HTTPS加密傳輸?shù)姆绞絹磉M(jìn)行,但是這樣做從成本和性能的角度來說,并不是最優(yōu)的。服務(wù)器大量CPU花費(fèi)到對(duì)數(shù)據(jù)的加密解密以及證書認(rèn)證,傳輸,SSL握手等方面,對(duì)于千萬用戶級(jí)別的應(yīng)用這些損失是難以忽略的。
1密碼系統(tǒng)
1.1非對(duì)稱密碼體制
非對(duì)稱密碼體制也被稱為公鑰密碼體制,公鑰密碼體制中,加、解密相對(duì)的獨(dú)立,加密密鑰(公鑰)向大眾公開,而解密密鑰(私鑰)只有解密者擁有,非法用戶根據(jù)公開的公鑰無法計(jì)算出解密密鑰。公鑰密碼體制的基礎(chǔ)是數(shù)論,安全性主要取決于構(gòu)造公鑰算法所依賴的數(shù)學(xué)問題,一般要求加密函數(shù)具有單向性,即求逆是非常的困難。
1.2哈希函數(shù)
Md5算法(文獻(xiàn)[1]介紹)的名稱是message digest algorithm 5(信息摘要算法第5版),麻省理工計(jì)算機(jī)實(shí)驗(yàn)室和RSA安全數(shù)據(jù)公司的羅納德·李維斯特(Ronald L.Rivest)于90年代開發(fā)。Md5的主要用途是對(duì)一段信息(message)計(jì)算生成信息摘要(message-digest),以防止信息被篡改。
1.3RSA公鑰密碼
RSA[2]公鑰密碼體制是一種基于數(shù)論的非對(duì)稱加密算法,即是使用不同的加密密鑰與解密密鑰,是一種基于因子分解的模指數(shù)函數(shù)作為單向陷門函數(shù)的公鑰體制算法。在公鑰加密系統(tǒng)中,加、解密會(huì)使用不同的密鑰,是相對(duì)獨(dú)立的,加密密鑰可以公開使用,而解密密鑰只有解密者知道,未授權(quán)使用者根據(jù)公鑰無法計(jì)算出解密密鑰,稱為公鑰密碼體制。
1.4數(shù)字簽名認(rèn)證
數(shù)字簽名[3]是指用戶使用自己的私鑰對(duì)原始數(shù)據(jù)信息的哈希摘要值計(jì)算簽名數(shù)據(jù),接收方根據(jù)收到數(shù)據(jù)計(jì)算對(duì)應(yīng)的哈希摘要值,并使用發(fā)送方的公鑰驗(yàn)證數(shù)字簽名針對(duì)給定的哈希摘要是否為合法的簽名。數(shù)字簽名的特點(diǎn)是它代表了傳輸信息的特征,如果信息改變,相應(yīng)的數(shù)字簽名值也將發(fā)生改變。
2基于RSA加密認(rèn)證系統(tǒng)的設(shè)計(jì)
2.1RSA數(shù)字簽名實(shí)現(xiàn)步驟
1) 發(fā)送方生成一對(duì)公鑰和私鑰,發(fā)送方使用哈希函數(shù)算法對(duì)原始消息進(jìn)行計(jì)算,得到一個(gè)固定位長(zhǎng)的數(shù)字串,稱為消息摘要(MD),不同消息計(jì)算得到的消息摘要各異,但是同樣的消息它的摘要值卻是唯一的;
2) 發(fā)送方生成消息的摘要值,使用自己的私鑰對(duì)其進(jìn)行運(yùn)算形成發(fā)送方的數(shù)字簽名;
3) 發(fā)送方打包數(shù)字簽名和原始消息,將數(shù)字簽名和原始消息一起發(fā)送給接收方;
4) 接收方先分離出打包信息得到原始消息和數(shù)字簽名,然后使用哈希函數(shù)算法計(jì)算原始消息的哈希摘要值,并用發(fā)送方的公鑰驗(yàn)證數(shù)字簽名針對(duì)該哈希摘要值是合法的。
2.2加密認(rèn)證系統(tǒng)流程
1) 首先客戶和服務(wù)器分別生成一對(duì)RSA密鑰[4-6],客戶生成自己的公鑰pkC和私鑰skC,然后發(fā)送自己的公鑰pkC給服務(wù)器,保留自己的私鑰不泄露給服務(wù)器;
2) 服務(wù)器用自己的私鑰sks對(duì)客戶公鑰pkC認(rèn)證并且生成CA證書,證書中綁定用戶公鑰、身份信息、證書過期時(shí)間等,類似企業(yè)環(huán)境的CA體系[7]建立。如圖1所示。
圖1 密鑰傳輸示意圖
3) 客戶選擇一個(gè)隨機(jī)數(shù)kc,用服務(wù)器的公鑰加密kc,c1=Epks(kc),用自己的私鑰skc生成對(duì)kc的數(shù)字簽名σ1,發(fā)送c1和σ1給服務(wù)器;
4) 服務(wù)器使用自己的私鑰從c1中解密出kc后,用客戶的公鑰驗(yàn)證σ1是對(duì)kc的合法簽名。然后選擇一個(gè)隨機(jī)數(shù)ks,生成對(duì)稱密鑰k=H(kc,ks),用客戶的公鑰加密ks,c2=EpkC(ks),用自己的私鑰sks生成對(duì)ks的數(shù)字簽名σ2,發(fā)送c2和σ2給客戶;
5) 客戶使用自己的私鑰從c2中解密出ks后,用服務(wù)器的公鑰驗(yàn)證σ2是對(duì)ks的合法簽名,生成對(duì)稱密鑰k=H(kc,ks);數(shù)字簽名相互驗(yàn)證通過后,雙方就可以使用對(duì)稱密鑰進(jìn)行加密通信。設(shè)計(jì)流程如圖2所示。
圖2 系統(tǒng)流程示意圖
2.3加密系統(tǒng)特點(diǎn)分析說明
本文的加密系統(tǒng)對(duì)用戶數(shù)據(jù)進(jìn)行了RSA數(shù)字簽名和加密,通過雙方的密鑰實(shí)現(xiàn)了相互數(shù)字簽名,保證了用戶信息傳輸?shù)耐暾?。不僅驗(yàn)證了客戶端的身份,還對(duì)服務(wù)器身份進(jìn)行驗(yàn)證,避免網(wǎng)絡(luò)常見的“釣魚”攻擊,只有雙方的數(shù)字簽
名相互驗(yàn)證并且通過,才能進(jìn)行下一步驟的數(shù)據(jù)傳遞操作。解決了發(fā)送方、接受方的身份認(rèn)證問題,保障用戶認(rèn)證和數(shù)據(jù)安全,降低暴力窮舉破解和重放攻擊的風(fēng)險(xiǎn),實(shí)現(xiàn)系統(tǒng)的安全性。系統(tǒng)使用數(shù)字簽名驗(yàn)證后的對(duì)稱密鑰,效率顯著提高。
3總結(jié)和展望
本文研究了RSA加密體制在網(wǎng)絡(luò)信息傳輸認(rèn)證中的應(yīng)用,對(duì)RSA加密和數(shù)字簽名進(jìn)行了論述和分析。對(duì)網(wǎng)絡(luò)用戶認(rèn)證系統(tǒng)提出了構(gòu)思,進(jìn)行系統(tǒng)規(guī)劃,將RSA加密和簽名應(yīng)用于系統(tǒng)中,實(shí)現(xiàn)雙方的身份認(rèn)證,保障用戶認(rèn)證信息傳輸?shù)陌踩暾浴?/p>
雖然本文對(duì)系統(tǒng)進(jìn)行了整體規(guī)劃和設(shè)計(jì),但還有一些方面需要以后長(zhǎng)期改進(jìn)和探討。比如系統(tǒng)模塊的銜接和集合,RSA密鑰存儲(chǔ)和發(fā)放的安全性,哈希函數(shù)的碰撞攻擊等。
參考文獻(xiàn)
[1]William Stallings.密碼編碼學(xué)與網(wǎng)絡(luò)安全:原理與實(shí)踐[M].北京:電子工業(yè)出版社,2006:8-70.
[2]Arto Salomaa.公鑰密碼學(xué)[M].北京:國防工業(yè)出版社,1998:1-70.
[3]趙澤茂.數(shù)字簽名理論[M].北京:科學(xué)出版社,2007:6-80.
[4]陳雄山.簡(jiǎn)述RSA公鑰密碼體制與設(shè)計(jì)實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2009,5(29):8157-8159.
[5]張麗媛.RSA密碼算法的研究與實(shí)現(xiàn)[J].工程地質(zhì)計(jì)算機(jī)應(yīng)用,2005,23(3):20-51.
[6]Yi Wang,Maskell,Douglas L.Maskel.A Unified Architecture for a Public Key Cryptographic Coprocessor[J].Journal of Systems Architecture,2008,54(10):1004-1016.
[7]程振.基于AES和RSA加密算法的RFID安全機(jī)制[D].廈門:廈門大學(xué),2009:50-97.
收稿日期:2015-12-31
作者簡(jiǎn)介:薛忠明(1973- ),男,江蘇金壇人,助理工程師,研究方向:網(wǎng)絡(luò)安全維護(hù)。
文章編號(hào):1674- 4578(2016)02- 0071- 02
中圖分類號(hào):TN918.4;TP309.70
文獻(xiàn)標(biāo)識(shí)碼:A
Application of Encryption Technology in Website Based on RSA
Xue Zhongming1, Wang Bin2, Wu Jie2, Yang Jin2, Shi Zhihong2
(1.ChangzhouJintanDistrictRadioandTelevisionStation,ChangzhouJiangshu213200,China;2.InformationEngineeringCollege,YangzhouUniversity,YangzhouJiangsu225009,China)
Abstract:The design in this paper uses the RSA, MD5 encryption algorithm, combines with the dynamic encryption technology and through the public key encryption, decryption and digital signature authentication to make encryption and digital signature for the important information of data transmitted in the network; it guarantees the reliability of data transmission in the website customer authentication system.
Key words:public key encryption; Hash function; digital signature