如何给光学图像加密,今天我们提出了一种用级联相位恢复算法把待加密图像综合到2块随机相位板(RPM)之中从而实现图像加密的技术。该算法利用同时调整2块RPM的相位分布的搜索策略,扩大搜索空间,能得到质量非常高的解密图像。

一、级联相位恢复算法

为表述方便,把待加密的图像表示为f(x,y),如图1所示。在加密系统中,希望设计出2块RPM板exp[jb(x,y)]和exp[jp(u,v)],其中(x,y)表示空间域坐标、(u,v)表示频谱域坐标,分别置于4-f系统的输入平面和Fourier平面,使得在理想情况下,当系统以平面相干光输入时得到振幅为f(x,y)的输出。换句话说,这相当于把待加密图像f(x,y)综合到相位函数exp[jb(x,y)]和exp[jp(u,v)]中。因此,输入、输出平面之间的关系可以表示为:

1

其中,F和F-1分别表示Fourier变换和逆Fourier变换;exp[jq(x,y)]是优化后输出平面上的相位。于是,加密f(x,y)的问题就相当于寻找方程(1)的解exp[jb(x,y)]、exp[jp(u,v)]以及exp[jq(x,y)]。这实际上是一个级联相位恢复问题,即根据输入输出的振幅约束来恢复输入输出以及频谱平面的相位。与典型的相位恢复问题类似,该问题也可用迭代算法求解。

级联相位恢复算法主要在输入平面、频谱平面以及输出平面之间根据方程(1)所表示的正向变换及其与此相反的反向变换来回迭代,以约束函数[平面波和图像f(x,y)]对每次迭代过程中在输入、输出平面上得到的复函数作振幅调制而保留相位。当一次迭代完成后,在输入平面所得到的相位作为该平面上RPM的相位,正、反向变换到频谱平面上所得到的相位差作为该平面上RPM的相位。然后以这2个相位开始下一次迭代,以此循环,直到满足评判标准。

评判标准可以定义为当前次迭代所得的fk(x,y)与f(x,y)的均方差。

1

但是对于加密,更恰当的评价标准是fk (X,y)与f(x,y)的相关度。因为在很多时候,需要对解密图像进行相关识别,这就需要做相关运算。相关度可以用相关系数:

1

来衡量。式中,Cov(f,fk)是fk (X,y)与f(x,y)的协方差,其为:

1

σf是f (x,y)的方差,其有:

1

式中E(*)是数学期望。

二、计算机模拟结果

为验证算法的有效性,在计算机模拟中,我们尝试把图1综合成2个相位函数。即通过设计2块RPM,置于4-f系统的相应位置上,得到振幅如(或非常近似于)图1分布的输出。假定以振幅为1的平面波入射,同时使待加密图像的总能量与输入平面的能量相等,并且设计的RPM都具有连续相位分布。光波的波长与透镜的焦距都归并到正、逆Fourier变换的因子中以方便实现快速Fourier算法。输入输出以及频谱平面都具有相同的孔径,并且都采样成256×256。

1

算法开始时,先把b(x,y)和p(u,v)均初始化为在0~2π之间均匀分布的随机阵列,使它们具有白噪声分布,然后按照算法流程来回迭代。在迭代过程中,始终保持输入平面的能量不变。我们发现,算法的收敛速度非常快,只需要经过少数几次迭代,就能够迅速找到非常好的解,使得均方差的数量级减少到10 -18,相关系数也从O迅速增大到超过0. 99。迭代100次时所得到的相位exp[jb(x,y)]和exp[jp(x,y)]分别如图2和图3所示[要注意;这里显示的实际上是b(x,y)和p(u,v)除以2π以后的值]。这相当于把图1加密成这2个相位函数。它们的直方图分别如图4所示。这显示它们中各灰度像素点的数目基本相等,满足O~1之间的均匀分布,表明加密效果很好。当正确的exp[jb(x,y)]和expEiP(u,v)]都放在恰当的位置时,在4-f系统的输出平面上检测到的图像如图5所示。比较图1和图5可以发现,它们之间已经没有明显的差别,实际上,均方差已经减小到10 -18量级。这表明解密图像的质量非常高,这种程度的解密图像,是只优化1块相位板的算法所无法得到的。换句话说,以这种算法加密的图像,在知道密钥的情况下,能够得到很精确的解密。

1

对于一个安全系统来说,除了要求在拥有密钥时能够很容易得到解密图像,还有一个更重要的要求,就是应该能够抵抗非法解密。这有非常重要的实际意义。图6显示的是以不正确的exp[jp(u,v)]解密时得到的图像。显然,只能得到噪声,与图1的相关程度非常低。在计算实例中,相关系数只有0. 001 4,即无法解密。当以不正确的exp[jb(x,y)]尝试解密时得到的输出与图6类似,其中一个计算实例表明,它与原始图像的相关系数只有0. 007 4,也无法解密。实际上,exp[jb(x,y)]与exp[jp (u,v)]都是通过优化算法优化产生的,而不是用随机数产生器产生的随机序列,不能匹配。因此,当用后者替换前者尝试解密时,必然会失败,从而保证了系统的安全性。

1

小知识指RPM

RPM是RPM Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。