APP下载

抗双方泄漏抵赖的云端数据托管协议

2018-09-26李晓东

计算机应用与软件 2018年9期
关键词:同态拥有者明文

景 泉 李晓东, 金 鑫 赵 耿,

1(西安电子科技大学 陕西 西安 710071)2(北京电子科技学院 北京 100070)

0 引 言

在企业里,当数据所有者想要把数据交给一个代理时,会面临数据被代理方泄露的风险。比如:企业自己采集的用于机器学习的大批量图片集,想利用云服务商的计算资源进行模型训练,但是图片集被服务商低价卖给了竞争者;类似的,公司一般会有几个合作方,某些项目需要共享公司内部数据给合作方,而合作方发生了数据泄露。

这种数据泄露在世界各地不同行业会以各种情况发生,但并不存在一劳永逸的防范措施。而随着大数据概念的兴起,人们纷纷认识到了数据就是资本,脱离自己掌控的数据将给企业带来一系列的商业风险,所以数据资产的管理和数据泄露的追踪,成为了各个公司急需提升的重要能力。本文中针对用户将数据委托给云端且明文不敏感的情形进行研究。抗双方泄漏抵赖的数据托管协议所保障的是双方都无法作伪抵赖,即数据拥有者不能故意散布数据而去找云端索赔,而云端泄露数据也可以被数据拥有者检测。该协议利用密码算法来实现。

1 相关工作

在需要将数据托管到代理去进行计算的情况下,原数据拥有者对数据的控制力大大削弱,预防和检测数据泄露不容易通过一般的控制做到。因此,需要一些特定的技术来维护数据拥有者的法律权益。相关技术分为两类:一种基于明文,一种基于密文。

基于明文的数据泄露追踪技术[1-2]包括标记式水印算法、信息传输决策点技术、诚信机制水印技术、便携式数据绑定技术和流模型算法等。

近年提出的数据泄露追踪技术采取一种新的数据分配策略,把不同的数据集托管给不同的代理,实现了不改变原有数据的前提下检测数据由哪个代理方泄露。主流的泄露追踪技术主要以过失模型为基础[3],还有一部分人提出了影子模型和数据看守技术。Buneman等[4-5]研究了数据来源的问题,他们指出提高检测出泄露代理概率的关键点在于被泄露数据组的线性关系。其他文献也讨论了责任检测方面的问题。Cui[6]等提出了一些更有针对性的研究方案,例如对数据仓库的线性跟踪。Jagtap等[7]则对公司实际应用中的数据泄露和保护进行了研究,他提出数据看守者和泄露检查者概念模型。

然而,上述方案都仅仅从数据拥有者角度考虑如何检测数据的泄露,没考虑到代理方是否会认可数据拥有者的检测结果,因为数据拥有者有可能伪造泄露而去讹诈代理方。

基于密文的技术则是李顺东等[8]所介绍的同态加密算法及其在云安全中的应用,这种技术可以保障数据即使泄露也无法令对方得到有效信息,但是会在托管计算的全程占用大量CPU和磁盘资源。由此,本文提出了一种性能适中的双方都无法抵赖的数据托管协议。

2 相关知识背景

本文中将用到同态加密算法,以及基于其同态操作的对称加密算法,来达成协议的防抵赖性,结合泄露检测技术,实现对数据拥有者和代理者双方的有效约束。

2.1 符号表示

本文中将数据拥有者称为发布者用Dis表示,将代理用Ag表示,FDis表示由数据拥有者所执行的操作,FAg表示由代理方所执行的操作,M是明文,C是密文,CL是混沌logistics映射算法,FHE是全同态加密算法。

2.2 同态加密算法

1978年Rivest[9]等注意到提出不久的RSA算法具有乘法同态特性,即Enc(x×y)=Enc(x)×Enc(y)。基于这一重要观察,他们提出一个很自然的问题,如果拥有某种全同态加密(FHE-Fully homomorphic encryption)方案(既满足乘法同态又满足加法同态),可以对数据实施何种处理?当时,他们给出的一种解答是:一旦拥有全同态方案,即便不拥有解密密钥,仍然可以对加密后的数据实施任意操作。

由于同态加密(homomorphic encryption)方案天生具有可延展性,因此许多加密方案所具有的某些同态特性已经被自然地应用于多种安全应用方案的构造中,例如:电子投票系统、抗碰撞的杂凑哈希函数,以及保密信息检索等。

