发明内容
为了解决上述技术问题,本发明的目的在于提供一种药物合成数据的安全存储方法,所采用的技术方案具体如下:
本发明提出了一种药物合成数据的安全存储方法,所述方法包括:
将待加密数据分段处理,获得多个子段数据;根据混沌映射模型获得子段数据对应的混沌序列;将子段数据拆分成两段,并转换至十进制数,将转换后的十进制数作为该数据对应的定位表中的位置坐标;在对子段数据拆分过程中,根据邻近两段子段数据之间位置坐标的差异度和子段数据与混沌序列的相似性获得对应拆分比例的优选程度,根据优选程度选择最优拆分比例,以最优拆分比例作为最优定位表的尺寸;将混沌序列顺序填入最优定位表中获得目标定位表;
获得第一个子段数据的第一目标定位表和第二个子段数据的第二目标定位表;将第一目标定位表中的第一混沌序列值与第二目标定位表中的第二混沌序列值进行与运算,将与运算后的序列值重新填入第二目标定位表中;循环此过程,直至所有子段数据处理完毕,获得初始密文数据;
对初始密文奇数位的密文值的某一位进行值翻转,偶数位的密文值不变,生成个质数序列,质数序列中的每一个元素对应奇数密文序列中的每一个密文序列,将对应位的密文值进行翻转,质数的起始位随机;获得加密密文;
将质数序列作为第一加密密钥,将混沌序列参数和拆分比例作为第二密钥,将密钥和加密密文进行存储及传输。
进一步地,所述将待加密数据分段处理,获得多个子段数据包括:所述子段数据的位数为8位,若不足8位则进行补0。
进一步地,所述根据两段之间的差异度和子段数据与混沌序列的相似性获得对应拆分比例的优选程度包括:
优选程度公式为:
其中,为优选程度,/>为以自然常数为底的指数函数,/>为子段数据的数量,/>为子段数据与混沌序列的汉明距离,/>为第/>个子段数据的位置坐标与相邻两个位置坐标的平均距离。
进一步地,所述将对应位的密文值进行翻转包括:
将需翻转位数在初始密文中以S形进行寻找,寻找出需翻转位数,将对应位的密文值进行翻转。
本发明具有如下有益效果:
本发明实施例通过循环定位表的建立过程,增加数据加密过程中数据点的关联性,使得攻击者在对药物合成数据进行破解时给出错误引导,通过错误引导产生误差传播的目的,从而增加数据的私密性。
实施方式
为了更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种药物合成数据的安全存储方法,其具体实施方式、结构、特征及其功效,详细说明如下。在下述说明中,不同的“一个实施例”或“另一个实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构或特点可由任何合适形式组合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。
下面结合附图具体的说明本发明所提供的一种药物合成数据的安全存储方法的具体方案。
请参阅图1,其示出了本发明一个实施例提供的一种药物合成数据的安全存储方法流程图,该方法包括:
步骤S1:将待加密数据分段处理,获得多个子段数据;根据混沌映射模型获得子段数据对应的混沌序列;将子段数据拆分成两段,并转换至十进制数,将转换后的十进制数作为该数据对应的定位表中的位置坐标;在对子段数据拆分过程中,根据邻近两段子段数据之间位置坐标的差异度和子段数据与混沌序列的相似性获得对应拆分比例的优选程度,根据优选程度选择最优拆分比例,以最优拆分比例作为最优定位表的尺寸;将混沌序列顺序填入最优定位表中获得目标定位表。
为了增加数据的私密性与数据间的关联性,对数据进行分段处理,计算机在存储与传输数据时仅处理0、1二值数据,数据结构较为单一,单纯的置乱与代换加密效果难以评估,故采用分段的方式将数据分为若干个子段,通过子段划分对数据进行加密操作。将原始数据的二进制数据分为长度为8位的子段,若数据最后一段不足8位则进行补0操作。由此将二进制数据分为M个长度为8位的子段数据。
传统置乱方法仅仅改变数据点的位置信息,但置乱序列是随机生成的,若置乱的两个位置数据点的数据相同,则为无效置乱,即数据的私密性较差,尤其针对二值数据,二值数据的相似性很高,置乱时极易造成数据点的位置置乱了而对应位置的数据值无变化,故为了使得加密后的数据私密性可控,通过构建定位表对数据进行替换,通过对子段进行最优分段从而构建最优定位表,以达到提高私密性的加密目的,具体包括:
(1)根据混沌映射模型获得子段数据对应的混沌序列:置乱加密常用的方法为采用置乱序列对原始数据序列进行置乱,置乱序列通常采用混沌映射,混沌映射模型为:
其中为可控参数,/>表示混沌序列中的第/>个数。当系数/>时,系统进入混沌状态,将产生/>之间的混沌序列,将/>混沌映射模型迭代/>次。为了防止混沌序列与原始高亮点序列排序相似程度高,故去掉混沌序列的前/>项。此时获取的混沌序列是/>之间的混沌序列,将其投影到灰度级区间,即:将得到的混沌序列每一个数乘以/>并向下取整,得到区间范围为/>的混沌序列。对混沌序列进行筛选,保证序列中没有重复的值且保证值域全覆盖(即混沌序列中0-255中每个值均出现且不存在重复的值),得到的混沌序列记为:/>(举例说明:A=2,215,41…76)。
(2)自适应比例拆分子段数据:将八位二进制子段数据进行拆分,拆分后转换为十进制数,将转换后的十进制数作为该数据对应的编码表中的位置坐标。获取到的每一个子段数据均为8位二进制编码,对子段数据进行不同比例的拆分会获得不同大小的十进制数,通过将八位二进制数进行拆分,构建定位表,例如:编码为10111010的八位二进制子段,按照/>的比例进行拆分会得到1011,1010两个4位二进制子段,将4位二进制子段转换为10进制为11,10,则将其10进制数作为定位表的坐标信息/>,4位二进制数转换为10进制数最大为15,最小为0,故若以/>的拆分比例拆分数据,可以构成/>大小的定位表。拆分比例不同得到的定位表也不相同,因此拆分比例选取的是否合适决定了后续加密效果的好坏。拆分后的子段转换为十进制数后作为定位坐标在定位表中进行搜索,将定位表中的值与原始值进行替换达到加密的效果,故数据拆分时需要尽可能的保证拆分后的数据重复性较低且通过拆分得到的定位表中的对应位置的值与原始值尽可能的不同,故需要对拆分数据进行评估。已知一个数据的临近数据与其存在关联的可能性越大,即一个数据的邻近数据通过处理后与其原始的差异越大,则私密性将越强,故根据差异性获取数据子段拆分的优选程度,按照/>的拆分比例进行拆分,其中/>,将拆分完成的数据转换为十进制数,记为/>,其中/>表示对应的坐标信息,M表示第M个数据子段,即对应的差异度为:
式中S表示目标数据子段与其相邻数据子段的差异度,表示第M个数据子段拆分后所对应的十进制坐标信息。即差异度S为一个子段数据对应的位置坐标与相邻子段数据对应的两个位置坐标的平均距离。差异度S的值越大,说明通过/>的拆分比例进行拆分得到的数据在定位表中对应的位置差异越大,即数据的相似性越低。
根据的拆分比例计算其拆分比例的第一优选程度,即:
式中表示/>的拆分比例的第一优选程度,M表示原始数据中8位二进制数据子段的个数,/>表示第o个数据子段与其相邻数据子段的差异度,差异度越大,说明当前/>的拆分比例第一优选程度越高。
按照的拆分比例构建定位表,例如/>的拆分比例为/>,则定位表为/>,/>的拆分比例为/>,则定位表为/>。将混沌序列/>填入对应的定位表中,得到对应/>的拆分比例所构建的定位表。已知原始数据的八位二进制子段通过的拆分比例拆分后会得到一个坐标/>,坐标对应定位表中的一个混沌序列值,例如:编码为10111010的八位二进制子段,/>的拆分比例为/>,按照/>的比例进行拆分会得到1011,1010两个4位二进制子段,将4位二进制子段转换为10进制为11,10,则将其10进制数作为定位表的坐标信息/>,/>的拆分比例为/>,则定位表为/>,定位表中/>对应混沌序列中的一个值(例如128,转换为二进制后为1000 0000)。
本发明实施例期望原始的八位二进制子段(如10111010)与定位表中的混沌序列值不同,故计算对应子段与混沌序列值的相似性,相似性越小说明当初拆分比例越好,即:
式中h表示所有对应子段与混沌序列值的平均相似性,M表示原始数据中8位二进制数据子段的个数,T表示汉明距离(即当原始八位二进制序列与混沌值转换的二进制序列对应的位置相等时记为1,不相等时记为0,例如:10101010与10101110的汉明距离为7),为第/>个子段数据与混沌序列的汉明距离的归一化值,当相似性越小时说明数据段的相关性越小。
根据两段之间的差异度和子段数据与混沌序列的相似性获得对应拆分比例的优选程度包括:
优选程度公式为:
其中,为优选程度,/>为以自然常数为底的指数函数,/>为子段数据的数量,/>为子段数据与混沌序列的汉明距离,/>为第/>个子段数据与混沌序列的汉明距离的归一化值,/>为第/>个子段数据的位置坐标与相邻两个子段数据的位置坐标的平均距离。
(3)根据获取的最优拆分比例构建最优定位表,将混沌序列按照顺序填入最优定位表中,得到目标定位表。
步骤S2:获得第一个子段数据的第一目标定位表和第二个子段数据的第二目标定位表;将第一目标定位表中的第一混沌序列值与第二目标定位表中的第二混沌序列值进行与运算,将与运算后的序列值重新填入第二目标定位表中;循环此过程,直至所有子段数据处理完毕,获得初始密文数据。
通过将原始的八位二进制子段数据进行拆分获取对应的定位表坐标信息,将对应的八位二进制子段数据转换为对应坐标的混沌序列值。但该加密方法十分依赖混沌序列,且数据间的关系时相对独立的,若混沌序列的参数被泄露,原始明文极易被破解,且保存的密钥仅为混沌映射的参数,密钥过于单一,传输的密文均是相同的,这无疑增大了泄密破解的风险,我们期望相同的明文可以以不同的密文方式进行传输,同时密钥管理也要相对简单,故根据相邻子段数据之间的关联性调整目标定位表中的数据,提升加密效果。
获得第一个子段数据的第一目标定位表和第二个子段数据的第二目标定位表;第一组数据通过定位转换后会得到定位表中的第一组混沌序列值,将混沌序列值作为第一明文子段的密文,同理第二组数据通过定位转换后会得到定位表中的第二组混沌序列值。将第一目标定位表中的第一混沌序列值与第二目标定位表中的第二混沌序列值进行与运算,即当两个混沌序列值的八位二进制序列对应位置相同时记为1,否则记为0。将与运算后的序列值重新填入第二目标定位表中。(例如:第一混沌序列为01111111,第二混沌序列值为00010001,则运算后的值为10010001,此时将运算后的值转换为对应的的坐标信息,此时第二组数据的密文信息对应的即为运算后的值转换为对应的/>的坐标信息所对应的混沌序列值,记为第二明文子段的密文)循环此过程,直至所有子段数据处理完毕,获得初始密文数据。即初始密文数据以矩阵形式进行存储。请参阅图2,其示出了本发明一个实施例所提供的一种加密示意图,在图2中呈现了四个明文,即四个子段数据。需要说明的是,在实际加密过程中存在多个子段数据,图2仅为示意图。第一明文获得的第一密文与第二明文获得的第二初始密文进行计算,获得运算序列,进而获得第二密文;进一步根据第二密文获得第三明文的第三初始密文对应的运算序列和第三密文;同理,根据第三密文获得第四明文的第四初始密文对应的运算序列和第四密文。
步骤S3:对初始密文奇数位的密文值的某一位进行值翻转,偶数位的密文值不变,生成个质数序列,质数序列中的每一个元素对应奇数密文序列中的每一个密文序列,将对应位的密文值进行翻转,质数的起始位随机;获得加密密文。
通过生成随机噪声对密文数据进行更改,例如对奇数位的密文值的某一位进行值翻转,偶数位的密文值不变,即生成个质数序列,质数序列中的每一个元素对应奇数密文序列中的每一个密文序列,将对应位的密文值进行更改,质数的起始位随机,将需翻转位数在初始密文中以S形进行寻找,寻找出需翻转位数,将对应位的密文值进行翻转。例如:第质数序列中第一个元素为5,第一个奇数密文为10110101,则将密文第5为进行翻转,则翻转后的密文为10111101,若质数大于密文位数,例如质数为11,则理应将密文中第11位进行翻转,但密文位数少于11位,则按S形进行计数。
步骤S4:将质数序列作为第一密钥,将混沌序列参数和拆分比例作为第二密钥,将密钥和加密密文进行存储及传输。
接收端获得加密密文、第一密钥和第二密钥。将生成的质数序列与加密密文进行作用,将对应位置的数值进行翻转,得到翻转完成的密文,通过混沌序列参数与拆分比例得到定位表。从第一个数据开始解密,第一密文子块对应的位置坐标即为原始第一明文子块;第二密文通过定位表得到位置坐标,通过位置坐标得到运算序列,通过第一密文与运算序列还原第二偏移密文,通过第二偏移密文的坐标还原第二明文子块,后续还原与第二密文子块还原方法相同,完成所有加密密文的还原,实现解密过程。
综上所述,本发明实施例将数据切分,获取多个数据子段。构建定位序列,根据定位序列自适应获取最优拆分比例,根据拆分比例生成最优定位表,根据定位表生成加密密文。对加密密文进行存储,并阐述数据解密过程。本发明实施例通过增加数据加密过程中数据点的关联性,使得攻击者在对药物合成数据进行破解时给出错误引导,通过错误引导产生误差传播的目的,从而增加数据的私密性。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。