针对云计算系统面临的数据安全问题,提出一种云计算数据安全方案,该方案采用了将全同态加密算法引入到云计算数据安全方案的方法,并构建了该方案的应用场景。保证了云计算数据的传输安全和存储安全,适用于密文状态下的数据处理和用户检索。
一、云计算数据安全问题
由于云计算是分布式的,用户数据的存储位置是未知的,为了提高资源使用率,可能不同用户的数据会共享存储或占用计算资源,如果对数据没有进行隔离和有效的保护,就可能被盗窃、删除或篡改。因此,保护云端数据的安全与单机方式有所不同,传统的安全保护方式无法应对云计算环境下的网络结构和协议。
云计算存在的7大安全风险。
(1)特权用户的接入
用户数据存放在云服务提供商的服务器中,在用户掌控之外处理数据具有一定的风险,服务商的管理员有可能会获得访问和处理数据的权限。
(2)可审查性
云计算服务商有义务协助第三方认证机构对数据进行准确性和安全性的审计,一些服务商拒绝外部审计和安全认证,这必然会影响数据的安全性。
(3)数据位置
云计算用户对自己数据的存储地点一无所知。
(4)数据隔离
云计算环境下所有用户的数据均处于共享的环境之中,只靠加密并不能完全保证数据安全,还需要进行数据隔离。
(5)数据恢复
服务商应该对数据进行备份,以便在遇到物理灾难或人为破坏时可以快速恢复用户数据。
(6)调查支持
多用户的数据存放在一起,在有违法行为发生时,用户将难以调查。
(7)长期生存性
服务商应该不会破产,以免影响用户数据的稳定性和持续性。
总结起来,要加强云端数据的安全性,就是对数据进行加密处理。
二、全同态加密
Craig Gentry构造的同态加密方案包括4个算法,即密钥生成算法、加密算法、解密算法和额外的评估算法。
全同态加密包括两种基本的同态类型,即乘法同态和加法同态,加密算法分别对乘法和加法具备同态特性,而2009年之前的同态加密算法仅支持加法同态或者乘法同态。
1、全同态加密的原理
全同态加密的原理:加密操作为E,明文为m,加密得P,即:
如果针对明文有操作f,针对E可构造F,使得:
这样E就是一个针对f的同态加密算法。若对于任意复杂的明文操作f,都能构造出相应的F,则称E为全同态加密算法。全同态加密的目的在于找到一种能在加密的数据上进行任意数量的加法和乘法运算的加密算法,使得对加密数据进行某种操作所得到的结果恰好等于对加密前的数据进行预期操作再加密后得到的密文。
2、全同态加密算法的实现
为了简便,本文使用Craig Gentry提出的对称全同态加密算法。
(l)加密算法
加密参数有p、q和r,其中p是一个正奇数,q是一个很大的正整数,p和q在密钥生成阶段确定,p是加密密钥,而r是加密时选取的一个随机数。
对于明文m,计算:
即可得到密文。
(2)解密算法
对于明文:
因pq远远大于2r+m,所以:
3、同态性验证
(l)同态加法特性验证
假设有两组明文m1和m2,对他们分别进行加密可得到密文
则对于明文
应有
只要(m1+m2)+2(r1+r2)远远小于p,则C3=(Cl+C2) mod p=(m1+m2)+2(r1+r2),即该算法满足加同态条件。
(2)同态乘法特性验证
对于明文
应有
只要(m1+m2)+2(r1+r2)远远大于p,就有C4 =(CI×C2) mod p=mlm2十2(r1r2+r1m2十r2 m1) ,即该算法满足乘同态条件。
三、安全方案的架构和应用场景
在云计算中使用全同态加密算法对数据进行加密处理,可以保证云计算中的数据安全。即在存储用户数据前先对敏感数据进行加密,从而提高数据的安全性,即便这些数据被窃取,恶意用户得到的也只是数据加密后的密文,没有密钥进行解密是无法得到明文的。而密钥由用户保存,云端不存储用户密钥。同时,由于全同态加密算法的同态特性,云端可以对密文进行数据处理,从而可有效避免对加密数据进行传统操作时的效率和资源浪费问题。普通的加密方案如果需要对密文数据进行操作,必须将密文数据传回用户端,用户先对其进行解密再操作,最后将数据再加密传回到云端。
1、安全方案的实现
基于全同态加密计算数据安全方案,构造的云计算数据安全如图1所示。主要结构由用户端和云端两部分组成。
(l)用户端:用户在电脑、瘦客户机或者手机等设备上通过云计算系统登录程序与云端进行信息交互,负责完成提交用户请求给云端、对用户隐私数据进行加密和解密以及密文数据的上传和下载等工作。
(2)云端:包括有应用管理系统、数据处理系统、数据存储系统和密钥管理与认证模块等。其中应用管理系统是其中最主要部分,负责统筹处理用户请求,需要申请密钥或用户认证的工作交给密钥管理与认证模块,需要对数据进行运算的任务交给数据处理系统,可直接进行存储的数据由数据存储系统完成,并协作与用户之间的信息交互。数据处理系统包括数据检索、数据运算、数据更新等模块,是云端功能最关键的部分。数据存储系统负责云数据的存储工作,根据记录的用户数据位置存储和提取用户数据。密钥管理与认证模块则负责用户
密钥的生成与保存。
该安全方案的具体操作步骤:
(l)用户访问云端,应用管理系统接收到用户请求后,将用户信息转发给密钥管理与认证模块,该模块根据算法产生基于该用户信息的一对对称密钥并将用户信息与密钥绑定并加密存储,应用管理系统将密钥对通过安全通道发给用户。
(2)用户使用密钥在用户端对数据进行加密,并将加密后的密文数据传输到云端,应用管理系统接到数据后将其存放到存储系统。
(3)用户需要使用数据时,应用管理系统接到用户请求后从存储系统提取数据传回给用户,用户收到后解密即可使用。
(4)由于全同态加密算法的特性,在用户需要进行数据检索等操作时,数据处理系统可直接对加密后的检索词在密文数据库中进行检索,将检索到的密文数据传输给用户,用户解密后即可查看。而不需要解密全部密文数据库再检索,这样既节约时间、方便用户,也减少了系统开销。
2、安全方案应用场景
该方案采用的是全同态加密算法,其应用场景很广泛,主要有以下3方面。
(l)隐私保护:用户数据以密文的形式传输到云端并保存,既保证了数据在传输过程中的安全性,又确保数据的存储安全,即便是云计算服务商的工作人员也无法轻易获取明文信息。
(2)数据处理:全同态加密机制可使用户或可信第三方对密文数据直接进行处理操作,而不用原始数据,用户得到运算结果进行解密即可得到处理好的数据。比如在医疗信息系统中,电子病历均以密文形式存储在云端的服务器上,当卫生部门需要知道某地区某种病的病人地理位置和年龄分布以应对可能引发的公共卫生安全问题时,就可将密文的电子病历数据交给专业的数据处理服务商处理,得到处理结果后解密即可得到需要的正确数据。
(3)密文检索:基于全同态加密技术的密文检索方法可以直接对密文数据进行检索,不仅能保证查询隐私和提高检索效率,还能对被检索数据进行加法和乘法运算而不改变对应的明文。
小知识之同态加密
同态加密是基于数学难题的计算复杂性理论的密码学技术。对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。