CN115442024A - 基于混沌的MapReduce数据压缩的信息保护方法 - Google Patents
基于混沌的MapReduce数据压缩的信息保护方法 Download PDFInfo
- Publication number
- CN115442024A CN115442024A CN202211080542.5A CN202211080542A CN115442024A CN 115442024 A CN115442024 A CN 115442024A CN 202211080542 A CN202211080542 A CN 202211080542A CN 115442024 A CN115442024 A CN 115442024A
- Authority
- CN
- China
- Prior art keywords
- index
- unmatch
- compression
- value
- lzo
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000013144 data compression Methods 0.000 title claims abstract description 10
- 238000007906 compression Methods 0.000 claims abstract description 103
- 230000006835 compression Effects 0.000 claims abstract description 98
- 230000000739 chaotic effect Effects 0.000 claims abstract description 62
- 230000008569 process Effects 0.000 claims abstract description 38
- 238000012545 processing Methods 0.000 claims abstract description 36
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 31
- 238000004364 calculation method Methods 0.000 claims abstract description 7
- 238000013507 mapping Methods 0.000 claims description 38
- 101100517651 Caenorhabditis elegans num-1 gene Proteins 0.000 claims description 14
- 230000006837 decompression Effects 0.000 claims description 11
- 230000008859 change Effects 0.000 claims description 2
- 230000009466 transformation Effects 0.000 claims 1
- 238000013461 design Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005291 chaos (dynamical) Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/001—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using chaotic signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Bioethics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供一种基于混沌的MapReduce数据压缩的信息保护方法,具体为:1、在LZO压缩算法中实现重复字符串搜索匹配策略的哈希方法;2、将混沌流加密过程引入到压缩过程中,在MapReduce中实现LZO压缩数据加密的方法。本发明通过哈希方法有效地提高LZO压缩算法的压缩效率,同时提供加密关键信息以保证隐私数据的安全,解决了MapReduce数据处理过程中的中间结果由于未加密而缺乏安全性问题;防止非法用户通过截取MapReduce计算的中间结果所导致的隐私数据泄露问题,有效地解决了现有加密算法中对MapReduce任务时间性能影响过大的问题;本发明实现了Hadoop中对隐私数据的保护。
Description
技术领域
本发明涉及数据压缩和信息安全领域,尤其涉及一种基于混沌的MapReduce数据压缩的信息保护方法。
背景技术
在大数据平台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作业处理的性能。
混沌密码学具有简单高效的优势,它是将混沌理论与加密方法相结合的一种加密技术。Logistic映射、Tent映射是混沌理论中非常经典的模型,在混沌密码学中通过对模型的不断迭代从而产生复杂的混沌序列,所产生的序列是非周期性不收敛的,具有伪随机的特性、对初始条件的极度敏感以及不可预测等特性,无论初始条件发生多么细小变化也会使得到的序列发生天翻地覆的变化,这些特性非常适合于加密技术。混沌加密算法有很多种设计方法,其中一种设计方法是应用混沌系统来设计混沌流密码算法,利用混沌系统来构造密钥流发生器,通过将密钥(混沌系统的初始条件、控制参数以及迭代次数)输入密钥流发生器生成密钥流直接用于加密明文,与明文做异或运算从而产生密文。这种混沌流加密的优势在于设计简单、加解密速度占优。但是由于混沌系统产生的迭代值是在[0,1]区间上的实数,现有的混沌流密码技术通过一个阈值函数从混沌轨道中提取随机二进制比特序列,且此方法所提取的二进制比特序列有良好的随机性。
MapReduce是一种典型的大数据处理框架,数据在Hadoop平台上是在不同节点上进行计算处理以及存储,使用LZO压缩算法虽然可以提升任务处理的性能,但是数据在不同节点之间交互存在着安全威胁,一个MapReduce作业的Map端输出的中间结果会写到运行该Map 任务节点的本地磁盘并通过网络传输到对应的Reduce任务节点,未经授权的客户端可以通过观察访问MapReduce作业过程中Map端输出的未经加密的中间结果从而获取用户的隐私数据,数据在任务处理过程中应该综合考虑到数据的高效传输问题和防止数据泄露的问题。
发明内容
(一) 要解决的技术问题
由于MapReduce作业处理过程的中间结果存储在Map 任务节点的本地磁盘并通过网络传输到对应的Reduce任务节点,使用LZO压缩算法可以提高中间结果在磁盘和网络上的传输速率,但是由于数据未加密而存在隐私泄露的问题。本发明要解决的主要技术问题是:加密算法对任务处理过程中的性能具有较大的影响,以及LZO压缩算法压缩率较低的问题。
(二) 技术方案
为了解决在大数据平台下LZO压缩算法压缩率较低和隐私数据的安全保护问题,本发明提供了一种基于混沌的MapReduce数据压缩的信息保护方法,包括:
Part_1:在LZO压缩算法中实现重复字符串搜索匹配策略的哈希方法;
Part_2:将混沌流加密过程引入到压缩过程中,在MapReduce中实现LZO压缩加密方法。
以下对各部分进行详细说明。
Part_1部分为了解决LZO压缩算法压缩率较低的问题,本发明首先提出了一种适用于LZO压缩算法重复字符串搜索匹配策略的哈希方法,包括:
LZO压缩算法通过逐字节扫描的形式:每次扫描四个字节。哈希函数具体步骤为:将四个字节与素数进行相乘运算并将结果相加,将得到的结果再进行一次变换,结果作为混沌映射的初始条件通过混沌映射迭代的方式得到哈希地址,通过建立哈希表的方式实现快速重复字符串搜索匹配,通过二次哈希的方式处理第一次产生的冲突,若二次哈希之后仍然存在冲突则放弃搜索匹配。
LZO压缩算法重复字符串搜索匹配策略的哈希方法的数据结构和函数过程定义如下:
定义函数TentHash表示LZO压缩算法重复字符串搜索匹配策略的哈希方法。
用于计算哈希地址的混沌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记为第二次计算的哈希地址。
Offset记为重复字符串的匹配距离。len记为重复字符串的匹配长度。
NumVal01_Hash记为哈希运算初步处理过程中的素数,初始值设置为31。
以上对本发明中使用的数据结构和函数过程进行了定义和描述,下面对定义的函数TentHash进行详细说明,具体为:
TH_Step_01、正在处理的四个字节与NumVal01_Hash进行运算,将第一个字节值与NumVal01_Hash进行相乘运算并和下一个字节值相加,得到的结果再和NumVal01_Hash进行相乘运算并和下一个字节值相加,依次处理四个字节;
TH_Step_02、混沌的Tent映射将初步处理的结果转换为Tent映射的初始条件,在[0,1]区间中形成混沌映射的初值x0;
TH_Step_03、选取混沌映射的控制参数u为0.499,将混沌映射进行10次迭代得到迭代值xadd_i1;
TH_Step_04、再将迭代值xadd_i1变换到哈希词典的范围内取整得到本次字符串匹配的哈希地址addr1;
TH_Step_05、当前正在处理的字符串与词典中该哈希地址addr1所存储的字符串进行匹配:
如果存储的值为空,将当前字符串扩充到词典中,然后扫描之后的数据;
如果存储的值不为空:
(I)若字符串匹配成功,则开始计算重复字符串的Offset和len,依据字符串的Offset和len以及LZO的五种压缩格式进行压缩编码;
(II)若存储的值不为空,且字符串匹配失败,意味着产生第一次冲突,将xadd_i1通过Tent映射再进行1次迭代得到xadd_i2;
TH_Step_06、将xadd_i2再次变换到哈希词典的范围内取整得到addr2;
TH_Step_07、当前正在处理的字符串与词典中哈希地址addr2所存储的字符串进行第二次匹配:
如果第二次字符串匹配未产生冲突,存储的值为空,则将当前字符串扩充到词典中,然后扫描之后的数据;
如果第二次字符串匹配未产生冲突,存储的值不为空且字符串匹配成功,将匹配的重复字符串计算Offset和len,依据字符串的Offset和len以及LZO的五种压缩格式进行压缩编码;若第二次字符串匹配产生冲突,则放弃本次搜索匹配,扫描之后的数据。
Part_1描述完毕。
Part_2部分为了解决MapReduce作业处理过程的中间结果由于未加密而导致的数据隐私泄露问题,以及解决使用数据加密算法使整个任务处理过程的时间复杂度过大的问题;基于此目的,本发明提供一种可用于MapReduce的LZO压缩加密方法,将混沌流加密过程引入到压缩过程中,具体包括:
在Map任务完成之后,将Map端输出的中间结果使用LZO压缩加密方法进行压缩加密处理,将处理后的数据存储在Map任务节点的本地磁盘等待Reduce任务处理数据;
在开始Reduce任务之前通过LZO解密解压缩方法将Map的中间结果解密解压缩为原始数据,之后再进行Reduce任务;
LZO压缩加密方法、LZO解密解压缩方法的数据结构和函数过程定义如下:
定义函数LZO_ChaosEncrypt表示LZO压缩加密过程。
定义函数LZO_ChaosDecrypt表示LZO解密解压缩过程。
伪随机数发生器选取两个混沌Logistic映射分别记为Logistic_Map1、Logistic_Map2,用于生成混沌加密序列,定义如下:
Logistic_Map1:yn+1=u1×yn×(1-yn),0<yn<1,0<u1<=4;
Logistic_Map2:zn+1=u2×zn×(1-zn),0<zn<1,0<u2<=4;
其中yn、zn分别表示混沌Logistic_Map1、Logistic_Map2映射的第n次迭代值。y0、z0分别为Logistic_Map1、Logistic_Map2的初始值。u1、u2分别为Logistic_Map1、Logistic_Map2的控制参数。
在混沌二进制加密/解密序列生成过程中,Logistic_Map1、Logistic_Map2本轮最后一次迭代值记为ye、ze。
阈值函数Rn(yn,zn)用于生成随机混沌二进制序列,定义如下:
Rn(yn,zn)=1,如果yn<zn;
Rn(yn,zn)=0,如果yn>=zn。
其中Rn表示第n个随机混沌二进制序列。未匹配成功的新字符长度记为Unmatch_L。
新字符记为Unmatch_Ck,1=< k <=Unmatch_L,k表示为第k个新字符。
新字符按长度编码记为Unmatch_Bj,j表示编码的第j个字节,j为整数。
新字符长度编码过程中当前新字符长度与字节编码最大值的差值记为Ld_val,d_val=1,2,…。压缩编码的首字节记为Compress_byte1。
定义密钥Key(y0,u1,z0,u2,m),其中m为混沌Logistic_Map1、Logistic_Map2映射的迭代次数。生成混沌二进制加密序列过程中的加密序列字节长度记为Len_Num1。生成混沌二进制解密序列过程中的解密序列字节长度记为Len_Num2。
以字节为单位的混沌二进制加密序列:EnSequenceindex_i1表示第index_i1个字节的混沌二进制加密序列,1<=index_i1<=Len_Num1。密文字节序列:CipherByteindex_i3表示为第index_i3个密文字节,index_i3是整数。
以字节为单位的混沌二进制解密序列:DeSequenceindex_i2表示第index_i2个字节的混沌二进制解密序列,1<= index_i2<=Len_Num2。
以下对定义的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直到数据处理完成,最后结束编码加密并输出。
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进行异或操作并输出。
(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直到解析到结束编码,最终得到的输出结果为原始数据。
(三) 有益效果
本发明的有益效果体现在如下两个方面:
一方面,混沌Tent映射的优势是计算简单、速度快,其产生的混沌序列分布比较均匀,利用混沌Tent映射的优势以及伪随机性、遍历性等特性构造哈希函数,本发明提出的重复字符串搜索匹配策略的哈希方法具有如下优点:
1. 计算速度快,通过哈希函数计算所得的哈希值具有在哈希表中更好的分布,哈希值的分布更加均匀。
2. 哈希所产生的第一次冲突和第二次冲突都具有大幅度的减少:
第一次冲突的减少可以有效地减少处理冲突时二次哈希值计算和字符串匹配的时间。
第二次冲突的减少可以使字符串因两次搜索匹配失败而放弃搜索匹配的数量减少,通过两次查找匹配的方式可以匹配成功的字符串增多,可以提高算法的压缩率,在提高压缩率的同时,对LZO压缩加密方法的性能产生良好的影响,更进一步地减少加密的数据量。
另一方面,依据本发明的技术方案,在MapReduce处理数据流程中调用LZO压缩加密方法保证数据处理过程中产生的中间结果的安全,与现有的压缩和加密技术相比,将混沌流加密算法引入到数据压缩过程中,减少了加密的数据量,通过加密关键数据保证了隐私数据的安全性,同时有效地保证对数据的加密解密的效率,减小加密算法对MapReduce的性能的影响。
附图说明
图1为基于混沌的MapReduce数据压缩的信息保护方法流程图。
图2为MapReduce的LZO压缩加密流程图。
图3为MapReduce的LZO解密解压缩流程图。
具体实施方式
为了提升MapReduce数据处理过程中的中间结果的安全性并减少加密算法在MapReduce过程中所带来的较大的时间复杂度的影响,本发明提出一种LZO压缩加密方法;本发明采用传统的LZO压缩算法,将混沌流加密方法引入到压缩流程中,在数据压缩的同时进行加密过程,同时提出一种可提高算法压缩率的重复字符串搜索匹配策略的哈希方法,在提高压缩率的同时也有效地提高了混沌流加密在时间上的性能。为了清楚地说明本发明的技术方案,下面结合附图和实例对本发明的具体实施方式进一步详细地阐述,以下实例用于说明本发明,但不能用来限制发明的范围。
实例1:函数TentHash。
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。
TH_Step_02、将F_Result变换到[0,1]区间作为混沌Tent映射的初值x0。
TH_Step_03、将初值x0代入混沌Tent映射,并将混沌Tent映射迭代10次得到xadd_i1,混沌Tent映射的参数u选取0.499。
TH_Step_04、第一次计算的哈希地址:
addr1=floor(maxSize×xadd_i1)
其中floor表示向下取整函数,maxSize表示哈希词典的空间大小。
TH_Step_05、将当前字符串和词典中该哈希地址addr1所存储的字符串进行第一次匹配:
若存储的值为空则更新词典,将当前字符串扩充到词典中,结束本次字符串搜索匹配。
若存储的值不为空,且字符串匹配成功,即第一次匹配成功,结束本次字符串搜索匹配,计算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) 。
TH_Step_07、将当前字符串和词典中该哈希地址addr2所存储的字符串进行第二次匹配:
若存储的值为空则更新词典,将当前字符串扩充到词典中,结束本次字符串搜索匹配。
若存储的值不为空,且字符串匹配成功,即第二次匹配成功,结束本次字符串搜索匹配,计算Offset和len,进行接下来的压缩编码。
若存储的值不为空,且字符串匹配不成功,即第二次匹配失败,则放弃匹配搜索,读取接下来的数据进行匹配搜索。
实例2:LZO_ChaosEncrypt、LZO_ChaosDecrypt对MapReduce中间结果的数据处理过程。
在Map任务完成之后,将Map端输出的中间结果使用LZO_ChaosEncrypt进行压缩加密处理,将处理后的数据存储在Map任务节点的本地磁盘等待Reduce任务处理数据;
在开始Reduce任务之前通过LZO_ChaosDecrypt将Map的中间结果解密解压缩为原始数据,之后再进行Reduce任务。
实例3:LZO_ChaosEncrypt。
如图2所示是本发明的LZO_ChaosEncrypt流程:
LCE_Step_01、将密钥Key(y0,u1,z0,u2,m) 输入到伪随机数发生器中迭代m次,记录ye,ze即第m次迭代产生的迭代值。
LCE_Step_02、对数据的最开始的前四个字节不做压缩处理,当作新字符存储起来并对新字符个数计数,令Unmatch_L=4;
LCE_Step_03、接着读取后续的四个字节分别为K0,K1,K2,K3,进行哈希运算计算出哈希地址后更新字典,将第一个字节K0当作新字符进行存储并将Unmatch_L+1;
addr=TentHash(K0,K1,K2,K3)
addr表示前四个字节的哈希地址。
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。
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加密。
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+2
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输出,最后将结束编码的第一个字节与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进行异或操作加密,输出结束编码。
实例4:LZO_ChaosDecrypt。
如图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直到解析到结束编码为止,最终得到的输出结果为原始数据。
最后应说明的是:以上实例仅用以说明本发明的技术方法,而非对其限制;尽管参照前述实例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实例技术方案的精神和范围。
Claims (1)
1.一种基于混沌的MapReduce数据压缩的信息保护方法,其特征在于,包括:
Part_1:在LZO压缩算法中实现重复字符串搜索匹配策略的哈希方法,
Part_2:将混沌流加密过程引入到压缩过程中,在MapReduce中实现LZO压缩加密方法;
Part_1具体为:
LZO压缩算法通过逐字节扫描的形式:每次扫描四个字节;哈希函数具体步骤为:将四个字节与素数进行相乘运算并将结果相加,将得到的结果再进行一次变换,结果作为混沌映射的初始条件通过混沌映射迭代的方式得到哈希地址,通过建立哈希表的方式实现快速重复字符串搜索匹配,通过二次哈希的方式处理第一次产生的冲突,若二次哈希之后仍然存在冲突则放弃搜索匹配;
LZO压缩算法重复字符串搜索匹配策略的哈希方法的数据结构和函数过程定义如下:
定义函数TentHash表示LZO压缩算法重复字符串搜索匹配策略的哈希方法,用于计算哈希地址的混沌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记为第二次计算的哈希地址;Offset记为重复字符串的匹配距离;len记为重复字符串的匹配长度;
NumVal01_Hash记为哈希运算初步处理过程中的素数,初始值设置为31;
函数TentHash具体为:
TH_Step_01、当前处理的四个字节与NumVal01_Hash进行运算,将第一个字节值与NumVal01_Hash进行相乘运算并和下一个字节值相加,得到的结果再和NumVal01_Hash进行相乘运算并和下一个字节值相加,依次处理四个字节;
TH_Step_02、混沌Tent映射将初步处理的结果转换为Tent映射的初始条件,在[0,1]区间中形成混沌映射的x0;
TH_Step_03、选取混沌Tent映射的控制参数u为0.499,将混沌Tent映射进行10次迭代得到迭代值xadd_i1;
TH_Step_04、再将迭代值xadd_i1变换到哈希词典的范围内取整得到本次字符串匹配的哈希地址addr1;
TH_Step_05、当前正在处理的字符串与词典中哈希地址addr1所存储的字符串进行匹配:
如果存储的值为空,将当前字符串扩充到词典中,然后扫描之后的数据;
如果存储的值不为空:
TH_Step_05_p1、若字符串匹配成功,则开始计算重复字符串的Offset和len,依据字符串的Offset和len以及LZO的五种压缩格式进行压缩编码;
TH_Step_05_p2、若存储的值不为空,且字符串匹配失败,第一次冲突产生,将xadd_i1通过Tent映射再进行一次迭代得到xadd_i2;
TH_Step_06、将xadd_i2再次变换到哈希词典的范围内取整得到addr2;
TH_Step_07、当前正在处理的字符串与词典中哈希地址addr2所存储的字符串进行第二次匹配:
如果第二次字符串匹配未产生冲突,存储的值为空,则将当前字符串扩充到词典中,然后扫描后面的数据;
如果第二次字符串匹配未产生冲突,存储的值不为空且字符串匹配成功,将匹配的重复字符串计算Offset和len,依据字符串的Offset和len以及LZO的五种压缩格式进行压缩编码;若第二次字符串匹配产生冲突,则放弃本次搜索匹配,扫描后面的数据;
Part_1描述结束;
Part_2具体为:
在Map任务完成之后,将Map端输出的中间结果使用LZO压缩加密方法进行压缩加密处理,将处理后的数据存储在Map任务节点的本地磁盘等待Reduce任务处理数据;
在开始Reduce任务之前通过LZO解密解压缩方法将Map的中间结果解密解压缩为原始数据,然后再进行Reduce任务;
LZO压缩加密方法、LZO解密解压缩方法的数据结构和函数过程定义如下:
定义函数LZO_ChaosEncrypt表示LZO压缩加密过程;
定义函数LZO_ChaosDecrypt表示LZO解密解压缩过程;
伪随机数发生器选取二个混沌Logistic映射分别记为Logistic_Map1、Logistic_Map2,用于生成混沌加密序列,定义如下:
Logistic_Map1:yn+1=u1×yn×(1-yn),0<yn<1,0<u1<=4;
Logistic_Map2:zn+1=u2×zn×(1-zn),0<zn<1,0<u2<=4;
其中yn、zn分别表示混沌Logistic_Map1、Logistic_Map2映射的第n次迭代值;y0、z0分别为Logistic_Map1、Logistic_Map2的初始值;u1、u2分别为Logistic_Map1、Logistic_Map2的控制参数;
在混沌二进制加密/解密序列生成过程中,Logistic_Map1、Logistic_Map2本轮最后一次迭代值记为ye、ze;
阈值函数Rn(yn,zn)用于生成随机混沌二进制序列,定义如下:
Rn(yn,zn)=1,如果yn<zn;
Rn(yn,zn)=0,如果yn>=zn;
其中Rn表示第n个随机混沌二进制序列;未匹配成功的新字符长度记为Unmatch_L;
新字符记为Unmatch_Ck,1=< k <=Unmatch_L,k表示为第k个新字符;
新字符按长度编码记为Unmatch_Bj,j表示编码的第j个字节,j为整数;
新字符长度编码过程中当前新字符长度与字节编码最大值的差值记为Ld_val,d_val=1,2,…;压缩编码的首字节记为Compress_byte1;
定义密钥Key(y0,u1,z0,u2,m),其中m为混沌Logistic_Map1、Logistic_Map2映射的迭代次数;生成混沌二进制加密序列过程中的加密序列字节长度记为Len_Num1;生成混沌二进制解密序列过程中的解密序列字节长度记为Len_Num2;
以字节为单位的混沌二进制加密序列:EnSequenceindex_i1表示第index_i1个字节的混沌二进制加密序列,1<=index_i1<=Len_Num1;密文字节序列:CipherByteindex_i3表示为第index_i3个密文字节,index_i3是整数;
以字节为单位的混沌二进制解密序列:DeSequenceindex_i2表示第index_i2个字节的混沌二进制解密序列,1<=index_i2<=Len_Num2;
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直到数据处理完成,最后结束编码加密并输出;
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进行异或操作解密,判断编码值范围:
LCD_Step_02_p1、如果编码值在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进行异或操作并输出;
LCD_Step_02_p2、如果编码值不在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直到解析到结束编码,最终得到的输出结果为原始数据;
Part_2描述结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211080542.5A CN115442024B (zh) | 2022-09-05 | 2022-09-05 | 基于混沌的MapReduce数据压缩的信息保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211080542.5A CN115442024B (zh) | 2022-09-05 | 2022-09-05 | 基于混沌的MapReduce数据压缩的信息保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115442024A true CN115442024A (zh) | 2022-12-06 |
CN115442024B CN115442024B (zh) | 2024-05-31 |
Family
ID=84247326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211080542.5A Active CN115442024B (zh) | 2022-09-05 | 2022-09-05 | 基于混沌的MapReduce数据压缩的信息保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115442024B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115842621A (zh) * | 2023-02-21 | 2023-03-24 | 安徽汇迈信息科技有限公司 | 一种基于大数据与云边协同的智慧医疗系统 |
CN117111845A (zh) * | 2023-08-18 | 2023-11-24 | 中电云计算技术有限公司 | 一种数据压缩方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07104969A (ja) * | 1993-09-30 | 1995-04-21 | Fujitsu Ltd | データ圧縮方法および装置並びにデータ復元方法および装置 |
CN102184205A (zh) * | 2011-04-28 | 2011-09-14 | 哈尔滨工业大学 | 基于可扩展精度混沌哈希的多模式串匹配算法 |
CN102904717A (zh) * | 2012-10-13 | 2013-01-30 | 华南理工大学 | 利用数据压缩编码的混沌同步加密解密方法及其装置 |
CN106301766A (zh) * | 2016-11-14 | 2017-01-04 | 成都信息工程大学 | 一种基于混沌系统的单向加密方法 |
CN112422265A (zh) * | 2020-09-29 | 2021-02-26 | 浙江想能睡眠科技股份有限公司 | 一种避免语音信号被篡改的语音控制方法及控制系统 |
CN113297619A (zh) * | 2021-05-28 | 2021-08-24 | 哈尔滨理工大学 | 基于可扩展精度双混沌哈希和RSA的Mysql敏感数据保护系统 |
CN114418066A (zh) * | 2022-01-10 | 2022-04-29 | 东南大学 | 基于混沌神经网络和增强迭代结构的带密钥哈希函数构建方法 |
-
2022
- 2022-09-05 CN CN202211080542.5A patent/CN115442024B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07104969A (ja) * | 1993-09-30 | 1995-04-21 | Fujitsu Ltd | データ圧縮方法および装置並びにデータ復元方法および装置 |
CN102184205A (zh) * | 2011-04-28 | 2011-09-14 | 哈尔滨工业大学 | 基于可扩展精度混沌哈希的多模式串匹配算法 |
CN102904717A (zh) * | 2012-10-13 | 2013-01-30 | 华南理工大学 | 利用数据压缩编码的混沌同步加密解密方法及其装置 |
CN106301766A (zh) * | 2016-11-14 | 2017-01-04 | 成都信息工程大学 | 一种基于混沌系统的单向加密方法 |
CN112422265A (zh) * | 2020-09-29 | 2021-02-26 | 浙江想能睡眠科技股份有限公司 | 一种避免语音信号被篡改的语音控制方法及控制系统 |
CN113297619A (zh) * | 2021-05-28 | 2021-08-24 | 哈尔滨理工大学 | 基于可扩展精度双混沌哈希和RSA的Mysql敏感数据保护系统 |
CN114418066A (zh) * | 2022-01-10 | 2022-04-29 | 东南大学 | 基于混沌神经网络和增强迭代结构的带密钥哈希函数构建方法 |
Non-Patent Citations (3)
Title |
---|
刘嘉辉;颜景斌;宋大华;: "基于混沌的网络通信数据加密方法", 哈尔滨理工大学学报, no. 01, 28 February 2007 (2007-02-28) * |
李太勇;吴江;周敏;: "一种基于无损压缩和混沌序列的文本加密算法", 网络安全技术与应用, no. 11, 15 November 2008 (2008-11-15) * |
胡勇辉;李星野;: "基于双混沌互扰系统的图像加密算法", 计算机应用, no. 11, 1 November 2009 (2009-11-01) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115842621A (zh) * | 2023-02-21 | 2023-03-24 | 安徽汇迈信息科技有限公司 | 一种基于大数据与云边协同的智慧医疗系统 |
CN115842621B (zh) * | 2023-02-21 | 2023-04-18 | 安徽汇迈信息科技有限公司 | 一种基于大数据与云边协同的智慧医疗系统 |
CN117111845A (zh) * | 2023-08-18 | 2023-11-24 | 中电云计算技术有限公司 | 一种数据压缩方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115442024B (zh) | 2024-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ball et al. | Garbling gadgets for boolean and arithmetic circuits | |
CN115442024B (zh) | 基于混沌的MapReduce数据压缩的信息保护方法 | |
CN113297606B (zh) | 基于多混沌与dna运算的彩色量子图像加密及解密方法 | |
KR100420552B1 (ko) | 데이타의 암호화 방법 및 장치 | |
US7221756B2 (en) | Constructions of variable input length cryptographic primitives for high efficiency and high security | |
US6674908B1 (en) | Method of compression of binary data with a random number generator | |
Chen et al. | Compression-unimpaired batch-image encryption combining vector quantization and index compression | |
US7783046B1 (en) | Probabilistic cryptographic key identification with deterministic result | |
US20120134490A1 (en) | Selective Data Encryption and Decryption Method and Apparatus | |
WO1997010659A1 (fr) | Procede et dispositif de compression et de chiffrement de donnees | |
JP2005504348A (ja) | データセキュリティーの暗号体系 | |
CN116471007A (zh) | 基于云平台的网络信息加密传输方法 | |
CN105704500A (zh) | 一种新的基于混沌的图像无损压缩加密联合算法 | |
CN106230578B (zh) | 一种基于加权处理的三维Lorenz映射控制的二进制安全算术编码方法 | |
De et al. | Near-optimal extractors against quantum storage | |
JP2005217842A (ja) | データ圧縮方法、データ復元方法及びそのプログラム | |
CN115659409A (zh) | 一种金融资产交易数据安全存储方法 | |
CN112769545A (zh) | 基于相邻像素约瑟夫变换和Mealy状态机的图像加密方法 | |
Cao et al. | Separable Reversible Data Hiding in Encrypted VQ‐Encoded Images | |
CN116319117B (zh) | 一种网络安全信息数据的实时分析监控方法 | |
CN107493164B (zh) | 一种基于混沌系统的des加密方法和系统 | |
Sagheer et al. | Ensure security of compressed data transmission | |
CN115134471A (zh) | 图像加密、解密方法以及相关设备 | |
CN105704499A (zh) | 一种基于ChaCha20和CCSDS的选择性卫星图像压缩加密方法 | |
Lee et al. | Forgery and key recovery attacks on PMAC and mitchell’s TMAC variant |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |