摘 要:隨著信息化技術(shù)的發(fā)展,涉及到個(gè)人信息的數(shù)據(jù)規(guī)模也在增加,如果大量的個(gè)人信息泄露,不僅會(huì)導(dǎo)致用戶生命財(cái)產(chǎn)受損,更會(huì)破壞市場(chǎng)秩序、制約經(jīng)濟(jì)發(fā)展,甚至?xí)l(fā)公共安全危機(jī)。該研究旨在保護(hù)本地?cái)?shù)據(jù)庫(kù)安全,采用Paillier同態(tài)加密算法對(duì)數(shù)據(jù)庫(kù)進(jìn)行加密。通過(guò)測(cè)試,可以實(shí)現(xiàn)對(duì)指定數(shù)據(jù)庫(kù)、表及字段進(jìn)行加解密操作,有效防范他人對(duì)本地?cái)?shù)據(jù)庫(kù)數(shù)據(jù)的惡意竊取泄露,提高用戶本地計(jì)算機(jī)的安全性,保護(hù)用戶數(shù)據(jù)隱私。
關(guān)鍵詞:信息安全;數(shù)據(jù)庫(kù);同態(tài)加密;Paillier算法;系統(tǒng)測(cè)試
中圖分類(lèi)號(hào):TP391.1 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):2095-2945(2024)30-0080-04
Abstract: With the development of information technology, the scale of data involving personal information is also increasing. If a large amount of personal information is leaked, it will not only cause damage to users' lives and property, but also destroy market order, restrict economic development, and even trigger a public security crisis. This research aims to protect the security of the6Wx7iN8GBxfINba59nrFKA== local database and uses the Paillier homomorphic encryption algorithm to encrypt the database. Through testing, encryption and decryption operations on specified databases, tables and fields can be realized, effectively preventing others from malicious theft and disclosure of local database data, improving the security of users' local computers, and protecting user data privacy.
Keywords: information security; database; homomorphic encryption; Paillier algorithm; system testing
隨著信息化的發(fā)展,數(shù)據(jù)規(guī)模的增長(zhǎng),保護(hù)數(shù)據(jù)安全是當(dāng)下需要重視的。目前,保障數(shù)據(jù)庫(kù)安全的主要途徑包括身份驗(yàn)證、防火墻等,但數(shù)據(jù)泄露仍頻繁發(fā)生,證明僅有的這些措施不足以解決問(wèn)題。
為保護(hù)數(shù)據(jù)庫(kù)安全,使合法用戶安全訪問(wèn)數(shù)據(jù),最有效的途徑還是數(shù)據(jù)加密。數(shù)據(jù)加密可以有效避免數(shù)據(jù)的非法訪問(wèn),防止數(shù)據(jù)遭遇不法侵入。本設(shè)計(jì)旨在通過(guò)同態(tài)加密技術(shù)對(duì)關(guān)鍵數(shù)據(jù)庫(kù)中數(shù)據(jù)進(jìn)行加密處理,實(shí)現(xiàn)數(shù)據(jù)保護(hù)。
1978年,Rivest等人第一次提出秘密同態(tài)技術(shù)[1-4],他們發(fā)現(xiàn)其可以處理密文間的直接運(yùn)算問(wèn)題。ElGamal和Paillier又分別于1984年和1999年提出弱同態(tài)加密算法,ElGamal算法屬于乘法同態(tài)加密算法,其安全性由有限域上的離散對(duì)數(shù)的計(jì)算難題決定;Paillier算法具有加性同態(tài),它的安全性基于復(fù)合剩余類(lèi)的問(wèn)題的確定,它們都因?yàn)榧尤腚S機(jī)數(shù)的選擇具備更高的安全性。2009年,Gentry提出基于理想格和整數(shù)的第一代全同態(tài)加密方案,但由于效率因素,沒(méi)有辦法應(yīng)用到實(shí)際中。經(jīng)過(guò)優(yōu)化后,Gentry等人又在2011、2012年提出基于RLWE和LWE的第二代全同態(tài)加密方案。
1 同態(tài)加密算法實(shí)現(xiàn)
1.1 相關(guān)介紹
Paillier加密算法是一種概率公鑰加密算法[5-6],基于復(fù)合剩余類(lèi)的困難問(wèn)題且滿足加法同態(tài)和數(shù)乘同態(tài),也就是密文的乘積等價(jià)于明文的和
。 (1)
1.2 算法原理
密鑰生成算法[7](keyGeneration):使2個(gè)隨機(jī)素?cái)?shù)p,q滿足gcd(pq,(p-1)(q-1))=1,然后計(jì)算n=pq和λ=lcm(p-1,q-1),選擇隨機(jī)整數(shù)g∈Z,Z就是小于n2 且與n2互質(zhì)的正整數(shù)集合。其中(n,g)做為公鑰,λ做為私鑰。
加密算法(encryption):選擇隨機(jī)數(shù)r,滿足0<r<n且r∈Z,即r在n2的剩余系下存在乘法逆元,輸入明文m,0≤m<n,然后計(jì)算出密文
。 (2)
解密算法(decryption):計(jì)算出明文m,其中L(u)= ,
1.3 要點(diǎn)解析
1.3.1 快速冪取模
樸素方法中計(jì)算abmodc,若a、b為較大數(shù),會(huì)非常消耗計(jì)算資源,產(chǎn)生的中間數(shù)也會(huì)非常大,無(wú)法記錄。對(duì)于取模運(yùn)算,存在(a×b)modc=((amodc)×(bmodc))modc成立,即將大數(shù)的冪運(yùn)算拆解為對(duì)應(yīng)的乘法運(yùn)算,原理為對(duì)任意的整數(shù)模冪運(yùn)算abmodc,可以將b拆成二進(jìn)制形式,得b=b0+b1×2+b2×22+…+bn×2n,如此ab=a×a×…×a,b的值只能為0或1,其中bx=0的項(xiàng)計(jì)算結(jié)果為1可以不用考慮,則abmodc就可以轉(zhuǎn)換為(amodc)×…×(amodc),每一項(xiàng)總為前一項(xiàng)的平方倍,得出以下結(jié)論[8]。
b為偶數(shù),記k=a2modc,求(k)(b/2)modc即可,b為奇數(shù),直接求(((k)(b/2)modc)×a)modc。
1.3.2 擴(kuò)展歐幾里得算法
歐幾里得算法:存在2個(gè)數(shù)a,b求它們的最大公約數(shù),可以使用gcd(a,b)=gcd(b,a%b)。還需用到裴蜀定理:如果a,b是整數(shù),那么一定存在整數(shù)x、y使得ax+by=gcd(a,b),如果ax+by=m有解,那么m一定會(huì)是gcd(a,b)的若干倍。通過(guò)擴(kuò)展歐幾里得算法,除了能求出最大公約數(shù),還可以實(shí)現(xiàn)裴蜀定理求出通解x,y,而當(dāng)gcd(a,b)=1時(shí),就能夠求出一個(gè)特殊通解:a對(duì)d的乘法逆元。應(yīng)用到paillier算法中,就能夠選取出符合規(guī)定的r,r∈Z。
1.3.3 素性檢測(cè)
判斷一個(gè)數(shù)是否為素?cái)?shù),可以用試除法。但涉及到大整數(shù)檢測(cè),其數(shù)位每增加一位,相對(duì)于試除法其運(yùn)算需增加一個(gè)指數(shù)級(jí)別,所以一般使用Miller-Rabin算法[7-9],使用此算法需了解2個(gè)理論基礎(chǔ),①費(fèi)馬小定理:當(dāng)p為質(zhì)數(shù),有ap-1≡1(modp),反之不一定成立。②二次探測(cè):如果p為素?cái)?shù),0<x<p,則方程x2≡1(modp)的解為x=1或x=p-1。
2 設(shè)計(jì)與實(shí)現(xiàn)
2.1 總體設(shè)計(jì)
軟件流程圖如圖1所示。
2.2 加解密實(shí)現(xiàn)
加密字段:查詢后與連接變量傳入數(shù)據(jù)集遍歷,實(shí)現(xiàn)行數(shù)據(jù)控制。遍歷過(guò)程中,將預(yù)加密字段作為參數(shù)控制列,將每行數(shù)據(jù)作為明文參數(shù)進(jìn)行加密。加密表:查詢表所有字段,控制各列數(shù)據(jù)。外層遍歷與加密字段一致,再遍歷字段完成列數(shù)據(jù)控制實(shí)現(xiàn)整表加密。加密數(shù)據(jù)庫(kù):查詢數(shù)據(jù)庫(kù)中表為最外層循環(huán),實(shí)現(xiàn)表操作,其余邏輯與加密表一致。
解密操作:操作邏輯與加密相同,調(diào)用密文解密算法即可。
3 系統(tǒng)測(cè)試
本節(jié)以加解密時(shí)間為性能指標(biāo)進(jìn)行測(cè)試,以每毫秒處理數(shù)據(jù)為基準(zhǔn)對(duì)比得出效率。(注:數(shù)據(jù)庫(kù)包含2張表:信息表和就診表,對(duì)數(shù)據(jù)1 000、2 000、4 000行時(shí)進(jìn)行效率測(cè)試)。
信息表中的姓名字段加解密效率測(cè)試(1 000行數(shù)據(jù))。加密效率:0.407 8行/ms;解密效率:0.405 2行/ms(見(jiàn)表1)。
醫(yī)院數(shù)據(jù)庫(kù)中就診表加解密效率測(cè)試(1 000行數(shù)據(jù))。加密效率:0.350 0行/ms;解密效率:0.338 4行/ms(見(jiàn)表2)。
信息表中的姓名字段加解密效率測(cè)試(2 000行數(shù)據(jù))。加密效率:0.319 2行/ms;解密效率:0.362 5行/ms(見(jiàn)表3)。
醫(yī)院數(shù)據(jù)庫(kù)中就診表加解密效率測(cè)試(2 000行數(shù)據(jù))。加密效率:0.262 3行/ms;解密效率:0.309 2行/ms(見(jiàn)表4)。
信息表中的姓名字段加解密效率測(cè)試(4 000行數(shù)據(jù))。加密效率:0.220 8行/ms;解密效率:0.247 6行/ms(見(jiàn)表5)。
醫(yī)院數(shù)據(jù)庫(kù)中就診表加解密效率測(cè)試(4 000行數(shù)據(jù))。加密效率:0.173 8行/ms;解密效率:0.212 4行/ms(見(jiàn)表6)。
通過(guò)對(duì)比表1—表6中數(shù)據(jù),我們發(fā)現(xiàn),隨著樣本量增加,加解密操作耗時(shí)增加,每毫秒處理的數(shù)據(jù)量減少,也就意味著隨著數(shù)據(jù)量提升,加解密操作效率會(huì)下降,且樣本量越大,加解密效率會(huì)越來(lái)越低,但是整個(gè)過(guò)程不會(huì)出現(xiàn)加解密錯(cuò)誤丟失數(shù)據(jù)的現(xiàn)象。
4 結(jié)束語(yǔ)
本文主要研究同態(tài)加密算法在數(shù)據(jù)安全的測(cè)試應(yīng)用,通過(guò)對(duì)數(shù)據(jù)庫(kù)2a745d74184d1a4fd50760ad71b7e3d7實(shí)施安全加密操作來(lái)保證數(shù)據(jù)安全。通過(guò)此次研究,也發(fā)現(xiàn)其加密的效率與安全性方面也存在一些不足。
1)同態(tài)加密算法的加解密效率,如果明文的數(shù)值過(guò)于大,其效率偏低。
2)Paillier算法中隨機(jī)數(shù)g是趨于0到2個(gè)大質(zhì)數(shù)乘積的平方且與其互質(zhì),如果在解密過(guò)程中L(gλmodn2),即分母上的值對(duì)n取模后為2個(gè)大質(zhì)數(shù)p、q中任一數(shù)的倍數(shù),就會(huì)存在乘法逆元,只能舍棄。所以在選取g時(shí),范圍限定內(nèi)的部分值不能使用,需優(yōu)化算法。
參考文獻(xiàn):
[1] 宋天煜.面向密文數(shù)據(jù)庫(kù)的中間件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].南京:南京郵電大學(xué),2019.
[2] 李雅囡.基于同態(tài)加密的電子評(píng)分系統(tǒng)的研究與實(shí)現(xiàn)[D].沈陽(yáng):遼寧大學(xué),2019.
[3] 李增鵬,鄒巖,張磊,等.一種基于全同態(tài)加密的智能電網(wǎng)數(shù)據(jù)交換隱私保護(hù)方案[J].信息網(wǎng)絡(luò)安全,2016(3):1-7.
[4] 黃保華,王添晶,賈豐瑋.數(shù)據(jù)庫(kù)中數(shù)值型數(shù)據(jù)的加密存儲(chǔ)與查詢方法[J].計(jì)算機(jī)工程,2016,42(7):123-128.
[5] 楊燕莉.基于同態(tài)加密的結(jié)構(gòu)化數(shù)據(jù)庫(kù)安全檢索方案研究[D].武漢:武漢理工大學(xué),2017.
[6] 馮超.全同態(tài)加密的相關(guān)算法研究[D].濟(jì)南:山東大學(xué),2015.
[7] RIVEST R L, ADLEMAN L, DERTOUZOS M L. On data banks and privacy homomorphisms[J]. Foundations of Secure Computation, 1978:169-179.
[8] DIJK M V, GENTRY C, HALEVI S, et al. Fully Homomorphic Encryption over the Integers[C]// Annual International Conference on the Theory and Applications of Cryptographic Techniques. Springer, Berlin, Heidelberg, 2010.
[9] PAILLIER P. Public-key cryptosystems based on composite degree residuosity classes[C]//International Conference on Theory & Application of Cryptographic Techniques.1999.
基金項(xiàng)目:甘肅省科技計(jì)劃項(xiàng)目-重點(diǎn)研發(fā)計(jì)劃-工業(yè)類(lèi)(23YFGA0032)
第一作者簡(jiǎn)介:李懷堂(2000-),男,研究實(shí)習(xí)員。研究方向?yàn)橛?jì)算機(jī)科學(xué)。