一种基于数据加密的分布式计算方法及系统与流程

文档序号:20346207发布日期:2020-04-10 22:38阅读:152来源:国知局
一种基于数据加密的分布式计算方法及系统与流程
本发明涉及计算机
技术领域
,特别涉及一种基于数据加密的分布式计算方法及系统。
背景技术
:随着各种计算终端的普及和硬件算力的不断提升,终端硬件逐渐具备了相当强大的计算能力,利用分散的计算终端协同完成原始数据样本计算任务,对大数据的发展有重要的现实意义。在计算过程中,由于原始数据是计算任务发起方的私有资源,可能涉及隐私等敏感信息,在开展计算任务时需要避免计算终端获得原始数据,并且不同计算终端的硬件能力、软件能力、在线率等方面可能存在差异,分布计算系统的任务管理模块需要在不同的计算终端之间合理分配计算任务,因此,需要一个安全的分布计算系统在不泄露原始数据及处理结果信息的前提下完成数据处理,并向需求终端提供其所期望的结果。技术实现要素:本发明提出一种基于数据加密的分布式计算方法及系统,旨在不泄露需求终端原始数据的基础上,根据任务类型特点匹配计算终端,并调用区块链智能合约完成计算服务的交易转账。为实现上述目的,本发明提出的基于数据加密的分布式计算方法,包括如下步骤:步骤s1:任务管理模块定义一标准计算模型集合,并对集合中的每个标准计算模型支持的数据输入输出格式定义,同时,任务管理模块在区块链上创建区块链智能合约;计算终端安装与之适配的标准计算模型并向任务管理模块注册;步骤s2:需求终端发起计算任务请求,定义本次计算任务的数据样本个数,并对每个数据样本dj依次进行二次加密分别得到初始加密数据样本d`j和第一中转加密数据样本d`j;步骤s3:任务管理模块获取需求终端的计算任务请求信息添加到任务队列中,并解密第一中转加密数据样本d`j得到初始加密数据样本d`j;步骤s4:计算终端检查其安装的标准计算模型,从任务队列中选择其可以满足的一个或多个计算任务,上报任务管理模块,任务管理模块按照预设的分配原则,将计算任务以及d`j加密后分配给匹配的计算终端;步骤s5:计算终端解密所述步骤s4中加密的d`j并验证成功后获得d`j,按照计算任务中要求的标准计算模型处理d`j得到处理结果r`j,并将处理结果r`j按照数据输入输出格式要求反馈给任务管理模块;步骤s6:任务管理模块通知需求终端确认处理结果r`j并获取确认信息后,将计算任务的服务费用从需求终端区块链的地址转移到计算终端的区块链地址,完成计算任务;步骤s7:打包本次计算任务的相关信息存储于区块链智能合约。优选地,所述步骤s1中,任务管理模块在区块链上创建区块链智能合约,智能合约主要功能函数包括执行计算任务服务费用支付的功能函数和计算任务信息上链的功能函数;计算任务服务费用支付的功能函数为:payment(addrreq,addrsrv,amount)其中:addrreq为需求终端的区块链地址;addrsrv为计算终端的区块链地址;amount为计算任务的服务费用;计算任务的信息上链功能函数为:record(srvinfo)其中,srvinfo包含计算任务需求信息、区块链地址信息、需求终端确认签名信息、区块链交易信息。优选地,所述步骤s1中,任务管理模块为每一计算终端分配一随机识别id,每一计算终端将其安装的标准计算模型安装信息发送给任务管理模块进行注册,注册内容包括:计算终端识别id、计算终端区块链地址、计算终端安装的标准计算模型合集。优选地,所述步骤s1中,任务管理模块定义标准计算模型集合为{m(1),m(2),…,m(k)},标准计算模型支持的数据输入输出格式个数合集为{n(1),n(2),…,n(k)}。其中,k为任务管理模块支持的标准计算模型个数,第k个标准计算模型为m(k),该模型的数据输入输出格式个数为n(k),k=1,2,…,k。优选地,所述步骤s2中,需求终端向任务管理模块发起计算任务请求过程为:s21:选择计算任务请求所采用的标准计算模型mreq=m(k)s22:选择步骤s21中标准计算模型采用的数据输入输出格式freq=i其中,i的取值可以为1、2、…,n(k);s23:确定计算任务所需处理的数据样本个数n和最高服务单价pricelimit,根据数据样本个数n和最高服务单价pricelimit,需求终端授权任务管理模块在计算服务费用支付时最高的转账额度为:n*pricelimit;s24:根据计算任务运算特点和计算量选择同态加密函数对每个数据样本dj进行同态加密得到初始加密数据样本d`j,d`j=he(dj)其中:j=1,2,…,n;he()为同态加密函数;s25:计算初始加密数据样本d`j的摘要h,并签名sig,h=digest(d`j)sig=f(h,privkeyreq)其中:digest()为摘要计算函数;f()为非对称加密函数;privkeyreq为需求终端非对称加密的私钥;s26:利用任务管理模块的公钥对原始数据样本d`j非对称加密,得到第一中转加密数据样本d`j;d`j=f`(d`j,pubkeytaskmgt)其中:f`()为非对称加密函数;pubkeytaskmgt为任务管理模块非对称加密公钥;s27:将mreq、freq、n、pricelimit、d`j、sig、h计算任务请求信息全部发送给任务管理模块。优选地,所述步骤s3中,任务管理模块利用其私钥privkeytaskmgt解密d`j得到d`j,并计算d`j的摘要h`,通过sig和需求终端的公钥pubkeyreq解出d`j的摘要h;如果h`=h,则数据验证通过,d`j方可传递至计算终端,否则数据验证失败。优选地,所述步骤s4和s5中,任务管理模块按照“服务价格优先、申请时间优先”的原则进行任务分配;针对同一计算任务,如果多个计算终端的服务价格报价和申请时间均相同,任务管理模块则选择服务在线率、系统配置高的计算终端执计算任务行;计算终端执行计算任务具体方式为:s51:任务管理模块利用被选择的计算终端公钥将d`j加密、计算d`j对应的摘要h并签名sig`后发送给被选择的计算终端;被选择的计算终端利用其私钥解密再次得到d`j,并计算d`j的摘要h``,通过sig`和任务管理模块的公钥解出d`j的摘要h,若h``=h,则数据验证通过,否则数据验证失败,即d`j传递失败;s52:计算终端获取d`j,按照计算任务中要求的标准计算模型计算函数mreq,处理计算任务中n个初始加密数据样本d`j,得到处理结果r`j:r`j=mreq(d`j)其中:j=1、2、3、…、n;s53:按照标准计算模型支持的数据输入输出格式要求将r`j反馈给任务管理模块,任务管理模块通知需求终端对处理结果r`j进行确认:s54:需求终端利用同态解密函数解密r`j得到原始处理结果rjrj=he-1(r`j)s55:需求终端确认原始处理结果rj完成后,再计算处理结果r`j的摘要并签名,得到signature(r`j),将签名signature(r`j)发送给任务管理模块。本发明还提出一种基于数据加密的分布式计算系统,包括:需求终端:用于向任务管理模块发起计算任务请求;任务管理模块:用于接受需求终端的计算任务请求,并分配和管理计算任务请求,将计算任务分配给计算终端,在计算终端完成计算任务后,调用区块链智能合约完成计算服务费用的交易转账和计算服务的信息上链;计算终端:用于申请和执行计算任务,并获取计算任务最终的支付费用;区块链:由任务管理模块在区块链中创建区块链智能合约,用于计算最终向计算终端实际支付的费用和计算任务信息的上链。优选地,需求终端用于对计算任务中的数据样本二次加密后发送给任务管理模块,任务管理模块用于接受计算任务,并对二次加密后的数据样本解密获得初始加密文件并验证成功后,根据计算终端上报的信息,将计算任务以及初始加密文件再次加密后分配给匹配的计算终端,计算终端再次解密获得初始加密文件并验证成功后,执行计算任务。与现有技术相比,本发明的有益效果是:本发明利用同态加密技术对原始数据样本进行加密,计算终端基于同态加密的数据提供计算服务,使计算终端无法获得原始数据和处理结果的真实信息,保证了需求终端的信息安全。在计算终端完成数据处理后,任务管理模块通过调用区块链智能合约完成服务费用的转账交易,具有透明和安全性,最后,任务管理模块将需求终端的计算任务需求、处理结果确认信息、区块链交易信息等打包保存于区块链智能合约中,确保了全流程信息的公开、透明、可追溯,因此,本发明各环节均具有良好的安全性。采用标准计算模型和输入输出格式的工作模式,计算终端可以根据自身系统配置等情况安装注册其中的模型,同时,任务管理模块可以及时更新模型,并与其他功能模块保持同步,因此,本发明具有良好的功能通用性,可适用于多种计算任务的分布式计算。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。图1为本发明分布式计算方法流程图;图2为本发明分布式计算系统功能架构图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式本发明提出一种基于数据加密的分布式计算方法,包括如下步骤:步骤s1:任务管理模块定义一标准计算模型集合,并对集合中的每个标准计算模型支持的数据输入输出格式定义,同时,创建区块链智能合约;计算终端安装与之适配的标准计算模型并向任务管理模块注册。步骤s2:需求终端发起计算任务请求,定义本次计算任务的数据样本个数,并对每个数据样本dj依次进行二次加密分别得到初始加密数据样本d`j和第一中转加密数据样本d`j。步骤s3:任务管理模块获取需求终端的计算任务请求信息添加到任务队列中,并解密第一中转加密数据样本d`j得到初始加密数据样本d`j。步骤s4:计算终端检查其安装的标准计算模型,从任务队列中选择其可以满足的一个或多个计算任务,上报任务管理模块,任务管理模块按照预设的分配原则,将计算任务以及d`j加密后分配给匹配的计算终端。步骤s5:计算终端解密所述步骤s4中加密的d`j并验证成功后获得d`j,按照计算任务中要求的标准计算模型处理d`j得到处理结果r`j,并将处理结果r`j按照数据输入输出格式要求反馈给任务管理模块。步骤s6:任务管理模块通知需求终端确认处理结果r`j并获取确认信息后,将计算任务的服务费用从需求终端区块链的地址转移到计算终端的区块链地址,完成计算任务。步骤s7:打包本次计算任务的相关信息存储于区块链智能合约。具体地,所述步骤s1中,任务管理模块初始化,定义标准计算模型集合为{m(1),m(2),…,m(k)},标准计算模型支持的数据输入输出格式个数合集为{n(1),n(2),…,n(k)}。其中,k为任务管理模块支持的标准计算模型个数,第k个标准计算模型为m(k),该模型的数据输入输出格式个数为n(k),k=1,2,…,k。本实施例以图像目标识别计算任务为例,任务管理模块定义标准计算模型有深度学习和支持向量机两种标准计算模型,分别记为m(1)、m(2),即任务管理模块定义的标准计算模型集合记为{m(1),m(2)}。两种标准计算模型的图像数据输入输出格式分别记为f(1)、f(2),每种标准计算模型支持2种图像数据输入输出格式,即标准计算模型支持的数据输入输出格式个数合集为{2,2},具体地,两种模型的数据输入输出格式分配方式如表1所示,表1表1中:fi1(1)=fi1(2)=1920*1080,fi2(1)=fi2(2)=1280*960;fo1(1)、fo2(1)、fo1(2)、fo2(2)的格式均为{typenum,obj1,confidence1,…},typenum为识别出的类型个数,obj1为第一种目标的类型名称,confidence1为第一种目标的识别置信度,置信度的取值在0到1之间,其值越高则目标的存在可能性越大。同时,任务管理模块在区块链上创建区块链智能合约,区块链智能合约主要功能函数包括执行计算任务的服务费用支付功能函数和计算任务信息上链功能函数;计算任务的服务费用支付功能函数为:payment(addrreq,addrsrv,amount)其中:addrreq为需求终端的区块链地址;addrsrv为计算终端的区块链地址;amount为计算任务的服务费用;计算任务的信息上链功能函数为:record(srvinfo)其中,srvinfo包含计算任务需求信息、区块链地址信息、需求终端确认签名信息、区块链交易信息。然后,任务管理模块为每一计算终端分配一随机识别id,本实施例选取3个计算终端、1个需求终端,3个计算终端的id分别记为id1、id2、id3,3个计算终端区块链地址分别记为addr1srv、addr2srv、addr3srv,需求终端的区块链地址记为addrreq。每一计算终端初始化,从任务管理模块获取标准计算模型集合{m(1),m(2)}和数据输入输出格式信息,将其安装的标准计算模型安装信息发送给任务管理模块进行注册,注册内容包括:计算终端识别id、计算终端区块链地址、计算终端安装的标准计算模型合集,并向任务管理模块上报计算终端区块链地址;需求终端初始化,从任务管理模块获取标准计算模型集合{m(1),m(2)}和数据输入输出格式信息,并向任务管理模块上报需求终端区块链地址。将计算终端的注册内容统计于计算终端服务能力表中,具体内容如表2所示,表2计算终端序号计算终端id计算终端区块链地址服务能力srvcap1aimh…glsklp0x1a35….2a{m(1),m(2)}2vfn%...sdsaax0xd723…e3{m(1),m(2)}3kye…ncttlslpq0x8567…7c{m(1),m(2)}任务管理模块、需求终端和计算终端初始化完成后,需求终端发起计算任务请求。所述步骤s2中,需求终端向任务管理模块发起计算任务请求过程为:s21:选择计算任务请求所采用的标准计算模型,本实施例中选取深度学习模型作为本次计算任务请求模型。即:mreq=m(1)s22:选择深度学习模型采用的数据输入输出格式为:freq=1具体地,选择深度学习模型采用的数据输入格式为fi1(1)=1920*1080,数据输出格式为fo1(1)={typenum,obj1,confidence1,…}。s23:确定计算任务所需处理的数据样本个数n为1000和最高服务单价pricelimit为10,根据数据样本个数n和最高服务单价pricelimit,需求终端授权任务管理模块在计算服务费用支付时最高的转账额度为:n*pricelimit=1000*10=10000;s24:根据计算任务运算特点和计算量选择同态加密函数对每个数据样本dj进行同态加密得到初始加密数据样本d`j,d`j=he(dj)其中:j=1,2,…,n;he()为同态加密fan-vercauteren算法函数;s25:计算初始加密数据样本d`j的摘要h,并签名sig,h=digest(d`j)sig=f(h,privkeyreq)其中:digest()为md5()摘要计算函数;f()为ecc()椭圆曲线非对称加密函数;privkeyreq为需求终端非对称加密的私钥;s26:利用任务管理模块的公钥对原始数据样本d`j非对称加密,得到第一中转加密数据样本d`j;d`j=f`(d`j,pubkeytaskmgt)其中:f`()为ecc()椭圆曲线非对称加密函数;pubkeytaskmgt为任务管理模块非对称加密公钥;s27:将mreq、freq、n、pricelimit、d`j、sig、h计算任务请求信息全部发送给任务管理模块。其中,对初始加密数据样本d`j进行非对称加密,并计算其摘要签名,可保证初始加密数据样本d`j在数据传输过程中不被第三方篡改。任务管理模块利用其私钥privkeytaskmgt解密d`j得到d`j,并计算d`j的摘要h`,通过sig和需求终端的公钥pubkeyreq解出d`j的摘要h;如果h`=h,则数据验证通过,d`j方可传递至计算终端,否则数据验证失败,即d`j传递失败。任务管理模块将需求终端的计算任务请求信息添加到任务队列中,所有计算终端可以访问该队列获得计算任务信息,以便申请和承担其中的计算任务获得计算服务费用。任务管理模块任务队列对当前需求终端的计算任务描述为:计算终端检查其安装的标准计算模型,从任务队列中选择其可以满足的一个或多个计算任务,同时,基于需求终端的最高单价信息pricelimit,计算终端上报任务管理模块其可以接受的计算服务报价。假设了3个计算终端均满足计算任务taskseq1的服务能力需求,并分别给出了计算服务费用报价,如下:由此可见,id为aimh…glsklpd的计算终端对需求终端taskseq1的服务报价最低,报价时间最早。对于满足服务能力且发起计算任务承接申请的计算终端,任务管理模块按照“服务价格优先、申请时间优先”的原则进行任务分配;针对同一计算任务,如果多个计算终端的服务价格报价和申请时间均相同,任务管理模块则选择服务在线率、系统配置高的计算终端执计算任务行。根据3个计算终端申请结果,任务管理模块选择id为aimh…glsklp的计算终端作为服务终端,其计算服务的报价记为srvprice=6,该计算终端的区块链地址为addr1srv。任务管理模块选取id为aimh…glsklp的计算终端执行计算任务,具体执行方式为:s51:任务管理模块利用被选择的计算终端公钥将d`j加密得到第二中转加密数据样本d``j;d``j=f``(d`j,pubkeycal)其中:f``()为ecc()椭圆曲线非对称加密函数;pubkeycal为计算终端非对称加解密公钥;计算初始加密数据样本d`j的摘要h,并签名sig`,h=digest(d`j)sig`=f(h,privkeytaskmgt)其中:digest()为md5()摘要计算函数;f()为ecc()椭圆曲线非对称加密函数;privkeytaskmgt为任务管理模块的非对称加密私钥;任务管理模块将加密得到第二中转加密数据样本d``j、初始加密数据样本d`j签名后的摘要sig`,一同发送给计算终端。计算终端利用其私钥privkeycal解密d``j得到初始加密数据样本d`j,并计算d`j的摘要h``,通过sig`和任务管理模块的公钥pubkeytaskmgt解出d`j的摘要h,若h``=h,则数据验证通过,否则数据验证失败,即d`j传递失败。s52:计算终端获取d`j之后,按照计算任务中要求的标准计算模型计算函数mreq,处理计算任务中n个初始加密数据样本d`j,得到处理结果r`j:r`j=mreq(d`j)其中:j=1、2、3、…、n;s53:按照标准计算模型支持的数据输入输出格式要求将r`j反馈给任务管理模块,任务管理模块通知需求终端对处理结果进行确认:s54:需求终端利用同态解密函数得到原始处理结果rj;rj=he-1(r`j)s55:需求终端确认原始处理结果rj完成后,再计算处理结果r`j的摘要并签名,得到signature(r`j),将签名signature(r`j)发送给任务管理模块,以执行计算服务费用的交易转账。任务管理模块收到需求终端对各处理结果r`j的确认签名signature(r`j)后,完成需求终端到计算终端的服务费用支付,并将计算任务信息上链至区块链智能合约。服务费用支付具体方式为:首先,任务管理模块调用智能合约的payment功能函数完成从需求终端地址addrreq到计算终端地址addrsrv的转账:payment(addrreq,addrsrv,amount)其中,amount=1000*6=6000,计算终端的实际服务费用报价为6000。然后,该交易成功转账后,获得交易哈希值hash和该交易所在的区块高度height。计算任务信息上链具体方式为:首先,任务管理模块将本次计算任务的上链信息打包,得到srvinfo,其主要内容如表3所示。表3然后,任务管理模块调用智能合约的record功能函数,将计算服务相关信息保存在区块链智能合约中:record(srvinfo)本发明采用标准计算模型和输入输出格式的工作模式,计算终端可以根据自身系统配置等情况安装注册其中的标准计算模型,同时,任务管理模块与区块链连接,可以及时更新标准计算模型,并与其他功能模块保持同步,因此,本发明具有良好的功能通用性,可适用于多种计算任务的分布式计算。本发明还提出一种基于数据加密的分布式计算系统,如图2所示,包括需求终端、任务管理模块、计算终端和区块链智能合约。需求终端:用于向任务管理模块发起计算任务请求;任务管理模块:用于接受需求终端的计算任务请求,并分配和管理计算任务请求,将计算任务分配给计算终端,在计算终端完成计算任务后,调用区块链智能合约完成计算服务费用的交易转账和计算服务的信息上链;计算终端:用于申请和执行计算任务,并获取计算任务最终的支付费用;区块链:由任务管理模块在区块链中创建区块链智能合约,用于计算最终向计算终端实际支付的费用和计算任务信息的上链。系统运转时,先分别对需求终端、任务管理模块和计算终端初始化。具体地,任务管理模块初始化,定义标准计算模型集合为{m(1),m(2),…,m(k)},标准计算模型支持的数据输入输出格式个数合集为{1,2,…,n(k)}。其中,k为任务管理模块支持的标准计算模型个数,第k个标准计算模型为m(k),该模型的数据输入输出格式个数为n(k),k=1,2,…,k。本实施例以图像目标识别计算任务为例,任务管理模块定义标准计算模型有深度学习和支持向量机两种标准计算模型,分别记为m(1)、m(2),即任务管理模块定义的标准计算模型集合记为{m(1),m(2)}。两种标准计算模型的图像数据输入输出格式分别记为f(1)、f(2),每种标准计算模型支持2种图像数据输入输出格式,即标准计算模型支持的数据输入输出格式个数合集为{2,2},具体地,两种模型的数据输入输出格式分配方式如表1所示。表1中:fi1(1)=fi1(2)=1920*1080,fi2(1)=fi2(2)=1280*960;fo1(1)、fo2(1)、fo1(2)、fo2(2)的格式均为{typenum,obj1,confidence1,…},typenum为识别出的类型个数,obj1为第一种目标的类型名称,confidence1为第一种目标的识别置信度,置信度的取值在0到1之间,其值越高则目标的存在可能性越大。同时,任务管理模块在区块链上创建区块链智能合约,区块链智能合约主要功能函数包括执行计算任务的服务费用支付功能函数和计算任务的信息上链功能函数;计算任务的服务费用支付功能函数为:payment(addrreq,addrsrv,amount)其中:addrreq为需求终端的区块链地址;addrsrv为计算终端的区块链地址;amount为计算任务的服务费用;计算任务的信息上链功能函数为:record(srvinfo)其中,srvinfo包含计算任务需求信息、区块链地址信息、需求终端确认签名信息、区块链交易信息。然后,任务管理模块为每一计算终端分配一随机识别id,以选取3个计算终端、1个需求终端为例,3个计算终端的id分别记为id1、id2、id3,3个计算终端区块链地址分别记为addr1srv、addr2srv、addr3srv,需求终端的区块链地址记为addrreq。每一计算终端初始化,从任务管理模块获取标准计算模型集合{m(1),m(2)}和数据输入输出格式信息,将其安装的标准计算模型安装信息发送给任务管理模块进行注册,注册内容包括:计算终端识别id、计算终端区块链地址、计算终端安装的标准计算模型合集,并向任务管理模块上报计算终端区块链地址addr1srv、addr2srv、addr3srv。并将计算终端的注册内容统计于计算终端服务能力表中,具体内容如表2所示。需求终端初始化,从任务管理模块获取标准计算模型集合{m(1),m(2)}和数据输入输出格式信息,并向任务管理模块上报需求终端区块链地址addrreq。需求终端用于对计算任务中的数据样本二次加密后发送给任务管理模块,任务管理模块用于接受计算任务,并对二次加密后的数据样本解密获得初始加密文件并验证成功后,根据计算终端上报的信息,将计算任务以及初始加密文件再次加密后分配给匹配的计算终端,计算终端再次解密获得初始加密文件并验证成功后,执行计算任务。具体地,需求终端、任务管理模块、计算终端以及区块链之间协作的方式如下。需求终端先向任务管理模块发起计算任务请求,请求过程为:先选择计算任务请求所采用的标准计算模型。例如以深度学习模型作为本次计算任务请求模型。即:mreq=m(1)再选择深度学习模型采用的数据输入输出格式为:freq=1具体地,选择深度学习模型采用的数据输入格式为fi1(1)=1920*1080,数据输出格式为fo1(1)={typenum,obj1,confidence1,…}。确定计算任务所需处理的数据样本个数n=1000和最高服务单价pricelimit为10,根据数据样本个数n和最高服务单价pricelimit,需求终端授权任务管理模块在计算服务费用支付时最高的转账额度为:n*pricelimit=1000*10=10000;然后根据计算任务运算特点和计算量选择同态加密函数对每个数据样本dj进行同态加密得到初始加密数据样本d`j,d`j=he(dj)其中:j=1,2,…,n;he()为同态加密fan-vercauteren算法函数;计算初始加密数据样本d`j的摘要h,并签名sig,h=digest(d`j)sig=f(h,privkeyreq)其中:digest()为md5()摘要计算函数;f()为ecc()椭圆曲线非对称加密函数;privkeyreq为需求终端非对称加密的私钥;并利用任务管理模块的公钥对原始数据样本d`j非对称加密,得到第一中转加密数据样本d`j;d`j=f`(d`j,pubkeytaskmgt)其中:f`()为ecc()椭圆曲线非对称加密函数;pubkeytaskmgt为任务管理模块非对称加解密公钥;最后,将mreq、freq、n、pricelimit、d`j、sig、h计算任务请求信息全部发送给任务管理模块。其中,对初始加密数据样本d`j进行非对称加密,并计算其摘要签名,可保证初始加密数据样本d`j在数据传输过程中不被第三方篡改。任务管理模块利用其私钥privkeytaskmgt解密d`j得到d`j,并计算d`j的摘要h`,通过sig和需求终端的公钥pubkeyreq解出d`j的摘要h;如果h`=h,则数据验证通过,d`j方可传递至计算终端,否则数据验证失败,即d`j传递失败。任务管理模块将需求终端的计算任务请求信息添加到任务队列中,所有计算终端可以访问该队列获得计算任务信息,以便申请和承担其中的计算任务获得计算服务费用。任务管理模块任务队列对当前需求终端的计算任务描述为:计算终端检查其安装的标准计算模型,从任务队列中选择其可以满足的一个或多个计算任务,同时,基于需求终端的最高单价信息pricelimit,计算终端上报任务管理模块其可以接受的计算服务报价。假设了3个计算终端均满足计算任务taskseq1的服务能力需求,并分别给出了计算服务费用报价,如下:由此可见,id为aimh…glsklpd的计算终端对需求终端taskseq1的服务报价最低,报价时间最早。对于满足服务能力且发起计算任务承接申请的计算终端,任务管理模块按照“服务价格优先、申请时间优先”的原则进行任务分配;针对同一计算任务,如果多个计算终端的服务价格报价和申请时间均相同,任务管理模块则选择服务在线率、系统配置高的计算终端执计算任务行。根据3个计算终端申请结果,任务管理模块选择id为aimh…glsklp的计算终端作为服务终端,其计算服务的报价记为srvprice=6,该计算终端的区块链地址为addr1srv。任务管理模块选取id为aimh…glsklp的计算终端执行计算任务,具体执行方式为:任务管理模块先利用被选择的计算终端公钥将d`j加密得到第二中转加密数据样本d``j;d``j=f``(d`j,pubkeycal)其中:f``()为ecc()椭圆曲线非对称加密函数;pubkeycal为计算终端非对称加密公钥;计算初始加密数据样本d`j的摘要h,并签名sig`,h=digest(d`j)sig`=f(h,privkeytaskmgt)其中:digest()为md5()摘要计算函数;f()为ecc()椭圆曲线非对称加密函数;privkeytaskmgt为任务管理模块的非对称加密私钥;任务管理模块将加密得到的第二中转加密数据样本d``j、初始加密数据样本d`j签名后的摘要sig`,一同发送给计算终端。计算终端利用其私钥privkeycal解密d``j得到初始加密数据样本d`j,并计算d`j的摘要h``,通过sig`和任务管理模块的公钥pubkeytaskmgt解出d`j的摘要h,若h``=h,则数据验证通过,否则数据验证失败,即d`j传递失败。然后,计算终端获取d`j之后,按照计算任务中要求的标准计算模型计算函数mreq,处理计算任务中n个初始加密数据样本d`j,得到处理结果r`j:r`j=mreq(d`j)其中:j=1、2、3、…、n;再按照标准计算模型支持的数据输入输出格式要求将r`j反馈给任务管理模块,任务管理模块通知需求终端对处理结果r`j进行确认:需求终端利用同态解密函数解密r`j得到原始处理结果rj;rj=he-1(r`j)最后需求终端确认原始处理结果rj完成后,再计算处理结果r`j的摘要并签名,得到signature(r`j),将签名signature(r`j)发送给任务管理模块,以执行计算服务费用的交易转账。任务管理模块收到需求终端对各处理结果r`j的确认签名signature(r`j)后,完成需求终端到计算终端的费用支付,并将计算任务信息上链至区块链智能合约。服务费用支付具体方式为:首先,任务管理模块调用区块链智能合约的payment功能函数完成从需求终端地址addrreq到计算终端地址addrsrv的转账:payment(addrreq,addrsrv,amount)其中,amount=1000*6=6000,计算终端的实际服务费用报价为6000。然后,该交易成功转账后,获得交易哈希值hash和该交易所在的区块高度height。计算任务信息上链具体方式为:首先,任务管理模块将本次计算任务的上链信息打包,得到srvinfo,其主要内容如表3所示。然后,任务管理模块调用区块链智能合约的record功能函数,将计算服务相关信息保存在区块链智能合约中,确保了全流程信息的公开、透明、可追溯。以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的
技术领域
均包括在本发明的专利保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1