摘 要:隨著信息化技術的發(fā)展,涉及到個人信息的數(shù)據規(guī)模也在增加,如果大量的個人信息泄露,不僅會導致用戶生命財產受損,更會破壞市場秩序、制約經濟發(fā)展,甚至會引發(fā)公共安全危機。該研究旨在保護本地數(shù)據庫安全,采用Paillier同態(tài)加密算法對數(shù)據庫進行加密。通過測試,可以實現(xiàn)對指定數(shù)據庫、表及字段進行加解密操作,有效防范他人對本地數(shù)據庫數(shù)據的惡意竊取泄露,提高用戶本地計算機的安全性,保護用戶數(shù)據隱私。
關鍵詞:信息安全;數(shù)據庫;同態(tài)加密;Paillier算法;系統(tǒng)測試
中圖分類號:TP391.1 文獻標志碼:A 文章編號: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ù)據規(guī)模的增長,保護數(shù)據安全是當下需要重視的。目前,保障數(shù)據庫安全的主要途徑包括身份驗證、防火墻等,但數(shù)據泄露仍頻繁發(fā)生,證明僅有的這些措施不足以解決問題。
為保護數(shù)據庫安全,使合法用戶安全訪問數(shù)據,最有效的途徑還是數(shù)據加密。數(shù)據加密可以有效避免數(shù)據的非法訪問,防止數(shù)據遭遇不法侵入。本設計旨在通過同態(tài)加密技術對關鍵數(shù)據庫中數(shù)據進行加密處理,實現(xiàn)數(shù)據保護。
1978年,Rivest等人第一次提出秘密同態(tài)技術[1-4],他們發(fā)現(xiàn)其可以處理密文間的直接運算問題。ElGamal和Paillier又分別于1984年和1999年提出弱同態(tài)加密算法,ElGamal算法屬于乘法同態(tài)加密算法,其安全性由有限域上的離散對數(shù)的計算難題決定;Paillier算法具有加性同態(tài),它的安全性基于復合剩余類的問題的確定,它們都因為加入隨機數(shù)的選擇具備更高的安全性。2009年,Gentry提出基于理想格和整數(shù)的第一代全同態(tài)加密方案,但由于效率因素,沒有辦法應用到實際中。經過優(yōu)化后,Gentry等人又在2011、2012年提出基于RLWE和LWE的第二代全同態(tài)加密方案。
1 同態(tài)加密算法實現(xiàn)
1.1 相關介紹
Paillier加密算法是一種概率公鑰加密算法[5-6],基于復合剩余類的困難問題且滿足加法同態(tài)和數(shù)乘同態(tài),也就是密文的乘積等價于明文的和
。 (1)
1.2 算法原理
密鑰生成算法[7](keyGeneration):使2個隨機素數(shù)p,q滿足gcd(pq,(p-1)(q-1))=1,然后計算n=pq和λ=lcm(p-1,q-1),選擇隨機整數(shù)g∈Z,Z就是小于n2 且與n2互質的正整數(shù)集合。其中(n,g)做為公鑰,λ做為私鑰。
加密算法(encryption):選擇隨機數(shù)r,滿足0<r<n且r∈Z,即r在n2的剩余系下存在乘法逆元,輸入明文m,0≤m<n,然后計算出密文
。 (2)
解密算法(decryption):計算出明文m,其中L(u)= ,
1.3 要點解析
1.3.1 快速冪取模
樸素方法中計算abmodc,若a、b為較大數(shù),會非常消耗計算資源,產生的中間數(shù)也會非常大,無法記錄。對于取模運算,存在(a×b)modc=((amodc)×(bmodc))modc成立,即將大數(shù)的冪運算拆解為對應的乘法運算,原理為對任意的整數(shù)模冪運算abmodc,可以將b拆成二進制形式,得b=b0+b1×2+b2×22+…+bn×2n,如此ab=a×a×…×a,b的值只能為0或1,其中bx=0的項計算結果為1可以不用考慮,則abmodc就可以轉換為(amodc)×…×(amodc),每一項總為前一項的平方倍,得出以下結論[8]。
b為偶數(shù),記k=a2modc,求(k)(b/2)modc即可,b為奇數(shù),直接求(((k)(b/2)modc)×a)modc。
1.3.2 擴展歐幾里得算法
歐幾里得算法:存在2個數(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一定會是gcd(a,b)的若干倍。通過擴展歐幾里得算法,除了能求出最大公約數(shù),還可以實現(xiàn)裴蜀定理求出通解x,y,而當gcd(a,b)=1時,就能夠求出一個特殊通解:a對d的乘法逆元。應用到paillier算法中,就能夠選取出符合規(guī)定的r,r∈Z。
1.3.3 素性檢測
判斷一個數(shù)是否為素數(shù),可以用試除法。但涉及到大整數(shù)檢測,其數(shù)位每增加一位,相對于試除法其運算需增加一個指數(shù)級別,所以一般使用Miller-Rabin算法[7-9],使用此算法需了解2個理論基礎,①費馬小定理:當p為質數(shù),有ap-1≡1(modp),反之不一定成立。②二次探測:如果p為素數(shù),0<x<p,則方程x2≡1(modp)的解為x=1或x=p-1。
2 設計與實現(xiàn)
2.1 總體設計
軟件流程圖如圖1所示。
2.2 加解密實現(xiàn)
加密字段:查詢后與連接變量傳入數(shù)據集遍歷,實現(xiàn)行數(shù)據控制。遍歷過程中,將預加密字段作為參數(shù)控制列,將每行數(shù)據作為明文參數(shù)進行加密。加密表:查詢表所有字段,控制各列數(shù)據。外層遍歷與加密字段一致,再遍歷字段完成列數(shù)據控制實現(xiàn)整表加密。加密數(shù)據庫:查詢數(shù)據庫中表為最外層循環(huán),實現(xiàn)表操作,其余邏輯與加密表一致。
解密操作:操作邏輯與加密相同,調用密文解密算法即可。
3 系統(tǒng)測試
本節(jié)以加解密時間為性能指標進行測試,以每毫秒處理數(shù)據為基準對比得出效率。(注:數(shù)據庫包含2張表:信息表和就診表,對數(shù)據1 000、2 000、4 000行時進行效率測試)。
信息表中的姓名字段加解密效率測試(1 000行數(shù)據)。加密效率:0.407 8行/ms;解密效率:0.405 2行/ms(見表1)。
醫(yī)院數(shù)據庫中就診表加解密效率測試(1 000行數(shù)據)。加密效率:0.350 0行/ms;解密效率:0.338 4行/ms(見表2)。
信息表中的姓名字段加解密效率測試(2 000行數(shù)據)。加密效率:0.319 2行/ms;解密效率:0.362 5行/ms(見表3)。
醫(yī)院數(shù)據庫中就診表加解密效率測試(2 000行數(shù)據)。加密效率:0.262 3行/ms;解密效率:0.309 2行/ms(見表4)。
信息表中的姓名字段加解密效率測試(4 000行數(shù)據)。加密效率:0.220 8行/ms;解密效率:0.247 6行/ms(見表5)。
醫(yī)院數(shù)據庫中就診表加解密效率測試(4 000行數(shù)據)。加密效率:0.173 8行/ms;解密效率:0.212 4行/ms(見表6)。
通過對比表1—表6中數(shù)據,我們發(fā)現(xiàn),隨著樣本量增加,加解密操作耗時增加,每毫秒處理的數(shù)據量減少,也就意味著隨著數(shù)據量提升,加解密操作效率會下降,且樣本量越大,加解密效率會越來越低,但是整個過程不會出現(xiàn)加解密錯誤丟失數(shù)據的現(xiàn)象。
4 結束語
本文主要研究同態(tài)加密算法在數(shù)據安全的測試應用,通過對數(shù)據庫2a745d74184d1a4fd50760ad71b7e3d7實施安全加密操作來保證數(shù)據安全。通過此次研究,也發(fā)現(xiàn)其加密的效率與安全性方面也存在一些不足。
1)同態(tài)加密算法的加解密效率,如果明文的數(shù)值過于大,其效率偏低。
2)Paillier算法中隨機數(shù)g是趨于0到2個大質數(shù)乘積的平方且與其互質,如果在解密過程中L(gλmodn2),即分母上的值對n取模后為2個大質數(shù)p、q中任一數(shù)的倍數(shù),就會存在乘法逆元,只能舍棄。所以在選取g時,范圍限定內的部分值不能使用,需優(yōu)化算法。
參考文獻:
[1] 宋天煜.面向密文數(shù)據庫的中間件系統(tǒng)的設計與實現(xiàn)[D].南京:南京郵電大學,2019.
[2] 李雅囡.基于同態(tài)加密的電子評分系統(tǒng)的研究與實現(xiàn)[D].沈陽:遼寧大學,2019.
[3] 李增鵬,鄒巖,張磊,等.一種基于全同態(tài)加密的智能電網數(shù)據交換隱私保護方案[J].信息網絡安全,2016(3):1-7.
[4] 黃保華,王添晶,賈豐瑋.數(shù)據庫中數(shù)值型數(shù)據的加密存儲與查詢方法[J].計算機工程,2016,42(7):123-128.
[5] 楊燕莉.基于同態(tài)加密的結構化數(shù)據庫安全檢索方案研究[D].武漢:武漢理工大學,2017.
[6] 馮超.全同態(tài)加密的相關算法研究[D].濟南:山東大學,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.
基金項目:甘肅省科技計劃項目-重點研發(fā)計劃-工業(yè)類(23YFGA0032)
第一作者簡介:李懷堂(2000-),男,研究實習員。研究方向為計算機科學。