基于硬件安全隔离区域的图像数据处理方法、装置和设备与流程

文档序号:23338728发布日期:2020-12-18 16:32阅读:162来源:国知局
基于硬件安全隔离区域的图像数据处理方法、装置和设备与流程

本发明属于图像数据加密处理技术领域,尤其涉及一种基于硬件安全隔离区域的图像数据处理方法、装置和设备。



背景技术:

影像数据是人工智能在图像识别领域的发展必不可缺的原材料,因此对于图像数据的安全性一直是本领域的技术重点。在实际应用中,对于内部使用往往是不需要考虑图像数据的安全性的,然而如果需要对图像数据进行传输时,则数据的安全性则显得非常的重要。目前,随着硬件技术的发展,出现了可以保障数据安全的硬件模块,例如intel的sgx模块。现有技术中还没有在sgx上针对图像数据的安全加密方法以及图像数据处理方法。



技术实现要素:

有鉴于此,本发明实施例提供了一种基于硬件安全隔离区域的图像数据处理方法、装置和设备,以解决现有技术中如何在安全硬件模块下对图像数据进行加密的问题。

本发明实施例的第一方面,提供了一种基于硬件安全隔离区域的图像数据处理方法,其包括:获取在非可信执行区域中对待处理图像读取的m×n×3维矩阵a;根据矩阵生成器,随机生成一个m×n维矩阵b;对所述m×n维矩阵b进行压缩处理,得到密钥s;确定所述密钥s的比特位数,选取密钥s的前x位比特作为轮数,并按照所述轮数对矩阵a进行置换处理,得到矩阵a1;利用矩阵b对所述矩阵a1进行矩阵点乘运算,得到加密后的矩阵e;根据对称加密算法,利用所述密钥s作为密钥加密所述矩阵e,生成所述待处理图像的加密文件;输出所述加密文件。

在一些可选方案中,在非可信执行区域中读取待处理图像,具体包括:获取待处理图像;识别所述待处理图像的文件格式:当所述待处理图像为静态图像格式时,将所述待处理图像读取为rgb格式的三维矩阵;当所述待处理图像为动态图像格式时,读取所述待处理图像的最大帧数,选取全部/部分帧数的图像读取为rgb格式的三维矩阵,并对每帧图像对应的rgb格式的三维矩阵按序号打包。

在一些可选方案中,确定所述密钥s的比特位数,选取密钥s的前x位比特作为轮数,并按照所述轮数对矩阵a进行置换处理,得到矩阵a1,具体包括:确定所述密钥s在二进制下的比特位数;提取所述比特位数的前x位比特,并转换为十进制所表示的数值a;将矩阵a中的第一个元素移动至第2个元素的位置,以此类推将第i个元素移动至第i+1个元素的位置,直到第m×n个元素移动到第1个元素的位置为止,完成一次置换,其中,i∈(1,m×n),m和n为正整数;根据所述数值a为轮数,连续执行a次所述置换,输出得到矩阵a1。

在一些可选方案中,在输出所述加密文件之后,还包括:将所述密钥s添加到密钥管理系统;建立所述密钥s与所述加密文件的关联关系。

在一些可选方案中,还包括:接收数据使用方发送的图像数据申请;与所述数据使用方建立通信的安全通道;根据所述安全通道,将所述图像数据申请对应的加密文件和密钥s返回给数据使用方。

本发明实施例的第二方面,提供了一种基于硬件安全隔离区域的图像数据处理装置,其包括:数据获取模块,被配置为获取在非可信执行区域中对待处理图像读取的m×n×3维矩阵a;矩阵生成模块,被配置为根据矩阵生成器,随机生成一个m×n维矩阵b;密钥生成模块,被配置为对所述m×n维矩阵b进行压缩处理,得到密钥s;矩阵置换模块,被配置为确定所述密钥s的比特位数,选取密钥s的前x位比特作为轮数,并按照所述轮数对矩阵a进行置换处理,得到矩阵a1;矩阵运算模块,被配置为利用矩阵b对所述矩阵a1进行矩阵点乘运算,得到加密后的矩阵e;数据加密模块,被配置为根据对称加密算法,利用所述密钥s作为密钥加密所述矩阵e,生成所述待处理图像的加密文件;数据输出模块,被配置为输出所述加密文件。

