【正文】
g the application specification and detecting malicious SQL queries that violate the specification. Several challenges arise, such as how to extract persistent state information in the database and infer data constraints. We systematically extract a set of invariants from observed SQL queriesand responses, as well as session variables, as the application specification. Any suspicious SQL queries that violate corresponding invariants are identified as potential attacks. Weimplement a prototype detection system SENTINEL (SEcuriNg daTabase from logIc flaws iN wEb appLication) and evaluate it using a set of realworld web applications. The experiment results demonstrate the effectiveness of our approach and acceptable performance overhead is incurred by our implementation.Categories and Subject Descriptors [Database Management]: Database Administration—Security, integrity, and protection。本系統(tǒng)是基于PEKS,即帶關(guān)鍵詞的公鑰加密系統(tǒng)。 element_init_GT(tmp, parampairing)。 } 數(shù)據(jù)檢索界面當(dāng)用戶點(diǎn)擊了檢索按鈕后,系統(tǒng)會跳轉(zhuǎn)至檢索界面,在用戶輸入完成關(guān)鍵字后,系統(tǒng)會將關(guān)鍵字keyword發(fā)送至PEKS系統(tǒng)進(jìn)行陷門函數(shù)操作,同時將輸出的關(guān)鍵詞密文keyWord_cipher送至存儲系統(tǒng)SaveImpl中的search方法,其中包含TEST(關(guān)鍵詞檢索算法),該算法會將發(fā)送來的keyWord_cipher與系統(tǒng)中的每個密文進(jìn)行比對,若test返回true,則SaveImpl中的search返回輸出該數(shù)據(jù),具體代碼實(shí)現(xiàn)如下(new ActionListener(){ public void actionPerformed(ActionEvent e) { String keyWord1 = ()。 element_pairing(cipherc2, tmp1, tmp2)。 } 數(shù)據(jù)存儲的實(shí)現(xiàn) 數(shù)據(jù)存儲界面在主界面點(diǎn)擊儲存按鈕后,程序會跳轉(zhuǎn)至數(shù)據(jù)存儲界面,在關(guān)鍵字一欄輸入關(guān)鍵字,在數(shù)據(jù)欄輸入數(shù)據(jù)完成后,點(diǎn)擊保存按鈕后,會實(shí)現(xiàn)事件響應(yīng),系統(tǒng)會將數(shù)據(jù)content和關(guān)鍵字keyword發(fā)送至PEKS系統(tǒng)中進(jìn)行后續(xù)的操作,PEKS系統(tǒng)在接受關(guān)鍵詞和數(shù)據(jù)后會在系統(tǒng)內(nèi)進(jìn)行加密操作,并返回密文cipher,系統(tǒng)會將cipher發(fā)送至存儲系統(tǒng)SaveImpl, 函數(shù)進(jìn)行存儲,具體代碼實(shí)現(xiàn)如下(new ActionListener(){ public void actionPerformed(ActionEvent e) { String keyword1 = ()。 (keylen)。 fclose(fp)。 }pubkey。本系統(tǒng)設(shè)計(jì)以安全存儲數(shù)據(jù)為最終目標(biāo),主要完成以下功能:數(shù)據(jù)的存儲是本系統(tǒng)的基礎(chǔ),也是必須滿足的功能之一。B對XB的值保密存放而使YB能被A公開獲得. = (YB)^XA mod ,用戶B產(chǎn)生共享秘密密鑰的計(jì)算是K = (YA)^XB mod : K = (YB)^XA mod q = (a^XB mod q)^XA mod q = (a^XB)^XA mod q (根據(jù)取模運(yùn)算規(guī)則得到) = a^(XBXA) mod q = (a^XA)^XB mod q = (a^XA mod q)^XB mod q = (YA)^XB mod q 因此相當(dāng)于雙方已經(jīng)交換了一個相同的秘密密鑰. ,一個敵對方可以利用的參數(shù)只有q,a,,要獲取用戶B的秘密密鑰,敵對方必須先計(jì)算 XB = inda,q(YB) 然后再使用用戶B采用的同樣方法計(jì)算其秘密密鑰K. DiffieHellman密鑰交換算法的安全性依賴于這樣一個事實(shí):雖然計(jì)算以一個素?cái)?shù)為模的指數(shù)相對容易,計(jì)算出離散對數(shù)幾乎是不可能的. = 97和97的一個原根a = = 36和XB = YA = 5^36 = 50 mod 97 YB = 5^58 = 44 mod 97 在他們相互獲取了公開密鑰之后,各自通過計(jì)算得到雙方共享的秘密密鑰如下: K = (YB)^XA mod 97 = 44^36 = 75 mod 97 K = (YA)^XB mod 97 = 50^58 = 75 mod 97 從|50,44|出發(fā),攻擊者要計(jì)算出75很不容易 帶關(guān)鍵詞搜索的公鑰加密算法(PEKS)帶關(guān)鍵詞的公鑰加密(Public key encryption with keyword search)是一種新型的密碼體制,允許我們在經(jīng)過加密的數(shù)據(jù)上進(jìn)行關(guān)鍵詞搜索,不僅保證數(shù)據(jù)接收方的隱私,同時提供了一種方法,使得我們無須對數(shù)據(jù)進(jìn)行解密就能快速有效地進(jìn)行搜索操作。其中(n,e1)為公鑰,(n,e2)為私鑰。因?yàn)榧用芎徒饷芏际褂猛粋€密鑰,如何把密鑰安全地傳遞到解密者手上就成了必須要解決的問題。網(wǎng)絡(luò)中的一些數(shù)據(jù)是存在極高的機(jī)密性的,例如賬號密碼等一系列數(shù)據(jù)。我們反復(fù)制定數(shù)據(jù)安全的需求和標(biāo)準(zhǔn),正是由于這個原因,信息技術(shù)的提升,網(wǎng)絡(luò)的日益完善與發(fā)達(dá),都使得安全這個詞的標(biāo)準(zhǔn)一再拔高,一再需要重新界定,一勞永逸解決這個問題顯得多么的不切實(shí)際。作為老百姓來說,信息安全也不可小視。電子存儲介質(zhì)一旦受損,那么信息的安全何以保障,在信息化的當(dāng)今時代,一旦信息泄露引發(fā)的問題可能足以致命。本文主要研究可搜索加密技術(shù),針對現(xiàn)有的帶關(guān)鍵詞檢索公鑰加密方案中大量對運(yùn)算需要消耗較多時間、效率不高等問題,提出了一種高效的帶關(guān)鍵詞檢索的公鑰加密方案。作為必要的基礎(chǔ)環(huán)節(jié),使得信息系統(tǒng)的運(yùn)作更為安全和完善?,F(xiàn)代信息系統(tǒng)發(fā)展帶來了生活的便利,同時也帶來了數(shù)據(jù)安全這一重大課題。需要對加密和解密使用相同密鑰的加密算法。因?yàn)榧用芎徒饷苁褂玫氖莾蓚€不同的密鑰,所以這種算法叫作非對稱加密算法。Whitefield與Martin Hellman在1976年提出了一個奇妙的密鑰交換協(xié)議,稱為DiffieHellman密鑰交換協(xié)議/算法(DiffieHellman Key Exchange/Agreement Algorithm).這個機(jī)制的巧妙在于需要安全通信的雙方可以用這個方法確定對稱密鑰。can initialize from sample from sample pairing parameters bundled with PBC in the param subdirectoryPbc_param_t: used to generate pairing parameters (2)函數(shù):Void element_init_G1(element_t e,pairing_t pairing)Void element_init_G2(element_t e,pairing_t pairing) 第三章 數(shù)據(jù)安全存儲系統(tǒng)設(shè)計(jì)隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)、信息技術(shù)飛速發(fā)展,諸如電子商務(wù)等數(shù)字化產(chǎn)業(yè)正在世界范圍內(nèi)迅速崛起。在用戶模塊中包含公鑰加密算法E,偽隨機(jī)序列生成器G,加密關(guān)鍵詞所需的帶密鑰的和秘密參數(shù)UN的安全哈希函數(shù)H,帶密鑰c的偽隨機(jī)函數(shù)。 int rv。 element_init_Zr(skalpha, parampairing)。 output[0]=()。 element_init_Zr(r, parampairing)。 } catch (UnsupportedEncodingException ex) { (()).log(, null, ex)。(1) 當(dāng)用戶輸入關(guān)鍵詞keyword結(jié)束后,系統(tǒng)會將keyword發(fā)送給PEKS系統(tǒng),調(diào)用其中的陷門函數(shù),生成加密后的關(guān)鍵詞密文,具體實(shí)現(xiàn)代碼如下,其中sk為私鑰,keyword為關(guān)鍵詞,keywordLen為關(guān)鍵詞長度int trapdoor(sysparams *param, privatekey *sk, unsigned char *keyword, int keywordLen, Trapdoor *tw) { element_t tmp。//解密明文 byte[] mt=()。首先誠摯的感謝我的論文指導(dǎo)老師胡程瑜老師。還有教過我的所有老師們,你們嚴(yán)謹(jǐn)細(xì)致、一絲不茍的作風(fēng)一直是我工作、學(xué)習(xí)中的榜樣;他們循循善誘的教導(dǎo)和不拘一格的思路給予我無盡的啟迪。i。 element_from_hash(tmp,keyword,keywordLen)。 }(3) PEKS系統(tǒng)在加密完數(shù)據(jù)和關(guān)鍵詞后會將兩個密文一起發(fā)送給存儲模塊進(jìn)行存儲,存儲模塊調(diào)用IO輸出流,將密文寫入文件中實(shí)現(xiàn)存儲,具體代碼實(shí)現(xiàn)如下FileOutputStream fos = new FileOutputStream(current)。 element_pow_zn(cipherc1, pkg, r)。 output[2]=()。 element_random(skalpha)。 FILE *fp = stdin。當(dāng)用戶提出獲取關(guān)鍵詞w的數(shù)據(jù)時,用戶首先通過用戶模塊生成搜索陷門,然后將搜索陷門傳送給存儲模塊進(jìn)行檢索。因此確保數(shù)據(jù)信息的安全存儲成為實(shí)現(xiàn)信息安全的首要條件。但是注意,這個密鑰交換協(xié)議/算法只能用于密鑰的交換,而不能進(jìn)行消息的加密和解密。常用非對稱加密算法:RSA算法是一種非對稱密碼算法,所謂非對稱,就是指該算法需要一對密鑰,使用其中一個加密,則需要用另一個才能解密。對稱性加密也稱為密鑰加密。由此,各種新技術(shù)便應(yīng)運(yùn)而生。然而一旦這些介質(zhì)受到攻擊,明文形式保存的信息就會遭到泄露,那么所帶來的后果將是十分嚴(yán)重的,輕則需要重新錄入,重則面臨巨大損失。 公鑰加密??v觀當(dāng)今社會,信息的存儲逐漸取代了傳統(tǒng)的紙質(zhì)形式,轉(zhuǎn)而大多是以電子形式進(jìn)行的。正是因?yàn)樾畔r代的到來,所以信息安全尤其顯得重要。這導(dǎo)致了一個重要問題,就是在一些網(wǎng)絡(luò)系統(tǒng)中,用戶信息很可能被直接在網(wǎng)絡(luò)中獲取明文信息,導(dǎo)致信息泄露。應(yīng)運(yùn)而生的數(shù)據(jù)安全系統(tǒng)可以對存儲介質(zhì)提供加密保護(hù),即使系統(tǒng)出現(xiàn)失控或別的一些故障,數(shù)據(jù)安全系統(tǒng)依舊為數(shù)據(jù)安全提供者保障。算法是一組規(guī)則,規(guī)定如何進(jìn)行加密和解密。e1和e2是一對相關(guān)的值,e1可以任意取,但要求e1與(p1)*(q1)互質(zhì);再選擇e2,要求(e2*e1)mod((p1)*(q1))=1。A對XA的值保密存放而使YA能被B公開獲得。:采用目前先進(jìn)的技術(shù)及實(shí)現(xiàn)方法,保證系統(tǒng)各項(xiàng)功能性能良好。 }sysparams。 size_t count = fread(s, 1, 1000, fp)。} RSA加密系統(tǒng)初始化public class RSA { //創(chuàng)建密鑰對生成器,指定加密和解密算法為RSA public String[] Skey_RSA(int keylen){//輸入密鑰長度 String[] output = new String[5]。 } catch (NoSuchAlgorithmException ex) { (()).log(, null, ex)。 element_init_G1(tmp2, parampairing)。a。 return 0。 }} 第四章 系統(tǒng)測試測試內(nèi)容測試方法測試結(jié)果備注數(shù)據(jù)存儲啟動系統(tǒng),進(jìn)行操作測試通過10臺計(jì)算機(jī),每臺不少于50次數(shù)據(jù)加密強(qiáng)度對數(shù)據(jù)加密強(qiáng)度進(jìn)行破解通過對兩組數(shù)據(jù)進(jìn)行破解,失敗數(shù)據(jù)檢索啟動系統(tǒng),進(jìn)行操作測試通過穩(wěn)定些兼容性通過 第五章 結(jié)束語數(shù)據(jù)安全與信息系統(tǒng)的穩(wěn)定可靠息息相關(guān),因此,數(shù)據(jù)安全問題得到了越來越廣泛的關(guān)注。通過論文的撰寫,使我能夠更系統(tǒng)、全面地學(xué)習(xí)計(jì)算機(jī)相關(guān)的前沿理論知識,并得以借鑒眾多專家學(xué)者的寶貴經(jīng)驗(yàn),這對于我今后的工作和我為之服務(wù)的企業(yè),無疑是不可多得的寶貴財(cái)富。在比如在數(shù)據(jù)傳入PEKS系統(tǒng)時也未做保密處理,可能會存在漏洞,但由于我的知識匱乏,這一方面我也仍在努力。//獲取私鑰的參數(shù)d,n BigInteger n=new BigInteger(nStr)。 } catch (IOException e1) { ()。 BigInteger m = new BigInteger(ptext)。 } } PEKS系統(tǒng)實(shí)現(xiàn)(1)生成密鑰后,對即將進(jìn)