国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于非線性預(yù)處理和神經(jīng)網(wǎng)絡(luò)的字符序列單向Hash算法

2018-03-29 08:25:57
關(guān)鍵詞:單向字符權(quán)值

朱 巍

(銳捷網(wǎng)絡(luò)股份有限公司,福建 福州 350002)

0 引言

單向Hash函數(shù)在數(shù)字簽名、身份認(rèn)證、動(dòng)態(tài)口令驗(yàn)證和完整性校驗(yàn)等領(lǐng)域中已經(jīng)得到了相當(dāng)廣泛的應(yīng)用。傳統(tǒng)的單向Hash方法有MD5、SHA-1、RIPEMD-160和SHA-256等[1-2],它們大多數(shù)基于復(fù)雜度的假設(shè),需要進(jìn)行大量的邏輯運(yùn)算[3-4],另外相關(guān)研究發(fā)現(xiàn),這些算法已經(jīng)并非足夠安全[5-7]。

基于神經(jīng)網(wǎng)絡(luò)的Hash構(gòu)造方法近些年來(lái)也引起了研究者的關(guān)注[8-12]。神經(jīng)網(wǎng)絡(luò)由于其內(nèi)部復(fù)雜性、混沌性、擴(kuò)散特性以及狀態(tài)或者結(jié)構(gòu)的時(shí)變性,已經(jīng)被廣泛地應(yīng)用于數(shù)據(jù)保護(hù)和加密算法中,并且隨著神經(jīng)網(wǎng)絡(luò)的單向特性(例如假設(shè)神經(jīng)網(wǎng)絡(luò)的輸出層維數(shù)小于隱含層維數(shù),那么可以很容易地通過(guò)輸入得到輸出值,卻很難通過(guò)輸出值逆向推導(dǎo)出輸入)的不斷深入研究,在密碼學(xué)的單向Hash算法中,基于神經(jīng)網(wǎng)絡(luò)的方法也越來(lái)越多被提出。

然而目前大量基于神經(jīng)網(wǎng)絡(luò)的Hash方法并沒(méi)有針對(duì)身份認(rèn)證這一越來(lái)越廣泛的使用場(chǎng)景進(jìn)行優(yōu)化,依然采用空白填充的方法將用戶的密碼序列進(jìn)行對(duì)齊操作,這一步驟并不能增加信息的有效維度,并且加重了冗余計(jì)算,浪費(fèi)了密碼空間的復(fù)雜度[13-15]。另外,很多Hash方法中將原始字符序列的ASCII碼直接輸入到神經(jīng)網(wǎng)絡(luò)中,由于ASCII碼中存在很多‘0’的二進(jìn)制位[16],并不能充分利用神經(jīng)網(wǎng)絡(luò)的輸入權(quán)值,并不利于最終Hash碼的魯棒性。

本文提出了一種基于非線性預(yù)處理和遞歸神經(jīng)網(wǎng)絡(luò)(RNN)的字符序列的Hash構(gòu)造方法,通過(guò)預(yù)先對(duì)字符序列進(jìn)行非線性處理,得到字符序列的目標(biāo)數(shù)值序列,并輸入到RNN中,經(jīng)RNN計(jì)算后得到最終的Hash值。通過(guò)理論分析和實(shí)驗(yàn)仿真,證明了本算法具有優(yōu)秀的混沌擴(kuò)散性質(zhì)、抗碰撞能力以及單向特性,因此具有良好的理論研究?jī)r(jià)值以及現(xiàn)實(shí)應(yīng)用意義。

1 Hash算法實(shí)現(xiàn)

1.1 非線性預(yù)處理

通過(guò)非線性預(yù)處理手段,可以將一維的字符序列映射到一個(gè)多維的混沌空間,有利于增強(qiáng)模型輸入的復(fù)雜性,從而獲得具有更加健壯的單向Hash函數(shù)構(gòu)造模型。

設(shè)用戶的字符序列X=[x1,x2,…,xN]T,其中N為序列的長(zhǎng)度,序列中每個(gè)字符xi(1≤i≤N)均使用統(tǒng)一的字符編碼集U進(jìn)行二進(jìn)制編碼,例如ASCII編碼、UTF-8編碼等等。

Ci=normalize(Di)

