随着图像加密技术的发展,出现了各种各样的加密方法,其中有基于Arnold变换、仿射变换、Hilberl曲线、幻方、骑士巡游、Cray码、混沌序列和基于频城的置乱加密技术。而我们今天就利用Monte Carlo随机数构造了一种新的图像加密算法,实验结果表明该方法计算简单,运行速度快,并具有一定的安全性。
一、Monte Carlo方法
Monte Carlo方法又称统计试验方法,它采用统计抽样理论近似地求解数学问题或物理问题。它既可用来研究概率问题,也可用来求解非概率问题。其理论基础是概率论中很一般的定理——大数定律,因此这方法的应用范围从原则上说来几乎没有什么限制。对本文的目的而言,随机数不是由随机过程生成的数,相反它们是由完全确定的计算过程所产生的,结果所得到的数集有各种统计性质,它们统称为随机性。
其中r为乘因子,r和N给定,xo是“随机数”的初始值,这种模乘积方法常用来生成随机数。由Lehmer提出的1中产生伪随机数的方法,是最常用的方法。
s为常数,r、s和N皆为整数,产生整型的随机数序列,随机性来源于取模运算。
二、Monte Carlo随机数的性质
以上方式产生的随机数有以下特点:
(l)随机数序列应是独立的、互不相关的,即序列中的任一子序列应与其他的子序列无关;
(2)长的周期:实际应用中,随机数都是用数学方法计算出来的,这些算法具有周期性,即当序列达到一定长度后会重复;
(3)均匀性:随机数序列均匀、无偏,即:如果两个子区间的“面积”相等,则落于这两个子区间内的随机数的个数影相等;
(4)有效性:模拟结果可靠,模拟产生的样本容量大,所需的随机数的数量大,随机数的产生必须陕速、有效,能够进行并行计算。
序列{xn}要被认为是随机数必须通过一组统计实验,它们必须均匀的分布在(O,N)区间内。例如:取r=25 173,s=13 849,N=65 536时有,它产生[0,65 535]的整数的Well-scrambled分布。
三、基于Monte Carlo随机数的加密
Monte Carlo方法产生的随机数序列有类似于混沌序列的性质,可以用来对数字图像进行置乱变换而达到加密的效果,而且这种变换具有周期性,很显然这种随机序列的周期仅为图像的维数N,当进行N次变换后就能得到原图像。
(1)对于给定的r、s和N,N为待加密图像的维数,给定不同的初值XO1、X02、X03,产生三个随机序列{x1i),{X2i),{X3i),i=l,2,…,256;
(2)产生加密矩阵T1、T2:
T1=zeros( 256);
for m=1:256
T1(X1(m),X3 (m))=1;
end
Tz2=zeros( 256);
for m=1:256
T2 (X2(m),X3 (m))=1;
end
(3)对图像A进行加密得到加密图像B:
其中n为加密次数。利用Monte Carlo随机数对大小为128x128的图像加密1次、2次、3次后的结果。
小知识之Monte Carlo
蒙特卡罗(Monte Carlo)方法,或称计算机随机模拟方法,是一种基于"随机数"的计算方法。这一方法源于美国在第二次世界大战进研制原子弹的"曼哈顿计划"。该计划的主持人之一、数学家冯?诺伊曼用驰名世界的赌城-摩纳哥的Monte Carlo-来命名这种方法,为它蒙上了一层神秘色彩。