发明内容
本发明提供一种社交图像数据的安全存储方法,以解决现有的对图像加密不足的问题,所采用的技术方案具体如下:
本发明一个实施例提供了一种社交图像数据的安全存储方法,该方法包括以下步骤:
获取加密前的原始图像,对其进行图像比特分层,获得8个比特平面;
根据同一比特分层图像中相同比特值区域大小和分布关系计算对应比特分层图像的表现程度,将表现程度最大的比特分层记为最大表现比特分层;
在最大表现比特分层中获取具有相同比特值的所有聚集区域,得到所有满足条件的聚集区域外接圆作为加密空间结构的基准位置,根据基准位置大小获得每个聚集区域对应的比特分层空间的加密空间结构;
根据每个加密空间结构对比特分层结构进行置乱,根据所有加密空间置乱后的结果得到加密密钥。
所述每一层比特分层图像相同比特值的聚集区域对原始图像信息表现程度的计算方法为:
其中,j表示比特分层图像的索引,表示第j比特分层图像中相同比特值聚集区域包含比特值数量小于M的区域数量,表示第j层比特分层图像中相同比特值聚集区域大小的标准差,即表示第j比特分层相同比特值的聚集区域对原始图像信息的表现程度。
优选的,所述得到所有满足条件的聚集区域外接圆作为加密空间结构的基准位置的方法为:
对于最大表现比特分层中具有相同比特值的所有聚集区域,获取所有聚类区域大小大于20的区域,得到的区域中每个区域的最大外接圆都对应一个加密空间结构的基准位置。
优选的,所述根据基准位置大小获得每个聚集区域对应的比特分层空间的加密空间结构的方法为:
根据基准位置比特分层每个聚集区域的外接圆面积,基准位置比特分层层数和其余比特分层层数的差异,计算比特图像8层其余层对应的空间结构,将每层计算后的结果按照层数从大到小排列得到加密空间结构。
优选的,所述计算每层空间结构的公式为:
式中表示空间结构基准位置即比特分层中的第v个外接圆即第v个空间结构,表示比特分层的序号,就表示基准位置比特分层的层数,表示第j比特分层与基准位置所在分层序号差异,表示空间结构大小变化系数。即表示第v个空间结构在第j比特分层中的面积大小。
优选的,所述根据所有加密空间置乱后的结果对原始图像进行加密解密的方法为:
根据加密空间中结构,将下层区域比特值直接转换到上层中下层对应的区域中,直到达最高层,将最后一层平面区域的比特值作为密钥进行保存,解密时根据所有构建的加密空间,加密空间的加密顺序以及每一个加密空间对应的原始最高层比特值数据进行解密。
本发明的有益效果是:本发明的针对图像的比特分层进行加密,比直接对图像加密多了一道工序提高了加密效果,然后利用比特分层对图像信息的表示,构建加密空间,每一个加密空间尽量反映出原始图像信息,所以在加密空间中对比特值进行加密,更能够实现原始图像信息的加密,并且加密空间的大小位置以及数量取决于图像本身,所以不同图像加密过程的密钥不固定,增加加密过程的复杂性以及密钥的敏感性,提高加密效果。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其示出了本发明一个实施例提供的一种社交图像数据的安全存储方法流程图,该方法包括以下步骤:
步骤S001、获取社交软件发送前的图像数据。
社交软件图像数据主要是图像数据由发射端发出,然后发送到接收端,所以对于用于社交软件的图像数据即针对社交过程的发射端,此时社交软件中发射段需要发射的图像数据为当前待加密的图像即原始图像。
步骤S002、利用比特分层对原始图像进行处理并获取加密空间结构。
首先,对于用于社交软件的图像数据的加密,主要对图像像素值的置乱隐藏图像的有用信息,基于对图像信息的表示,本发明在图像的比特分层中所反映的图像信息进行加密,所以首先对用于社交的图像进行比特分层。
本发明基于图像像素值在0-255区间,将每个像素值使用一个二进制数据表示。
比特图像分层是将灰度图像的像素位数进行分别读取,本发明考虑比特分层完整表示原始图像像素值的区间,所以采用由8个1比特平面构成图像比特分层,其中平面1包含图像中所有像素的最低阶比特,而平面 8 包含图像中所有像素的最高阶比特。也就是说对于每一个像素点,其二进制数据最高阶数据为比特平面8的同位置像素点的比特值,其二进制数据的最低阶数据为比特平面1的同位置像素点的比特值。
对于原始图像信息主要反映的是相邻位置像素值之间的关系,此时对于原始图像中反映图像信息的相同或者相近像素值区域在不同的比特分层中的表现区域不同。
此时在第一比特分层对应的区域内比特值的差异基本不影响原始图像上这个区域中纹理的视觉表现,所以第一比特分层对应区域中相同比特值的聚集区域可能较小,但是随着比特分层序列的增大,对应区域比特值的差异对原始图像像素值差异的影响变大,所以对应区域相同比特值的越趋近于相同,即相同比特值聚集区域变大。
因此,对于原始图像中图形区域所反映比特分层图像中相同比特值聚集区域的大小,随着比特分层序列的增大而变大。此时,根据所有比特分层图像中相同比特值聚集区域之间的关系,确定对原始图像区域信息的表示,从而对原始图像信息进行加密。
根据不同比特分层相同比特值聚集区域大小关系,确定所有比特分层中可能影响原始图像信息的区域为“上大下小”的空间大致结构,如图2所示;
上图所示为一个空间圆台结构,越向上越表示更高序列的比特分层,即当前圆台结构中的比特分层信息可能反映着原始图像的图形信息。
在获得比特分层中表示原始图像信息的比特分层空间大致结构后,需要根据不同分层的相同比特值区域的分布特征,确定加密空间结构的位置和大小。计算同一比特分层中相同比特值区域大小和分布关系反映对原始图像信息的表现程度,具体表示为:
其中,j表示比特分层图像的索引,表示第j比特分层图像中相同比特值聚集区域包含比特值数量小于M的区域数量,表示第j层比特分层图像中相同比特值聚集区域大小的标准差,即表示第j比特分层相同比特值的聚集区域对原始图像信息的表现程度。
其中的获取方法为:在第j比特分层图像中,获取比特值为1与比特值为0的所有连通域,记为第一连通域,计算每个第一连通域包含比特值数量,获取包含比特值数量小于M的第一连通域的总个数,记为。
越小,比特分层中相同比特值的聚集区域对原始图像信息的表现能力越强,在本发明中设置M=20(可根据实际场景进行调整);表示第j比特分层中相同比特值聚集区域大小的标准差,越小,聚集区域分布越均匀,所以对原始图像信息表现能力越强;并且,随着比特分层序列的增加,即j增大,其相同比特值的聚集区域变大,所以对聚集区域对原始图像信息的表现能力降低。最后获得即表示第j比特分层图像中相同比特值的聚集区域对原始图像信息的表现程度。
使用上述所述方法,计算每个比特分层图像中相同比特值的聚集区域对原始图像信息的表现程度,从8个比特分层图像中获取最大的表现程度,其对应的比特分层图像为层,对于层图像,以第层图像中相同比特值对应区域的外接圆作为加密的空间结构的基准位置,本实施例利用现有OPENCV开源库中的cv2.minEnclosingCircle,在输入相同比特值区域后,直接输出对应外接圆。由于在层中存在很多较小的聚集区域,给定阈值M=20,只将相同比特值聚集区域大小大于M的区域得到其外接圆,得到的外接圆数量为n个。由此在比特分层中获得多个相同比特值聚集区域对应的外接圆,分别作为加密空间结构的基准位置。
为确定加密空间结构在比特分层包含的具体区域,以基准位置所构建的圆形区域的面积为基准大小,利用“上大下小”的原则确定当前空间结构在每一比特分层中的大小,此时第v个空间结构在第j层比特分层中的面积大小为:
其中表示空间结构基准位置即比特分层中的第v个外接圆即第v个空间结构,表示比特分层的序号,就表示基准位置比特分层的层数,表示第j比特分层与基准位置所在分层序号差异,分层序号差异越大,对应分层中空间结构大小差异越大,表示空间结构大小变化系数,在本实施例取。即表示第v个空间结构在第j比特分层中的面积大小。
根据基准位置的外接圆面积大小,计算其余7个比特分层的对应的面积大小,以基准位置的外接圆为中心点,在其余几个比特分层中得到的以中心点相同位置为圆心的圆,圆的面积为。
由此8个比特分层就构成了一个如图2所示的上大下小的圆台,也就是比特分层空间中的一个加密空间结构,该加密空间结构有8层,每层的中心点位置相同。
利用上述步骤,根据不同比特分层图像对原始图像像素值的影响的不同,确定对比特分层空间中加密的空间结构,所构建的加密空间结构包含原始图像的局部信息所反映的不同比特分层中比特值的分布特点,即每一个加密空间结构都能在一定程度反映出原始图像的区域信息,从而便于在比特分层中基于原始图像的局部聚集信息进行加密。
步骤S003、利用获取的加密空间结构对原始图像进行加密,解密,存储,发送。
根据上述步骤,在比特分层空间中获得能够反映原始图像信息的加密空间结构,具体分别表示为,其中n表示当前图像对应比特分层中加密空间结构的数量,就表示第i个加密空间结构,此时基于对比特分层结构进行置乱,实现原始图像的加密。
首先,在同一个加密空间中进行比特值的置乱。具体方法为:从加密空间中最低层开始,将下层区域比特值直接转换到上层中下层对应的区域中,直到到达最高层。特殊地,最后一层平面区域的比特值作为密钥进行保存。
举例说明:以加密空间为例进行叙述,由于图像是二维的不方便展示,因此分别以图3所示的三个比特分层图像中三行像素、、为例进行叙述。原始加密空间中不同比特分层的比特值和转换后的比特值如图3和图4所示,图3和图4中表示从下往上数第三层比特分层在加密空间中的大小,同理,和分别为第二层和第一层比特分层在加密空间中的大小。图3中最下层的中的00对应中的01和中的10,图3的中的11对应中的00,图3的中的01对应中的11,进行比特值的置乱之后得到了图4所示结果。以上举例中,在一个加密空间比特值中由低层向高层传递,此时越靠近加密空间的中心区域,对应位置的二进制序列越趋近于00000000或者11111111,即对应位置像素值越趋近于两极,从而使得原始图像像素值更加单调,隐藏原始图像信息。并且在加密空间越多,位置越密集时,对应最底层更多的比特值参与加密空间加密,即将更多最底层比特值传递更高层,使得所有位置二进制序列趋近于00000000和11111111,最终获得近似于二值图的密文图像,并且基于比特分层中第一分层比特值差异性分布,所获得近似二值图像同样具有差异分散分布,即图像混乱,不具有原始图像信息,即实现原始图像加密。
利用相同的方向,原始图像的比特分层中所有的加密空间进行加密,因为不同的加密空间在比特分层中可能存在重复的区域,所以不同加密空间的加密顺序同样作为加密的一部分,最终整个加密过程的密钥分别为图像比特分层中所构建的加密空间以及加密空间加密顺序。
利用上述步骤,在图像比特分层中构建的加密空间中对比特分层进行置乱,从而实现原始图像加密,其中所构建的加密空间能够有效的反映原始图像信息,所以加密空间加密能够更快速的对原始图像信息进行加密,并且不同的加密空间的位置大小以及加密空间顺序对加密过程直接影响,体现了密钥的敏感性,反映加密的高效性。
利用上述步骤,完成社交软件中图像信息的加密,为体现加密过程的合理性以及有效性,需要根据所产生的密钥,对密文数据进行解密,解密所需密文数据,密钥及解密过程如下:
密文数据:通过比特分层加密后所产生的混乱的图像。
密钥:比特分层中所有构建的加密空间、加密空间的加密顺序以及每一个加密空间对应原始最高层比特值数据。
解密过程:首先对密文图像进行比特分层处理,在比特分层中定位每一个加密空间,然后根据加密空间的加密顺序的逆顺序,对每一个加密空间进行比特值的准换,从而获得原始图像对应的比特分层,然后根据比特分层重构获得原始的明文图像,即获得原始的社交软件图像数据。
通过上述步骤,就完成了对社交软件图像数据的加密,为了便于图像数据存储,提高安全性,首先对加密后的数据进行压缩,然后对压缩后的数据进行存储进行备份,之后将备份后的图像数据进行安全高效的社交软件发送。
需要说明的是,在发送密文数据时,也需要将密钥随密文数据一同发送;在发送密钥时,由于密钥的数据量较少,因此可以利用非对称加密算法对密钥进行加密,防止密钥被窃取;其中本实施例不直接对社交软件图像数据进行非对称加密的原因是社交软件图像数据量大,现有的非对称加密算法低效、计算量大,因此使用本实施例提供的方法将社交软件图像数据加密成密文数据进行发送,既能保证数据安全又能减少加密的计算量。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。