1.2 RNN的構(gòu)建

圖1 網(wǎng)絡(luò)模型

RNN結(jié)構(gòu)如圖1所示。其中輸入層的節(jié)點(diǎn)數(shù)量為M(單個(gè)字符編碼長(zhǎng)度),輸出層的節(jié)點(diǎn)數(shù)量為期望得到的Hash碼的長(zhǎng)度的1/k(k為預(yù)設(shè)的Hash碼增益長(zhǎng)度系數(shù)),記為L(zhǎng),中間遞歸層的節(jié)點(diǎn)數(shù)量記為P,且需要保證P>L。

對(duì)輸入權(quán)值矩陣Win∈P×M、遞歸層反饋權(quán)值矩陣Wre∈P×P以及輸出權(quán)值矩陣Wout∈L×P,遞歸層偏置值Bre∈P×1,輸出層偏置值Bout∈L×1分別進(jìn)行隨機(jī)初始化。最后根據(jù)需要選定遞歸層和輸出層的激活函數(shù),例如sigmod、tanh函數(shù)。

初始情況下,RNNN的隱含層神經(jīng)元狀態(tài)為0,經(jīng)過(guò)第一個(gè)輸入c1后,狀態(tài)為

S(1)=(Winc1+Bre)

(1)

從第二個(gè)輸入c2到最后一個(gè)輸入cN,隱含層神經(jīng)元狀態(tài)為

S(i)=(Winci+WreS(i-1)+Bre)

(2)

最終網(wǎng)絡(luò)N的輸出為

O(N)=(WoutS(N)+Bout)

(3)

1.3 Hash過(guò)程

Hash的具體實(shí)施步驟如下:

(1)初始化遞RNN,包括RNN的結(jié)構(gòu)規(guī)模、權(quán)值初始化以及隱含層神經(jīng)元狀態(tài)置0。

(2)設(shè)置Hash碼增益長(zhǎng)度系數(shù)k,最終得到的Hash碼長(zhǎng)度將為k倍的RNN輸出層維數(shù),即kL。

(3)對(duì)密碼字符序列進(jìn)行非線性預(yù)處理,得到目標(biāo)數(shù)值序列。

(4)將每個(gè)密碼子夫的目標(biāo)數(shù)值序列依次輸入初始化好的RNN中,得到最終的網(wǎng)絡(luò)輸出O(N)。

(5)計(jì)算向量P=O(N)×10k,將P中每個(gè)元素值均轉(zhuǎn)換成十六進(jìn)制值,并取后位串聯(lián)組成最終的Hash碼。

2 實(shí)驗(yàn)

本文提出的算法采用MATLAB R2017a進(jìn)行了實(shí)驗(yàn)仿真,并且取得了較好的實(shí)驗(yàn)效果,其相關(guān)代碼可以從GitHub下載:https://github.com/JuiLangCHU/NP_ANN_HashAlgorithm。

這里假設(shè)有密碼文本如下:

密碼1:1b2FC1Pe6B94aZbD4740D7kd9L9B844f9g

密碼2:2b2FC1Pe6B94aZbD4740D7kd9L9B844f9g

密碼3:1b2FC1Pe6B94aZbD4840D7kd9L9B844f9g

密碼4:1b2FC1Pe6B94aZbD4740D7kd9L9B844f9h

其中密碼2與密碼1僅首部第一個(gè)字符不同(1→2),密碼3與密碼1僅中間第18個(gè)字符不同(7→8),密碼4與密碼1僅尾部最后一個(gè)字符不同(g→h)。4組密碼的Hash值如圖2所示。

圖2 4組密碼序列的Hash值0、1序列圖形

2.1 單向性分析

對(duì)于神經(jīng)網(wǎng)絡(luò)的最終輸出向量O,由于從小數(shù)點(diǎn)后第二位開始取若干位作為Hash碼,因此通過(guò)Hash值逆推網(wǎng)絡(luò)輸出的復(fù)雜度為o(24L),L為神經(jīng)網(wǎng)絡(luò)的輸出層維度,可見當(dāng)網(wǎng)絡(luò)輸出層維數(shù)較大時(shí),此步驟的計(jì)算復(fù)雜度相當(dāng)高。

