发明内容
为了解决现有加密方法中加密效果不好存在安全缺陷的问题,本发明提供一种用于芯片的轻量级数据加密方法,所采用的技术方案具体如下:
本发明一个实施例提供了一种用于芯片的轻量级数据加密方法,该方法包括以下步骤:
将芯片的轻量级数据中包含的所有参数按照顺序依次转换为十进制数据串,并将所有十进制数据映射为二维矩阵;
利用预设尺寸的结构元在二维矩阵上滑动并计算信息熵;利用所述信息熵区分常规结构元和非常规结构元;
对于所述非常规结构元,以所述二维矩阵中出现频率最大的十进制数据作为基准值,统计非常规结构元中大于基准值的十进制数据的数量,计算非常规结构元中每个十进制数据与所述基准值的差值;获取非常规结构元中心的十进制数据与基准值的差异,并结合所述数量和所有所述差值获取腐蚀必要性;
利用所述腐蚀必要性将非常规结构元区分为腐蚀结构元和膨胀结构元,对所述腐蚀结构元进行腐蚀操作,对所述膨胀结构元进行膨胀操作;以所有非常规结构元均通过形态学处理后的二维矩阵作为加密矩阵;
将加密矩阵转换为一维数组作为密文,基于十进制数据与二维矩阵的映射关系、加密矩阵和一维数组的转换关系组成二维数组,基于非常规结构元获取密钥结构元,以所述二维数组和所述密钥结构元作为密钥。
进一步的,所述二维矩阵的映射过程包括:
统计所述十进制数据串中的十进制数据数量,基于所述十进制数据数量获取二维矩阵的阶数,以二维矩阵的任意一个角作为起始点,依据所述十进制数据串的顺序按照Z字型填充二维矩阵,直至二维矩阵填充完成,得到所有十进制数据映射生成的二维矩阵。
进一步的,所述阶数的获取方法为:将所述十进制数据数量开方并向上取整得到所述阶数。
进一步的,所述腐蚀必要性的获取方法为:
计算所有所述差值的和,对所述数量和所述和加权求和得到加权求和结果;计算非常规结构元中心的十进制数据与基准值的差值,并进行负相关映射得到数据一致性;以所述加权求和结果和所述数据一致性的比值作为所述腐蚀必要性。
进一步的,所述十进制数据串的转换过程为:
将每个参数通过ASCII码转换为至少一个十进制数据,将所有参数对应的十进制数据按照参数顺序排列得到所述十进制数据串。
进一步的,所述利用所述信息熵区分常规结构元和非常规结构元,包括:
当所述信息熵小于预设的熵阈值时,对应的结构元为常规结构元,否则为非常规结构元。
进一步的,所述二维数组的组成过程为:
记录十进制数据映射为二维矩阵的起始点标号,以及加密矩阵扫描为一维数组的起始点标号,由两个起始点标号组成所述二维数组。
进一步的,所述基于非常规结构元获取密钥结构元包括:
对于腐蚀结构元,首先令密钥结构元中心值为空值,然后在八邻域内任意位置保留结构元中心的十进制数据,其余七个位置的数据为大于等于结构元中心的十进制数据且小于等于十进制数据最大值的任意自然数;
对于膨胀结构元,令密钥结构元中心值为空值,然后在八邻域内任意位置保留结构元中心的十进制数据,其余七个位置的数据为大于等于0且小于等于结构元中心的十进制数据的任意自然数;
最后将所述熵阈值填入中心值处,得到所述密钥结构元。
进一步的,该方法还包括以下步骤:
依据常规结构元内出现频率最大的十进制数据调整对应常规结构元内的十进制数据。
进一步的,所述依据常规结构元内出现频率最大的十进制数据调整对应常规结构元内的十进制数据,包括:
将每个常规结构元中心处的十进制数据替换为所述常规结构元内出现频率最大的十进制数据。
本发明实施例至少具有如下有益效果:
首先将芯片的轻量级数据中包含的所有参数按照顺序依次转换为十进制数据串,由于芯片的轻量级数据中包含的参数包括文字、数字、英文字符以及符号等多种类型的数据,将所有参数转换为十进制数据串,进行数据类型的统一,便于后续加密,并且按照顺序依次转换,保持轻量级数据原有的次序,表征原数据;转换后的十进制数据串包括多个十进制数据,将所有十进制数据映射为二维矩阵,通过将一维数组转换为二维矩阵,利用升维提高数据的保密性;利用预设尺寸的结构元在二维矩阵上滑动,以每个结构元为单位分块处理二维矩阵的数据,避免同时处理大量数据造成的资源紧张,提高数据处理效率;计算每个结构元中所有数据的信息熵,信息熵代表数据的紊乱程度,理论上来说信息熵越大,数据越混乱无规律,因此通过信息熵区分常规结构元和非常规结构元,常规结构元为较为规律的结构元;非常规结构元为较为混乱的结构元,基于非常规结构元中的十进制数据与基准值的差异、数据一致性以及非常规结构元中大于基准值的十进制数据的数量获取腐蚀必要性,然后利用腐蚀必要性来区分形态学处理的类型,将非常规结构元区分为腐蚀结构元和膨胀结构元,对腐蚀结构元进行腐蚀操作,腐蚀操作是指将结构元中心的数据替换为邻域数据中的最小值,将腐蚀结构元中的十进制数据替换为结构元中的最小十进制数据,能够更加接近于基准值;对膨胀结构元进行膨胀操作,膨胀操作是指将膨胀结构元中心的数据替换为邻域数据中的最大值,将膨胀结构元中的十进制数据替换为结构元中的最大十进制数据,能够更加接近于基准值;腐蚀操作和膨胀操作均属于形态学处理其中的一种,对不同结构元进行不同的形态学处理,能够通过多样化的加密方式改变二维矩阵原有数据的统计特性,将十进制数据尽可能转换为基准值,使数据分布聚集,相近数值出现较多,进一步降低二维矩阵数据的规律性,提高数据的安全性,增强数据加密效果。
具体实施方式
为了更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种用于芯片的轻量级数据加密方法,其具体实施方式、结构、特征及其功效,详细说明如下。在下述说明中,不同的“一个实施例”或“另一个实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构或特点可由任何合适形式组合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。
下面结合附图具体的说明本发明所提供的一种用于芯片的轻量级数据加密方法的具体方案。
请参阅图1,其示出了本发明一个实施例提供的一种用于芯片的轻量级数据加密方法的步骤流程图,该方法包括以下步骤:
步骤S001,将芯片的轻量级数据中包含的所有参数按照顺序依次转换为十进制数据串,并将所有十进制数据映射为二维矩阵。
芯片的轻量级数据包含芯片的一些相关参数,内部存在文字、数字、英文、符号等数据,要想对其进行一定的加密,需先将其进行转化为同一类数据,因此对其数据进行进制转化。
将每个参数通过ASCII码转换为至少一个十进制数据,将所有参数对应的十进制数据按照参数顺序排列得到十进制数据串。
其中,使用ASCII码转化为十进制码的技术为公知技术,ASCII码转换示意图如图2所示,转换后的每个十进制数据的取值范围为[0,127]。
每个参数经过ASCII码转换后得到的十进制数据的数量不一,有的参数转换后可能得到一个十进制数据,有的参数转换后可能得到多个十进制数据,例如,如图3所示,第一个参数对应的十进制数据为:5 15 89 56,第二个参数对应的十进制数据为:114 9 121 12121,直至最后一个参数的十进制数据转换完成,将所有参数的十进制数据按照参数的顺序排列,组成芯片的轻量级数据对应的十进制数据串。
统计十进制数据串中的十进制数据数量,基于十进制数据数量获取二维矩阵的阶数,以二维矩阵的任意一个角作为起始点,依据十进制数据串的顺序按照Z字型填充二维矩阵,直至二维矩阵填充完成,得到所有十进制数据映射生成的二维矩阵。
统计整个十进制数据串中的十进制数据数量
,将十进制数据数量
开方并向
上取整,得到阶数。
将二维矩阵设置为n×n的正方形矩阵,其中正方形矩阵的阶数
,
表示
向上取整符号。
以二维矩阵的任意一个角作为起始点,不同的起始点会得到不同的二维矩阵,能够提高数据的保密性,为了便于后期的解密,对四个角对应的不同映射进行标记,左上角记为0,左下为1、右上为2、右下为3。
作为一个示例,在本发明实施例中以左上角作为起始点,依据十进制数据串的顺序按照Z字型填充二维矩阵,填充顺序示意图如图4所示,该图为现有技术中的二维矩阵Z字型扫描转换为一维数组的映射关系图,在本发明中采用同样的映射顺序,从左上角开始,填充第一个十进制数据,按照箭头指向的顺序依次将一维十进制数据串填充进二维矩阵,反向利用该方法,将一维十进制数据串映射为二维矩阵,直至二维矩阵填充完成,得到所有十进制数据映射生成的二维矩阵。
需要说明的是,由于二维矩阵的阶数为十进制数据数量向上取整得到的,所有十
进制数据填充至二维矩阵中可能会出现填不满的情况,即二维矩阵存在数值缺少的位置,
统计二维矩阵中出现次数最多的十进制数据
,令
填充在二维矩阵中数值缺少的位
置,完成填充,得到所有十进制数据映射生成的二维矩阵。
不同的起始点会得到不同的二维矩阵,作为另一个示例,以左下角作为起始点的填充顺序示意图如图5所示,左下角黑色实心圆点为起始点,填充第一个十进制数据,按照箭头指向顺序依次将一维十进制数据串填充进二维矩阵,得到以左下角为起始点的二维矩阵。
步骤S002,利用预设尺寸的结构元在二维矩阵上滑动并计算信息熵;利用信息熵区分常规结构元和非常规结构元。
通过步骤S001中的映射关系将表征芯片的轻量级数据的十进制数据串映射在二维矩阵之中,为了使得数据的保密性更强,须打破原有的数据顺序,使得原有数据的顺序在二维矩阵中尽可能打乱,提高数据保密的强度,被破解的可能性较低。
二维矩阵内不同位置的十进制数据对应周围的十进制数据分布特征不同,部分十进制数据周围分布的十进制数据可能与其比较相近,且变化范围较小,而另外一部分十进制数据周围分布的十进制数据可能与其相差较大,且变化范围较大,而要使得十进制数据的加密强度较高,不容易被破解,需尽可能将二维矩阵中的十进制数据转化为相近或相同数据,使得二维矩阵内部的十进制数据尽可能相近或相同,降低数据对应的统计特性。
作为一个示例,在本发明实施例中预设尺寸为5×5,滑动步长设置为3,即利用5×5的结构元以3的步长在二维矩阵上滑动,在其他实施例中,预设尺寸的大小以及滑动步长的大小均可以根据实际情况调整。
结构元每次滑动记为一个结构元,每个结构元内的十进制数据数量均为25,计算
每个十进制数据在结构元内的出现频率,即每个十进制数据在结构元内出现的次数与结构
元内总数量25的比值,将第i个十进制数据的出现频率记为
,则结构元内的信息熵的计算
公式为:
,其中
表示以2为底数
的对数,信息熵公式为数据处理
领域常用的公知技术,用于表征数据的混乱程度,信息熵越大,数据的混乱程度越大,说明
数据越混乱无规律。
熵阈值
表征信息熵混乱与否的标准,当信息熵小于预设的熵阈值
时,说明对
应结构元中的十进制数据混乱程度较小,较为规律,作为一个示例,在本发明实施例中熵阈
值
预设为0.4,即当结构元的信息熵H小于0.4时,此时结构元中的十进制数据较为规律,
在其他实施例中,熵阈值的大小可以根据实际情况调整。
基于此进行结构元的区分:当信息熵小于预设的熵阈值时,对应的结构元为常规结构元,否则为非常规结构元。
优选的,还可以依据常规结构元内出现频率最大的十进制数据调整对应常规结构
元内的十进制数据,具体的,将每个常规结构元中心处的十进制数据替换为对应常规结构
元内出现频率最大的十进制数据
。
由于信息熵小于预设的熵阈值的常规结构元内的十进制数据整体较为规律,相同
数据较多,因此稍微进行修改即可达到打破原有数据统计特性的目的,使用形态学处理的
思想原理,将每个常规结构元的中心处赋予常规结构元内出现频率最高对应的十进制数据
,可以打破原有数据的统计特性,使得数据尽可能转化为相同数值,数据内部出现的数
值相同的较多,进而数据的相似程度更高,对应的统计特性便会较低,破解难度便较高。
步骤S003,对于非常规结构元,以二维矩阵中出现频率最大的十进制数据作为基准值,统计非常规结构元中大于基准值的十进制数据的数量,计算每个非常规结构元中十进制数据与基准值的差值;获取非常规结构元中心的十进制数据与基准值的差异,并结合数量和所有差值获取腐蚀必要性。
信息熵不小于预设的熵阈值的非常规结构元内的十进制数据分布较为混乱,此时需要计算腐蚀必要性,以区分进行形态学处理的类型。
以整个二维矩阵中出现频率最大的十进制数据,即二维矩阵中出现次数最多的十
进制数据
作为基准值,统计非常规结构元中大于基准值的十进制数据的数量
,计算
每个十进制数据与基准值的差值,计算所有差值的和,对数量和该和加权求和得到加权求
和结果;计算非常规结构元中心的十进制数据与基准值的差值,并进行负相关映射得到数
据一致性;以加权求和结果和数据一致性的比值作为腐蚀必要性。
具体的计算公式为:
其中,
表示腐蚀必要性,
表示第j个十进制数据,
表示第j个十进制
数据与基准值的差值,
表示非常规结构元内所有差值的和,
表示非常规
结构元中大于基准值的十进制数据的数量
的权重,
表示所有差值的和的权重,
表示加权求和结果,
表示非常规结构元中心位置的十
进制数据;
表示以自然常数e为底数,以
为指数的指数函
数,即数据一致性。
需要说明的是,
和
的数值根据对应指标的重要性进行赋值,作为一个示例,
在本发明实施例中
,
,在其他实施例中还可以调整为其他数值,并且需要
保证
且
。
非常规结构元中大于基准值的十进制数据的数量
越大,非常规结构元中大于基
准值的十进制数据越多,越需要将非常规结构元内的十进制数据缩小,令非常规结构元内
的十进制数据接近于基准值
;计算每个十进制数据与基准值的差值,该差值的取值可
能为负数,因此差值
越大,说明大于基准值
的幅度越大,同样越需要将非常规
结构元内的十进制数据缩小,以使非常规结构元内的十进制数据接近于基准值
;作为
分子的加权求和结果从整体上反映了非常规结构元中的十进制数据需要缩小的必要性;
表示非常规结构元中心的十进制数据与基准值的差值,该差值的取值也可能为
负数,该差值越大,说明非常规结构元中心的十进制数据大于基准值的幅度越大,对应的数
据一致性越小,从局部上反映了非常规结构元中的十进制数据需要缩小的必要性。腐蚀操
作是指将结构元中心的十进制数据替换为邻域数据中的最小值,因此分子分母结合得到的
比值反映了非常规结构元中心数据需要进行腐蚀操作的必要性,即腐蚀必要性
越大,
越需要进行腐蚀操作。
需要说明的是,结构元的预设尺寸越小,可以调整的结构元中心数值越多,加密效果越好,但是结构元本身区域太小时,相对计算的范围较小,得到的计算结果不够准确,因此在其他实施例中可以根据实际情况在结构元周围扩大范围进行腐蚀必要性的计算。
步骤S004,利用腐蚀必要性将非常规结构元区分为腐蚀结构元和膨胀结构元,对腐蚀结构元进行腐蚀操作,对膨胀结构元进行膨胀操作;以所有非常规结构元均通过形态学处理后的二维矩阵作为加密矩阵。
当腐蚀必要性大于预设的腐蚀阈值时,对应的结构元为腐蚀结构元,否则为膨胀
结构元。其中预设的腐蚀阈值
的大小根据实际经验确定,作为一个示例,在本发明实施例
中腐蚀阈值
预设为2,在其他实施例中,还可以依据实际情况进行腐蚀阈值的设定。
当腐蚀必要性
大于腐蚀阈值
时,说明对应的非常规结构元中心点的十进制
数据过大,有必要向基准值
缩小,需要令对应的非常规结构元进行腐蚀操作,即该非常
规结构元为腐蚀结构元;当腐蚀必要性
小于或者等于腐蚀阈值
时,对应的非常规结
构元中心点的十进制数据过小,需要向基准值
扩大,令对应的非常规结构元进行膨胀
操作,即该非常规结构元为膨胀结构元。
每个非常规结构元都对应一个腐蚀必要性,基于腐蚀必要性与腐蚀阈值的大小关系将非常规结构元区分为腐蚀结构元和膨胀结构元。
对腐蚀结构元进行腐蚀操作,即令腐蚀结构元中心的十进制数据替换为邻域数据中的最小值;对膨胀结构元进行膨胀操作,即令膨胀结构元中心的十进制数据替换为邻域数据中的最大值。
通过对所有非常规结构元分别进行对应的形态学处理后,得到加密矩阵。
优选的,对所有非常规结构元分别进行对应的形态学处理后,依据常规结构元内出现频率最大的十进制数据调整对应常规结构元内的十进制数据,此时二维矩阵中所有结构元均经过了处理,以所有结构元均通过形态学处理后的二维矩阵作为加密矩阵。
加密矩阵将所有结构元中心的十进制数据替换为更接近基准值
的邻域数据,
改变原有数据对应的统计特性,将数据转化为尽量靠近频率最高的十进制数据即基准值,
使得内部数据尽可能分布较为聚集,相近的数值出现较多,降低数据的统计特性,提高数据
的安全性。
步骤S005,将加密矩阵转换为一维数组作为密文,基于十进制数据与二维矩阵的映射关系、加密矩阵和一维数组的转换关系组成二维数组,基于非常规结构元获取密钥结构元,以二维数组和密钥结构元作为密钥。
将加密矩阵扫描为一维数组,扫描方法为Z字型扫描法,与步骤S001中将所有十进制数据映射为二维矩阵的方式种类相同,扫描方式同样为四种,即四个不同的扫描起始点。记录十进制数据映射为二维矩阵的起始点标号,以及加密矩阵扫描为一维数组的起始点标号,两个起始点标号组成二维数组,例如,在本发明实施例中,十进制数据映射为二维矩阵的起始点标号为1,加密矩阵扫描为一维数组的起始点标号为1,则组成二维数组(1,1),该二维数组作为密钥的一部分。
由于十进制数据映射为二维矩阵的起始点标号有4个,加密矩阵扫描为一维数组的起始点标号也有4个,能够组成16种不同的二维数组,对应16种不同的转换方式,因此在其他实施例中还可以选取其他15种二维数组中的任意一种作为对应的密钥的一部分。
对于需要进行腐蚀或者膨胀操作的结构元来说,均对应了一个密钥结构元,作为密钥的一部分。
其中腐蚀结构元的密钥结构元的获取方法具体为:
首先令密钥结构元中心值为空值,即在结构元中心位置不填充数值,然后在八邻域内任意位置保留结构元中心的十进制数据,其余七个位置的数据为大于等于结构元中心的十进制数据且小于等于十进制数据最大值,即127的任意自然数。
例如,参考图6所示的一个腐蚀结构元的密钥结构元示例图,密钥结构元中心位置为空,结构元中心的十进制数据为67,选取中心位置上方的位置保留结构元中心的十进制数据67,剩余位置中X1至X7的取值均为[67,127]内的随机自然数。
腐蚀结构元通过选取结构元内的最小值作为中心值完成腐蚀操作,因此保证原结构元中心的十进制数据为最小值即可在对应的密钥结构元中保留中心点的数据。
膨胀结构元的密钥结构元的获取方法具体为:
同样令密钥结构元中心值为空值,然后在八邻域内任意位置保留结构元中心的十进制数据,其余七个位置的数据为大于等于0且小于等于结构元中心的十进制数据的任意自然数。
例如,参考图7所示的一个膨胀结构元的密钥结构元示例图,密钥结构元中心位置为空,结构元中心的十进制数据为54,选取中心位置右侧的位置保留结构元中心的十进制数据54,剩余位置中X1至X7的取值均为[0,54]内的随机自然数。
膨胀结构元通过选取结构元内的最大值作为中心值完成腐蚀操作,因此保证原结构元中心的十进制数据为最大值即可在对应的密钥结构元中保留中心点的数据。
常规结构元的密钥结构元的获取方法具体为:
同样令密钥结构元中心值为空值,然后八邻域位置处的取值为[0,127]内的随机自然数,且八邻域选取的八个数值的平均值等于结构元中心的十进制数据。
最后将熵阈值
填入中心值处,得到如图8所示的一个密钥结构元,结构元中心点
为
,从左上角开始顺时针旋转的八邻域数据分别为53,7,16,36,42,0,56,27,以不同方式
获取不同结构元的密钥结构元,分类加密,提高数据的安全性。
通过上述过程获取加密矩阵转换得到的一维数组作为密文,以二维数组和密钥结构元作为密钥,将密文和密钥压缩存储。
进一步的,在数据加密并压缩存储之后,解密过程为:
获得加密密文与密钥。
对应密钥内映射方式二位数组的第二位对应扫描方式将密文映射为加密二维矩阵。
对应密钥内映射数据的第一位对应扫描方式对应数据顺序使用按顺序排列的密
钥结构元进行一一解密,首先计算密钥结构元内所有数据对应的信息熵,当得到的信息熵
小于熵阈值
时,此时为常规结构元的加密,令中心值取密钥结构元的八邻域数据的平均
值作为解密数值,当得到的信息熵大于等于
时,此时为非常规结构元的加密,则需要比较
加密后该位置处中心点的值为结构元内的最大值还是最小值,若为最大值,则对密钥结构
元进行膨胀操作,以八邻域中的最大值作为中心点处的解密数值;若为最小值,则对密钥结
构元进行腐蚀操作,以八邻域中的最小值作为中心点处的解密数值。
全部密钥结构元解密完成后,获得对应原始数据的二维矩阵,利用二维矩阵对应密钥映射方式二位数组中的第二位对应的方式扫描获得解密数据,此时的解密数据为经过ASCII码转换后得到的十进制数据。
将解密数据按照ASCII码转化得到按顺序排列的芯片轻量级数据。
综上所述,本发明实施例将芯片的轻量级数据中包含的所有参数按照顺序依次转换为十进制数据串,并将所有十进制数据映射为二维矩阵;利用预设尺寸的结构元在二维矩阵上滑动并计算信息熵;利用信息熵区分常规结构元和非常规结构元;依据常规结构元内出现频率最大的十进制数据调整对应常规结构元内的十进制数据;对于非常规结构元,以二维矩阵中出现频率最大的十进制数据作为基准值,统计非常规结构元中大于基准值的十进制数据的数量,计算每个十进制数据与基准值的差值;获取非常规结构元中心的十进制数据与基准值的数据一致性,并结合数量和所有差值获取腐蚀必要性;利用腐蚀必要性将非常规结构元区分为腐蚀结构元和膨胀结构元,对腐蚀结构元进行腐蚀操作,对膨胀结构元进行膨胀操作;以所有结构元均通过形态学处理后的二维矩阵作为加密矩阵;将加密矩阵转换为一维数组作为密文,基于十进制数据与二维矩阵的映射关系、加密矩阵和一维数组的转换关系组成二维数组,基于结构元获取密钥结构元,以二维数组和密钥结构元作为密钥,对密文和密钥压缩存储。本发明能够通过多样化的加密方式改变二维矩阵原有数据的统计特性,将十进制数据尽可能转换为基准值,使数据分布聚集,相近数值出现较多,进一步降低二维矩阵数据的规律性,提高数据的安全性,增强数据加密效果。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围,均应包含在本申请的保护范围之内。