天天看點

光學中的加密與解密藝術

作者:中科院實體所

光影秘鑰

作為常見的故事設定,一位英雄經曆千難萬險,與無數壞人殊死搏鬥,為的就是搶奪散落在各個地方的幾把鑰匙,隻有同時集齊它們,才能開啟一個神秘的魔盒,獲得所需之物:價值連城的珍寶,阻止地球毀滅的密碼本,控制全世界的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).

撰稿:焦述銘

審稿:曹良才

來源:中國光學

編輯:十一