首页> 中国专利> 一种云计算环境中并行同态数据加密方法

一种云计算环境中并行同态数据加密方法

摘要

本发明公开了一种云计算环境中并行同态数据加密方法,包括以下步骤:步骤1,根据给定的安全强度要求参数和加密后明文数据的比特长度,生成私钥和公钥;步骤2,将明文数据等分成N块,记为m

著录项

  • 公开/公告号CN105162590A

    专利类型发明专利

  • 公开/公告日2015-12-16

    原文格式PDF

  • 申请/专利权人 南京邮电大学;

    申请/专利号CN201510339182.X

  • 申请日2015-06-18

  • 分类号H04L9/32;H04L29/06;H04L29/08;

  • 代理机构南京经纬专利商标代理有限公司;

  • 代理人许方

  • 地址 210023 江苏省南京市栖霞区文苑路9号

  • 入库时间 2023-12-18 12:50:07

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-02-23

    授权

    授权

  • 2016-01-13

    实质审查的生效 IPC(主分类):H04L9/32 申请日:20150618

    实质审查的生效

  • 2015-12-16

    公开

    公开

说明书

技术领域

本发明涉及一种云计算环境中并行同态数据加密方法,属于信息安全技术领域。

背景技术

大数据安全领域是近几年备受关注的一个热点问题。一方面,数据所有者将大量的数据 存储于云计算环境中,供使用者访问使用。但这些大量数据中有很多敏感数据需要保障其机 密性,如位置信息、个人身份等隐私信息等,如何实现对这类存储模式中数据文件的信息加 密,实现安全、有效、简单的数据访问控制是云计算走向实际应用需要解决的问题。另一方 面,由于文件数据数量大,需要构建一种针对大数据的快速加密算法,而在云计算环境中, 就要解决如何能够利用云计算环境可并行计算的特点,实现大数据的快速并行加密。

同态加密是一种对数据进行处理的加密方法,设计云计算环境下的可并行计算同态加密 方法,既可以利用同态加密进行数据加密,又可以利用云计算环境的并行计算性能,提高数 据加密解密的速度,实现不可信云计算环境中的数据隐私保护,具有广泛的应用前景。

发明内容

本发明所要解决的技术问题是:提供一种云计算环境中并行同态数据加密方法,通过结 合云计算环境MapReduce的并行技术和同态加密技术实现一种并行的同态加密方案,提高了 大数据量的加密解密速度。

本发明为解决上述技术问题采用以下技术方案:

一种云计算环境中并行同态数据加密方法,包括以下步骤:

步骤1,根据给定的安全强度要求参数λ和对明文数据分块后每块长度的比特数k,生成私钥 sk,根据生成的私钥sk生成公钥pk;

步骤2,将明文数据m等分成N块,记为m1,…,mN-1,mN,且每块长度的字节数为k/8,mN的 长度等于或小于m1,…,mN-1的长度,当mN的长度小于m1,…,mN-1的长度时,mN后面用零补 充使mN的长度等于m1,…,mN-1的长度;

步骤3,将步骤2分块后的明文数据m1,…,mN在Map中用步骤1生成的公钥pk进行并行加 密处理,得到加密后的密文数据c1,…,cN

步骤4,将步骤3得到的密文数据c1,…,cN在Reduce中进行拼接,得到完整的密文c。

优选的,步骤1所述生成私钥sk的过程为:计算η=λ3+k,选取比特为η的素数p,得 到私钥sk=p。

优选的,步骤1所述生成公钥pk的过程为:选取任意正整数τ,计算γ=λ5和xi=2ri+pqi, i=0,1,2,…,τ-1,其中,ri为λ个比特的随机整数,qi为γ个比特的随机素数整数,得到集合{xi}, 将集合{xi}中最大的整数记为xmax,并交换x0和xmax对应的数值,得到公钥pk=<x0, x1…,xτ-1>。

优选的,所述步骤3的过程为:从公钥集合pk中任意选取若干个xi进行累加,得到sum, 在区间(-2λ,2λ)任选一随机整数r,在Map中根据加密公式cj=(mj+2k*r+2*sum)modx0进行并行加密处理,得到加密后的密文数据cj,j=1,2,…,N。

优选的,步骤4所述完整的密文c=c1+c2+…+cN

本发明采用以上技术方案与现有技术相比,具有以下技术效果:

本发明并行同态数据加密方法解决了云计算实际应用过程中要解决的两个问题,一是数 据所有者对数据文件的机密性要求,通过对明文文件的分组加密,上载存储于云环境中,保 证数据所有者的敏感信息受到保护;二是针对大数据高速计算要求,采用分组加密并行的计 算技术,使数据文件的加密过程可利用云计算环境中的并行计算技术,实现对大数据文件加 密的高速并行计算,最终满足云计算环境中大数据的安全高速访问。

附图说明

图1是本发明云计算环境中并行同态数据加密方法的流程图。

图2是在MapReduce中进行并行同态加密的模型图。

具体实施方式

下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相 同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描 述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

如图1所示,包括如下步骤:

步骤1,获取密钥

给定一个安全强度要求参数λ,取k为每块加密的明文长度的比特数,计算η=λ3+k,γ=λ5。 选取一个η比特的素数p,计算sk=p,作为解密的私钥。

采用下面的方法来产生公钥pk。对给定的任意正整数τ,取i=0,1,2,……,τ-1,计算xi=2ri+pqi,其中ri为λ个比特的随机整数,qi为γ个比特的随机素数整数,得到一组整数,记为 集合{xi},在集合中找到最大的整数xmax,把x0和xmax位置进行交换,得到一个新的数组, 并且x0是最大的元素,则pk=<x0,x1……xτ-1>。

步骤2,对明文数据文件进行分块

将明文数据文件m等分成N块,每块长度的字节数为d,k=8*d,记为m1,m2,m3,……, mN。每一块独立进行加密运算,最后一块如长度不够,用零填充。

步骤3,用公钥系统对数据文件进行加密

为提高并行加密时的速度,在集合(0,1,2,...,τ-1)中随机选取一个子集合S计算 即从公钥集合pk中任意选取若干个xi进行累加,得到sum的值。

在区间(-2λ,2λ)任选一个随机整数r,各个云平台中的Map节点对步骤2中所划分的 明文块进行并行处理,加密方法为:

cj=(mj+2k*r+2*sum)modx0其中j=1,2,3,……,N

在所有云计算平台中的Map节点操作结束后,Map节点输出分段加密后的密文cj,将 Map节点生成的密文块作为云计算平台Reduce节点的输入,Reduce节点进行计算,负责处 理不同的中间结果数据集合,即在Reduce过程中将并行加密而成的密文进行拼接,进而得到 完整的密文c,即c=c1+c2+……+cN

步骤4,用公钥系统对加密数据进行解密

在得到密文和私钥p后,根据模运算原理,对密文进行解密。解密算法如下:

Mj=(cjmodp)mod2k

事实上,由加密公式可得:

cj=(mj+2k*r+2*sum)modx0

对于i∈(0,1,2,...τ-1)有x0>xi,取a为一任意整数,可得:

cj=(mj+2k*r+2*ΣiSxi)+a*x0

因为xi=2k*ri+p*qi,可得:

cj=(mj+2k*r+2*Σi(qip+2k*ri))+a*(q0*p+2k*r0)

=p*(j*p0+2*Σiqi)+(mj+2k*r+a*2k*r0+2*Σi(2k*ri))=p*(j*p0+2*Σiqi)+(mj+2k(r+a*r0+2*Σiri))

因为远小于p,所以用密文cj对p进行求模运算,可得到又因为mj是k比特的整数,所以小于2k,由此,进行模2k运算后,可以得到明文mj,实现密文的解密。

下面根据具体实施例对技术方案做进一步详细描述:

步骤1,密钥的选取

私钥的生成:选取一个安全参数λ=3,k=32,计算η=λ3+k=59,γ=λ5=243,选取一个η 位比特的素数p,作为私钥sk,即p=512459108289551201,sk=512459108289551201。

对于公钥pk,将用下面的方法来产生。取τ=5,选取5个λ比特的随机整数组(r0,r1,r2,r3, r4),5个γ比特的随机素数整数组(q0,q1,q2,q3,q4),具体如下:

r0=3,r1=4,r2=6,r3=2,r4=4;

q0=1119475061394576617557561076655487288878168221744130347215051314869432455 1,

q1=8492031685339572574313728763524112363042504024065018677660910912598216507 ,

q2=8802967451602809312516642615537868848742327136531727175275956435965922551 ,