圖4 改變密碼序列不同位置的一個(gè)字符時(shí),Hash碼發(fā)生改變的比特?cái)?shù)量(總Hash碼長(zhǎng)度為128)

另外,根據(jù)神經(jīng)網(wǎng)絡(luò)最終輸出公式(3)得:

WoutS(N)=f-1(O)-Bout

(4)

其中,Wout∈L×P,S∈P×1,令φ=f-1(O)-Bout∈L×1,對(duì)公式(4)展開,可以得到:

?

2.2 碰撞性分析

抗碰撞是指對(duì)于兩個(gè)不同的原始輸入序列,經(jīng)過(guò)Hash算法后得到的Hash值相同的概率非常小。實(shí)驗(yàn)中,對(duì)于1個(gè)密碼序列任意改變其中某一位置的一個(gè)字符,經(jīng)過(guò)本算法得到128 bit的Hash碼,并統(tǒng)計(jì)相同位置上對(duì)應(yīng)的Hash值相同的次數(shù),經(jīng)仿真,統(tǒng)計(jì)結(jié)果分布如圖3所示,超過(guò)18個(gè)字符相等的Hash碼出現(xiàn)概率為0,說(shuō)明算法具有良好的抗碰撞能力。

圖3 相同位置具有相同Hash值的統(tǒng)計(jì)次數(shù)

2.3 擴(kuò)散性和均衡性分析

隨機(jī)取一段密碼序列,并分別更改密碼序列的首部、中部、尾部以及隨機(jī)位置的一個(gè)字符,然后計(jì)算原始密碼以及字符發(fā)生變化之后的Hash值,實(shí)驗(yàn)中Hash碼的長(zhǎng)度為128 bit。通過(guò)1 000次測(cè)試,計(jì)算得Hash碼發(fā)生變化的比特?cái)?shù)量分別為64.194、64.111、63.899、64.161,如圖4所示。

由此可見,即使是不同位置的密碼字符出現(xiàn)變化,對(duì)最終的Hash碼的影響幾乎是相同的,說(shuō)明該Hash算法的平衡性非常均勻,并且最終Hash碼的比特變化數(shù)量均非常接近Hash碼總長(zhǎng)度的50%,即64 bit,也說(shuō)明了該Hash算法的混亂擴(kuò)散性比較出色,能夠敏銳地感知到原始密文序列出現(xiàn)的微小差異。

2.4 信息熵測(cè)試

為了度量一段消息中所含的信息容量,1948年由SHANNON C E提出了信息熵的概念,在信息論中,當(dāng)熵最大時(shí),信息量最大。對(duì)于Hash函數(shù)而言,熵最大時(shí),Hash值的分布也越混亂,信息復(fù)雜度越高。熵的數(shù)學(xué)度量模型為:

且滿足

0≤H(X)≤log|X|

其中|X|為取值個(gè)數(shù)。僅當(dāng)變量X符合均勻分布時(shí),H(X)=log|X|,即此時(shí)H(X)為最大熵。

為此,計(jì)算序列Hash碼的信息熵,X為Hash碼中不同字符的集合。

由于這里Hash碼的取值為十六進(jìn)制的0至F,理論上的熵最大值為log216=4 bit。對(duì)比以上4組密碼序列的熵值(如表1所示),可見已比較接近最大熵,表明其Hash碼的混亂程度也趨近最大。

表格1 不同密碼序列的信息熵值

3 結(jié)論

本文提出了一種基于非線性預(yù)處理和RNN相結(jié)合的密碼文本序列Hash算法,其中非線性預(yù)處理可以顯著地?cái)U(kuò)大遞歸神經(jīng)網(wǎng)絡(luò)輸入層中不同字符的輸入差異性,從而實(shí)現(xiàn)Hash構(gòu)造函數(shù)對(duì)于微小差異的序列具有高敏感性。結(jié)合RNN中的參數(shù)敏感性、非線性等特點(diǎn),可以實(shí)現(xiàn)安全地抗攻擊的Hash構(gòu)造方法,相關(guān)實(shí)驗(yàn)分析也證明了其有效性。此外由于RNN中的參數(shù)取值靈活,網(wǎng)絡(luò)的規(guī)模也可以根據(jù)實(shí)際需要進(jìn)行調(diào)整,因此在Hash實(shí)現(xiàn)中不需要對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。綜上所述,本文提出的算法具有高靈活性、易用性、擴(kuò)展性和用戶自定義配置性。

