視覺密碼 Python 疫調 Covid-19 MATLAB

運用人眼感知影像色差能力 實作疫調資訊存取防護機制

視覺密碼學用肉眼解密 資安視覺系統體驗最直覺

這裡將介紹視覺密碼的來由與運作方式,並實際利用Python、MATLAB程式操作結果加深讀者認識,最後探討相關應用研究,結合最近新型冠狀病毒防疫策略,利用視覺安全中秘密分享的特性,加強COVID-19疫調登入系統的人員驗證強度,來避免不法人士入侵。

本文介紹資訊隱藏相關議題,透過資訊隱藏有著無法直接用肉眼察覺的特性,主要以視覺密碼技術的議題切入,探討如何藉由人類的視覺系統來解讀秘密。視覺密碼技術屬於資訊安全的發展與應用範疇,而傳統資安概念下的技術包含密碼學、鑑定機制、電子簽章等等各式各樣的安全機制都需要複雜的計算,幾乎都需要藉由電腦的輔助來完成。因此有了視覺密碼學(Visual Cryptography)/視覺安全(Visual Security)的發展技術,它可以只使用人類的視覺系統,也就是人類的雙眼,就可以達成解密的效果。
背景知識說明
接著,說明視覺安全、視覺安全之疫調應用。
視覺安全
視覺安全是1994年所提出的概念,當加密時將原始機密分散成多張分享影像;解密時再結合所有分散的分享影像,即可解讀原始機密的做法。視覺安全的原理主要是透過人類視覺系統對於影像色差的反應,視覺安全具有視覺化、操作簡易、高度保密等優點,使得資訊安全得以邁向另一個不同的層面。
視覺安全之疫調應用
自2019年以來,新型冠狀病毒之疫情日益嚴峻,對於疫情之控制與掌管勢在必行。若COVID-19疫調系統無人員驗證身分之機制,導致資料庫輕易遭到有心人士解密入侵進而竄改重要資訊,散播不實假消息之於公眾,將會造成巨大影響。
假設一名確診人員的足跡,原本在A地方的H1醫院,被竄改為同一A地方附近的另一個H2醫院,一經權責單位公布後,導致附近居民對住居疫情的誤判,在假疫情的地方造成恐慌閉門不出,而真正疫情足跡所在地的人民則照常生活,病毒就在這人來人往之地悄悄地傳染擴散而不為人知。
又或者是有心人士將檢測紀錄竄改,讓無病者關在隔離病房浪費醫療資源,而染疫者則在足跡所至自由地傳播病毒,造成防疫破口。疫情指揮者也有可能因為錯誤的疫調資訊進行錯誤的人員部署,加速疫情的擴散,由此可見,疫調系統資安的重要性。因此可以利用視覺安全之特性來加密、驗證疫調資訊。
視覺安全分類
視覺安全分類可分成以下四種,分別加以說明。
基礎視覺安全
視覺安全的基本觀念在於將祕密影像(Secret Image)中每一像素擴張成1 × 2的區塊,若原祕密影像圖的像素值是白色,所分解出的分享圖疊合起來會是一黑一白的像素區塊;若原祕密影像圖的像素值是黑色,所分解出來的分享圖疊合則要是二個黑點像素區塊。
藉由這種方式,所分解出來的分享圖個別而言會是無意義的影像,但疊合起來的結果,以人類的視覺系統觀察,卻可還原成原來的祕密影像,基礎視覺安全概念如圖1所示。而其所呈現的效果將使秘密影像有拉長的視覺效果,形成不等比例之擴張。

圖1  視覺安全基本概念。

等比例擴展視覺安全
繼基礎的1 × 2視覺安全技術之後,因為1 × 2視覺安全此方法所產生的分享圖長是原圖的兩倍,當分享圖疊合之後,得到的機密影像寬不變,長卻是原圖的兩倍,造成機密影像變形。因此,接下來陸續發展出等比例擴展的視覺安全技術,以下以2 × 2擴展視覺安全方法為例,可看出分享圖個別而言會是無意義的影像,但疊合起來的結果,以人類的視覺系統而言,仍可還原成原來的祕密影像,並且不會造成變形,如圖2所示。

圖2  2 × 2視覺安全。

不擴展型視覺安全
之前所提出的方法,大多都要擴張其原本的像素個數,但是這會導致原本的影像會有變形擴張的情況發生,因此有不擴張像素的視覺安全機制來解決這個問題,如圖3所示。

圖3  不擴展視覺安全。

灰階影像視覺安全
在這之前所提到的視覺安全所使用到的影像,都是黑白影像。但是實際上使用的影像不只有黑白的,因此有人就提出在灰階影像上實現視覺安全的機制。其實主要是把原本灰階的圖,利用半色調(Halftone)技術,轉換成黑白的影像,但還是感覺的出來其灰階圖原本的明暗感。
在電腦螢幕上,可以利用電流的強和弱來控制其像素所發出的光的強度,因此會產生出色階的效果。但是一般的列印設備(如點陣、噴墨列表機等等),只能控制其像素要印或不要印,而不能控制其強弱,所以才會發展出半色調的技術。而半色調技術,主要是利用人類的眼睛敏銳性不高的特性,因此一塊均勻的網點,可以控制其疏、密程度,利用黑白像素來顯示出原本所要表示出的灰階效果,如圖4∼5所示。