q3=9983679068944655542941186352186124653012476808248831241521808005965882303 ,

q4=1297891038844887578901400369025777773136826101004111109440738920427937783 9;

计算xi=2ri+pqi,其中i=0,1,2,3,4。得到一组整数,记为集合{x0,x1,x2,x3,x4},具体为:

x0=5736851917146553179875532824987001357402938153238507932556027377288816059 038693776510737639,

x1=4351818985035732011954204486028711472323185505436675059772808992941696619 064915393239744091,

x2=4511160850550318628561874721326501412264251072365071283858928867227446481 340157003484837527,

x3=5116227273120434945714382869493002870299884746841354027885894086113495299 247202118448230495,

x4=6651160844234503481087661042427036440611814198425582183507791236993923677 542435821995103823。

在集合{x0,x1,x2,x3,x4}中找到最大的整数xmax,把x0和xmax交换位置,得到一个新的 数组,并且x0是最大的元素,则公钥pk为:

pk=<x0,x1,x2,x3,x4>=<6651160844234503481087661042427036440611814198425582183507 791236993923677542435821995103823,

4351818985035732011954204486028711472323185505436675059772808992941696619064 915393239744091,

4511160850550318628561874721326501412264251072365071283858928867227446481340 157003484837527,

5116227273120434945714382869493002870299884746841354027885894086113495299247 202118448230495,

5736851917146553179875532824987001357402938153238507932556027377288816059038 693776510737639>。

步骤2,对明文数据文件分块

在MapReduce中将源数据文件进行分块,取明文为m=(aaaabbbbcccc),取N=3,即将 明文分为三块,分别为m1=(aaaa)=1633771873,m2=(bbbb)=1650614882和m3=(cccc) =1667457891,d=4,分块后就可以对每一块独立进行Map计算,以保证加密过程的并行性。

步骤3,用公钥系统对数据块进行加密

计算sum0=x0=665116084423450348108766104242703644061181419842558218 3507791236993923677542435821995103823,

从pk中任意选取4个进行累加,得到sum1=x1+x2+x1+x3,sum2=x2+x2+x2+x3,sum3= x1+x2+x1+x2,sum4=x1+x3+x3+x3,具体为:

sum1=18331026093742217598184666562876927227210506830079775431290440939224335 018717189908412556204,

sum2=18649709824771390831400007033472507107092637963936567879462680687795834 743267673128902743076,

sum3=17725959671172101281032158414710425769174873155603492687263475720338286 200810144793449163236,

sum4=19700500804397036849097353094507720083222839745960737143430491251282182 516806521748584435576。

运用加密公式对明文m1,m2,m3进行加密:

cj=(mj+2k*r+2*sum)modx0,j=1,2,3

其中k为明文数据的比特长度,k=32,r=7,得到密文:

c1=4423637982703094318856836329856352887951244758752328320247893246350438845 725273181157498535,其中sum=sum3

c2=5347388136302383869224684948618434225869009567085403512447098213807987388 182801516627921384,其中sum=sum2

c3=4423637982703094318856836329856352887951244758752328320247893246350438845 725273181191184553,其中sum=sum3

每一块独立进行Map运算,即加密运算,以保证加密过程的并行性,在所有的Map块 操作结束后,Map端输出分段加密后的密文,在Reduce中将并行加密而成的密文进行拼接, 进而得到完整的密文:

c=44236379827030943188568363298563528879512447587523283202478932463504388457 25273181157498535534738813630238386922468494861843422586900956708540351244709821 38079873881828015166279213844423637982703094318856836329856352887951244758752328 320247893246350438845725273181191184553。

步骤4,用公钥系统对加密数据进行解密

输入私钥p=512459108289551201和得到的密文c,运用下列解密公式计算明文:

mj=(cjmodp)mod2k,其中j=1,2,3;

可计算出明文块m1=aaaa,m2=bbbb,m3=cccc,拼接得最终明文m=aaaabbbbcccc。

如图2所示,对明文数据进行分块,输入到各个Map节点并行处理同态加密,然后将加 密后的密文块输入到Reduce节点进行连接处理,在Reduce节点处理之前,必须等到所有的 Map节点处理完,因此在Reduce节点前加入同步障,Reduce节点完成连接操作后输入完整 的密文。

以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本 发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号