本文由「Light科普坊」出品

撰稿:焦述铭

审稿:曹良才

光影秘钥

作为常见的故事设定,一位英雄经历千难万险,与无数坏人殊死搏斗,为的就是抢夺散落在各个地方的几把钥匙,只有同时集齐它们,才能开启一个神秘的魔盒,获得所需之物:价值连城的珍宝,阻止地球毁灭的密码本,控制全世界的AI源代码……

每把钥匙缺一不可,意味着魔盒的打开需要很高的安全权限,这其实在我国古代使用的兵符(或者称为虎符)中就有所体现:兵符由左右两半组成,就如同两把钥匙,分别由君王和军队将领保管,调动军队时,由君主派出的使臣将两半兵符合二为一,命令才能生效,“信陵君窃符救赵”所说的就是这种兵符。而在八零后怀旧动漫《七龙珠》中,集齐藏在世界各地的七颗龙珠,并念出咒文,可以召唤出神龙,替许愿人达成任何愿望。

在光学世界,有很多种不同的办法可以制造出这种钥匙,单独每一把钥匙并不会展示出有用的信息,只有将它们同时“合体”,隐藏的秘密文字或者图案才会显现出来。

图像可视加密的魔术效果

光可以被不透明的障碍物所遮挡,这是一条人人都知道的常识,只要将这一原理巧妙加以利用,就可以实现一种简单易行的图像可视加密(visual cryptography)效果。对于一张要隐藏的简单黑白图片,每个像素或者是黑色,或者是白色,如果把图案打印在透明胶片上,黑色像素表示那一点是不透光的,白色像素表示那一点是透明的;如果把图案通过打孔的卡片来展示,则黑色像素表示那一点是没有打孔的,白色像素表示那一点是打孔透光的。

无论采用哪种方式,隐藏的图案都可以分解为两张或者多张表面上看起来随机的黑白图案,每一个子图案称为一个可视密钥,像每一把用于开启魔盒的钥匙,对应于一张印有图案的胶片或者打孔的卡片。当把这些胶片或者卡片对齐叠加在一起,无论两层的“双皮奶”,三层的“三明治”,还是“拿破仑千层酥”,隐藏的图案都可以轻易恢复出来,直接映入眼帘。

打开网易新闻 查看更多图片

图1:图像可视加密:打印在胶片上两个看似杂乱无章的图案(a)和(b)重叠之后,就可以将隐藏的数字1图案显现出来,像(c)所展示的那样 [1]

图2:图像可视加密的动态演示

图源: wikipedia

其中的关键在于,两个或者多个可视密钥对应的像素叠加之后,只要其中至少有一个是黑色的(不透明的),就相当于把其他层的像素都遮挡住了,叠加后的结果中这一像素也会是黑色的。反过来说,只有所有可视密钥对应的某一像素都是透明的,叠加后这一像素才会是透明的。设计可视密钥时,需要按照这一规则对于每个像素进行适当的黑色(不透明)或白色(透明)编码。

有一款魔术道具,包含了四张打孔的卡片,外表看起来小孔的位置无规律可循,卡片上也没有任何有意义的图案,但只要观众说出1到9任何一个数字,魔术师以适当方式叠加四张卡片,立刻就可以展示出观众所要求的数字,让旁观者惊叹不已。

图3:上方四张卡片包含着很多“随机”分布的小孔,只要你说出1到9之间任何一个数字,四张卡片重叠之后就可以显示出这个数字

图源:作者拍摄

可视密钥不仅可以隐藏简单的字母和数字,更复杂的图像也完全不在话下,图4就是一个例子。

打开网易新闻 查看更多图片

图4:利用两个可视密钥图片(左和中)隐藏一张复杂图像(右)[2]

而在另一个魔术中,两张不同扑克牌可以来回变换,也是利用了类似图像可视加密的技巧,细节在这里就不透露了,大家可以自行思考。

打开网易新闻 查看更多视频
揭秘!光学中的加密与解密艺术

视频1:牌夹中的扑克牌为什么会在黑桃5和红桃6之间来回变化?

图源:作者拍摄

随机点立体图:双眼是天然的解锁钥匙

我们的左右双眼不仅是心灵的窗口,也可以作为守护秘密的两把天然钥匙。左右眼位置相隔几厘米,造成观看角度稍微不同,同一个物体的左右眼两个画面会存在一定“视差”,这在很大程度上,是“远近高低各不同”立体感的来源。如果把稍有视差的两个画面分别强行地展示在左右眼面前,观看者也会不由自主地产生虚拟的立体感。影院中戴上眼镜观看3D电影时,左右镜片分别只允许不同方向的偏振光通过,为的就是实现这种双目三维显示的效果。而苹果公司的Vision Pro虚拟现实头戴显示设备能够创造出立体感,播放新款苹果手机拍摄的“空间视频”,依靠的是左右眼前方两块LED显示屏可以分别显示不同内容。

