CN102970530B - 基于压缩编码的gif图像加密方法 - Google Patents
基于压缩编码的gif图像加密方法 Download PDFInfo
- Publication number
- CN102970530B CN102970530B CN201210407242.3A CN201210407242A CN102970530B CN 102970530 B CN102970530 B CN 102970530B CN 201210407242 A CN201210407242 A CN 201210407242A CN 102970530 B CN102970530 B CN 102970530B
- Authority
- CN
- China
- Prior art keywords
- dictionary
- gif
- image
- value
- variable
- 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.)
- Active
Links
Landscapes
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
本发明公开了一种基于压缩编码的GIF图像加密方法,属于数字图像加密领域,该算法通过选择GIF图像中的颜色列表和LZW压缩编码数据进行加密。对颜色列表加密时,利用密钥流对颜色列表中各颜色分量的值进行混淆,从而能够隐藏明文图像颜色索引的信息;对LZW编码数据进行加密时,则根据LZW压缩的特点,选择在字典词条匹配时对编码所用的字典进行置乱,使得置乱算法能够根据明文特性自适应地动态调整加密的强度,具有更好的加密效率和安全性。本发明结合GIF压缩编码设计加密算法,同时考虑了GIF图像颜色索引和图像压缩数据的安全性,并对其分别进行加密,具有较好的安全性。在引入加密操作后对GIF图像压缩效果没有任何影响,并且在引入加密操作后保持了原GIF图像的格式兼容性。
Description
技术领域
本发明属于数字图像加密领域,特别是涉及一种GIF图像加密方法。
背景技术
随着信息技术和网络通信的快速发展和普及,越来越多的图像和其它多媒体信息需要进行存储并在网络上进行传输,由于计算机和网络的自身特点及其广泛存在的安全性漏洞,使得这些多媒体信息可能会被一些别有用心的攻击者获取并加以利用,从而带来各种损失和危害,因此信息安全技术日益受到人们的重视。加密技术是保障信息安全的重要手段,然而,像DES、AES等传统的加密手段存在着一些固有的弱点,比如加密速度不高和没有考虑到待加密的多媒体信息中的冗余信息,利用它们对多媒体信息进行加密尚存在着众多不如人意的地方。因此,目前已有许多研究者针对多媒体信息的格式展开研究,并提出了众多与之相应的加密技术。
现有的专门针对图像数据的加密技术中,主要有基于压缩编码的加密和选择图像加密两种图像加密方式,基于压缩编码的加密方式由于能够将加密和压缩编码这两个原本看似独立的步骤融合到一起,从而可以在单个流程里同时完成数据压缩和数据加密的功能,这种方式不仅简化了图像数据处理的流程,也能够显著提高加密的效率。选择图像加密仅加密图像中的重要数据部分,例如图像空域数据的高位平面或者变换域中的重要系数。因为这些重要数据部分极大的影响了图像内容的呈现,我们可以通过加密少量数据来达到整幅图像的安全性。
在图像加密领域,已有很多适应于真彩图像的加密方法,但针对GIF(Graphics Interchange Format,图像互换格式)等索引格式的加密方法仍不多见,GIF由CompuServe公司于1987年制定,并在1989年推出其增强版本,具有支持文本控制、动画播放等多种特性,其中的图像数据经过LZW编码(Lempel-Ziv-Welch Encoding)压缩,存储时占用空间较小,目前已被广泛应用于万维网中,鉴于GIF应用的广泛性,有必要对其安全性加以考虑。
首先,现在已经有一些针对LZW编码的加密算法,但是现有加密算法都是在LZW编码时有新元素加入到字典中时(即针对当前需要编码的数据,字典中并没有找到相应的匹配项)引入加密操作,但是,LZW编码压缩效果的好坏取决于匹配到字典中数据的次数,如果匹配次数越多,压缩效果越好,另一方面,对于含有大量冗余信息(即可以充分压缩)的数据,其安全性是比较低的,我们在加密时要充分掩盖其明文的冗余信息分布规律;否者,攻击者很可能利用这些冗余信息得到关于明文的信息。对于包含少量冗余信息(即不能大量压缩)的数据,其安全性相对是比较高的,而对数据进行LZW编码的时候,当数据包含大量冗余信息的时候,其字典匹配的次数会增加,反之会减少。因此,现有的基于LZW编码的加密算法并不能根据图像明文数据的统计特性提供相应的加密强度的自适应调整。
其次,目前有些基于LZW编码的加密算法,当引入加密操作以后,会影响到LZW压缩编码的压缩效果,增加了密文的体积。
最后,现有在对GIF图像进行加密的研究上,并没有考虑GIF颜色索引,而GIF颜色索引是GIF图像数据的来源,因此对安全的影响非常大。
因此本领域技术人员致力于开发一种更加安全的GIF图像加密方法,并且在加密的同时不破坏GIF图像压缩的效果。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种更加安全和高效的GIF图像加密方法,并且在加密的同时不破坏GIF图像压缩的效果。
为实现上述目的,本发明提供了一种基于压缩编码的GIF图像加密方法,包括以下步骤:
步骤一、输入GIF明文图像;
步骤二、对GIF图像的颜色列表进行加密或/和对GIF图像的图像数据进行LZW编码加密:
步骤三、输出GIF密文图像;
所述对GIF图像的颜色列表进行加密按以下步骤进行:
设定密钥流为K={Kn∣0<Kn<1},n为正整数;设定GIF图像的颜色列表中各颜色分量为T(x,y),T(x,y)∈[0,255],x、y均为整数且x∈[0,255],y∈[0,2];
将密钥流中的值Kn乘以255后取整,得到Kn′;设定加密后GIF图像的颜色列表为T′(x,y);计算得到加密后GIF图像的颜色列表;
所述对GIF图像的图像数据进行LZW编码加密按以下步骤进行:
S1、初始化字典,对所述字典进行置乱;
S2、读取输入字符,并将该输入字符赋值给前缀字符串ω,直到数据流读完,当数据流读取完时,输出ω在字典中所对应的元素索引值;
S3、判断当前字典中是否存在ωQ,Q为输入字符;当前字典中存在ωQ时,将ωQ的值放入ω的队列清单;当前字典中不存在ωQ时,输出ω在所述字典中所对应的元素索引值;
S4、设定密钥流为K={Kn∣0<Kn<1},n为正整数;设定当前字典中含有L个元素,设定当前匹配的元素索引值为Z,设定一个随机产生的元素索引值为index;当队列清单不为空时,取出队列清单中队首的值赋给Z;计算交换字典中Z和index两个位置的元素值,直到队列清单为空;
S5、设置字符串变量S,初始时所述字符串变量S为空;当有字符串string需要加入到字典中时,判断S是否为空;当S为空时,将string赋值给S;当S不为空时,将S插入到字典中,然后将string赋值给S。
较佳的,所述步骤S1中对所述字典进行置乱按以下步骤进行:
A1、初始化字典,使所述字典包含所有单个字符;
A2、设定当前需要置乱的元素索引为i,将i的值初始化为当前字典中含有的元素数目l;
A3、计算r为随机数;交换字典中i和r两个位置的元素;
A4、计算i′=i-1;当i′≥2时,返回执行步骤A2,否则结束置乱。
较佳的,所述密钥流由分段线性混沌映射迭代(Piecewise Linear ChaoticMap,PLCM)得到,由于利用分段线性混沌映射实现密钥流的产生,实现了根据GIF图像数据的特点设计GIF图像加密算法,能够自适应地动态调整加密的强度,具有较好的加密效率。
进一步的,还包括基于压缩编码的GIF图像解密步骤:
第一步、输入GIF密文图像;
第二步、对GIF图像的颜色列表进行解密或/和对GIF图像的图像数据进行LZW编码解密:
第三步、输出GIF明文图像;
所述对GIF图像的颜色列表进行解密按以下步骤进行:
设定密钥流为K={Kn∣0<Kn<1},n为正整数;设定GIF图像的颜色列表中加密后的各颜色分量为T′(x,y),x、y均为整数且x∈[0,255],y∈[0,2];
将密钥流中的值Kn乘以255后取整,得到Kn′;设定解密后GIF图像的颜色列表为T(x,y),T(x,y)∈[0,255];计算得到解密后GIF图像的颜色列表;
所述对GIF图像的图像数据进行LZW编码解密按以下步骤进行:
B1、初始化字典,对所述字典进行置乱;
B2、读取第一个输入码字,并将该输入码字分别赋值给记录当前码字和上一次读入的码字的变量CODE和OLDcode;所述变量CODE为当前码字的变量,所述变量OLDcode为上一次读入的码字;
B3、在当前字典中找到索引为CODE的元素Q,输出Q并将Q赋值给变量FINchar,所述变量FINchar为用以记录当前输出的最后一个字符的变量;
B4、读取下一个输入码字,并将该输入码字分别赋值给变量CODE和记录当前输入码字的备份的变量INcode;
B5、设置标志变量flag,所述标志变量flag的初始值为false;
B6、判断当前字典中是否存在索引值为CODE的元素;
在当前字典中不存在索引值为CODE的元素时,将所述标志变量flag赋值为true,输出变量FINchar的值,将变量OLDcode赋值给元素索引值CODE,并将字典中OLDcode和FINchar构成的字符串的索引值赋给INcode;
在当前字典中存在前缀字符串ω,能够使得ωQ所对应的索引值为CODE时,则将Q的值压入堆栈,并将前缀字符串ω的索引赋值给CODE,同时设定密钥流为K={Kn∣0<Kn<1},n为正整数;设定当前字典中含有L个元素,ωQ在字典中的元素索引值为Z,设定一个随机产生的元素索引值为index,计算交换字典中Z和index两个位置的元素值;
B7、找到索引值CODE在字典中所对应的元素Q,输出Q并将Q赋值给变量FINchar;
B8、判断堆栈是否为空;当堆栈不为空时,按照后进先出的原则循环输出堆栈顶部的元素;
B9、将(OLDcode,Q)加入当前字典;
B10、判断flag的值,当flag的值为true时,设定当前字典中含有L个元素,(OLDcode,Q)在字典中的索引值为Z,设定一个随机产生的元素索引值为index,计算交换字典中Z和index两个位置的元素值。
B11、将INcode赋值给OLDcode,然后继续执行步骤S4,直到数据流读取完毕。
较佳的,所述步骤B1中对所述字典进行置乱按以下步骤进行:
C1、初始化字典,使所述字典包含所有单个字符;
C2、设定当前需要置乱的元素索引为i,将i的值初始化为当前字典中含有的元素数目len;
C3、计算r为随机数;交换字典中i和r两个位置的元素;
C4、计算i′=i-1;当i′≥2时,返回执行步骤C2,否则结束置乱。
较佳的,所述密钥流由分段线性混沌映射迭代得到。
本发明的有益效果是:本发明结合GIF压缩编码设计加密算法,能够自适应地动态调整加密的强度,具有较好的加密效率,考虑了GIF图像颜色索引和图像数据的安全性,并对其分别进行加密,具有较好的安全性,在引入加密操作后对GIF图像压缩效果没有任何影响,并且在引入加密操作后保持了原GIF图像的格式兼容性。
附图说明
图1是实施例一中基于压缩编码的GIF图像加密方法的流程示意图。
图2是实施例二中基于压缩编码的GIF图像加密方法的流程示意图。
图3是实施例三中基于压缩编码的GIF图像加密方法的流程示意图。
图4是验证本发明采用的原始图像效果图。
图5是验证本发明时利用加密算法加密后的结果。
图6是验证本发明时正常解码后的图像。
图7是加密前明文图像的直方图。
图8是加密后密文图像的直方图。
图9是明文图像的水平方向上两个相邻像素之间的相关性。
图10是明文图像垂直方向上两个相邻像素之间的相关性。
图11是明文图像对角线方向上两个相邻像素之间的相关性。
图12是密文图像水平方向上两个相邻像素之间的相关性。
图13是密文图像垂直方向上两个相邻像素之间的相关性。
图14是密文图像对角线方向上两个相邻像素之间的相关性。
具体实施方式
下面结合附图和实施例对本发明作进一步说明:
实施例一:如图1所示,一种基于压缩编码的GIF图像加密方法,其特征在于包括以下步骤:
步骤一、输入GIF明文图像;
步骤二、对GIF图像的颜色列表进行加密;所述对GIF图像的颜色列表进行加密按以下步骤进行:
设定密钥流为K={Kn∣0<Kn<1},n为正整数,所述密钥流由分段线性混沌映射迭代得到,其为现有技术,本领域内的普通技术人员能够准确理解,在此不过多说明;设定GIF图像的颜色列表中各颜色分量为T(x,y),T(x,y)∈[0,255],x、y均为整数且x∈[0,255],y∈[0,2];
将密钥流中的值Kn乘以255后取整,得到Kn′;设定加密后GIF图像的颜色列表为T′(x,y);计算得到加密后GIF图像的颜色列表;
所述密钥流由分段线性混沌映射迭代得到。
步骤三、输出GIF密文图像;
步骤四、输入GIF密文图像;
步骤五、对GIF图像的颜色列表进行解密;所述对GIF图像的颜色列表进行解密按以下步骤进行:
设定密钥流为K={Kn∣0<Kn<1},所述密钥流由分段线性混沌映射迭代得到,n为正整数;设定GIF图像的颜色列表中加密后的各颜色分量为T′(x,y),x、y均为整数且x∈[0,255],y∈[0,2];
将密钥流中的值Kn乘以255后取整,得到Kn′;设定解密后GIF图像的颜色列表为T(x,y),T(x,y)∈[0,255];计算得到解密后GIF图像的颜色列表;
步骤六、输出GIF明文图像。
实施例二:如图2所示,一种基于压缩编码的GIF图像加密方法,包括以下步骤:
步骤一、输入GIF明文图像。
步骤二、对GIF图像的图像数据进行LZW编码加密:所述对GIF图像的图像数据进行LZW编码加密按以下步骤进行:
S1、初始化字典,对所述字典进行置乱;其中对所述字典进行置乱按以下步骤进行:
A1、初始化字典,使所述字典包含所有单个字符;
A2、设定当前需要置乱的元素索引为i,将i的值初始化为当前字典中含有的元素数目len;
A3、计算r为随机数;交换字典中i和r两个位置的元素;
A4、计算i′=i-1;当i′≥2时,返回执行步骤A2,否则结束置乱。
S2、读取输入字符,并将该输入字符赋值给前缀字符串ω,直到数据流读完,当数据流读取完时,输出ω在字典中所对应的元素索引值;
S3、判断当前字典中是否存在ωQ,Q为输入字符;当前字典中存在ωQ时,将ωQ的值放入ω的队列清单;当前字典中不存在ωQ时,输出ω在所述字典中所对应的元素索引值;
S4、设定密钥流为K={Kn∣0<Kn<1},n为正整数,其中所述密钥流由分段线性混沌映射迭代得到,设定当前字典中含有L个元素,设定当前匹配的元素索引值为Z,设定一个随机产生的元素索引值为index;当队列清单不为空时,取出队列清单中队首的值赋给Z;计算交换字典中Z和index两个位置的元素值,直到队列清单为空;
S5、设置字符串变量S,初始时所述字符串变量S为空;当有字符串string需要加入到字典中时,判断S是否为空;当S为空时,将string赋值给S;当S不为空时,将S插入到字典中,然后将string赋值给S。
步骤三、输出GIF密文图像。
步骤四、输入GIF密文图像。
步骤五、对GIF图像的图像数据进行LZW编码解密:
所述对GIF图像的图像数据进行LZW编码解密按以下步骤进行:
B1、初始化字典,对所述字典进行置乱;
所述步骤B1中对所述字典进行置乱按以下步骤进行:
C1、初始化字典,使所述字典包含所有单个字符;
C2、设定当前需要置乱的元素索引为i,将i的值初始化为当前字典中含有的元素数目l;
C3、计算r为随机数;交换字典中i和r两个位置的元素;
C4、计算i′=i-1;当i′≥2时,返回执行步骤C2,否则结束置乱。
B2、读取第一个输入码字,并将该输入码字分别赋值给记录当前码字和上一次读入的码字的变量CODE和OLDcode;所述变量CODE为当前码字的变量,所述变量OLDcode记录为上一次读入的码字,所述变量OLDcode用于将上一次读入的码字初始化为CODE;
B3、在当前字典中找到索引为CODE的元素Q,输出Q并将Q赋值给变量FINchar,所述变量FINchar为用以记录当前输出的最后一个字符的变量;
B4、读取下一个输入码字,并将该输入码字分别赋值给变量CODE和记录当前输入码字的备份的INcode;
B5、设置标志变量flag,所述标志变量flag的初始值为false;
B6、判断当前字典中是否存在索引值为CODE的元素;
在当前字典中不存在索引值为CODE的元素时,将所述标志变量flag赋值为true,输出变量FINchar的值,将变量OLDcode赋值给元素索引值CODE,并将字典中OLDcode和FINchar构成的字符串的索引值赋给INcode;
在当前字典中存在前缀字符串ω,能够使得ωQ所对应的索引值为CODE时,则将Q的值压入堆栈,并将前缀字符串ω的索引赋值给CODE,同时设定密钥流为K={Kn∣0<Kn<1},n为正整数;设定当前字典中含有L个元素,ωQ在字典中的元素索引值为Z,设定一个随机产生的元素索引值为index,计算交换字典中Z和index两个位置的元素值;
B7、找到索引值CODE在字典中所对应的元素Q,输出Q并将Q赋值给变量FINchar;
B8、判断堆栈是否为空;当堆栈不为空时,按照后进先出的原则循环输出堆栈顶部的元素;
B9、将(OLDcode,Q)加入当前字典;
B10、判断flag的值,当flag的值为true时,设定当前字典中含有L个元素,(OLDcode,Q)在字典中的索引值为Z,设定一个随机产生的元素索引值为index,计算交换字典中Z和index两个位置的元素值。
B11、将INcode赋值给OLDcode,然后继续执行步骤S4,直到数据流读取完毕。
步骤六、输出GIF明文图像。
实施例三:如图3所示,一种基于压缩编码的GIF图像加密方法,包括以下步骤:
步骤一、输入GIF明文图像;
步骤二、对GIF图像的颜色列表进行加密并对GIF图像的图像数据进行LZW编码加密:
所述对GIF图像的颜色列表进行加密按以下步骤进行:
设定密钥流为K={Kn∣0<Kn<1},n为正整数;所述密钥流由分段线性混沌映射迭代得到,设定GIF图像的颜色列表中各颜色分量为T(x,y),T(x,y)∈[0,255],x、y均为整数且x∈[0,255],y∈[0,2];
将密钥流中的值Kn乘以255后取整,得到Kn′;设定加密后GIF图像的颜色列表为T′(x,y);计算得到加密后GIF图像的颜色列表;
所述对GIF图像的图像数据进行LZW编码加密按以下步骤进行:
S1、初始化字典,对所述字典进行置乱;
所述步骤S1中对所述字典进行置乱按以下步骤进行:
A1、初始化字典,使所述字典包含所有单个字符;
A2、设定当前需要置乱的元素索引为i,将i的值初始化为当前字典中含有的元素数目l;
A3、计算r为随机数;交换字典中i和r两个位置的元素;
A4、计算i′=i-1;当i′≥2时,返回执行步骤A2,否则结束置乱。
S2、读取输入字符,并将该输入字符赋值给前缀字符串ω,直到数据流读完,当数据流读取完时,输出ω在字典中所对应的元素索引值;
S3、判断当前字典中是否存在ωQ,Q为输入字符;当前字典中存在ωQ时,将ωQ的值放入ω的队列清单;当前字典中不存在ωQ时,输出ω在所述字典中所对应的元素索引值;
S4、设定密钥流为K={Kn∣0<Kn<1},n为正整数;设定当前字典中含有L个元素,设定当前匹配的元素索引值为Z,设定一个随机产生的元素索引值为index;当队列清单不为空时,取出队列清单中队首的值赋给Z;计算交换字典中Z和index两个位置的元素值,直到队列清单为空;
S5、设置字符串变量S,初始时所述字符串变量S为空;当有字符串string需要加入到字典中时,判断S是否为空;当S为空时,将string赋值给S;当S不为空时,将S插入到字典中,然后将string赋值给S。
步骤三、输出GIF密文图像;
步骤四、输入GIF密文图像;
步骤五、对GIF图像的颜色列表进行解密并对GIF图像的图像数据进行LZW编码解密:
所述对GIF图像的颜色列表进行解密按以下步骤进行:
设定密钥流为K={Kn∣0<Kn<1},n为正整数;设定GIF图像的颜色列表中加密后的各颜色分量为T′(x,y),x、y均为整数且x∈[0,255],y∈[0,2];
将密钥流中的值Kn乘以255后取整,得到Kn′;设定解密后GIF图像的颜色列表为T(x,y),T(x,y)∈[0,255];计算得到解密后GIF图像的颜色列表;
所述对GIF图像的图像数据进行LZW编码解密按以下步骤进行:
B1、初始化字典,对所述字典进行置乱;所述步骤B1中对所述字典进行置乱按以下步骤进行:
C1、初始化字典,使所述字典包含所有单个字符;
C2、设定当前需要置乱的元素索引为i,将i的值初始化为当前字典中含有的元素数目len;
C3、计算r为随机数;交换字典中i和r两个位置的元素;
C4、计算i′=i-1;当i′≥2时,返回执行步骤C2,否则结束置乱。
B2、读取第一个输入码字,并将该输入码字分别赋值给记录当前码字和上一次读入的码字的变量CODE和OLDcode;所述变量CODE为当前码字的变量,所述变量OLDcode为上一次读入的码字;
B3、在当前字典中找到索引为CODE的元素Q,输出Q并将Q赋值给变量FINchar,所述变量FINchar为用以记录当前输出的最后一个字符的变量;
B4、读取下一个输入码字,并将该输入码字分别赋值给变量CODE和记录当前输入码字的备份的INcode;
B5、设置标志变量flag,所述标志变量flag的初始值为false;
B6、判断当前字典中是否存在索引值为CODE的元素;
如果在当前字典中不存在索引值为CODE的元素时,将所述标志变量flag赋值为true,输出变量FINchar的值,将变量OLDcode赋值给元素索引值CODE,并将字典中OLDcode和FINchar构成的字符串的索引值赋给INcode;
如果在当前字典中存在前缀字符串ω,能够使得ωQ所对应的索引值为CODE时,则将Q的值压入堆栈,并将前缀字符串ω的索引赋值给CODE,同时设定密钥流为K={Kn∣0<Kn<1},n为正整数;所述密钥流由分段线性混沌映射迭代得到,设定当前字典中含有L个元素,ωQ在字典中的元素索引值为Z,设定一个随机产生的元素索引值为index,计算交换字典中Z和index两个位置的元素值;
B7、找到索引值CODE在字典中所对应的元素Q,输出Q并将Q赋值给变量FINchar;
B8、判断堆栈是否为空;当堆栈不为空时,按照后进先出的原则循环输出堆栈顶部的元素;
B9、将(OLDcode,Q)加入当前字典;
B10、判断flag的值,当flag的值为true时,设定当前字典中含有L个元素,(OLDcode,Q)在字典中的索引值为Z,设定一个随机产生的元素索引值为index,计算交换字典中Z和index两个位置的元素值。
B11、将INcode赋值给OLDcode,然后继续执行步骤S4,直到数据流读取完毕。
步骤六、输出GIF明文图像。
为了验证提出的本文所提加密算法的正确性和安全性,我们采用国际上通用的USC-SIPI图像测试库对算法进行了测试和验证,由于图片库中的图像默认是tiff格式,将其转换成gif格式后进行实验,实验结果表明本文提出的加密算法达到了较好的安全性,在此以一幅大小为256×256的Lena图像为例。
图4是原始图像效果图,图5为利用加密算法加密后的结果,图6为正常解码后的图像。从图5我们可以看出加密后的图片呈均匀噪声分布,不能分辨出任何关于明文图像的有意义的信息,而通过对比图4与图6,说明在给定正确密钥的情况下解码算法能够精确恢复出明文图像。
统计分析是试图利用密文统计特性恢复出明文信息,为了能够抵挡攻击者采用统计手段破解编码信息,加密后的图像应具有均匀的直方图,并且密文图像相邻两像素的相关性也必须尽可能的低,本实验分别对明文和密文图像的直方图,及其相邻像素的相关性进行了测试。
图7为明文图像的直方图,图8为密文图像的直方图,通过对比,明文直方图的分布有多处峰值,而密文的直方图已有了很大改善,在相关性测试中,测试了水平、垂直和对角三个方向上两个相邻像素之间的相关性。对实验图像分别随机取出1000对像素点进行测试,根据图9至图11可以看出,明文图像中相邻像素值呈带状分布,且测得其相关系数都在0.9以上,具有很高的相关性。而根据图12至图14可以看出,密文图像中相邻像素值的分布比较均匀,且测得其相关性在0.02左右,因此可以看出按照本发明得到的密文图像中相邻像素的相关性已经非常小,满足安全性要求。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (4)
1.一种基于压缩编码的GIF图像加密方法,其特征在于包括以下步骤:
步骤一、输入GIF明文图像;
步骤二、对GIF图像的颜色列表进行加密和对GIF图像的图像数据进行LZW编码加密;
步骤三、输出GIF密文图像;
所述对GIF图像的颜色列表进行加密按以下步骤进行:
设定密钥流为K={Kn∣0<Kn<1},n为正整数;设定GIF图像的颜色列表中各颜色分量为T(x,y),T(x,y)∈[0,255],x、y均为整数且x∈[0,255],y∈[0,2];
将密钥流中的值Kn乘以255后取整,得到Kn′;设定加密后GIF图像的颜色列表为T′(x,y);计算得到加密后GIF图像的颜色列表;
所述对GIF图像的图像数据进行LZW编码加密按以下步骤进行:
S1、初始化字典,对所述字典进行置乱,如下:
A1、初始化字典,使所述字典包含所有单个字符;
A2、设定当前需要置乱的元素索引为i,将i的值初始化为当前字典中含有的元素数目l;
A3、计算r为随机数;交换字典中i和r两个位置的元素;
A4、计算i′=i-1;当i′≥2时,返回执行步骤A2,否则结束置乱;
S2、读取输入字符,并将该输入字符赋值给前缀字符串ω,直到数据流读完,当数据流读取完时,输出ω在字典中所对应的元素索引值;
S3、判断当前字典中是否存在ωQ,Q为输入字符;当前字典中存在ωQ时, 将ωQ的值放入ω的队列清单;当前字典中不存在ωQ时,输出ω在所述字典中所对应的元素索引值;
S4、设定密钥流为K={Kn∣0<Kn<1},n为正整数;设定当前字典中含有L个元素,设定当前匹配的元素索引值为Z,设定一个随机产生的元素索引值为index;当队列清单不为空时,取出队列清单中队首的值赋给Z;计算 交换字典中Z和index两个位置的元素值,直到队列清单为空;
S5、设置字符串变量S,初始时所述字符串变量S为空;当有字符串string需要加入到字典中时,判断S是否为空;当S为空时,将string赋值给S;当S不为空时,将S插入到字典中,然后将string赋值给S。
2.如权利要求1所述的基于压缩编码的GIF图像加密方法,其特征在于还包括基于压缩编码的GIF图像解密步骤:
第一步、输入GIF密文图像;
第二步、对GIF图像的颜色列表进行解密和对GIF图像的图像数据进行LZW编码解密 ;
第三步、输出GIF明文图像;
所述对GIF图像的颜色列表进行解密按以下步骤进行:
设定密钥流为K={Kn∣0<Kn<1},n为正整数;设定GIF图像的颜色列表中加密后的各颜色分量为T′(x,y),x、y均为整数且x∈[0,255],y∈[0,2];
将密钥流中的值Kn乘以255后取整,得到Kn′;设定解密后GIF图像的颜色列表为T(x,y),T(x,y)∈[0,255];计算得到解密后GIF图像的颜色列表;
所述对GIF图像的图像数据进行LZW编码解密按以下步骤进行:
B1、初始化字典,对所述字典进行置乱;
B2、读取第一个输入码字,并将该输入码字分别赋值给记录当前码字和上一次读入的码字的变量CODE和OLDcode;所述变量CODE为当前码字的变量,所述变量OLDcode为上一次读入的码字;
B3、在当前字典中找到索引为CODE的元素Q,输出Q并将Q赋值给变量FINchar,所述变量FINchar为用以记录当前输出的最后一个字符的变量;
B4、读取下一个输入码字,并将该输入码字分别赋值给变量CODE和记录当前输入码字的备份的变量INcode;
B5、设置标志变量flag,所述标志变量flag的初始值为false;
B6、判断当前字典中是否存在索引值为CODE的元素;
在当前字典中不存在索引值为CODE的元素时,将所述标志变量flag赋值为true,输出变量FINchar的值,将变量OLDcode赋值给元素索引值CODE,并将字典中OLDcode和FINchar构成的字符串的索引值赋给INcode;
在当前字典中存在前缀字符串ω,能够使得ωQ所对应的索引值为CODE时,则将Q的值压入堆栈,并将前缀字符串ω的索引赋值给CODE,同时设定密钥流为K={Kn∣0<Kn<1},n为正整数;设定当前字典中含有L个元素,ωQ在字典中的元素索引值为Z,设定一个随机产生的元素索引值为index,计算 交换字典中Z和index两个位置的元素值;
B7、找到索引值CODE在字典中所对应的元素Q,输出Q并将Q赋值给变量FINchar;
B8、判断堆栈是否为空;当堆栈不为空时,按照后进先出的原则循环输出堆栈顶部的元素;
B9、将(OLDcode,Q)加入当前字典;
B10、判断flag的值,当flag的值为true时,设定当前字典中含有L个元素,(OLDcode,Q)在字典中的索引值为Z,设定一个随机产生的元素索引值为index,计算交换字典中Z和index两个位置的元素值;
B11、将INcode赋值给OLDcode,然后继续执行步骤S4,直到数据流读取完毕。
3.如权利要求2所述的基于压缩编码的GIF图像加密方法,其特征是:所述步骤B1中对所述字典进行置乱按以下步骤进行:
C1、初始化字典,使所述字典包含所有单个字符;
C2、设定当前需要置乱的元素索引为i,将i的值初始化为当前字典中含有的元素数目len;
C3、计算r为随机数;交换字典中i和r两个位置的元素;
C4、计算i′=i-1;当i′≥2时,返回执行步骤C2,否则结束置乱。
4.如权利要求1或2所述的基于压缩编码的GIF图像加密方法,其特征是:所述密钥流由分段线性混沌映射迭代得到。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210407242.3A CN102970530B (zh) | 2012-10-23 | 2012-10-23 | 基于压缩编码的gif图像加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210407242.3A CN102970530B (zh) | 2012-10-23 | 2012-10-23 | 基于压缩编码的gif图像加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102970530A CN102970530A (zh) | 2013-03-13 |
CN102970530B true CN102970530B (zh) | 2015-06-03 |
Family
ID=47800374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210407242.3A Active CN102970530B (zh) | 2012-10-23 | 2012-10-23 | 基于压缩编码的gif图像加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102970530B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3348017A4 (en) * | 2015-09-09 | 2019-07-17 | Rodney John Smith | METHOD OF PROTECTING DATA USING COMPRESSION ALGORITHMS |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9558680B2 (en) * | 2014-04-04 | 2017-01-31 | Sizhe Tan | Payload in picture encoding |
CN104751401B (zh) * | 2015-04-16 | 2018-07-03 | 大连大学 | 一种新型的分段线性混沌映射图像加密与编码方法 |
CN104992120A (zh) * | 2015-06-18 | 2015-10-21 | 广东欧珀移动通信有限公司 | 一种图片加密方法及移动终端 |
CN105704499B (zh) * | 2016-01-25 | 2018-10-19 | 西北工业大学 | 一种基于ChaCha20和CCSDS的选择性卫星图像压缩加密方法 |
CN105846993A (zh) * | 2016-03-18 | 2016-08-10 | 常州大学 | 一种工业监控浮点数据压缩加密算法 |
CN107705340A (zh) * | 2017-10-27 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种图像解码的方法及装置 |
CN110518917B (zh) * | 2019-07-17 | 2023-01-03 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于Huffman编码的LZW数据压缩方法及系统 |
-
2012
- 2012-10-23 CN CN201210407242.3A patent/CN102970530B/zh active Active
Non-Patent Citations (2)
Title |
---|
GIF图像选择加密算法及其性能研究;胡月等;《计算机工程》;20101231;第36卷(第24期);3.1、3.2、4.1章节 * |
基于混沌理论的数字图像的加密算法的研究;孙广明;《全国优秀硕士学位论文全文数据库》;20100315;3.1.2、3.3.3、4.1.2章节 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3348017A4 (en) * | 2015-09-09 | 2019-07-17 | Rodney John Smith | METHOD OF PROTECTING DATA USING COMPRESSION ALGORITHMS |
Also Published As
Publication number | Publication date |
---|---|
CN102970530A (zh) | 2013-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102970530B (zh) | 基于压缩编码的gif图像加密方法 | |
He et al. | JPEG image encryption with improved format compatibility and file size preservation | |
CN102469344B (zh) | 一种视频码流加、解密方法、装置及通信、存储终端 | |
CN105704545B (zh) | 一种基于h.264视频流的密钥同步信息传输方法 | |
Lee et al. | Digital image sharing by diverse image media | |
CN103761702A (zh) | 一种基于秘密共享的图像隐藏和认证方法 | |
CN109151486A (zh) | 大容量的jpeg图像比特流加密域可逆数据隐藏方法 | |
CN105426709A (zh) | 基于jpeg图像信息隐藏的私密信息通信方法与系统 | |
CN104468090A (zh) | 基于图像像素坐标的汉字密码编码方法 | |
CN105099712A (zh) | 一种基于双码验证的数据加密方法 | |
CN109547663B (zh) | 一种结合密码学的改进lsb图像隐写方法 | |
Phad Vitthal et al. | A novel security scheme for secret data using cryptography and steganography | |
CN106023053A (zh) | 基于jpeg图像的高容量文件加密隐写及提取方法 | |
CN105812816B (zh) | 一种压缩加密认证联合编码方法 | |
CN109889687B (zh) | 基于交流统计特征改变的jpeg图像比特流加密方法 | |
CN107798708A (zh) | 一种dna乱序编码和混沌映射的图像加密和解密方法 | |
CN100571395C (zh) | 一种基于h.264视频流的加密方法 | |
Liu et al. | Rich QR codes with three-layer information using hamming code | |
Karthikeyan et al. | Enhanced security in steganography using encryption and quick response code | |
CN100556145C (zh) | H.264中基于变换域的dct系数分层置乱方法 | |
CN103281178B (zh) | 一种隐匿通信方法及系统 | |
Debnath et al. | An advanced image encryption standard providing dual security: Encryption using hill cipher & RGB image steganography | |
CN105554344A (zh) | 基于混合图元的多幅图像加密方法 | |
Thomas et al. | Advanced cryptographic steganography using multimedia files | |
Pande et al. | Visual cryptography schemes using compressed random shares |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20201217 Address after: Room 1017, 10 / F, block a, building 1, Fortune Plaza, No. 1999, Nanbin Avenue, Wanzhou District, Chongqing (Wanzhou Economic Development Zone) Patentee after: Chongqing Abbott Technology Co.,Ltd. Address before: 400045 No. 174 Sha Jie street, Shapingba District, Chongqing Patentee before: Chongqing University |