APP下载

基于洋葱加密模型的同态云平台设计

2018-08-17李子臣亚涛

计算机工程 2018年8期
关键词:同态明文服务端

李子臣, ,亚涛,3,,3, ,3

(1.北京印刷学院 信息工程学院,北京 102600; 2.北京电子科技学院 研究生系,北京 100070;3.西安电子科技大学 通信工程学院,西安 710071)

0 概述

随着云计算的发展,基于海量数据的云计算服务逐渐成为众多企业关注的重点。采用云计算处理模式开展业务十分便利,但云应用存在的安全问题也日渐凸显[1-2],例如第三方服务提供商不可信,管理员窥探、窃取数据,造成重要信息泄露、云端资料外泄,以及数据传输过程中存在的安全隐患。将解密数据的私钥提供给服务端用于数据加解密及运算处理,可以提高系统效率,但却面临更多的安全威胁,一旦云端数据库[3]被攻陷,后果不堪设想。因此,只有用户或合法授权用户才能拥有解密数据的私钥,以确保数据安全。但该方式云端服务器只作为存储容器,无法进行有效的数据处理。数据传输及处理需要占用大量的带宽及客户端开销,无法有效利用云端的数据处理能力。

同态密码体制近乎为云计算量身打造,可以直接操作密文数据,取得与操作明文相同的效果[4],在数据托管环境下可以确保信息的保密性,防止隐私信息泄露。文献[4]分析了同态加密技术[5]的研究现状及在云计算环境下的应用[6]。文献[7]探讨了同态加密技术在金融云安全方面的应用,但是并没有给出具体的应用及设计方案。文献[8]提出一种同态加密在私有云中的设计方案,但未给出详细的数据存储及处理模式。文献[9-10]探索部分同态、全同态加密在密文数据库查询中的应用,其设计思想具有较高的参考价值。文献[11]提出的全同态加密方案虽然相对原始基于理想格算法复杂度有所降低,但距离实用仍有一定差距。文献[12]针对基于稀疏子集和问题的全同态加密方案提出了一种有效的反馈攻击方法,表明其存在安全隐患。

针对上述问题,本文基于文献[13]中的混合同态加密思想及文献[14]提出的洋葱加密方案,设计一种基于洋葱加密模式的同态云平台方案,以有效防止管理员窥探数据,并且使云端服务器可直接对密文进行操作而不会暴露明文状态,避免客户端与服务端的频繁交互,降低带宽需求,实现数据安全存储及运算。

1 预备知识

1.1 同态特性

令E为加密函数,D为解密函数,⊕表示同态加运算,⊗表示同态乘运算,x和y表示明文,用如下关系定义同态特性:

1)加法同态:如果存在有效算法⊕,使得E(x+y)=E(x)⊕E(y)或x+y=D(E(x)⊕E(y))成立,并且不泄漏x和y,则称其具有加法同态性质。

2)乘法同态:如果存在有效算法⊗,使得E(x×y)=E(x)⊗E(y)或xy=D(E(x)⊗E(y))成立,并且不泄漏x和y,则称其具有乘法同态性质。

3)混合乘法同态:如果存在有效算法,使得E(x×y)=E(x)y或xy=D(E(x)y)成立,并且不泄漏x,则称其具有混合乘法同态性质。

4)部分同态加密(SWHE):支持有限同态加密操作的特性[15],如只支持加法同态或乘法同态运算。

1.2 Paillier与ElGamal的同态性

1.2.1 Paillier公钥密码体制同态性分析

Paillier的同态性验证过程如下:

1)对明文x用Paillier加密算法加密处理:

2)对明文y用Paillier加密算法加密处理:

3)对明文x和明文y对应密文进行乘积运算:

(gx+y·(r1r2)n)modn2=E(x+y)

由上述推理过程可知,对明文x和y对应的密文进行乘积运算,所得结果与明文x和y加和后对应的密文值相同。由此得证,Paillier公钥密码体制具有加法同态特性。

1.2.2 ElGamal公钥密码体制同态性分析

加密阶段:选取与(p-1)互素的随机数k,E(m)=(a,b)=(gkmodp,ykmmodp)。

解密阶段:m=D[E(m)]=D(a,b)=b·a-x。

ElGamal的同态性验证过程如下:

1)对明文m1用ElGamal加密算法加密处理:

E(m1)=(a1,b1)=(gk1modp,yk1m1modp)

2)对明文m2用ElGamal加密算法加密处理:

E(m2)=(a2,b2)=(gk2modp,yk2m2modp)

3)对明文x和明文y对应密文进行乘积运算:

E(m1)⊗E(m2)=(a1a2,b1b2)=

(gk1+k2modp,yk1+k2(m1·m2) modp)=

E(m1·m2)

由上述推理过程可知,对明文m1和m2对应的密文进行乘积运算,所得结果与明文m1和m2相乘后对应的密文值相同。由此得证,ElGamal公钥密码体制具有乘法同态特性。

2 方案设计

2.1 银行私有云平台整体架构