下面这两张图片看起来同样是些杂乱无章的黑白雪花点,不过解锁方法不是打印在透明胶片上重叠,而是像观看3D电影那样,让两张图分别单独被左眼和右眼看到。

图5:依靠左右眼立体视觉来解锁秘密的两张密钥图片[3]

这样做之后,眼前看到的结果会让你大吃一惊,隐藏的字母图案会像浮雕一样凹陷或者凸现出来,这是由于以上两个密钥图也不是完全随机的,里面分别隐藏着具有左右眼视差的字母图案,双目三维显示被用于了秘密图像的还原。

图6:恢复出隐藏文字的效果[3]

而在眼科医学中,这种雪花点图片被称为“随机点立体图”,可以用于检测立体视觉能力。

打开网易新闻 查看更多图片

图7:眼科医生使用的随机点立体图和红蓝眼镜,将左右眼随机点图分别用红蓝两种颜色打印,不同颜色的左右镜片恰好可以将对应图案过滤分离出来,立体视觉功能正常者就可以看到三维物体图像(比如一个悬浮的三角形或者一个凸出来的字母)

图源:作者拍摄

全息图密钥:没有做不到,只有想不到

运用丰富多样的光学原理,还可以设计出更加精巧的“光钥匙”。下面这两个小玻璃片,看起来没什么特别,只是涂上了熊猫或者女士的图案而已,但外表伪装之下其实暗藏玄机[4]。

图8:两个外表伪装起来的全息图玻璃片密钥[4]

它们并不是普通的玻璃片,而是两张“全息图”,玻璃表面不同位置的厚度都是经过优化编码设计的,稍微有差异,并且通过光刻方式加工出来,这样当一束激光照射到玻璃片上之后,不同位置光场的相位会发生变化,穿过玻璃片向前衍射传播一段距离后,最终可以形成一个重建图像。有趣的是,这一重建图像与表面涂抹的图案可以完全无关,全息图只是所重建图像光场信息的载体,却并没有直接将图像展示在上面。

作为例子,从熊猫和女士玻璃片全息图中重建出的图像分别是下图的两个棋盘格子,而两个棋盘格子图案还可以通过棱镜重叠到一起,最后看到的就是“OK”的文字图案,这才是两块玻璃片中所真正隐藏的信息,这样的光钥匙解锁方式够隐蔽的吧?

图9:两个全息图玻璃片分别在激光照射下重建出的图像(左和中)以及两者重叠后的最终解密结果(右)[5]

同样是利用全息图作为“光钥匙”,下面这个不一样的设计也将秘密图像埋藏在了最深处 [5] 。两张全息图,分别使用光束照射后,可以各自重建出不同的图像,但这也只是表面伪装,并不是这两把钥匙真正要开启的魔盒。正确的解锁方式是像糖葫芦一样,把两张全息图级联串在一起,并且要保持事先所设定的间隔距离,这样照射光束穿过第一张全息图并被调制之后,再经过第二张全息图,经历同样的过程,最后才能重建出真正的隐藏图像,所揭开的“谜底”与每张全息图单独重建出的图像并不一样。为了实现这种效果,需要利用专门的优化算法来编码设计这两张特殊的全息图。

图10:一个将两张全息图级联的保护秘密图像信息方案[5]

当然,以上所说的全息图密钥数量不只局限于两个,也可以设计出三个,四个甚至更多个密钥“齐心协力”才能还原出隐藏图像的升级版方案,其中每张全息图“一个都不能少”。

将一张要隐藏的秘密图像,分解为各位解锁者手中的钥匙,光可以提供各种安全又方便的解决方案,每项巧妙的设计既在想象意料之外,又在光学原理之中。

参考文献

[1] S. Jiao, J. Feng, Y. Gao, T. Lei, and X. Yuan, "Visual cryptography in single-pixel imaging," Opt. Express 28(5), 7301-7313 (2020).

[2] C. C. Lin and W. H. Tsai, “Visual cryptography for gray-level images by dithering techniques,” Pattern Recogn. Lett. 24(1-3), 349–358 (2003).

[3] K.-H. Lee and P. -L. Chiu, "Sharing Visual Secrets in Single Image Random Dot Stereograms," IEEE Transactions on Image Processing 23(10), 4336-4347 (2014).

[4] Y. Shi and X. Yang, “Optical hiding with visual cryptography,” J. Opt. 19(11), 115703 (2017).

[5] P. Georgi, Q. Wei, B. Sain, C. Schlickriede, Y. Wang, L. Huang, and T. Zentgraf, “Optical secret sharing with cascaded metasurface holography,” Sci. Adv. 7(16), eabf9718 (2021).

监制:赵阳

编辑:赵唯

本文转载自《中国光学 》微信公众号

揭秘!光学中的加密与解密艺术

《物理》50年精选文章