两个实用同态加密方案

两个实用同态加密方案
两个实用同态加密方案

两个“实用的”全同态加密方案

一、方案说明

1、 该方案为对称方案。

2、 该方案仅仅需要线性代数知识。

3、 不需要噪音消除工作。

4、 明文为有限域上的实数。

5、 密文为向量,但同态操作不膨胀。

6、 安全性基于近似最大公约数问题(AGCD)。

二、方案简单描述

1、 参数选择(Setup):设2l n ≤-为已知,例如5n =,3l =。

2、 密钥生成(KeyGen):有如下几个工作。

- 随机选择向量()1

01,n n q k k k +=∈ ,,k Z ,()011l l q θθθ-=∈ ,,

,Z Θ。 - 对明文q m ∈Z ,令()1

01Enc(,),,,n n q c m c c c +==∈ k Z ,满足

m ?=k c ,称为低级加密。其具体方式为:

其中,121212,,,,,h m

h r r r r s r s

r s r v r v r v - 和rr

都是q Z 上的随机数。1

()m ij j j S i s rs ==?∑。ij s 是什么不知道。

- 令011[Enc(,),Enc(,),Enc(,),Enc(,1)]l θθθ-Φ= k k k k 。

- 输出密钥:PK {,}=k Θ,评估公钥PEK {p Enc(,k k ),0,}ij i j i j n ==≤≤k 。 3、 加密(Encryption):对q m ∈Z ,选择01,,l q r r r ∈ Z ,使???

01l m r r r =+++ ,计算:

()()()()()()()()()

001111Enc ,Enc ,Enc ,Enc ,1m l l l c r r r r θθθ--=?⊕?⊕⊕?⊕? k k k k

4、 解密(Decryption):对密文m c ,计算得到m m ?=k c 。

证明:首先根据()Enc ,i θk 的定义,有0

,0,1,2,1n

i i ij i k i l θθ===?=-∑ ,0

11n

i i i k ==?=∑。

故:111

00110001,1,,1,l l l m i i l i i l i in l n i i i r r r r r r θθθ---===??

?=??+??+??+? ???

∑∑∑ k c k

000

1n n n

j i ij j l i j i j k r k r θ====??+??∑∑∑

001110(1)0

1n

n n n

j j j j j l l j l i j j j j k r k r k r k r θθθ--=====??+??++??+??∑∑∑∑

1

l j j l j r r θ-==?+∑???

m =。

5、 同态加法:()'''

112211'mod ,mod ,mod n n c c c c q c c q c c q ++⊕=++++ 。

可以证明:()()Dec(')Dec ,Dec ,'mod c c c c q ⊕=+k k 。

证明:()'''