[1] RONALD L. RIVEST. The MD5 message-digest algorithm [R].MIT Laboratory for Computer Science and RSA Data Security, 1992.

[2] Federal information processing standards publication 180-1. secure hash standard [S]. 1995.

[3] Wang Shihong, Hu Gang. Coupled map lattice based hash function with collision resistance in single-iteration computation [J]. Information Sciences. 2012 Jul 15;195:266-76.

[4] WANG SHIHONG, LI DA, ZHOU HU. Collision analysis of a chaos-based hash function with both modification detection and localization capability [J]. Communications in Nonlinear Science and Numerical Simulation, 2012, 195(13):166-276.

[5] Wang Xiaoyun, Yao Fang. Crypt analysis of SHA-1 hash function [C].Proceedings of the 25th International Cryptology Conference, 2005:19-35.

[6] Xiao Di, Liao Xiaofeng, Wang Yong. Improcing the security of a parallel keyed hash function based on chaos map [J]. Physics Letter A, 2009:4346-4353.

[7] Yang Gang, Yi Junyan. Dynamics characteristic of a multiple chaotic neural network and its application[J]. Soft Computing, 2013:783-792.

[8] ABDOUN N, ASSAD S E, TAHA M A, et al. Secure Hash Algorithm based on Efficient Chaotic Neural Network [C]. 2016 International Conference on Communications. IEEE, 2016: 405-410.

[10] 陳軍, 韋鵬程, 張偉, 等. 基于RBF神經(jīng)網(wǎng)絡(luò)和混沌映射的Hash函數(shù)構(gòu)造 [J]. 計(jì)算機(jī)科學(xué), 2006, 33(8):198-201.

[11] 李國(guó)剛, 鐘超林, 藺小梅. OHNN新的分組Hash算法 [J]. 華僑大學(xué)學(xué)報(bào)(自然科學(xué)版), 2015,36(4):393-398.

[12] XIAO D, LIAO X, WANG Y. Parallel keyed hash function construction based on chaotic neural network [J]. Neurocomputing, 2009, 72(10):2288-2296.

[13] LIAN S, SUN J, WANG Z. Secure hash function based on neural network [J]. Neurocomputing, 2006,69(16):2346-2350.

[14] HE B, LEI P, PU Q, et al. A method for designing hash function based on chaotic neural network [C]. International Workshop on Cloud Computing and Information Security (CCIS), 2013.

[15] LIAN S, LIU Z, REN Z, et al. Hash function based on chaotic neural networks [C]. Circuits and Systems, 2006.ISCAS 2006.IEEE, 2006: 4.

[16] URBANOVICH P, PLONKOWSKI M, CHURIKOV K. The appearance of conflict when using the chaos function for calculating the hash code [J]. Network, 2012, 88(11b): 346-347.

猜你喜歡
單向字符權(quán)值
一種融合時(shí)間權(quán)值和用戶行為序列的電影推薦模型
尋找更強(qiáng)的字符映射管理器
碳纖維/PPS熱塑性單向預(yù)浸帶進(jìn)入市場(chǎng)
用“單向?qū)m排除法”解四宮數(shù)獨(dú)
CONTENTS
CONTENTS
單向截止閥密封失效分析
字符代表幾
一種USB接口字符液晶控制器設(shè)計(jì)
電子制作(2019年19期)2019-11-23 08:41:50
消失的殖民村莊和神秘字符
博客| 西乡县| 宁晋县| 蓝山县| 嵊泗县| 武强县| 德保县| 浑源县| 贵州省| 锡林郭勒盟| 罗城| 灵石县| 铜鼓县| 恩施市| 南溪县| 大连市| 永泰县| 临泉县| 昌图县| 滨海县| 天台县| 鄂伦春自治旗| 如东县| 万全县| 连平县| 崇礼县| 平舆县| 鄂温| 广德县| 丰原市| 茌平县| 岳普湖县| 无棣县| 前郭尔| 邮箱| 海安县| 海阳市| 赤壁市| 谷城县| 丰城市| 长春市|