在一些可选方案中,还包括设置于非可信执行区域中用于读取待处理图像的模块,所述模块包括:图像获取模块,被配置为获取待处理图像;图像格式识别模块,被配置为识别所述待处理图像的文件格式:第一图像转换模块,被配置为当所述待处理图像为静态图像格式时,将所述待处理图像读取为rgb格式的三维矩阵;第二图像转换模块,被配置为当所述待处理图像为动态图像格式时,读取所述待处理图像的最大帧数,选取全部/部分帧数的图像读取为rgb格式的三维矩阵,并对每帧图像对应的rgb格式的三维矩阵按序号打包。

在一些可选方案中,所述矩阵置换模块,具体包括:比特位数单元,被配置为确定所述密钥s在二进制下的比特位数;轮数确定单元,被配置为提取所述比特位数的前x位比特,并转换为十进制所表示的数值a;单次置换单元,被配置为将矩阵a中的第一个元素移动至第2个元素的位置,以此类推将第i个元素移动至第i+1个元素的位置,直到第m×n个元素移动到第1个元素的位置为止,完成一次置换,其中,i∈(1,m×n),m和n为正整数;循环置换单元,被配置为根据所述数值a为轮数,连续执行a次所述置换,输出得到矩阵a1。

在一些可选方案中,还包括:密钥保存模块,被配置为将所述密钥s添加到密钥管理系统;密钥关联模块,被配置为建立所述密钥s与所述加密文件的关联关系。

在一些可选方案中,还包括:申请接收模块,被配置为接收数据使用方发送的图像数据申请;安全通道模块,被配置为与所述数据使用方建立通信的安全通道;数据响应模块,被配置为根据所述安全通道,将所述图像数据申请对应的加密文件和密钥s返回给数据使用方。

本发明实施例的第三方面,提供了一种基于硬件安全隔离区域的图像数据处理设备,搭载有intelsgx安全模块,所述图像数据处理设备至少包括:处理器,包括安全隔离区域;存储器,所述存储器中存储有可在所述安全隔离区域中运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面中任一项所述方法的步骤。

本发明的有益效果是:根据提供的硬件安全隔离区域,在其中获取待处理图像的矩阵数据a,然后利用随机生成的矩阵b生成密钥s,并根据密钥s的比特位数对矩阵a进行置换得到首次加密后的矩阵a1,在利用矩阵b对该矩阵a1进行运算,得到二次加密后的矩阵e,最后在利用对称加密算法和密钥s对矩阵a1再次加密得到所述待处理图像的加密文件,通过前述多次的数据加密处理,实现了对图像数据的加密的安全性,所述加密文件不容易被攻击。

附图说明

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

图1是现有技术中sgx模块的原理示意图;

图2是本发明在一实施例中提供的基于硬件安全隔离区域的图像数据处理方法的流程图;

图3是图2所示步骤s210在非可信执行区域中读取待处理图像的流程图;

图4是使用十字链表存储实现矩阵压缩的原理图;

图5图2所示步骤s240在一实施例中的流程图;

图6是本发明在一实施例中提供的数据使用方使用加密文件的流程图;

图7是本发明在一实施例中提供的基于硬件安全隔离区域的图像数据处理装置的原理图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。

为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。

见图1,为现有技术中sgx模块的原理示意图。

其中,sgx,英文全称为:softwareguardextensions,也称为intelsgx,是intel架构新的扩展,在原有架构上增加了一组新的指令集和内存访问机制,这些扩展允许应用程序实现一个被称为enclave的容器,在应用程序的地址空间中划分出一块被保护的硬件安全隔离区域(即可信执行区域),为容器内的代码和数据提供机密性和完整性的保护,免受拥有特殊权限的恶意软件的破坏。

