摘 要:社會(huì)網(wǎng)絡(luò)的數(shù)據(jù)獲取已經(jīng)成為社會(huì)網(wǎng)絡(luò)分析的重要基石,雖然大多數(shù)社會(huì)媒體提供給開發(fā)者官方接口以供數(shù)據(jù)獲取,但是在調(diào)用頻次、權(quán)限、內(nèi)容等方面都有嚴(yán)格的限制,難以獲取全面的數(shù)據(jù)。因此,基于用戶模擬登錄的數(shù)據(jù)獲取方法顯得尤為重要,然而目前大多數(shù)社會(huì)媒體的登錄過程存在較大的安全隱患,其登錄密碼均采用明文傳輸,嚴(yán)重威脅到用戶的隱私安全。本文詳細(xì)分析了Twitter登錄過程中客戶端與服務(wù)器間的交互過程,并且在流量層面解析POST請(qǐng)求時(shí),發(fā)現(xiàn)Twitter的登錄密碼采用明文傳輸。為此,提出一種基于社會(huì)網(wǎng)絡(luò)特性的雙混沌互反饋加密算法。該算法利用登錄用戶的ID、創(chuàng)建時(shí)間、關(guān)注數(shù)作為加密函數(shù)的初始值與參數(shù),并通過Logistic映射和Tent映射兩個(gè)混沌系統(tǒng)交互式運(yùn)算,得出密鑰序列。由于輸入?yún)?shù)的特殊性,使得密文具有不可預(yù)測性。實(shí)驗(yàn)表明該算法取得了較好的加密和解密效果,同時(shí)加密與解密均處于毫秒級(jí),可以做到用戶的無感操作。此外,該算法擁有初始條件極度敏感、密鑰空間大、加密強(qiáng)度高等特點(diǎn)。該算法能有效地防止攻擊者使用相圖、窮舉、統(tǒng)計(jì)等方法進(jìn)行密碼破解,具有廣闊的應(yīng)用前景。
關(guān)鍵詞:社會(huì)網(wǎng)絡(luò);模擬登錄;混沌加密
隨著Web2.0技術(shù)的發(fā)展與普及,社會(huì)網(wǎng)絡(luò)已經(jīng)成為人們生活中必不可少的公共平臺(tái)。截止到2015年3月份,F(xiàn)acebook和Twitter已經(jīng)擁有了超過14.15億和2.88億的月活躍用戶[1]。此外,截止到2015年4月份,作為中國最具影響力之一的社會(huì)網(wǎng)絡(luò)平臺(tái),新浪微博擁有1.76億的月活躍用戶[2]。在社會(huì)網(wǎng)絡(luò)中,信息數(shù)量隨著用戶數(shù)量的與日俱增呈現(xiàn)指數(shù)級(jí)的增長,海量的社會(huì)網(wǎng)絡(luò)數(shù)據(jù)使得基于大數(shù)據(jù)的社會(huì)網(wǎng)絡(luò)分析成為可能。社會(huì)網(wǎng)絡(luò)的數(shù)據(jù)獲取已經(jīng)成為社會(huì)網(wǎng)絡(luò)分析的重要基石。
雖然大多數(shù)社會(huì)媒體提供給開發(fā)者官方接口以供數(shù)據(jù)獲取,但是在調(diào)用頻次、權(quán)限、內(nèi)容等方面都有嚴(yán)格的限制,難以獲取全面的數(shù)據(jù)。以作為擁有上億用戶的全球第二大社交網(wǎng)站Twitter為例,目前世界上獲取Twitter數(shù)據(jù)主要采用的方法是調(diào)用應(yīng)用程序編程接口 (Application Programming Interface, API),該接口是面向第三方合作伙伴的開放平臺(tái),開發(fā)人員可根據(jù)需求調(diào)用相應(yīng)接口程序。但由于官方的限制,無法保證數(shù)據(jù)獲取的時(shí)效性和完整性。因此,基于用戶模擬登錄的數(shù)據(jù)獲取方法應(yīng)運(yùn)而生,也顯得尤為重要,然而目前大多數(shù)社會(huì)媒體的登錄過程存在較大的安全隱患。其登錄密碼均采用明文傳輸,嚴(yán)重威脅到用戶的隱私安全。
本文通過對(duì)流量層面的分析發(fā)現(xiàn),在用戶登錄Twitter過程中,用戶名、密碼均為明文傳輸。盡管Twitter采用HTTPS的加密傳輸協(xié)議,但當(dāng)用戶受到網(wǎng)絡(luò)攻擊或中間人攻擊 (Man-in-the-Middle Attack, MITM) 時(shí),仍然會(huì)嚴(yán)重威脅Twitter賬戶的隱私安全。
結(jié)合上述問題,本文的主要貢獻(xiàn)如下:
l 本文詳細(xì)分析了Twitter登錄過程中客戶端與服務(wù)器間的交互過程;
l 在流量層面解析POST請(qǐng)求時(shí),本文發(fā)現(xiàn)Twitter的登錄密碼采用明文傳輸;
l 本文提出一種基于社會(huì)網(wǎng)絡(luò)特性的雙混沌互反饋加密算法。該算法利用登錄用戶的ID、創(chuàng)建時(shí)間、關(guān)注數(shù)作為加密函數(shù)的初始值與參數(shù),并通過Logistic映射和Tent映射兩個(gè)混沌系統(tǒng)交互式運(yùn)算得出密鑰序列;
l 實(shí)驗(yàn)表明上述算法取得了較好的加密和解密效果,同時(shí)加密與解密均處于毫秒級(jí),可以做到用戶的無感操作。此外,上述算法擁有初始條件極度敏感、密鑰空間大、加密強(qiáng)度高等特點(diǎn)。
本文組織結(jié)構(gòu)如下:第2節(jié)主要介紹了基于混沌理論的加密算法方面的相關(guān)工作,第3節(jié)分析了Twitter API的限制、Twitter登錄過程中客戶端與服務(wù)器間的交互過程,第4節(jié)介紹了基于社會(huì)網(wǎng)絡(luò)特性的雙混沌互反饋加密算法,第5節(jié)從多角度的實(shí)驗(yàn),討論了加密算法的安全性、性能以及特點(diǎn),第6節(jié)對(duì)全文進(jìn)行了總結(jié)。
國內(nèi)外許多研究者在信息安全與保密研究方面做出了重要的貢獻(xiàn)。自從1977年美國國家數(shù)據(jù)加密標(biāo)準(zhǔn)DES (Data Encryption Standard) 正式公布實(shí)施后,密碼學(xué)領(lǐng)域的相關(guān)研究在全世界掀起了一波高潮,此后又相繼出現(xiàn)了新的密碼加密算法,例如FEAL、SAFER、RC5、IDEA等。網(wǎng)絡(luò)信息傳輸加密需要具備安全、快速、實(shí)時(shí)等指標(biāo)。1989年英國數(shù)學(xué)家Matthews[3]分析了Logistic混沌映射,將其作為密鑰序列生成器,并逐步對(duì)其進(jìn)行改進(jìn),最終提出了一種基于變形Logistic映射的混沌流密碼方案。同年,Wheeler[4]指出混沌序列在計(jì)算機(jī)上實(shí)現(xiàn)時(shí),將產(chǎn)生不可預(yù)測的、短周期的極限環(huán)。此后,大量的混沌密碼算法以及相關(guān)的分析成果被提出,選用何種混沌系統(tǒng)能產(chǎn)生滿足密碼學(xué)中各項(xiàng)要求的混沌序列,是目前密碼研究者有待解決的問題。Habutsu[5]等人提出了一種混沌加密系統(tǒng),即加密時(shí)用Tent混沌映射的逆映射,對(duì)表示明文的初值做N次迭代,而在解密過程中則做N次Tent映射迭代;GC Wu[6]指出使用選擇明文攻擊可容易地對(duì)該加密系統(tǒng)解密,并且一直明文的復(fù)雜度為238;Baykasoglu A等人提出了將Logistic映射產(chǎn)生的浮點(diǎn)數(shù)序列轉(zhuǎn)化為二值序列并加密明文,此外還指出將Logistic映射的參數(shù)和初始條件作為部分密鑰[7, 8]。
不過迄今為止,并沒有一種成熟的可適用于社會(huì)網(wǎng)絡(luò)登錄過程的加密算法。本文擬提出一種結(jié)合Logistic映射和Tent映射方式的雙混沌互反饋加密算法,對(duì)Twitter登錄過程中的用戶密碼進(jìn)行加密。本文首次采用社會(huì)網(wǎng)絡(luò)中的特性作為算法的參數(shù)和初始條件對(duì)密碼進(jìn)行加密。由于不同用戶的ID、創(chuàng)建時(shí)間、關(guān)注數(shù)量等信息也不盡相同,因此其加密過程不可重復(fù),在確保解密正確性的同時(shí)也使得加密算法具有一定的靈活性。
Twitter提供了非常完善的API接口,開發(fā)者可通過HTTP的GET方式進(jìn)行調(diào)用,在需要提交信息或傳送私密信息時(shí)則使用POST方法。根據(jù)用戶特定的請(qǐng)求,Twitter會(huì)返回對(duì)應(yīng)格式的數(shù)據(jù),目前支持以下四種數(shù)據(jù)返回格式:XML、JSON、RSS、Atom,用戶可在每次請(qǐng)求時(shí)使用不同的請(qǐng)求方式指定不同的返回結(jié)果。
當(dāng)前Twitter API已更新至1.1版本,該平臺(tái)共包括17個(gè)接口類型、109個(gè)調(diào)用函數(shù),如:GET friends/ids為獲取指定用戶的粉絲ID列表;GET followers/ids為獲取指定用戶的關(guān)注ID列表;GET users/lookup為通過用戶ID列表批量獲取用戶基本信息接口;GET statuses/show/:id為獲取推文信息。
在Twitter逐步完善API接口的同時(shí),其對(duì)API調(diào)用的限制力度也在漸漸加大,每小時(shí)只能請(qǐng)求一定的次數(shù),即限制了采集速率,使得數(shù)據(jù)獲取速率遠(yuǎn)小于需求速率。本文總結(jié)了部分接口的限制次數(shù),如表1所示。
Table 1. Restrictions of Twitter API
表1. Twitter API接口限制
功能模塊 | 針對(duì)每個(gè)用戶 (次/15分鐘) | 針對(duì)每個(gè)應(yīng)用 (次/15分鐘) |
獲取用戶收藏列表 | 15 | 15 |
獲取粉絲列表 | 15 | 30 |
獲取關(guān)注列表 | 15 | 30 |
獲取用戶關(guān)系 | 15 | — |
獲取地理位置 | 15 | — |
基于Twitter搜索 | 180 | 450 |
獲取推文信息 | 180 | 60 |
獲取用戶信息 | 180 | 60 |
可見,Twitter平臺(tái)API的限制難以滿足Twitter數(shù)據(jù)實(shí)時(shí)獲取、全面獲取的實(shí)際需求。因此,需要對(duì)Twitter登錄過程中客戶端與服務(wù)器間的交互過程進(jìn)行研究,從而設(shè)計(jì)基于Twitter模擬用戶登錄方式的網(wǎng)絡(luò)爬蟲[9]。
由于Twitter API受到了官方嚴(yán)格的限制,為此需要采用模擬用戶登錄及訪問的方式進(jìn)行數(shù)據(jù)采集。該方法主要包括兩個(gè)部分:模擬用戶登錄和數(shù)據(jù)獲取,而其中的前者是后者執(zhí)行的前提,也是整個(gè)數(shù)據(jù)采集的關(guān)鍵步驟,因此本文詳細(xì)研究了在國內(nèi)網(wǎng)絡(luò)環(huán)境下,Twitter登錄過程中客戶端與服務(wù)器之間的交互過程,如圖1所示。
如圖1所示,具體交互過程如下:
1. 需要完成Twitter的預(yù)登錄,通過GET方法請(qǐng)求訪問https://twitter.com站點(diǎn),當(dāng)服務(wù)器接收到該請(qǐng)求后會(huì)根據(jù)當(dāng)前的系統(tǒng)時(shí)間,經(jīng)過MD5加密算法生成一個(gè)登錄認(rèn)證的Token字符串,目的是防止服務(wù)器受到CSRF攻擊。之后該Token字符串會(huì)被添加到登錄頁面的HTML源碼中,隨著響應(yīng)一同發(fā)送至客戶端。
2. 通過網(wǎng)頁解析技術(shù)對(duì)參雜在HTML源碼中的Token字符串進(jìn)行識(shí)別,文中采用的識(shí)別方法為Jsoup解析。Jsoup是一款Java的HTML解析器,可直接解析某個(gè)URL地址、HTML文本內(nèi)容。它提供了一套非常完備的API,可通過DOM、CSS以及類似于jQuery的操作方法來取出和操作數(shù)據(jù)。
3. 提交POST請(qǐng)求,將用戶名、密碼、Token字符串以及其他信息打包發(fā)送至服務(wù)器,需要發(fā)送的部分參數(shù)如下:
l session[username_or_email]:XXXX //登錄用戶的用戶名
l session[password]:XXXX //登錄用戶的密碼
l remember_me:1 //是否記住密碼
l return_to_ssl:true //是否采用SSL數(shù)字證書
l authenticity_token:112a4f2b64c7e8abf1a81ea971d2f15f56309f60 //Token字符串
當(dāng)服務(wù)器獲得POST參數(shù)后,首先會(huì)對(duì)用戶名、密碼進(jìn)行確認(rèn),確認(rèn)成功后還需驗(yàn)證Token字符串的正確性。最后服務(wù)器端會(huì)生成登錄成功后的Cookie,并將登錄用戶的主頁信息發(fā)送給客戶端。
4. 將服務(wù)器返回的Cookie進(jìn)行保存,用于后續(xù)GET請(qǐng)求訪問Twitter的其他頁面。
然而,在流量層面解析POST請(qǐng)求時(shí),發(fā)現(xiàn)Twitter的登錄密碼采用明文傳輸。為了進(jìn)一步證明Twitter采用明文密碼進(jìn)行傳輸,首先在局域網(wǎng)中設(shè)置了一臺(tái)代理服務(wù)器,與網(wǎng)絡(luò)中的客戶端進(jìn)行SSL交互。當(dāng)有客戶端有用戶登錄Twitter時(shí),需要先將請(qǐng)求提交至代理,代理服務(wù)器會(huì)通過密鑰將HTTPS進(jìn)行解密,這時(shí)會(huì)看到網(wǎng)絡(luò)流量中包含密碼在內(nèi)的全部明文用戶信息。由此可得出結(jié)論,在用戶訪問Twitter時(shí),Twitter除了對(duì)流量采用HTTPS協(xié)議傳輸外,并沒有對(duì)用戶密碼進(jìn)行加密處理。盡管Twitter采用HTTPS的加密傳輸協(xié)議,但當(dāng)用戶受到網(wǎng)絡(luò)攻擊或MITM時(shí),仍然會(huì)嚴(yán)重威脅用戶的隱私安全。因此,如何利用社會(huì)網(wǎng)絡(luò)的特性,對(duì)用戶登錄密碼進(jìn)行加密成為本文的一個(gè)研究重點(diǎn)。
由于在用戶在登錄Twitter過程中,需要考慮加密的時(shí)效性以及字符串解密后的正確性,因此在選取密鑰時(shí)要保證其在登錄過程中不可變,否則會(huì)造成解密失效。而通過對(duì)社會(huì)網(wǎng)絡(luò)的各項(xiàng)指標(biāo)分析發(fā)現(xiàn),社會(huì)網(wǎng)絡(luò)中符合穩(wěn)定特性的指標(biāo)包括:用戶創(chuàng)建時(shí)間、用戶ID以及用戶關(guān)注數(shù)等。
為實(shí)現(xiàn)Logistic映射、Tent映射產(chǎn)生混沌序列對(duì)明文密碼進(jìn)行雙混沌互反饋加密,由Logistic映射開始產(chǎn)生混沌序列,將Logistic的運(yùn)算結(jié)果輸入Tent映射中作為初始值,而后再將Tent產(chǎn)生的結(jié)果回饋到Logistic,如此循環(huán)最終產(chǎn)生一個(gè)加密序列。
選取Logistic映射和Tent映射的原因是因?yàn)長ogistic映射是一種非常簡單卻被廣泛研究的混沌動(dòng)力系統(tǒng),其定義如下:
(1)
對(duì)于離散動(dòng)力系統(tǒng)Logistic映射,根據(jù)其參數(shù)值的設(shè)定進(jìn)行如下說明:
l 當(dāng)0<x≤1時(shí),由f(x)=μ(1-x)所決定的離散動(dòng)力系統(tǒng)的動(dòng)力學(xué)形態(tài)十分簡單,除了不動(dòng)點(diǎn)x1=0外,再也沒有其它的周期點(diǎn),且x1為吸引不動(dòng)點(diǎn)。
l 當(dāng)0<μ≤3.5699456…時(shí),系統(tǒng)的動(dòng)力學(xué)形態(tài)也比較簡單,不動(dòng)點(diǎn)0、1-1/μ為僅有的兩個(gè)周期點(diǎn),且0是排斥不動(dòng)點(diǎn)。
l 當(dāng)3≤μ≤4時(shí),系統(tǒng)的動(dòng)力學(xué)形態(tài)十分復(fù)雜,系統(tǒng)由倍周期通向混沌。
l 當(dāng)μ>4,系統(tǒng)的動(dòng)力學(xué)形態(tài)更加復(fù)雜。
此外,Tent映射又稱為帳篷映射,其動(dòng)力學(xué)方程為:
(2)
文獻(xiàn)[8]中分析了Tent映射具有混沌特性,同Logistic映射一樣,通過控制參數(shù)λ取不同的值代入表達(dá)式可得當(dāng)λ∈[1.4, 2]時(shí),Tent映射進(jìn)入完全混沌狀態(tài)。綜上所述,Tent映射易于實(shí)現(xiàn),且復(fù)雜,適合作為字符串加密的偽隨機(jī)序列生成器。
根據(jù)上述分析,本文提出了一種基于社會(huì)網(wǎng)絡(luò)特性的雙混沌互反饋加密算法,如表2所示:
Table 2. Encryption algorithm of double chaos with mutual feedback based on the features of social network
表2. 基于社會(huì)網(wǎng)絡(luò)特性的雙混沌互反饋加密算法
算法 1 基于社會(huì)網(wǎng)絡(luò)特性的雙混沌互反饋加密算法 |
1: 輸入 p: 待加密的明文密碼 2: c: 用戶創(chuàng)建時(shí)間 3: i: 用戶ID 4: f: 用戶關(guān)注數(shù) 5: 輸出 e: 加密后的字符串 6: 開始 7: toASC(p)àchart1[]; //將明文密碼轉(zhuǎn)換為二進(jìn)制ASCII編碼 8: normal(c, i, f)à{ζc, ζi, ζf }; //對(duì)三個(gè)初始參數(shù)分別進(jìn)行歸一化 9: int i = 0; 10: List list = null; 11: while i<ζi 12: if i==0 13: xLi =ζf ; 14: else 15: xLi =list.last(); 16: end if 17: xL(i+1)= ζf 。xLi (1- xLi); //Logistic映射函數(shù) 18: list.set(xL(i+1)); 19: if 0< xL(i+1)≤0.5 20: xT(i+1)= μ. xTi ; //Tent映射函數(shù) 21: else 22: xT(i+1)= μ.(1- xTi) ; //Tent映射函數(shù) 23: end if 24: list.set(xH(i+1)); 25: i++; 26: end while 27: for each Vj∈list.sub(2ζi -chart1.length(), 2ζi) 28: chart2[]=Vj ; 29: end for 30: chart3=XOR(chart1, chart2); //將加密序列與明文字符串進(jìn)行異或運(yùn)算 31: Base64(chart3)àencryption; //對(duì)異或結(jié)果進(jìn)行Base64編碼,生成密文 |
表2所示的基于社會(huì)網(wǎng)絡(luò)特性的雙混沌互反饋加密算法步驟如下所示:
1) 首先,讀取明文密碼字符串,將該字符串轉(zhuǎn)換為二進(jìn)制的ASCII編碼。
2) 其次,完成Logistic映射中第一個(gè)參數(shù)x的初始化。本文將用戶關(guān)注數(shù)進(jìn)行歸一化處理,通過min-max方法轉(zhuǎn)化為0到1之間的數(shù)值,并將該值x作為Logistic映射函數(shù)的初始值傳入。
3) 確定兩個(gè)參數(shù)初始值,將用戶創(chuàng)建時(shí)間轉(zhuǎn)化為時(shí)間戳形式的標(biāo)準(zhǔn)格式,使其符合參數(shù)μ的取值范圍并輸入Logistic映射函數(shù);將用戶ID進(jìn)行對(duì)數(shù)變換,作為迭代次數(shù)i輸入。
4) 運(yùn)行混沌發(fā)生器Logistic,計(jì)算出結(jié)果x1,并將x1作為Tent的初始值傳入,經(jīng)過運(yùn)算生成第二次迭代Logistic函數(shù)的初值x1。
5) 循環(huán)步驟3的過程,直至到達(dá)第i次。
6) 記錄最近的n個(gè)計(jì)算結(jié)果,如:xL(i-n) , xH(i-n) ,…, xLi, xHi。這里的n表示明文密碼轉(zhuǎn)換為二進(jìn)制ASCII編碼后的位數(shù)。
最后,將加密序列與轉(zhuǎn)換后的二進(jìn)制密碼進(jìn)行異或運(yùn)算并采用Base64編碼輸出,從而完成整個(gè)加密。
從表2中不難看出,該算法是將兩個(gè)混沌系統(tǒng)進(jìn)行融合,采用互反饋的方式交替產(chǎn)生加密序列,這種方式的優(yōu)勢在于具有較大的密鑰空間,以及較高的加密強(qiáng)度。經(jīng)過計(jì)算,系統(tǒng)的時(shí)間復(fù)雜度為O(n),在算法的實(shí)際應(yīng)用中不會(huì)影響Twitter登錄時(shí)的用戶體驗(yàn)。
為了驗(yàn)證上述加密算法的有效性,本文根據(jù)社會(huì)網(wǎng)絡(luò)中三類特性指標(biāo)對(duì)密碼進(jìn)行加密。這三類特性指標(biāo)分別為用戶ID、用戶創(chuàng)建時(shí)間以及用戶關(guān)注數(shù),其中分別對(duì)應(yīng)Logistic映射函數(shù)中的迭代次數(shù)i、參數(shù)μ和x1。利用min-max歸一化方法與對(duì)數(shù)變換等手段對(duì)三類數(shù)據(jù)進(jìn)行規(guī)范化,使50<i≤100、3.596≤μ≤4、0< x1<1。傳統(tǒng)的混沌序列都是由確定的方程產(chǎn)生,理論上攻擊者可以通過相空間重構(gòu)的方法對(duì)加密信息進(jìn)行破譯。而采用Twitter的用戶指標(biāo)作為Logistic映射的參數(shù)和初始值,可以致使不同用戶每次登錄過程中加密方程的不確定性。
本實(shí)驗(yàn)通過對(duì)幾組真實(shí)賬戶的密碼進(jìn)行加密,并根據(jù)用戶的關(guān)注數(shù)、創(chuàng)建時(shí)間、ID號(hào)分別計(jì)算初始值、參數(shù)和迭代次數(shù)。具體數(shù)據(jù)如表3所示:
Table 3. Initial value and parameters generation
表3. 初始值與參數(shù)生成
用戶ID | 創(chuàng)建時(shí)間 | 關(guān)注數(shù) | 迭代次數(shù)i | 參數(shù)μ | 初始值x1 |
135386260 | 2010-04-21 12:41:42 | 1582 | 86 | 3.876 | 0.64102 |
70078033 | 2009-08-30 15:59:12 | 457 | 81 | 3.992 | 0.38597 |
14934161 | 2013-08-16 20:42:59 | 3164 | 56 | 3.625 | 0.82646 |
通過算法得到對(duì)應(yīng)的加密Base64編碼如表4所示:
Table 4. Results of encryption and decryption
表4. 加密與解密結(jié)果
明文密碼 | 加密后密文 | 解密后明文 |
jiangjingchi | YwNjEwEwNTExUwAxMTMxMzAyIwNTA1MTMwNTA0cwOTA5cwA1MTMwAwMDMwMQ== | jiangjingchi |
yichengqi | AxAwExNTEyMDAwOTE1MwNzAxMDcwNzAxMDIwNzE0UwMTE0M= | yichengqi |
biwenchong | IwMjEzMTUwMzA0UxMTE1kwMTA2cwNTA5kxMTA5MwNDAwMDIwMjAx | biwenchong |
上述算法共有兩個(gè)參數(shù)以及一個(gè)初始值,其中參數(shù)μ和λ取值范圍分別為3.5699456≤μ≤4,1.4≤λ≤2。對(duì)于Logistic映射的初始值x1,需符合0<x1<1范圍。計(jì)算參數(shù)空間大小為0.258×1032,初始值空間大小為1×1016,因此算法總的密鑰空間為0.258×1048。
該算法與同類算法相比,在一定程度上增大了密鑰空間,同時(shí)也具備了良好的運(yùn)行效率。由于Twitter的登錄過程往往最多只需要消耗幾秒鐘時(shí)間,如果攻擊者在幾秒鐘之內(nèi)不能破譯登錄密碼,便會(huì)大大影響Twitter用戶真實(shí)體驗(yàn),使用戶有感。因此該算法的密鑰空間可以完全滿足登錄過程中的密碼加密需求。
文獻(xiàn)[10]中分析了Logistic映射處于混沌狀態(tài)時(shí)初始值變化0.0000001,控制參數(shù)和迭代次數(shù)均不變的情況下,經(jīng)Logistic迭代大概18次時(shí),兩個(gè)序列已產(chǎn)生很大的差異;本算法中取x1=0.64102、x1'=0.6410201,當(dāng)算法迭代至16次時(shí),序列產(chǎn)生了極大的差異。由此可以觀測出本算法對(duì)初始值也具有敏感性,且敏感性比文獻(xiàn)[10]算法效果要好,如圖2所示為文獻(xiàn)算法與本算法隨迭代次數(shù)增加的序列差對(duì)比。
Figure 2. Comparison of sequence difference
圖2. 序列差對(duì)比圖
上述結(jié)果已經(jīng)表明,本算法對(duì)于初始值具有極強(qiáng)的敏感性,且具有較大的密鑰空間,因此足以說明本文所設(shè)計(jì)的系統(tǒng)具備抗窮舉攻擊的能力。
本文對(duì)算法的加密時(shí)間以及解密時(shí)間進(jìn)行了多組實(shí)驗(yàn),由于算法主要針對(duì)的對(duì)象為Twitter密碼,而Twitter密碼規(guī)定由英文和數(shù)字組成,長度則不可少于6個(gè)字節(jié)。按照以上規(guī)則,實(shí)驗(yàn)隨機(jī)選取長度從6個(gè)字節(jié)至30個(gè)字節(jié)不等的24個(gè)字符串集合,根據(jù)本文算法對(duì)其進(jìn)行加密解密,并將兩個(gè)過程進(jìn)行時(shí)間統(tǒng)計(jì)。如圖3所示,綠色曲線代表字符串加密時(shí)間;粉色曲線代表解密時(shí)間;剩余兩條直線分別代表加密和解密曲線的線性擬合。
Figure 3. Inspection of timeliness between encryption and decryption
圖3. 加密與解密時(shí)效性檢驗(yàn)
從圖3中我們可以觀測出,隨著加密字符集長度的增加,加密與解密的過程所消耗的時(shí)間會(huì)逐步變長,但始終保持著線性平穩(wěn)的增長態(tài)勢,并不會(huì)出現(xiàn)時(shí)間的陡增。由此也證明了本文算法的可用性以及時(shí)效性。
本文的雙混沌互反饋加密系統(tǒng)相圖如圖4所示。
Figure 4. Phase diagram analysis of encryption algorithm
圖4. 加密算法相圖分析
在某些未經(jīng)設(shè)計(jì)的加密混沌系統(tǒng)中,其產(chǎn)生混沌序列的方程始終確定,在相圖中體現(xiàn)為單一的曲線或分段直線,很容易受到攻擊。而本文設(shè)計(jì)的加密系統(tǒng)由于初始輸入和參數(shù)值只與Twitter用戶本身的屬性相關(guān),而且會(huì)隨時(shí)間變化而變化,因此混沌加密序列產(chǎn)生相圖是無規(guī)律的,攻擊者很難從相圖空間重構(gòu)或統(tǒng)計(jì)分析方面實(shí)現(xiàn)密碼破解。
本文詳細(xì)分析了Twitter登錄中客戶端與服務(wù)器的交互過程,并基于此設(shè)計(jì)了一套Twitter網(wǎng)頁解析爬蟲。在流量層面解析post請(qǐng)求時(shí),發(fā)現(xiàn)Twitter的登錄密碼均采用明文傳輸,嚴(yán)重威脅到用戶的隱私安全。為此,提出一種結(jié)合社會(huì)網(wǎng)絡(luò)特點(diǎn)的雙混沌互反饋的數(shù)據(jù)加密算法,對(duì)明文密碼進(jìn)行加密傳輸。算法利用登錄用戶的ID、創(chuàng)建時(shí)間、關(guān)注數(shù)作為加密函數(shù)的初始值與參數(shù),并通過Logistic映射和Tent映射兩個(gè)混沌系統(tǒng)交互式運(yùn)算,得出密鑰序列。由于輸入?yún)?shù)的特殊性,會(huì)根據(jù)不同用戶隨著時(shí)間的變化而變化,因此使得密文具有不可預(yù)測性。通過以上對(duì)算法的仿真分析可知,該算法取得了較好的加密和解密效果;通過細(xì)微的改變參數(shù)可使得混沌系統(tǒng)對(duì)初始條件極其敏感。其次本文的加密算法主要應(yīng)用在用戶登錄Twitter過程中,因此實(shí)驗(yàn)特別對(duì)算法的時(shí)效性進(jìn)行了統(tǒng)計(jì),結(jié)果表明加密與解密均處于毫秒級(jí),可以做到用戶的無感操作。最后對(duì)該算法進(jìn)行安全性分析,可知其密鑰空間較大且加密強(qiáng)度高,能有效的防止攻擊者使用相圖、窮舉、統(tǒng)計(jì)進(jìn)行密碼破解,是比較安全的加密方法。
參考文獻(xiàn):
[1]. Statista, “Leading social networks worldwide as of March 2015, ranked by number of active users (in millions)” [EB/OL]. Available: http://www.statista.com/statistics/272014/global-social-networks-ranked-by-number-of-users/.
[2]. Craig S, “By the Numbers: 40 Amazing Weibo Statistics” [EB/OL]. Available: http://expandedramblings.com/index.php/weibo-user-statistics/.
[3]. Matthews R. On the derivation of a “chaotic” encryption algorithm [J]. Cryptologia, 1989, 13(1): 29-42.
[4]. Wheeler D D. Problems with chaotic cryptosystems [J]. Cryptologia, 1989, 13: 243-250.
[5]. Zhang G, Liu Q. A novel image encryption method based on total shuffling scheme [J]. Optics Communications, 2011, 284(12): 2775-2780.
[6]. Wu G C, Baleanu D. Discrete fractional logistic map and its chaos [J]. Nonlinear Dynamics, 2014, 75(1-2): 283-287.
[7]. Baykasoglu A. Design optimization with chaos embedded great deluge algorithm [J]. Applied Soft Computing, 2012, 12(3): 1055-1067.
[8]. Liu L, Yang P, Zhang J, et al. Compressive Sensing with Tent Chaotic Sequence [J]. Sensors & Transducers, 2014, 165(2): 1726-5479.
[9]. Jingchi J, Chengqi Y, Yuanyuan B, et al. Online Community Perceiving Method on Social Network[C]//1st International Workshop on Cloud Computing and Information Security. Atlantis Press, 2013.
[10]. Malik S. A Novel Key-Based Transposition Scheme for Text Encryption[C]//Frontiers of Information Technology (FIT), IEEE, 2011: 201-205.
版權(quán)所有 南陽創(chuàng)想網(wǎng)絡(luò)有限公司
豫ICP備10206988號(hào)