陳 云,周大偉,李 強,王家俊
(海軍工程大學,湖北 武漢 430033)
近年來,我國電子商務的快速發(fā)展帶動了快遞行業(yè)的迅猛發(fā)展,使其成為我國經(jīng)濟的一匹黑馬??爝f服務已成為人們?nèi)粘I钪胁豢苫蛉钡囊环N服務方式。據(jù)國家郵政局統(tǒng)計,2018 年我國快遞行業(yè)發(fā)展迅速,全年業(yè)務收入達到6 038.4 億元,同比增長21.8%。全年快遞業(yè)務量達到507.1 億件,同比增長26.6%,超過美、日、歐發(fā)達經(jīng)濟體之和,規(guī)模穩(wěn)居世界第一,占全球快遞包裹市場的一半以上,已成為全球快遞市場發(fā)展的動力源和穩(wěn)定器[1-2]。
我國快遞行業(yè)迅猛發(fā)展的同時,快遞實名制已于2015 年11 月1 日在全國范圍內(nèi)推開,快遞信息安全成為快遞行業(yè)中面臨的重要問題,突出表現(xiàn)在以下3 個方面:
一是快遞面單上的用戶隱私信息保護問題??爝f面單上包含了未經(jīng)任何加密處理的姓名、地址、電話號碼等發(fā)件人和收件人詳細信息,容易造成個人隱私信息的泄露。僅2015 年,有統(tǒng)計的全國快遞企業(yè)重大信息泄露案件就達43 起,泄露包含用戶個人信息數(shù)據(jù)的訂單達上百萬張[3]。目前部分快遞公司采用的“隱形面單”,可以使他人無法直接從面單上看到個人信息,但是對快遞公司、快遞網(wǎng)點來說,個人信息依然裸露,快遞員可通過掃描隱私面單的條形碼或二維碼來獲取用戶信息[4-7]。如果快遞員居心叵測,仍然可以收集這些信息,造成用戶信息泄露[8]。另外,采用“隱形面單”在某種程度上影響了遞送效率,導致部分快遞人員甚至一些快遞公司不愿意使用這種快遞面單,快遞用戶隱私信息仍然處于公開狀態(tài)。針對以上情況,需要設計新的、方便使用的快遞隱私面單來保護快遞用戶隱私信息的安全。
二是快遞用戶隱私信息的存儲安全問題。目前快遞公司每日收到數(shù)以萬計的包裹,這些包裹的用戶隱私信息直接存儲于快遞公司的服務器中,一旦監(jiān)管不善,很容易出現(xiàn)內(nèi)部人員“監(jiān)守自盜”問題,甚至還有個別快遞公司公然叫賣用戶的個人信息以牟利。據(jù)報道,2017 年4 月,荊州公安機關(guān)就曾破獲一起快遞公司內(nèi)部人員獲取、販賣快遞用戶隱私信息案件,涉嫌被泄露的快遞用戶信息達千萬余條,涉案金額高達200 余萬元,危害程度令人觸目驚心[9]。對于快遞用戶隱私信息的存儲安全問題,雖然快遞公司加強了其信息系統(tǒng)的防護功能,在一定程度上降低了因系統(tǒng)不完善和黑客攻擊造成的快遞用戶隱私信息的泄露風險,但仍然無法解決這種因快遞公司管理人員“監(jiān)守自盜”而造成的快遞用戶隱私信息的泄露隱患。因此,需要設計快遞用戶隱私信息保護機制來保護快遞用戶的隱私信息安全。
三是快遞用戶隱私信息在傳輸過程中的信息安全問題。快遞公司的寄件終端在將快遞用戶隱私信息傳輸給服務器的過程中沒有進行加密或采用加密強度不夠的算法,容易造成快遞用戶隱私信息在網(wǎng)絡上“裸奔”。此外,隨著信息技術(shù)的發(fā)展,利用傳統(tǒng)加密技術(shù)設計出的密鑰生成算法在密鑰空間擴展方面已不能滿足當前數(shù)據(jù)加密算法的需求[10],因此迫切需要一些新的密碼技術(shù)對傳輸?shù)目爝f用戶隱私信息進行加密?;煦缡且环N非線性現(xiàn)象,混沌信號具有非周期性、初值敏感性、類似噪聲以及不可預測性和連續(xù)寬帶頻譜等特征,這些特征恰好同密碼學的基本要求相一致。如果能夠?qū)煦绲幕咎匦约右哉_利用,通過易實現(xiàn)的簡單方法就能獲得具有高安全性的加密系統(tǒng)[11-12]。但目前混沌加密技術(shù)主要應用于電子商務安全加密[10]、圖像加密[13-14]以及保密通信[15-17]等領(lǐng)域,將混沌加密技術(shù)應用于用戶快遞信息的隱私保護還未見相關(guān)文獻研究。因此,可以嘗試應用混沌加密技術(shù)來保障快遞用戶隱私信息在傳輸過程中的信息安全。
為了解決以上3 個快遞用戶隱私信息保護問題,本文擬提出快遞面單生成方法、快遞隱私信息保護機制模型和混沌加解密算法來保護快遞用戶隱私信息安全。
對于快遞面單上的用戶隱私信息保護問題,提出一種新的快遞隱私面單生成方法,可有效保護用戶個人隱私信息。
具體方法如下:用相應的數(shù)字對快遞公司下設的省級快遞點、市級快遞點、區(qū)(縣)快遞點、街道(鄉(xiāng)鎮(zhèn))快遞點、社區(qū)(村)快遞點進行編號。如將全國34 個省級快遞點用01~34 個數(shù)字編號,市級快遞點用2 位十進制數(shù)字依次從01 開始編號,區(qū)(縣)快遞點、街道(鄉(xiāng)鎮(zhèn))快遞點也是如此,社區(qū)(村)快遞點較多,用3 位十進制數(shù)字依次從001 開始編號,如此可生成地址編號,再加上收件人(寄件人)手機號碼的后4 位,便形成了包裹收件(寄件編號)編號4。
如表1所示,包裹收件地址是“江蘇省揚州市廣陵區(qū)東關(guān)街小廠社區(qū)”,將包裹收件編號按照以上包裹編號生成規(guī)則,江蘇省在全國34 個省級行政區(qū)劃中,編號為“23”,揚州市在江蘇省內(nèi)市級單位的編號為“03”,廣陵區(qū)在揚州市下屬區(qū)縣中的編號為“02”,東關(guān)街道在廣陵區(qū)的編號為“01”,小廠社區(qū)在東關(guān)街道的社區(qū)編號為“211”,收件人的手機號碼后4 位是“8888”,因此該包裹的包裹收件編號為“230302011118888”,如表2 所示。同理,可生成包裹寄件編號150103042223333,如表3 所示。
表1 寄件人在寄件點App 上填寫的信息
表2 包裹收件編號生成實例
表3 包裹寄件編號生成實例
針對快遞用戶隱私信息的存儲安全問題和快遞用戶隱私信息在傳輸過程中的安全問題,提出了一種基于混沌加密的快遞用戶隱私信息保護機制模型,如圖1 所示。
(1)寄件人到快遞公司社區(qū)寄件點辦理寄件業(yè)務,在寄件點App 上點擊“郵寄包裹”按鍵,彈出填寫收件人和寄件人信息的對話框。
(2)寄件點App 發(fā)送寄件請求給快遞公司服務器。
(3)快遞公司服務器生成包裹流水號(例如:為241),并回傳給寄件點App。
(4)寄件人在寄件點App 上填寫收件人和寄件人信息,如表1 所示。寄件點App 接收快遞公司服務器生成包裹流水號“241”,同時將收件人地址信息和手機信息按照包裹編號生成規(guī)則生成包裹收件編號和包裹寄件編號,并與流水號進行匹配,生成如表4 和表5 所示的信息列表。
(5)為確保收寄件人信息在傳輸過程中的安全,寄件點App 采用混沌加密算法將表4 的核心信息——收寄件人手機號碼的后6 位加密,發(fā)給第三方可信數(shù)據(jù)庫,以確保手機這一核心隱私信息在傳輸過程中不被竊取。此處所采用的混沌加密算法將在第3 節(jié)加以介紹。
(6)寄件點App 將包含包裹流水號、包裹收件編號和包裹寄件編號信息的表5 發(fā)給快遞公司服務器存儲。
(7)寄件點App 打印出寄件面單,貼于包裹之上,包裹遞送人員按包裹編號逐級投遞到各快遞點,最終到達社區(qū)收件點。各級快遞點的快遞人員只需知道寄件編號相應位上數(shù)字所對應的快遞點信息即可,而不用知道收寄件編號其他位上數(shù)字所表示的含義。
(8)快遞公司各快遞點在包裹到達后,向快遞公司服務器發(fā)送包裹的位置信息。
(9)包裹遞送到快遞公司社區(qū)收件點后,收件點APP發(fā)送如表6所示的信息給快遞公司服務器。
(10)快遞公司服務器收到表6 的信息進行存儲,并轉(zhuǎn)發(fā)給第三方可信數(shù)據(jù)庫。
(11)第三方可信數(shù)據(jù)庫收到信息后,通過對流水號所關(guān)聯(lián)的包裹收件人電話號碼采用混沌解密算法進行解密,并給該號碼發(fā)送短信:“包裹已到最近的快遞公司社區(qū)收件點,請速??!包裹流水號為‘241’!”此處所采用的混沌解密算法下文會加以介紹。
表4 發(fā)往第三方可信數(shù)據(jù)庫的信息
表5 發(fā)往快遞公司服務器的信息
表6 包裹遞送到快遞公司社區(qū)收件點后發(fā)往快遞公司服務器的信息
(12)收件人收到取件信息后,到快遞公司社區(qū)收件點,報包裹流水號和手機號碼后4 位數(shù)字,快遞公司社區(qū)收件點工作人員核對包裹流水號和包裹收件編號的后四位,如果匹配,則取件成功,取件人簽收。
(13)快遞公司社區(qū)收件點App 發(fā)送如表7 所示的信息給快遞公司服務器。
表7 收件人取件后社區(qū)收件點App 發(fā)往快遞公司服務器的信息
(14)快遞公司服務器收到如表7 所示的信息進行存儲,并轉(zhuǎn)發(fā)給第三方可信數(shù)據(jù)庫。
(15)第三方可信數(shù)據(jù)庫收到信息后,對流水號所關(guān)聯(lián)的包裹寄件人電話號碼采用混沌解密算法進行解密,通過短信平臺給該號碼發(fā)送短信:“收件人已收到流水號為‘241’的包裹!”此處所采用的混沌解密算法將在第3 節(jié)加以介紹。
本文擬采用混沌加密算法對寄件點App 終端發(fā)往第三方可信數(shù)據(jù)庫的收寄件人的手機號碼分別進行加密。第三方可信數(shù)據(jù)庫收到包裹已到收件點的信息后,采用混沌解密算法對流水號所關(guān)聯(lián)包裹的收寄件人電話號碼進行解密。下面介紹所用到的混沌加解密算法。
Logistic 混沌系統(tǒng)模型也稱為“蟲口模型”,是美國生態(tài)學家R.May 在分析昆蟲種群個體數(shù)量和環(huán)境因素的關(guān)系時發(fā)現(xiàn)的,雖然形式簡單,但卻是一個典型的混沌系統(tǒng),具有非常復雜的非線性動力學特征。其表達式如下:
式中,初始值x(0)∈(0,1),μ∈(3.57,4]時,該系統(tǒng)處于混沌狀態(tài)。
在該混沌系統(tǒng)的基礎上,有人提出了二維成對Logistic 混沌系統(tǒng)[18-19]:
當2.75<μ1≤3.4,2.7<μ2≤3.45,0.15<γ1≤0.21,0.13<γ2≤0.15 時,該混沌系統(tǒng)為混沌映射,其中x(n),y(n)∈(0,1)。
相較于Logistic 混沌系統(tǒng),二維成對Logistic 混沌系統(tǒng)具有兩個二次項,加強了其復雜性,可生成偽隨機性更強的偽隨機系列。本文選擇二維成對Logistic 混沌系統(tǒng)來生成混沌系列,對收寄件人的手機號碼進行加密。
混沌序列是在密鑰設計結(jié)束后相繼產(chǎn)生的,在混沌序列生成過程中,將初始值x(0)、y(0)、μ1、μ2、γ1和γ2作為密鑰,用于產(chǎn)生混沌系列。
由于混沌系統(tǒng)的暫態(tài)效應,在使用二維成對Logistic 混沌系統(tǒng)產(chǎn)生混沌系列時,可讓系統(tǒng)迭代一定次數(shù)之后,再使用生成的值,這樣可以更好地掩蓋原始信息的情況,具有更高的安全性。
由于收寄件人的手機信息是最為核心的敏感信息,應對手機號碼后6 位采用混沌系列進行加密。加密算法如下。
(1)選擇合適的密鑰。K=(x(0),y(0),μ1,μ2,γ1,γ2),產(chǎn)生混沌系列x(1),x(2),…和混沌系列y(1),y(2),…。
(2)混沌系列整數(shù)化,得到Xi和Yi。鑒于混沌的暫態(tài)性,選取混沌系列x(101),x(102),…和y(101),y(102),…用于加密。由于混沌系列是浮點數(shù),因此不能直接對手機號碼進行加密,可以將混沌系列值轉(zhuǎn)化成6 位的整數(shù),方法為:
式中,floor()為向下取整函數(shù)。
(3)混沌系列二進制化,得到Ei和Fi。將6位十進制數(shù)進行轉(zhuǎn)換,得到對應的20 位二進制數(shù)Ei=DECtoBIN(Xi)和Fi=DECtoBIN(Yi),其中DECtoBIN()為6 位十進制數(shù)到20 位二進制數(shù)的轉(zhuǎn)換函數(shù)。
(4)將收寄件人手機號碼的后6 位轉(zhuǎn)換成20位二進制數(shù),得到Pi和Qi。令收件人手機號碼的后6 位為Receiverphone,寄件人手機號碼的后6 位為Senderphone,將十進制數(shù)轉(zhuǎn)換成20 位二進制數(shù)Pi=DECtoBIN(Receiverphone)和(232)6=2192。
(5)采用異或運算Pi⊕Ei=Ci和Qi⊕Fi=Di對收件人和寄件人的手機號碼進行加密,得到收件人手機號碼的加密密文Ci和寄件人手機號碼的加密密文Di。
第三方可信數(shù)據(jù)庫收到包裹已到收件點的信息后,采用混沌解密算法對流水號所關(guān)聯(lián)包裹的收寄件人電話號碼進行解密。解密算法如下:
(1)在第三方數(shù)據(jù)庫采用和加密密鑰相同的密鑰K=(x(0),y(0),μ1,μ2,γ1,γ2)和相同的二維成對Logistic 混沌系統(tǒng),產(chǎn)生混沌系列x(1),x(2),…和混沌系列y(1),y(2),…。
(2)混沌系列整數(shù)化,得到Xi和Yi。鑒于混沌的暫態(tài)性,選取混沌系列x(101),x(102),…和y(101),y(102),…用于加密。由于混沌系列是浮點數(shù),因此不能直接對手機號碼進行加密。必須將混沌系列值轉(zhuǎn)化成11 位的整數(shù),方法如式(3)和式(4)所示。
(3)混沌系列二進制化,得到Ei和Fi。將6位的十進制數(shù)轉(zhuǎn)換成20 位的二進制數(shù),得到對應的二進制數(shù)Ei=DECtoBIN(Xi)和Fi=DECtoBIN(Yi),其中DECtoBIN()為6 位十進制數(shù)到20 位二進制數(shù)的轉(zhuǎn)換函數(shù)。
(4)采用異或運算Ci⊕Ei=Pi和Di⊕Fi=Qi分別對收寄件人手機號碼的后6 位進行解密,得到二進制化的收件人手機號碼明文Pi和二進制化的寄件人手機號碼明文Qi。
(5)將二進制的收寄件人手機號碼的后6 位還原成十進制。分別將20 位二進制數(shù)還原成6 位十進制數(shù),得到十進制的收寄件人手機號碼后6 位數(shù)Receiverphone=BINtoDEC(Pi) 和Senderphone=BINtoDEC(Qi),其中BINtoDEC()為20 位二進制數(shù)到6 位十進制數(shù)的轉(zhuǎn)換函數(shù)。
3.4.1 安全性分析
(1)密鑰空間分析。一個性能良好的加密算法必須要有一個巨大的密鑰空間來抵御暴力窮舉攻擊。本文算法的密鑰為二維成對Logistic 混沌系統(tǒng)的初始值和系統(tǒng)參數(shù),即K=(x(0),y(0),μ1,μ2,γ1,γ2)。若計算機的計算精度為32 位,則該算法的密鑰空間為(232)6=2192。即使攻擊者以一次嘗試時間為1 微秒的速度進行窮舉攻擊,也需要大約1.99×1044年。因此本文的算法有足夠大的密鑰空間來抵御暴力窮舉攻擊。
(2)密鑰敏感分析。為增大破譯者對密文的破譯難度,應使得明文與密文之間的統(tǒng)計關(guān)系盡可能地復雜。在理想情況下,明文任意極小的變化都能使得密文按位以50%的概率發(fā)生變化[20]。密文對明文的微小變化越敏感,則算法的安全性越高。
為了測試密文對明文的敏感性,隨機選取需加密的手機號碼后6 位為“972516”,明文出現(xiàn)微小變化時的密文變化如表8 所示??梢钥闯?,明文手機號碼后6 位中的一位發(fā)生微小的變化,其密文變化較大,這說明該算法的密文對明文的微小變化較敏感,因而本文算法的安全性較高。
表8 明文存在微小差異的密文比較
(3)密文分布分析。密文分布是加密算法安全性的重要指標之一。如果加密算法得到的密文分布不均勻,密碼攻擊者就能通過唯密文攻擊來對密文進行破譯。理想狀態(tài)是加密后的密文流中0 與1的個數(shù)應相等[20]。下面分別選取不同個數(shù)的明文(手機號碼后6 位)經(jīng)過加密后得到密文,比較其中0和1的個數(shù)分布情況,如表9所示。從表中可以看出,不同個數(shù)的明文經(jīng)加密后得到的密文中0 和1 的個數(shù)相差不大,因此該算法能有效抵御唯密文攻擊。
表9 密碼分布分析
3.4.2 性能分析
一個加密算法的性能主要取決于兩個方面:一是算法的計算量小,在相同硬件條件下,加密所耗費的時間較短;二是算法運行所耗費的存儲空間較少。下面從這兩個方面來分析該算法的性能。
(1)運算時間方面。該算法的計算量主要包括偽隨機序列生成所耗費的時間T1、偽隨機序列與電話號碼進行異或運算的時間T2,其時間復雜度為O(n)=T1+T2,時間復雜度為一次線性函數(shù),時間復雜度較小,大大提高了運算效率。
(2)存儲空間方面。在運算過程中需要將偽隨機序列和電話號碼臨時存儲,且該算法是進行一次性加密,無須在加密過程中進行迭代,減少了加密過程中數(shù)據(jù)的存儲環(huán)節(jié),所以所需的存儲空間相對較小,減小了空間復雜度,實現(xiàn)了加解密過程的高性能。
綜合以上分析,該算法所耗費的時間較短,所占用的存儲空間相對較少,因而具有良好的性能。
和一些用于文本加密的混沌算法相比,本文提出的加密算法一個最突出的優(yōu)點是具有較大的密鑰空間,因而具有更強的抵抗暴力窮舉攻擊的能力。表10 是對幾篇文獻中混沌加密算法密鑰空間和窮盡密鑰空間所需時間的比較(假設計算精度為32位,攻擊者以一次嘗試時間為1 μs 的速度進行窮舉攻擊)。可以看出,該算法的密鑰空間要比已有算法的密鑰空間大得多,抵御暴力窮舉攻擊的能力也較強。
表10 窮盡密鑰空間所需時間
本文通過將省級快遞點、市級快遞點、區(qū)(縣)快遞點、街道(鄉(xiāng)鎮(zhèn))快遞點、社區(qū)(村)快遞點用相應的數(shù)字編號,提出了一種快遞面單生成方法,可有效保護快遞面單上的用戶隱私信息,同時可避免傳遞過程中各級快遞員知悉快遞用戶的隱私信息。此外,提出了一種快遞用戶隱私信息保護機制,使快遞公司無法掌控快遞用戶信息,可有效避免快遞公司對快遞用戶隱私信息“監(jiān)守自盜”和黑客對快遞公司數(shù)據(jù)庫攻擊而造成的泄露快遞用戶隱私信息的隱患。另外,提出了一種混沌加密算法,用于加密快遞用戶隱私信息,可有效保證快遞用戶隱私信息在傳輸過程中被竊取而泄露。