12.5.2 基于起始地址法的混沌置乱
标准魔方通过对行列的简单扭转可以呈现出千变万化的复杂效果。如果将一个二维数字图像矩阵假想成一个魔方,那么就可以对数字图像进行类似变换以达到置乱目的。具体算法的实现途径并不统一,但大体思想是基本一致的。首先通过混沌系统生成随机序列,然后由混沌序列来确定欲进行移位变换的各行和各列的起始地址及移动的方向等参数,并根据这些参数对图像进行置乱操作。这种置乱方法的硬件实现相对简单,而且移位操作也较排序操作有更小的计算复杂度。
设数字图像用f表示,其宽度为W个像素,其高度为H个像素,算法的具体实现步骤描述如下。
① 选定两个混沌系统分别以初值x0、y0产生两个混沌序列。
② 将序列归一化后分别乘以W和H,并将两个序列取整使得序列取值分别为[0, W 1]和[0, H 1]间的整数。即对两个序列进一步处理得到{xi | (0≤i≤W 1)},{yj | (0≤j≤H 1)}两个序列。
③ 用序列{xi}作为置乱矩阵的行地址对原图像进行行置乱,即利用生成的混沌序列将图像的每行像素右移(循环移动)变换到该行的另一位置。
④ 用序列{yj}作为置乱矩阵的列地址对原图像进行列置乱,即利用生成的混沌序列将图像的每列像素下移(循环移动)变换到该列的另一位置。
解密算法可以根据加密算法的逆过程得到,这里不再赘言。当然,以上提供的仅仅是该算法的一种基本思想,具体实现的时候也可以根据实际需要进行优化及改造。限于篇幅,本书不再给出该算法的实现代码,有兴趣的读者可以试着自己编程实现。