当前位置: 首页 > 专利查询>徐原能专利>正文

用随机子序列加密数字图像的方法技术

技术编号:2948009 阅读:229 留言:0更新日期:2012-04-11 18:40
一种加密数字图像的方法,其特征是利用已有的随机序列作为母序列,先从母序列产生子序列,然后用子序列而非母序列对数字图像加密,包括以下步骤:    预备一个与待加密数字图像的大小(字节数)相等的图像,以下称为映像,映像中的图像数据字节在待加密的数字图像数据填入之前称为空位;    连续录用母序列的一段元素产生子序列,再用由此产生的子序列控制对于母序列元素的录用或丢弃从而产生两个新的子序列用于加密数字图像;    依待加密图像的字节序号顺序逐个提取待加密图像的字节,上一步骤产生的用于加密数字图像的两个子序列中的一个子序列用于控制每个字节的数值替代为(255-字节数值)或不替代,然后填入另一个子序列指定的映像中的空位,填满后的映像就是已经加了密的数字图像,以上是加密步骤;    以下是解密步骤,预备一个与待加密数字图像的大小(字节数)相等的图像,以下称为反映像;    采用与加密时相同的参数和相同的方法产生两个子序列用于解密数字图像,它们与加密时产生的用于加密数字图像的两个子序列完全相同;    上一步骤产生的用于解密数字图像的两个子序列中的一个子序列用于指定逐个提取映像中尚未提取的字节,另一个子序列控制每个字节的数值替代为(255-字节数值)或不替代,然后依反映像的字节序号顺序填入反映像,填满后的反映像就是已经解了密的数字图像。

【技术实现步骤摘要】