结合图1所示,以一个应用为例,应用由可信部分代码和不可信部分代码构成;当应用运行和创建enclave时,将enclave放入到可信执行区域中;可信函数被调用,执行会转换到enclave中;enclave可以访问所有进程数据,外部如果要访问enclave数据将被禁止;可信函数返回enclave数据。

见图2,示出了本发明在一实施例中提供的基于硬件安全隔离区域的图像数据处理方法的流程图。

结合图1所示,本实施例提供的方法可以应用于图1所示的可信执行区域或非可信执行区域中,示例性的,可以在可信执行区域中运行能够实现本实施例提供的方案的计算机程序。

如图2所示,上述基于硬件安全隔离区域的图像数据处理方法,可以包括下列步骤s210-s270:

s210:获取在非可信执行区域中对待处理图像读取的m×n×3维矩阵a。

待处理图像可以包括静态图像格式和动态图像格式,当待处理图像为静态图像格式时,可以为常用的jpg、png、bmp等图像格式;当待处理图像为动态图像格式时,可以为常用的mp4、.mpg、.avi等。对于待处理图像的具体格式本实例不做限制。

示例性的,针对静态图像格式,可以在非可信执行区域中通过图像预处理程序将所述待处理图像读取为rgb格式的三维矩阵,例如m×n×3维矩阵。

示例性的,针对动态图像格式,可以在非可信执行区域中通过图像预处理程序先将所述待处理图像拆分为帧图像,然后再对每帧图像按照静态图像格式的方法,读取为rgb格式的三维矩阵。

见图3,示出了图2中所示步骤s210中在非可信执行区域中读取待处理图像的流程图。

结合图3所示,在非可信执行区域中读取待处理图像,具体包括步骤s310-s340:

s310:获取待处理图像;

s320:识别所述待处理图像的文件格式:

s330:当所述待处理图像为静态图像格式时,将所述待处理图像读取为rgb格式的三维矩阵;

s340:当所述待处理图像为动态图像格式时,读取所述待处理图像的最大帧数,选取全部/部分帧数的图像读取为rgb格式的三维矩阵,并对每帧图像对应的rgb格式的三维矩阵按序号打包。

上述示例中,通过在非可信执行区域对待处理图像进行预处理,一方面提高数据处理的效率,另一方面也可以降低在可信执行区域对待处理图像进行数据处理的程序实现难度。其中,上述rgb格式的三维矩阵,即m×n×3维矩阵a。

s220:根据矩阵生成器,随机生成一个m×n维矩阵b。

具体的,显然矩阵b为二维矩阵,根据矩阵a可知,随机生成的矩阵b的行列数与矩阵a是一致的。

s230:对所述m×n维矩阵b进行压缩处理,得到密钥s。

具体的,由于矩阵b具有随机性,故由此压缩生成的密钥s与具有随机性,使得密钥s具有较高的加密性。

示例性的,对所述m×n维矩阵b进行压缩处理的方法可以包括:指为多个值相同的元只分配一个存储空间,对零元不分配空间,并使用十字链表存储。例如,见图4,为使用十字链表存储实现矩阵压缩的原理图,其中,假设有矩阵m,表示上述m×n维矩阵b,使用十字链表存储,得到密钥,如图所4示,可以看到,使用十字链表压缩存储矩阵m时,矩阵中的各行各列都各用一各链表存储,与此同时,所有行链表的表头存储到一个数组(m·rhead),所有列链表的表头存储到另一个数组(m·chead)中。由于使用十字链表存储为现有技术,故这里不做赘述。

s240:确定所述密钥s的比特位数,选取密钥s的前x位比特作为轮数,并按照所述轮数对矩阵a进行置换处理,得到矩阵a1。

具体的,上述x可以为≥1的正整数,且小于密钥s的比特位数。比特位数是基于二进制来说的,比如将密钥s的比特位数为“010010110101010011”,则其比特位数为18位。x选取3,则密钥s的前3位比特则为“011”。此外,矩阵置换的轮数是基于十进制来说的,故需要将密钥s的前3位比特识别为十进制的数值,以前述示例来说,密钥s的前3位比特“011”表示的轮数为:3。

