欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于混沌系統(tǒng)的單向加密方法與流程

文檔序號:12375528閱讀:405來源:國知局

本發(fā)明屬于哈希算法運(yùn)用技術(shù)領(lǐng)域,尤其涉及一種基于混沌系統(tǒng)的單向加密方法。



背景技術(shù):

在現(xiàn)有的加密技術(shù)中,哈希函數(shù)在數(shù)字簽名和認(rèn)證領(lǐng)域尤為重要,因此也有很多人對相關(guān)的算法進(jìn)入了深入研究,2004年在國美加州圣巴巴拉召開的國際密碼學(xué)會議上,來自中國的云教授破譯了MD5、HAVAL-128、RIPEMD算法后,又有許多密碼學(xué)專家在MD5領(lǐng)域做出了更多研究成果,因此MD5算法的安全性,受到越來越多的挑戰(zhàn)?;煦缭从诜蔷€性動力系統(tǒng),而非線性動力系統(tǒng)描述的是任意隨時間變化的過程,這個過程是不確定性的、類似隨機(jī)、非周期,并對初始值非常敏感,這些特征使得人們難以進(jìn)行預(yù)測該系統(tǒng)的下一個過程,因此,基于混沌系統(tǒng)作為加密算法,擁有先天的優(yōu)勢。

綜上所述,現(xiàn)有的加密方法出現(xiàn)的時間長,現(xiàn)有的加密算法安全性較低,而且由于現(xiàn)有算法的特性,使得該算法只能運(yùn)用到某一領(lǐng)域,不能滿足使用者根據(jù)自己的實(shí)際需求,確定密文的長度;不能加大攻擊者的破解難度,并且不能給用戶多一種選擇加密方式。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的在于提供一種基于混沌系統(tǒng)的單向加密方法,解決現(xiàn)有的加密方法出現(xiàn)的時間長,現(xiàn)有的加密算法安全性較低,而且由于現(xiàn)有算法的特性,使得該算法只能運(yùn)用到某一領(lǐng)域,不能滿足使用者根據(jù)自己的實(shí)際需求,確定密文的長度;不能加大攻擊者的破解難度,并且不能給用戶多一種選擇加密方式的問題。

本發(fā)明是這樣實(shí)現(xiàn)的,一種基于混沌系統(tǒng)的單向加密方法,包括以下步驟:

第一步,隨機(jī)輸入一個任意長度的字符串str;

第二步,將該字符串按照某種編碼方式轉(zhuǎn)換成二進(jìn)制碼,并計算出該二進(jìn)制長度len_str;

第三步,判斷該長度len_str是否為3的倍數(shù),即len_str%3=0;如果不是3的倍數(shù),則進(jìn)行第四步;若是則劃分為len_str/3個長度為3bit的二進(jìn)制組;然后在每個二進(jìn)制組前填充一個0,跳轉(zhuǎn)到第5步。

第四步,如果不是3的倍數(shù),則在前面添加len_str%3個0在二進(jìn)制字符串前面,劃分為個長度為3bit的二進(jìn)制,然后在每個二進(jìn)制組前填充一個0,再進(jìn)行第五步;

第五步,每個二進(jìn)制組按BCD編碼的方式進(jìn)行轉(zhuǎn)換成一個數(shù)ai,然后將所有ai相加得到一個值C,C=a1+a2+...+an;再將所有數(shù)ai拼接成一個大數(shù)M,M=a1*100+a2*101+a3*102+...+an*10n-1;其中,

第六步,判斷C是否大于K,如果大于則C=[C/2],再重復(fù)此步驟,若C小于K,進(jìn)行第七步;

第七步,計算X0=M/10y;u=4-X0/10,u取小數(shù)點(diǎn)后位;

第八步,帶入Logistic混沌方程公式Xn+1=uXn(1-Xn),進(jìn)行循環(huán)計算C次,得到值Xc

第九步,以Xc為初始值,再帶入Logistic混沌方程迭代4*N次,每次迭代的結(jié)果記為Xi;Xi>=0.5,則記1;Xi<0.5,則記0,共有4*N個0或1;

第十步,再以四個0或1的二進(jìn)制為一組,轉(zhuǎn)換成一個16進(jìn)制的字符,最后拼接成一個固定長度為N的字符串,該字符串為最后的密文;

其中,ai表示某四個二進(jìn)制按照BCD碼轉(zhuǎn)換成一個數(shù);C表示所有ai加起來的和,即C=∑ai,i∈[1,y];len_str表示用戶隨機(jī)輸入的任意長度字符串轉(zhuǎn)換的二進(jìn)制編碼的長度值;y表示ai的個數(shù),M表示由ai組合成的一個數(shù),M=a1*100+a2*101+a3*102+...+ay*10y-1

進(jìn)一步,所述Logistic混沌方程中Xn的初始值為X0,且X0在[0,1]內(nèi);u是混沌方程中的u值,u在[0,4]內(nèi);當(dāng)u<3.57時,Logistic方程出現(xiàn)準(zhǔn)周期性變化,當(dāng)u>3.57后,Logistic出現(xiàn)混沌狀態(tài)。

