一种基于边缘计算的分布式外包模幂运算方法与流程

文档序号:21317830发布日期:2020-06-30 20:47阅读:287来源:国知局
一种基于边缘计算的分布式外包模幂运算方法与流程

本申请涉及计算机技术领域,特别涉及一种基于边缘计算的分布式外包模幂运算方法、装置、设备及可读存储介质。



背景技术:

模幂运算是加密和签名系统中最基础的运算,由于模幂运算需要较大的计算成本,因此很多场景下需要将模幂运算任务外包会给云完成。外包使得资源受限制的用户能够将计算量大的计算任务交付给云上的服务器进行处理,减轻了个人计算的负担,避免了用户对本地软硬件和维护的大量投入。

在目前的模幂外包方案中,大部分都是将模幂运算任务外包给具有强大计算能力和存储能力的云服务器。云计算将数据和数据处理集中在云服务器上,是单节点上的集中式计算。但这些云服务器通常离用户很遥远,传输时延高,不能满足一些物联网设备实时性的要求。在工业、医疗、车联网等领域,存在大量的对实时性要求强和安全可靠性要高的物联网应用,云计算架构并不适用。

边缘计算可以很好的解决这一问题。边缘计算中的节点在网络拓扑中位置更低,距离终端用户更近,数据传输具有极低时延。而且边缘计算比云计算更加可靠,当某一区域服务异常时,用户请求可以快速转向其他临近区域。但是,边缘计算中的节点仅有有限的计算资源和存储资源,基于云的外包方案不适用于边缘计算。

因此,一方面,基于边缘计算设计模幂外包方案是十分有意义的;另一方面,如何降低边缘服务器的计算量十分重要。此外,边缘服务器可能是不诚实的和好奇的,外包数据可能包含有用户的敏感数据,边缘节点可能返回错误的结果,因此,如何保证用户隐私性并实现对结果的验证,是非常重要的。

综上,针对云服务器延时较高的问题,如何基于边缘计算设计一个可以验证结果的正确性并保护用户的隐私性的模幂运算外包方案,以降低延时,是亟待本领域解决的问题。



技术实现要素:

本申请的目的是提供一种基于边缘计算的分布式外包模幂运算方法、装置、设备及可读存储介质,用以解决当前的模幂运算外包方案将计算任务外包给云服务器,导致延时较高的问题。其具体方案如下:

第一方面,本申请提供了一种基于边缘计算的分布式外包模幂运算方法,包括:

生成多个随机化数对;

利用所述多个随机化数对,对模幂运算任务进行盲化和转换,得到目标任务;

基于二进制形式对所述目标任务进行分割,得到多个子任务;

将所述子任务发送至边缘服务器,并从所述边缘服务器获取所述子任务的计算结果,其中所述子任务与所述边缘服务器一一对应;

对所述多个子任务的计算结果进行合并,得到目标结果;

根据所述模幂运算任务与所述目标任务之间的转换关系,对所述目标结果进行验证,若验证通过,则得到模幂运算结果。

优选的,在底数固定指数可变的情况下,所述生成多个随机化数对;利用所述多个随机化数对,对模幂运算任务进行盲化和转换,得到目标任务,包括:

生成4个随机化数对:其中,u为随机化的底数,k1,k2,k3,k4均为随机化的指数;

生成随机整数r∈(2,11);

根据所述4个随机化数对,将模幂运算任务中的ua和ura分别转换为其中t1=(a-k1)/k2modq,t2=(ra-k3)/k4modq;

根据转换结果,确定目标任务为

优选的,在底数固定指数可变的情况下,所述基于二进制形式对所述目标任务进行分割,得到多个子任务,包括:

将所述目标任务中的分割成k份,得到第一分割结果,所述第一分割结果为:其中k为边缘服务器的总数量,pi=il/k,l为指数t1的比特长度;

将所述目标任务中的分割成k份,得到第二分割结果,所述第二分割结果为:其中k为边缘服务器的总数量,oi=ij/k,j为指数t2的比特长度;

根据所述第一分割结果和所述第二分割结果,确定待分配给第i个边缘服务器的子任务为

优选的,在底数固定指数可变的情况下,在所述将所述子任务发送至边缘服务器之后,还包括:

第i个边缘服务器接收到相应的子任务之后,根据第一边缘计算公式生成计算结果d1,i和d2,i,所述第一边缘计算公式如下:

其中,i∈[1,k]。

优选的,在底数固定指数可变的情况下,所述对所述多个子任务的计算结果进行合并,得到目标结果;根据所述模幂运算任务与所述目标任务之间的转换关系,对所述目标结果进行验证,包括:

根据合并公式对所述多个子任务的计算结果进行合并,得到目标结果,所述合并公式为:

根据所述模幂运算任务与所述目标任务之间的转换关系,利用验证公式对所述目标结果进行验证,所述验证公式为:

优选的,在底数指数均可变的情况下,所述生成多个随机化数对;利用所述多个随机化数对,对模幂运算任务进行盲化和转换,得到目标任务,包括:

生成6个随机化数对:

其中,g为随机化的底数,k1,k2,k3,k4,k5,k6均为随机化的指数;

生成随机整数r∈(2,11);

根据所述6个随机化数对,将模幂运算任务中的ua和ura分别转换为其中,t1=(-k3-k1a)/k2modq,t2=(-k6-k4ra)/k5modq;

根据转换结果,确定目标任务为

优选的,在底数指数均可变的情况下,所述基于二进制形式对所述目标任务进行分割,得到多个子任务,包括:

将所述目标任务中的分割成k份,得到第三分割结果,所述第三分割结果为:其中k为边缘服务器的总数量,pi=l(1-λi)/1-λk,λ=φ/(2+φ),φ为一次模乘与模幂的比值;

分成k份,分别得到第四分割结果、第五分割结果、第六分割结果;

根据所述第三分割结果、第四分割结果、第五分割结果、第六分割结果,确定待分配给第i个边缘服务器的子任务。

第二方面,本申请提供了一种基于边缘计算的分布式外包模幂运算装置,包括:

数对生成模块:用于生成多个随机化数对;

任务转换模块:用于利用所述多个随机化数对,对模幂运算任务进行盲化和转换,得到目标任务;

任务分割模块:用于基于二进制形式对所述目标任务进行分割,得到多个子任务;

任务计算模块:用于将所述子任务发送至边缘服务器,并从所述边缘服务器获取所述子任务的计算结果,其中所述子任务与所述边缘服务器一一对应;

结果合并模块:用于对所述多个子任务的计算结果进行合并,得到目标结果;

结果认证模块:用于根据所述模幂运算任务与所述目标任务之间的转换关系,对所述目标结果进行验证,若验证通过,则得到模幂运算结果。

第三方面,本申请提供了一种基于边缘计算的分布式外包模幂运算设备,包括:

存储器:用于存储计算机程序;

处理器:用于执行所述计算机程序,以实现如上所述的基于边缘计算的分布式外包模幂运算方法的步骤。

第四方面,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上所述的基于边缘计算的分布式外包模幂运算方法的步骤。

本申请所提供的一种基于边缘计算的分布式外包模幂运算方法,包括:生成多个随机化数对;利用多个随机化数对,对模幂运算任务进行盲化和转换,得到目标任务;基于二进制形式对目标任务进行分割,得到多个子任务;将子任务发送至边缘服务器,并从边缘服务器获取子任务的计算结果,其中子任务与边缘服务器一一对应;对多个子任务的计算结果进行合并,得到目标结果;根据模幂运算任务与目标任务之间的转换关系,对目标结果进行验证,若验证通过,则得到模幂运算结果。

可见,该方法首先生成若干个随机化数对,利用这些数对对模幂运算任务进行盲化和转换,得到目标任务,以实现对底数或指数的逻辑拆分和盲化,保护用户隐私;针对边缘服务器计算能力有限的问题,该方法将目标任务分割为多个子任务,且分割过程基于二进制形式实现,进一步降低了边缘服务器的计算量;最终合并各个边缘服务器的计算结果,并根据前述转换关系对合并得到的目标结果进行验证,以确保结果的正确性。实现了降低计算延时,保护用户隐私,并保证结果可验证的目的。

