中期检查报告.docx
《中期检查报告.docx》由会员分享,可在线阅读,更多相关《中期检查报告.docx(12页珍藏版)》请在冰豆网上搜索。
硕士学位论文中期检查报告
北京航空航天大学计算机学院
硕士学位论文中期检查报告
论文题目:
银行云计算中同态加密算法研究
专业:
计算机软件与理论
研究方向:
数据安全,加密技术
研究生:
学号:
指导教师:
北京航空航天大学计算机学院
2016年07月26日
北京航空航天大学计算机学院·10·
目录
1 论文工作计划 1
1.1论文选题背景 1
1.2论文研究目标 2
1.3论文主要研究内容 2
1.4论文工作计划 2
1.5预期成果 2
2 已经完成的工作 3
2.1国内外同态加密方案分析 3
2.2Fp上全同态加密方案的设计 4
3 关键技术 7
4 下一阶段工作计划 8
4.1存在的问题 8
4.2尚未完成的工作 8
4.3解决问题的技术思路或措施 8
4.4下一阶段计划 9
5 主要参考文献 9
银行云计算中同态加密算法研究
1论文工作计划
1.1论文选题背景
近年来,中小银行发展迅猛,在规模、效益等方面的提升上都取得很大的成绩,但由于资金,技术能力,运营维护等种种原因,很难通过自身实力建设IT系统,在此情况下,基于云计算的IT系统托管是解决该问题的最佳途径。
但银行业有其特殊性,对数据安全性、私密性的要求远高于其它行业,基于云计算平台的银行系统,其所有用户的数据都放在云端,并通过网络进行数据传输,在云平台遭受攻击,或者存在管理漏洞、人为破坏安全管理制度等情况下,银行信息发生丢失、窃取等现象,对于用户而言是致命的。
如何保证云计算系统中数据不被随意盗取、查看和拷贝是云服务商面临的重大挑战。
云服务商除具备相应安全管理资质、建立安全管理制度之外,还应采取相应技术手段,从根本上杜绝银行所属数据的安全和私密,提高银行对云计算平台的信任等级。
采用数据加密技术是应对银行云计算中数据安全问题的重要途径。
传统的数据加密技术可解决数据存储及传输过程的安全,但对诸如账户金额、交易流水记录等银行无需暴露给云服务商且需要进行计算的关键业务数据,传统加密算法不再适用,因为该类数据在系统中需要随时根据用户交易情况进行更新和计算,而在加密状态下系统无法识别数据致使计算无法完成,目前该类数据均采用明文存储于云平台数据库中,不利于银行及用户数据安全和隐私保护。
在这种情况下,我们谋求一种既能确保数据安全与隐私,还可充分利用云平台计算能力的加密方法。
同态加密是一种基于数学困难问题的密码学技术,它具备如下性质:
对经过同态加密的数据进行操作得到一个输出,将这一输出进行同态解密,其结果与用同一方法操作未加密的原始数据得到的输出结果一致。
该类加密算法可使云计算平台即使不知道明文数据,也可对密文直接进行计算,银行获取计算结果密文后,解密即可得在本端对明文进行同样计算的结果。
基于同态加密技术,我们可以在加密的数据中进行检索、对比、计算等操作,得到正确的结果,而在整个处理过程中无需对数据进行解密,其重要意义在于,真正从根本上解决云计算等场景下用户将数据及其操作委托给第三方时的保密问题。
1.2论文研究目标
针对银行云计算场景下数据安全问题,开展数据同态加密算法研究。
面向银行应用场景,对原有算法适当改进或裁剪,有效降低算法复杂度和密钥长度,提高加解密运算效率,提出适用于银行云计算的同态加密方案,设计实现算法验证模型系统,并给出验证方法和测试结果。
1.3论文主要研究内容
面向银行云计算应用场景的全同态加密方案设计。
面向银行云计算应用场景的全同态加密方案的编码与实现。
1.4论文工作计划
序号
时间段
计划完成的工作
1
2015.12-2016.01
通用加密算法研究,同态加密方案的密码学基础学习
2
2016.02-2016.03
全同态加密方案构造思想和实现技术研究
3
2016.04-2016.06
面向银行云计算应用场景的全同态加密方案设计
4
2016.07-2016.09
面向银行云计算应用场景的全同态加密方案的编码与实现
5
2016.10-2016.10
测试模拟方案的性能,完成参数确定与bug修复
6
2016.11-2016.11
毕业论文撰写
1.5预期成果
1.面向银行云计算应用场景的全同态加密方案
2.面向银行云计算应用场景的全同态加密方案的模拟实现系统及测试数据
3.小论文2篇
4.相关专利1项
2已经完成的工作
2.1银行云计算中同态运算需求分析
在调研部分中小银行相关情况后,根据银行业务逻辑和中小银行体量特点,分析预测云计算环境中银行数据的同态加密需求。
数据种类:
银行账目,主要是账户余额、交易额、利息率等数值类数据,为一定精度的实数;
数据精度:
小数部分保留3位有效数字(十进制);
数据长度:
按照一定的密钥更换周期,预测该段时间内中小银行交易量,结合数据精度要求,确定需加密的数值可用48bit定点数表示;
同态运算次数:
根据中小银行交易量,预测其同态运算次数需求为216-232。
2.2国内外同态加密方案分析
通过对国内外同态加密领域的大量文献阅读和分析,将已发表的同态加密方案分为三个类别。
1.基于同态解密技术的自启动方案
2009年IBM研究员Gentry构造出第一个全同态加密方案,其后发表的多个方案都遵循Gentry的构造框架,在各种环的理想上,首先构建一个部分(somewhat)同态加密方案(即方案只能执行低次多项式计算),然后“压缩”解密电路,从而执行自己的解密函数进行同态解密,达到控制密文噪声增长的目的,通过迭代,最终理论上实现真正意义的全同态。
代表方案有2010年由Dijk,Gentry,Halevi和Vaikuntanathan联合提出的整数上的全同态加密方案(DGHV方案),实现了1-bit数据的全同态加密;2013年Cheon等人提出了批量全同态加密方案,可一次性加密多比特数据,提高了效率;2015年KNuida等提出了非二进制空间上的同态加密方案,可实现比特串的批量加密。
尽管同态解密是实现全同态加密的基石,但是同态解密的效率很低,同时,该类方案目前仅实现单比特或比特流的加密,对银行云计算下的数值(一定精度和长度的实数)计算不适用,需进行一定的改进。
2.无自启动的层次型同态加密方案
为规避由于同态解密带来的高复杂度,部分学者打破原有的Gentry构建全同态加密方案的框架,基于环上LWE问题构造无需自启动实现一定次数(多项式次数)的同态加密方案,以适用部分场景。
其基本思路是首先构建一个部分同态加密方案,密文计算后,用密钥交换技术控制密文向量的维数膨胀问题,然后使用模交换技术控制密文计算的噪声增长。
通过上述方法不需要同态解密技术就可获得层次型全同态加密方案,但该类方案并不是真正的全同态,由于其计算次数需要在方案设计时充分预估,一旦超过该次数方案即失效,同时为实现密钥交换和模交换,对密钥长度等参数有较高要求,也不能完全满足银行云计算的需求。
3.不带噪声消减的同态加密方案
上述两类方案在使用中均由于密文噪声在同态乘法中的快速增长而设计了各种消减措施,因而使得计算复杂度很高或者计算次数受限,这使得一些人开始探讨无噪声消减的同态加密方案。
2015年,MasahiroYagisawa、DongxiLiu、Li&Wang分别利用八元环、向量和非交换环的性质结合模运算提出了各自的无噪声消减的同态加密方案,构造方法简单易懂,相比上述两类方案效率有很大的提高,但由于其线性映射关系较为明确,安全性较低,需要进一步改进。
2.3Fp上全同态加密方案的设计
参照DGHV方案,为更好的适应本课题需求,对其进行改进,将其明文空间由单比特的F2拓展到有限数域Fp,构造方法表述如下。
Somewhat方案
按照DGHV方案中的相应参数进行设置。
l参数设置
γ公钥中整数的比特长度:
η私钥的比特长度;
ρ噪声的比特长度;
ε明文的比特长度;
ξ有限素域Fp中p的比特长度。
这些参数需满足以下条件:
r=w(loglε),为保证方案能够抵抗对噪声的蛮力攻击;
h≥r·Θ(lεlog2lε),这是为了能够计算压缩后的解密电路;
g=w(h2loglε),为了能够抵御各种对近似最大公因子问题的基于格的攻击方;
x≤Θ(hloglε),为了保证噪声不超过阈值,使得方案正确;
e≤x/2,是为了保证明文m属于有限域Fp,从而可以应用本节方案。
我们也使用另一个噪声参数r’=r+w(loglε),一个简便的参数设置方法就是令r=lε,r’=2lε,h=Θ(λε2),g=Θ(λε5)。
l对称加密方案
本方案可加密任一小于p的整数,而无需再将该整数转化成二进制数后再逐比特加密,进而可以大幅度提高方案的效率。
明文空间为Fp,即m∈{0,1,⋯,p-1},其中p为素数,密文空间为C。
KeyGen(lε):
在区间2Z+1⋂[2η-1,2η)选择一个h比特的素数s作为密钥。
Encrypt(Kp,m):
对任意的整数m∈{0,1,⋯,p-1}进行加密,计算c=m+sq+pr,其中q∈(2γ-1,2γ]和r∈(2ρ-1,2ρ)是随机选取的整数。
DecryptKs,c:
输出m¬(cmods)modp。
改进之后还有一个问题,就是修改后的方案对于整数上的乘法和加法是否仍然保持同态性质?
下面验证其同态性:
设c1=m1+sq1+pr1,c2=m2+sq2+pr2,则有
Em1+Em2=c1+c2=m1+sq1+pr1+m2+sq2+pr2=m1+m2+sq1+q2+p(r1+r2)=Em1+m2
Em1×Em2=c1×c2=(m1+sq1+pr1)×(m2+sq2+pr2)=m1×m2+sm2q1+m1q2+pr1q2+pr2q1+sq1q2+p(m1r2+m2r1+pr1r2)=Em1×m2
下面我们讨论一下噪声的情况,若m+pr
此时能够从密文c中正确还原出明文m。
否则若m+pr≥s/2,解密就有可能出现错误。
接下来我们将上述方案调整为公钥加密方案。
l公钥加密方案
KeyGen(lε):
选取一个素数s∈[2η-1,2η]作为私钥,随机选择一个素数q∈2q-1,2q,再随机选取两个整数l∈[0,2γ/s]和h∈(-2ρ,2ρ),令N=sq,计算x=sl+ph。
输出公钥Kp=(N,x),私钥Ks=s。
EncryptKp,m:
随机选择两个整数r1∈(-2r’,2r’),r2∈(-2r,2r),根据公钥Kp=(N,x),计算C=(m+pr1+r2x)modN,输出c。
DecryptKs,c:
输出m¬(cmods)modp。
EvaluateKp,C,c1,⋯,cg:
对于给定的电路Cε,以及g个密文ci,用整数上模N的加法和乘法门替换原电路中的加法和乘法门,将g个密文输入到扩展的电路后,执行其中所有的运算,最后输出电路的运算结果。
注意为了能够正确解密,这里需要保证cmods的取值在(-s/2,s/2)之间。
l解密正确性
这个方案的噪声为cmods,而c=m+pr1+r2h+sr2l-kq,所以在解密过程中首先计算的是c/s,而实际上相当于求c除以s的整数商r2l-kq。
因为
c/s=m+pr1+r2hs+r2l-kq
因此为了能够满足:
c/s=r2l-kq,就要满足下面的条件
|m+pr1+r2hs|<12
即
m+pr1+r2h进而有c-c/s=m+p(r1+r2h)