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