图像加密之Logistic混沌置乱加密

这里再根据Logistic混沌进行另一种置乱:位置置乱。

位置置乱,顾名思义就是把图像中某一像素点的位置,移动到另一目的点。我们知道这个目的点当然是越随机越好。这个过程,所有像素的灰度值都没有改变,只是进行了位置的置乱,所以其直方图不会发生改变。

  • 生成混沌序列

    Logistic迭代了M*N次,得到M*N个(0,1)之间的浮点数序列(记做序列A),将序列A中的每个元素乘以M*N,也就是说将A扩展到了(0,MN)的浮点数了,然后我们对其取整数得到(0,MN)之间的整数序列B。

  • 用这个序列来产生随机坐标(也就是目的点)

    1
    2
    列坐标:y=B(i)/N;
    行坐标:x=B(i)%N;
  • 待加密图像中的第一个点的灰度值搬移到第一个随机坐标中的,一次类推,当所有灰度都经过移动之后,置乱结束,便完成了一次置乱加密。

注意

按道理说这(0,MN)个值肯定是没有重复的,但是由于*计算机精度和类型转化,所以肯定存在重复的值,也就是随机坐标点存在重复的!!!这肯定是不行的,那么怎么避免呢?我们一般这样来处理:在迭代过程中,每迭代一次,产生一个随机坐标点,判断这个坐标点有没有被占用,若没有则打一个占用标志,若已被占用,则放弃该点继续迭代,直到找到没有没占用的坐标点,如此下去,直到找到*M\N个不重复的坐标点。