進(jìn)一步,ai的生成方法:將輸入字符轉(zhuǎn)換的二進(jìn)制,判斷該二進(jìn)制長度len_str是否為3的倍數(shù),即len_str%3=0;若是則劃分為len_str/3個長度為3bit的二進(jìn)制組,然后在每個二進(jìn)制組前填充一個0;如果不是3的倍數(shù),則在前面添加len_str%3個0在二進(jìn)制字符串頭部,然后劃分為個長度為3bit的二進(jìn)制組,然后在每個二進(jìn)制組前填充一個0,最后每個組按BCD碼的方式進(jìn)行轉(zhuǎn)換成一個數(shù)ai

M的生成方法:將所有數(shù)ai拼接成一個大數(shù)M,拼接方法為:M=a1*100+a2*101+a3*102+...+an*10n-1;

X0的生成方法:M是一個長度為y的正整數(shù),利用M生成一個[0,1]范圍內(nèi)的X0,公式表示為:X0=M/10y;

u的生成方法:u為大于3.57的數(shù)使Logistic混沌方程進(jìn)入混沌狀態(tài),利用X0進(jìn)行除以10,使之進(jìn)入[0,0.1)內(nèi),再用4減去該除數(shù)即得到u];公式表示為:u=4-X0/10,u取小數(shù)點(diǎn)后位;

C值的生成方法為:先計算C值:C=a1+a2+...+an。C是混沌方程初始迭代的次數(shù),目的是為了讓X0進(jìn)入混沌狀態(tài),所以C過大會影響整個加密的效率。這里設(shè)置一個數(shù)K,由于應(yīng)用場景的不同,K的取值也不同,本發(fā)明中設(shè)置數(shù)K的目的是控制C在有效范圍內(nèi)(有效范圍指:至少能使K0進(jìn)入混沌狀態(tài)的最小迭代次數(shù))。

控制C的取值方法為:用for循環(huán)判斷C是否小于某個固定值K,即若C小于K,則退出循環(huán),否則進(jìn)行C=[C/2],再循環(huán)判斷。

本發(fā)明利用輸入信息的二進(jìn)制按照某種方法產(chǎn)生幾個固定的數(shù)值,然后把該數(shù)值運(yùn)用到混沌系統(tǒng)中,最后對混沌計算生成的值進(jìn)行處理,生成一個固定長度的字符串,這樣就達(dá)到了加密的效果。

在本發(fā)明中,由于算法中K和N的取值是使用者自己定義的,所以生成的密文長度也是不一樣的,在不同的領(lǐng)域中,使用者可以根據(jù)自己的實(shí)際需求,確定算法中的K和N值,這樣得到密文長度不一樣,同時也加大了攻擊者的破解難度,給用戶多一種選擇加密方式。

本發(fā)明的單向加密方法類似哈希函數(shù),能夠?qū)⑷我忾L度的輸入進(jìn)行處理,最后都可以輸出一個固定長度的值,由于混沌系統(tǒng)的特性,同時使得該算法具有了明文可以加密成密文,但密文不能解密出明文的單向性。

附圖說明

圖1是本發(fā)明實(shí)施例提供的基于混沌系統(tǒng)的單向加密方法流程圖。

具體實(shí)施方式

為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

下面結(jié)合附圖對本發(fā)明的應(yīng)用原理作詳細(xì)描述。

如圖1所示,本發(fā)明實(shí)施例提供的基于混沌系統(tǒng)的單向加密方法的具體步驟如下:

第1步:隨機(jī)輸入一個任意長度的字符串str。

第2步:將該字符串按照某種編碼方式轉(zhuǎn)換成二進(jìn)制碼,并計算出該二進(jìn)制長度len_str。

第3步:判斷該長度len_str是否為3的倍數(shù),即len_str%3=0。如果不是3的倍數(shù),則進(jìn)行第4步,若是則劃分為len_str/3個長度為3bit的二進(jìn)制組,然后在每個二進(jìn)制組前填充一個0。跳轉(zhuǎn)到第5步。

第4步:如果不是3的倍數(shù),則在前面添加len_str%3個0在二進(jìn)制字符串前面,劃分為個長度為3bit的二進(jìn)制,然后在每個二進(jìn)制組前填充一個0,再進(jìn)行下一步。

第5步:每個二進(jìn)制組按BCD編碼的方式進(jìn)行轉(zhuǎn)換成一個數(shù)ai,然后將所有ai相加得到一個值C,即C=a1+a2+...+an。再將所有數(shù)ai拼接成一個大數(shù)M,即M=a1*100+a2*101+a3*102+...+an*10n-1。

第6步:判斷C是否大于K,如果大于則C=[C/2],再重復(fù)此步驟,若C小于K,進(jìn)行下一步。

