婁 豪 李曉東?? 劉 晶 金 鑫
1. 北京電子科技學院,北京市 100070 2. 北京郵電大學,北京市 100876
自人類步入21 世紀以來,互聯(lián)網(wǎng)技術迅猛發(fā)展,網(wǎng)上購物已經(jīng)成為人們日常生活中的常態(tài)[1]。 通過數(shù)據(jù)挖掘技術整合分析處理購物過程的物流信息,可能造成個人隱私的泄露[2]。在用戶數(shù)據(jù)進行正常信息流轉的前提下,為確保用戶隱私安全,各國政府部門制定了法律層面的解決方案。 比如英國郵政管理委員會將郵政保安條款寫入物流工作人員許可證[3],并指定相關法律強制執(zhí)行。 美國的物流人員在上崗之前必須提供其社會安全號碼[4]。 中國物流企業(yè)也做出了相應的努力,如電話號碼或者姓名中間用“?”進行信息脫敏,京東、韻達等企業(yè)也曾探索將用戶信息進行封裝成二維碼進行讀取。 在理論研究領域,張振宇等提出了采用匿名通信策略,在分級路由的思想基礎上保障網(wǎng)絡通信安全[5];韋茜等通過一種變型的重新平衡-RSA 算法對個人信息加密[6]。
當前物流運轉過程中只是通過二維碼進行簡單加密操作,但個人隱私問題并沒有從根本上解決。 本文選取物聯(lián)網(wǎng)領域作為落點,提出一種物流用戶信息隱私加密保護方案,為用戶提供物流服務的同時,保護用戶的隱私信息。 并且通過python 語言和前端技術,開發(fā)了一個基于圖像加密和二維碼技術的物流用戶隱私信息保護系統(tǒng),主要由身份證明圖像保護模塊和物流地址信息保護模塊兩個模塊構成,可解決傳統(tǒng)物流過程中隱私信息泄露的問題。
用戶通過SSL 上傳圖像,系統(tǒng)對用戶圖像進行加密,使用硬件密碼模塊如U 盾對圖像加密密鑰加密,將加密后的密鑰文件存儲在磁盤。 使用時,將密鑰文件加載到內存,利用U 盾對密鑰文件進行解密獲取密鑰,隨后解密密文圖像。 在圖像加密算法的選擇上,采用混沌系統(tǒng),有效地提高加密效率,提供非周期性、對初值與參數(shù)極度敏感性和不可預測性等特征[7]。
彩色圖像中,除了RGB 空間外,其中Y通道(亮度分量)信息量較大,Cb(藍色色度分量)和Cr(紅色色度分量)信息量較少,故設計了對Y通道與Cb、Cr通道采用不同強度加密算法的加密方案。 對Y通道采用Arnold 變換和DNA 編碼算法進行加密[8],對Cb和Cr通道使用Lorenz超混沌映射進行加密[9]。
加密解密過程如圖1 所示。
1.2.1Y通道
Y通道通過Arnold 加密變換,根據(jù)迭代來改變原圖像素點的位置。 加密過程中迭代次數(shù)選取為100,變換后的位置根據(jù)模運算進行調整。在加密變換之后,使用DNA 編碼算法進行進一步置亂,其中連續(xù)的00 編碼為C,01 編碼為A,10 編碼為G,11 編碼為T。 然后利用Logistic 映射x(t+1)=μx(t)(1-x(t)) 生成混沌矩陣,其中參數(shù)μ=3.99,x(0)=0.62。 將[0, 1]之間的混沌序列乘以十的次冪,取小數(shù)點后十位,并模10 得到0~9 之間的數(shù),并以5 為分界線,轉化為0、1 序列,生成混沌矩陣。 之后再對混沌矩陣的編碼求補,為0 時,編碼情況不變;為1 時,A與T互為補集,C與G互為補集。
1.2.2Cb通道和Cr通道
Cb通道和Cr通道的加密使用了Lorenz 超混沌系統(tǒng)進行置亂和像素值的替換。 首先,利用Lorenz 超混沌系統(tǒng)的動力學方程[9]生成混沌序列,運用差分近似的方法(1)得到x1的序列值:
將初值x0、y0、z0和w0的值帶入到Lorenz 方程中,得到了導數(shù)K11, 將該處的導數(shù)乘以步長(0.001)并與x0相加,得到下一個位置的x值,繼續(xù)求得該處導數(shù),反復求得四次導數(shù)。 將四次求得的導數(shù)取平均,最終得到下一個點的x值。按照相同的差分方式循環(huán)得到y(tǒng)、z和w的序列值,并將其保存在變量中。 并在每3000 次迭代后對混沌狀態(tài)x0進行小的擾動。 然后利用Lorenz 超混沌系統(tǒng)生成的混沌序列,通過進行模運算,使其序列值在[0, 255]范圍內,并與原像素值做異或。 再利用Logistic 映射生成混沌序列,與圖像矩陣像素值進行再次異或。
在現(xiàn)有的物流業(yè)務流程中,寄收件人的個人信息以及貨物信息都是以明文的狀態(tài)張貼于貨物表面,容易造成用戶信息不必要的泄漏。 通過對地址按級別按區(qū)域進行分級分域加密并封裝成二維碼,給予不同地域收件員、中轉站工作人員以及終端派件員不同的權限等級,能夠保護隱私信息不被非法獲取和利用[10]。 其中,分級分域加密采用公鑰加密技術,用上一級地址對應的公鑰加密下一級地址,使得貨物傳遞過程中具有上一級地址對應私鑰的譯碼模塊才能正確解密并獲得下一級地址,增強敏感地址信息使用的安全性。
2.2.1 郵件地址加密算法
用戶在郵寄發(fā)生前由瀏覽器端生成隨機的驗證碼,驗證碼分為VA和VB兩個部分,用戶把驗證碼留存一份通過網(wǎng)絡或其他方式發(fā)給貨物接收者,用于以后在接收貨物時驗證終端派件員的身份。 同時,根據(jù)驗證碼和輸入的郵寄地址信息生成分級分域加密的地址信息,地址由大到小分為多個級別,如國家、省、市、區(qū)和末端信息,其中末端信息包括末端地址、聯(lián)系信息和驗證碼。生成分級分域加密地址信息時,先用末端信息A0的上一級地址A1對應的公鑰把末端信息加密得到C0,再利用A1的上一級地址A2對應的公鑰把A1加密得到C1,以此類推。
瀏覽器端將A封裝成二維碼進行中轉,中轉配送方的處理設備通過掃描包裹表面的二維碼獲得An和Cn-1,然后依次進行分級解密和中轉。A1地址的終端派件員使用專用讀取設備,專用讀取設備通過具有相應A1地址所對應私鑰的譯碼模塊通過解密C1獲得貨物接收者的末端信息,其中包含在末端信息中的聯(lián)系電話只能供派件員通過專用讀取設備撥打或發(fā)短信給貨物接收者,派件員根據(jù)末端地址找到貨物接收者,通過出示驗證碼VA向接收者證明自己是包裹的合法派件員,可以供接收者在開門之前驗證他是包裹的合法派件員,同時派件員可以通過驗證碼VB驗證當前接收者是合法的。
2.2.2 流程設計
物流中涉及的角色主要有寄件人、收件員、中轉配送員、終端派件員和收件人。 本文提出的方案中相對于現(xiàn)在一般物流過程,在收件環(huán)節(jié)對寄收件人的信息進行分級分域加密封裝成二維碼,在中轉環(huán)節(jié)配送員掃描二維碼獲得下一配送地址,終端派件員發(fā)送驗證碼給收件人,雙方通過驗證最終完成整個操作。
基于上述,設計了寄收件人信息通過分級分域加密生成二維碼的貨物流轉業(yè)務流程圖,如圖2 所示。
系統(tǒng)參考現(xiàn)代物流的一般流程,結合保護方案,將系統(tǒng)部署為瀏覽器端、數(shù)據(jù)庫、移動端和密鑰管理平臺。 用戶在瀏覽器端注冊賬戶,完善自己的個人基本信息,上傳自己的身份證明,登錄后填寫相應信息,信息包括寄收件人姓名、電話、地址,并生成用來驗證快遞員身份的驗證碼,瀏覽器端根據(jù)每一級分域物流地址對應的公鑰,將用戶填寫的信息生成分級分域加密后的地址信息A,并將驗證碼顯示給用戶供其發(fā)給貨物接收者,將加密后的信息A生成二維碼連同其他寄件信息一起貼于包裹表面,中轉配送各級人員使用分揀設備掃描二維碼并解密A中相應的地址部分獲得下一級配送地址,終端派件員使用專用讀取設備,掃描二維碼并解密獲得貨物接收者的末端地址、聯(lián)系電話和驗證碼,終端派件員和貨物接收者之間通過驗證碼進行相互驗證,專用讀取設備解密出的聯(lián)系電話派件員不可見,只能供終端派件員撥打或發(fā)短信通知貨物接收者取件。系統(tǒng)架構設計如圖3 所示。
圖2 物流用戶隱私信息保護方案流程圖
本系統(tǒng)Web 端開發(fā)環(huán)境為Visual Studio 2017,瀏覽器端后臺使用python 語言,版本為3.6.0,數(shù)據(jù)庫使用MySQL 數(shù)據(jù)庫,需要安裝異步框架aiohttp,前端模板引擎jinja2,安裝Python異步驅動程序aiomysql。 移動終端開發(fā)環(huán)境為Android Studio, SDK 選 用 了 API21: Android5.0[11]。
4.2.1 系統(tǒng)功能用例測試
系統(tǒng)功能用例測試表如表1 所示:
4.2.2 身份證明圖像加密測試
(1)直方圖
灰度直方圖是表示圖像中每個灰度級與該灰度級出現(xiàn)次數(shù)的對應函數(shù),描述圖像中像素的灰度級分布,一般為一個離散的函數(shù)。 讀取原圖和加密圖像素信息然后進行Y、Cb和Cr三個通道上灰度值分布統(tǒng)計,如圖4 所示,原圖像中灰度呈現(xiàn)近似的高斯分布,加密圖像的直方圖呈現(xiàn)均勻分布,表明加密圖像后分布出現(xiàn)無規(guī)則均勻分布,無法通過分析密碼圖像的統(tǒng)計特性來進行密碼統(tǒng)計攻擊。
(2)信息熵
信息熵反映信息的不確定性,在測試圖像加密算法時,主要用來衡量圖像中灰度值的隨機情況,信息熵的計算公式可以記為:
圖3 系統(tǒng)架構設計圖
表1 系統(tǒng)功能用例測試表
圖4 原圖(左),加密前的直方圖(中)以及加密后的直方圖(右)
如圖5 所示,這里根據(jù)像素灰度統(tǒng)計結果獲取灰度值和分布概率,通過信息熵計算公式進行計算三個通道的信息熵,Y、Cb和Cr三個通道的信息熵都非常接近8,表明密文具有良好的隨機性。
圖5 信息熵測試結果
(3)相鄰像素的相關性
相鄰像素的相關性是指一幅圖像中相鄰像素的相關程度,這里統(tǒng)計三個通道水平、垂直和對角相鄰像素之間的相關性,通過像素灰度值線性圖來表示,如果相鄰像素灰度值相差越大,則分布圖呈現(xiàn)非線性相關,即相關性越弱,加密隨機性越強。 這里每個通道奇數(shù)列是原圖的相鄰像素點像素值分布圖,偶數(shù)列是加密圖圖的相鄰像素點像素值分布圖,對加密后的圖像相鄰像素的相關性的測試結果如圖6 所示,結果表明圖片的三個通道加密后相鄰像素之間的相關性都非常小,具有良好的安全性。
物流運轉過程中主要通過二維碼來進行地址加密,同時個人身份證明必須通過圖像上傳認證,存在個人隱私泄露的隱患。 在本文提出了基于二維碼的分級分域加密方法和基于高維混沌的圖像加密方法保護物流隱私信息,主要工作總結如下:
圖6 三個通道加密前后2000 對相鄰像素點像素值分布圖
(1)在混沌密碼理論的基礎上,提出一種基于DNA 編碼技術和Lorenz 高維混沌的圖像加密方案。 對實名制上傳過程中的照片圖像進行像素值的置亂和替換;
(2)對寄收件人地址信息進行分級分域加密,姓名、電話號碼連同末端地址一起封裝,將所有加密后的信息以二維碼的形式呈現(xiàn);
(3)設計實現(xiàn)一個物流的原型系統(tǒng),模擬物流過程中的云平臺的驗證和收運分發(fā)過程。
在Visual Studio 2017 和Android Studio 的環(huán)境下開發(fā)并測試了該方案,通過系統(tǒng)功能測試和圖像加密測試,該方案能夠有效提高物流信息的保密性,并且敏感圖像信息的加密方法在直方圖、信息熵和相關性測試中都表現(xiàn)出來良好的特性,可以對用戶身份信息進行有效加密和限制,抵抗統(tǒng)計攻擊、強力攻擊和相關性攻擊,較好地實現(xiàn)了對原始物流用戶隱私信息的保護。