1982年,Goldwasser和Micali提出第一个具有语义安全的加法同态密码体制GM[10],同时GM支持任意次加法(模2)同态操作。和RSA一样,1985年提出的第一个基于离散对数困难问题的公钥加密体制ElGamal[11]体制也是乘法同态密码体制,它支持任意多次乘法同态操作。1998年,文献[12]、文献[13]分别提出OU体制和NS体制,两者都属于加法同态体制,均能支持任意多次加法同态操作。1999年,Paillier[14]体制被提出,它是第一个基于判定合数剩余类问题的加法同态加密体制。在满足加法同态的同时,Paillier体制还满足Enc(x×y)=Enc(x)·y,这个性质使得Paillier能够胜任很多针对密文的复杂计算任务。2005年Boneh等[15]提出了BGN体制,该体制可以同时支持任意多次加法同态和一次乘法同态。这些构造,本质上都只能支持一种基本操作,例如:加法同态或者乘法同态,他们的工作取得了一些进步,但距离真正的全同态加密方案还很远。

直到2009年,Gentry[16-17]实现了全同态加密构造的重大突破,在理论上解决了如何构造全同态加密体制的问题。Gentry利用理想格构造了可以支持任意深度电路的同态计算,其机制所包含的4个算法均为多项式时间,可达到语义安全。此后,对Gentry的工作进行了一系列的改进和变形,包括:基于Gentry初始方案的改进[18-21],基于整数全同态的加密构造[22-26],基于LWE和RLWE问题的构造[27-30]等。

由于需要支持加密算法的解密同态计算,本文将采用IBM的一个全同态算法加密库[22],其加密方式是按位加密,可以适用于任何文件。

其算法描述如下:

Key generation:

Keygen(λ)密钥是一个n-bit的奇数:

公钥pk服从此分布:

如果x0和rp(x0)不是奇数则重新采样:

pk=〈x0,…,xτ〉

Encryption:

Enc(pk,m∈{0,1}),随机选择一个子集S⊆{1,2,…,τ}和随机整数r∈(-2ρ′,2ρ′);

输出c←[m+2r+2∑i∈Sxi]x0

Decryption:

输出m′←(cmodp)mod 2

Homomorphic Evaluation:

Eval(pk,C,c1,…,ct)给定有t个输入的二进制电路Cε和t个密文ci,对密文执行电路的整数加法和乘法门,返回处理后的整数结果。

下文将以FHE(C1)表示,其中C1是经过CL算法加密过的密文。

2.3 匹配同态特性的加密算法

这个算法用来进行初次加密,需要与上文中的全同态加密互相适配,即加密对象要相同,比如都是按位加密。本文选用混沌加密[31]中的logistics[32]产生随机密钥,按位和明文进行“异或”操作。后文将以CL代表此算法。

Key generation:

sk←Keygen(μ1,μ2,μ3,μ4):Xn+1=Xn×μ×(1-Xn)

式中:μ∈[0,4],X∈(0,1)。

特别的,当3.569 945 6<μ≤4时,序列处于混沌状态。

4路logistics映射得出的结果进行“异或”合并成sk。

Encryption:

c←Encsk(ω),输入密钥sk和明文的一个比特位ω∈{0,1},输出一个比特位的密文c。

Decryption:

ω*←Decsk(c),输入密钥sk和密文c,输出明文ω*∈{0,1}。

2.4 追踪技术

追踪技术现在大体分为两类:需要修改原文件(以水印算法[33-34]为参考),其思想是把一些验证信息以无法察觉的方式掺杂在原文件中,由于一类文件在分析时不可有丝毫改动,比如金融经济类的数字,而且当代理方怀有恶意的时候,水印信息比较容易受到攻击,所以水印方式适用面比较有限。

其二是无需修改原文件(以人造虚假对象[35]为代表),适用范围比较广。其思想是在原批量数据集中插入一些不易分辨的人工伪造数据文件,当数据发生泄露时,能以概率检测出泄露者是哪个代理。

本文将采用水印方案,通过无法仿造的水印可以将对方的信息嵌入到数据中作为双方共同承认的证据,这是本文的初衷。

首先,以原文本的哈希值HDis(M))作为RSA签名内容,用DigAg(HDis(M))表示;然后根据签名内容的字节数在原文本中加入随机冗余字节RDis(M);最后用DigAg(HDis(M))和RDis(M)中对应的冗余位进行“异或”操作,完成水印嵌入。

3 托管协议模型

