2.5.1 以排序法为基础的混沌置乱(2)
请读者完成编码后,编译并运行程序。图12-15显示出了利用该算法对图像进行置乱加密的结果。易见,右侧的密图呈现均匀的地毯式分布,从中完全分辨不出任何有价值的信息,原有图像信息已被成功地掩盖了。

解密算法是加密算法的逆过程,这里不再详述。开发时需要在MagicHouse项目中重新建立一个新的对话框用以实现原加密算法对应的解密算法,如图12-16所示,该对话框需要用户输入用以产生首轮混沌序列的初始参数作为密钥。而加密时用到的整数序列此时也将被用作解密密钥来使用,如果不能准确地给出密钥,密图将很难被破解,图像的安全性受到严格保护。

为上述对话框创建一个类CDlgChaosD1。具体的解密算法实现位于DlgChaosD1.cpp文件中,该文件的完整源代码及项目中其他文件的代码清单请读者参看随书光盘。
通过分析可知,采用此算法不仅每次的混沌初始条件被用作了加密方法的密钥,还有一长串的整数序列被用来作为密钥,因此该方法具有密钥空间特别大的优点,安全性受到肯定。其次,该方法实现简便,效率也较高,有较强的实用价值。另外,以一维Logistic映射为例,经实验测试,该方法经两次以上置乱后即可获得理想的扩散效果,可行性得到了充分的验证。算法对图像的宽和高没有限制,普适性很强。通过实验,我们也证明该算法能够有效地抵抗包括剪裁、滤波、加噪等处理在内的破坏,鲁棒性很强。