日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基于MATLAB的混沌密码与数字图像加密应用、信息隐藏

發布時間:2024/1/8 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于MATLAB的混沌密码与数字图像加密应用、信息隐藏 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基于MATLAB的混沌密碼與數字圖像加密應用、信息隱藏

實驗目的:利用Matlab軟件基于Logistic映射的加密算法對圖像進行加密和解密,以及利用DEV C++軟件、Excel表格繪制圖像基于Logistic映射的算法產生的混沌現象。理解Logistic加密算法,掌握加密過程。

一、實驗原理

1.混沌的定義

混沌(Chaos)是非線性確定性系統中具有的內在隨機現象,具有運動軌跡的不可預測性、對系統初值和控制參數的敏感性以及運動軌跡的遍歷特性等。

第一種定義是基于混沌的“蝴蝶效應”,即倘若一個非線性系統的行為對初始條件的微小變化具有高度敏感的依賴性,則稱混沌運動。這就是說,一個系統的混沌行為對初始條件的變化具有高度敏感性,表現出極端的不穩定性。這種高度不穩定性,是指在相空間內初始極其鄰近的兩條軌道,隨著時間的推進,兩條軌道的距離彼此以指數形式迅速分離而永不相遇,它們的行為具有局部不穩定性。

第二種混沌定義是基于Li-Yorke定理,從數學上嚴格定義。Li-Yorke定理為:設f(x)是[a,b]上的連續自映射,若f(x)有3個周期點,則對任何正整數n,f(x)有n周期點。混沌定義如下:閉區間I上的連續自映射f(x),倘若滿足條件,則一定出現混沌現象:

(1)f周期點的周期無上界;

(2)閉區間I上存在不可數子集S。

2. Logisitc 混沌模型

由于混沌系統具有偽隨機性、不確定性和對初始條件與系統參數的極為敏感性,其自身的動力學特性使混沌現象天生具備了應用于保密安全的條件,在圖像加密領域表現出良好的應用前景。Logistic混沌系統有一個自變量,是一維混沌系統。含有兩個自變量的混沌系統是二維的,含有三維系統及多于三維的混沌系統是高位混沌系統。Logistic混沌系統由下式給出:


,n=1,2,…… (1)

研究表明,式(1)這個看似極為簡單的方程當參數λ變化時有極復雜的動態行為。當0<λ≤3時,該模型性態簡單;當3<λ≤3.75時,系統處于倍周期狀態;當λ>3.57時,系統處于混沌狀態。

二、實驗步驟

下面以一副256×256的圖像test.gif 為例,利用MATLAB軟件進行圖像加密,加密程序如下:

%混沌加密Logisitc加密算法,圖片像素為256*256,可直接放在work子文件夾中

clc;

clear all;

global M;

global N;

global Ximage;

global Yimage;

global sy;

Ximage=double(imread('test.gif'));

key1=0.1;

key=4;

[M,N]=size(Ximage);

figure(1)

imshow(Ximage,[]);

Ximage=double(Ximage);

for(i=1:M)

for(j=1:N)

key1=key*key1*(1-key1);

a(i,j)=key1;

end

end

key2=0.2;

for(i=1:M)

for(j=1:N)

key2=key*key2*(1-key2);

b(i,j)=key2;

end

end

x=0.4*a+0.6*b;

e=round(x*256);

tt=0.01;

Yimage=tt*Ximage+(1-tt)*e;

figure(2)

imshow(Yimage,[]);

figure(3)

imhist(uint8(Ximage));

title('原圖像的直方圖');

figure(4)

imhist(uint8(Yimage));

title('加密之后的直方圖');


%%置亂度分析

Yimage=double(Yimage);

sx=sum(sum((Ximage-256*rand(M,N)).^2));

DD=sy/sx %置亂度

global M;

global N;

global Ximage;

global Yimage;

key1=input('請輸入密鑰key1:');

key=4;

for(i=1:M)

for(j=1:N)

key1=key*key1*(1-key1);

a(i,j)=key1;

end

end

key2=input('請輸入密鑰key2:');

for(i=1:M)

for(j=1:N)