112211Dec(,')Dec ,(mod ,mod ,mod )n n c c c c q c c q c c q ++⊕=++++ k k

'''

112211(mod ,mod ,mod )n n c c q c c q c c q ++=?++++ k

'''01112211(mod )(mod )(mod )n n n k c c q k c c q k c c q ++=?++?+++?+

'''010*******()mod ()mod ()mod )n n n n k c k c q k c k c q k c k c q ++=?+?+?+?++?+?

''011210112'

1

mod mod mod mod mod mod n n n n k c q k c q k c q k c q k c q k c

q

++=?+?++?+?+?++?

')mod =(c c q ?+?k k

()()Dec ,Dec ,'mod c c q =+k k

另外,由同态加法可以引申出同态数乘运算:

令q d ∈Z ,()121mod ,mod ,,mod n d c d c q d c q d c q +=??? ,可以证明:

()Dec(,)Dec ,mod d c d c q =? k k 。 6、 同态乘法:

定义:()()()()(

)(

)

''

'1111121211(1)(1)'n n n n c c c c pek c c pek c c pek ++++?=?⊕?⊕⊕? 。

可以证明:()()()Dec ,c c'Dec ,c Dec ,c'mod q ?=?k k k 。 证明:()Dec ,c c'c c'?=??k k

()11

11

Dec ,mod n n i j ij i j c c pek q ++===??∑∑k

()()11

11

11

11

11

1

1

mod mod mod Dec ,c Dec ,c'mod n n i j ij i j n n i i j j i j n n i i j j i j c c sek q

k c k c q

k c k c q

q

++==++==++===??=???=???=?∑∑∑∑∑∑k k

三、问题:由同态评估密钥可以得到密钥k 。

例如,假设01p [,,,]ij ij ij ijn p p p = ,则可从如下方程组求出k :

00000000n n k k p k p k =+

00i j ij ijn n k k p k p k =+

00n n nn nnn n k k p k p k =+

四、可借鉴之处 1、 构造代数结构 ????与解密有关

2、 同态运算的构造方式(同态操作密文不膨胀的原因):采用⊕运算。可否将类似方式用到基于LWE 的方案。

3、 能否构造为公钥方案。

王会勇 2015.7

Huiyong,

thanks for the message. For the first r_0 \xor r_1 \xor ...

it should be interpreted as regular addition in the finite field.

For the second \xor on the c_m (cipher text) in the encrytion phase, it should be interpreted as the

homomorphic addition of cipher text. Yongge

Masahiro Yagisawa 方案

一、八元数基础

1、定义:八元代数是四个除法代数中最大的一个。八元代数上的一个八元数的形式为[1]

:7

i i i a a e =∑,其中21i e =-,i q a ∈Z ,坐标形式为:8017(,,)q a a a a =∈ Z 。

a0 a1 a2 a3 a4 a5 a6 a7-a1 a0 a4 a7 -a2 a6 -a5 -a3 -a2 -a4 a0 a5 a1 -a3 a7 -a6 -a3 -a7 -a5 a0 a6 a2 -a4 a1 -a4 a2 -a1 -a6 a0 a7 a3 -a5-a5 -a6 a3 -a2 -a7 a0 a1 a4 -a6 a5 -a7 a4 -a3 -a1 a0 a2 -a a A =7 a3 a6 -a1 a5 -a4 -a2 a0??

? ? ? ? ? ? ? ? ? ? ???

,称为8017(,,)q a a a a =∈ Z 的关联矩阵。 2、运算:令8017(,,)q a a a a =∈ Z ,8

017(,,)q b b b b =∈ Z

I. 8001177(,,)q a b a b a +b a +b +=+∈ Z 。

II. 017 a0 a1 a2 a3 a4 a5 a6 a7-a1 a0 a4 a7 -a2 a6 -a5 -a3 -a2 -a4 a0 a5 a1 -a3 a7 -a6 -a3 -a7 -a5 a0 a6 a2 -a4 a1 (,,)-a4 a2 -a1 -a6 a0 a7 a3 -a5-a5 -a6 a3 -a2 -a7 a0 a1 a4 -a6 a5 -a7 a4 -a ab bA b b b == (mod )a3 -a1 a0 a2 -a7 a3 a6 -a1 a5 -a4 -a2 a0q ??

? ? ? ?

? ? ? ? ? ? ???

III. a =。有ab a b =。 IV.逆:若0(mod )a q ≠,记10712

2

2

(

(mod ),(mod ),,(mod ))a a a a q q q a

a

a

---= 。

可知:1(1,0,0,0,0,0,0,0)aa -=,1mod a ab b q -=,1mod baa b q -=。

11()()mod a ba ab a q --=,12()()mod ba ab b q -=。

3、性质

I. 显然加法满足结合律,交换律。乘法不满足交换律,也不满足结合律。 II.ab a b A A A =(错误)。

III.设123,,n a a a a 为八元数,则有121123((())n n n a a a a a a a a A'A'A'-= 。 二、Yagisawa 方案,令(1,0,0,0)=1 ,x 为八元数。 1、Key setup :随机取t 个可逆的八元数801,,t q sk k k k =∈ Z 。 2、Encryption :

对八元数明文8q

m ∈Z ,记11

100(())g ()t k k x x ---= ,0111((())()t k k k x g x -= ,计算:11

01110()((((m((()))m t t C x k k k k k x ----=

10(mg ())g x = 3、Decryption :对密文()m C x ,计算:01(g ())m m g C =1 证明:010101(g ())((mg ())g ())m g C g g x =11

4、同态加法:定义0101()()()m m m m C x C x C x +=+,易知同态解密能成功。

5、同态乘法:定义0101()(())m m m m C x C C x =,可证明一次同态解密成功。但多次不行。因为八元数乘法是非结合的。

6、全同态构造:任取八元数8q ∈z Z 和q r ∈Z ,其中0=z ,且00≠z 。对任意明文q m ∈Z ,将m 编码:m r =+m 1z ,得到一个八元数8q ∈m Z 。

7、问题:按照上述编码方法,若0m =,则0()()r C x C x =z ,故有

11

01110()((((((()))0rz t t C x k k k rz k k x ----== 。

故:0()(1)(1)(1)(1)0m m m m rz C C C C C --+==== 因此,容易找出m 与m -对应的密文。

三、一个变形

1、Key setup :取随机可逆矩阵88

q K ?∈Z 作为密钥

sk 。 2、Encryption :对八元数明文m ,计算18m m q C K A K -=∈Z ,其中m A 为八元数m 的关联矩阵。

3、Decryption :对密文m C ,计算1m m A KC K -=,然后计算m A =1m ,其中

(1,0,0,0,0,0,0,=1。或直接计算1m KC K -=m 1。

4、同态加法:记010********()m m m m m m m m C C C K A K K A K K A A K ---+=+=+=+。按上述解密方法,可得0101101()()m m m m m m A A KC K -++=+=11。

5、同态乘法:记010********()m m m m m m m m C C C K A K K A K K A A K ---==?=,解密可得:

0101101()()m m m m m m A A KC K -==11。

注:由于八元数乘法不满足结合律,所以不同先后顺序的密文乘法将导致不同结果。可采取如下方式解决:

I 定义:88

0m q T

m

A b

B ???=∈ ???

Z 为明文q m ∈Z 的关联矩阵,7q b ∈Z ,77q B ?∈Z 为任意选取的矩阵。然后按照上述方案构造全同态加密方案。 或者:

II 对q m ∈Z ,任取q r ∈Z 和满足0z =且00≠z 的八元数z ,构造八元数

m r m =1+z ,然后按照上述方案构造全同态加密方案。 思考

1、为什么要用八元数构造?主要利用了八元数的什么性质?

2、能够不能在其他元代数上构造?比如四元数。

3、能不能改造成公钥方案?

4、如何解决安全性问题?

[1]杨衍婷,杨长恩. 八元数向量和矩阵的实表示[J]. 咸阳师范学院学报,2013,04:9-12.

相关主题
相关文档
最新文档