[摘要] 本文通過對電子商務安全中加密技術的研究,給出了一種將浮點數轉換為整數的同態運算,基于復合同態的數學理論基礎,提出了類復合同態的概念并擴展應用到了實現浮點型數據的同態加密算法中。
[關鍵詞] 電子商務安全 秘密同態 浮點數加密 類復合
一、引言
隨著電子商務的飛速發展,它的安全問題越來越引起人們的重視。加密技術是電子商務安全的主要技術之一。常用的數據加密方法存在一個共同的問題是:對于所形成的密文數據必須先進行解密運算,然后對明文進行數學運算,之后再加密。這樣會增大時空開銷。秘密同態(Private Homomorphism)技術就是一個能解決上述問題的有效方法。為此,筆者提出了類復合同態的概念并給出了實現浮點型數據的同態加密算法。
二、類復合同態的定義
定義:設σ、τ分別是空間G到H和H到M的同態變換,則σ和τ的復合σ·τ是空間G到M的同態變換。即對于x∈G,有同態變換y=σ(x)(y∈H),存在z∈M,z=τ(y)=τ(σ(x))= σ·τ(x),滿足σ·τ(x+y)=σ·τ(x)+σ·τ(y)
σ·τ(x*y)=σ·τ(x)*σ·τ(y)
基于實際的應用和討論的方便,假設兩次同態變換分別是加密運算Ek1(x)和Ek2(y),由于引入復合變換的目的是將浮點數轉換成整數的形式然后進行加密,所以定義Ek1(x)是對浮點數進行的加密運算。Ek2(y)仍然采用整數上秘密同態變換的加密機制。
三、浮點型數據的同態加密運算
1.浮點數到整數的同態加密變換。為了保持與原同態運算的一致性,對浮點數到整數的轉換也采用類似形式。算法的實現過程如下:
(1)設明文數據x的小數點位數為k(k為非負整數);(2)將原數據分解為x0,x1,…xk,使得x*10k=x0*100+x1*101+…+xk*10k,其中xi為正整數;(3)定義同態加密變換。Ek1(x)= x0*100+x1*101+…+x k*10 k;(4)則解密運算 , Dk1(x)為浮點數。
在浮點數的加、減、乘、除運算中,根據實際的需要設定所有明文數據的最大小數點位數為k(k為非負整數),不夠k位的用零補足,定義計算Ek1(M)(M表示運算表達式)時小數位k’的取值由各明文數據k值經基本運算后的所得值決定,則有:
加和減Ek1(x±y)=Ek1(x)±Ek1(y)為10的i(0≤i≤k)次方項的加減法。
乘Ek1(x)* Ek1(y)
=(x0*100+x1*101+…+xk*10k)*(y0*100+y1*101+…+yk*10k)
=x0y0*100+0+x0y1*100+1+…+xiyj*10i+j+…+xkyk*10k+k
=
=Ek1(xy)
其中0≤i≤k,0≤j≤k, 0≤i+j≤2k 。
除x和y經除法運算后k值消去,則k’取值0,顯然有
由上述加減乘除運算可得:
這些運算保證了可以直接對轉換后的整數進行操作。
將浮點數進行同態加密,即將浮點數明文x 經過Ek1(x)同態變換后,轉換成一整數的形式,然后再用Ek2(y)(其中y=Ek1(x))進行加密變換。
其中解密運算定義為Dk(x)=Dk1(Dk2(x)),Dk1,Dk2分別為Ek1和Ek2的解密運算。解密過程中首先對Ek1(x)形成的密文數據進行解密,然后再利用Dk1(x)計算得到明文數據。
2.類復合同態基本運算。類復合同態運算完成的是浮點數的同態加密過程,也是本部分的核心。下面的基本運算包括上面講述的浮點數到整數的同態轉換Ek1(x),以及整數上的同態加密算法Ek2(x),具體實現過程如下:
(1)類復合同態的加、減法運算
Ek2(Ek1(x))±Ek2(Ek1(y))
=Ek2(Ek1(x)±Ek1(y))
=Ek2(Ek1(x±y))
=Ek2·Ek1(x±y)
(2)類復合同態的乘法運算
Ek2(Ek1(x))*Ek2(Ek1(y))
=Ek2(Ek1(x)*Ek1(y))
=Ek2(Ek1(xy))
=Ek2·Ek1(xy)
(3)類復合同態的除法運算
即對經過類復合同態加密后得到的密文之間的加、減、乘、除運算就相當于對明文進行基本運算后再加密。
3.安全性分析。將同態加密機制的應用從整數擴展到浮點數范圍內,使秘密同態加密算法更具有實用性。加密過程中即使經過Ek1(x)加密轉換后得到相同的數據,由于第二次同態加密素數的隨機選取和加密數據的隨機分割,這樣得到的加密數據也是不一樣的。浮點數同態加密即在外層加密中保留了原始秘密同態加密的安全性,同時也對原數據進行了雙重同態變換,在安全性上只有過之而無不及。由Dominggo-Ferrer在文獻[1]中的討論可知,在浮點數上的同態加密機制在安全性方面同樣能抵抗僅知密文攻擊和已知明文攻擊。
四、結論
本文在原加密算法的理論基礎上,對同態算法進行了擴展,實現了在浮點數上秘密同態加密算法。目前本算法已成功應用于某公司電子商務系統中,較好地解決了系統的安全問題。
參考文獻:
[1]Domingo Ferrer J. A New Privacy Homomorphism and Applications [J]. Information Processing Letters, 1996, 60(5):277~282
[2]向廣利等:實數范圍上的同態加密機制[J].計算機工程與應用,2005,41(20):12~14
[3]王曉峰王尚平:秘密同態技術在數據庫安全中的應用[J].計算機工程與應用,2003,39(14):194 ~196