第7步:計算X0=M/10y;u=4-X0/10,u取小數(shù)點(diǎn)后位。

第8步:帶入公式Xn+1=uXn(1-Xn),進(jìn)行循環(huán)計算C次,得到值Xc。

第9步:以Xc為初始值,再帶入Logistic混沌方程迭代4*N次,每次迭代的結(jié)果記為Xi;Xi>=0.5,則記1;Xi<0.5,則記0,總共就有4*N個0或1。

第10步:再以四個0或1的二進(jìn)制為一組,轉(zhuǎn)換成一個16進(jìn)制的字符,最后拼接成一個固定長度為N的字符串,該字符串即為最后的密文。

本發(fā)明采用了Logistic混沌方程,即Xn+1=uXn(1-Xn)。該加密方法的核心是Logistic混沌方程以及生產(chǎn)方程中ai、X0、u、與初始值C的方法。

為了更好的對加密方法進(jìn)行描述,結(jié)合本加密機(jī)制的特點(diǎn),本發(fā)明采用以下一般性定義:

len_str表示用戶隨機(jī)輸入的任意長度字符串轉(zhuǎn)換的二進(jìn)制編碼的長度值。

ai表示某四個二進(jìn)制按照BCD碼轉(zhuǎn)換成一個數(shù)。

y表示ai的個數(shù),即

M表示由ai(i∈[1,y])組合成的一個數(shù),即M=a1*100+a2*101+a3*102+...+ay*10y-1

C表示所有ai加起來的和,即C=∑ai,i∈[1,y]。

X0是混沌算法中Xn的初始值;u是混沌方程中的u值。

下面結(jié)合Logistic混沌方程、X0的生成、u的生成、C的生成對本發(fā)明的應(yīng)用原理作進(jìn)一步描述。

本發(fā)明實(shí)施例提供的的單向加密方法包括:

1、Logistic混沌方程,即Xn+1=uXn(1-Xn)

該方程中Xn的初始值為X0,且X0必須在[0,1]范圍內(nèi)。u在[0,4]內(nèi),當(dāng)u<3.57時,Logistic方程會出現(xiàn)準(zhǔn)周期性變化,但當(dāng)u>3.57后,Logistic將出現(xiàn)混沌狀態(tài)。

2、X0的生成

由于M是一個y位的正整數(shù),因此需要將M轉(zhuǎn)換成一個[0,1]范圍內(nèi)的X0,即X0=M/10y。

3、u的生成

由于u的特殊性,u必須大于3.57才能使方程進(jìn)入混沌狀態(tài),所以對X0進(jìn)行除10,使之進(jìn)入[0,0.1)內(nèi),再用4減去該數(shù)即得到u,此時u屬于(3.9,4]內(nèi),滿足條件,算法為:u=4-X0/10,u取小數(shù)點(diǎn)后位,目的是為了避免小數(shù)點(diǎn)后數(shù)值太長,不方便計算,于是采用該方法動態(tài)的取前幾位小數(shù)。

4、C的生成

C值是為了讓該方程計算C次進(jìn)入混沌狀態(tài),確保別人不能猜到該算法的u值和X0值,所以C值也不宜過大,先計算C值:C=a1+a2+...+an,然后用for循環(huán)判斷C是否小于某個固定值K,即若C小于K,則退出循環(huán),否則進(jìn)行C=[C/2],再循環(huán)判斷。

本發(fā)明利用輸入信息的二進(jìn)制按照某種方法產(chǎn)生幾個固定的數(shù)值,然后把該數(shù)值運(yùn)用到混沌系統(tǒng)中,最后對混沌計算生成的值進(jìn)行處理,生成一個固定長度的字符串,這樣就達(dá)到了加密的效果。

在本發(fā)明中,由于算法中K和N的取值是使用者自己定義的,所以生成的密文長度也是不一樣的,在不同的領(lǐng)域中,使用者可以根據(jù)自己的實(shí)際需求,確定算法中的K和N值,這樣得到密文長度不一樣,同時也加大了攻擊者的破解難度,給用戶多一種選擇加密方式。

本發(fā)明的單向加密方法類似哈希函數(shù),能夠?qū)⑷我忾L度的輸入進(jìn)行處理,最后都可以輸出一個固定長度的值,由于混沌系統(tǒng)的特性,同時使得該算法具有了明文可以加密成密文,但密文不能解密出明文的單向性。

以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
南昌县| 广安市| 建德市| 陇川县| 蒙山县| 织金县| 抚州市| 都江堰市| 杭锦旗| 河南省| 凤山县| 长垣县| 库尔勒市| 肇东市| 三门县| 永城市| 桐梓县| 镇江市| 永清县| 东兰县| 龙里县| 辽阳市| 渭南市| 吉林市| 桐城市| 威信县| 西充县| 开江县| 铅山县| 凤城市| 乌鲁木齐县| 什邡市| 苍溪县| 津南区| 色达县| 新宾| 邯郸市| 通辽市| 迭部县| 镇远县| 临邑县|