发布信息

基于混沌的MapReduce数据压缩的信息保护方法 专利技术说明

作者:admin      2022-12-06 20:55:40     494



电子通信装置的制造及其应用技术基于混沌的mapreduce数据压缩的信息保护方法技术领域1.本发明涉及数据压缩和信息安全领域,尤其涉及一种基于混沌的mapreduce数据压缩的信息保护方法。背景技术:2.在大数据平台hadoop上并行处理数据时,mapreduce作业的瓶颈通常在系统的io上,数据压缩能够加快数据在网络上、磁盘间的数据传输速度,意味着数据压缩算法可以使作业运行更加高效。lzo(lempel-ziv-oberhumer)压缩算法是处理大数据平台上一种流行的压缩算法,在大数据平台hadoop上使用lzo压缩算法处理数据时能够加快磁盘的读写速度,有效地减小数据的大小从而加快任务的处理速度,然而在大数据平台hadoop上的很多压缩格式是不支持切片的,从而增加在并行处理时的难度,为lzo文件创建索引后才会支持切片,指定inputformat为lzo格式,进而可以并行地被hadoop处理,单个文件越大lzo压缩的优势也就越明显。对比其它压缩格式,lzo压缩有着快于其它压缩几倍的解压缩速度,因此可以避免由于解压缩速度的缓慢而导致数据处理的瓶颈转移到cpu上。lzo提供了多种压缩级别,可以根据自身需要来调节压缩率和压缩速度之间的平衡,提升压缩率的同时会使压缩速度下降,但是这并不会影响到算法的解压缩速度。lzo在hadoop上并不是内置支持的,需要自行安装。lzo压缩算法可以用于map任务的中间输出结果,此输出会写入到磁盘,通过网络传输到reduce任务,lzo的快速压缩/解压缩可以极大地提升mapreduce作业处理的性能。3.混沌密码学具有简单高效的优势,它是将混沌理论与加密方法相结合的一种加密技术。logistic映射、tent映射是混沌理论中非常经典的模型,在混沌密码学中通过对模型的不断迭代从而产生复杂的混沌序列,所产生的序列是非周期性不收敛的,具有伪随机的特性、对初始条件的极度敏感以及不可预测等特性,无论初始条件发生多么细小变化也会使得到的序列发生天翻地覆的变化,这些特性非常适合于加密技术。混沌加密算法有很多种设计方法,其中一种设计方法是应用混沌系统来设计混沌流密码算法,利用混沌系统来构造密钥流发生器,通过将密钥(混沌系统的初始条件、控制参数以及迭代次数)输入密钥流发生器生成密钥流直接用于加密明文,与明文做异或运算从而产生密文。这种混沌流加密的优势在于设计简单、加解密速度占优。但是由于混沌系统产生的迭代值是在[0,1]区间上的实数,现有的混沌流密码技术通过一个阈值函数从混沌轨道中提取随机二进制比特序列,且此方法所提取的二进制比特序列有良好的随机性。[0004]mapreduce是一种典型的大数据处理框架,数据在hadoop平台上是在不同节点上进行计算处理以及存储,使用lzo压缩算法虽然可以提升任务处理的性能,但是数据在不同节点之间交互存在着安全威胁,一个mapreduce作业的map端输出的中间结果会写到运行该map 任务节点的本地磁盘并通过网络传输到对应的reduce任务节点,未经授权的客户端可以通过观察访问mapreduce作业过程中map端输出的未经加密的中间结果从而获取用户的隐私数据,数据在任务处理过程中应该综合考虑到数据的高效传输问题和防止数据泄露的问题。技术实现要素:[0005](一) 要解决的技术问题由于mapreduce作业处理过程的中间结果存储在map 任务节点的本地磁盘并通过网络传输到对应的reduce任务节点,使用lzo压缩算法可以提高中间结果在磁盘和网络上的传输速率,但是由于数据未加密而存在隐私泄露的问题。本发明要解决的主要技术问题是:加密算法对任务处理过程中的性能具有较大的影响,以及lzo压缩算法压缩率较低的问题。[0006](二) 技术方案为了解决在大数据平台下lzo压缩算法压缩率较低和隐私数据的安全保护问题,本发明提供了一种基于混沌的mapreduce数据压缩的信息保护方法,包括:part_1:在lzo压缩算法中实现重复字符串搜索匹配策略的哈希方法;part_2:将混沌流加密过程引入到压缩过程中,在mapreduce中实现lzo压缩加密方法。[0007]以下对各部分进行详细说明。[0008]part_1部分为了解决lzo压缩算法压缩率较低的问题,本发明首先提出了一种适用于lzo压缩算法重复字符串搜索匹配策略的哈希方法,包括:lzo压缩算法通过逐字节扫描的形式:每次扫描四个字节。哈希函数具体步骤为:将四个字节与素数进行相乘运算并将结果相加,将得到的结果再进行一次变换,结果作为混沌映射的初始条件通过混沌映射迭代的方式得到哈希地址,通过建立哈希表的方式实现快速重复字符串搜索匹配,通过二次哈希的方式处理第一次产生的冲突,若二次哈希之后仍然存在冲突则放弃搜索匹配。[0009]lzo压缩算法重复字符串搜索匹配策略的哈希方法的数据结构和函数过程定义如下:定义函数tenthash表示lzo压缩算法重复字符串搜索匹配策略的哈希方法。[0010]用于计算哈希地址的混沌tent映射定义如下:xi+1=xi/u,如果0《xi《u;xi+1=(1-xi)/(1-u),如果u=《 xi 《1;其中xi为混沌tent映射第i次的迭代值。初始值设置为x0。u为混沌tent映射的控制参数。xadd_i1记为计算第一次哈希地址所得到的迭代值。xadd_i2记为处理第一次冲突所得到的迭代值。addr1记为第一次计算的哈希地址。addr2记为第二次计算的哈希地址。[0011]offset记为重复字符串的匹配距离。len记为重复字符串的匹配长度。[0012]numval01_hash记为哈希运算初步处理过程中的素数,初始值设置为31。[0013]以上对本发明中使用的数据结构和函数过程进行了定义和描述,下面对定义的函数tenthash进行详细说明,具体为:th_step_01、正在处理的四个字节与numval01_hash进行运算,将第一个字节值与numval01_hash进行相乘运算并和下一个字节值相加,得到的结果再和numval01_hash进行相乘运算并和下一个字节值相加,依次处理四个字节;分别为logistic_map1、logistic_map2的初始值。u1、u2分别为logistic_map1、logistic_map2的控制参数。[0018]在混沌二进制加密/解密序列生成过程中,logistic_map1、logistic_map2本轮最后一次迭代值记为ye、ze。[0019]阈值函数rn(yn,zn)用于生成随机混沌二进制序列,定义如下:rn(yn,zn)=1,如果yn《zn;rn(yn,zn)=0,如果yn》=zn。[0020]其中rn表示第n个随机混沌二进制序列。未匹配成功的新字符长度记为unmatch_l。[0021]新字符记为unmatch_ck,1=《 k 《=unmatch_l,k表示为第k个新字符。[0022]新字符按长度编码记为unmatch_bj,j表示编码的第j个字节,j为整数。[0023]新字符长度编码过程中当前新字符长度与字节编码最大值的差值记为ld_val,d_val=1,2,…。压缩编码的首字节记为compress_byte1。[0024]定义密钥key(y0,u1,z0,u2,m),其中m为混沌logistic_map1、logistic_map2映射的迭代次数。生成混沌二进制加密序列过程中的加密序列字节长度记为len_num1。生成混沌二进制解密序列过程中的解密序列字节长度记为len_num2。[0025]以字节为单位的混沌二进制加密序列:ensequenceindex_i1表示第index_i1个字节的混沌二进制加密序列,1《=index_i1《=len_num1。密文字节序列:cipherbyteindex_i3表示为第index_i3个密文字节,index_i3是整数。[0026]以字节为单位的混沌二进制解密序列:desequenceindex_i2表示第index_i2个字节的混沌二进制解密序列,1《= index_i2《=len_num2。[0027]以下对定义的lzo_chaosencrypt进行说明,具体为:lce_step_01、首先将密钥key(y0,u1,z0,u2,m) 输入到伪随机数发生器中迭代m次,记录ye,ze;lce_step_02、跳过首四个字节不做压缩处理,当作新字符存储起来并对新字符个数计数;lce_step_03、读取接下来的四个字节,通过本发明提出的哈希方法计算哈希地址,在字典中进行重复字符串查询匹配或者字典更新,匹配失败时记录新字符并以逐字节扫描形式读取下四个字节,重复上述过程直到匹配成功;lce_step_04、首先输出的是unmatch_bj,接着输出unmatch_l个unmatch_ck:当unmatch_l《4时,将unmatch_l记录到上一个压缩编码格式的预留的2比特中,将ye,ze通过伪随机数发生器继续迭代8×unmatch_l+8次,记录ye,ze,然后通过rn(yn,zn)生成ensequenceindex_i1,依照压缩格式将前一个压缩编码的compress_byte1与ensequenceindex_i1进行异或操作得到cipherbyteindex_i3输出,后续unmatch_l个unmatch_ck与ensequenceindex_i1进行异或操作得到cipherbyteindex_i3输出;当4=《unmatch_l《19时,将ye,ze通过伪随机数发生器继续迭代8×unmatch_l+16次,记录ye,ze,然后通过rn(yn,zn)生成ensequenceindex_i1,依照压缩格式将前一个压缩编码的compress_byte1与ensequenceindex_i1进行异或操作得到cipherbyteindex_i3输出,再将unmatch_l-3记录到unmatch_b1中,然后与ensequenceindex_i1进行异或操作得到cipherbyteindex_i3输出,后续unmatch_l个unmatch_ck与ensequenceindex_i1进行异或操作得到cipherbyteindex_i3输出;当19=《unmatch_l时,将unmatch_b1值记录为0,令l1=unmatch_l-18;若l1=《255,直接将l1记录到unmatch_b2中结束新字符长度编码;若l1》255,将unmatch_b2记录为0,令l2=l1-255;接着比较l2和255的值,按上述方式记录直到结束新字符长度编码为止;将ye,ze通过伪随机数发生器继续迭代8×unmatch_l+8×j+8次,记录ye,ze,然后通过rn(yn,zn)生成ensequenceindex_i1,依照压缩格式将前一个压缩编码的compress_byte1与ensequenceindex_i1进行异或操作得到cipherbyteindex_i3输出;将unmatch_bj与ensequenceindex_i1进行异或操作得到cipherbyteindex_i3输出;后续unmatch_l个unmatch_ck与ensequenceindex_i1进行异或操作得到cipherbyteindex_i3输出;lce_step_05、字符串匹配成功后会依照offset和len的不同分成两类共五种压缩格式进行编码存储,然后转到lce_step_03直到数据处理完成,最后结束编码加密并输出。[0028]lzo_chaosdecrypt具体说明如下:lcd_step_01、首先将密钥key(y0,u1,z0,u2,m)输入到伪随机数发生器中迭代m次,记录ye,ze;lcd_step_02、将ye,ze通过伪随机数发生器继续迭代8次,记录ye,ze;然后通过rn(yn,zn)生成desequenceindex_i2,将下一个字节与desequenceindex_i2进行异或操作解密,判断编码值范围:(i) 如果编码值在0-15范围内,则对应的是未匹配成功的新字符格式:在新字符格式下,编码值不为0,将编码值加3即为unmatch_l,将ye,ze通过伪随机数发生器继续迭代8×unmatch_l次,记录ye,ze;然后通过rn(yn,zn)生成desequenceindex_i2,将接下来的unmatch_l个字节通过desequenceindex_i2进行异或操作并输出;在新字符格式下,若编码值为0,则unmatch_l大于18,下一个字节仍表示新字符长度编码,将ye,ze通过伪随机数发生器继续迭代8次,记录ye,ze,然后通过rn(yn,zn)生成desequenceindex_i2,将下一个字节与desequenceindex_i2进行异或操作解密,判断编码值是否为0,若仍为0,按上述方式继续生成desequenceindex_i2,将下一个字节与desequenceindex_i2进行异或操作解密直到编码值不为0,计算出unmatch_l,将ye,ze通过伪随机数发生器继续迭代8×unmatch_l次,记录ye,ze;然后通过rn(yn,zn)生成desequenceindex_i2,将接下来的unmatch_l个字节与desequenceindex_i2进行异或操作并输出。[0029](ii) 如果编码值不在0-15范围内,则对应的是lzo压缩格式:依据首字节的编码值,解析其编码格式,再按照压缩格式来解析编码的offset和len以及后续是否有新字符,根据offset和len、之前已输出的数据得到解码后的数据并输出,若后续有新字符,依据unmatch_l,将ye,ze通过伪随机数发生器继续迭代8×unmatch_l次,记录ye,ze,然后通过rn(yn,zn)生成desequenceindex_i2,将后续unmatch_l个字节与desequenceindex_i2进行异或操作并输出;若解析出的offset为0,则该编码为结束编码;lcd_step_03、未解析出结束编码则重复lcd_step_02直到解析到结束编码,最终得到的输出结果为原始数据。[0030](三) 有益效果本发明的有益效果体现在如下两个方面:一方面,混沌tent映射的优势是计算简单、速度快,其产生的混沌序列分布比较均匀,利用混沌tent映射的优势以及伪随机性、遍历性等特性构造哈希函数,本发明提出的重复字符串搜索匹配策略的哈希方法具有如下优点:1. 计算速度快,通过哈希函数计算所得的哈希值具有在哈希表中更好的分布,哈希值的分布更加均匀。[0031]2. 哈希所产生的第一次冲突和第二次冲突都具有大幅度的减少:第一次冲突的减少可以有效地减少处理冲突时二次哈希值计算和字符串匹配的时间。[0032]第二次冲突的减少可以使字符串因两次搜索匹配失败而放弃搜索匹配的数量减少,通过两次查找匹配的方式可以匹配成功的字符串增多,可以提高算法的压缩率,在提高压缩率的同时,对lzo压缩加密方法的性能产生良好的影响,更进一步地减少加密的数据量。[0033]另一方面,依据本发明的技术方案,在mapreduce处理数据流程中调用lzo压缩加密方法保证数据处理过程中产生的中间结果的安全,与现有的压缩和加密技术相比,将混沌流加密算法引入到数据压缩过程中,减少了加密的数据量,通过加密关键数据保证了隐私数据的安全性,同时有效地保证对数据的加密解密的效率,减小加密算法对mapreduce的性能的影响。附图说明[0034]图1为基于混沌的mapreduce数据压缩的信息保护方法流程图。[0035]图2为mapreduce的lzo压缩加密流程图。[0036]图3为mapreduce的lzo解密解压缩流程图。具体实施方式[0037]为了提升mapreduce数据处理过程中的中间结果的安全性并减少加密算法在mapreduce过程中所带来的较大的时间复杂度的影响,本发明提出一种lzo压缩加密方法;本发明采用传统的lzo压缩算法,将混沌流加密方法引入到压缩流程中,在数据压缩的同时进行加密过程,同时提出一种可提高算法压缩率的重复字符串搜索匹配策略的哈希方法,在提高压缩率的同时也有效地提高了混沌流加密在时间上的性能。为了清楚地说明本发明的技术方案,下面结合附图和实例对本发明的具体实施方式进一步详细地阐述,以下实例用于说明本发明,但不能用来限制发明的范围。[0038]实例1:函数tenthash。[0039]th_step_01、读取当前正在处理的四个字节分别为k0,k1,k2,k3,将第一个字节值与numval01_hash相乘并和下一个字节值相加,得到的结果再和numval01_hash相乘并和下个字节值相加,依次处理完四个字节:f_result=(((k0×numval01_hash+k1)×numval01_hash+k2)×numval01_hash+k3)其中f_result表示四个字节初步处理的结果,numval01_hash设置为31。[0040]th_step_02、将f_result变换到[0,1]区间作为混沌tent映射的初值x0。[0041]th_step_03、将初值x0代入混沌tent映射,并将混沌tent映射迭代10次得到xadd_i1,混沌tent映射的参数u选取0.499。[0042]th_step_04、第一次计算的哈希地址:addr1=floor(maxsize×xadd_i1)其中floor表示向下取整函数,maxsize表示哈希词典的空间大小。[0043]th_step_05、将当前字符串和词典中该哈希地址addr1所存储的字符串进行第一次匹配:若存储的值为空则更新词典,将当前字符串扩充到词典中,结束本次字符串搜索匹配。[0044]若存储的值不为空,且字符串匹配成功,即第一次匹配成功,结束本次字符串搜索匹配,计算offset和len,进行接下来的压缩编码;若存储的值不为空,且字符串匹配不成功,即第一次匹配失败,则转到th_step_06进行冲突处理;th_step_06、将xadd_i1再进行1次混沌tent映射迭代:xadd_i2=tent(xadd_i1)tent函数表示混沌tent映射,将xadd_i2再次变换到哈希词典的范围内取整得到addr2:addr2=floor(maxsize×xadd_i2) 。[0045]th_step_07、将当前字符串和词典中该哈希地址addr2所存储的字符串进行第二次匹配:若存储的值为空则更新词典,将当前字符串扩充到词典中,结束本次字符串搜索匹配。[0046]若存储的值不为空,且字符串匹配成功,即第二次匹配成功,结束本次字符串搜索匹配,计算offset和len,进行接下来的压缩编码。[0047]若存储的值不为空,且字符串匹配不成功,即第二次匹配失败,则放弃匹配搜索,读取接下来的数据进行匹配搜索。[0048]实例2:lzo_chaosencrypt、lzo_chaosdecrypt对mapreduce中间结果的数据处理过程。[0049]在map任务完成之后,将map端输出的中间结果使用lzo_chaosencrypt进行压缩加密处理,将处理后的数据存储在map任务节点的本地磁盘等待reduce任务处理数据;在开始reduce任务之前通过lzo_chaosdecrypt将map的中间结果解密解压缩为原始数据,之后再进行reduce任务。[0050]实例3:lzo_chaosencrypt。[0051]如图2所示是本发明的lzo_chaosencrypt流程:lce_step_01、将密钥key(y0,u1,z0,u2,m) 输入到伪随机数发生器中迭代m次,记录ye,ze即第m次迭代产生的迭代值。[0052]lce_step_02、对数据的最开始的前四个字节不做压缩处理,当作新字符存储起来并对新字符个数计数,令unmatch_l=4;lce_step_03、接着读取后续的四个字节分别为k0,k1,k2,k3,进行哈希运算计算出哈希地址后更新字典,将第一个字节k0当作新字符进行存储并将unmatch_l+1;addr=tenthash(k0,k1,k2,k3)addr表示前四个字节的哈希地址。[0053]lce_step_04、以逐个字节扫描的形式读取下面四个字节k0,k1,k2,k3,进行哈希运算计算出addr1并在字典中进行第一次查询匹配:addr1=tenthash(k0,k1,k2,k3)若第一次查询匹配不成功,字典存储值为空则进行字典的更新,否则进行冲突处理,按照本发明所述的tenthash函数进行第二次哈希运算计算出addr2,并在字典中进行第二次查询匹配,若第二次匹配仍不成功,字典存储值为空时则进行字典的更新,转到lce_step_05;若第二次匹配成功,转到lce_step_06;若第一次查询匹配成功,转到lce_step_06。[0054]lce_step_05、将第一个字节k0当作新字符进行存储,并将unmatch_l+1,判断原始数据是否结束:若数据未结束,转到lce_step_04;若数据结束,进行新字符长度编码,依据unmatch_l的取值范围将unmatch_l记录到unmatch_bj中;新字符长度编码规则:(a)将unmatch_l记录到上个压缩编码格式的预留的两比特位中;(b)将unmatch_l-3记录到unmatch_b1中;(c)将unmatch_b1记录为0,令l1=18,l2=unmatch_l-l1;若l2=《255,直接将l2记录到unmatch_b2中结束新字符长度编码;若l2》255,将unmatch_b2记录为0,令l3=l2-255,接着判断l3与255的大小关系,按上述方式记录直到ld_val=《255时,将ld_val记录到unmatch_bj中结束新字符长度编码;生成ensequenceindex_i1方法:(d)将ye,ze通过logistic_map1、logistic_map2进行8×len_num1次迭代,记录ye,ze,通过rn(yn,zn)获得长度为len_num1的ensequenceindex_i1;当unmatch_l《4时,实施(a),接着实施(d),(d)中len_num1取unmatch_l+2,将前一个压缩编码的compress_byte1加密并输出cipherbyteindex_i3,cipherbyteindex_i3=compress_byte1 xor ensequenceindex_i1其中xor表示异或运算。接着将后续编码结果输出,再将unmatch_l个unmatch_ck加密。[0055]cipherbyteindex_i3=unmatch_ck xor ensequenceindex_i1将cipherbyteindex_i3输出,最后将结束编码的第一个字节与ensequenceindex_i1进行异或操作加密,输出结束编码;当4=《unmatch_l《19时, 实施(d),(d)中len_num1取unmatch_l+3,cipherbyteindex_i3=compress_byte1 xor ensequenceindex_i1将cipherbyteindex_i3输出,接着将后续编码结果输出,实施(b),cipherbyteindex_i3=unmatch_b1 xor ensequenceindex_i1将cipherbyteindex_i3输出,cipherbyteindex_i3=unmatch_ck xor ensequenceindex_i1将cipherbyteindex_i3输出,最后将结束编码的第一个字节与ensequenceindex_i1进行异或操作加密,输出结束编码;当19=《unmatch_l时,实施(c),接着实施(d),(d)中len_num1取unmatch_l+j+2cipherbyteindex_i3=compress_byte1 xor ensequenceindex_i1将cipherbyteindex_i3输出,接着将后续编码结果输出;cipherbyteindex_i3=unmatch_bj xor ensequenceindex_i1将cipherbyteindex_i3输出,cipherbyteindex_i3=unmatch_ck xor ensequenceindex_i1将cipherbyteindex_i3输出,最后将结束编码的第一个字节与ensequenceindex_i1进行异或操作加密,输出结束编码;lce_step_06、数据匹配成功时,首先进行新字符长度编码,接着输出新字符,依据unmatch_l的取值范围将unmatch_l记录到unmatch_bj中;新字符长度编码规则:(a)将unmatch_l记录到上个压缩编码格式的预留的两比特位中;(b)将unmatch_l-3记录到unmatch_b1中;(c)将unmatch_b1记录为0,令l1=18,l2=unmatch_l-l1;若l2=《255,直接将l2记录到unmatch_b2中结束新字符长度编码;若l2》255,将unmatch_b2记录为0,令l3=l2-255,接着判断l3与255的大小关系,按上述方式记录直到ld_val=《255时,将ld_val记录到unmatch_bj中结束新字符长度编码;生成ensequenceindex_i1方法:(d)将ye,ze通过logistic_map1、logistic_map2进行8×len_num1次迭代,记录ye,ze,通过rn(yn,zn)来生成长度为len_num1的ensequenceindex_i1;当unmatch_l《4时,实施(a),接着实施(d),(d)中len_num1取unmatch_l+1,将前一个压缩编码的compress_byte1加密并输出cipherbyteindex_i3,cipherbyteindex_i3=compress_byte1 xor ensequenceindex_i1接着将后续编码结果输出,再将unmatch_l个unmatch_ck加密,cipherbyteindex_i3=unmatch_ck xor ensequenceindex_i1将cipherbyteindex_i3输出,计算重复字符串的offset和len,按lzo压缩格式编码,转到lce_step_07;当4=《unmatch_l《19时,实施(d),(d)中len_num1取unmatch_l+2,cipherbyteindex_i3=compress_byte1 xor ensequenceindex_i1将cipherbyteindex_i3输出,接着将后续编码结果输出,实施(b),cipherbyteindex_i3=unmatch_b1 xor ensequenceindex_i1将cipherbyteindex_i3输出,cipherbyteindex_i3=unmatch_ck xor ensequenceindex_i1将cipherbyteindex_i3输出,计算重复字符串的offset和len,按lzo压缩格式编码,转到lce_step_07;当19=《 unmatch_l时,实施(c),接着实施(d),(d)中len_num1取unmatch_l+j+1,cipherbyteindex_i3=compress_byte1 xor ensequenceindex_i1将cipherbyteindex_i3输出,接着将后续编码结果输出,cipherbyteindex_i3=unmatch_bj xor ensequenceindex_i1将cipherbyteindex_i3输出,cipherbyteindex_i3=unmatch_ck xor ensequenceindex_i1将cipherbyteindex_i3输出,计算重复字符串的offset和len,按lzo压缩格式编码,转到lce_step_07;lce_step_07、判断数据是否处理完成:若未完成则回到lce_step_04;若完成,将ye,ze通过logistic_map1、logistic_map2进行16次迭代,通过rn(yn,zn)获得ensequenceindex_i1,cipherbyteindex_i3=compress_byte1 xor ensequenceindex_i1将cipherbyteindex_i3输出,接着将后续编码结果输出,最后将结束编码的第一个字节与ensequenceindex_i1进行异或操作加密,输出结束编码。[0056]实例4:lzo_chaosdecrypt。[0057]如图3所示是本发明的lzo_chaosdecrypt流程:lcd_step_01、将密钥key(y0,u1,z0,u2,m) 输入到伪随机数发生器中迭代m次,记录ye,ze即第m次迭代产生的迭代值;lcd_step_02、生成desequenceindex_i2方法:(a)将ye,ze通过logistic_map1、logistic_map2进行8×len_num2次迭代,记录ye,ze,通过rn(yn,zn)来生成desequenceindex_i2,首先实施(a),(a)中len_num2取值1,将下一个密文字节与desequenceindex_i2进行异或操作解密得到cvalue,cvalue表示每一步解码过程中第一个字节的编码值;detext index_i2= cipherbyteindex_i3 xor desequenceindex_i2其中detext index_i2表示为第index_i2个字节的明文,当前编码值即为cvalue,按照编码的规则解析cvalue:若0=《cvalue=《15,则对应的是未匹配成功的新字符格式:cvalue≠0,则unmatch_l=cvalue+3,实施(a),(a)中len_num2取值unmatch_l,将后续unmatch_l个密文字节与desequenceindex_i2进行异或操作解密,detext index_i2= cipherbyteindex_i3 xor desequenceindex_i2输出detext index_i2,转到lcd_step_03;cvalue=0,即unmatch_b1=0,则unmatch_l》18,令l1=18,实施(a),(a)中len_num2取值8,将下一个密文字节与desequenceindex_i2进行异或操作解密,unmatch_b2= cipherbyteindex_i3 xor desequenceindex_i2若unmatch_b2≠0,则unmatch_l=l1+unmatch_b2,实施(a),(a)中len_num2取值unmatch_l,将后续unmatch_l个密文字节与desequenceindex_i2进行异或操作解密,detext index_i2= cipherbyteindex_i3 xor desequenceindex_i2输出detext index_i2,转到lcd_step_03;若unmatch_b2=0,令l2=l1+255,实施(a),(a)中len_num2取值8,再将下一个密文字节与desequenceindex_i2进行异或操作解密,依据上述方式直到计算出unmatch_l的值,实施(a),(a)中len_num2取值unmatch_l,将后续unmatch_l个密文字节与desequenceindex_i2进行异或操作解密,detext index_i2= cipherbyteindex_i3 xor desequenceindex_i2输出detext index_i2,转到lcd_step_03;若15《cvalue=《255,则对应的是lzo的五种压缩格式:根据cvalue解析其编码格式,按照编码规则解析offset和len,倒数第二个字节后2比特值为unmatch_l:若unmatch_l=0,则直接依据offset和len及已输出的数据解码输出;若unmatch_l≠0,依据offset和len及已输出的数据解码输出,实施(a),(a)中len_num2取值unmatch_l,将之后unmatch_l个密文字节与desequenceindex_i2进行异或操作解密并输出,detext index_i2= cipherbyteindex_i3 xor desequenceindex_i2若解析出的offset为0,则该编码为结束编码;lcd_step_03、未解析出结束编码则重复lcd_step_02直到解析到结束编码为止,最终得到的输出结果为原始数据。[0058]最后应说明的是:以上实例仅用以说明本发明的技术方法,而非对其限制;尽管参照前述实例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实例技术方案的精神和范围。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部