安全數(shù)據(jù)存儲(chǔ)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
安全數(shù)據(jù)存儲(chǔ)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
安全數(shù)據(jù)存儲(chǔ)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
安全數(shù)據(jù)存儲(chǔ)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
安全數(shù)據(jù)存儲(chǔ)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩47頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

安全數(shù)據(jù)存儲(chǔ)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)安全數(shù)據(jù)存儲(chǔ)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)/安全數(shù)據(jù)存儲(chǔ)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文(設(shè)計(jì))論文(設(shè)計(jì))題目:安全數(shù)據(jù)存儲(chǔ)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)姓名學(xué)號(hào)學(xué)院軟件學(xué)院專業(yè)軟件工程年級(jí)2010級(jí)指導(dǎo)教師2011年5月22日山東大學(xué)畢業(yè)設(shè)計(jì)(論文)成績(jī)?cè)u(píng)定表學(xué)院:軟件學(xué)院專業(yè):軟件工程年級(jí):2010級(jí)學(xué)號(hào)姓名設(shè)計(jì)(論文)成績(jī)?cè)O(shè)計(jì)(論文)題目安全數(shù)據(jù)存儲(chǔ)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)指導(dǎo)教師評(píng)語(yǔ)評(píng)定成績(jī):簽名:年月日評(píng)閱人評(píng)語(yǔ)評(píng)定成績(jī):簽名:年月日答辯小組評(píng)語(yǔ)答辯成績(jī):組長(zhǎng)簽名:年月日注:設(shè)計(jì)(論文)成績(jī)=指導(dǎo)教師評(píng)定成績(jī)(30%)+評(píng)閱人評(píng)定成績(jī)(30%)+答辯成績(jī)(40%)目錄TOC\o"1-3"\h\u摘要 4第一章緒論 61.1研究背景 61.2數(shù)據(jù)安全保護(hù)現(xiàn)狀 61.3數(shù)據(jù)安全和信息安全發(fā)展趨勢(shì) 71.4目的和意義 8第二章數(shù)據(jù)安全保護(hù)的主要應(yīng)用技術(shù) 102.1加密算法 102.1.1對(duì)稱加密 102.1.2非對(duì)稱加密 112.2帶關(guān)鍵詞搜索的公鑰加密算法(PEKS) 132.3基于雙線性對(duì)的PEKS方案 132.4PBC庫(kù) 14第三章數(shù)據(jù)安全存儲(chǔ)系統(tǒng)設(shè)計(jì) 153.1系統(tǒng)設(shè)計(jì)總體要求 153.2系統(tǒng)設(shè)計(jì)總體目標(biāo) 153.2.1數(shù)據(jù)存儲(chǔ)功能 153.2.2數(shù)據(jù)的關(guān)鍵詞 153.2.3系統(tǒng)初始化 163.2.4基于PEKS的加密設(shè)計(jì) 163.2.5數(shù)據(jù)的檢索 173.3系統(tǒng)整體設(shè)計(jì)模塊 18第四章數(shù)據(jù)安全存儲(chǔ)系統(tǒng)設(shè)計(jì) 194.1系統(tǒng)初始化 194.1.1結(jié)構(gòu)體定義 194.1.2PEKS系統(tǒng)初始化 194.1.3RSA加密系統(tǒng)初始化 214.2數(shù)據(jù)存儲(chǔ)的實(shí)現(xiàn) 224.2.1數(shù)據(jù)存儲(chǔ)界面 224.2.2數(shù)據(jù)檢索流程實(shí)現(xiàn) 224.2.3PEKS系統(tǒng)實(shí)現(xiàn) 234.3數(shù)據(jù)檢索的實(shí)現(xiàn) 254.3.1數(shù)據(jù)檢索界面 254.3.2數(shù)據(jù)檢索流程實(shí)現(xiàn) 254.3.3數(shù)據(jù)檢索中的PEKS實(shí)現(xiàn) 26第四章系統(tǒng)測(cè)試 28第五章結(jié)束語(yǔ) 29致謝 30參考文獻(xiàn) 31附錄1英文文獻(xiàn) 32附錄2中文譯文 36摘要科學(xué)技術(shù)的發(fā)展和時(shí)代進(jìn)步,從蒸汽機(jī)的發(fā)明開(kāi)始,近代工業(yè)的突飛猛進(jìn),新興產(chǎn)業(yè)的遍地開(kāi)花都展現(xiàn)出蓬勃的生機(jī),尤其是近三十年間,電子信息技術(shù)產(chǎn)業(yè)的發(fā)展更是展現(xiàn)了其實(shí)力和前景??v觀當(dāng)今社會(huì),信息的存儲(chǔ)逐漸取代了傳統(tǒng)的紙質(zhì)形式,轉(zhuǎn)而大多是以電子形式進(jìn)行的。因?yàn)閟電子存儲(chǔ)介質(zhì)容量大體積小,快速便捷,不易受損的性質(zhì)成為了存儲(chǔ)界的寵兒,然而衍生出的安全問(wèn)題也同樣值得關(guān)注。電子存儲(chǔ)介質(zhì)一旦受損,那么信息的安全何以保障,在信息化的當(dāng)今時(shí)代,一旦信息泄露引發(fā)的問(wèn)題可能足以致命。在這種形式下,基于數(shù)據(jù)的安全存儲(chǔ)系統(tǒng)的設(shè)計(jì)與研究就顯得極其必要。隨著互聯(lián)網(wǎng)的高速發(fā)展,眾多企業(yè)和個(gè)人己經(jīng)把大量數(shù)據(jù)交給第三方服務(wù)器存儲(chǔ),如何保證私有數(shù)據(jù)的機(jī)密性和隱私成為急需解決的問(wèn)題。加密技術(shù)是保護(hù)數(shù)據(jù)機(jī)密性和隱私的一種較為有效的手段,然而對(duì)加密后的數(shù)據(jù)進(jìn)行檢索卻是一項(xiàng)非常困難的工作。特別是在非可信環(huán)境的情況下,如何對(duì)加密數(shù)據(jù)進(jìn)行高效地查詢引起了人們普遍的關(guān)注。因此,可搜索加密成為了近幾年的研究熱點(diǎn)之一。可搜索加密分為帶關(guān)鍵詞檢索的對(duì)稱加密和帶關(guān)鍵詞檢索的公鑰加密。帶關(guān)鍵詞檢索的對(duì)稱加密有著簡(jiǎn)單、高效的優(yōu)點(diǎn),但無(wú)法實(shí)現(xiàn)對(duì)第三方數(shù)據(jù)的秘密檢索。現(xiàn)有的帶關(guān)鍵詞檢索公鑰加密雖然可以實(shí)現(xiàn)對(duì)第三方數(shù)據(jù)的秘密檢索,但效率不高。本文主要研究可搜索加密技術(shù),針對(duì)現(xiàn)有的帶關(guān)鍵詞檢索公鑰加密方案中大量對(duì)運(yùn)算需要消耗較多時(shí)間、效率不高等問(wèn)題,提出了一種高效的帶關(guān)鍵詞檢索的公鑰加密方案。該方案既具備帶關(guān)鍵詞檢索的對(duì)稱加密簡(jiǎn)單、高效的優(yōu)點(diǎn)關(guān)鍵詞:可搜索加密;公鑰加密;帶關(guān)鍵詞檢索的公鑰加密ABSTRACTWiththerapiddevelopmentofComputerScience,electronicdataStorageisbecomingmorepopular.MostofdatawasstoredasElectronicdocuments.ItarouseswideconcernofhowtoprovedataSecurity.Intheinformationsystems,ifstorageswereoutofcontrol,allthesensitiveinformationandimportantdatawillbestolen,whichResultinheavylosses.Therefore,toefficientlysecurethedata,it’sNecessarytoresearchdatasecuritysystembasedonencryption.Withtherapiddevelopmentofinternet,anumberofcompaniesandindividualshavestoreddataonathirdPartyserver.HowtoensuretheconfidentialityandPrivacyofPrivatedatahasbecomeanurgentProblem.EncryptionisaneffectivemeansofProtectingtheconfidentialityandPrivacyofdata,butretrievalontheencrypteddataisaverydifficulttask.Particularlyduetonon-trustedenvironment,howtosearchonencrypteddataefficientlycausedwidespreadconcern.Thus,searchableencryptionhasbecomeahottopicinrecentyears.SearchableencryptioncanbedividedintosymmetricencryptionwithkeywordsearchandPublickeyEncryptionwithKeywordSearch(PEKS).Symmetricencryptionwithkeywordsearchissimpleandhashighefficiency,butcannotrealizethePrivatesearchforthird-Partydata.ThePublickeyEncryptionwithKeywordSearchcanrealizethePrivatesearchforthird-Partydata,butisinefficient.ThisPaperMainlystudiessearchableencryption.SincegreatcomputationofpairingsinPEKSschemesarestilltimeconsumingandinefficient,thisPaperproposesamoreefficientPEKSscheme.ThenewPEKSschemenotonlyretainstheadvantagesofsymmetricencryptionwithkeywordsearchsuchassimplexesandhighefficiency,butalsocanrealizetheprivatesearchforthird一Partydata.Keywords:Searchableencryption,Publickeyencryption;PublickeyEncryptionwithKeywordSearch(PEKS)第一章緒論1.1研究背景隨著時(shí)代的進(jìn)步,我們已經(jīng)進(jìn)入了信息化社會(huì),所以在這個(gè)時(shí)代信息是一切的基礎(chǔ),掌握信息才能掌握這個(gè)時(shí)代的脈搏,才能在這個(gè)信息時(shí)代取得自己的一片天。正是因?yàn)樾畔r(shí)代的到來(lái),所以信息安全尤其顯得重要。數(shù)據(jù)安全是信息安全中尤為重要的一環(huán),也是具有決定意義的一環(huán),對(duì)于信息安全的研究也是為了我們自身生活環(huán)境,國(guó)家發(fā)展的一項(xiàng)貢獻(xiàn)。作為老百姓來(lái)說(shuō),信息安全也不可小視。舉個(gè)例子來(lái)說(shuō),當(dāng)購(gòu)買了一套住房后,你的個(gè)人信息有可能會(huì)被無(wú)良商人泄露,從而一些建筑公司會(huì)主動(dòng)打電話來(lái)詢問(wèn)戶主是否需要裝修等。這就是一種信息未得到安全保證的結(jié)果。現(xiàn)實(shí)生活中,計(jì)算機(jī)信息安全,網(wǎng)絡(luò)信息安全都與我們自身息息相關(guān)。對(duì)于公司業(yè)務(wù)來(lái)說(shuō),如何保障大規(guī)模的數(shù)據(jù)安全更是一件刻不容緩的事。存儲(chǔ)介質(zhì)隨著辦公自動(dòng)化的發(fā)展變得越來(lái)越大,如果不伴以安全輔助,那么一旦發(fā)生泄漏,損失難以估計(jì)即使在有防火墻,隔離裝置等網(wǎng)絡(luò)安全設(shè)備在阻止著基于網(wǎng)絡(luò)的安全攻擊,但是數(shù)據(jù)在存儲(chǔ)中存在的漏洞和安全隱患卻有可能在不經(jīng)意間導(dǎo)致大規(guī)模的信息安全危害事故。從網(wǎng)上的調(diào)查數(shù)據(jù)可知,現(xiàn)如今大部分的信息泄露主要是內(nèi)部人員所為,也就是說(shuō)外來(lái)黑客的攻擊只占小部分,大部分的信息泄露都是由于數(shù)據(jù)存儲(chǔ)的管理制度不完善,內(nèi)部人員隨意竊取導(dǎo)致。在問(wèn)題如此嚴(yán)重的當(dāng)下,對(duì)于研發(fā)一個(gè)數(shù)據(jù)加密存儲(chǔ)系統(tǒng)顯得十分有必要。必須要保證在各種存儲(chǔ)介質(zhì)上的數(shù)據(jù)安全,以與在介質(zhì)出現(xiàn)失控情況下的數(shù)據(jù)安全問(wèn)題在大多數(shù)重要業(yè)務(wù)部門的敏感數(shù)據(jù)的應(yīng)用熱點(diǎn)下,數(shù)據(jù)安全系統(tǒng)應(yīng)當(dāng)構(gòu)建在現(xiàn)有的計(jì)算機(jī),軟件網(wǎng)絡(luò)設(shè)施之上,并融合在各個(gè)應(yīng)用中,形成高效便利的方式和系統(tǒng)。作為必要的基礎(chǔ)環(huán)節(jié),使得信息系統(tǒng)的運(yùn)作更為安全和完善。1.2數(shù)據(jù)安全保護(hù)現(xiàn)狀1.明文存儲(chǔ)即使在強(qiáng)調(diào)信息安全的當(dāng)今社會(huì),也依然有單位或者個(gè)人對(duì)信息安全意識(shí)的缺乏,又或者對(duì)信息安全的不重視,他們將重要信息直接以明文的形式存儲(chǔ)在介質(zhì)中,包括移動(dòng)硬盤或者計(jì)算機(jī)。然而一旦這些介質(zhì)受到攻擊,,明文形式保存的信息就會(huì)遭到泄露,那么所帶來(lái)的后果將是十分嚴(yán)重的,輕則需要重新錄入,重則面臨巨大損失。2.適用面狹窄在我完成這篇論文之前,我對(duì)加密這一領(lǐng)域也不甚了解,第一可能是我學(xué)藝不精,第二加密系統(tǒng)對(duì)個(gè)人用戶似乎也沒(méi)有很多的優(yōu)化,一些優(yōu)良的加密系統(tǒng)在大型設(shè)備上用的很廣泛,而對(duì)個(gè)人用戶來(lái)說(shuō)操作不便,成本太高可能也是造成這個(gè)方面的主要原因。3.網(wǎng)絡(luò)防護(hù)和加密隱藏現(xiàn)有的加密系統(tǒng)的調(diào)查和分析可知,一些加密系統(tǒng)似乎對(duì)網(wǎng)絡(luò)這一塊做得工作甚少,而且似乎也不愿意在自動(dòng)隱藏上下工夫。這導(dǎo)致了一個(gè)重要問(wèn)題,就是在一些網(wǎng)絡(luò)系統(tǒng)中,用戶信息很可能被直接在網(wǎng)絡(luò)中獲取明文信息,導(dǎo)致信息泄露。而自動(dòng)隱藏功能更是應(yīng)該被廣泛應(yīng)用,當(dāng)計(jì)算機(jī)失控時(shí),經(jīng)過(guò)加密自動(dòng)隱藏的數(shù)據(jù)不能顯現(xiàn)時(shí),這樣才會(huì)為數(shù)據(jù)不被泄露提供有力的保障4.加密等級(jí)過(guò)低加密技術(shù)的發(fā)展必然導(dǎo)致反加密技術(shù)的進(jìn)步,一些加密系統(tǒng)的加密強(qiáng)度已經(jīng)不能滿足現(xiàn)如今對(duì)加密系統(tǒng)的強(qiáng)度要求,效率和有效性應(yīng)當(dāng)逐步提升以滿足用戶的需求1.3數(shù)據(jù)安全和信息安全發(fā)展趨勢(shì)安全這個(gè)詞不存在絕對(duì)性,任何一個(gè)系統(tǒng)都無(wú)法保證絕對(duì)的安全性。我們反復(fù)制定數(shù)據(jù)安全的需求和標(biāo)準(zhǔn),正是由于這個(gè)原因,信息技術(shù)的提升,網(wǎng)絡(luò)的日益完善與發(fā)達(dá),都使得安全這個(gè)詞的標(biāo)準(zhǔn)一再拔高,一再需要重新界定,一勞永逸解決這個(gè)問(wèn)題顯得多么的不切實(shí)際。所以要實(shí)現(xiàn)對(duì)數(shù)據(jù)的持續(xù)安全,就必須在這個(gè)信息高速發(fā)展的時(shí)代持續(xù)的關(guān)注和不斷的解決。從整體來(lái)看,數(shù)據(jù)安全的趨勢(shì)形成了如下四個(gè)方面數(shù)據(jù)安全的重要性日漸增強(qiáng)。數(shù)據(jù)安全作為信息安全的核心組成部分,在信息安全中起著至關(guān)重要的作用。在當(dāng)今這個(gè)時(shí)代,信息安全所涉與的領(lǐng)域包括國(guó)防,國(guó)民經(jīng)濟(jì)建設(shè),企業(yè)發(fā)展,個(gè)人事業(yè),這些大都與我們的生活發(fā)展息息相關(guān),因此,信息安全顯得尤為重要數(shù)據(jù)安全概念的發(fā)展,安全手段的不斷強(qiáng)化。安全這個(gè)詞從誕生起就在不斷的發(fā)展和深化。信息安全的特性如下,保密性,完整性,可用性,可控性,不可否認(rèn)性。信息化時(shí)代進(jìn)步的日益加快,信息在這幾個(gè)特性下的發(fā)展也在逐步進(jìn)行,并且在基于這幾個(gè)方面上研究和發(fā)展。數(shù)據(jù)安全系統(tǒng)的復(fù)雜性。現(xiàn)代信息系統(tǒng)發(fā)展帶來(lái)了生活的便利,同時(shí)也帶來(lái)了數(shù)據(jù)安全這一重大課題。可以看出,這個(gè)問(wèn)題的解決必然會(huì)基于現(xiàn)代高新技術(shù)的支持,傳統(tǒng)的方法是無(wú)法滿足要求的。由此,各種新技術(shù)便應(yīng)運(yùn)而生。數(shù)據(jù)安全涉與的面增廣。從傳統(tǒng)的實(shí)體化安全例如上鎖,到現(xiàn)在的網(wǎng)絡(luò)安全,存儲(chǔ)安全等,同時(shí)一些加密技術(shù)如指紋識(shí)別,虹膜識(shí)別等1.4目的和意義1.為信息安全增添一道防護(hù)措施現(xiàn)在數(shù)據(jù)安全的概念已得到了廣泛的普與,征服部門和企業(yè)都開(kāi)始逐步增加了對(duì)信息安全的重視,雖說(shuō)在很大一部分上是通過(guò)行政手段來(lái)提供的保障,但是在系統(tǒng)失效的情況下如何保護(hù)重要敏感的數(shù)據(jù)可謂重中之重。應(yīng)運(yùn)而生的數(shù)據(jù)安全系統(tǒng)可以對(duì)存儲(chǔ)介質(zhì)提供加密保護(hù),即使系統(tǒng)出現(xiàn)失控或別的一些故障,數(shù)據(jù)安全系統(tǒng)依舊為數(shù)據(jù)安全提供者保障。由此可見(jiàn),數(shù)據(jù)安全存儲(chǔ)系統(tǒng)和行政管理的相互補(bǔ)充,有效的保護(hù)了數(shù)據(jù)安全2.增加普適性,為用戶提供簡(jiǎn)單便捷的操作以與全面的數(shù)據(jù)保護(hù)在計(jì)算機(jī)技術(shù)與信息技術(shù)高速發(fā)展的今天,電子文檔已經(jīng)在大規(guī)模上取代了傳統(tǒng)紙質(zhì)介質(zhì),而且存儲(chǔ)介質(zhì)的容量的不斷擴(kuò)增,導(dǎo)致了現(xiàn)在用戶會(huì)將大部分的資料存儲(chǔ)在一個(gè)介質(zhì)中,一旦該介質(zhì)出現(xiàn)故障等問(wèn)題足以致命。3.機(jī)密性網(wǎng)絡(luò)中的一些數(shù)據(jù)是存在極高的機(jī)密性的,例如賬號(hào)密碼等一系列數(shù)據(jù)。這些數(shù)據(jù)讓工作本身就成為了一種秘密性的行為。所以要實(shí)時(shí)確保該類信息的保密,確保信息即使在不被授權(quán)的情況下不會(huì)被第三方獲得4.完整性數(shù)據(jù)安全中的重要一環(huán)就是要保障數(shù)據(jù)傳輸中的完整性,以防止數(shù)據(jù)的錯(cuò)序,丟失,重復(fù)等行為。保證信息的完整性是保障數(shù)據(jù)安全的基礎(chǔ),也是前提5.對(duì)于機(jī)密數(shù)據(jù)的訪問(wèn)必須經(jīng)過(guò)身份驗(yàn)證數(shù)據(jù)的存儲(chǔ)時(shí)運(yùn)行在一個(gè)大的并且是實(shí)時(shí)開(kāi)放的網(wǎng)絡(luò)中的,所以對(duì)于機(jī)密數(shù)據(jù)的訪問(wèn)是必須要經(jīng)過(guò)身份驗(yàn)證,以確保信息是來(lái)自真實(shí)身份的發(fā)送方。以防止在一方進(jìn)行越權(quán)操作時(shí),保證機(jī)密數(shù)據(jù)的完整6.不可抵賴性信息一旦存儲(chǔ),其不可抵賴性是毋容置疑的。很多信息安全的項(xiàng)目涉與到責(zé)任權(quán)利等問(wèn)題,所以信息的不可抵賴性的作用體現(xiàn)的極為明顯。信息既已操作,其操作行為會(huì)隨之記錄,這是基于公平公正性進(jìn)行考慮的,所以必須要滿足這一點(diǎn)第二章數(shù)據(jù)安全保護(hù)的主要應(yīng)用技術(shù)2.1加密算法本文主要涉與的是數(shù)據(jù)安全,所以各種加密算法是重中之重。根據(jù)加密算法中秘鑰類型的不同,可以將加密算法分為兩類,對(duì)稱加密和非對(duì)稱加密。2.1.1對(duì)稱加密采用單鑰密碼系統(tǒng)的加密方法,同一個(gè)密鑰可以同時(shí)用作信息的加密和解密,這種加密方法稱為對(duì)稱加密,也稱為單密鑰加密。需要對(duì)加密和解密使用相同密鑰的加密算法。由于其速度快,對(duì)稱性加密通常在消息發(fā)送方需要加密大量數(shù)據(jù)時(shí)使用。對(duì)稱性加密也稱為密鑰加密。所謂對(duì)稱,就是采用這種加密方法的雙方使用方式用同樣的密鑰進(jìn)行加密和解密。密鑰是控制加密與解密過(guò)程的指令。算法是一組規(guī)則,規(guī)定如何進(jìn)行加密和解密。因此加密的安全性不僅取決于加密算法本身,密鑰管理的安全性更是重要。因?yàn)榧用芎徒饷芏际褂猛粋€(gè)密鑰,如何把密鑰安全地傳遞到解密者手上就成了必須要解決的問(wèn)題。常用對(duì)稱加密算法DES:使用一個(gè)56位的密鑰以與附加的8位奇偶校驗(yàn)位(每組的第8位作為奇偶校驗(yàn)位),產(chǎn)生最大64位的分組大小。這是一個(gè)迭代的分組密碼,使用稱為Feistel的技術(shù),其中將加密的文本塊分成兩半。使用子密鑰對(duì)其中一半應(yīng)用循環(huán)功能,然后將輸出與另一半進(jìn)行“異或”運(yùn)算;接著交換這兩半,這一過(guò)程會(huì)繼續(xù)下去,但最后一個(gè)循環(huán)不交換。DES使用16輪循環(huán),使用異或,置換,代換,移位操作四種基本運(yùn)算。3DES:3DES(即TripleDES)是DES向AES過(guò)渡的加密算法(1999年,NIST將3-DES指定為過(guò)渡的加密標(biāo)準(zhǔn)),加密算法,其具體實(shí)現(xiàn)如下:設(shè)Ek()和Dk()代表DES算法的加密和解密過(guò)程,K代表DES算法使用的密鑰,P代表明文,C代表密文,這樣:3DES加密過(guò)程為:C=Ek3(Dk2(Ek1(P))),3DES解密過(guò)程為:P=Dk1(EK2(Dk3(C)))AES:密碼學(xué)中的高級(jí)加密標(biāo)準(zhǔn)(AdvancedEncryptionStandard,AES),又稱Rijndael加密法,是美國(guó)聯(lián)邦政府采用的一種區(qū)塊加密標(biāo)準(zhǔn)。這個(gè)標(biāo)準(zhǔn)用來(lái)替代原先的DES,已經(jīng)被多方分析且廣為全世界所使用。2.1.2非對(duì)稱加密非對(duì)稱加密算法需要兩個(gè)密鑰:公開(kāi)密鑰(publickey)和私有密鑰(privatekey)。公開(kāi)密鑰與私有密鑰是一對(duì),如果用公開(kāi)密鑰對(duì)數(shù)據(jù)進(jìn)行加密,只有用對(duì)應(yīng)的私有密鑰才能解密;如果用私有密鑰對(duì)數(shù)據(jù)進(jìn)行加密,那么只有用對(duì)應(yīng)的公開(kāi)密鑰才能解密。因?yàn)榧用芎徒饷苁褂玫氖莾蓚€(gè)不同的密鑰,所以這種算法叫作非對(duì)稱加密算法。非對(duì)稱加密算法實(shí)現(xiàn)機(jī)密信息交換的基本過(guò)程是:甲方生成一對(duì)密鑰并將其中的一把作為公用密鑰向其它方公開(kāi);得到該公用密鑰的乙方使用該密鑰對(duì)機(jī)密信息進(jìn)行加密后再發(fā)送給甲方;甲方再用自己保存的另一把專用密鑰對(duì)加密后的信息進(jìn)行解密。常用非對(duì)稱加密算法1.RSA:RSA算法是一種非對(duì)稱密碼算法,所謂非對(duì)稱,就是指該算法需要一對(duì)密鑰,使用其中一個(gè)加密,則需要用另一個(gè)才能解密。RSA的算法涉與三個(gè)參數(shù),n、e1、e2。其中,n是兩個(gè)大質(zhì)數(shù)p、q的積,n的二進(jìn)制表示時(shí)所占用的位數(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ì)。其中(n,e1)為公鑰,(n,e2)為私鑰。[1]RSA加解密的算法完全相同,設(shè)A為明文,B為密文,則:A=B^e2modn;B=A^e1modn;(公鑰加密體制中,一般用公鑰加密,私鑰解密)e1和e2可以互換使用,即:A=B^e1modn;B=A^e2modn;RSA的安全性依賴于大數(shù)分解,但是否等同于大數(shù)分解一直未能得到理論上的證明,因?yàn)闆](méi)有證明破解RSA就一定需要作大數(shù)分解。假設(shè)存在一種無(wú)須分解大數(shù)的算法,那它肯定可以修改成為大數(shù)分解算法。RSA的一些變種算法已被證明等價(jià)于大數(shù)分解。不管怎樣,分解n是最顯然的攻擊方法。人們已能分解多個(gè)十進(jìn)制位的大素?cái)?shù)。因此,模數(shù)n必須選大一些,因具體適用情況而定。Diffie-Hellman密鑰交換一種確保共享KEY安全穿越不安全網(wǎng)絡(luò)的方法,它是OAKLEY的一個(gè)組成部分。Whitefield與MartinHellman在1976年提出了一個(gè)奇妙的密鑰交換協(xié)議,稱為Diffie-Hellman密鑰交換協(xié)議/算法(Diffie-HellmanKeyExchange/AgreementAlgorithm).這個(gè)機(jī)制的巧妙在于需要安全通信的雙方可以用這個(gè)方法確定對(duì)稱密鑰。然后可以用這個(gè)密鑰進(jìn)行加密和解密。但是注意,這個(gè)密鑰交換協(xié)議/算法只能用于密鑰的交換,而不能進(jìn)行消息的加密和解密。雙方確定要用的密鑰后,要使用其他對(duì)稱密鑰操作加密算法實(shí)際加密和解密消息。基于原根的定義與性質(zhì),可以定義Diffie-Hellman密鑰交換算法.該算法描述如下:1.有兩個(gè)全局公開(kāi)的參數(shù),一個(gè)素?cái)?shù)q和一個(gè)整數(shù)a,a是q的一個(gè)原根.2.假設(shè)用戶A和B希望交換一個(gè)密鑰,用戶A選擇一個(gè)作為私有密鑰的隨機(jī)數(shù)XA(XA<q),并計(jì)算公開(kāi)密鑰YA=a^XAmodq。A對(duì)XA的值保密存放而使YA能被B公開(kāi)獲得。類似地,用戶B選擇一個(gè)私有的隨機(jī)數(shù)XB<q,并計(jì)算公開(kāi)密鑰YB=a^XBmodq。B對(duì)XB的值保密存放而使YB能被A公開(kāi)獲得.3.用戶A產(chǎn)生共享秘密密鑰的計(jì)算方式是K=(YB)^XAmodq.同樣,用戶B產(chǎn)生共享秘密密鑰的計(jì)算是K=(YA)^XBmodq.這兩個(gè)計(jì)算產(chǎn)生相同的結(jié)果:K=(YB)^XAmodq=(a^XBmodq)^XAmodq=(a^XB)^XAmodq(根據(jù)取模運(yùn)算規(guī)則得到)=a^(XBXA)modq=(a^XA)^XBmodq=(a^XAmodq)^XBmodq=(YA)^XBmodq因此相當(dāng)于雙方已經(jīng)交換了一個(gè)相同的秘密密鑰.4.因?yàn)閄A和XB是保密的,一個(gè)敵對(duì)方可以利用的參數(shù)只有q,a,YA和YB.因而敵對(duì)方被迫取離散對(duì)數(shù)來(lái)確定密鑰.例如,要獲取用戶B的秘密密鑰,敵對(duì)方必須先計(jì)算XB=inda,q(YB)然后再使用用戶B采用的同樣方法計(jì)算其秘密密鑰K.Diffie-Hellman密鑰交換算法的安全性依賴于這樣一個(gè)事實(shí):雖然計(jì)算以一個(gè)素?cái)?shù)為模的指數(shù)相對(duì)容易,但計(jì)算離散對(duì)數(shù)卻很困難.對(duì)于大的素?cái)?shù),計(jì)算出離散對(duì)數(shù)幾乎是不可能的.下面給出例子.密鑰交換基于素?cái)?shù)q=97和97的一個(gè)原根a=5.A和B分別選擇私有密鑰XA=36和XB=58.每人計(jì)算其公開(kāi)密鑰YA=5^36=50mod97YB=5^58=44mod97在他們相互獲取了公開(kāi)密鑰之后,各自通過(guò)計(jì)算得到雙方共享的秘密密鑰如下:K=(YB)^XAmod97=44^36=75mod97K=(YA)^XBmod97=50^58=75mod97從|50,44|出發(fā),攻擊者要計(jì)算出75很不容易2.2帶關(guān)鍵詞搜索的公鑰加密算法(PEKS)帶關(guān)鍵詞的公鑰加密(Publickeyencryptionwithkeywordsearch)是一種新型的密碼體制,允許我們?cè)诮?jīng)過(guò)加密的數(shù)據(jù)上進(jìn)行關(guān)鍵詞搜索,不僅保證數(shù)據(jù)接收方的隱私,同時(shí)提供了一種方法,使得我們無(wú)須對(duì)數(shù)據(jù)進(jìn)行解密就能快速有效地進(jìn)行搜索操作。一個(gè)非交互的帶關(guān)鍵詞檢索的公鑰加密體制包含如下四個(gè)概率多項(xiàng)式時(shí)間算法:(l)初始化:輸入安全參數(shù)k,輸出密鑰對(duì)(私鑰以與公鑰);(2)PEKS算法:以接收者的公鑰以與關(guān)鍵詞w作為輸入,通過(guò)PEKS算法計(jì)算出可用于搜索關(guān)鍵詞w的密文s,(3)限門產(chǎn)生算法:以接收者的私鑰和關(guān)鍵詞w作為輸入,生成關(guān)鍵詞w的限門,;(4)關(guān)鍵詞檢索算法:輸入關(guān)鍵詞w的限門以與一個(gè)PEKS密文如果w=w’,該算法返回”Yes”,否則返回”No”;2.3基于雙線性對(duì)的PEKS方案帶關(guān)鍵詞檢索的公鑰加密(PEKS)有多種構(gòu)造,大部分都是使用橢圓曲線上的雙線性對(duì)進(jìn)行構(gòu)造??傮w上,是使用了兩個(gè)階為素?cái)?shù)p的群,以與一個(gè)在這兩個(gè)群上的雙線性對(duì),該雙線性對(duì)滿足以下屬性:可計(jì)算性:給定g,,有一個(gè)多項(xiàng)式時(shí)間算法能夠計(jì)算;雙線性:對(duì)于任何整數(shù),有非退化性:如果g為的生成元,則為的生成元:BONEH等人基于以上的雙線性對(duì)性質(zhì)構(gòu)造了如下帶關(guān)鍵詞檢索的公鑰加密方案,同時(shí)使用兩個(gè)哈希函數(shù)和,方案由如下四個(gè)算法構(gòu)成:(1)初始化:輸入安全參數(shù)p決定群,的大小,算法隨機(jī)選擇一個(gè)整數(shù),以與群G,的一個(gè)生成元g。輸出(2):首先計(jì)算,隨機(jī)數(shù),輸出(3):輸出(4)(:令S=[A,B],如果,輸出“yes”,否則輸出“no,”。2.4PBC庫(kù)PBC庫(kù)是一種c語(yǔ)言開(kāi)發(fā)的開(kāi)源高精度數(shù)值運(yùn)算庫(kù),在GMP庫(kù)之上開(kāi)發(fā),主要提供了橢圓曲線上的配對(duì)運(yùn)算。本文在PEKS的運(yùn)算中使用到了PBC庫(kù)中的一些數(shù)據(jù)類型和函數(shù)調(diào)用:(1)數(shù)據(jù)類型:Element_t:elementsofanalgebraicstructurePairing_t:pairingswhereelementsbelong;caninitializefromsamplefromsamplepairingparametersbundledwithPBCintheparamsubdirectoryPbc_param_t:usedtogeneratepairingparameters(2)函數(shù):Voidelement_init_G1(element_te,pairing_tpairing)Voidelement_init_G2(element_te,pairing_tpairing)第三章數(shù)據(jù)安全存儲(chǔ)系統(tǒng)設(shè)計(jì)隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)、信息技術(shù)飛速發(fā)展,諸如電子商務(wù)等數(shù)字化產(chǎn)業(yè)正在世界范圍內(nèi)迅速崛起。從政府機(jī)關(guān)、企事業(yè)單位、科研院所、高校,甚至是普通人都越來(lái)越習(xí)慣于使用計(jì)算機(jī)存儲(chǔ)信息和數(shù)據(jù),同時(shí)利用局域網(wǎng)和互聯(lián)網(wǎng)實(shí)現(xiàn)互聯(lián)互通和信息共享。因此確保數(shù)據(jù)信息的安全存儲(chǔ)成為實(shí)現(xiàn)信息安全的首要條件。3.1系統(tǒng)設(shè)計(jì)總體要求數(shù)據(jù)安全存儲(chǔ)系統(tǒng)提供給用戶加密重要涉密文檔,既要安全可靠,又要方便快捷,因此應(yīng)能滿足以下要求:1.實(shí)用性:盡量滿足數(shù)據(jù)安全保護(hù)的各種需求,操作方便簡(jiǎn)單。2.穩(wěn)定性:研發(fā)過(guò)程中,盡量考慮各種可能出現(xiàn)的意外情況,保證系統(tǒng)能穩(wěn)定運(yùn)行,并建立健全的數(shù)據(jù)恢復(fù)機(jī)制,避免給用戶帶來(lái)不必要的損失。3.先進(jìn)性:采用目前先進(jìn)的技術(shù)與實(shí)現(xiàn)方法,保證系統(tǒng)各項(xiàng)功能性能良好。安全性:保證保護(hù)的數(shù)據(jù)不被有效竊取。3.2系統(tǒng)設(shè)計(jì)總體目標(biāo)本系統(tǒng)設(shè)計(jì)以安全存儲(chǔ)數(shù)據(jù)為最終目標(biāo),主要完成以下功能:3.2.1數(shù)據(jù)存儲(chǔ)功能數(shù)據(jù)的存儲(chǔ)是本系統(tǒng)的基礎(chǔ),也是必須滿足的功能之一。該系統(tǒng)是將數(shù)據(jù)以密文的形式存入硬盤,所以數(shù)據(jù)存儲(chǔ)系統(tǒng)需要保證以明文形式輸入的數(shù)據(jù)可以輸送至加密系統(tǒng)。當(dāng)加密完成后,以密文形式傳出的數(shù)據(jù)可以傳送回?cái)?shù)據(jù)存儲(chǔ)系統(tǒng),并將其安全的存儲(chǔ)在硬盤上。所以當(dāng)用戶需要存儲(chǔ)數(shù)據(jù)時(shí),首先應(yīng)選擇數(shù)據(jù)的存儲(chǔ)路徑,然后進(jìn)入數(shù)據(jù)輸入界面輸入數(shù)據(jù),當(dāng)數(shù)據(jù)輸入完成后,系統(tǒng)將執(zhí)行上述操作3.2.2數(shù)據(jù)的關(guān)鍵詞由于本系統(tǒng)是基于PEKS的數(shù)據(jù)存儲(chǔ),PEKS即帶有關(guān)鍵詞搜索的公鑰加密。所以在公鑰加密的基礎(chǔ)上,關(guān)鍵詞的提取也是本系統(tǒng)的一個(gè)基礎(chǔ)要點(diǎn)。關(guān)鍵詞在提取完成后也會(huì)被輸入加密系統(tǒng)。而在數(shù)據(jù)檢索時(shí),關(guān)鍵詞的作用不言而喻。所以在系統(tǒng)的設(shè)計(jì)中加入了關(guān)鍵詞輸入的部分,以用來(lái)記錄數(shù)據(jù)的關(guān)鍵詞3.2.3系統(tǒng)初始化系統(tǒng)在初始化時(shí),會(huì)自動(dòng)取安全大素?cái)?shù)p,g是p的本原根,p和g作為公開(kāi)的參數(shù)。存儲(chǔ)模塊選擇一個(gè)保密的隨機(jī)整數(shù)作為自己的私鑰,而存儲(chǔ)模塊的公鑰為,數(shù)據(jù)檢索系統(tǒng)選擇保密隨機(jī)整數(shù)作為自己的私鑰,相應(yīng)的公鑰則為。在用戶模塊中包含公鑰加密算法E,偽隨機(jī)序列生成器G,加密關(guān)鍵詞所需的帶密鑰的和秘密參數(shù)UN的安全哈希函數(shù)H,帶密鑰c的偽隨機(jī)函數(shù)。3.2.4基于PEKS的加密設(shè)計(jì)用戶模塊向存儲(chǔ)模塊發(fā)送包括關(guān)鍵詞(,...)的消息msg,用戶模塊采用如下方式對(duì)消息和關(guān)鍵詞進(jìn)行加密輸入公鑰,然后對(duì)整個(gè)消息進(jìn)行加密得到;計(jì)算,計(jì)算;其中為用帶密鑰的安全哈希函數(shù)H求x的值用偽隨機(jī)序列生成器G生成n-m為的,計(jì)算,加在Si后面,得到n位的,其中為帶密鑰的偽隨機(jī)函數(shù)計(jì)算關(guān)鍵詞密文將密文發(fā)送給存儲(chǔ)模塊輸入關(guān)鍵詞w和公鑰PKa輸入關(guān)鍵詞w和公鑰PKa生成帶密鑰的隨機(jī)函數(shù)生成帶密鑰的隨機(jī)函數(shù)生成安全哈希函數(shù)生成安全哈希函數(shù)偽隨機(jī)數(shù)列生成器偽隨機(jī)數(shù)列生成器3.2.5數(shù)據(jù)的檢索本文主要論述的是基于PEKS的數(shù)據(jù)存儲(chǔ),所以數(shù)據(jù)的檢索是本文的重點(diǎn)。當(dāng)用戶提出獲取關(guān)鍵詞w的數(shù)據(jù)時(shí),用戶首先通過(guò)用戶模塊生成搜索陷門,然后將搜索陷門傳送給存儲(chǔ)模塊進(jìn)行檢索。具體步驟如下;首先在用戶模塊上輸入自己的私鑰和關(guān)鍵詞kw用戶模塊根據(jù)輸入的私鑰,自動(dòng)計(jì)算用戶模塊根據(jù)得到的TK計(jì)算,為關(guān)鍵詞kw生成陷門,其中:向存儲(chǔ)模塊發(fā)送,請(qǐng)求檢索帶有關(guān)鍵詞kw的消息3.3系統(tǒng)整體設(shè)計(jì)模塊加密數(shù)據(jù)存儲(chǔ)數(shù)據(jù)關(guān)鍵詞檢測(cè)加密數(shù)據(jù)存儲(chǔ)數(shù)據(jù)關(guān)鍵詞檢測(cè)密文存儲(chǔ)關(guān)鍵詞加密密文存儲(chǔ)關(guān)鍵詞加密存儲(chǔ)模塊存儲(chǔ)模塊生成陷門檢索數(shù)據(jù)生成陷門檢索數(shù)據(jù)用戶界面用戶界面PEKS系統(tǒng)PEKS系統(tǒng)用戶模塊用戶模塊數(shù)據(jù)安全系統(tǒng)按照功能和操作劃分,主要分為兩大模塊:用戶模塊和存儲(chǔ)模塊用戶模塊:主要實(shí)現(xiàn)用戶界面,包括數(shù)據(jù)存儲(chǔ)界面和數(shù)據(jù)檢索界面。數(shù)據(jù)加密系統(tǒng)以與陷門生成系統(tǒng)(1)數(shù)據(jù)加密系統(tǒng):對(duì)即將存儲(chǔ)的數(shù)據(jù)進(jìn)行加密,采用公鑰加密的方式進(jìn)行加密,以確保其安全強(qiáng)度(2)關(guān)鍵詞加密系統(tǒng):用于對(duì)傳來(lái)的關(guān)鍵詞w進(jìn)行加密,并將密文與(1)中系統(tǒng)加密形成的密文共同傳輸給存儲(chǔ)模塊(3)陷門生成系統(tǒng):在數(shù)據(jù)檢索時(shí)用于生成陷門,并實(shí)現(xiàn)和存儲(chǔ)模塊的連接,以便數(shù)據(jù)的檢索存儲(chǔ)模塊:主要用來(lái)實(shí)現(xiàn)對(duì)用戶模塊傳來(lái)的密文的存儲(chǔ)功能以與在數(shù)據(jù)檢測(cè)時(shí)對(duì)關(guān)鍵詞檢測(cè)并選擇消息的功能關(guān)鍵詞檢索系統(tǒng):其中含有關(guān)鍵詞檢索函數(shù)test,對(duì)于傳遞來(lái)的陷門函數(shù),進(jìn)行關(guān)鍵詞檢索密文存儲(chǔ):對(duì)于傳遞來(lái)的密文,存儲(chǔ)模塊將會(huì)將他寫入到硬盤里第四章數(shù)據(jù)安全存儲(chǔ)系統(tǒng)設(shè)計(jì)4.1系統(tǒng)初始化4.1.1結(jié)構(gòu)體定義雙線性對(duì)結(jié)構(gòu)體typedefstructsysparam{ pairing_tpairing;}sysparams;公鑰對(duì)結(jié)構(gòu)體typedefstructpubkey{ element_tg,h;}pubkey;私鑰結(jié)構(gòu)體typedefstructprivatekey{element_talpha;}privatekey;PEKS密文結(jié)構(gòu)體typedefstructPEKSCipher{ element_tc1,c2;}PEKSCipher;陷門結(jié)構(gòu)體typedefstructTrapdoor{ element_tt;}Trapdoor;4.1.2PEKS系統(tǒng)初始化首先調(diào)用PCB庫(kù)中的函數(shù),形成雙線性初始化函數(shù),其中pbc_pairing_init_demo為pbc庫(kù)中的函數(shù),具體實(shí)現(xiàn)代碼如下:intpbc_pairing_init_demo(pairing_tpairing){ char*PairingInitString="typea\n""q87812522437781984754116475637862517942266222142323174592777324925129998224791\n""h1211468935978026776\n""r732455776559617\n""exp2159\n""exp1107\n""sign11\n""sign01\n";chars[1000];intrv;pbc_param_tparam;FILE*fp=stdin; fp=fopen("a.param","r");if(!fp)printf("erroropening%s","a.param");size_tcount=fread(s,1,1000,fp);if(!count)printf("inputerror");fclose(fp);rv=pairing_init_set_buf(pairing,PairingInitString,strlen(PairingInitString));if(rv){ returnrv;}rv=pairing_is_symmetric(pairing);if(!rv){ return-2;}return0;}當(dāng)系統(tǒng)進(jìn)行存儲(chǔ)操作時(shí),首先系統(tǒng)會(huì)生成密鑰,調(diào)用keygen函數(shù)生成密鑰,其中pk為公鑰,sk為私鑰。其中調(diào)用了PCB庫(kù)中的函數(shù),代碼實(shí)現(xiàn)如下intkeygen(sysparams*param,pubkey*pk,privatekey*sk){ element_init_G1(pk->g,param->pairing); element_init_G1(pk->h,param->pairing); element_init_Zr(sk->alpha,param->pairing); element_random(pk->g); element_random(sk->alpha); element_pow_zn(pk->h,pk->g,sk->alpha); return0;}4.1.3RSA加密系統(tǒng)初始化publicclassRSA{

//創(chuàng)建密鑰對(duì)生成器,指定加密和解密算法為RSA

publicString[]Skey_RSA(intkeylen){//輸入密鑰長(zhǎng)度

String[]output=newString[5];//用來(lái)存儲(chǔ)密鑰的endpq

try{

KeyPairGeneratorkpg=KeyPairGenerator.getInstance("RSA");

kpg.initialize(keylen);//指定密鑰的長(zhǎng)度,初始化密鑰對(duì)生成器

KeyPairkp=kpg.generateKeyPair();//生成密鑰對(duì)

RSAPublicKeypuk=(RSAPublicKey)kp.getPublic();

RSAPrivateCrtKeyprk=(RSAPrivateCrtKey)kp.getPrivate();

BigIntegere=puk.getPublicExponent();

BigIntegern=puk.getModulus();

BigIntegerd=prk.getPrivateExponent();

BigIntegerp=prk.getPrimeP();

BigIntegerq=prk.getPrimeQ();

output[0]=e.toString();

output[1]=n.toString();

output[2]=d.toString();

output[3]=p.toString();

output[4]=q.toString();

}catch(NoSuchAlgorithmExceptionex){

Logger.getLogger(RSA.class.getName()).log(Level.SEVERE,null,ex);

}

returnoutput;

}4.2數(shù)據(jù)存儲(chǔ)的實(shí)現(xiàn)4.2.1數(shù)據(jù)存儲(chǔ)界面4.2.2數(shù)據(jù)檢索流程實(shí)現(xiàn)在主界面點(diǎn)擊儲(chǔ)存按鈕后,程序會(huì)跳轉(zhuǎn)至數(shù)據(jù)存儲(chǔ)界面,在關(guān)鍵字一欄輸入關(guān)鍵字,在數(shù)據(jù)欄輸入數(shù)據(jù)完成后,點(diǎn)擊保存按鈕后,會(huì)實(shí)現(xiàn)事件響應(yīng),系統(tǒng)會(huì)將數(shù)據(jù)content和關(guān)鍵字keyword發(fā)送至PEKS系統(tǒng)中進(jìn)行后續(xù)的操作,PEKS系統(tǒng)在接受關(guān)鍵詞和數(shù)據(jù)后會(huì)在系統(tǒng)內(nèi)進(jìn)行加密操作,并返回密文cipher,系統(tǒng)會(huì)將cipher發(fā)送至存儲(chǔ)系統(tǒng)SaveImpl,調(diào)用.save函數(shù)進(jìn)行存儲(chǔ),具體代碼實(shí)現(xiàn)如下save1.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){Stringkeyword1=keyword.getText(); Stringcontent1=content.getText(); PEKSSystempeksSys=newPEKSSystem(); Stringcipher=peksSys.save(keyword1,content1); SaveImplsi=newSaveImpl(cipher); si.save(); } }4.2.3PEKS系統(tǒng)實(shí)現(xiàn)(1)生成密鑰后,對(duì)即將進(jìn)行加密存儲(chǔ)的數(shù)據(jù)的關(guān)鍵進(jìn)行PEKS加密,其中pk為公鑰,keyword為關(guān)鍵詞,keywordlen為關(guān)鍵詞長(zhǎng)度,cipher為密文,具體實(shí)現(xiàn)代碼如下:intPEKS(sysparams*param,pubkey*pk,unsignedchar*keyword,intkeywordLen,PEKSCipher*cipher)//PEKS密文生成函數(shù){ element_tr,tmp1,tmp2; element_init_G1(cipher->c1,param->pairing); element_init_GT(cipher->c2,param->pairing); element_init_Zr(r,param->pairing); element_random(r); element_pow_zn(cipher->c1,pk->g,r); element_init_G1(tmp1,param->pairing); element_from_hash(tmp1,keyword,keywordLen); element_init_G1(tmp2,param->pairing); element_pow_zn(tmp2,pk->h,r); element_pairing(cipher->c2,tmp1,tmp2); return0;}使用RSA加密算法對(duì)數(shù)據(jù)進(jìn)行加密,具體代碼實(shí)現(xiàn)如下,content為輸入PEKS系統(tǒng)中的明文publicStringEnc_RSA(Stringcontent,StringeStr,StringnStr){Stringcipher=newString();try{BigIntegere=newBigInteger(eStr);BigIntegern=newBigInteger(nStr);byte[]ptext=mingwen.getBytes("UTF8");BigIntegerm=newBigInteger(ptext);BigIntegerc=m.modPow(e,n);cipher=c.toString();}catch(UnsupportedEncodingExceptionex){Logger.getLogger(RSA.class.getName()).log(Level.SEVERE,null,ex);}returncipher;}PEKS系統(tǒng)在加密完數(shù)據(jù)和關(guān)鍵詞后會(huì)將兩個(gè)密文一起發(fā)送給存儲(chǔ)模塊進(jìn)行存儲(chǔ),存儲(chǔ)模塊調(diào)用IO輸出流,將密文寫入文件中實(shí)現(xiàn)存儲(chǔ),具體代碼實(shí)現(xiàn)如下fos=new(current); char[]chardata=content.toCharArray(); for(inta=0;a<chardata.length;a++){ fos.write(chardata[a]); }4.3數(shù)據(jù)檢索的實(shí)現(xiàn)4.3.1數(shù)據(jù)檢索界面4.3.2數(shù)據(jù)檢索流程實(shí)現(xiàn)當(dāng)用戶點(diǎn)擊了檢索按鈕后,系統(tǒng)會(huì)跳轉(zhuǎn)至檢索界面,在用戶輸入完成關(guān)鍵字后,系統(tǒng)會(huì)將關(guān)鍵字keyword發(fā)送至PEKS系統(tǒng)進(jìn)行陷門函數(shù)操作,同時(shí)將輸出的關(guān)鍵詞密文keyWord_cipher送至存儲(chǔ)系統(tǒng)SaveImpl中的search方法,其中包含TEST(關(guān)鍵詞檢索算法),該算法會(huì)將發(fā)送來(lái)的keyWord_cipher與系統(tǒng)中的每個(gè)密文進(jìn)行比對(duì),若test返回true,則SaveImpl中的search返回輸出該數(shù)據(jù),具體代碼實(shí)現(xiàn)如下save1.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){ StringkeyWord1=keyword.getText(); PEKSSystempeksSys=newPEKSSystem(); StringkeyWord_cipher=peksSys.trapdoor(keyWord1); SaveImplsi=newSaveImpl(); Stringcontent_result=""; try{ content_result=si.search(keyWord_cipher); }catch(IOExceptione1){ e1.printStackTrace(); } result_show.setText(content_result); } });4.3.3數(shù)據(jù)檢索中的PEKS實(shí)現(xiàn)當(dāng)用戶輸入關(guān)鍵詞keyword結(jié)束后,系統(tǒng)會(huì)將keyword發(fā)送給PEKS系統(tǒng),調(diào)用其中的陷門函數(shù),生成加密后的關(guān)鍵詞密文,具體實(shí)現(xiàn)代碼如下,其中sk為私鑰,keyword為關(guān)鍵詞,keywordLen為關(guān)鍵詞長(zhǎng)度inttrapdoor(sysparams*param,privatekey*sk,unsignedchar*keyword,intkeywordLen,Trapdoor*tw){ element_ttmp; element_init_G1(tmp,param->pairing); element_from_hash(tmp,keyword,keywordLen); element_init_G1(tw->t,param->pairing); element_pow_zn(tw->t,tmp,sk->alpha); return0;}在PEKS系統(tǒng)中生成陷門函數(shù)后,系統(tǒng)會(huì)將陷門函數(shù)生成的加密后的關(guān)鍵詞密文發(fā)送至存儲(chǔ)系統(tǒng)中的關(guān)鍵詞檢索算法中,當(dāng)該算法返回TRUE時(shí),即找到該數(shù)據(jù),具體的實(shí)現(xiàn)代碼如下,其中tw為陷門函數(shù)中生成的加密后的關(guān)鍵詞密文,cipher為存儲(chǔ)在系統(tǒng)中的密文inttest(sysparams*param,Trapdoor*tw,PEKSCipher*cipher){ element_ttmp; element_init_GT(tmp,param->pairing); element_pairing(tmp,cipher->c1,tw->t); if(element_cmp(tmp,cipher->c2)==0) return0; else return-1;}使用RSA解密密文,具體代碼實(shí)現(xiàn)如下,其中cipher為存儲(chǔ)系統(tǒng)輸出的密文,content為解密后輸出的明文publicStringDec_RSA(Stringcipher,StringdStr,StringnStr){StringBuffercontent=newStringBuffer();BigIntegerd=newBigInteger(dStr);//獲取私鑰的參數(shù)d,nBigIntegern=newBigInteger(nStr);BigIntegerc=newBigInteger(miwen);BigIntegerm=c.modPow(d,n);//解密明文byte[]mt=m.toByteArray();//計(jì)算明文對(duì)應(yīng)的字符串并輸出for(inti=0;i<mt.length;i++){content.append((char)mt[i]);}returncontent.toString();}}第四章系統(tǒng)測(cè)試測(cè)試內(nèi)容測(cè)試方法測(cè)試結(jié)果備注數(shù)據(jù)存儲(chǔ)啟動(dòng)系統(tǒng),進(jìn)行操作測(cè)試通過(guò)10臺(tái)計(jì)算機(jī),每臺(tái)不少于50次數(shù)據(jù)加密強(qiáng)度對(duì)數(shù)據(jù)加密強(qiáng)度進(jìn)行破解通過(guò)對(duì)兩組數(shù)據(jù)進(jìn)行破解,失敗數(shù)據(jù)檢索啟動(dòng)系統(tǒng),進(jìn)行操作測(cè)試通過(guò)穩(wěn)定些兼容性通過(guò)第五章結(jié)束語(yǔ)數(shù)據(jù)安全與信息系統(tǒng)的穩(wěn)定可靠息息相關(guān),因此,數(shù)據(jù)安全問(wèn)題得到了越來(lái)越廣泛的關(guān)注。本文設(shè)計(jì)和實(shí)現(xiàn)了數(shù)據(jù)安全存儲(chǔ)系統(tǒng),使用密碼技術(shù)和手段對(duì)信息系統(tǒng)內(nèi)部的數(shù)據(jù)進(jìn)行透明加密保護(hù),成功達(dá)到了信息系統(tǒng)等級(jí)保護(hù)中有關(guān)數(shù)據(jù)安全保護(hù)的基本要求和目標(biāo)。本系統(tǒng)是基于PEKS,即帶關(guān)鍵詞的公鑰加密系統(tǒng)。該系統(tǒng)可在不用對(duì)數(shù)據(jù)解密的情況下對(duì)數(shù)據(jù)進(jìn)行關(guān)鍵詞查找,保證了效率的同時(shí)也保證了其安全性和穩(wěn)定性。在我查閱資料的時(shí)候,學(xué)習(xí)到了對(duì)pbc庫(kù)的學(xué)習(xí)使用,由于pbc庫(kù)是基于C語(yǔ)言的,然而我又不是很掌握c語(yǔ)言的編程,所以本系統(tǒng)的主界面是在JAVA下做成的,而PEKS中的核心代碼是通過(guò)在JAVA中對(duì)C的調(diào)用來(lái)實(shí)現(xiàn)的,總的來(lái)說(shuō)是在C語(yǔ)言代碼段的開(kāi)頭加上JAVA語(yǔ)言文件編譯成頭文件加在C語(yǔ)言代碼段的開(kāi)頭進(jìn)行調(diào)用。在數(shù)據(jù)加密的過(guò)程中,使用RSA和DES等加密技術(shù),在很大程度上對(duì)數(shù)據(jù)安全進(jìn)行了加強(qiáng),保證了數(shù)據(jù)加密強(qiáng)度的同時(shí)也增加了數(shù)據(jù)安全存儲(chǔ)的效率。數(shù)字簽名也在一定程度上加強(qiáng)了數(shù)據(jù)的安全存儲(chǔ),信息的不可抵賴性在這里得到了體現(xiàn),在公鑰加密中中間人攻擊是一種常見(jiàn)的形式,采用了數(shù)字簽名后極大的避免了這種攻擊形式。但與此同時(shí),本系統(tǒng)中還有很多缺陷,比如在密文存入硬盤的過(guò)程只是簡(jiǎn)單的調(diào)用了IO文件的輸入輸出,沒(méi)有在存儲(chǔ)進(jìn)硬盤這一模塊下工夫,我今后的工作中一定會(huì)多多研究這一方面。在比如在數(shù)據(jù)傳入PEKS系統(tǒng)時(shí)也未做保密處理,可能會(huì)存在漏洞,但由于我的知識(shí)匱乏,這一方面我也仍在努力??偠灾?,信息安全的形式日益嚴(yán)峻,信息安全形式的多樣性必然會(huì)導(dǎo)致破解信息安全的方法日漸增多,時(shí)代在改變,技術(shù)也在發(fā)展,我希望能在今后的工作中習(xí)得更加先進(jìn)的信息安全技術(shù),獲得更加先進(jìn)的信息安全理念新技術(shù)、新理念融合進(jìn)系統(tǒng),使系統(tǒng)功能得到不斷完善,使之在信息系統(tǒng)安全中發(fā)揮更大作用。致謝大學(xué)生活一晃而過(guò),回首走過(guò)的歲月,心中倍感充實(shí),當(dāng)我寫完這篇畢業(yè)論文的時(shí)候,有一種如釋重負(fù)的感覺(jué),感慨良多。首先誠(chéng)摯的感謝我的論文指導(dǎo)老師胡程瑜老師。他在忙碌的教學(xué)工作中擠出時(shí)間來(lái)審查、修改我的論文。還有教過(guò)我的所有老師們,你們嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣;他們循循善誘的教導(dǎo)和不拘一格的思路給予我無(wú)盡的啟迪。感謝四年中陪伴在我身邊的同學(xué)、朋友,感謝他們?yōu)槲姨岢龅挠幸娴慕ㄗh和意見(jiàn),有了他們的支持、鼓勵(lì)和幫助,我才能充實(shí)的度過(guò)了四年的學(xué)習(xí)生活。感謝所有的任課老師,是你們讓我能夠靜靜地坐下來(lái),在知識(shí)的海洋里吸取更多的營(yíng)養(yǎng),從而能夠?yàn)樽约哼M(jìn)一步地加油充電。通過(guò)論文的撰寫,使我能夠更系統(tǒng)、全面地學(xué)習(xí)計(jì)算機(jī)相關(guān)的前沿理論知識(shí),并得以借鑒眾多專家學(xué)者的寶貴經(jīng)驗(yàn),這對(duì)于我今后的工作和我為之服務(wù)的企業(yè),無(wú)疑是不可多得的寶貴財(cái)富。由于本理論水平比較有限,論文中的有些觀點(diǎn)以與對(duì)企業(yè)示例的歸納和闡述難免有疏漏和不足的地方,歡迎老師和專家們指正。參考文獻(xiàn)[1]盧開(kāi)澄,計(jì)算機(jī)密碼學(xué)一計(jì)算機(jī)網(wǎng)絡(luò)中的數(shù)據(jù)保密與安全[M〕,北京:清華大學(xué)出版社,2003.[2]RiehterJeffrey,Windows核心編程[M」,北京:機(jī)械工業(yè)出版社,2003.[3]谷大武等,高級(jí)加密標(biāo)準(zhǔn)(AES)算法一Rijndael的設(shè)計(jì)[M孔北京:清華大學(xué)出版社,2003.[4]程庭,張明慧,一種基于DES和RSA的數(shù)據(jù)加密方案與實(shí)現(xiàn)「J」,河南教育學(xué)報(bào),自然科學(xué)出版社,2003,12.[5]徐桂祥.《數(shù)據(jù)庫(kù)系統(tǒng)原理和應(yīng)用技術(shù)》.清華大學(xué)業(yè)出版社,2010[6]楊學(xué)全.《SQLServer實(shí)例教程》.電子工業(yè)出版社,2007[7]Y.DanielLiang.《IntroductiontoJavaProgramming.PearsonEducation》,2008[8]劉偉,張利國(guó).《JavaWeb開(kāi)發(fā)與實(shí)戰(zhàn):Eclipse+Tomcat+Servlet+JSP整合應(yīng)用》.科學(xué)出版社,2008[9]郝玉龍.《JavaEE編程技術(shù)》.清華大學(xué)出版社,2008[10]耿祥義.《JSP基礎(chǔ)教程》.清華大學(xué)出版社,2004[11]程偉,汪孝宜.《開(kāi)發(fā)者突擊:JSP網(wǎng)絡(luò)開(kāi)發(fā)經(jīng)典模塊實(shí)現(xiàn)全集》.電子工業(yè)出版社,2008[12]張新曼.《精通JSP:Web開(kāi)發(fā)技術(shù)與典型應(yīng)用》.人民郵電出版社,2007[13]趙斌.《SQLServer2008應(yīng)用程序開(kāi)發(fā)案例解析》.科學(xué)出版社,2009[14]郭鄭州,陳軍紅.《SQLServer2008完全學(xué)習(xí)手冊(cè)》.清華大學(xué)出版社,2011[15]ItzikBen-Gan.《MicrosoftSQLServer2008技術(shù)內(nèi)幕:T-SQL查詢:T-SQLquerying》.電子工業(yè)出版社,2010[16]崔群法,祝紅濤,趙喜來(lái).《SQLServer2008中文版從入門到精通》.電子工業(yè)出版社,2009附錄1英文文獻(xiàn)SENTINEL:SecuringDatabasefromLogicFlawsinWebApplicationsXiaoweiLiDepartmentofElectricalEngineeringandComputerScienceVanderbiltUniversityNashville,TNUSA37203xiaowei.WeiYanDepartmentofElectricalEngineeringandComputerScienceVanderbiltUniversityNashville,TNUSA37203wei.YuanXueDepartmentofElectricalEngineeringandComputerScienceVanderbiltUniversityNashville,TNUSA37203yuan.ABSTRACTLogicflawswithinwebapplicationsallowtheattackerstodiscloseortampersensitiveinformationstoredinback-enddatabases,sincethewebapplicationusuallyactsasthesingletrusteduserthatinteractswiththedatabase.Inthispaper,wemodelthewebapplicationasanextendedfinitestatemachineandpresentablack-boxapproachforderivingtheapplicationspecificationanddetectingmaliciousSQLqueriesthatviolatethespecification.Severalchallengesarise,suchashowtoextractpersistentstateinformationinthedatabaseandinferdataconstraints.WesystematicallyextractasetofinvariantsfromobservedSQLqueriesandresponses,aswellassessionvariables,astheapplicationspecification.AnysuspiciousSQLqueriesthatviolatecorrespondinginvariantsareidentifiedaspotentialattacks.WeimplementaprototypedetectionsystemSENTINEL(SEcuriNgdaTabasefromlogIcflawsiNwEbappLication)andevaluateitusingasetofreal-worldwebapplications.Theexperimentresultsdemonstratetheeffectivenessofourapproachandacceptableperformanceoverheadisincurredbyourimplementation.CategoriesandSubjectDescriptorsH.2.7[DatabaseManagement]:DatabaseAdministration—Security,integrity,andprotection;K.6.5[ManagementofComputingandInformationSystems]:SecurityandProtection—UnauthorizedaccessGeneralTermsDesign,Experimentation,SecurityKeywordsLogicFlaw,WebApplicationSecurity,ExtendedFiniteStateMachine,SQLSignature,InvariantPermissiontomakedigitalorhardcopiesofallorpartofthisworkforpersonalorclassroomuseisgrantedwithoutfeeprovidedthatcopiesarenotmadeordistributedforprofitorcommercialadvantageandthatcopiesbearthisnoticeandthefullcitationonthefirstpage.Tocopyotherwise,torepublish,topostonserversortoredistributetolists,requirespriorspecificpermissionand/orafee.CODASPY’12,February7–9,2012,SanAntonio,Texas,USA.Copyright2012ACM978-1-4503-1091-8/12/02...$10.00.Database-backedwebapplicationshavebecomeaprevalentvenuefordisseminatinginformationandservices.AnenormousamountofinformationismadeaccessibleonInternetthroughwebapplications,whichinteractwiththebackenddatabaseonbehalfofusers.Whileprovidinggreatconveniencetousers,thosewebapplicationsalsoattractalargenumberofsecurityexploits.Accordingtoarecentsurvey[29],theattacksthatsuccessfullydiscloseortampersensitiveinformationbycompromisingvulnerablewebapplicationsaccountformorethan30%ofallthecyberattacks.Forinstance,onJune2010,itwasreportedthatavulnerabilityofAT&TwebsiteallowedanattackertoharvesttheAppleiPADsubscribers’emailsbyenumeratingICC-IDnumbers,whichaffectedover100,000Applecustomers[1].IntheWebscenario,thefront-endwebapplicationactsasthesingleuserthatinteractswiththedatabase.Thus,thedatabasefullytruststhewebapplication,acceptsandexecutesallthequeriessubmittedbytheapplication.Assuch,thevulnerabilitieswithinwebapplicationsmayintroducesecurityconcernsfortheinformationstoredinthedatabase.Oneclassofattacksexploittheapplication’sinputvalidationmechanismstotampertheintendedstructureofSQLqueriesissuedbytheapplication,whichiswellknownasSQLinjection.Anotherclassofattacksexploitlogicflawswithintheapplication,referredtoasstateviolationattacks[9],totricktheapplicationintosendingSQLqueriesatincorrectapplicationstates.Forexample,anattackermayretrieveotherusers’accountinformationwithoutprovidingtheadministrator’scredentialtotheapplication.Whilealargebodyofliteraturesfocusonfortifyingtheapplication’sinputvalidationmechanisms,onlyafewworkshaveattemptedtoaddresslogicflawswithinthewebapplications.Logicflawsarespecifictothefunctionalitiesofwebapplications,thusmoredifficulttohandle.Thekeytothisproblemistoderivetheapplication’sintendedlogic(i.e.,specification)inageneralandautomatedway.Oneapproachtoinferringtheapplicationspecificationisbyleveragingprogramsourcecode.Swaddler[9]establishesstatisticalmodelsoftheapplicationstateforeachprogramblockusingsessionvariables,whileWaler[13]characterizestheapplicationlogicbyassociatingvalue-basedinvariantsonfunctionparametersandsessionvariableswitheachprogramfunction.Thisapproachislimitedinthattheyrelyonprogramsourcecodetoextractthespecification.Theinferredspecificationishighlydependentonhowtheapplicationisstructuredandimplemented(e.g.,thedefinitionofaprogramfunctionorblock).Thus,implementationflawsmayresultinaninaccuratespecification.Anotherapproachinferstheapplicationspecificationbyobservingandcharacterizingtheapplication’sexternalbehavior.BLOCK[18]observesthewebrequests/responsesbetweenthewebapplicationanditsusersandextractsinvariantsass

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論