当前位置: 首页 > news >正文

计算机加密技术图片,如何用迭代傅里叶变换算法实现光学分级图像加密

近年来,基于光学信息处理技术对图像进行加密和安全认证等方面的研究受到了越来越多的关注。那么接下来,我就给大家介绍一下如何用迭代傅里叶变换算法来实现光学分级图像加密。

一、迭代傅里叶变换算法与光学图像加密

迭代傅里叶变换算法是衍射光学元件设计中常用的算法之一,设迭代开始时输入面上的输入为:

1c378.png

其中(x,y)为空间位置坐标,a0,1(x,y)为振幅分布(一般取常数1),Φ1(x,y)为相位函数。经傅里叶变换在输出面上的输出为:

1c379.png

用所期望得到的振幅分布B0(x′,y′)替代(2)式中的振幅分布A0,1(x′,y′),保留其相位分布Φ1(x′,y′),从而得到一个新的复振幅分布,再进行傅里叶逆变换回到输入面,在输入面上得到:

1c380.png

在输入面上保留(3)式的相位分布,使其振幅取均匀分布(如取常数1),从而得到一个新的复振幅分布,将之作为下一次迭代的输入。经多次迭代(设经k次迭代收敛),直到输出面上得到的振幅分布A0,k(x′,y′)与所期望得到的振幅分布B0(x′,y′)相同(最接近)为止。

采用以上迭代傅里叶变换算法和图1所示的光学傅里叶变换系统可实现图像加密。设g(x,y)为期望输出图像,将两个相位分布统计无关的相位板exp[i<2,1(x,y)]和exp[i<1,1(u,v)]分别置于P2和P1面上,其中(x,y)表示空域坐标,(u,v)表示频域坐标;双下标中的第一个下标表示相位板的位置次序,第二个下标表示迭代次数(迭代开始时为1),输出面(P0面)上用单下标表示迭代次数。

图像加密过程如下:

输入面exp[i<2,1(x,y)]的傅里叶谱与频谱面上的exp[i<1,1(u,v)]相乘,再经傅里叶逆变换在输出面上得到一个复函数分布,用g(x,y)替代该复函数分布的振幅而保留其相位,从而得到一个新的复函数分布:

1c381.png

对g1(x,y)进行傅里叶变换,并与频谱面上的exp[i<1,1(u,v)]进行相应运算(是否进行相应运算及运算方法根据需要和所用的约束条件来定),再进行一次傅里叶逆变换在输入面上得到一个复函数分布,仅保留该复函数分布的相位(使其振幅分布取常数1)作为第二次迭代时该面上的输入exp[i<2,2(x,y)],至此一次迭代完成。在每一迭代过程中,都要在输出面上根据预先设定的判据来判断迭代是否收敛(输出面上的振幅分布是否与期望输出图像相同),可采用输出面上的振幅分布与期望输出图像的相关系数作为判据。

1c382.png

与衍射光学元件设计中所用的传统迭代傅里叶变换算法相比,基于光学4f系统、采用迭代傅里叶变换算法实现图像加密有以下不同:1)通过迭代得到两个相位板exp[i<1,k(u,v)]和exp[i<2,k(x,y)](假设经过k次迭代后收敛),要想得到期望输出图像(解密图像)两个相位板缺一不可,而且位次要正确;2)既可以将图像信息加密到其中的一个相位板中[3,4](迭代过程中只改变其中一个相位板的相位分布),也可以将图像信息分散加密到两个相位板中(迭代过程中同时改变两个相位板的相位分布)。在只改变一个相位板相位分布的方法中,可通过固定一个面(输入面或频谱面)上的相位板不变,另一个面(频谱面或输入面)上放置不同的相位板,在输出面上得到不同的解密图像;在同时改变两个相位板相位分布的方法中,必须同时更换输入面上和频谱面上的两个相位板,才能在输出面上得到不同的解密图像。

二、迭代傅里叶变换算法用于光学分级图像加密

图2所示是基于光学傅里叶变换、采用迭代傅里叶变换算法实现光学分级图像文件加密的原理图,gn(x,y)表示各级加密的期望输出图像。分级加密过程是逐级渐进的,只有先完成低密级加密后,才能在此基础上进行更高密级的加密。图2虚线框部分是一个光学4f系统,可实现一级图像加密,加密过程如同第二节所述。在一级加密过程中,采用同时改变两个相位板相位分布的方法可加快收敛速度并提高解密图像质量,设一级加密的期望输出图像为g1(x,y),经过k1次迭代后收敛,在P1和P2面分别得到相位板exp[i<1,k1(u,v)]和exp[i<2,k1(x,y)];解密时只要在P1和P2面上分别放置这两块相位板,取P0面上输出图像的振幅分布,就得到与g1(x,y)最接近的解密图像。

