亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于一階貝塞爾曲線的信息隱藏軟件的設計

        2015-07-13 12:40:32吳琦
        電腦知識與技術 2015年13期

        吳琦

        摘要:該文探討了基于一階貝塞爾曲線的信息融合算法,并在理論上證明了該算法的可用性;同時對該算法的相應部分進行了改進,并編程實現了載體圖像文件對信息的隱藏和恢復功能;通過測試與分析,所開發(fā)的軟件可以無損地對數據流信息進行隱藏和恢復。

        關鍵詞:信息隱藏技術;圖像空域;一階貝塞爾曲線;隱藏比例;位圖

        中圖分類號:TP18 文獻標識碼:A 文章編號:1009-3044(2015)13-0112-02

        Abstract: This paper focuses on the fusion algorithm based on the information of first order Bessel curve, and proves the availability of the algorithm in theory; secondly, the corresponding part of the algorithm is improved, and the programming of information hiding and restore function; finally, through the test and analysis, the development the software can be non-destructive to the data flow information hiding and recovering.

        Key words: Information hiding; image; the first order Bessel curve; hidden proportion; bitmap

        1 基于一階貝塞爾曲線的信息隱藏軟件的需求分析

        通過對24位BMP位圖文件的空域研究,并且運用一階貝塞爾曲線算法,在程序上實現了對機密信息的隱藏和恢復的功能。在算法的原有基礎上,首先進行了對嵌入算法和恢復算法兩大模塊的程序改進,使其對組幀過程中微小的差錯進行嚴格的檢驗。并且在理論上運用數學基礎確定了算法中起關鍵作用的相關參數,使得最終隱藏比率達到3/8,即宿主文件可容納占其大小3/8的機密信息,同時保證融合后宿主文件的大小、類型、形態(tài)不變,同時隱藏信息能夠成功的恢復出來。因此通過本軟件的使用,更有效的加大了信息隱藏的數據量,而且進一步確保了重要信息的安全性,將其安全的融合到24位BMP位圖文件中,提高其保密程度。

        2 基于一階貝塞爾曲線的信息隱藏軟件的設計方案

        2.1 對明文組幀

        核心算法的理論證明是正確和有效的,通過對其實現過程,以及測試實際應用效果的算法。包括兩個模塊:提取文件和文件。在秘密檔案(明文)隱藏到位圖文件(主機信息)時,首先通過CFile類打開()函數,它的內容讀入內存,和信息的秘密文件,如文件名,文件訪問為了提取文件的長度也可提取的信息存儲在隱藏狀態(tài)的位圖。因為文件名不允許“*”,它可以作為一個單獨的文件的信息符號,通過一定的數據幀格式:

        //對明文進行組幀

        for(int k=0;k

        HideData[k]=InfoHead.GetAt(k);

        HideFile.Read(HideData+HeadLen,HideFileLen); //文件內容

        for (DWORD kk=HeadLen+HideFileLen;kk

        HideData[kk]=0; //空余內容以0填充

        2.2嵌入算法

        組幀完畢后,根據T = 0.035、L = 3算法進行信息流的融合處理。因為它是一個8位的圖像信息隱藏3比特的秘密文件的信息,所以最小公倍數24位(3字節(jié))為一個周期。比特流劃分可用比特和移位運算來實現,三字節(jié)的掩模的秘密文件是在[ 224,28,3 ]命令,[ 128112,14,1 ],[ 192,56,7 ],應相應的移位操作。本代碼是核心代碼隱藏文件,直接反映了該算法的中心思想:

        for(DWORD i=54;i

        {Temp=((HideData[j]&224)>>5)<<5; //第一個“3比特”構成圖像的第一字節(jié)

        BaseData[i]=HideCalculate(BaseData[i],Temp); //進行兩文件融合計算

        i++; //修正宿主信息當前指針(字節(jié)為單位)

        Temp=((HideData[j]&28)>>2)<<5; //第二個“3比特”構成圖像的第二字節(jié)

        BaseData[i]=HideCalculate(BaseData[i],Temp);

        i++;

        Temp=(HideData[j]&3)<<1; //第三個“3比特”

        j++; //修正隱藏信息當前指針(字節(jié)為單位)

        Temp|=(HideData[j]&128)>>7;

        Temp*=32;

        BaseData[i]=HideCalculate(BaseData[i],Temp);

        i++;

        Temp=((HideData[j]&112)>>4)<<5; //第四個“3比特”

        BaseData[i]=HideCalculate(BaseData[i],Temp);

        i++;

        Temp=((HideData[j]&14)>>1)<<5; //第五個“3比特”

        BaseData[i]=HideCalculate(BaseData[i],Temp);

        i++;

        Temp=(HideData[j]&1)<<2; //第六個“3比特”

        j++;

        Temp|=(HideData[j]&192)>>6;

        Temp*=32;

        BaseData[i]=HideCalculate(BaseData[i],Temp);

        i++;

        Temp=((HideData[j]&56)>>3)<<5; //第七個“3比特”

        BaseData[i]=HideCalculate(BaseData[i],Temp);

        i++;

        Temp=(HideData[j]&7)<<5; //第八個“3比特”

        BaseData[i]=HideCalculate(BaseData[i],Temp);

        j++;}

        其中,在無符號字符hidecalculate計算圖像融合(unsigned char、unsigned char B,H)功能來完成。B參數的主機信息內容,H是隱藏信息的內容。在計算完成后將合并信息實現功能的代碼,如下:

        unsigned char CDataHiderView::HideCalculate(unsigned char B, unsigned char H)

        {// f2=round(f0*(1-t))+round(f1*t)

        unsigned char R=(int)((1-t)*B+0.5f)+(int)(t*H+0.5f);

        return R;}

        2.3恢復算法

        從位圖文件提取過程實際上是一個隱藏文件的逆過程。將包含一個隱藏文件的位圖和原始位圖的讀取到緩沖區(qū)中,從每個字節(jié)的信息獲取主機的3位中提取的信息,然后根據8位/字節(jié)格式由一個流的字節(jié)序列的比特流,以恢復隱藏的信息:

        for(DWORD i=54;i

        {Temp=(ShowCalculate(CarrierData[i],BaseData[i])&7)<<5;//提取出第一個“3比特”

        i++; //宿主信息指針修正(字節(jié)為單位)

        Temp|=(ShowCalculate(CarrierData[i],BaseData[i])&7)<<2; //提取出第二個“3比特”

        i++;

        Temp|=(ShowCalculate(CarrierData[i],BaseData[i])&6)>>1; //提取出第三個“3比特”

        CarrierData[j]=Temp; //恢復出第一個隱藏字節(jié)

        j++; //隱藏信息指針修正(字節(jié)為單位)

        Temp=(ShowCalculate(CarrierData[i],BaseData[i])&1)<<7;

        i++;

        Temp|=(ShowCalculate(CarrierData[i],BaseData[i])&7)<<4; //提取出第四個“3比特”

        i++;

        Temp|=(ShowCalculate(CarrierData[i],BaseData[i])&7)<<1; //提取出第五個“3比特”

        i++;

        Temp|=(ShowCalculate(CarrierData[i],BaseData[i])&4)>>2; //提取出第六個“3比特”

        CarrierData[j]=Temp; //恢復出第二個隱藏字節(jié)

        j++;

        Temp=(ShowCalculate(CarrierData[i],BaseData[i])&3)<<6;

        i++;

        Temp|=(ShowCalculate(CarrierData[i],BaseData[i])&7)<<3; //提取出第七個“3比特”

        i++;

        Temp|=ShowCalculate(CarrierData[i],BaseData[i])&7; //提取出第八個“3比特”

        CarrierData[j]=Temp; //恢復出第三個隱藏字節(jié)

        j++;}

        這是恢復和糾錯信息的主要工作是在unsigned char showcalculate(unsigned char、unsigned char c,b)功能來完成。為主機信息內容C參數,參數的原始信息內容,返回值是3位隱藏信息(未轉移):

        unsigned char CDataHiderView::ShowCalculate(unsigned char C, unsigned char B)

        {// rf1=round((f2-round((1-t)*f0))/t)

        unsigned char R=(int)((C- (int)((1-t)*B+0.5f))/t+0.5f);

        if(R%32>15) //誤差修正(自動糾錯)

        R+=15;

        R=(int)(R/32.0f+0.5f);

        return R;}

        經過以上處理,文件的信息和內容可以被隱藏的文件恢復從主機內存位圖剩下的工作,不僅要恢復的文件頭格式文件的相關信息進行提取,然后將文件內容保存到磁盤完成任何二進制文件。

        3 基于一階貝塞爾曲線的信息隱藏軟件的實現

        3.1基本步驟

        軟件的實現主要為宿主文件的正確選取,待隱藏文件的正確選取,融合過程的成功進行,融合后文件的正確選取,恢復過程的成功進行五部分。實現步驟如圖1,而其間各種程序的實現也同步進行。首先選擇非空BMP位圖文件作為宿主文件,因為此軟件所選定的宿主文件類型僅為24位BMP位圖文件,而大小為0kb的文件不能作為宿主文件使用,同時軟件也會提示宿主文件選取錯誤;當選取待隱藏文件時,各種文件類型均可選取,如.txt文本文件類型、.exe執(zhí)行文件類型以及各種圖像文件類型。若選取的文件過大,超過宿主文件大小的3/8,軟件在融合步驟將會提示待隱藏文件大小過大。因此本軟件更適合隱藏容量較小的圖像文件和文本文件;融合過程的成功進行取決于融合系數的選擇,組幀部分的實現如圖2所示,融合過程的成功進行取決于融合系數的選擇,組幀完畢后將按照參數t=0.035、L=3對組幀后的信息進行融合。一般情況下,融合系數和串長參數在軟件原有程序中已確定。融合時,軟件提示融合后文件的儲存地址,在此要注意為融合后的文件作標記,并確定路徑;恢復文件時,必須正確選取融合后的文件,否則軟件會提示選取文件有誤?;謴瓦^程是融合過程的逆過程,按照組幀信息,確保機密文件的完整性和正確性。同時軟件會提示機密文件的儲存位置。

        3.2錯誤判斷

        當在進行數據隱藏及恢復過程中,難免會發(fā)生一些錯誤。對于相應錯誤,軟件經過判斷,都會給出相應的錯誤提示框,告訴用戶正確的操作。

        當選擇宿主文件時,假如選擇的宿主文件不為BMP文件,軟件會提示“宿主文件格式錯誤”;即使是BMP文件格式,但并非24位,軟件將會提示“位圖文件應為24位”;而當選擇了字節(jié)為0kb的24位BMP文件時,提示為“此文件不能用于隱藏數據”。

        待隱藏文件選擇后,當點擊嵌入數據按鈕時,程序會自動判斷待隱藏文件大小是否小于或等于宿主文件大小的3/8,若大于宿主文件大小的3/8時,軟件會提示“隱藏文件過大”;而當恢復機密文件時,軟件首先會判斷所選文件是否為隱藏有機密文件的融和文件,若不是即提示“所選文件非融和文件”;假如融合文件被他人破壞,使文件標頭組幀受到影響,導致文件無法恢復,軟件會提示“文件被破壞無法恢復”。

        3.3測試與分析

        以491×363大小的24位BMP圖像作為原始圖像進行實驗。在t=0.035、L=3時理論最大隱藏數為491×363×3×3/8=200,512字節(jié)。占位圖大小536,576字節(jié)的37.368%,約為宿主圖像大小的原始圖像含有隱含文件的圖像3/8。在一個大小為4,096的文本文件隱藏實驗,隱藏位圖的大小是536,576字節(jié),然后從中恢復的成功的位圖,并正常運行。實驗結果表明,該隱藏算法的一階Bézier曲線上的信息是正確和可行的,并可以實現位圖位圖,文本信息隱藏與恢復的位圖文件類型。

        4 結束語

        在本文中,通過對24位BMP文件格式的認識,和基于一階貝塞爾曲線的圖像隱藏算法,二進制文件的隱藏,可以恢復正確的。此外,該算法的可靠性進行了理論上證明,然后通過軟件測試分析,驗證了算法的正確性。該算法可以隱藏容量。該算法可以隱藏容量高達3 / 8主機信息的能力,因此它是非常適合和保密的文件隱藏。該算法的信息隱藏軟件,信息隱藏和恢復可以成功的將小于或等于主文件3 / 8的規(guī)模,預計將達到最優(yōu)的結果。

        參考文獻:

        [1] 肖詩勤,楊關良.一種改進的魚眼圖像輪廓提取算法[J]. 計算機與數字工程,2010(1).

        [2] 王慧琴.數字圖像處理[M].北京:北京郵電大學出版社,2006.

        [3] 畢萍.圖像分類方法的對比研究[J]. 現代電子技術,2009(18).

        [4] 張杰,郭小川,金城,等.基于特征互補率矩陣的圖像分類方法[J]. 計算機工程,2011(4).

        [6] 楊淑瑩. VC++圖像處理程序設計[M].北京:北京交通大學出版社,2010.

        国产午夜视频高清在线观看| 久久久久亚洲av无码专区| 日韩在线观看你懂的| 国产亚洲av手机在线观看| 精品综合久久88少妇激情| 色欲av伊人久久大香线蕉影院| 久热综合在线亚洲精品| 中文字幕大屁股熟女乱| 色老板在线免费观看视频日麻批| 国产农村妇女精品一区| 人妻有码中文字幕| 国产精品不卡无毒在线观看| 国产蜜臀精品一区二区三区| 日韩人妻精品中文字幕专区| 少妇私密会所按摩到高潮呻吟| 午夜精品久久久| 日本看片一区二区三区| 亚洲综合日韩精品一区二区| 99精品人妻少妇一区二区| 久久精品国产99精品九九| 亚洲国产av中文字幕| 欧美精品无码一区二区三区| 999久久久无码国产精品| 亚洲日产无码中文字幕| 一本到亚洲av日韩av在线天堂| 999精品无码a片在线1级| 丰满岳乱妇久久久| 亚洲无码激情视频在线观看| 日本免费精品一区二区| 久久香蕉国产线看观看精品yw| 香蕉视频一级| 女同中文字幕在线观看| 曰批免费视频播放免费| a级毛片内射免费视频| 国产91第一页| 精彩亚洲一区二区三区| 欧美人与动人物牲交免费观看久久| 免费视频一区二区| 后入少妇免费在线观看| 欧美噜噜久久久xxx| 久久久久久av无码免费看大片 |