数据泄露情况日益严重,各个公司都因此承担了很大的商业风险,而目前的数据泄露检测都是从数据拥有者的角度出发来思考解决方案,但是没有考虑到代理方能否抵赖的问题,所以都无法在实际生产中应用。

本文结合实际,提出了一种双方都无法抵赖的数据托管协议。本协议所保障的是双方都无法作伪抵赖,数据拥有者也无法因为自己故意散布数据而去找代理索赔,而代理散布数据可以被检测。

3.1 上传交互模型

数据发布者(Dis)和代理方(Ag)的数据交换模型如图1所示。

图1 数据发布者和代理方的数据上传交换模型

第一步,Dis先根据Ag方RSA签名字节数对原文件做随机字节冗余RDis(M),然后向Ag发送CL加密后的冗余文件CLDis(RDis(M)),和文件哈希值HDis(M),用以给代理方的签名提供参数,HDis(CLDis(M))留给Ag用以作为验证信息。

第二步,Ag向Dis发送数据,Ag在收到经过CL加密的数据集后,对该密文进行全同态加密,即FHEAg(CLDis(RDis(M))),然后根据HDis(M)生成签名信息DigAg(HDis(M)),再用相同的全同态加密算法加密签名信息,和FHEAg(1)、FHEAg(0)一同发送给Dis。

第三步,Dis收到Ag发来的全同态加密的密文和签名后,根据CL算法的密钥,按位用FHEAg(1)、FHEAg(0)合成一个FHEAg(KEYCL),利用全同态加密的特性,在密文上操作对自己的CL算法进行解密,得到FHEAg(RDis(M)),然后利用冗余嵌入水印(具体用什么方式需根据实际应用场景确定)在密文上操作:

M′=MIXDis(RDis(M),DigAg(HDis(M)))

将Ag方加密的水印信息混杂到明文数据集中,从而得到FHEAg(M′),发送给Ag。

最后由Ag将自己的全同态加密解开,得到M′,即已经掺杂了Ag方签名信息的明文数据集。

如果检测到数据泄露,根据自己留存的随机冗余信息在对应字节进行“异或”就可以提取出其RSA签名信息,再根据其公钥得到签名内容H(M)即可作为证据。

3.2 下载交互模型

如图2所示,首先Ag将携带自己签名信息的文件进行全同态加密FHEAg(M′)和FHEAg(1)、FHEAg(0)发送给Dis。Dis根据留存的冗余信息将对应位的密文删除,即可得到FHEAg(M),再根据FHEAg(1)、FHEAg(0)组合得到密钥FHEAg(KEYCL),在密文下进行CL加密得到FHEAg(CLDis(M))发送给Ag。Ag解密得到CLDis(M)发送给Dis。Dis自己解密得到M。

图2 数据发布者和代理方的数据下载交换模型

3.3 模型安全性分析

3.3.1 数据上传协议

第一阶段,Ag得到的是明文哈希值和CL算法加密过的文件与其哈希值,哈希算法和CL算法保证了其无法逆向得到明文,所以此阶段Ag方无法泄露数据。第二阶段Dis拿到的是FHE算法加密的密文、签名文件和FHE(1)、FHE(0),由于全同态加密的特性,对相同值加密的密文空间很大[31],确保Dis无法根据FHE(1)、FHE(0)破解密文,而且签名的参数是以明文哈希值作为输入的,所以此阶段Dis无法故意伪造Ag的签名信息而去诬陷对方泄露数据,只能在密文上操作混入水印信息。第三阶段,Ag解密之后得到的就是混入了水印信息的明文,水印算法自带冗余信息且无法和明文信息完全区分,可以做到一定程度的抗破坏,或者暴力破坏后明文信息失效。使得Ag不敢泄露数据或有效泄露数据。

3.3.2 数据下载协议

第一阶段,Dis拿到FHE算法加密的密文和FHE(1)、FHE(0),之后可以根据保留的冗余信息按位将其从密文中删除,但是无法从其中提取出签名的明文信息,无法构造Ag的签名从而故意诬陷Ag。第二阶段,Ag拿到的是CL算法加密的密文且水印信息已经去掉,可由上传协议第一阶段的HDis(CLDis(M))来验证是否完全去除,确认后才可将密文发送回Dis,由此Dis无法随意删除无关位而欺骗Ag。第三阶段,Dis只能拿回初始明文,协议结束。

综上所述,Dis方拿到的是Ag方的密文签名无法解开,自己散布的数据也就无法携带Ag方标识而成为诬陷的证据。而Ag方最后所拿到的明文是夹杂了自己无法有效清洗的签名信息,所以也不敢散布数据。如此双方都无法随意散布对方的信息,有效地防止了数据泄露发生时的互相抵赖。

