Logistic混沌序列加密

2021-07-09 17:40:00 字數 2041 閱讀 2515

logistic

混沌置亂,先不說有多複雜,其實很簡單。

logistic函式是源於乙個人口統計的動力學系統,其系統方程形式如下:

x(k+1) = u * x(k) * [1 - x(k)],(k=0,1,…,n)

① 初值:

x(0)

② 引數:

u為什麼這個方程可以稱作混沌呢?它什麼時候是乙個混沌系統呢?這個也是有條件的:

x(0) 

< 1

3.5699456...

u <=4

① x(0) = 0.1

② u = 4

當迭代n次後,我們就得到了x

(1)、x(2)、…,x(n)

這麼n個值。那麼這就是乙個混沌序列,是一維的暫且稱作序列a,也就是我們想要得到的序列,在matlab中,可以看出

x(i)

(i=1,2,…,n)的取值是在(0,1)之間的——這是乙個很好地特性,就像影象灰度值是在(0,255)之間一樣。那麼我們把這個一維序列歸一化到(0,255)之間得到序列b。

再來看加密過程。對於一幅m*n大小的影象(暫且稱為picture),我們需要產生乙個同樣大小的矩陣來對其進行加密。如此說來,只需要迭代m*n次得到序列a,再轉成序列b,此時序列b是一維的,將其轉化成m*n的二維矩陣(暫且稱為****)。因此,用****與picutre進行異或,便可得到一幅新的影象,稱作rod,如此便完成了一次影象加密,加密後的影象為rod。

rod=picture⊕****(

⊕表示異或

)這樣我們手中的秘鑰是:u,

x(0)

此種加密方式稱作序列加密,可以看出這種加密方式改變了下畫素的灰度(直方圖變了),沒有改變位置。解密同樣道理:picture = rod⊕****。

下面是matlab**:

%利用logistic混沌對映,對灰度影象進行序列加密

function v=lock_logistic_gray(picture,x0,u)

[m,n]=size(picture);

x=x0;

%迭代100次,達到充分混沌狀態

for i=1:100

x=u*x*(1-x);

end

%產生一維混沌加密序列

a=zeros(1,m*n);

a(1)=x;

for i=1:m*n-1

a(i+1)=u*a(i)*(1-a(i));

end

%歸一化序列

b=uint8(255*a);

%轉化為二維混沌加密序列

****=reshape(b,m,n);

rod=bitxor(picture,****);%異或操作加密

v=rod;

figure;

imshow([picture,v]);

%完

下面是效果圖:

混沌數學之logistic模型

logistic回歸又稱logistic回歸分析,主要在流行病學中應用較多,比較常用的情形是探索某疾病的危險因素,根據危險因素 某疾病發生的概率。相關demo參見 混沌數學之離散點集圖形demo logistic的用途 一 尋找危險因素,正如上面所說的尋找某一疾病的危險因素等。二 如果已經建立了lo...

混沌數學之二維logistic模型

上一節講了logistic混沌模型,這一節對其擴充一下講二維 logistic對映.它起著從一維到高維的銜接作用,對二維對映中混沌現象的研究有助於認識和 更複雜的高維動力系統的性態。通過構造一次藕合和二次禍合的二維logistic對映研究了二維logistic對映通向混沌的道路,分析了其分形結構和吸...

混沌分形之邏輯斯蒂(Logistic)對映系統

前幾天,有個同事看到我生成的一幅邏輯斯蒂分岔影象後,問我 這是咪咪嗎?我回答 淫者見淫。好吧,這裡將生成幾種分岔對映圖形,包括邏輯斯蒂對映系統,正弦對映系統和曼德勃羅對映系統。實際上這幾種圖形算不上分形,只不過它與我寫的其他分形物件使用相同的基類,所以也將其列入混沌分形的範疇。關於基類fractal...