此外,本申请还提供了一种基于边缘计算的分布式外包模幂运算装置、设备及可读存储介质,其技术效果与上述方法的技术效果相对应,这里不再赘述。

附图说明

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

图1为本申请所提供的一种基于边缘计算的分布式外包模幂运算方法实施例一的实现流程图;

图2为本申请所提供的一种基于边缘计算的分布式外包模幂运算方法实施例一的系统模型示意图;

图3为本申请所提供的一种基于边缘计算的分布式外包模幂运算方法实施例二的实现流程图;

图4为本申请所提供的一种基于边缘计算的分布式外包模幂运算方法实施例三的实现流程图;

图5为本申请所提供的一种基于边缘计算的分布式外包模幂运算装置实施例的功能框图;

图6为本申请所提供的一种基于边缘计算的分布式外包模幂运算设备实施例的结构示意图。

具体实施方式

本申请的核心是提供一种基于边缘计算的分布式外包模幂运算方法、装置、设备及可读存储介质,相对于外包给云服务器的方案,实现了降低计算延时,保护用户隐私,并保证结果可验证的目的。

为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

下面对本申请提供的一种基于边缘计算的分布式外包模幂运算方法实施例一进行介绍,参见图1,实施例一包括:

s101、生成多个随机化数对;

s102、利用所述多个随机化数对,对模幂运算任务进行盲化和转换,得到目标任务;

s103、基于二进制形式对所述目标任务进行分割,得到多个子任务;

s104、将所述子任务发送至边缘服务器,并从所述边缘服务器获取所述子任务的计算结果,其中所述子任务与所述边缘服务器一一对应;

s105、对所述多个子任务的计算结果进行合并,得到目标结果;

s106、根据所述模幂运算任务与所述目标任务之间的转换关系,对所述目标结果进行验证,若验证通过,则得到模幂运算结果。

本实施例将模幂运算任务外包给若干个边缘服务器,利用边缘计算处理模幂运算任务。边缘计算将数据和数据处理集中于多个网络边缘设备,是多节点上的分布式计算。上述模幂运算任务为uamodp,其中u从群zp中选取,a从群zq中选取,p和q是两个大素数,并且q是p的一个素因子。

本实施例的系统模型如图2所示,系统成员包括:客户端和边缘服务器,由客户端(数据拥有者和数据用户)与边缘服务器端进行交互实现。

方案包括7个阶段,分别为:预计算,问题转化,问题分割,边缘计算,合并结果,结果验证,结果恢复。其中,预计算阶段由客户端执行,生成形如(a,ua)的多个随机化数对;问题转化阶段由客户端执行,利用上一步生成的随机化数对对模幂运算任务进行逻辑拆分,生成目标任务,以保护用户的隐私;问题分割阶段由客户端执行,按照指数的二进制形式进行分割,并将分割得到的子任务分发给若干个边缘服务器;边缘计算阶段由边缘服务器执行,生成子任务对应的计算结果,并将计算结果返回给客户端;合并结果阶段由客户端执行,客户端在接收到各个边缘服务器返回的计算结果之后,合并得到目标结果;结果验证阶段由客户端执行,客户端根据问题转化阶段的转换关系验证目标结果的正确性;结果恢复阶段由客户端执行,若验证结果正确,客户端根据本地存储的信息进行结果恢复;若验证结果不正确,客户端生成错误提示信息。

值得一提的是,在问题转化阶段,具体过程如下:客户端生成一个随机数;利用该随机数对模幂运算任务的指数进行盲化;利用预计算阶段的随机化数对,对原始的模幂运算任务和盲化后的模幂运算任务进行转换;将转换结果中的部分信息存储在客户端本地,另一部分则作为目标任务传输至下一阶段。

在结果验证阶段,得到合并后的目标结果之后,根据问题转化阶段生成的随机数以及问题转化阶段存储在本地的部分信息,对目标结果进行验证。