4 实 验

4.1 实验设置

实验环境:

硬件环境:

CPU:I5-4200M,内存:8 GB

软件环境:

Win7 x64,VM11下的Ubuntu14.04 x64,内核版本4.4.0-31-generic,虚拟化双核,4 GHz。安装NTL-10.5.0,GMP-6.1.2,g++4.8.4

对CL算法的参数设置为:

double u[4]={3.91,3.95,3.97,3.98};

int hd_inittimes=500;//预迭代次数

unsigned int mk[4]={0x13256FED,0x3257834F,0xC542DF68,0xEF63127D};//种子

对FHE算法的参数设置为:

long p=2;//明文空间

long r=1;//幂

long d=1;//域的扩张度

long c=2;//密钥交换矩阵的列数

long k=80;//安全参数

long L=0;//等级数,密文的参数

long s=0;// 最小槽数

long seed=0;//PRG种子

long nt=1;//线程数

long w=64;//私钥的海明权重

明文空间:Ζ[Χ]/(Φm(X),pr)。

签名文件的大小为172字节。

4.2 实验结果及分析

图3是本协议的正确性展示。test是初始明文,redundance是冗余之后的明文,randnum是Dis记录的冗余信息,ciphertext_yh是CL算法加密过后的密文,fhe_enctxt是FHE算法加密后的密文,SignFile是签名文件,YH_key是CL算法密钥,dec_plaintxt是FHE算法解密后文件,extract是经过对协议的模拟后,提取在Ag方的文件中所含签名信息,输出后和最初的签名明文信息一致,可由其公钥验证。

图3 原文和解密后对比

图4是程序运行的结果图,其中加密文件的大小n为617字节,协议总的运行时间为160.942 s,其中CL算法的时间复杂度为O(n),相对于全同态加密,其执行时间可以忽略不计;FHE算法加密时间平均约8字节/s;密文上执行同态CL解密操作用时0.35 s,约1 763字节/s;FHE解密用时36.92 s,约21.3字节/s。因为是单线程,而且选用的是一般的硬件,所以在速度上还有很大提升空间。

图4 程序运行结果图

但是在文件尺寸上,加密过后文件大小提升到了2.5 GB,达到了6.5×105倍的提升,所以加密大尺寸文件时应注意切分。批处理时应加密达到一定硬盘占用就执行向对方的发送指令,确认送达后马上删除,以节省硬盘空间。

表1 功能、性能对照表

相对于基于明文的技术,我们的协议可以抗双方泄露抵赖,使数据托管计算更具可信度;相对于基于密文的技术,我们的协议可以将这种文件尺寸扩展限制在文件传输阶段,存储阶段是无需保存全同态的密文形式的,极大减少了平均时间内对磁盘的占用,且在托管计算时的速度上是明文级别的处理速度。

综上所述,本协议在明文不敏感的情况下性能更接近于实用性要求。

5 结 语

本文提出了一种适应于数据拥有者和云商互不信任的情况下,希望在云端对自己的数据明文进行处理,且不希望云商得到己方数据的100%所有权和支配权的网络环境下,保证数据被泄露时可以追踪到的一种数据上传协议。目前云计算服务推广的障碍就在于对数据和隐私的保护,这个协议对云计算服务的推广具有十分重要的作用,以协议约束的方式有效地防止了双方在泄露发生时的相互抵赖,促使云商加大对数据的保护力度,增强了双方的互信度。

通过实验证明,数据拥有者只需负担首次简单加密的计算量和耗时相对较少的同态运算操作,时间消耗上相较以往提升很大,内存的占用也可以通过和磁盘IO次数来平衡,而磁盘占用问题成本相对低廉,所以相对于在密文上进行全同态操作的方案,在速度和磁盘占用上都拥有明显优势,具有重要的实用性意义。

本文提到的签名算法使用了成熟的RSA算法。由于本次实验是按位加密,全同态加密下的水印算法需要针对不同的文件格式自行设计,后续会对此和如何提升全同态加解密的速度继续进行研究。相关代码已发布在文献[36]中。

猜你喜欢

同态拥有者明文
三角矩阵环上FC-投射模的刻画
相对于模N的完全不变子模F的N-投射模
D4-δ-盖及其应用
奇怪的处罚
奇怪的处罚
奇怪的处罚
偏序半群的n素理想、偏序同态与商序同态