董霖 蘇晴

摘要:移動終端的位置信息安全保護是個人隱私保護的重要部分,移動用戶在享受LBS服務時易發(fā)生移動終端中存儲的位置信息泄露問題,對移動終端中的位置信息進行加密是有效的保護方法。本文采取了輕快性序列密碼算法對個人私密的位置信息進行加密保護,并進行了實驗分析。
關(guān)鍵詞:位置信息安全;序列密碼算法;輕快性序列密碼;加密算法
0 引言
對以往的研究進行分析可以發(fā)現(xiàn),分組密碼是密碼學的先驅(qū),如今的多種序列密碼算法都是在分組密碼之上發(fā)展的,但都具體一定的缺點。
對稱加密算法[1]中,DES的加解密操作簡單速度快,可進行大量的數(shù)據(jù)加密,加解密的密鑰可相互導出。非對稱加密算法中,RSA的密鑰分配簡單,信息保密性好,但密鑰的尺寸大所以加解密的速度要慢很多。單向散列算法中MD5和SHA1加密性好,但加密性強的散列一定是不可逆的并且安全性也相對較差。
結(jié)合多種加密算法的優(yōu)缺點,本文設計了一種輕快性序列密碼算法,來更加有效地對移動終端的個人位置信息進行安全保護,使其在少消耗的前提下,達到安全保護的目的。
1 加密算法的設計
1.1 單分組的散列函數(shù)的設計
對哈希函數(shù)的理論知識和主要思想進行改進可得到一種對較短信息進行運算的散列函數(shù)[2],即單分組散列函數(shù)SBH。SBH算法又稱為SBH-128,因為算法的輸入與輸出都為128位。單分組散列函數(shù)不僅僅使算法得以優(yōu)化,利用較少的系統(tǒng)資源,而且在時間和效率方面有著很大的提升。
SBH-128算法的運算過程如下:
(1)初始化緩存和預處理階段;
(2)算法的主循環(huán)邏輯的設計;
(3)每輪每步的具體設計過程。
在完成多步循環(huán)運算后,所有的分組輸出最終所得的四個寄存器:A、B、C、D,就是位置消息經(jīng)過單分組散列函數(shù)輸出的消息摘要值。
1.2 哈希鏈運算形成的密碼序列
A、B、C、D四個緩存輸出的密鑰序列即為一個SBH散列函數(shù)求得的運算結(jié)果。接下來我們對這128位密鑰進行哈希鏈方式的處理。
處理步驟如下:
(1)首先采取哈希鏈運算,即對一個SBH進行計算;
(2)記錄此次哈希鏈運算的結(jié)果,并把此次的運算結(jié)果作為輸入,進行下一次的哈希鏈運算;
(3)重復以上步驟,形式如:h(h(h(h(x))))。
也就是說,每次的SBH-128輸出結(jié)果作為下次運算的輸入值[3],并且記錄每次運算的輸出結(jié)果,最后得到一個128*n位的哈希鏈,這個128*n位的哈希鏈即為輸出的密碼序列。
1.3 輕快性序列密碼的設計
輕快性序列密碼SC-SBH的核心內(nèi)容是:
(1)記錄單分組散列函數(shù)輸出的非線性結(jié)果,即分組密碼的加密部件,并對此加密部件進行哈希鏈運算;
(2)記錄(1)中的輸出結(jié)果,結(jié)果中的哈希鏈即為密鑰序列,使用分組密碼算法,設計出一種新的輕快性序列密碼模型;
(3)運算結(jié)束時得到的哈希鏈就是輕快性序列密碼的密鑰序列[4];
(4)最后將密鑰序列與明文進行按位異或運算,得到的即為密文。
輕快性序列密碼算法SC-SBH的整體設計邏輯簡圖如下:
對于SBH-128的初始值的設定有著一定的要求,序列密碼需要每一次都加密,也就是說,密鑰的長度與消息的長度保持相同,所以用 方法來生成隨機數(shù)[5],這樣,初始值的設定問題就得以解決了。
對于密鑰的生成,運算的次數(shù)十分重要。運算次數(shù)的多少由哈希鏈的長度來決定,可以計算出來,密鑰的長度和哈希鏈的位數(shù)相同都是 128*n,把進行n次運算的結(jié)果與輸入的數(shù)值進行按位異或運算,并去掉多余的密鑰部分。
輕快性序列密碼算法SC-SBH總結(jié)了現(xiàn)代序列密碼算法的不足之處并加以改進。在對短消息處理的單分組散列函數(shù)算法的基礎上,將單分組散列函數(shù)輸出的非線性結(jié)果作為序列密碼生成的密鑰序列,得到了輕快的、非線性的序列密碼的新加密算法。
2 實驗與分析
根據(jù)上文中輕快性加密算法設計的具體過程進行了實驗分析。本實驗中,采用了java編程語言,編譯工具為Eclipse,實驗運行環(huán)境是PC機。
運用基礎的邏輯函數(shù)如底層位運算等方法來進行實驗的。實驗中采用了文件存取的方法,首先在一個文件中存儲明文消息,然后通過main函數(shù)對文件進行讀取,逐位遍歷文件中的明文并進行加密處理。最后,在另一個文件中得到存儲的密文結(jié)果。
2.1 安全性分析
一個加密算法的應用是在其安全性的基礎上的。哥倫布隨性假設中第一條假設是在序列的一個周期內(nèi),0和1出現(xiàn)的個數(shù)相差至多為1。也即,如果N為偶數(shù),則在一個周期內(nèi)0與1的數(shù)目各占N/2;如果N為奇數(shù),則在一個周期內(nèi)0的數(shù)目為(N+1)/2或者(N-1)/2,相應地1的數(shù)目為(N-1)/2或者(N+1)/2。實驗中對長度分別為1MB、5MB、10MB的明文采取了加密處理,統(tǒng)計密文中“1”的個數(shù)占密鑰序列[6]長度的百分比約為53%,所以輕快性序列密碼算法基本滿足第一條要求。
哥倫布隨性假設中第二條假設是在長度為T的周期內(nèi),長度為i的游程個數(shù)占游程總數(shù)的1/2i,i=1,2,…。且在長度為i的游程中,0的游程與1的游程數(shù)目相等或至多相差一個。實驗中對長度分別為1MB、5MB、10MB的明文生成的密鑰采取了游程測試,可以得出,0的游程與1的游程數(shù)目比例約為1,所以輕快性序列密碼算法基本滿足第二條要求。
2.2 性能分析
在該實驗中,采用不同的加密方式和不同的加密算法對輕快性序列密碼算法進行了性能分析,加密方式包括逐條、逐列和整體的方式,加密算法包括本文的SC-SBH算法、SC-MD5算法和SC-SHA算法。為了使結(jié)果更準確,分別對12個小時、24個小時、48個小時的消息記錄進行處理,并記錄加密時所用的平均加密時間。
從記錄中可以得到結(jié)論,加密所用時間最短的是部分加密方式的輕快性序列密碼算法。所以,輕快性序列密碼算法能夠比其他密碼算法更有效地實現(xiàn)移動終端位置信息的安全保護。
3 結(jié)論
本文的核心思想是對SBH-128算法的非線性輸出結(jié)果即分組密碼的加密部件采用哈希鏈方式處理,序列密碼的密鑰就是運算之后輸出的哈希鏈,這樣就形成了利用分組密碼算法的有效的輕快性序列密碼算法。并且在實驗中對輕快性序列密碼算法進行了安全性分析和性能分析,驗證了該算法對移動終端位置信息安全保護有著一定的安全性和實用性。
參考文獻:
[1]于工等.《現(xiàn)代密碼學原理與實踐》.西安電子科技大學出版社. 2009-01-01
作者簡介:董霖,女,就讀于延邊大學,主要研究領(lǐng)域為計算機科學與技術(shù);蘇晴,通訊作者,女,吉林省延吉市人,計算機科學與技術(shù)專業(yè),工學碩士,助教,主要研究領(lǐng)域為網(wǎng)絡通信與信息安全