分布式渲染设备及系统
技术领域
本发明涉及分布式网络领域,尤其涉及一种分布式渲染设备及系统。
背景技术
现有的分布式渲染设备种类繁多。几乎任何带有操作系统的设备都可以作为分布式渲染设备,例如手机、平板电脑、个人电脑和工作站等。对于个人来说,可以通过添加闲置的设备来增加渲染速度。对于企业来说,大的渲染任务可以交给专门的云渲染公司负责。
由于对于个人来说,可以增加的设备数有限,外部的设备由于没有收益,所以并不会帮忙作业。对于企业来说,将渲染任务交给专门的云渲染公司由于还需要另外支付公司的运营成本,收费必然会比较昂贵。所以最好的分布式渲染系统就是由大量的个人自发地来提供渲染设备,渲染任务的发布者只需要按照工作量来给予报酬。个人由于有利可图,便会提供大量的设备。而渲染任务的发布者只需要支付工作量的报酬,进而降低了成本。
这种分布式设备可以应用于根据节点工作量给予奖励的分布式渲染系统中。在这个系统中,分布式渲染节点接收渲染任务,安排GPU完成渲染任务后提交给任务分配者。任务分配者判断任务完成后对节点发放奖励。
但这个系统存在中间人攻击和数据篡改的风险。中间人攻击指的是黑客劫持分布式渲染设备的输出结果发送给任务分配者获得奖励。数据篡改指的是黑客劫持分布式节点的输出并植入攻击性代码进而攻击整个网路。
发明内容
针对上述问题,本发明的目的在于提供一种分布式渲染设备及系统,可以保证渲染设备输出的渲染结果传递的安全性,避免了中间人攻击和数据篡改的风险。
本发明提供了一种分布式渲染设备,包括:网络接口、主板、微控制单元、数字签名芯片以及图形处理器;所述主板与所述网络接口、所述微控制单元以及所述数字签名芯片连接;所述微控制单元与所述数字签名芯片以及所述图形处理器连接;其中:
所述网络接口,用于接收分布式网络中的任务发送端发送的渲染任务,并将所述渲染任务传输给所述主板;
所述主板,用于将所述渲染任务经由所述微控制单元发送给所述图形处理器;
所述图形处理器,用于根据所述渲染任务进行渲染,生成相应的渲染结果,并将所述渲染结果发送给所述微控制单元;
所述微控制单元,用于将所述渲染结果发送给所述数字签名芯片;
所述数字签名芯片,用于使用密钥和散列算法对所述渲染结果进行加密处理,以生成第一HMAC值,并将所述第一HMAC值返回给所述微控制单元;
所述微控制单元,用于将所述第一HMAC值和渲染结果经由所述主板以及所述网络接口发送到分布式网络中,以使得所述任务发送端接收所述第一HMAC值和渲染结果,并根据预先存储的所述密钥对所述渲染结果进行验证。
优选地,所述网络接口为RJ45网口。
优选地,所述网络接口还用于,在接收到来自所述任务发布端发布的渲染任务后,将分布式渲染设备自身的密钥经由所述分布式网络发送给所述任务发布端。
优选地,还包括电源、内存以及硬盘;所述电源、内存以及硬盘均与所述主板连接。
优选地,所述微控制单元与所述数字签名芯片通过一根时钟线和一根数据线进行主从式通讯;
则所述微控制单元将所述渲染结果发送给所述数字签名芯片的通讯过程为:
在没有发送和接收请求时,所述微控制单元控制使时钟线和数据线的电平为高电平;
当所述微控制单元需要发送渲染结果给所述数字签名芯片时,所述微控制单元将时钟线上面的电平置为低电平作为起始信号;
在经过简短延时后,所述微控制单元使时钟线上的电平每隔一段时间反相一下,以作为所述微控制单元和数字签名芯片通讯的时钟;
所述微控制单元在时钟线为低电平期间改变数据线上的电平为数据“1”或数据“0”,当时钟线为高电平时允许数字签名芯片接收数据线上面的数据;
在发送完所述渲染任务后,所述微控制单元把时钟线和数据线上的电平置为高电平。
优选地,所述数字签名芯片将所述HMAC值发送给所述微控制单元的通讯过程为:
数字签名芯片向所述微控制单元发起接收请求;
所述微控制单元在接收到接收请求后,使时钟线上面电平为低,作为起始信号;
在经过简短延时后,所述微控制单元使时钟线上的电平每隔一段时间反相一下,以作为所述微控制单元和数字签名芯片通讯的时钟;
当时钟线的电平为低时,数字签名芯片改变数据线上的电平作为要传输的数据“1”或数据“0”,当为时钟线为高电平时,所述微控制单元接收数据线上面的数据;
在接收完所述HMAC值后,所述微控制单元把时钟线和数据线上的电平置为高电平。
本发明实施例还提供了一种分布式渲染系统,包括通过分布式网络连接的至少两个节点;其中,所述至少两个节点包括任务发送端及至少一个如上述的分布式渲染设备;
所述任务发送端,用于基于所述分布式网络发送渲染任务;
所述分布式渲染设备,用于在接收到所述渲染任务后,向所述任务发送端返回自身的密钥;
所述分布式渲染设备,还用于根据所述渲染任务进行渲染,生成渲染结果,并通过自身的密码以及所述渲染结果界面加密,生成第一HMAC值,并将所述渲染结果以及所述第一HMAC值发送给所述任务发送端;
所述任务发送端,还用于在接收到来自所述分布式渲染设备发送的所述渲染结果以及所述第一HMAC值后,根据所述密钥以及所述渲染结果对所述第一HMAC值进行验证。
优选地,所述任务发送端具体用于,在接收到来自所述分布式渲染设备发送的所述渲染结果以及所述第一HMAC值后,根据所述密钥以及所述散列算法对所述渲染结果进行加密处理,以生成第二HMAC值,并将所述第二HMAC值与所述第一HMAC值进行对比;若所述第二HMAC值与所述第一HMAC值相同,则通过验证;若不同,则不通过验证。
优选地,所述任务发送端还用于,在验证通过后,向相应的分布式渲染设备返回与所述渲染任务的工作量相应的奖励。
本发明实施例提供的分布式渲染设备及系统,由于在分布式渲染设备内增加了数字签名芯片对渲染结果进行加密处理,使得可以在任务发布端对渲染结果进行验证,因此在容易被攻击的分布式网络中,可以保证渲染设备输出的渲染结果传递的安全性,避免了中间人攻击和数据篡改的风险。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的分布式渲染设备的结构示意图。
图2是是本发明第二实施例提供的分布式渲染系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明第一实施例提供了一种分布式渲染设备,包括:网络接口10、主板20、微控制单元(Microcontroller Unit;MCU)30、数字签名芯片40以及图形处理器50;所述主板20与所述网络接口10、所述微控制单元30以及所述数字签名芯片40连接;所述微控制单元30与所述数字签名芯片40以及所述图形处理器50连接;其中:
所述网络接口10,用于接收分布式网络中的任务发送端发送的渲染任务,并将所述渲染任务传输给所述主板。
在本发明实施例中,所述网络接口10可为RJ45网口,其可接入到一个分布式网络中,从而通过该分布式网络与该网络中的节点进行数据的收发。
其中,分布式网络也叫网状网络,它是由分布在不同地点的计算机系统互连而成,网中无中心节点。通信子网是封闭式结构,通信控制功能分布在各节点上。分布式网络的特点是:可靠性高;网内节点共享资源容易;可改善线路的信息流量分配;可选择最佳路径,传输延时小,控制复杂,软件复杂,线路费用高,不易扩充。
分布式网络常是广域网采用的拓扑结构,分布式网络架构的典型网络包括IEEE802.16h网络与CogNet网络。
所述主板20,用于将所述渲染任务经由所述微控制单元30发送给所述图形处理器50。
所述图形处理器50,用于根据所述渲染任务进行渲染,生成相应的渲染结果,并将所述渲染结果发送给所述微控制单元30。
所述微控制单元30,用于将所述渲染结果发送给所述数字签名芯片40。
在本实施例中,所述微控制单元30与所述数字签名芯片40通过一根时钟(CLK)线和一根数据(DAT)线进行主从式通讯;
则所述微控制单元30将所述渲染结果发送给所述数字签名芯片40的通讯过程为:
在没有发送和接收请求时,所述微控制单元30控制使时钟线和数据线的电平为高电平;
当所述微控制单元30需要发送渲染结果给所述数字签名芯片40时,所述微控制单元40将时钟线上面的电平置为低电平作为起始信号;
在经过简短延时后,所述微控制单元使时钟线上的电平每隔一段时间反相一下,这样在时钟线上将会出现一个“高、低、高、低…”的波形,以作为所述微控制单元30和数字签名芯片40通讯的时钟;
所述微控制单元30在时钟线为低电平期间改变数据线上的电平为数据“1”或数据“0”,当时钟线为高电平时允许数字签名芯片40接收数据线上面的数据;
在发送完所述渲染结果后,所述微控制单元30把时钟线和数据线上的电平置为高电平。
所述数字签名芯片40,用于使用密钥和散列算法对所述渲染结果进行加密处理,以生成第一HMAC值,并将所述第一HMAC值返回给所述微控制单元40。
在本实施例中,HMAC是密钥相关的哈希运算消息认证码,HMAC运算利用哈希算法,以一个密钥和一个消息(即渲染结果)为输入,生成一个消息摘要(即第一HMAC值)作为输出。
HMAC的运算步骤如下:
(1)在密钥K后面添加0来创建一个字长为B的字符串。(例如,如果K的字长是20字节,B=64字节,则K后会加入44个零字节0x00);
(2)将上一步生成的B字长的字符串与ipad做异或运算;
(3)将数据流text填充至第二步的结果字符串中;
(4)用H作用于第三步生成的数据流;
(5)将第一步生成的B字长字符串与opad做异或运算;
(6)再将第四步的结果填充进第五步的结果中;
(7)用H作用于第六步生成的数据流,输出最终结果(即第一HMAC值)。
在本实施例中,所述数字签名芯片40将所述HMAC值发送给所述微控制单元30的通讯过程为:
数字签名芯片40向所述微控制单元30发起接收请求;
所述微控制单元30在接收到接收请求后,使时钟线上面电平为低,作为起始信号;
在经过简短延时后,所述微控制单元30使时钟线上的电平每隔一段时间反相一下,以作为所述微控制单元30和数字签名芯片40通讯的时钟;
当时钟线的电平为低时,数字签名芯片40改变数据线上的电平作为要传输的数据“1”或数据“0”,当为时钟线为高电平时,所述微控制单元30接收数据线上面的数据;
在接收完所述HMAC值后,所述微控制单元30把时钟线和数据线上的电平置为高电平。
所述微控制单元30,用于将所述第一HMAC值和渲染结果经由所述主板20以及所述网络接口10发送到分布式网络中,以使得所述任务发送端接收所述第一HMAC值和渲染结果,并根据预先存储的所述密钥对所述渲染结果进行验证。
需要说明的是,所述网络接口10还用于,在接收到来自所述任务发布端发布的渲染任务后,将分布式渲染设备自身的密钥经由所述分布式网络发送给所述任务发布端,如此所述任务发布端可以根据密钥对所述分布式渲染设备发送的渲染结果进行验证,以保证渲染结果没有被篡改或者被中间人攻击劫持。
需要说明的是,所述分布式渲染设备还包括电源60、内存70以及硬盘80;所述电源60、内存80以及硬盘90均与所述主板连接。
在本实施例中,所述电源60为所述分布式渲染设备提供工作所需的能量;所述内存80以及所述硬盘90为所述分布式渲染设备提供运算所需的存储空间。
综上所述,本发明实施例提供的分布式渲染设备,由于在分布式渲染设备内增加了数字签名芯片对渲染结果进行加密处理,使得可以在任务发布端对渲染结果进行验证,因此在容易被攻击的分布式网络中,可以保证渲染设备输出的渲染结果传递的安全性,避免了中间人攻击和数据篡改的风险。
请参阅图2,本发明第二实施例提供了一种分布式渲染系统,包括通过分布式网络连接的至少两个节点;其中,所述至少两个节点包括任务发送端200及至少一个如上述的分布式渲染设备100;
所述任务发送端200,用于基于所述分布式网络发送渲染任务;
所述分布式渲染设备100,用于在接收到所述渲染任务后,向所述任务发送端200返回自身的密钥;
所述分布式渲染设备100,还用于根据所述渲染任务进行渲染,生成渲染结果,并通过自身的密码以及所述渲染结果界面加密,生成第一HMAC值,并将所述渲染结果以及所述第一HMAC值发送给所述任务发送端200;
所述任务发送端200,还用于在接收到来自所述分布式渲染设备100发送的所述渲染结果以及所述第一HMAC值后,根据所述密钥以及所述渲染结果对所述第一HMAC值进行验证。
具体地,所述任务发送端200在接收到来自所述分布式渲染设备100发送的所述渲染结果以及所述第一HMAC值后,根据所述分布式渲染设备100发送的密钥以及所述散列算法对所述渲染结果进行加密处理,以生成第二HMAC值,并将所述第二HMAC值与所述第一HMAC值进行对比;若所述第二HMAC值与所述第一HMAC值相同,则通过验证;若不同,则不通过验证。
本实施例中,若中间人劫持分布式渲染设备的输出结果,则由于在任务发布端没有与中间人相应的密钥进行验证或者密钥不同,因此无法生成第二HMAC值或者生成的第二HMAC值与第一HMAC值不同,即无法通过验证。若黑客劫持分布式节点的输出并植入攻击性代码,则由于渲染结果发生了改变,则生成的第二HMAC值与第一HMAC值不同,也无法通过验证,因而可以保证分布式渲染设备100输出的渲染结果传递的安全性,避免了中间人攻击和数据篡改的风险。
需要说明的是,所述任务发送端200在验证通过后,向相应的分布式渲染设备100返回与所述渲染任务的工作量相应的奖励。
本发明实施例提供的分布式渲染系统,由于所述分布式渲染设备100对渲染结果进行加密处理,使得可以在所述任务发布端200根据分布式渲染设备100发送的密钥对渲染结果进行验证,因此在容易被攻击的分布式网络中,可以保证分布式渲染设备100输出的渲染结果传递的安全性,避免了中间人攻击和数据篡改的风险。
需要说明的是,上述实施例中,所称处理器可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart MediaCard,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。