基于视觉安全的图像加密系统
1.图像加密研究
置乱加密:
Arnold变换:
Arnold变换是俄国数学家提出的一种变化,一副N×N的数字图像的二维Arnold变换定义为:
注意,需要保证|ad-bc|=1,例如a = b = 1,置换次数n = 20,则他们被当成密钥key,用于解密。
Arnol变换是N*N的图片
首先,在二维等长方面,过程如下:
之后,为解决只能加密宽高相等的情况,我们又引入的宽高不相等的方法:
其中:
所以修改后的方程组为:
对应的逆变换为:
等长和非等长的区别,注意需要计算参数q的值,同时取模的时候也会有所区别。
效果图这里就不放了。
Arnold变换同时具有可逆性和周期性,
为统一解密方式,本项目采用周期性解密
mod(xn,N)1且mod(yn,N)1,那么T=n
本章主要介绍了二维等长和非等长的Arnold变换公式、逆变换等基本特征;对二维等长和非登场Arnold变换采用实验仿真并且测试了Arnold的周期性。
之后,接着为等长和非等长的Arnold的算法进行改进。
之后,再基于随机取点分块来对Arnold变换图像加密改进。
原来,等长加密效果好但是只是局限于等长,不等长加密效果稍微差点,而且这俩周期参数都容易被获取。
改进方案:
(1)两种变换方式混合使用
(2)图像划分为若干小块,局部周期确定,整体上的周期并不存在,注意需要确定分块的方法。
设定分块大小为64×64
直接分块,只能对部分的图像进行加密,没办法满足图像的基本需求,所以改进后我们采用了随机取点的分块算法:
随机取num个点(mi,ni)扩展为l×l的方形区域。
剩下的延长边界,形成等长和非等长的块。
注意num点的选择应当折中。
具体的公式:
非等长容易出现纹理特征,q由图像的最大公约数决定,q越大那么在y方向的拉伸与折叠也会越大,效果好像是打了补丁,可以先预置乱,破坏图像的原始特征,从而消除Arnold对各分块置乱的不利影响。
注意先预置乱然后恢复。