key2=key*key2*(1-key2);

b(i,j)=key2;

end

end

x=0.4*a+0.6*b;

e=round(x*256);

tt=0.01;

Zimage=(Yimage-(1-tt)*e)/tt;

figure(5)

imshow(Zimage,[]);


加密過程:

  • 首先將要加密的圖片test.gif保存在d盤中,如下圖1所示:


  • 圖1存在d盤中的test圖片

  • 打開Matlab軟件并把上面的加密程序輸入軟件環境窗口,如下圖2所示:


  • 圖2在Matlab中輸入的編程

  • 程序輸入完成后,按回車鍵,程序會運行得出5張圖片,分別為加密前的原圖和加密后的圖片、加密前的直方圖和加密后的直方圖。如下圖3、圖4、圖5、圖6所示:


  • 圖3加密前的原圖



    圖4加密后的圖片



    圖5加密前的直方圖



    圖6加密后的直方圖

    說明:加密后的灰度直方圖分析可以用來衡量加密算法的擾亂性。上圖3、圖4、圖5、圖6是加密前后的圖像以及它們的直方圖的對比。可見,加密后的直方圖呈均勻分布,未保留任何明文信息。圖6加密后的直方圖的圖像越均勻說明混沌效應越好,上圖6總體上來說是均勻的,只是在編程的時候考慮的只是黑白色的點,所以直方圖看起來全部的點不是絕對的均勻。

    解密過程:

    ⑦如果想得到原圖(解密),必須在MATLAB界面窗口輸入兩個密鑰, “請輸入密匙key1:0.1 請輸入密匙key2:0.2”; 如下圖7所示:



    圖7解密之后得到的原圖

    從上圖可以看出,加密后的圖像沒有留下原圖的痕跡,而解密后的圖像看不出差別,此方法加密效果良好。

    換一副帶有彩色256×256的圖像111.gif 為例,利用MATLAB軟件進行圖像加密,加密程序跟上面的差不多,只是把圖片名稱改了,步驟以上的也一樣如下所示:

  • 把修改圖片名稱后的程序輸入Matlab軟件中,如下圖8所示:


  • 圖8修改圖片的名稱

  • 運行之后得出來的結果如下圖9、圖10、圖11、圖12所示:


  • 圖9加密的原圖




    圖10加密后的圖



    圖11 加密前的圖像直方圖



    圖12加密后的圖像直方圖



    圖13解密后的到的圖像

    說明:由上圖9、圖10、圖11、圖12、圖13可知,彩色圖片加密后的圖片跟原先用的黑白圖片加密的圖像一樣都是由黑白的點組成的。而且彩色圖片加密后的圖像直方圖總體上來說也是符合混沌效應現象的。



    C語言代碼實現混沌效應,加密程序如下:

    //簡單模擬LOGISTIC模型C++源程序

    #include<iostream>

    #include<math.h>

    #define N 300

    using namespace std;

    void fun(float x0,float u,int k,float result[])

    { int i=0;

    float temp_1,temp_2,temp_3;

    temp_1=x0;

    while(k)

    {

    result[i++]=temp_1;

    temp_2=1-temp_1;

    temp_3=u*temp_1;

    temp_1=temp_2*temp_3;

    k--;

    }

    }

    int main()

    {

    int i,k;

    float x0,u,*result,*ratio,sum=0.0,ave,s=0.0,st;

    cout<<"How many logistic sequence do you wanna output?"<<endl;

    cin>>k;

    while(k<1||k>N)

    {

    cout<<"Input a positive integer from 1 to "<<N<<":"<<endl;

    cin>>k;

    }

    result=new float[k];

    ratio=new float[k-1];

    cout<<"Input a float value between 0 and 4 :"<<endl;

    cin>>u;

    cout<<"Input a float value between 0 and 1 :"<<endl;

    cin>>x0;

    fun(x0,u,k,result);

    for(i=0;i<k;i++)

    {

    cout<<result[i]<<endl;

    }

    }

  • 據老師提供的C語言代碼,為了方便后續的數據統計工作,進一步更改代碼的輸出格式,然后把修改后的代碼輸入DEV C++軟件環境窗口中。如下圖1中綠色圈圈所示:


  • 圖1修改輸出語句后的代碼

  • 然后點擊編譯并運行按鈕,在彈出來的窗口中輸入你想要的數據數量100、λ的取值(λ≥3.57)3.59還有初始值0.23456,并回車后得出數據。如下圖2所示:


  • 圖2運行得出的數據

  • 接下來把得出的數據復制到Word文檔中并繪制成表格的形式以便導入Excel中統計數據。如下圖3所示:





  • 圖3通過拷貝在Word中的數據

  • 然后再利用復制、粘貼功能把數據導入Excel中,并繪制折線圖,觀察混沌效應。如下圖4所示:


  • 圖4Excel中的數據與繪制的折線圖

    說明:從圖4折線圖中可以看出圖像中點的分布總體上是滿足混沌現象的。

    二、實驗原理(信息隱藏)

    1.數字信息隱藏技術已成為信息科學領域研究的一個熱點。被隱藏的秘密信息可以是文字、密碼、圖像、圖形或聲音,而作為宿主的公開信息可以是一般的文本文件、數字圖像、數字視頻和數字音頻等。

    2.信息隱藏系統的模型可以用下圖1-1來表示。我們把待隱藏的信息稱為秘密信息,它可以是版權信息或秘密數據,也可以是一個序列號;而公開的信息則稱為宿主信息,如視頻、音頻片段等。這種信息隱藏過程一般由密鑰來控制,通過嵌入算法將秘密信息隱藏于公開信息中,而隱蔽宿主則通過通信信道傳遞,然后對方的檢測器利用密鑰從隱蔽宿主中恢復/檢測出秘密信息。

    密鑰

    密鑰




    秘密信息

    隱蔽宿主

    秘密信息

    宿主信息

    檢測器

    宿主信息

    編碼器


    圖1-1 信息隱藏系統模型

    由此也可以看出,信息隱藏技術主要有下述兩部分組成:

  • 信息嵌入算法(編碼器),它利用密鑰來實現秘密信息的隱藏。
  • 隱藏信息監測/提取算法(檢測器),它利用密鑰從隱藏宿主中檢測/恢復出秘密信息。在密鑰未知的前提下,第三者很難從隱藏宿主中得到或刪除,甚至發現秘密信息。
  • 實驗步驟如下:

  • 利用Easycode Boy Plus加密工具對文件進行加密、解密(可對多個文件進行加密):
  • 首先打開Easycode Boy Plus加密工具實驗環境窗口,然后點擊加密命令把需要的加密文件添加到其中,并輸入密碼,確認密碼,然后點擊開始加密,最后會彈出加密成功的窗口,如下圖1所示:

  • 圖1對文件加密成功

  • 接下來對剛剛加密的文件進行解密。只要記住剛剛在加密時候設立的密碼就可以進行解密,同樣的在Easycode Boy Plus加密工具實驗環境窗口點擊解密命令,把要解密的文件拖入其中,并輸入加密時設的密碼,點擊開始解密命令即可,如下圖2所示:


  • 圖2解密成功

  • 利用Easycode Boy Plus加密工具將文件編譯為EXE自解密文件:
  • 在Easycode Boy Plus加密工具實驗環境窗口點擊編譯EXE命令,選擇“將文件編譯為EXE自解文件”按鈕,并把要編譯的EXE文件添加在其中,輸入密碼,確認密碼,然后點擊開始編譯/加密命令即可,如下圖3所示:


  • 圖3加密成功


  • 現在已經很明顯的發現文件已成了應用程序,并在打開的時候要要輸入之前設的密碼,然后勾選解密后刪除自解文件即可自解密并得到原來的文件類型,如下圖4、圖5、圖6所示:


  • 圖6解密過程



    圖7自解密完成



    圖8得到原來的文件類型

    說明:根據多次實驗得出對EXE文件加密保護以及去除EXE文件密碼保護或自解密殼操作步驟其實是差不多的。

  • 利用Easycode Boy Plus加密工具對文件進行嵌入:
  • 以下是兩張不同格式的圖片,把靜態圖(左)嵌入動態圖(右)中,如下圖1所示:


  • 圖1嵌入之前的原圖

  • 在Easycode Boy Plus加密工具實驗環境窗口點擊文件嵌入按鈕,并把靜態圖拖入作為記住文件,把動態圖拖入作為嵌入文件;并設置密碼,確認密碼,然后點擊嵌入文件命令即可嵌入成功,并發現嵌入文件(動態圖)通過我們的肉眼看不出有什么變化,如下圖2、圖3所示:


  • 圖2信息隱藏成功


    總結

    以上是生活随笔為你收集整理的基于MATLAB的混沌密码与数字图像加密应用、信息隐藏的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 色婷婷综合视频 | 免费黄色网址在线观看 | 色窝窝无码一区二区三区 | 免费黄色a| 91中文视频| 女人高潮被爽到呻吟在线观看 | 亚洲天堂五月 | 午夜免费高清视频 | 日本人做受免费视频 | 欧美青草视频 | 国产猛男猛女超爽免费视频 | 麻豆 美女 丝袜 人妻 中文 | 精品一区二区三区免费 | 国产精品伦理 | 女生毛片| 美女户外露出 | 欧美国产在线观看 | 成年人黄色在线观看 | 国内精品嫩模av私拍在线观看 | jizz视频| 欧美国产一区二区 | 成人国产视频在线观看 | 日本中文字幕二区 | 欧美午夜精品理论片a级按摩 | 九月婷婷色 | 亚洲精品国产精品乱码不99 | 亚洲精品久久久久久久久久久 | 伊人久久91 | 国产视频xxx| 夜夜操天天爽 | 中文字幕乱码在线 | 美女精品一区 | 黄色av电影在线观看 | 精品少妇人妻一区二区黑料社区 | 91av福利视频| 中国精品一区二区 | 中文字幕免费在线观看 | 国产精品乱码一区二区 | 蜜桃臀aⅴ精品一区二区三区 | 久久99久久久久久 | 夜夜爽爽 | 天天爱夜夜爱 | 精品乱人伦一区二区三区 | 国产在线中文 | www.亚洲天堂 | 亚洲第一综合网 | 一卡二卡三卡在线观看 | 91免费版黄色 | 91在线无精精品白丝 | 夜夜躁狠狠躁日日躁av | 夫妻啪啪呻吟x一88av | 三度诱惑免费版电影在线观看 | 狠狠干美女 | 国产成人av一区二区三区 | av在线免费播放网站 | 免费啊v在线观看 | 欧美丝袜一区二区三区 | 女人被狂躁60分钟视频 | 夜夜夜撸 | 韩国视频一区二区三区 | 香蕉视频污视频 | 粉嫩av一区二区夜夜嗨 | 无码人妻精品一区二区三区99不卡 | 黄色一级大片在线免费看国产一 | 国产精品久久久久久久天堂 | 成人免费xxxxx在线观看 | 亚洲涩网| 轻轻色在线观看 | 99视频99| 无码熟妇αⅴ人妻又粗又大 | 亚洲成人第一区 | 99一区二区 | 国产又粗又长又硬免费视频 | 五月婷婷六月婷婷 | av无码久久久久久不卡网站 | 日韩欧美aⅴ综合网站发布 国产成人一区二区三区小说 | 免费av网站观看 | av超碰 | 欧美精品一二三 | 日韩免费av片 | 成人亚洲网站 | 中文字幕 国产 | 精品国产99久久久久久宅男i | 欧美精品一区二区三区久久 | 人妻一区二区三区免费 | 国产露脸无套对白在线播放 | 国产亚洲精品成人无码精品网站 | 污视频网站在线看 | 深夜视频在线观看 | 亚洲精选在线 | 成人黄色在线免费观看 | 中国少妇无码专区 | 国产在线网站 | 午夜影院毛片 | 91精品国产高清91久久久久久 | 久久久久久免费精品 | 国产精品久久久久久久久毛片 | 国产又粗又猛又黄又爽无遮挡 | 久久人妻无码aⅴ毛片a片app |