一种针对二次剩余运算的安全外包方法及系统与流程

文档序号:21983613发布日期:2020-08-25 19:20阅读:149来源:国知局
一种针对二次剩余运算的安全外包方法及系统与流程

本申请涉及云计算技术领域,更具体地说,涉及一种针对二次剩余运算的安全外包方法及系统。



背景技术:

物联网可以将人,信息,物理对象和网络紧密地连接在一起,能够极大地方便并改善日常生活。在物联网中,部署了大量的物联网设备来帮助收集和计算数据,以更好地支持不同的物联网应用。但是,这些设备大多数都受到资源的限制。例如作为保护物联网设备的基础的公钥加密协议,求解二次剩余又是加密协议中广泛应用的操作,它可确保物联网中的数据保密,同时也需要大量的计算。

近年来,随着云计算领域技术的不断发展,以及云服务提供商的不断增多,云计算服务越来越深入地走进人们的生活,云计算中的外包计算技术也成为人们关心的热点。外包计算从根本上改变了资源部署和服务提供的方式。外包计算使得资源受限制的用户能够将计算量大的计算任务交付给云服务器进行处理。这种新的计算模式减轻了个人计算的负担,避免了用户对本地软硬件和维护的大量投入,用户可远程地将数据存放到云端进行处理,并按需享受云中高质量的应用和服务。

在当前云计算技术发展越来越快的今天,外包计算为求解二次剩余问题的加速提供了可能。即可以考虑将求解二次剩余问题外包给云服务器,使得用户本地只需进行少量的计算,由此可以达到加速求解二次剩余问题的目的。由此,资源受限的物联网设备可以按使用付费的方式享受云服务器的可观的计算能力。然而,外包计算在带来诸多益处的同时,也不可避免地面临着一些新的安全挑战和问题。首先,在云计算环境下,找到一个完全可信的云服务器是不可能的,其仅仅能够提供商业信用,用户上传的数据中可能包含一些敏感信息。一旦数据上传到云端,数据就脱离了用户的物理控制;另一方面,云端服务器也有可能遭受外部攻击,同样会导致用户资料和个人隐私的泄露。

因此,如何解决上述问题是本领域技术人员需要重点关注的。



技术实现要素:

本申请的目的在于提供一种针对二次剩余运算的安全外包方法及系统,在高效实现外包运算的同时保证数据的隐私和安全,避免数据泄露。

为实现上述目的,本申请提供了一种针对二次剩余运算的安全外包方法,应用于客户端,所述方法包括:

接收原始输入值,并对所述原始输入值进行盲化处理,转换为对应的目标输入值;

将所述目标输入值发送至云服务器,以便所述云服务器根据所述目标输入值计算预设等式对应的盲化后的第一中间值;

获取所述云服务器返回的所述第一中间值,根据所述第一中间值得到对应的真实解,并基于所述真实解计算第二中间值;

将所述目标输入值、所述第二中间值和二次剩余计算任务发送至所述云服务器,以使云服务器计算得到对应的目标计算结果;

接收所述云服务器返回的所述目标计算结果,对所述目标计算结果进行恢复,基于恢复后结果验证并确定实际计算结果。

可选的,所述接收原始输入值,并对所述原始输入值进行盲化处理,转换为对应的目标输入值,包括:

通过输入接口获取预设奇素数、第一整数;所述第一整数为有限域内任意数值;

在所述有限域范围内进行随机选取,得到第二整数、第三整数、第四整数、第五整数,以及与所述预设奇素数的数据长度相同的质数;

对所述预设奇素数、所述第一整数、所述第二整数、所述第三整数、所述第四整数、所述第五整数和所述质数进行盲化处理,转换为对应的目标输入值。

可选的,所述对所述预设奇素数、所述第一整数、所述第二整数、所述第三整数、所述第四整数、所述第五整数和所述质数进行盲化处理,转换为对应的目标输入值,包括:

基于第一公式组对所述预设奇素数、所述第一整数、所述第二整数、所述第三整数、所述第四整数、所述第五整数和所述质数进行盲化处理,转换为对应的目标输入值,所述第一公式组包括:

r=r+r1p,n=n-r2p,p'=pq,a'∈(r',+∞);

其中,p为所述预设奇素数,n∈fp,fp为所述有限域,n、r、r1、r2、r3分别为所述第一整数、所述第二整数、所述第三整数、所述第四整数和所述第五整数,q为所述质数,n'、d1'、p'、a'为所述目标输入值。

可选的,所述获取所述云服务器返回的所述第一中间值,根据所述第一中间值得到对应的真实解,包括:

基于第二公式计算所述第一中间值对应的真实解,所述第二公式为:r1=r1'modp;其中,r1'为所述第一中间值;r1为所述真实解。

可选的,所述获取所述云服务器返回的所述第一中间值,根据所述第一中间值得到对应的真实解之后,还包括:

判断所述真实解是否与预设数值相等;

如果是,则随机选择第六整数;

所述基于所述真实解计算第二中间值,包括:

基于第三公式组,结合所述第六整数和所述真实解计算对应的第二中间值,所述第三公式组包括:a=a'-r1p,w=a2-n,其中,k为所述第六整数,w、d2'为所述第二中间值。

可选的,所述接收所述云服务器返回的所述目标计算结果,对所述目标计算结果进行恢复,基于恢复后结果验证并确定实际计算结果,包括:

接收所述云服务器返回的所述目标计算结果,基于第四公式对所述目标计算结果进行恢复,得到恢复后结果,所述第四公式为:r2=r2'modp;其中,r2为所述恢复后结果,r2'为所述目标计算结果;

基于第五公式,根据所述恢复后结果确定对应的中间结果,所述第五公式为:其中,r3为所述中间结果;

验证所述目标计算结果和所述中间结果是否满足预设条件,所述预设条件为:(r2·r3)2≡nmodp;

如果是,则基于第六公式确定实际计算结果,所述第六公式为:x=r2·r3;其中,x为所述实际计算结果。

为实现上述目的,本申请提供了一种针对二次剩余运算的安全外包方法,应用于云服务器,所述方法包括:

接收客户端发送的目标输入值,根据所述目标输入值计算预设等式对应的盲化后的第一中间值;所述目标输入值为所述客户端对原始输入值进行盲化处理后转换得到的值;

将所述第一中间值返回至所述客户端,以使所述客户端根据所述第一中间值得到对应的真实解,并基于所述真实解计算第二中间值;

接收所述客户端发送的所述目标输入值、所述第二中间值和二次剩余计算任务,得到对应的目标计算结果;

将所述目标计算结果返回至所述客户端,以使所述客户端对所述目标计算结果进行恢复,基于恢复后结果验证并确定实际计算结果。

可选的,所述预设等式为:

可选的,所述接收所述客户端发送的所述目标输入值、所述第二中间值和二次剩余计算任务,得到对应的目标计算结果,包括:

接收所述客户端发送的所述目标输入值、所述第二中间值和二次剩余计算任务,基于第七公式得到对应的目标计算结果,所述第七公式为:

为实现上述目的,本申请提供了一种针对二次剩余运算的安全外包系统,包括:客户端和云服务器;

所述客户端用于接收原始输入值,并对所述原始输入值进行盲化处理,转换为对应的目标输入值;将所述目标输入值发送至云服务器;获取所述云服务器返回的盲化后的第一中间值,根据所述第一中间值得到对应的真实解,并基于所述真实解计算第二中间值;将所述目标输入值、所述第二中间值和二次剩余计算任务发送至所述云服务器;接收所述云服务器返回的目标计算结果,对所述目标计算结果进行恢复,基于恢复后结果验证并确定实际计算结果;

所述云服务器用于接收所述客户端发送的所述目标输入值,根据所述目标输入值计算预设等式对应的所述第一中间值并返回至所述客户端;接收所述客户端发送的所述目标输入值、所述第二中间值和二次剩余计算任务,得到对应的目标计算结果并返回至所述客户端。

通过以上方案可知,本申请提供的一种针对二次剩余运算的安全外包方法,应用于客户端,包括:接收原始输入值,并对所述原始输入值进行盲化处理,转换为对应的目标输入值;将所述目标输入值发送至云服务器,以便所述云服务器根据所述目标输入值计算预设等式对应的盲化后的第一中间值;获取所述云服务器返回的所述第一中间值,根据所述第一中间值得到对应的真实解,并基于所述真实解计算第二中间值;将所述目标输入值、所述第二中间值和二次剩余计算任务发送至所述云服务器,以使云服务器计算得到对应的目标计算结果;接收所述云服务器返回的所述目标计算结果,对所述目标计算结果进行恢复,基于恢复后结果验证并确定实际计算结果。由上可知,本申请在客户端加密过程中需要求解二次剩余时,能够对原始输入值进行盲化处理,云服务器只能获取到盲化处理后的数据,无法获知真实数据。当计算结果返回至客户端后,能够验证该结果是否正确,从而在高效实现外包运算的同时保证数据的隐私和安全,避免数据泄露。

本申请还公开了一种针对二次剩余运算的安全外包系统,同样能实现上述技术效果。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例公开的一种针对二次剩余运算的安全外包方法的流程图;

图2为本申请实施例公开的另一种针对二次剩余运算的安全外包方法的流程图;

图3为本申请实施例公开的一种针对二次剩余运算的安全外包系统的结构图;

图4为本申请实施例公开的一种安全模型的示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在传统将求解二次剩余问题外包给云服务器的技术中,虽然可以达到加速求解二次剩余问题的目的,但是在云计算环境下,找到一个完全可信的云服务器是不可能的,其仅仅能够提供商业信用,用户上传的数据中可能包含一些敏感信息,一旦数据上传到云端,数据就脱离了用户的物理控制;另一方面,云端服务器也有可能遭受外部攻击,同样会导致用户资料和个人隐私的泄露。

因此,本申请实施例公开了一种针对二次剩余运算的安全外包方法,能够在高效实现外包运算的同时保证数据的隐私和安全,避免数据泄露。

需要说明的是,cipolla算法是解决二次剩余最常用的算法,本申请实施例具体基于该算法设计安全外包算法。cipolla算法的第一步是找到a∈fp使得当将此计算外包至云服务器时,必须盲化n和p。当将cipolla算法的第二步外包w给云服务器时,客户端需要将w的值提供给云服务器。如果服务器获得a的值和w的值,则可以轻松推算出n的值。因此,在外包cipolla算法的第一步时,所有a、n、p都必须盲化。在第二步中,云服务器执行模幂运算以获得结果x。在此过程中,需要盲化输入有a和p,以及输出x。在cipolla算法的第一步中,找到a的策略是随机选择整数a∈fp并计算计算结果为-1的几率大约为50%。为了盲化a,而不是让云服务器选择中的整数fp,本申请实施例扩展了范围,并且云服务器将在新间隔中选择a。客户端可以从a'中恢复a。为了盲化n和p,可使用随机元素将其放大,在最终运算之后,客户端可以恢复真实的结果。

具体地,本申请实施例可包括五个阶段:第一问题转换阶段,客户端将计算的输入转换为提供给云服务器的公共值并生成密钥,由客户端进行保管,以解析返回的计算结果;第一计算阶段,给定输入和等式,服务器计算等式的模糊解并将其返回至客户端;第二问题转换阶段,客户端从模糊解中恢复真实解,并基于真实解计算中间值,并将中间值发送至云服务器;第二计算阶段,给定输入、中间值和计算任务,云服务器将计算对应的结果;恢复和验证阶段,客户端利用密钥验证结果的正确性。

参见图1,本申请实施例公开了一种针对二次剩余运算的安全外包方法,应用于客户端,如图1所示,该方法包括:

s101:接收原始输入值,并对所述原始输入值进行盲化处理,转换为对应的目标输入值;

本申请实施例中,可通过输入接口获取原始输入值,即计算的输入,具体包括预设奇素数p,fp为对应的有限域,以及第一整数n,n∈fp,即有限域内任意整数。

进一步地,客户端在上述有限域fp中随机选取四个整数:第二整数、第三整数、第四整数、第五整数,以及与预设奇素数的数据长度相同的质数,并对上述数据进行盲化处理,转换为对应的目标输入值。

具体地,对预设奇素数、第一整数、第二整数、第三整数、第四整数、第五整数和质数进行盲化处理,以转换为对应的目标输入值的过程可以具体为:基于第一公式组进行盲化处理,转换为对应的目标输入值,第一公式组包括:r'=r+r1p,n'=n-r2p,p'=pq,a'∈(r',+∞);其中,p为预设奇素数,n、r、r1、r2、r3分别为第一整数、第二整数、第三整数、第四整数和第五整数,q为质数,a'为客户端从(r',+∞)中随机选取的整数,r'、n'、d1'、p'、a'为目标输入值。

s102:将所述目标输入值发送至云服务器,以便所述云服务器根据所述目标输入值计算预设等式对应的盲化后的第一中间值;

本步骤中,客户端可将上述步骤得到的目标输入值n'、d1'、p'、a'发送至云服务器,进而云服务器可以根据上述目标输入值计算预设等式对应的盲化后的第一中间值;预设等式为:其中,r1'为第一中间值。

s103:获取所述云服务器返回的所述第一中间值,根据所述第一中间值得到对应的真实解,并基于所述真实解计算第二中间值;

在具体实施中,客户端获取到云服务器返回的第一中间值之后,可以从第一中间值中恢复对应的真实解,并基于真实解计算第二中间值。计算真实解的过程可以具体为:基于第二公式计算第一中间值对应的真实解,第二公式为:r1=r1'modp;r1为真实解。

在根据第一中间值得到对应的真实解之后,还可以进一步判断真实解是否与预设数值相等,预设数值可以具体为-1。若真实解与预设数值相等,则可进一步基于第三公式组,结合第六整数和真实解计算对应的第二中间值,第三公式组包括:a=a'-r1p,w=a2-n,其中,k为第六整数,w、d2'为第二中间值。

需要指出的是,在判断真实解是否与预设数值相等之后,若得到真实解与预设数值不相等,则可返回确定目标输入值的步骤,重新进行a'的选取。

s104:将所述目标输入值、所述第二中间值和二次剩余计算任务发送至所述云服务器,以使云服务器计算得到对应的目标计算结果;

本步骤中,客户端可将目标输入值、第二中间值和二次剩余计算任务发送至云服务器,以便云服务根据计算任务进行计算。

在具体实施中,云服务在接收到客户端发送的目标输入值、第二中间值和二次剩余计算任务之后,将基于第七公式得到对应的目标计算结果,第七公式为:r2'为目标计算结果

s105:接收所述云服务器返回的所述目标计算结果,对所述目标计算结果进行恢复,基于恢复后结果验证并确定实际计算结果。

在客户端接收到云服务器返回的目标计算结果之后,可以对其进行恢复和验证。具体地,可以基于第四公式对目标计算结果进行恢复,得到恢复后结果,第四公式为:r2=r2'modp;其中,r2为所述恢复后结果。

进一步地,客户端可以基于第五公式,根据恢复后结果确定对应的中间结果,第五公式为:其中,r3为中间结果。进而验证目标计算结果和中间结果是否满足预设条件,预设条件具体为:(r2·r3)2≡nmodp。若验证得到目标计算结果和中间结果满足预设条件,则基于第六公式确定实际计算结果,第六公式为:x=r2·r3;其中,x为实际计算结果。

通过以上方案可知,本申请提供的一种针对二次剩余运算的安全外包方法,应用于客户端,包括:接收原始输入值,并对所述原始输入值进行盲化处理,转换为对应的目标输入值;将所述目标输入值发送至云服务器,以便所述云服务器根据所述目标输入值计算预设等式对应的盲化后的第一中间值;获取所述云服务器返回的所述第一中间值,根据所述第一中间值得到对应的真实解,并基于所述真实解计算第二中间值;将所述目标输入值、所述第二中间值和二次剩余计算任务发送至所述云服务器,以使云服务器计算得到对应的目标计算结果;接收所述云服务器返回的所述目标计算结果,对所述目标计算结果进行恢复,基于恢复后结果验证并确定实际计算结果。由上可知,本申请在客户端加密过程中需要求解二次剩余时,能够对原始输入值进行盲化处理,云服务器只能获取到盲化处理后的数据,无法获知真实数据。当计算结果返回至客户端后,能够验证该结果是否正确,从而在高效实现外包运算的同时保证数据的隐私和安全,避免数据泄露。

参见图2,本申请实施例提供了另一种针对二次剩余运算的安全外包方法,应用于云服务器,如图2所示,该方法包括:

s201:接收客户端发送的目标输入值,根据所述目标输入值计算预设等式对应的盲化后的第一中间值;所述目标输入值为所述客户端对原始输入值进行盲化处理后转换得到的值;

s202:将所述第一中间值返回至所述客户端,以使所述客户端根据所述第一中间值得到对应的真实解,并基于所述真实解计算第二中间值;

s203:接收所述客户端发送的所述目标输入值、所述第二中间值和二次剩余计算任务,得到对应的目标计算结果;

s204:将所述目标计算结果返回至所述客户端,以使所述客户端对所述目标计算结果进行恢复,基于恢复后结果验证并确定实际计算结果。

关于上述步骤s201至s204的具体实施过程可参考前述实施例公开的相应内容,在此不再进行赘述。

下面对本申请实施例提供的一种针对二次剩余运算的安全外包系统进行介绍,下文描述的一种安全外包系统与上文描述的针对二次剩余运算的安全外包方法可以相互参照。

需要指出的是,二次剩余算法是在密码算法中广泛使用的运算,因此通常应用于安全物联网应用,例如数据的加解密中。

本申请实施例提供了一种针对二次剩余运算的安全外包系统,该系统具体包括:客户端和云服务器。其中,所述客户端用于接收原始输入值,并对原始输入值进行盲化处理,转换为对应的目标输入值;将目标输入值发送至云服务器;获取云服务器返回的盲化后的第一中间值,根据第一中间值得到对应的真实解,并基于真实解计算第二中间值;将目标输入值、第二中间值和二次剩余计算任务发送至云服务器;接收云服务器返回的目标计算结果,对目标计算结果进行恢复,基于恢复后结果验证并确定实际计算结果。云服务器用于接收客户端发送的目标输入值,根据目标输入值计算预设等式对应的第一中间值并返回至客户端;接收客户端发送的目标输入值、第二中间值和二次剩余计算任务,得到对应的目标计算结果并返回至客户端。

参见图3所示,客户端具体指资源受限的物联网设备,云端拥有大量的计算能源。用户想要运行大量计算量的计算任务时,云服务器能够为用户提供按需的资源使用权。用户在使用外包计算时,首先上传计算任务f(x)给云服务器,进而用户对计算任务的输入数据x进行盲化处理,得到盲化后的输入数据x',并将盲化输入数据发送至云服务器。云服务器在接收到客户端发送的计算任务f(x)和输入数据x'之后,按照计算任务的要求完成计算,将计算结果y'=f(x')返回至客户端。客户端将对接收到的结果y'进行验证,以判断结果是否正确。如果通过验证,则可对结果进行恢复,得到期望的结果y;否则输出错误。

图4为本申请实施例提供的单一服务器的外包计算的安全模型示意图。如图4所示,安全模型中包含三个实体:用户t、服务器u'以及敌手a,a=(e,u'),e表示环境,为服务器u'编写程序的软件提供商,有可能存在写入恶意代码的行为。用户通过客户端将数据加密传输至云服务器,服务器根据任务与数据将结果发送至用户,用户再对结果进行解密。在此过程中,用户能够通过对结果的验证结果判断结果是否正确或服务器是否存在不端行为。

由上可知,本申请实施例能够应用于物联网设备数据加密的场景,使得物联网设备将解决二次剩余的繁重计算工作外包给单个云服务器,从而实现物联网设备的高效率。同时,对输入和输出进行模糊化处理,以便外包过程不会泄露计算数据的隐私,并且物联网设备还可以检测到云服务器中的任何不良行为。另外,本申请实施例仅仅使用了一个云服务器,显著节省了资源的耗费。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1