1c383.png

图2实线框部分是实现二级图像加密的系统,设二级加密的期望输出图像为g2(x,y),保持一级图像加密结束后在P1和P2面上所得的相位板exp[i<1,k1(u,v)]和exp[i<2,k1(x,y)]不变,经过k2次迭代后,在P3面上得到相位板exp[i<3,k2(u,v)];在迭代过程中,P0和P3面上施加的约束条件与一级加密中在P0和P2面上施加的约束条件相同;解密时需要分别在P1,P2和P3面上依次放置exp[i<1,k1(u,v)],exp[i<2,k1(x,y)]和exp[i<3,k2(u,v)],取P0面上输出图像的振幅分布,就能得到与g2(x,y)最接近的解密图像。二级加密迭代流程图如图3所示。

1c386.png依次类推,可实现多级图像加密。在多级加密过程中,P1面上的相位板exp[i<1,k1(u,v)]对所有密级都是相同的,可以作为系统的一部分固定在系统中。

分级图像加密方法可以将信息按密级分类,用于对不同权限级别的用户开放,密级低的信息用一级加密,只对权限级别低的用户开放,该类用户只需一把密钥(相位板exp[i<2,k1(x,y)])即可,密级高一点的信息用二级加密,可对权限级别高一点的用户开放,该用户需要两把密钥(exp[i<2,k1(x,y)]和exp[i<3,k2(u,v)])。依次类推,可对密级更高的信息通过多级加密,从而设定更高级别的保密权限。在分级图像的加密方法中,权限级别高的用户可得到密级低的信息,而权限级别低的用户不能得到密级高的信息。分级加密系统中,位于P1面上的相位板对同一类型用户群中具有不同权限级别的成员是共同的,对不同类型的用户群可以是不同的。通过这种设置,可以区分不同类型的用户群,也可以为不同类型的用户群提供不同类型的信息。显然,这种分级图像加密方法还可与图像判别系统相结合,用于分级安全认证和准入检查。

三、计算机模拟计算结果

以三级图像加密为例进行计算机模拟实验。选取三幅图像(Airplane,Lena和Cameraman)依次作为第一、二、三级加密的期望输出图像,如图4所示。

1c384.png每幅图像的像素为128×128,灰度级为256。选取4个在0~2π之间均匀分布的随机矩阵作为迭代开始前的相位板,像素也为128×128。图5是依据第三节提出的加密方法每级迭代100次最终所得到的相位板分布及解密输出图像。

1c385.png由图5所示的结果可以看出,期望输出图像的密级越高,解密时所需的相位板的数目越多。从表1给出的三幅解密输出图像与各自相应期望输出图像的相关系数可以看出,各级解密输出图像的质量都很高。

1c387.png

因此,该方法可用于图像信息的分级加密。对权限级别低的用户,由于拥有的相位板数目少,只能得到部分信息;对于权限级别最高的用户,因为拥有全部相位板,所以既可以用部分相位板得到密级较低的信息,又可以通过增加相位板来得到密级更高(直至最高)的信息。此外,在用多个相位板解密过程中,相位板放置次序必须正确,否则得不到正确的解密输出图像,图6是在几组相位板次序放置错误的情况下所得到的解密输出图像,可见此时根本得不到任何图像信息。

1c388.png

小知识之傅里叶变换

傅里叶变换能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。最初傅里叶分析是作为热过程的解析分析的工具被提出的。

相关文章:

  • js css 实现进度条,css+js实现圆形进度条
  • 在css中设置箭头,使用CSS在工具提示中添加箭头
  • ajax table 传参数,如何通过AJAX调用jQuery DataTable传递额外参数
  • validate成功后ajax提交,jquery validate和jquery form 插件组合实现验证表单后AJAX提交...
  • 酒店系统服务器推荐,五星级酒店有哪些不易发现的免费服务?
  • java 二叉树的高度_Java
  • 语言专升本必背代码_立克分享|专升本考试语文必背知识点,绝对的干货!
  • c语言 编程输出如下n阶蛇形矩阵_C语言 | 函数实现I love you
  • 乐高机器人投篮编程_乐高机器人WeDo编程和EV3编程课能学到什么
  • 学习java后端路线心得_我最推荐的一张Java后端学习路线图,Java工程师必备
  • c语言打印乱码_c语言输出特殊字符乱码的示例
  • 台电p10hd拆解_台电官方论坛 - P10HD优缺点详评及root指南 - 平板笔记本
  • uniapp小程序让页面滚动到底部_uniApp / 小程序实现一个view滚动到一定高度置顶显示...
  • vc读取北通手柄按键_《Spiritfarer》北通宙斯手柄按键功能介绍 手柄控制按键有哪些?...
  • ie print没反应_在IE9下,window.print()不弹出打印对话框的解决办法