時間:2023-01-11 22:28:33
序論:寫作是一種深度的自我表達。它要求我們深入探索自己的思想和情感,挖掘那些隱藏在內心深處的真相,好投稿為您帶來了七篇隱藏技術范文,愿它們成為您寫作過程中的靈感催化劑,助力您的創作。
關鍵詞:進程;隱藏
中圖分類號:TP309文獻標識碼:A文章編號:1009-3044(2008)30-0740-02
Windows Process Hiding Method
SHI Yong-lin,PAN Jin,PANG Xiong-chang,XIE Qing-song
(Department one of Xi'an Communication Institute, Xi'an 710016,China)
Abstract: This paper gives a detail explanation of how to hide process on windows, it introduces three ways to achieve the goal.It also tell the strong and weak point of the different methods.
Key words: process;hiding
進程隱藏,也就在用戶不知情的情況下,悄悄執行自己的代碼。這一直是病毒、木馬程序設計者不斷探求的重要技術,因為這些程序都是見不得光的,都需要較好的隱藏和保護自己。了解進程隱藏技術,是開發防病毒和木馬軟件的基礎,一般來講,一個程序如果采用進程隱藏技術隱藏自己,那大多情況下其一定是一個病毒或木馬等惡意程序。但有些情況下,進程隱藏也是某些類型程序所需要的功能,如某些安全控制程序,例如上網控制系統,其功能要求只能上單位局域網,不能上internet,這種程序需要常駐系統,不能停止和卸載,這則要求進程能有效保護和隱藏自己,以防止用戶惡意刪除和卸載。
進程隱藏是一個古老但一直成長的技術,一直以來隱藏和破解隱藏的斗爭都在進行。從原理上講任何隱藏進程因為其都不能從操作系統的進程調度鏈中刪除,所以說都不能達到真正的隱藏,但是采用多種隱藏和保護機制,的確可以最大限度的保護程序。
進程隱藏現在主要有以下幾種技術:
1) 利用CreateRemoteThread()函數和代碼注入技術在宿主進程,如explorer中運行自己的代碼。
2) 利用API攔截技術攔截NtQuerySystemInformation函數,過濾掉要隱藏的進程,因為windows任務管理器調用這個函數來獲得系統運行的進程列表,這樣在windows任務管理器中就隱藏了目標進程。
3) 把要隱藏的進程從系統活動進程列表(EPROCESS LIST_ENTRY)中摘除,這樣其他的查找進程的函數都不能獲取目標進程的信息了。
1 利用CreateRemoteThread進行進程隱藏
這種方法的主要原理是通過代碼注入技術把代碼注入到宿主進程中,然后通過調用CreateRemoteThread()函數在宿主進程中生成自己的線程,運行自己的代碼。可以看出這種方法的一個主要工作是代碼的注入,也就是怎樣才能把自己的代碼映射到宿主進程的空間中。
代碼注入技術分為動態代碼注入技術和靜態代碼注入技術,動態代碼注入技術就是在進程啟動后或在進程啟動時在進程的運行空間中注入代碼的技術,而靜態注入技術就是在PE格式的.exe文件中插入代碼。靜態注入技術是病毒感染文件的常用方法,在文獻[1]中有詳細的敘述。動態注入技術也分為直接代碼注入技術和以dll形式的注入技術,直接代碼注入技術是利用VirtualAllocEx和CreateRemoteThread兩個API來進行的函數級代碼注入技術,可以采用匯編的形式,這種方法在文獻[1]中的進程隱藏一章中有詳細的講解,也可以采用高級語言如c語言的形式,這種方法有興趣的可以參考文獻[2]。直接代碼注入技術對注入的代碼有很高的要求,要解決地址重定位等問題,而且注入代碼的大小也受到很大的限制,所以不適用于進程級代碼的注入。所以進程隱藏一般采用dll形式的動態代碼注入技術。
利用CreateRemoteThread進行dll形式的動態代碼注入技術在[3]中有較詳細的論述。要在其他的進程中注入dll,就要求我們能在那個進程中調用LoadLibrary() API,但我們沒有權限獲得其他進程的執行控制權,幸好微軟提供了函數CreateRemoteThread()可以在其他的進程中創建遠程線程,而恰好線程函數的原型:
DWORD WINAPI ThreadProc(LPVOID lpParameter);
和LoadLibrary()的原型:
HMODULE WINAPI LoadLibrary(LPCTSTR lpFileName);
HMODULE和DWORD都是雙字節,調用方式都是WINAPI,LPVOID和LPCTSTR都是雙字節指針,所以函數原型是一樣的。從而我們利用CreateRemoteThread()來欺騙操作系統,使其執行LoadLibrary() API,如下:
hThread = ::CreateRemoteThread(
hProcessForHooking, //要插入dll的進程句柄
NULL,
0,
pfnLoadLibrary,// LoadLibrary函數的地址
"C:\\HookTool.dll", //要注入的dll的全路徑
0,
NULL);
LoadLibrary函數的地址因為其所在的Kernel32.DLL的映射地址在所有進程中是確定的,所以其值可以通過調用GetProcAddress()獲得。
這種進程隱藏的方法要把進程執行的代碼封裝進dll中,這可能不能滿足某些程序設計者的要求,而且經測試,瑞星等殺毒軟件都禁止這種方法的代碼注入,所以這種隱藏技術很難成功。
2 利用API攔截技術進行進程隱藏
API攔截的主要目的是在其他應用程序調用API之前將其攔截,由攔截者先處理傳遞的參數數據,然后決定是否再調用原來的API。比如API
BOOL TextOutA( HDC hdc, int nXStart,int nYStart,LPCTSTR lpString, int cbString);
在其他程序調用這個API之前,攔截程序可以先捕獲這個調用,先對參數等進行處理,比如將cbString翻譯為中文等,然后再調用原來的TextOutA進行文本輸出,這樣輸出的文本就變成中文了。
因為任務管理器是調用ntdll.dll中的NtQuerySystemInformation()API來獲得進程列表的,所以只要我們先截獲這個調用,在我們的替換函數中先調用原來的NtQuerySystemInformation,從返回的進程信息鏈表中去除要隱藏的目標進程的信息,然后把改變的進程列表返回給任務管理器,那么目標進程則從任務管理器中隱藏。NtQuerySystemInformation函數的原形如下:
NTSTATUSNTAPI ZwQuerySystemInformation(
INULONGSystemInformationClass,
INPVOIDSystemInformation,
INULONGSystemInformationLength,
OUT PULONG ReturnLength
);
其中SystemInformation中返回的就是如下結構體構成的進程信息鏈表。
struct _SYSTEM_PROCESSES
{ULONGNextEntryDelta;
ULONGThreadCount;
......
UNICODE_STRING ProcessName;
KPRIORITYBasePriority;
ULONGProcessId;
......};
其中ProcessName指向的就是進程的可執行文件名,我們可以通過可執行文件名或進程ID ProcessId進行進程過濾。
從上面介紹可以看出,采用這種方法進行進程隱藏的關鍵是怎樣進行API攔截,API攔截可以在用戶層(ring3)進行,也可以在內核層(ring0)中進行。用戶層的API攔截技術可以參考文獻[4],這里詳細介紹了用戶層API攔截的各種技術。內核層的API攔截技術可以參考文獻[5] 監控Native API調用一章,它的原理是通過替換windows系統服務描述符表中的Native API處理例程的入口地址來截獲API。
這種技術可靠性好,容易實現,并且可以進行其他功能的隱藏,如注冊表項隱藏,文件隱藏等,還可以通過截獲進程控制API來防止殺死進程,所以可以更好的隱藏和保護進程,所以這種方法使用的較廣泛。
3 修改系統活動進程列表
Window系統內部維護了一個活動進程鏈表,其節點結構體如下:
typedef struct _EPROCESS
{
/*000*/ KPROCESS Pcb;
/*06C*/ NTSTATUS ExitStatus;
/*070*/ KEVENT LockEvent;
/*080*/ DWORD LockCount;
/*084*/ DWORD d084;
/*088*/ LARGE_INTEGER CreateTime;
/*090*/ LARGE_INTEGER ExitTime;
/*098*/ PVOID LockOwner;
/*09C*/ DWORD UniqueProcessId;
/*0A0*/ LIST_ENTRY ActiveProcessLinks;
......
} EPROCESS;
typedef struct _LIST_ENTRY
{
struct _LIST_ENTRY *Flink;
struct _LIST_ENTRY *Blink;
} LIST_ENTRY;
系統通過查找這個鏈表獲得系統中進程的列表,所以如果把要隱藏的進程從這個鏈表中去除,則可以從系統中隱藏此進程.查找可以通過進程ID UniqueProcessId進行。
這種方法也是既可以在內核中進行,也可以在應用層進行。
(下轉第744頁)
(上接第741頁)
在內核層采用這種方法隱藏進程比較簡單,這個鏈表的表頭存儲在系統變量PsActiveProcessHead中,但這個變量windows沒有輸出,但我們可以通過PsGetCurrentProcess()函數獲取當前進程的EPROCESS結構體指針,然后通過ActiveProcessLinks遍歷列表來查找要隱藏的進程。這里需要注意的是不同版本的windows系統的EPROCESS結構可能不同。
在用戶層采用這種方法的原理也很簡單,因為windows系統在物理內存中的位置是固定的,所以活動進程鏈表的首地址也是固定的,通過調用ZwOpenSection()函數讀取和修改物理內存,然后修改的鏈表的相應位置來去除目標進程。在用戶層采用這種方法隱藏進程可靠性較差,因為和windows系統的版本關系太密切,不同windows版本中的很多參數都不同,如鏈表頭的位置,window內存的映像等,所以需要修改程序的很多參數,而且很多殺毒軟件都禁止對物理內存的直接讀寫,所以很多情況下都不能達到對進程的隱藏。
4 總結
本文從原理上介紹了進程隱藏的幾種方法,其中比較可靠和常用的是利用API攔截技術和在內核層修改活動進程鏈表兩種方法。就像在本文開始所講到的一樣,隱藏都是相對的,只要進程還在系統中運行,就必須服從windows的調度,那么其在系統中就一定可以查找得到,所以一些系統工具,如IceSword等就可以查找到隱藏的進程,但我們可以采用多種技術的復合,如三線程進程保護機制,文件隱藏機制等,增加進程的防殺功能,可以從一定程度上保護進程。
參考文獻:
[1] 羅云彬.Windows環境下32位匯編語言程序設計[M].電子工業出版社,200,10.
[2] Ciro Sisman Pereira.Portable Executable (P.E.) Code Injection: Injecting an Entire C[DB/OL].
[3] Jeffrey Ritcher.Load Your 32-bit DLL into Another Process's Address Space Using INJLIB[J].MSJ May 1994.
[4] 史永林.Windows API攔截技術[J].電腦知識與技術 2008,3(9):
關鍵詞:信息;隱藏技術;相關研究
DOI:10.16640/ki.37-1222/t.2016.11.135
0 引言
隨著科技的進步,通信技術的飛躍式發展,計算機互聯網的迅速普及,使得越來越多的人和公司通過網絡傳輸大量的數據文件,但是由于互聯網具有連接形式多樣性以及開放性和互聯性,使得這些互聯網上傳輸的數據文件很容易受到攻擊或竊取,如果涉及國家安全和軍隊建設乃至個人的隱私信息方面,信息安全問題將變的更加敏感。查閱文獻,發現現階段研究人員關注的熱點有倆個,即信息加密和信息隱藏,其中信息隱藏就是把需要傳遞的秘密信息進行偽裝,隱藏在普通文件中,即使文件被攻擊、竊取,也不易發現其中的隱藏信息,可以有效的加強信息在傳輸過程中的安全性,因此有必要對信息隱藏技術進行進一步的研究。
1 信息隱藏技術的含義
信息隱藏是利用人類對多媒體數字信號不敏感,將秘密信息隱藏在一個不被關注的多媒體信號中,這樣敏感信息不會被發現,而且也不會影響到多媒體信號的感覺效果和使用價值,當我們利用這樣的技術傳輸敏感信息時,可以對第三方起到混淆的作用。一般來說隱秘信息的載體選擇有多種類型,比如我們經常見到的圖像、聲音、視頻還有文檔都可以作為敏感信息的載體,這樣做的目的是不引人注目,其次即使載體信息被截獲,也很難對隱藏信息進行提取,安全性得到了極大的提高。
2 信息隱藏的具體方法
參考傳統加密技術方法,我們有保留的基礎上對信息隱藏技術進行了一定的改進。常用的具體方法有數字水印技術、疊像技術以及替聲技術等。其中,疊像技術是1994年提出的可視密碼術(VisualCryptography),用有意義的明文圖像代替原來的隨機噪聲圖象,使之更具安全性。數字水印(Digital Watermarking)技術是將一些標識信息(即數字水印)直接嵌入數字載體中,但不影響原載體的使用價值,也不容易被人的知覺系統覺察。通過這些隱藏在載體中的信息,可以達到確認內容創建者、購買者、傳送隱秘信息或者判斷載體是否被篡改等目的。替聲技術與疊像技術很相似,它是通過對聲音信息的處理,使得原來的對象和內容都發生改變,從而達到將真正的聲音信息隱藏起來的目的。替聲技術可以用于制作安全電話,使用這種電話,可以對通信內容加以保密。
(1)替換技術。把秘密信息偽裝成載體榮譽部分,進行替換后載體的可視性并沒有被破壞,常用的手段有最小有效位替換、偽裝隨機替換,載體的奇偶位對換,圖像的調色板替換等。
(2)變換技術。將秘密信息做正交變換,利用擴頻技術把變換后的秘密信息隱藏到載體的變換域中。這種技術的優點是,它通過不同的空間頻率敏感的感官系統來確定秘密信息具體的嵌入位置及嵌入強度,有效的對嵌入信息進行了隱藏。
(3)擴頻技術。當對隱藏秘密信息的載體做過濾操作的時候,秘密信息可能被部分過濾,造成秘密信息丟失。在嵌入秘密信息時進行多次重復的代碼擴展,對載體進行過濾時,秘密信息保留的概率大大增加。信息數據率高許多倍偽隨機碼把包含基帶信號的頻譜數據進行擴展,形成寬頻帶低功率譜密度的信號。
3 信息隱藏的特點
信息隱藏有不同的分支,但所有分支都有很多共同的特點。第一,信息隱藏系統必須保證隱藏信息的不可見性,即在把秘密信息嵌入載體的過程中不能留下任何的痕跡,如果這一過程影響到圖像質量,圖像信息嵌入價值將減少,信息隱藏系統安全性降低。 其次,在對載體進行矢量變換操作以后,載體中的隱藏信息任然可以保持完整,并可以極大的概率被提取。 第三,要實現隱藏信息在載體中的不可見性,隱藏信息的長度與載體的長度必須保持一個適度的量,因為載體容量與信息隱藏率是正比關系的。 第四,要足夠安全,即攻擊者不能有效的讀取和修改載體中的秘密信息。
4 網絡通信中信息隱藏技術的應用
網絡通信中往往根據信息載體的不同,利用文本、語音、視頻以及二進制的隱寫,把秘密信息隱藏在具體的公開轉播的數字多媒體信號中,使得秘密信息可以在網絡中進行安全有效的傳輸的一種技術。
(1)數據保密。在公司之間進行談判時,可能會利用網絡傳遞一些敏感的信息,比如雙方的協議、合同、報價等重要文件,包括數字簽名,為了保護這些敏感信息的安全性,可以把這些信息以隱藏的形式傳遞給對方,這樣我們就可以在非相關人員難以發覺的狀態下完成彼此信息交流。
(2)數據的不可抵賴性。在網絡上進行談判,簽訂協議等行為,由于不能互相見面,為保證雙方不能否認自己做過的承諾并且接受對方傳遞的條款,需要在傳遞的信息中加入簽名水印,確認其行為目的。
(3)數據的完整性。為保證我們接收到的信息是真實的,沒有在網絡傳遞的過程中被篡改,可以在傳遞的具體多媒體數據中嵌入一個完整信息,收到多媒體數據后可以對完整信息進行提取,用于確定此多媒體數據是否被篡改。
信息隱藏技術是目前學術界倍受關注的一個熱點領域,由于現代通信技術的爆炸式發展,互聯網飛速普及,每時每刻都有海量的信息在網絡上傳輸,對敏感信息安全進行保護變的更加具有現實意義。在眾多研究人員的不懈努力下,信息隱藏技術取得很多的成果,但是,信息隱藏技術作為一個跨學科的技術體系,我們對它的研究還不是很完善,還有許多的問題沒有解決。信息隱藏技術的成熟性、實用性還與密碼加密的網絡傳輸技術相比較,還有很大差距。但是,其潛在價值是無法估量的,在未來甚至是不可不取代的,我們相信,隨著技術的進一步發展,信息隱藏技術將涌現出更多的思路和辦法,將對信息安全系統的未來扮演重要的角色。
參考文獻:
[1]王育民,張彤,黃繼武.信息隱藏――理論與技術[M].北京清華大學出版社,2006.
[2]丁瑋,齊東旭.數字圖像變換及信息隱藏與偽裝技術[F].計算機學報,1998,21(09):838-843.
[關鍵詞] 信息隱藏信息安全電子商務數據保密防偽
通常人們認為對信息加密就可以保證通訊的安全,但是在網絡傳輸中僅僅使用加密技術通常是不夠的。現代密碼學開發出來的加解密系統不管是對稱密鑰系統(如DES),還是安全性更高的公開密鑰系統(RSA),經過加密算法處理所生成的密文具有隨機性、不可讀,反而明確提示了保密信息的存在,因而很容易引起監控者的注意,并以此為依據進行對密文的破譯或對發送者和接收者的攻擊。采用加密技術的另一個潛在缺點是隨著計算機硬件的迅速發展,具有并行計算能力的破解技術的日益成熟,僅通過增加密鑰長度來達到增強安全性已不再是唯一的可行方法。因此,近年來國際上出現了信息隱藏技術,它是一種不同于密碼術的技術,它在電子商務中安全體系中必將起到重要作用。
一、信息隱藏技術的含義與方法
信息隱藏技術(Information Hiding),也稱作數據隱藏(Data Hiding),它是集多學科理論與技術于一身的新興技術領域。信息隱藏技術主要是指將特定的信息嵌入數字化宿主信息(如文本、數字化的聲音、圖像、視頻信號等)中,它的目的不在于限制正常的信息存取和訪問,而在于保證隱藏的信息不引起監控者的注意和重視,從而減少被攻擊的可能性,在此基礎上再使用密碼術來加強隱藏信息的安全性,因此信息隱藏比信息加密更為安全。應該注意到,密碼術和信息隱藏技術不是互相矛盾、互相競爭的技術,而是相互補充的技術,他們的區別在于應用的場合不同,對算法的要求不同,但可能在實際應用中需要互相配合。特定的信息一般就是保密信息,信息隱藏的歷史可以追溯到古老的隱寫術,但推動了信息隱藏的理論和技術研究始于1996年在劍橋大學召開的國際第一屆信息隱藏研究會,之后國際機構在信息隱藏領域中的隱寫術、數字水印、版權標識、可視密碼學等方面取得大量成果。
信息隱藏是一個十分活躍的研究領域,雖然其載體可以是文字、圖像、語音或視頻等不同格式的文件,但使用的方法沒有本質的區別。因此,下面將以信息隱藏技術在圖像中的應用即遮掩消息選用數字圖像的情況為例進行說明。
在圖像中應用的信息隱藏技術基本上可分為兩大類:時域法或頻域法。時域法就是直接改變圖像元素的值,一般是在圖像的亮度或色帶中加入隱藏的內容。這種方法比較有代表性的是最不重要比特位(the Least Significant Bits,LSB)方法,該方法也是最早被應用的信息隱藏方法。遮掩消息的LSB直接被待隱消息的比特位或兩者之間經過某種邏輯運算的結果所代替。LSB算法的主要優點是可以實現高容量和較好的不可見性。但是該算法容易被第三方發現并得到,遭到破壞,而對圖像的各種操作如壓縮、剪切等,都會使算法的可靠性受到影響。為了增強算法的性能,提出了各種改進的方法,如利用偽序列,以“隨機”的順序修改圖像的疊像技術(LSM);在使用密鑰的情況下,才能得到正確的嵌入序列等。頻域法是利用某種數學變換,將圖像用頻域表示,通過更改圖像的某些頻域系數加入待隱信息,然后再利用反變換來生成隱藏有其他信息的圖像。各種不同的數學變換都可以被使用,目前已有的方法主要集中在小波變換、頻率變換、DCT(低頻分量)變換等。
二、信息隱藏技術在電子商務中的應用
目前信息隱藏技術在電子商務中的應用主要體現在以下幾個方面:
1.數據保密
在具體電子商務活動中,數據在Internet上進行傳輸一定要防止非授權用戶截獲并使用,如敏感信息、談判雙方的秘密協議和合同、網上銀行交易中的敏感數據信息、重要文件的數字簽名和個人隱私等等。另外,還可以對一些不愿為別人所知道的內容使用信息隱藏的方式進行隱藏存儲。
2.數據的不可抵賴性
在網上交易中,交易雙方的任何一方不能抵賴自己曾經做出的行為,也不能否認曾經接收到的對方的信息,這是交易系統中的一個重要環節。這可以使用信息隱藏技術中的水印技術,在交易體系的任何一方發送或接收信息時,將各自的特征標記以水印的形式加入到傳遞的信息中,這咱水印應是不能被去除的,可達到確認其行為的目的。
3.防偽
商務活動中的各種票據的防偽也是信息隱藏技術的用武之地。在數字票據中隱藏的水印經過打印后仍然存在,可以通過再掃描回數字形式,提取防偽水印,以證實票據的真實性。
4.數據的完整性
對于數據完整性的驗證是要確認數據在網上傳輸或存儲過程中并沒有被竄改,可通過使用脆弱水印技術保護的媒體一旦被竄改就會破壞水印,從而很容易被識別。
三、隱藏技術的未來發展
關鍵詞:信息隱藏;隱寫分析;算法;研究
中圖分類號:TP391.41 文獻標識碼:A 文章編號:1674-7712 (2013) 20-0000-01
隨著計算機以及網絡技術的高速發展,網絡時代和數字時代己經拉開了帷幕,但同時也跟我們帶來了很多問題。比如一些絕密的信息以及文件能否在互聯網中安全傳輸;個人的隱私能否得到相應的保障;一些公司、企業的商業機密會不會被他人竊取;多媒體的版權維護問題等。信息安全得到了國內外各界的高度重視。
由此,一門新興的學科——信息隱藏(Information Hiding)應運而生。它的主要原理是利用了人類的感覺器官對數字信號的冗余,從而把一個有用的消息(即隱秘信息)偽裝隱藏在另外一個載體信息中,并且這個載體信息是可以公開的在信道里面傳輸的,隱秘之后就可以得到一個隱蔽載體,從而能夠實現隱秘信息在信道中的隱蔽通信。在傳送過程中,第三方很難知道一個看似普通信息中是否隱含了其他的隱秘信息,就算知道也很難將其提取出來。
信息隱藏技術目前主要包括兩個方面:數字水印和信息隱寫。數字水印主要是對數字媒體起標識以及版權保護作用;信息隱寫則是將隱秘信息偽裝隱藏于其它的載體信息中。很多地方將數字水印技術作為一個單獨的分支拿出來做研究,同樣本文對數字水印也不做過多研究。信息隱藏技術是一把雙刃劍,一方面信息隱藏技術能夠為政治、軍事以及經濟的機密信息在互聯網中的傳輸提供可靠的保障,個人在公共網絡中的安全和隱私也可以得到很好的保護;另一方面,也有可能被某些懷有不當目的的個人或者組織所利用,在網絡中傳播一些非法或破壞性的信息,從而對社會的公共安全以及國家安全造成了很大的危害。因此我們在學習、研究信息隱藏技術里這個“矛”的時候,也應該學習、研究其“盾”(隱寫分析技術)。
一、信息隱藏技術
信息隱藏技術和傳統的密碼技術相比,相同點是二者都是為了保證隱秘信息的安全。不同的則是密碼技術是對秘密信息進行特殊的編碼從而形成了第三方不可識別的密文。信息隱藏是將秘密信息偽裝隱藏于另外一個可以公開傳遞的載體信息之中,通過此載體信息在網絡上傳輸來傳遞隱秘信息。傳統密碼技術由于密文是雜亂的,所以很容易被第三方辨認出來,這樣的話第三方的目的就很明確了,一旦截獲了密文,全力去破解即可。但是對信息隱藏技術來說,僅通過視覺無法判斷出載體信息是否含有隱秘信息,因此面對互聯網的海量信息,第三方在短時間內很難辨別出數字媒體是否包含有隱秘信息。因而跟傳統的密碼技術相比信息隱藏技術能更有效地保證隱秘信息的安全。信息隱藏技術模型如圖1所示,隱秘信息通過密鑰偽裝隱藏到載體信息之中,然后通過公共信道傳輸給接收對象,接收對象接收到信息以后根據密鑰就可以提取出想要得到的隱秘信息。在公共信道中,首先第三方很難察覺到載體信息中有隱秘信息,就算察覺到了,也很難提取出隱秘信息。
信息隱藏技術發展至今出現了許多經典的算法,在圖像中嵌入隱秘信息的算法大致可以分為空域算法和變換域算法兩種。空域方法包括使用LSB編碼、用圖像處理或壓縮、變換算法對圖像的屬性進行修改。基本原理就是利用圖像本身的冗余性和人眼對圖像顏色或者灰度的分辨率的感官特性實現的信息隱藏。隱藏后并不改變載體圖像的使用價值和基本特征,隱秘前后僅靠肉眼基本看不出圖像差別。經典算法大概包括:最低有效位算法,調色板方法以及Patchwork算法。而對于變換域的隱藏方法主要是使用離散傅立葉變換(DFT),離散余弦變換(DCT)或者小波變換在圖像中嵌入信息。變換可以基于整個圖像,也可以對整個圖像進行分塊操作。經典算法大概包括:DFT變換域算法,DCT變換域算法以及DWT變換域算法。
二、隱寫分析技術
自古有矛就有盾,隱寫分析技術是指對被表明為正常的圖像、音頻、視頻等多媒體信號進行檢測,判斷其中是否嵌有秘密信息,甚至只是指出媒體中是否存在秘密信息的可能性大小。它的基本原理是根據載體信息在隱寫前后的統計特性的變化,從而能夠分辨出載體信息是否包含有隱秘信息。一般原始圖像的特性是比較連續、光滑的而且像素之間具有較高的相關性。而隱秘圖像一般都是隨機的比特流,而且與原始的載體信息之間相互獨立,所以圖像相鄰像素之間的相關性將會大大降低。隱寫分析技術從某種程度上說其實就是兩類分類的模式識別問題,其關鍵是特征的選擇,好的特征能較好的幫助我們判斷出載體是否含有隱秘信息。
針對某種特定隱寫術的隱寫分析可分為空域分析和變換域分析。空域隱寫分析主要攻擊對象是空域LSB隱寫算法,主要包括有EZStego,s-Tool等。經典的分析算法包括直方圖分析法、x2分析法、RS分析法等。變換域隱寫分析的主要攻擊對象為DCT域隱寫術,它包括有Jsteg、Outguess、F5以及MB等,變換域隱寫分析主要思路是DCT系數在隱寫前后特性會發生變化。通用隱寫分析主要根據圖像隱寫前后總體或者局部統計特性的變化,然后選取統計特征向量進行訓練,最后通過分類器進行有效分類。
三、總結和展望
綜上所述,信息隱藏技術與隱寫分析技術已成為了當下一個熱點問題,應用于越來越多的領域,二者相互制約,相互促進。但是它們現在都還處在一個發展階段,還有很多問題需要我們去解決。對隱寫分析來說,現在有很多種方法可以檢測出圖像是否含有隱秘信息,但要估計出隱秘信息的長度,甚至提取出隱秘信息,現在仍然難以做到,這也將是以后研究工作的重點和難點。同時特征的選取,分類器的設計以及降維技術都還存在可以優化的空間。
參考文獻:
目前,隨著物聯網技術的不斷成熟和逐步應用,人們越來越關心它的安全問題。尤其是物聯網的感知前端射頻識別系統,使用的是無線傳輸技術,相對于有線傳輸來說,其工作環境是開放的,不穩定的。為了保護應答器和讀寫器之間的信息傳輸,目前普遍采用的是雙向認證和加密結合的方法,對認證雙方通信的所有數據進行加密,從而確保系統的安全性。但是由于物聯網中應答器數目巨大,在每個應答器中添加加解密電路會造成整個系統硬件實現的成本的大幅增加,因此不利于物聯網技術的普遍應用。該文試圖避免繁瑣的加密過程,使用相對簡單的數據隱藏技術保護應答器和讀寫器之間傳輸的敏感信息,從而降低系統的實現成本。
1 數據隱藏技術
網絡技術的快速發展為信息傳播和利用提供了極大的便利,同時也面臨著巨大的挑戰的安全問題。在傳輸過程中如何保護信息安全已經成為人類的重要主題之一。傳統的解決方法是加密消息的傳播。然而,隨著計算機處理速度的提高和并行處理的發展,不再是不可能破解加密算法。因此,尋找一個新的方法來解決信息安全傳輸的問題已成為信息時代的重要問題之一。
數據隱藏和加密都是常用的方法來保持數據的機密性。與主要研究如何使用特殊編碼方法來加密機密信息使其成為形式無法辨認的密文的數據加密不同,數據隱藏更多關注如何用一個公共信息來隱藏敏感信息,然后通過公開渠道來傳輸機密信息。也就是說通過開放的信息傳輸來傳輸隱秘信息。對于加密通信,竊聽者可以截取密文、解碼或者在接收方接收信息之前毀掉信息,這就會影響機密信息的安全。但使用數據隱藏技術,竊聽者很難判斷機密信息是否存在于公開信息中,無法判斷是否竊聽到了機密信息,因此可以保證機密信息的安全。
2 數據隱藏技術在物聯網安全中的應用
正是由于數據隱藏技術的秘密性,使得它應用于物聯網用戶安全的保護方案中成為可能。該文在物聯網射頻識別應答器和讀寫器之間雙向認證的基礎上引入數據隱藏技術,對物聯網用戶傳輸的信息和自身身份信息進行保護,具體方案設計如下:
2.1 方案設計初始化
為了節約實現成本,在射頻識別系統中使用被動標簽。即每次讀者首先向標簽發送認證請求和提供能量來激活它來響應請求。在標簽中要有一個哈希函數實現電路,并且該哈希函數是滿足強無碰撞性要求的。標簽具有休眠模式。讀寫器會在標簽完成身份驗證之后執行所有可能的操作,然后發送信號通知標簽進入休眠模式,不再響應任何信號,直到標簽被下一個讀寫器再次激活。在讀寫器中添加一些硬件電路實現數據隱藏算法。由于需要隱藏的消息的長度很短,因此該硬件電路應該是簡單并且易于實現的。同時,相應的隱藏數據恢復電路應裝備在標簽中。后臺數據庫標識和其散列值是存儲在讀寫器中的。為了保護用戶的ID信息,后臺數據庫應該能夠實現用戶ID的自動刷新。
在初始狀態,應答器存儲自己的真實身份ID和數據庫標識符B。讀寫器存儲標識符與B相匹配的自身標識符B’及其散列值H(B’)。在后臺數據庫中包含所有的應答器ID和每個ID的散列值H(ID)。
2.2 方案執行過程
讀寫器、標簽和后段數據庫之間的通信過程描述如下:
1) 讀寫器向標簽發送請求認證的信號Q1;
2) 標簽接收到Q1,計算它所屬數據庫的標識T的哈希值H(T),并且使用數據隱藏算法將H(T)變成M1并把它發送給讀寫器;
3) 讀寫器收到M1,使用相應的算法從M1中提取出H(T)。將H(T)和自己存儲的H(T’)進行對比,如果一致,它將會發送進一步認證請求Q2給標簽。如果結果不一致,則判斷該標簽不屬于本系統的標簽,認證結束。讀寫器將發送認證請求Q1給下一個標簽;
4) 標簽收到Q2。將自身身份標識ID進行哈希運算,得到H(ID),再把它隱藏到文本M2中并發送給讀寫器;
5) 讀寫器將M2轉發給后端數據庫;
6) 后端數據庫收到M2后獲取H(ID)。搜索自己的數據庫,查找是否有一個標簽的IDi能夠滿足H(IDi)=H(ID)。如果找到,標簽認證成功。后臺數據庫會為這個已經認證的標簽產生一個新的身份信息ID’,并存儲在數據庫中IDi的記錄中。最后將IDi和ID’發送給讀寫器。否則認證失敗;
7) 讀寫器將收到的IDi和ID’使用數據隱藏算法隱藏成文本M3,并發送給標簽;
8) 標簽接收到M3之后可以獲得IDi和ID’,將IDi和自己的身份信息ID進行對比,如果一致,則讀寫器認證成功,否則認證失敗;
9) 標簽和讀寫器同時將已經認證的標簽ID改成ID’。標簽進入讀模式或寫模式,可以接受讀寫器對其進行讀寫操作;
10) 完成通信后,標簽進入休眠模式,直到接收讀寫器的下一次認證請求。
3 方案性能分析
基于數據隱藏的雙向認證協議使用哈希函數來完成標簽和讀寫器的雙向認證并對通信敏感信息進行保護。哈希函數的強無碰撞性使得攻擊者找不到另一個IDj能夠滿足H( IDj )=H( ID ),因此攻擊者無法偽裝成合法標簽來干擾合法的通信過程。使用本文設計的保護方案,在標簽和讀寫器完成每次認證之后都會同時刷新標簽ID,因此攻擊者無法通過跟蹤特定通信信息的方式來跟蹤標簽使用者,因此可以保護用戶的個人隱私。由于在對數據庫進行搜索以確認標簽是否屬于數據庫之前,本方案使用讀寫器對標簽進行初步判斷,因此可以在一定程度上降低后端數據庫的計算量,減少拒絕服務供給的可能性。同時,將判斷標簽所屬權的任務移交給讀寫器之后,后端數據庫不需要每次都向讀寫器發送所有的標簽的ID,而只需要處理那些通過預判斷的標簽。尤其是在存在大量標簽的環境中,本方案可以大大減少讀寫器與后臺數據庫之間的通信量,從而進一步減輕安全信道的堵塞問題。
本文在雙向認證過程中引入了數據隱藏技術。通過數據隱藏,攻擊者或竊聽者很難判斷在未加密的信息中是否有敏感信息存在,因而可以保護用戶的隱私。同時,在數據隱藏技術中,隱藏文本的任何變化都會被接收方所感知,因此信息的接收方會知道通信信息已經改變。使用本文設計的方案來完成身份認證和通信的過程中,每次標簽與系統完成通信后,他們都將刷新標簽ID,因 此攻擊者不能有效跟蹤標記,所以它無法知道用戶和的確切物理位置,無法偽裝成這個標簽,因此可以有效地實現用戶隱私信息的保護。
4 結束語
本文使用Hash-Lock協議完成標簽和讀寫的雙向認證,使用數據隱藏技術隱藏標簽和讀寫器之間的通信內容。可以保護標簽和讀寫器之間信息傳輸的機密性并檢測是否有第三方偽造信息。與現有的只使用Hash-Lock算法的協議相比,該文設計的保護方案更加安全,出其不意的防范了攻擊者的攻擊。
參考文獻:
[1] 金洪穎.RFID系統用戶安全與隱私保護協議研究[J].電腦知識與技術,2013,10.
[2] 陸桑璐,謝磊.射頻識別技術—原理、協議及系統設計[M].北京:科學出版社,2014.
[3] 彭力,徐華.無線射頻識別技術與應用[M].西安:西安電子科技大學出版社,2014.
關鍵詞 信息隱藏;信息隱藏技術課程;案例教學
中圖分類號:G642.3 文獻標識碼:B
文章編號:1671-489X(2016)22-0100-03
Research on Course Teaching of Information Hiding Technology based on Case Teaching//ZHANG Zhengwei, WANG Weimin, WU
Lifa
Abstract Case teaching is the combination of theoretical knowledge and practical application. It is a process which is guided by theory to
practice, which is beneficial to improve students’ ability to under-stand and grasp the information hiding theory. According to the cha-
racteristics of this course, this paper firstly points out that the modern
information hiding problems existed in the course teaching, then carries on the system analysis the feasibility and necessity of the course, application of case teaching method, and the information hiding teaching into the teaching case of the methods, steps and matters needing attention are discussed.
Key words information hiding; course of information hiding techno-
logy; case teaching
1 引言
信息隱藏是隱蔽通信和知識產權保護等的主要手段。信息隱藏技術課程是一門實踐性和理論性都較強的計算機信息專業課程,可作為高等院校具有一定計算機基礎的信息安全專業、通信工程專業、密碼學專業及計算機專業的研究生或高年級本科生教程,其基本知識涉及數學、密碼學、人工智能、圖像處理和機器學習等多個學科。在實際教學中,由于課時數有限,不能將課本知識面面俱到,為了保證課堂教學質量,通常教師會采用“教師課堂授課―教師課堂案例演示―學生課下模擬”這一傳統的教學方式,以教師講授為主,以學生學習和模仿為輔。采用案例教學法進行課堂教學[1],有利于激發學生學習動力,增強學生思維效力,改善學生理論聯系實踐的融會貫通能力。
案例教學法旨在增強學生分析問題、解決問題的能力,注重于實際應用。案例教學法是由哈佛大學在20世紀20年代提出來的,其主要采用一種新穎案例方式來完成課堂教學[2]。通過這種模式教學,有利于培養學生發現問題、積極思考探索、主動參與集體討論并取得很好的效果。
普通本科院校鑒于其教育及管理定位,易造成學生基本理論知識不夠完善、應用實踐能力較弱,如何提高學生的綜合素質能力,以更好滿足社會對高素質人才要求的需求,是當前普通高等教育亟待探究的關鍵所在[3]。在信息隱藏技術課程教學中采用案例法教學,有助于培養學生的思維能力和實踐應用能力。將項目案例運用到課堂教學[4],能使學生更加體會到成功的快樂,激發學習興趣,有助于增強學習動力。
2 信息隱藏技術課程教學中存在的問題
信息隱藏技術作為計算機信息類專業的一門核心課程,有著較強的理論性和應用實踐性。
理論性偏強,數學知識掌握要求高 信息隱藏技術這門課程雖然內容繁雜,但可以通過分析處理數字信號的方式和過程進行授課。信號可以看作一個二維有界向量,可以在空域或頻域對其進行分析處理,因此,有關信號處理理論和方式都能應用到信息隱藏上來。信息隱藏技術具有較強的理論基礎,需要學生掌握較好的基礎知識,這對普通高校學生來說存在較大壓力。同時,許多原理、公式演算和模型構建貫穿整個課程,其內容學習起來枯燥無味,容易使學生產生厭學情緒,影響學習效果。
實踐技能偏弱,應用能力不強 信息隱藏技術是一門理論與實踐相輔相成、緊密結合的專業性課程,這要求學生不僅要了解和掌握信息隱藏基本概念和原理,而且應具備較強的編程應用能力,能夠通過編程實現各種信息隱藏處理。經歷這些年的教學研究,筆者深感學生的編程實踐技能有待提高,即便完成本科階段學習,也很難實現一個簡單算法,更談不上用所學知識去完成一個綜合的、系統的開發任務。
相關基礎知識不扎實 信息隱藏主要是利用相關計算機技術將信息隱藏到某一載體中。該門課程主要采用工程實踐的原理、算法及相關技術來完成信息的嵌入與提取。因此,該門課程涉及的知識點較多,如矩陣論、密碼學、機器學習、信號分析與處理等。學生在學習該門課程時,由于并沒有對這些知識進行系統的學習,因此較難理解和掌握這門課程。
3 案例教學法的含義
案例教學法是一種以案例設計與分析為基礎,結合課堂講授的教學方法。教師在教學中充當啟蒙者和激勵者的角色,誘導學生積極思考問題和解決問題。區別于傳統教學法,案例教學法要求教師根據實際教學需要,設計并選擇適當案例,指導學生對案例進行分析和探討,并進行實踐操作的教W過程。在這一過程中,學生是主體,教師是整個教學活動的指路人。選擇什么樣的案例,決定了該教學法能否取得成功。課堂授課是對案例決策、案例分析與選擇的關鍵,可以激發學生思維,提高動手能力。課后案例分析報告則是經由案例教學達成教學目的的保證。案例教學與傳統教學的區別如表1所示。
信息隱藏技術作為一門專業課程,其內容相對比較抽象和枯燥。傳統授課通常采用“課堂講授,課堂演示”的教學模式,無法調動學生學習積極性,導致理論記憶不深。該課程偏重工程應用研究,而目前使用的教材其內容側重基礎理論且算法較為陳舊,學生在學習該門課程后無法應用于實踐,學習熱情不高。近幾年,學校雖已逐漸重視對學生實踐環節能力的培養,但也僅僅是機械地對理論知識進行編程操作,屬于被動的對學生能力的培養。跟課程相關的實驗環節也多以驗證性實驗為主,對學生的創新性要求不高,學生實際操作還有待加強。
4 案例設計
案例教學法是一種以案例設計與分析為主、理論知識講解為輔的教學模式。授課中要求以案例為中心,激發教師和學生的積極性和能動性,突出學生的主動性。
設計原則 案例教學法強調以學生主動學習為主,注重培養學生思維創新能力,能夠較好地解決一些實際問題。項目設計要體現“以學生主動學習為主,教師課堂講授為輔”的教學理念,擺脫過去那種“以教師講授為主,學生學習和模仿為輔”的傳統教學思想。任課教師要盡可能設計出一些帶有誘發性、啟導性和思維性的項目,以激發學生的學習熱情和學習興趣。
1)目的性。信息隱藏技術課程是一門工程應用性較強的學科,對學生的動手操作能力要求較高,需要注重培養學生的工程實踐性技能,通過工程實踐教學來提高學生的理論知識掌握能力。為了更好地提高學生的應用技能,案例的選擇與設計必須遵循教學目的和教學大綱。
2)真實性。以能滿足實際應用為探討目標,理論聯系實踐,將社會實際應用問題引入課堂中,有利于增強學生的實踐操作能力。這將為學生未來從事相關開發與研究打下堅實基礎。
3)代表性。考慮到信息隱藏技術課程教學學時有限,不能面面俱到講解課程所有知識點,因此,所選取或設計的教學案例應具有專一性、實時性、代表性和可操作性,這樣有助于培養學生解決實際問題和思維創新能力。
4)實用性。信息隱藏技術課程主要講解的是信息嵌入、信息提取和篡改定位等相關內容,這要求所選取案例一定要結合實際,滿足社會實際應用的要求。
5)生動性。信息隱藏技術課程其理論原理相對較為枯燥,很難調動學生學習積極性。將客觀枯燥的原理通過生動的案例進行形象描述,這將有助于培養學生學習該課程的興趣。
案例設計的基本方法 信息隱藏技術案例教學主要圍繞案例準備、案例實施、案例評價等幾個步驟展開。
1)案例準備。教師需要根據實際應用設計出一個能充分激發學生興趣、提高動手能力的案例。教師和學生對此案例進行溝通理解,劃分小組,指定組長,明確各組員任務。通過組內成員共同撰寫目標,明確各自不同的興趣,確定任務和預期效果。
2)案例實施。首先,教師要組織學生對案例進行分析理解,通過各組的討論、分析并提出實施思路。其次,教師根據學生的實施思路進行針對性講解后,要求學生對實施思路進行討論修改,并提出修改方案。最后,由學生各組共同協作完成案例制作。在制作過程中,教師要不斷激勵學生要勇于創新、突破自我,充分發揮想象力。
3)效果評價。案例效果評價主要用來檢驗學生的學習狀況。不能用單一的評價指標來評價案例教學法的優劣,需要倡導學生的主體地位,鼓勵團隊協作,分層進行評價。同時需要展開團隊互評及個人自評等形式。案例教學法以學生學習為主體,存在多個實踐環節,需要教師對相關環節進行記錄,了解和掌握學生的實際操作情況,并予以指導。
5 案例教學法在信息隱藏技術教學中的應用
案例教學法既能有效提高學生的動手能力,又能加深學生對理論知識的理解,貫穿于信息隱藏技術課程教學的全過程。首先,通過案例來講解信息隱藏的基本原理,將一個典型的、易于理解的和具有實際應用意義的案例引入教學中,將復雜的概念用形象生動的案例來進行闡述。其次,不同學生的學習能力有所差異,需對不同學生設置相對應要求。通過對案例教學法的初步引入,教師對學生的編程、分析問題能力有了初步了解。通過對不同層次的學生設置不同的教學規程,運用案例教學法才有可能真正提高不同層次學生的綜合學習能力。
前期 就信息隱藏技術而言,案例教學法因該課程涉及內容廣、深,相應算法復雜,而使教學過程變得煩瑣。如果在案例教學法的初始階段就要求學生完全獨立編程,實現某一算法,容易打擊學生學習的積極性和降低學習興趣,產生畏難心理,這將很難取得較好的教學效果。因此,該階段教師可以多提供易懂代碼給學生,讓學生在模擬編程中感受課程學習的樂趣。在經過一段練習實踐后,學生的編程能力會有所增強,此時可適當減少所供代碼比例。
中期 該階段是培養學生實踐編程能力的重要時期,其案例內容的設計與選擇需因不同類型學生的差異而有所改變。
1)對于有一定編程能力的學生,教師可以提供一些參考資料,讓學生自主編寫一些基礎程序。
2)具有一定分析能力但編程能力一般的學生,可以通過對算法原理分析來對教師提供的部分代碼做適當改進,以驗證改進算法的優越性。
3)信息隱藏實驗在信息嵌入時,有時為了提高算法性能,需要調整嵌入參數,這時就可以讓編程能力相對較弱的學生完成數據驗證與分析的任務。
后期 案例教學法的案例內容必須具備完整性、實用性和系統性,這將很好地激發學生學習積極性。案例教學法可以讓學生積極參與其中,營造團隊合作的良好氛圍[5]。隨著學生綜合能力的提高,可在后期安排課程實習、課程設計等相關任務讓學生來完成,如水印嵌入、水印提取等。課后可以通過相關通信媒介來加強學生之間的討論以及師生間的交流,這樣做可以減少課堂討論時的不可控因素,節約課時,以提高學生動手操作能力。
6 總結
案例教學法可以將理論和實踐更好地結合起來,不僅可以很好地調動學生學習的積極性,而且改善了傳統課程授課的教學質量,培養學生想學、愛學、學而不厭的態度。學生通過對案例進行分析、設計,可以更好地加深對課程理論知識的理解。案例教學法可以使學生參與實際應用,解決社會現實問題,達到學以致用的目的。案例教學法是對傳統教學方法的有益擴充,信息隱藏技術的基本原理必須通過教師課堂講授,學生才能牢固掌握,才能更好地去指導實踐。
淮陰工學院將案例教學法運用到信息隱藏技術課程教學中并已取得顯著效果。教學實踐表明,案例教學法改變了傳統教學中以教師課堂講授為主的教學方式,以學生為中心,誘導學生主動學習,提高學習興趣。案例教學法有效地改善了教學體系,提高了教學質量,使學生更全面地掌握信息隱藏算法所涉及的相關認識。傳統教學法在理論教學、保持系統完整性方面有著案例教學法無法替代的功效。因此,將兩種教學模式有機結合、相輔相成,才能在教學上獲得更好的效果。■
參考文獻
[1]田保軍.軟件工程課程案例教學方法的研究[J].內蒙古師范大學學報:教育科學版,2008,21(1):103-105.
[2]王燦輝,張舒,林郎碟.案例教學法在軟件工程教學中的應用[J].計算機教育,2012(1):20-23.
[3]張忠林.基于項目驅動模式下的“軟件工程”教學改革[J].計算機教育,2009(2):53-55.
關鍵詞:自適應;信息隱藏;數字水印;空間域
中圖分類號: TP309.2
文獻標識碼:A
0引言
信息隱藏是將重要信息嵌入到在其他媒體(載體) 中,在基本不改變載體的外部特征及使用價值的情況下,我們的感覺器官感覺不到載體外部的變化,從而實現重要信息的隱秘傳遞。信息隱藏的目的不在于限制正常的資料存取,而在于保證隱藏的信息不引起攻擊者的注意和重視,從而減少被侵犯的可能性,擺脫數據加密技術的致命缺陷。現在的隱密通信方式一般都要求把消息先加密再隱藏, 即形成了“加密+ 隱藏”的安全通信模式,它較之單純的密碼加密方法更多了一層保護。信息隱藏與分析技術的研究無論在軍事和民用方面都有著重要的意義,隱藏技術越來越多地應用于多媒體信息的版權保護及信息安全等領域。特別在軍事上,各個國家都采用了信息隱藏技術,進行情報、間諜活動,用于信息戰領域中。早在2001年9月美國HINDU新聞組就報道了頭目“拉登”可能通過隱寫圖片向其同僚傳遞重要的信息、散布消息、籌集資金、組織恐怖襲擊等[1],并成功地逃過了美國通信監管部門的監控。
目前用來作為信息隱藏的載體有文字、圖像、語音或視頻等多種不同格式的文件, 但使用方法沒有本質的區別。其中圖像由于冗余空間大,是目前用得最多的信息隱藏載體。在基于圖像的信息隱藏技術中,有兩種隱藏技術:基于變換域的隱藏技術和基于空間域的隱藏技術。其中基于變換域的隱藏技術魯棒性比較好,但較難實現大量數據的隱藏,要實現大容量的信息隱藏主要使用基于空間域的隱藏技術。
1典型空間域隱藏技術分析
基于空間域的隱藏技術是直接改變圖像元素的值, 一般是在圖像的亮度或色帶中加入隱藏的內容。最簡單和有代表性的基于空間域的信息隱藏方案是將要隱藏的信息代替圖像的最低有效位(LSB)或者多個不重要位平面的所有比特的算法,這里的隱藏信息指的是二值比特序列。其隱藏信息的原理如下:計算機用三個字節來表示顏色的紅、綠、藍三原色的分量數值,每個字節的最低位的變化對顏色的視覺影響很小而無法察覺,因此可以把紅、綠、藍三原色的分量數值的最低位(最小意義位) 視為冗余空間,把信息隱藏在這里。1993年,Tirkel等人[2]提出了數字圖像水印的一種方法,該方法將m序列的偽隨機信號以編碼形式的水印嵌入到灰度圖像數據的LSB中。為了能得到完整的LSB位平面而不引入噪聲,圖像通過自適應直方圖處理,首先將每個像素值從8 bit壓縮為7 bit,然后將編碼信息作為像素值的第8個bit(即像素值的LSB),這一方法是單個LSB編碼方法的擴展,在單個LSB編碼方法中,LSB直接被編碼信息所代替。
LSB 算法的優點是算法簡單、嵌入速度快、隱藏容量比較大,這些優點是基于變換域的隱藏算法所無法比擬的。因此LSB算法仍然在信息隱藏中占有重要地位,幾乎全部的隱寫算法中都可以找到LSB 算法的影子, Internet上常見的隱寫軟件中也大都使用LSB 算法或LSB 的衍生算法[3]。由于使用了圖像最不重要的像素位,因此算法的魯棒性較差,嵌入信息很容易受到濾波、圖像量化、幾何變形和加噪等操作的攻擊。針對LSB算法出現的缺陷,一些研究人員對空域圖像水印技術進行了改進,使算法的穩健性和安全性得到了提高。文獻[4]提出通過顏色量化的方法實現的,使原來需要8位來表示的256色圖像量化到顏色數128 色,量化后的圖像只用7 位來表示,剩余的那位(最高位)就可以作為冗余空間來存儲隱藏信息。由于此時所用的冗余空間為最高位,也叫最大意義位(MSB),因此魯棒性好,解決了LSB算法魯棒性差的問題。該方法的缺點是嵌入后的圖像的調色板大小發生改變, 而且對于原本256色的圖像量化后,由于存在量化誤差,圖像的視覺質量會有不同程度的降低,其中最為嚴重的是在均勻漸變區域出現的偽輪廓,因此,必須降低質量才有可能實現信息嵌入[5]。目前,基于圖像空間域的隱藏技術的研究目標主要有兩個:一是在一定長度的可修改圖像載體數據中,在不影響載體視覺效果的前提下,嵌入盡可能多的信息數據;二是提高其魯棒性。本文在以上算法的基礎上提出了一種魯棒性和隱藏容量均優于LSB算法的空間域信息隱藏算法。
2本文算法
基于圖像的信息隱藏可看為在強背景(原始圖像)下疊加一個弱信號(被隱藏的信息),只要疊加的信號低于對比度門限(Contrast Sensitivity Threshold),視覺系統就無法感覺到信號的存在[6]。根據
人類視覺系統(Human Vision System,HVS)
的對比度特性,該門限值受背景照度、背景紋理復雜性和信號頻率的影響。背景越亮,紋理越復雜(或者說邊緣豐富),門限就越高[6,7],這現象稱為亮度掩蔽和紋理掩蔽。HVS的對圖像所具有的亮度掩蔽、邊界掩蔽和紋理掩蔽等效應表明[8]:(1) 人眼對不同灰度具有不同的敏感性,通常對中等灰度最為敏感,而且向低灰度和高灰度兩個方向非線性下降;(2) 對圖像平滑區的噪聲敏感,而對紋理區的噪聲不敏感;(3) 邊界信息對于人眼非常重要。根據人類視覺掩蔽特性可知:具有不同局部性質的區域在保證不可見性的前提下,可允許疊加的信號強度是不同的。對RGB彩色圖像而言, 人類視覺系統并不是只有對LSB位不可感知,對于較亮的像素點,比LSB更高的某些位的變化同樣是不可感知的,這些不可感知位同樣可用來嵌入信息,從而進一步提高嵌入容量。利用以上HVS特性,本文提出多平面自適應隱藏方法,可獲得較大的信息隱藏空間和較好的魯棒性。其基本思路是根據每個像素點RGB三個顏色分量的亮度值的不同,確定是否隱藏信息、信息隱藏位置及信息的隱藏量。由于不是將信息隱藏在某個固定的平面位,這樣既能解決LSB算法的魯棒性差的問題,也沒有MSB算法的顏色失真問題。具體算法如下 :
設24位的RGB彩色圖像的每個像素RGB三個顏色分量分別為(r7,r6,r5,r4,r3,r2,r1,r0)、(g7,g6,g5,g4,g3,g2,g1,g0)、(b7,b6,b5,b4,b3,b2,b1,b0),對圖像的每個像素點RGB三色的每一色進行單獨嵌入處理,首先對紅色分量進行處理,將(r7,r6,r5,r4,r3,r2,r1,r0)從高位至低位逐位進行檢查,當第x位不為0時,則從第x-y位(y≥1)開始嵌入信息,一直嵌入到第z位,若z>x-y, 則該像素點的該分量不嵌入信息, 由于信息的嵌入是在一個非0位后的一個約定位開始,到另一個約定位結束,因此信息的提取只依賴參數y和z,不需要原始圖像及輔助信息表等其他信息,是一種完全意義的盲提取。即:
ri,其他其中為該像素點紅色分量第i位ri經過嵌入處理后的值,wj(j∈{1,2,…,L})為待嵌入的比特序列,j的值為前面已經嵌入的比特數,每嵌入1個比特j的值增加1,y的取值決定了嵌入強度,它需要在不可感知性和嵌入容量之間折中考慮,y值越大,視覺不可感知性越好,但可隱藏的信息量越少。z的取值由所需的抵御濾波處理的魯棒性決定,當z=0時,則包括LSB位。處理完紅色分量后,再用同樣的方法處理該像素的藍色和綠色分量,只是對藍色和綠色分量,y的取值可以根據人類視覺系統特性取不同的值。處理完一個像素點后,再重復以上過程,處理下一個像素點。
設背景照度為I,根據Weber定律[9],在均勻背景下,人眼剛好可以識別的物體照度為I+I, I滿足:
視覺領域的進一步研究表明, I與I的關系更接近指數關系[10]。有文獻提出了更準確的對比度敏感度函數(CSF, Contrast Sensitivity Function):
其中I0為當I=0的對比度門限,α為常數,a∈ (0.6, 0.7)。
根據以上結論,y的取值為4至5時就可基本滿足視覺不可見性要求,實驗結果也證實如此。由于人眼對RGB三色的敏感度是不同的,人眼可感知的亮度值可由如下的公式計算:可見人眼對綠色最敏感,對藍色最不敏感,它不到綠色的1/4,因此為了達到不可感知性的目的,在y值的選取上,綠色需要適當取大一點,藍色分量的值則可取小一點。
3試驗與討論
為驗證本算法的性能,以512×512×24 的原始Lenna圖像進行試驗。首先試驗本算法的最大信息嵌入量,z的值設為0,設RGB三色所對應的y的取值為(yr,yg,yb),這三個值分別選取(5,5,4)、(4,5,4),(4,4,4),(4,5,3)和(3,5,3)幾組不同的值進行嵌入試驗,嵌入后的結果分別如圖1的(b)、(c)、(d)、(e)、(f)所示。由試驗結果可知,當yr≥4、yg≥5、yb≥3時,對人類的視覺系統而言是不可感知的,超過這個值時就會影響視覺效果,即(yr,yg,yb)取(4,5,3)時,隱藏的信息的不可感知性就能滿足要求,此時達到可隱藏信息量的最大值。再選取標準圖像peppers和tulips進行試驗,當yr,yg,yb分別取4,5,3時,嵌入信息后的載密圖像如圖2所示,可見在嵌入隱藏信息后同樣能滿足視覺的不可感知性要求。當yr,yg,yb分別取4,5,3時,在Lenna、peppers和tulips圖像中可嵌入的信息量見表1,不難看出本算法的信息隱藏量非常大,嵌入比平均值約為36%,而目前認為信息隱藏量大的LSB算法的嵌入容量的嵌入比為12.5%,可見本算法的可嵌入容量遠比LSB算法大很多。
再以512×512×24的原始Lenna圖像嵌入一幅181×252×8的灰度圖像進行剪裁試驗,將載有隱藏信息的圖像進行如圖3(c)所示的隨機裁剪,然后進行隱藏信息的提取,提取的圖像如圖3(d)所示,說明本算法有較強的抗剪裁能力。由于本算法的嵌入容量大,同小容量的嵌入算法相比,對于同樣的嵌入信息可進行反復的嵌入,一幅載體圖片可嵌入多個水印信息,因此抗剪裁能力強。以512×512×24的原始Lenna圖像嵌入一幅181×252×8的灰度圖像進行抗干擾試驗,在嵌入隱藏信息的圖像上加入0.02的椒鹽噪聲,檢測到的隱藏圖像如圖4(b)所示,雖然檢測到的隱藏圖像也有明顯的噪聲干擾信息,但不影響識別效果,可見本文算法一定的抗噪聲干擾能力,作為隱藏圖像之類的水印是能滿足要求的,而計算復雜度卻比同樣效果的頻域算法低很多。 另外當z取1時(即LSB位不隱藏信息)進行濾波試驗,載密圖像進行中值濾波處理后,仍可檢測到隱藏的大部分信息,而LSB算法則基本檢測不到隱藏的信息,說明本算法的魯棒性比LSB算法要高很多,而此時的信息隱藏量卻仍然比LSB算法大。同時由于嵌入的圖像的位平面與原始圖像、嵌入后的圖像沒有對應關系,而不像LSB算法那樣將信息嵌入在一個固定的平面位,可防止位平面過濾所導致的失密,因此安全性也比LSB算法高。