发明内容
本发明提供一种金融资产交易数据安全存储方法,以解决现有的数据压缩困难的问题,所采用的技术方案具体如下:
本发明一个实施例提供了一种金融资产交易数据安全存储方法,该方法包括以下步骤:
获取金融资产交易数据,并对数据进行二进制编码;
获取存储二进制编码的定位表,获取混沌序列,根据混沌序列得到列混沌序列和行混沌序列;
分别将列混沌序列和行混沌序列的相同位置的序列值按顺序依次取出并组合成定位坐标,得到的所述定位坐标的数量为定位表的大小,从定位表中得到每个定位坐标对应的第一二进制序列,每连续获得两个定位坐标时将对应的两个第一二进制序列进行异或运算得到一个异或二进制序列,获得所有异或二进制序列,得到的异或二进制序列的数量为定位表大小的一半;
根据所述两个第一二进制序列中相同位置的取值获得若干组合结果,根据每个组合结果为异或二进制序列添加标识符,将添加标识符后的异或二进制序列作为加密密文;
根据定位表坐标的定位坐标横纵坐标的奇偶性得到每个定位坐标对应的组合结果;
获取混沌序列各项参数作为第一密钥,将定位表的大小做为第二密钥,将第一二进制的组合结果及标识符添加方法作为第三密钥,根据所述第一密钥、第二密钥、第三密钥和加密密文实现解密。
优选的,所述根据混沌序列得到列混沌序列和行混沌序列的方法为:
将混沌序列从第k个值开始得到M*N长度的序列,记为列混沌序列,列混沌序列中的每个元素的值都为小于M的整数,将混沌序列从第r个值开始得到M*N长度的序列,记为行混沌序列,行混沌序列中的每个元素的值都为小于N的整数;其中M为所述定位表的列,N为所述定位表的行,且M和N均为大于等于2的整数。
优选的,所述分别将列混沌序列和行混沌序列的相同位置的序列值按顺序依次取出并组合成定位坐标的方法为:
从行混沌序列和列混沌序列的第一位开始,以行混沌序列的值作为横坐标,列混沌序列的值作为纵坐标,相同位置的行混沌序列值和列混沌序列值得到定位坐标,将定位表中定位坐标位置对应的元素删除,将该元素之后的所有元素依次向前移动一位。
优选的,所述根据所述两个第一二进制序列中相同位置的取值获得若干组合结果的步骤为:
异或二进制序列转换为第一二进制序列时根据第一二进制的相同和不相同的异或关系得到4种组合关系,第一二进制序列值相同时存在两种情况,第一二进制序列值不同时存在两种情况,两两组合得到4种组合结果,选择其中一种组合关系,这一种组合关系就是正常的异或运算,在不满足这一种组合关系时的异或运算就添加标识符。
优选的,所述根据第一二进制的相同和不相同的异或关系得到4种组合关系的具体方法为:
将任意两个第一二进制序列分别记为第一序列和第二序列,当第一序列和第二序列同一个位置的值相同且为1时不添加标识符,两个所述序列存在值不同且第一序列值为1时不添加标识符记为情况一;当两个所述序列存在值相同且为1时不添加标识符,两个所述序列存在值不同且第一序列值为1时添加标识符记为情况二;当两个所述序列存在值相同且为1时添加标识符,两个所述序列存在值不同且第一序列值为1时添加标识符记为情况三;当两个所述序列存在值相同且为1时添加标识符,两个所述序列存在值不同且第一序列值为0时不添加标识符记为情况四。
优选的,所述根据定位表坐标的定位坐标横纵坐标的奇偶性得到每个定位坐标对应的组合结果的方法为:
行混沌序列和列混沌序列构成第一坐标,根据第一坐标横坐标和纵坐标奇偶性使用4种情况根据第一二进制序列的组合结果为异或二进制序列添加标识符,当横坐标为奇数且纵坐标为奇数时使用情况一;当横坐标为奇数且纵坐标为偶数时使用情况二;当横坐标为偶数且纵坐标为奇数时使用情况三;当横坐标为偶数且纵坐标为偶数时使用情况四。
本发明的有益效果是:本发明提出了一种金融资产交易数据安全存储方法,通过对待加密数据进行编码转换,自适应生成定位表,通过将两对应位置的二进制编码进行异或运算,不仅改变数据的原始值,达到隐藏明文的效果,同时使加密密文所占字节小于明文所占字节,在较好的抵御统计分析攻击的同时,降低了密文数据存储量,不仅达到隐藏明文的目的,同时还达到数据压缩的目的。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其示出了本发明一个实施例提供的一种金融资产交易数据安全存储方法流程图,该方法包括以下步骤:
步骤S001、进行金融资产交易数据采集,将采集数据转换为二进制编码。
金融资产交易数据的表现形式为各式各样的,为了增加系统的鲁棒性,对不同形式的金融资产交易数据进行编码转换,转换为统一的编码形式。其中二进制编码数据为计算机处理数据的统一形式,因此,将各式各样的金融资产交易数据转换为二进制编码形式,以便于提高加密系统的鲁棒性。
采用ASCII编码进行统一表示,对照ASCII编码表获取对应字符的ASCII值,将ASCII值转换为二进制编码。为了便于数据管理,需要将二进制编码转换为定长编码,具体为:获取当前二进制编码序列中编码长度最长的二进制编码,长度记为
,将其他长度的二进制编码进行补0操作,使得补0后二进制编码的长度变为
,对所有二进制编码进行补0处理,最终得到每个字符编码长度均为
的定长二进制编码序列。例如:0的ASCII编码序号为48,将其转换为二进制编码后为110000,z的ASCII编码序号为122,将其转换为二进制编码后为1111010,其中z的二进制编码长度为7位,而0的二进制编码长度为6位,则通过定长编码转换后0的二进制编码变为:0110000。
步骤S002、构建定位表,根据定位表获取二进制数据,根据定位表获取标识符,得到加密密文及密钥。
需要说明的是,通过构建定位表,在定位表中随机选取两个位置中字符对应的二进制编码进行异或运算,保证运算后的结果与原字符对应的二进制编码不同,异或运算结果为不可逆结果,为了最终可以进行解码,需要增加标识符,标识符的增加规则由定位表自适应获取,从而大大增加加密密文的随机性,保证最终加密密文的安全性。
在本实施例中,通过构建定位表的方法为:
获取的金融资产交易数据通常为时序数据,时序数据中每一个数据的位置是固定的,即数据与数据之间在位置上较为固定,在进行后续加密操作时,组合方式过于单一,容易造成加密效果不佳,因此,为了增加加密密文的破解难度,自适应构建定位表。根据当前金融资产交易数据的大小自适应确定定位表大小,金融资产交易数据有
个字符,构建一个M列N行的空表,作为定位表,其中M,N的获取方法为:
式中
表示定位表的列数,
表示定位表的行数,
表示金融资产交易数据数据包中的字符个数,其中定位表的最小空位数等于金融资产交易数据数据包中的字符个数
,将金融资产交易数据中的字符对应的二进制编码依次填入定位表中,若所有金融资产交易数据数据包中的字符对应的二进制编码均依次填入定位表中后,定位表还存在空位,则对空位处进行补0,值得注意的是,此处填入定位表空位中的是金融资产交易数据中的字符对应的二进制编码,通过步骤S001中的进制转换后,一个空位中填充长度为
的二进制编码。
进一步的,获取随机数定位序列
,使用混沌映射获取随机混沌序列:
其中
为可控参数,
表示混沌序列中的第n个数。当系数
时,系统进入混沌状态,将产生
之间的混沌序列,将
混沌映射模型迭代D次,且
,在本实施例中D为。此时获取的混沌序列是
之间的混沌序列。
从混沌序列中第
位开始选取长度为
的混沌序列,记为:
,其中混沌序列
的取值范围为
,由于需要采用混沌序列随机获取定位表中任意一列的字符的二进制编码,故需要将混沌序列的取值范围投影到
的范围内,即将得到的混沌序列中每一个数乘以
并向下取整,得到区间范围为
的列混沌序列
,获得列混沌序列。同理,从混沌序列中第
位开始选取长度为
的混沌序列,记为:
,其中混沌序列
的取值范围为
,由于需要采用混沌序列随机获取定位表中任意一行的字符的二进制编码,故需要将混沌序列的取值范围投影到
的范围内,即将得到的混沌序列中每一个数乘以
并向下取整,得到区间范围为
的行混沌序列
,获得行混沌序列。由此获得列混沌序列
与行混沌序列
。
进一步的,根据获得的列混沌序列
与行混沌序列
从定位表中选取对应位置的字符的二进制序列,选取列混沌序列
与行混沌序列
中的第一个混沌序列值组成第一定位坐标
,根据第一定位坐标
从定位表中提取坐标为
的二进制序列,将所有定位坐标对应的序列记为第一二进制序列,坐标为
的二进制序列记为
。此时将坐标为
的二进制序列从定位表中剔除,将坐标为
的二进制序列之后的所有对应坐标中的二进制序列整体向前推进一个坐标单位。
例如:定位表的大小为
,填入定位表中的二进制序列按顺序为:
,列混沌序列
与行混沌序列
中的第一个混沌序列值组成第一定位坐标为
,坐标为
的二进制序列为
,此时将坐标为
的二进制序列为
从定位表中剔除,此时定位表中坐标为
的坐标位置为空位,将坐标为
之后的坐标位置中的二进制序列整体向前推进一个坐标单位,坐标为
的二进制序列对应为
,则将
整体向前推进一个坐标单位,此时推进后坐标为
的二进制序列变为原本的
,t推进完成后定位表中的空位坐标变为
。
同理获取列混沌序列
与行混沌序列
中的第二个混沌序列值组成第二定位坐标
,对应的二进制序列记为
,此时将二进制序列
与二进制序列
进行异或运算,运算结果记为
。
例如:二进制序列为
,二进制序列为
,则进行异或运算后的结果为
1001010。同理获取二进制序列
与二进制序列
,将二进制序列
与二进制序列
进行异或运算,运算结果记为
,将所有的二进制序列按照顺序,两两进行异或运算,以此类推,直至将定位表中所有的二进制序列完成运算后结束,若二进制序列总数为奇数,则最后一个二进制序列与
位的0进行异或运算,最终完成所有二进制序列的异或运算。
进一步的,通过上述操作后,在加密的同时字节数会缩短到原来的一半,但异或运算后的结果再进行逆变换时无法还原为原来的数据,因此需要对异或运算结果增添标识符进行区分,例如:异或运算后的结果为
,通过
可知从低到高位二进制
、
的2、3、5、7位是相同的,1、4、6位是不相同的,此时存在四种情况,其中
、
的2、3、5、7相同位中为0或1两种情况,
、
的1、4、6不相同位中
对应的位置为1或0,当
对应的位置为1或0时,
的对应的位置为0或1,因此为了确保异或运算后的结果可以进行逆变换,则需要对异或运算的结果进行增添标识符。此时标识符的增添规则有四种情况:
若两个二进制序列同一个位置值相同,称为相同位置,记为A位置,若两个二进制序列同一个位置值不相同,称为相异位置,记为B位置。根据两个二进制序列的前后关系,将前一个二进制序列称为前二进制序列,将后一个二进制序列称为后二进制序列。
对于两个二进制序列
、
,若这两个二进制序列相同位置的取值相同,则记该位置为A位置,若这两个二进制序列相同位置的取值不相同,则记该位置为B位置。
情况一:在A位置上,若
在A位置上的序列值为1,则不添加标识符,若前
在A位置上的序列值为0,则添加标识符“-”;在B位置上,若
在B位置上的序列值为1,则不添加标识符,若
在B位置上的序列值为0,则添加标识符“-”。例如当
、
,不添加标识符时,
,按照情况一添加完标识符后,
,同样按照情况一所述的添加标识符的方法,已知
时,可以反向推理获得
,
;
情况二:在A位置上,若
在A位置上的序列值为1,则不添加标识符,若前
在A位置上的序列值为0,则添加标识符“-”;在B位置上,若
在B位置上的序列值为1,则添加标识符“-”,若
在B位置上的序列值为0,则不添加标识符。例如当
1、
,不添加标识符时,
,按照情况二添加完标识符后,
,同样按照情况二所述的添加标识符的方法,已知
时,可以反向推理获得
,
;
情况三:A位置上,若
在A位置上的序列值为1,则添加标识符“-”,若前
在A位置上的序列值为0,则不添加标识符;在B位置上,若
在B位置上的序列值为1,则不添加标识符,若
在B位置上的序列值为0,则添加标识符“-”。例如当
、
,不添加标识符时,
,按照情况二添加完标识符后,
,同样按照情况二所述的添加标识符的方法,已知
时,可以反向推理获得
,
;
情况四:A位置上,若
在A位置上的序列值为1,则添加标识符“-”,若前
在A位置上的序列值为0,则不添加标识符;在B位置上,若
在B位置上的序列值为1,则添加标识符“-”,若
在B位置上的序列值为0,则不添加标识符。例如当
、
,不添加标识符时,
,按照情况二添加完标识符后,
,同样按照情况二所述的添加标识符的方法,已知
时,可以反向推理获得
,
。
当出现加密密文相同时,为了保证进一步的加密效果,可以根据定位坐标来加密,获取列混沌序列
与行混沌序列
中的第s个混沌序列值组成第s定位坐标,记为
的情况也是有四种,例如:
为奇数、
也为奇数;
为奇数、
为偶数;
为偶数、
为奇数;
为偶数、
也为偶数,由此当横坐标为奇数,纵坐标为奇数时使用情况一,横坐标为奇数,纵坐标为偶数时使用情况二,横坐标为偶数,纵坐标为奇数时使用情况三,横坐标为偶数,纵坐标为偶数时使用情况四,上述情况为定位坐标是两个定位坐标计算时提取的提一个坐标。这样做的目的是当加密密文相同时,根据坐标的不同使用不同的方式进行解密,增加了安全性。由此得到初始标识符密钥
,
包含不同坐标对应的情况种类。
加密密文的获取是根据金融资产交易数据数据包自适应获取定位表,定位表是根据金融资产交易数据数据包的大小计算得到初始参数
的区间范围,在初始参数
的区间范围内自适应选取密钥参数
,此时获取对应的定位表,根据初始混沌序列密钥参数
、
、
、
获取长度为
的定位混沌序列
,再根据定位混沌序列
选取对应位置的二进制序列进行异或运算,再根据初始标识符密钥
进行标识符增添。
密钥即为混沌序列的可控参数
、随机序列
、
、
、定位表密钥参数
与初始标识符密钥
,其中定位表密钥参数
依赖于金融资产交易数据数据包,其余密钥均可在密钥规则选取范围内随机选取。密钥不随加密密文一同传输,密钥为单独管理,仅限传输方与接收方知道。
步骤S003、根据密钥对加密密文进行解密。
在数据发送端与数据接收端根据金融资产交易数据获取对应的动态密钥信息,在所述数据发送端利用所述动态密钥对所述待加密的金融资产交易数据进行加密处理,得到对应的加密数据,将所述加密数据发送到数据接收端,数据接收端对所述加密数据利用所述动态密钥对加密数据进行解密处理。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。