应理解:比特位数可以选取密钥s的前4位,或者4位以上比特作为轮数,不同位数确定的轮数区别在于位数越大支持的轮数范围越大,二进制表示,三位最大是7;位数越大支持的轮数越高,安全性越高,但是性能损耗越大。为此,选择多少位,可以根据实际情况进行选择。

下面将对所述步骤s240中对矩阵a进行置换的方法进行详细说明。

示例性的,见图5,示出了图2所示步骤s240在一实施例中的流程图。

结合图5所示,所述步骤s240可以具体包括以下步骤s510-s540:

s510:确定所述密钥s在二进制下的比特位数;

s520:提取所述比特位数的前3位比特,并转换为十进制所表示的数值a;

s530:将矩阵a中的第一个元素移动至第2个元素的位置,以此类推将第i个元素移动至第i+1个元素的位置,直到第m×n个元素移动到第1个元素的位置为止,完成一次置换,其中,i∈(1,m×n),m和n为正整数;

s540:根据所述数值a为轮数,连续执行a次所述置换,输出得到矩阵a1。

由上可知,本示例通过对矩阵a进行置换,可以初步对待处理图像对应的矩阵数据进行打乱,为后续的数据加密处理做准备。

s250:利用矩阵b对所述矩阵a1进行矩阵点乘运算,得到加密后的矩阵e。

具体的,由于矩阵b与矩阵a具有相同的行列数,通过上述步骤对矩阵a进行置换处理得到的a1,并不会改变矩阵的行列数,故举证a1与矩阵b同样具有相同的行列数,为此采用矩阵点乘运算,可以实现到一次加密的矩阵e。

s260:根据对称加密算法,利用所述密钥s作为密钥加密所述矩阵e,生成所述待处理图像的加密文件。

其中,对称加密算法,基于“对称密钥”的加密算法,可以包括des、3des(tripledes)、aes、rc2、rc4、rc5和blowfish等。示例性的,可以采用aes加密算法。这里对一次加密得到的矩阵e,再利用加密算法进行二次加密,从而提高了数据加密的安全性。

s270:输出所述加密文件。

在一些实施例中,在上述图2所示方法之后,还可以包括以下步骤:将所述密钥s添加到密钥管理系统;建立所述密钥s与加密文件的关联关系。这里通过对密钥s进行保存,并与加密文件进行关联。由于上述加密文件是基于对称加密算法进行加密的,在后续对该加密文件进行解密时,需要用到该密钥s,所以这里对密钥s进行管理并与加密文件进行关联,以便于后续使用所述加密文件时使用。

进一步的,以图1所示的intelsgx安全模块为基础来说,在对待处理图像进行处理得到加密文件后,当需要使用该图像数据时,则涉及到如何使用加密文件的问题,下面可以对加密文件的使用方法进行简单说明。

示例性的,假设生成上述加密文件的为数据提供方,使用所述加密文件的为数据使用方,数据提供方和数据使用方可以具体为数据处理设备,例如计算机等。需要理解的是,既然加密文件是在搭载intelsgx安全模块的环境下生成的,相应的,数据读取运行设备(即数据使用方)同样需要搭载intelsgx安全模块。此外,数据使用方所在设备还需要安装有可运行在intelsgx环境下的加解密程序和图像处理基础算法程序;为了保证数据传输的安全性,还需在通信时双方之间建立可行计算环境授权认证通道。

见图6,示出了本发明在一实施例中提供的数据使用方使用加密文件的流程图。

结合图6所示,在上述图2所示方法输出加密文件之后,还可以包括下列步骤s610-s630:

s610:接收数据使用方发送的图像数据申请;

s620:与所述数据使用方建立通信的安全通道;

s630:根据所述安全通道,将所述图像数据申请对应的加密文件和密钥s返回给数据使用方。

其中,建立所述安全通道可以通过加密算法来实现,例如,使用非对称加密算法。示例性的,与所述数据使用方建立通信的安全通道,可以具体包括步骤:生成会话密钥,利用公钥加密算法进行双向认证共享所述会话密钥,据此建立与所述请求方之间通信的安全通道。