圖4  灰階色階和半色調色階圖。
圖5  灰階影像、黑白影像、半色調影像。

而利用半色調技術轉換過後的黑白影像,再利用之前介紹的黑白視覺安全的方式來處理,如圖6所示,就可得到灰階影像的視覺安全的效果。

圖6  經半色調處理之視覺安全。

利用Python程式實作
雖然視覺密碼大部分只針對二值圖像進行開發,但也有很多關於灰度和彩色圖像的相關討論。這方面所製作的程式,將圖像顏色分解為青色、洋紅色、黃色,然後再單獨處理進行視覺加密。本程式分為四個Python檔案,前三個為加密處理,最後一個做解密處理(程式網址:https://github.com/Srinayan/VisualCryptography),以下詳細介紹加解密流程:

圖7 原始圖像。

加密流程
加密流程將以Anaconda Spyder的Python 3.8進行操作,而圖7所示為本次操作所使用的原始圖像。
STEP 1  先將給定的圖像放置指定資料夾並更名為指定名稱,第一個程式檔會將其分解為三個單獨的C、M、Y單調圖像,結果如圖8所示:

圖8 分解為三個單獨的C、M、Y單調圖像。

STEP 2  將單色調圖像轉換為其各自的半色調,結果如圖9所示:

圖9 將單色調圖像轉換為其各自的半色調。


STEP 3  將單色調影像轉為分享影像使其重疊可還原影像,結果如圖10所示:

圖10 將單色調影像轉為分享影像使其重疊可還原影像。


解密流程
最後合併Share影像,結果如圖11所示:

圖11 合併Share影像。


情境案例分析
蘿娜是一名執法人員,參與COVID-19的疫調工作。蘿娜本身因個人興趣會編寫簡單的程式,當她看到同事每天還在用紙本資料量測體溫,既毫無效率,也浪費資源,於是想為同事建構一個管控疫情的系統。經過日夜不停的努力,查找了許多防疫規範,並多次的改版與再測試,終於完成了COVID-19疫調紀錄系統(圖12)。

圖12  以往的登入系統。

這個系統正式開放運作後,馬上得到了許多人的讚賞,不僅減少了許多紙本資料,也藉由系統有條理的疫調統整讓他們一目瞭然,不再需要翻閱堆積如山的紀錄簿。但經過3個月後,不知道是誰將這個系統外傳,又或是駭客自己摸索而來,她發現存在系統的內部資料從幾天前開始就被惡意篡改,這些資料都是重要的疫調個資,再這樣被竄改、竊取下去,最後因為疫調混亂造成了恐慌,後果可想而知。
於是,蘿娜便找來具有資訊專業的好友阿楷前來協助討論與瞭解相關過程,經過分析後發現,原來是系統的使用者登入資料庫在疫調相關人員登入過程中,被有心人士竊聽封包獲取,再自行登入系統竄改資料,如圖13所示,藉此即窺見資安機制的不足與盲點,也就是說由於未對網站的對外連線以及使用者的登入資料庫進行安全加密,才會讓系統輕易地被入侵。

圖13  登入系統之資安問題。

蘿娜為了不讓疫調系統持續造成混亂,先停用系統的登錄機制,在阿楷的協助下,利用視覺加密技術來建構新的登錄系統。首先,由系統主機產生一張圖片(內含「Share-1」的位元平面影像)交由疫調人員保管至自身的終端機內,供日後登入確認密碼使用。

待相關人員登入時,系統先隨機產生一組隨機密碼,並參照其「Share-1」影像,透過文字分享機制結合視覺密碼的偽裝技術,另外產出1張看起來與一般圖片無異的「Share-2」影像,並要求登入者提交自身的分享影像,利用視覺密碼特性與之疊合得到此次的隨機密碼。
此過程將達到確認性,不可否認性,以及就算遭他人攔截網站登入資料也不會得知密碼的安全性。
確保系統的內部資料不會遭到外人入侵、竄改,進而散播不實之假訊息,整個系統的架構如圖14所示。

圖14  結合視覺密碼的登入系統。


結語
本文介紹了視覺密碼的主要功用、來源以及各種的衍生加密方式,從中可以看出視覺密碼學對於資訊安全有著不可忽視的地位。此外,在實際軟體操作中,也模擬並解說視覺密碼在軟體中的加解密過程,探索在應用層面的可能性。
最後,探討最近的防疫議題,為了保護疫調資訊,須要建構一個安全的資料庫登入系統,並利用視覺密碼特有的加密方式使得有心人士就算取得系統登入資訊,也因無分享圖像而無法解開密碼進行入侵。
<本文作者:社團法人台灣E化資安分析管理協會(ESAM, https://www.esam.io/),中央警察大學資訊密碼暨建構實驗室(ICCL),1998年12月成立,目前由王旭正教授領軍,並致力於資訊安全、情資安全與鑑識科學, 資料隱藏與資料快速搜尋之研究,以為人們於網際網路(Internet)世界探索的安全保障(https://hera.secforensics.org/)> 
技術專欄補充資料,請直接參閱以下網址:

https://risu.io/tfMpj

 


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!