浅析一种基于位运算的数字图像加密算法

2018 年 11 月 28 日 0 条评论 1.39k 次阅读 0 人点赞

基于位运算的数字图像加密算法原理
主要由基于位运算的置乱加密和基于位运算的异或运算加密两部分组成,为提高数字图像加密算法的加密效果和安全性,加密前必须对图像进行基于位置置乱的预处理。加密算法可描述如下:

算法1:数字图像加密算法
Step1:输入一幅大小为M×N的加密图像Image,利用混沌系统产生基于位置变换的置乱序列L,再应用L对 Image进行基于位置置乱的预处理,得到图像Pimage

Step2:将预处理的结果图像 Pimage的灰度值
转换为二进制序列,得到与图像Pimage的灰度矩阵对应的三元函数Bimage(x,y,b),其值为图像中(x,y)处的灰度值的第b位。使用混沌系统产生二进制序列的位置置乱序列Ti,i=1,2,…,M×M,按先行后列的次序对Bimage (x,y)所对应的二值序列进行基于Ti的位置置乱,则可得到经过置乱变换处理的三元函数 Bimage*(x,y,b);

Step 3:应用混沌系统生成伪随机的二值序列B={b1b2…bM×N×8},与Bimage* (x,y,b)所对应的二值序列进行异或运算,再将其转换成灰度值,最后可得到加密图像 Eimage

加密过程流程图

解密是加密的逆过程,根据算法的加密过程逆向操作即可完成解密


解密过程流程图

基于混沌系统的置乱序列生成算法
在加密算法中,趾Step1和Step2均需获得相应置乱序列。给出了一种基于逐次洗牌的置换序列生成算法,它的时间复杂度是O(M×N) ,且具有较妤的效率和安全性。为将该置换序列生成算法应用于图像的加密和解密过程,可结合混沌系统的伪随机性对其改进。

算法2:置换序列生成算法
Step1:给定L=(l1,l2,…;lm),初值为(1,2,m)

Step2:应用混沌系统生成相同大小的伪随机序列{a1,a2,…;am},其中a1∈(0,1);

Step3:按lm,…,l2,l1次序对L序列中的所有li执行step4

step4:令j= [ai×(i-2)+1 ],交换li和lj

该算法可产生预处理所需的基于待加密图像Image灰度矩阵的置乱序列L和应用于图像 Pimage灰度值二进制序列的位置置乱序列Ti,i=1,2,…,M×N