此外,对于数据使用方来说,在收到加密文件之后,可将加密文件导入可信执行区域中。接着,可以使用图像数据加密程序(例如上述对称加密算法和非对称加密算法等)读取密钥s获得授权,在隔离区域(即可信执行区域中)对图像进行解密处理得到原始矩阵a。进一步的,可信执行区域中的程序提供基础的图像预处理算法(即上述图像处理基础算法程序)实现,包括图像二值化、图像模糊、边缘检测等。数据使用方最后得到的是处理后的图像数据。需要说明的是,对于数据使用方在可信执行区域中的程序本申请不做限制。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

见图7,示出了本发明在一实施例中提供的基于硬件安全隔离区域的图像数据处理装置的原理图。

结合图7所示,所示图像数据处理装置具体包括:数据获取模块710,被配置为获取在非可信执行区域中对待处理图像读取的m×n×3维矩阵a;矩阵生成模块720,被配置为根据矩阵生成器,随机生成一个m×n维矩阵b;密钥生成模块730,被配置为对所述m×n维矩阵b进行压缩处理,得到密钥s;矩阵置换模块740,被配置为确定所述密钥s的比特位数,选取密钥s的前3位比特作为轮数,并按照所述轮数对矩阵a进行置换处理,得到矩阵a1;矩阵运算模块750,被配置为利用矩阵b对所述矩阵a1进行矩阵点乘运算,得到加密后的矩阵e;数据加密模块760,被配置为根据对称加密算法,利用所述密钥s作为密钥加密所述矩阵e,生成所述待处理图像的加密文件;数据输出模块770,被配置为输出所述加密文件。

在一些实施例中,还包括设置于非可信执行区域中用于读取待处理图像的模块,所述模块包括:图像获取模块,被配置为获取待处理图像;图像格式识别模块,被配置为识别所述待处理图像的文件格式:第一图像转换模块,被配置为当所述待处理图像为静态图像格式时,将所述待处理图像读取为rgb格式的三维矩阵;第二图像转换模块,被配置为当所述待处理图像为动态图像格式时,读取所述待处理图像的最大帧数,选取全部/部分帧数的图像读取为rgb格式的三维矩阵,并对每帧图像对应的rgb格式的三维矩阵按序号打包。

在一些实施例中,所述矩阵置换模块,具体包括:比特位数单元,被配置为确定所述密钥s在二进制下的比特位数;轮数确定单元,被配置为提取所述比特位数的前3位比特,并转换为十进制所表示的数值a;单次置换单元,被配置为将矩阵a中的第一个元素移动至第2个元素的位置,以此类推将第i个元素移动至第i+1个元素的位置,直到第m×n个元素移动到第1个元素的位置为止,完成一次置换,其中,i∈(1,m×n),m和n为正整数;循环置换单元,被配置为根据所述数值a为轮数,连续执行a次所述置换,输出得到矩阵a1。

在一些实施例中,还包括:密钥保存模块,被配置为将所述密钥s添加到密钥管理系统;密钥关联模块,被配置为建立所述密钥s与所述加密文件的关联关系。

在一些实施例中,还包括:申请接收模块,被配置为接收数据使用方发送的图像数据申请;安全通道模块,被配置为与所述数据使用方建立通信的安全通道;数据响应模块,被配置为根据所述安全通道,将所述图像数据申请对应的加密文件和密钥s返回给数据使用方。

另外,再结合图1所示,在一些实施例中,为了能够更好的应用上述图2所示方法,还可以提供一种设备,所述设备搭载有intelsgx安全模块,所述设备至少包括:处理器,包括安全隔离区域;存储器,所述存储器中存储有可在所述安全隔离区域中运行的计算机程序,所述处理器执行所述计算机程序时实现如图2-5任一方案所示方法的步骤。

具体的,所述设备包括任意类型的电子设备,例如计算机、平板电脑、服务器等设备。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

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