在实际应用中,本申请可用于底数固定指数可变的模幂运算任务外包方案,也可用于底数指数均可变的模幂运算任务外包方案,本实施例对此不作限定。

本实施例所提供一种基于边缘计算的分布式外包模幂运算方法,首先生成若干个随机化数对,利用这些数对对模幂运算任务进行盲化和转换,得到目标任务,以实现对底数或指数的逻辑拆分和盲化,保护用户隐私;针对边缘服务器计算能力有限的问题,该方法将目标任务分割为多个子任务,且分割过程基于二进制形式实现,进一步降低了边缘服务器的计算量;最终合并各个边缘服务器的计算结果,并根据前述转换关系对合并得到的目标结果进行验证,以确保结果的正确性。实现了降低计算延时,保护用户隐私,并保证结果可验证的目的。

下面开始详细介绍本申请提供的一种基于边缘计算的分布式外包模幂运算方法实施例二,实施例二基于前述实施例一实现,并在实施例一的基础上进行了一定程度上的拓展。

具体的,实施例二以底数固定指数可变的模幂运算任务外包方案为例,对整个方案的实施过程进行详尽的描述。本实施例中,模幂运算任务为uamodp,其中u从群zp中选取,a从群zq中选取,p和q是两个大素数,并且q是p的一个素因子。

参见图3,实施例二具体包括:

s301、生成4个随机化数对;

上述4个随机化的数对如下所示:

其中,u为随机化的底数,k1,k2,k3,k4均为随机化的指数。

s302、生成随机整数;根据所述4个随机化数对,对模幂运算任务进行盲化和转换,得到目标任务;

上述随机整数的取值范围为r∈(2,11)。

具体的,根据所述4个随机化数对,将模幂运算任务中的ua和利用r盲化后的ura分别转换为其中t1=(a-k1)/k2modq,t2=(ra-k3)/k4modq;最终,根据转换结果,确定目标任务为

s303、将目标任务中的第一部分和第二部分分割成k份,得到第一分割结果和第二分割结果,从而确定分配给各个边缘服务器的子任务;

具体的,将所述目标任务中的分割成k份,得到第一分割结果,所述第一分割结果为:其中k为边缘服务器的总数量,pi=il/k,l为指数t1的比特长度

将所述目标任务中的分割成k份,得到第二分割结果,所述第二分割结果为:其中k为边缘服务器的总数量,oi=ij/k,j为指数t2的比特长度。

根据所述第一分割结果和所述第二分割结果,确定待分配给第i个边缘服务器的子任务为

可以理解的是,参数e1,i和e2,i的取值范围与分块的大小有关,假如e1,i或e2,i含有m个比特,那么其取值范围就是(0,2m-1)。

s304、边缘计算服务器根据子任务生成计算结果,客户端从边缘服务器获取计算结果;

具体的,第i个边缘服务器接收到相应的子任务之后,根据第一边缘计算公式生成计算结果d1,i和d2,i;所述第一边缘计算公式如下:

其中,i∈[1,k]。

s305、根据第一合并公式对所述多个子任务的计算结果进行合并,得到目标结果;

上述第一合并公式为:

s306、根据所述模幂运算任务与所述目标任务之间的转换关系,利用第一验证公式对所述目标结果进行验证;若验证失败,则输出错误提示信息,否则跳转至s307;

上述验证公式为:

s307、确定模幂运算结果。

下面开始详细介绍本申请提供的一种基于边缘计算的分布式外包模幂运算方法实施例三,实施例三基于前述实施例一实现,并在实施例一的基础上进行了一定程度上的拓展。

具体的,实施例三以底数指数均可变的模幂运算任务外包方案为例,对整个方案的实施过程进行详尽的描述。本实施例中,模幂运算任务为uamodp,其中u从群zp中选取,a从群zq中选取,p和q是两个大素数,并且q是p的一个素因子。

参见图4,实施例三具体包括:

s401、生成6个随机化数对;

具体的,通过运行rand算法六次,生成上述6个随机化数对,如下所示:

其中,g为随机化的底数,k1,k2,k3,k4,k5,k6均为随机化的指数。

s402、生成随机整数;根据所述6个随机化数对,对模幂运算任务进行盲化和转换,得到目标任务;

上述随机整数的取值范围为r∈(2,11)。

根据所述6个随机化数对,将模幂运算任务中的ua和利用r盲化后的ura分别转换为其中,t1=(-k3-k1a)/k2modq,t2=(-k6-k4ra)/k5modq;根据转换结果,确定目标任务为

s403、将目标任务的第一部分、第二部分、第三部分、第四部分分割为k份,确定分配给各个边缘服务器子任务;

具体的,将所述目标任务中的分割成k份,得到第三分割结果,所述第三分割结果为:其中,k为边缘服务器的总数量,pi=l(1-λi)/1-λk,λ=φ/(2+φ),φ为一次模乘与模幂的比值,即客户端做一次模乘所花费的时间与做一次模幂所花费时间的比值。

用相同的方式,将目标任务中的分成k份,分别得到第四分割结果、第五分割结果、第六分割结果:

最终,根据所述第三分割结果、第四分割结果、第五分割结果、第六分割结果,确定待分配给第i个边缘服务器的子任务,如下所示:

s404、边缘计算服务器根据子任务和第二边缘计算公式生成计算结果,客户端从边缘服务器获取计算结果;

具体的,第i个边缘服务器接收到相应的子任务之后,根据第二边缘计算公式生成计算结果d1,i,d2,i,d3,i,d4,i;所述第二边缘计算公式如下:

其中,i∈[1,k]。

s405、根据第二合并公式对所述多个子任务的计算结果进行合并,得到目标结果;

上述第二合并公式为:

s406、根据所述模幂运算任务与所述目标任务之间的转换关系,利用第二验证公式对所述目标结果进行验证;若验证失败,则输出错误提示信息,否则跳转至s407;

上述第二验证公式为:

s307、确定模幂运算结果。

下面对本申请实施例提供的一种基于边缘计算的分布式外包模幂运算装置进行介绍,下文描述的一种基于边缘计算的分布式外包模幂运算装置与上文描述的一种基于边缘计算的分布式外包模幂运算方法可相互对应参照。

如图5所示,本实施例的基于边缘计算的分布式外包模幂运算装置,包括:

数对生成模块501:用于生成多个随机化数对;

任务转换模块502:用于利用所述多个随机化数对,对模幂运算任务进行盲化和转换,得到目标任务;

任务分割模块503:用于基于二进制形式对所述目标任务进行分割,得到多个子任务;

任务计算模块504:用于将所述子任务发送至边缘服务器,并从所述边缘服务器获取所述子任务的计算结果,其中所述子任务与所述边缘服务器一一对应;

结果合并模块505:用于对所述多个子任务的计算结果进行合并,得到目标结果;

结果认证模块506:用于根据所述模幂运算任务与所述目标任务之间的转换关系,对所述目标结果进行验证,若验证通过,则得到模幂运算结果。

本实施例的基于边缘计算的分布式外包模幂运算装置用于实现前述的基于边缘计算的分布式外包模幂运算方法,因此该装置中的具体实施方式可见前文中的基于边缘计算的分布式外包模幂运算方法的实施例部分,例如,数对生成模块501、任务转换模块502、任务分割模块503、任务计算模块504、结果合并模块505、结果认证模块506,分别用于实现上述基于边缘计算的分布式外包模幂运算方法中步骤s101,s102,s103,s104,s105,s106。所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再展开介绍。

另外,由于本实施例的基于边缘计算的分布式外包模幂运算装置用于实现前述的基于边缘计算的分布式外包模幂运算方法,因此其作用与上述方法的作用相对应,这里不再赘述。

此外,本申请还提供了一种基于边缘计算的分布式外包模幂运算设备,如图6所示,包括:

存储器100:用于存储计算机程序;

处理器200:用于执行所述计算机程序,以实现如上文所述的基于边缘计算的分布式外包模幂运算方法的步骤。

最后,本申请提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时用于实现如上文所述的基于边缘计算的分布式外包模幂运算方法的步骤。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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