本专利技术涉及数字图像的加密,防止数字图像中的信息被未经许可者窥视。
技术介绍
将数字图像的数据重新排序可以使数字图像面目全非,Arnold变换、幻方算法和混沌图像置乱算法等引起人们的普遍关注(例如北方工业大学学报第11卷第1期1999年3月“关于Arnold变换的周期性”和“矩阵变换及其在图像信息隐藏中的应用研究”、中国图象图形学报第10卷第5期2005年“基于排序变换的混沌图像置乱算法”等)。打乱数字图像的最直接方法莫过于将数字图像数据字节按照随机序列重新排列,而由程序语言逐次调用随机函数rnd()就能方便地制造随机序列的元素Rn=int(L*rnd()),其中L是数字图像的长度(以字节为单位),int()是取整数。可是有两个问题需要解决一是简单地利用公知的随机序列加密数字图像容易破解;二是剔除数值上重复的序列元素要花费许多时间。本专利技术解决了这两个问题,有利于数字图像加密的普及应用。
技术实现思路
本专利技术的目的是提高利用已有随机序列加密数字图像的破解难度,提高含数字图像的系统的安全性能。已有的随机序列可以是公知的随机序列也可以是其他随机序列。为了达到专利技术的上述目的,首先提供了从已有的随机序列构造子序列的方法,然后提供了用子序列加密数字图像的方法即子序列控制图像数据字节重新排序和用字节值与255之差随机替代字节值的方法。附图说明图1为连续录用母序列元素构造子序列的方框2为在子序列控制下从母序列产生新子序列的方框3为产生用于指定映像空位的子序列的方框4为用子序列加密数字图像的方框5是数字图像加密和解密的流程图。图6示例待加密的RGB24格式的数字图像图7示例保留了.bmp文件头的加密后图像图8示例待加密的JPEG格式的数字图像图9示例保留了.jpg文件头和标记的加密后图像具体实施方式把已有的随机序列称为母序列,从母序列构造子序列就是从已有的随机序列构造子序列。截取母序列的有限长度的一段,丢弃其中一些元素并录用其余部分就成为子序列。构造子序列的最简单方法就是连续录用母序列的t个元素,t为整数,如图1所示。在图1中,常数C为选用的整数,它限制母序列和子序列的元素取值范围为0到C-1。函数rnd()的所有各次调用确定了母序列Rr的元素R0,R1,R2,....,Rn,....,其中首次调用函数rnd()确定了R0=int(C*rnd()),第n次调用函数rnd()确定了Rn=int(C*rnd())等等。子序列Sa连续录用了母序列从Rn到Rn+t-1的t个元素A0=Rn;A1=Rn+1;.....;At-1=Rn+t-1这样产生的子序列与母序列的某一段相吻合,若直接用于加密较易破解,但可以用于控制母序列元素的丢弃或录用从而产生新的子序列。利用已经产生了的子序列控制母序列元素的丢弃或录用,由此产生的新子序列用于加密就难以猜破。图2说明用子序列控制母序列元素的丢弃或录并产生新子序列的原理。作为例子,其中用于控制的已有子序列Sa的元素An取值小于4的整数,相当于图1中的C=4所产生的子序列。图2中的常数D为选用的整数,它限制母序列和新子序列Sb的元素取值范围为0到D-1,L是新子序列Sb的指定长度。在图2中,参数可以自由选择,参数值不同使得所产生的新子序列也不同。参数n指定截取母序列的起点;控制规则例如可将图中的“Ai=0或Ai=3”改为当Ai=1时录用母序列的元素;子序列Sa的元素取值范围例如图中的“Ai可能取值0,1,2,3”可改为取值0或1; 控制规则应与子序列Sa元素的取值范围相配合。参数成为恢复数字图像的“钥匙”的一部分。产生子序列Sa的参数(例如连续录用母序列的起点)通过影响子序列Sa进而影响新子序列Sb,所以也成为“钥匙”的一部分。当子序列Sa是由几段较短序列拼接而成时影响新子序列Sb的参数就更多了。参数越多、参数可选择的范围越大使得破解的难度也越大。用子序列将数字图像重新排序最容易想到的方案是要求子序列长度等于图像数据的长度L、子序列元素的取值应为0到L-1并且子序列元素的取值不能重复。这并不难实现,例如在图2中取D=L并在X点插入一个核查方框子序列新赋值的元素若与已有元素在数值上相同,丢弃这个新赋值的元素并重新寻找下一个可录用的母序列元素。可是这个方法随着子序列已有元素的增加,因为数值重复而丢弃新赋值元素越来越频繁,运行消耗很长时间。本专利技术另辟新途预备一个与待加密数字图像的大小(字节数)相等的图像,以下称为映像。映像中的图像数据字节都作为空位并将被待加密的数字图像的字节逐个替代,以L表示映像中初始空位总数。映像中的空位按其字节序号的先后编号,称为空位号。初始的空位号与字节序号一致。子序列Sb的第0个元素B0的数值代表待加密数字图像中字节序号0对应映像的L个空位中的一个空位号,该字节从待加密数字图像填入映像的对应空位使得映像的空位总数减少为L-1个,因而映像中的空位号变得与字节序号不尽相同。子序列Sb的第1个元素B1的数值代表待加密数字图像中字节序号1对应映像的L-1个空位中的一个空位号,该字节从待加密数字图像填入映像的对应空位并使映像中的空位总数减少为L-2个并且空位号再次变化。以此类推,直到待加密数字图像中最后一个(第L-1个)字节填入映像剩余的第0个空位,填满数据的映像就是加了密的数字图像。可以看出,子序列Sb的每一个元素的值都唯一地指定映像中的一个空位,元素间数值上可能的重复并不影响加密操作。图3说明用于指定映像空位的子序列Sb的产生过程。随着待加密数字图像的数据字节逐个填入映像使得映像中的空位数目逐个减少,所以子序列Sb的元素取值范围是随元素序号递减的。图4说明用子序列加密数字图像的原理。变量V作为载体把待加密数字图像的字节传递给映像的空位。图4中使用了两个子序列,都与图像数据等长(L)。其中子序列Sb用于指定映像空位,是按照图3构成的。子序列Sc则用于控制图像数据字节的值V是否用255-V替代。子序列Sc是按照图2构成的,元素取值0或1(D=2)。计算机程序迁移数据总是按字节序号来迁移数据的,因此有必要把子序列Sb的元素指定的映像空位号“翻译”成映像字节序号。标志序列Ff具有L个初始值为0的元素。映像中每有一个空位被填入数据,依据该空位在映像中的字节序号,将Ff的相同序号的元素赋值为1作为标志。对Ff的数值为0的元素计数S与元素序号j的关系正是映像中空位号与字节序号的对应关系。填满后的映像就是加了密的数字图像。要从映像恢复原数字图像,预备一个与待加密数字图像的大小(字节数)相等的图像,以下称为反映像。反映像中的图像数据字节都作为空位并将被映像的字节逐个替代。用上述加密的逆过程把数据字节从映像逐个填入反映像。填满后的反映像就是解密图像并且与加密前的数字图像完全相同。加密过程和解密过程共享产生各子序列的所有参数,各自产生子序列。加密过程和解密过程产生的子序列完全相同。加密过程和解密过程的不同仅仅在于图像数据的迁移方式。加密过程是把依字节序号大小排列的数据字节填入由子序列指定的映像中的空位从而打乱了数据字节原有的排列。解密过程是把由子序列指定的映像中尚未提取过的的字节依反映像的字节序号顺序填入反映像从而恢复了数据字节原有的排列。图5是数字图像加密和解密的流程图。图像数据的排列是有本文档来自技高网...

【技术保护点】
1.一种加密数字图像的方法,其特征是利用已有的随机序列作为母 序列,先从母序列产生子序列,然后用子序列而非母序列对数字图像加密,包括以下步骤: 预备一个与待加密数字图像的大小(字节数)相等的图像,以下称为映像,映像中的 图像数据字节在待加密的数字图像数据填入之前称为空位; 连续录用母序列的一段元素产生子序列,再用由此产生的子序列控制对于母序列元素 的录用或丢弃从而产生两个新的子序列用于加密数字图像; 依待加密图像的字节序号顺序逐个提取待加密图像的字节,上一步骤产生的用于加密 数字图像的两个子序列中的一个子序列用于控制每个字节的数值替代为(255-字节数值)或不 替代,然后填入另一个子序列指定的映像中的空位,填满后的映像就是已经加了密的数字图 像,以上是加密步骤; 以下是解密步骤,预备一个与待加密数字图像的大小(字节数)相等的图像,以下称 为反映像; 采用与加密时相同的参数和相同的方法产生两个子序列用于解密数字图像,它们与加 密时产生的用于加密数字图像的两个子序列完全相同; 上一步骤产生的用于解密数字图像的两个子序列中的一个子序列用于指定逐个提取映 像中尚未提取的字节,另一个子序列控制每个字节的数值替代为(255-字节数值)或不替代, 然后依反映像的字节序号顺序填入反映像,填满后的反映像就是已经解了密的数字图像。...

【技术特征摘要】

【专利技术属性】
技术研发人员:徐原能
申请(专利权)人:徐原能
类型:发明
国别省市:

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1