本文旨在应用同态加密技术解决云端数据安全存储及处理等问题,探索同态加密在私有云平台应用场景下的应用方式,在此对私有云平台具体功能模块不作详细说明。银行私有云平台整体架构如图1所示。

图1 银行私有云平台系统架构

云服务门户:接收用户查询、处理请求,以可视化方式进行内容发布和更新、参数管理,并提供外部系统的接口。

云服务管理平台:支持对系统提供服务的管理功能,根据银行业务处理需求确定功能模块。

云服务运维平台:分析监控数据,向监控平台提供监控数据和配置数据,以确保整个运维体系的完备性。

代理端(proxy):是本文设计方案的重要模块,用于拦截应用程序端发送的查询、处理请求,对查询语句、请求参数进行重写,并发送可执行的SQL操作语句和密文参数给数据库管理系统(Database Management System,DBMS),与DBMS联合完成对密文的查询处理。

资源池管理平台:将计算、网络、存储等资源进行统一化、标准化并抽象为原子服务。

2.2 系统交互流程

本文方案中银行私有云安全系统由两部分组成,一部分为客户端(A),另一部分为云平台,即处理和存储密文数据的服务端(B)。客户端拥有Paillier加解密的公钥(n,g)和私钥(p,q),以及ElGamal加解密的公钥(y,g,p)和私钥x。服务器端已知客户端公钥,无解密数据的私钥,无法解密密文数据,确保了信息的安全性。

根据方案设计,银行私有云平台客户端A与服务器端B的数据交互过程如图2所示。

图2 银行私有云平台客户端A与服务器端B的数据交互过程

下面以银行账户存款、利息查询操作为例,描述客户端A和服务端B的数据交互过程。

1)数据初始化。客户端拥有Paillier和ElGamal加解密算法的公私钥对。对数值型数据初始化洋葱层,使用Paillier算法加密数据形成oADD洋葱,支持密文加运算;使用ElGamal算法加密数据形成oMUL洋葱层,支持乘法运算。

2)存款。客户端根据用户命令,选取Paillier算法加密存款金额,发送存款请求命令到服务端。

3)服务端根据客户端请求,对原始账户Paillier加密密文与接收的存款密文执行加法同态运算,将运算结果写入数据表并返回给客户端;客户端对返回结果使用Paillier私钥解密,此时的明文即为存款后最新账户金额m_n。

4)客户端发送利息查询请求到服务端;服务端根据客户端查询命令,利用oMUL洋葱的乘法同态特性完成利息运算:ElGamal(m)⊗ElGamal(rate)⊗ElGamal(year)。

5)服务端将运算结果返回给客户端,由客户端使用ElGamal私钥进行解密,获取利息明文。

2.3 数据存储结构

本文方案对数据的处理采用多洋葱分层加密方式,根据操作目的的不同,设计了EQ、ORD、SEARCH、oADD、oMUL 5种洋葱。

1)EQ洋葱用于等值匹配查询,由3个洋葱层组成:最外层洋葱(RND)采用概率加密算法提供最强的安全性,不用于支持密文操作;中间洋葱层(DET)采用确定性加密算法,支持密文等值查询功能,但安全性相对RND略弱;最内层洋葱层(JOIN)提供不同字段列的连接操作功能。

2)ORD洋葱支持对密文数据大小关系的比较,由3个洋葱层组成:最外层、最内层与EQ洋葱功能近似;中间洋葱层采用保序对称加密算法加密,使得密文与明文具有相同的大小偏序关系,可以支持数据库基础ORDER BY、MIN、MAX等函数功能实现。

3)SEARCH洋葱支持加密文本信息的关键字检索,采用文献[16]提出的可搜索加密方案实现,检索过程无需解密数据,可确保信息的机密性。

4)oADD洋葱支持数值型数据的加法和减法同态运算,为单洋葱层结构,采用具有加法同态特性的密码算法加密实现,如Paillier加密算法。

5)oMUL洋葱支持数值型数据的乘法同态运算,为单洋葱层结构,采用具有乘法同态特性的密码算法实现,如RSA/ElGamal加密算法。

洋葱的安全性等同于最外层洋葱的安全性。一旦数据库表创建,所有洋葱都处于最安全的层次。5种洋葱的层次结构如图3所示。

图3 本文方案的洋葱层次结构

鉴于篇幅原因,前3种洋葱在此不作详细论述,本文主要针对oADD、oMUL洋葱实现数值型数据的同态操作进行阐述。在银行私有云平台应用场景下,简化的存储表结构如图4所示。其中,ID表示银行账户编号,NAME表示账户名,ACCOUNT表示账户金额。经过洋葱加密,云端数据表中存储方式如图5所示。其中,C1-EQ、C1-ORD、C1-oADD、C1-oMUL表示分别采用等值洋葱、保序洋葱、同态洋葱进行加密。

图4 数据库账户存储简化表结构

图5 云端数据存储方式

同态洋葱是本文方案的重点设计模块。对于数值型数据,通常执行等值匹配、大小比较、加减乘除等运算,系统会根据数据类型创建并初始化洋葱。根据用户操作需求调整到特定的洋葱层。以用户的存款请求为例,需要对当前账户金额执行加运算,服务端根据用户的加操作请求查找ACCOUNT字段对应的oADD洋葱,获取当前层的密文数据。

update Account_t set C3-oADD=

对当前C3-oADD字段值与使用Paillier密码体制进行加密的存款值执行同态加运算,并将该值存储到数据库中指定字段。将新的运算结果返回客户端,由用户使用私钥解密,终端会显示新的账户存款金额。用户请求查询账户利息,服务端查找账户金额对应的oMUL洋葱,对当前值与银行利率、存款期限执行同态乘运算,并将运算结果返回客户端进行解密,显示账户利息金额。

3 方案分析

3.1 计算深度控制分析

Paillier与ElGamal公钥密码体制同态操作的深度与模数相关,当数据超过模数值时,会存在数据重叠出错,使数据无法正常解密。本文方案在加解密过程中,在每次密文操作后进行取模处理,以降低密文的规模,实现密文噪声控制。

3.2 浮点数映射过程分析

银行数据库中除了用户身份等文本信息,还包括大量的数值型数据,涉及浮点型数据、大整数等,这就需要系统具有浮点数及大数处理能力。银行账户金额、利率等数值通常为浮点数,因此,将浮点数映射为整数进行处理,最后通过逆映射还原数据。对于大数处理采用NTL库实现,可以对任意位数的数据进行处理。映射方式如下:

1)y=α0.α1α2…αk,y为浮点数,其中,α0表示整数部分,α1α2…αk表示小数点后k位。根据小数点后数值位数k进行映射处理。

2)将浮点数放大k倍映射为y′=α0×100+α1×101+α2×102+…+αk×10k。浮点数存储时可以表示为(y′,k)。

3.3 安全性与效率分析

本文方案基于Paillier和ElGamal公钥密码体制的加法和乘法同态特性进行数据运算,在服务器端存储密文数据,客户端拥有解密密文的密钥。客户端向服务器端发送数据处理请求,服务器端没有解密私钥,只能操作密文数据,无法解密密文,从而确保服务端管理员无法窥探用户隐私信息,即使数据库被攻陷也不会造成隐私信息泄露。

文献[7]中用RSA同态特性实现乘法运算的方案,其安全性依赖于大数分解,且密钥产生受素数产生限制,难以做到一次一密。而ElGamal算法安全性依赖于计算有限域上离散对数这一难题。相较于RSA,ElGamal体制随机参数的选取每次均不同,即使使用相同的私钥对相同明文进行加密,得到的密文值也各不相同,使密文不仅依赖于明文,而且依赖于选取的随机数,相同的明文对应不同的密文,可抵御选择明文攻击,具有更高的安全性。

本文方案是在银行私有云平台的应用场景下,利用Paillier和ElGamal密码体制的加法和乘法同态特性实现,在服务端直接对密文执行运算,基本可以满足银行对账户数值型数据的处理需求。服务器端只需执行简单的同态操作,降低了数据处理复杂性。

文献[7]设计了基于RSA和Paillier同态特性的云计算方案,并与文献[17]提出的DGHV全同态加密方案进行对比分析。为论证本文方案的效率,对3种方案进行仿真实现,并进行效率及安全性对比。以对104大小的整数进行加解密处理为例,ElGamal、RSA密钥长度均为1 024 bit,由于操作环境的局限,在此简化仿真过程,在同一台PC机上对方案同态运算进行仿真实现和效率分析。3种方案的平均运算时间与安全性分析如表1所示。

表1 3种方案的同态运算时间及安全性比较

由表1可知,对于同等长度的密钥,本文方案相比文献[7]方案运算效率略有降低,但效率明显高于文献[17]的全同态加密方案。相对于在服务器端解密数据完成操作,应用同态特性运算速率略有降低,但是具有更高的安全性,可防止明文信息被窃取。此外,采用同态加解密方式,可以在服务端直接操作密文,避免频繁将数据传回客户端进行解密,使交互双方通信次数减少一半,降低了带宽压力及数据传输过程中的安全风险。

4 结束语

本文提出一种基于洋葱加密模型的同态云平台设计方案。在银行私有云平台应用场景下,充分利用云计算能力,基于密码体制的同态特性,结合可调整洋葱加密策略,从而降低客户端数据处理开销,提高系统的安全性和可靠性,并提供一种可用于数据存储和管理的可扩展结构。仿真及安全性分析结果表明,本文方案在保证运算效率的情况下,具有较高的安全性,可有效抵御选择明文攻击,满足银行业务处理需求。下一步将对该方案占用存储空间略有增加的问题进行优化。

猜你喜欢

同态明文服务端
关于半模同态的分解*
拉回和推出的若干注记
τ-内射模的若干性质①
新时期《移动Web服务端开发》课程教学改革的研究
奇怪的处罚
一种基于LWE的同态加密方案
奇怪的处罚
四部委明文反对垃圾焚烧低价竞争
摸清黑客套路防范木马侵入