999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Spark與混沌系統的圖像加密算法

2023-09-04 09:23:00劉建東劉玉杰
計算機應用與軟件 2023年8期

鐘 鳴 劉建東 劉 博,2 劉玉杰 李 博

(北京石油化工學院信息工程學院 北京 102617) 2(北京化工大學信息科學與技術學院 北京 100029)

0 引 言

信息技術的迅速發展使得傳統單機無法滿足對大量數據進行快速計算處理的要求,而大數據技術的興起為處理大量數據提供了新的方式,使用大數據技術可以輕易掌握并處理龐大的信息數據集[1-3]。常見的大數據平臺有很多種,其中,Spark是一種混合式計算框架,可以進行批處理和流處理,能夠快速實現對大數據的并行處理。其繼承了主流大數據平臺所具有的優點,同時在計算速度和工作負載等方面又表現得更加優秀。這些平臺為用戶提供了有效的大數據處理手段,但缺少了對于數據安全性問題的關注,如何保證這些數據集在傳輸和存儲時的安全性也逐漸成為人們關注的一個熱點問題[4-6]。

混沌系統對狀態變化反饋極度敏感,導致系統變化呈現偽隨機狀態,且系統運行的軌道難以控制,這在一定程度上符合了密碼學的相關要求,從而衍生出混沌密碼。不同于其他密鑰生成方法,通過對混沌系統進行迭代計算就可以得到滿足要求的偽隨機序列,可用作對圖像進行加密的密鑰。目前,基于混沌系統設計的圖像加密方案較多,但很少有將其與Spark大數據平臺結合進行研究的相關文獻,且對于大數據平臺與混沌系統相結合的加密研究多采用了Hadoop平臺。文獻[7]設計了一種高維度且離散的超混沌系統,同時采用閉環耦合控制和密文反饋的思想設計了一種基于Hadoop大數據平臺中MapReduce并行加密的算法,具有良好的實現效率。文獻[8]基于改進后的Logistic映射和Tent映射組成的雙混沌系統設計了加密算法,這一雙混沌系統的MapReduce并行編程能夠安全高效地對數據進行加密。文獻[9]針對Hadoop平臺設計了一種改進對稱密鑰算法,該算法在私鑰基礎上加入了動態密鑰,使用了雙密鑰機制,提高了安全性,同時Hadoop平臺的讀寫機制也提高了算法的運行效率。

目前將大數據平臺結合混沌系統的加密方法還存在著一定的不足。首先,在混沌系統的選取方面,部分方法采用的混沌系統性能不佳,低維系統無法快速生成多條偽隨機序列,而高維生成的偽隨機序列間獨立性不夠,使得加密效果大打折扣。其次,對大數據平臺處理數據的方式理解不到位,沒有充分發揮大數據平臺能夠并行處理大量數據的優勢,導致單機計算時間和大數據平臺計算時間之間差異較小,加密效率提升不明顯。對于上述問題,本文提出一種基于Spark大數據平臺和三維動態整數帳篷映射的加密算法。該算法采用三維動態整數帳篷映射作為偽隨機序列發生器,可以快速生成多條獨立性較強的序列。利用Spark大數據平臺將圖像數據切片,利用生成的偽隨機序列作為密鑰分別對每片數據進行加密,最后將得到的數據塊進行整合分析。分析表明,采用Spark大數據平臺進行多圖片加密操作,可以發揮出其并行高效的特點,加密得到的密文圖像具有一定的安全性。

1 三維動態整數帳篷映射[10]

帳篷映射定義為:

(1)

相對于Logistic映射難以遍歷整個取值空間的缺陷,帳篷映射可以通過對數值的不斷拉伸折疊將其限制在取值空間,并遍歷取值空間,性能更加優秀。

通過擴展空間維度、增加計算精度、施加動態擾動可構建三維動態整數帳篷映射,表述為:

F:a(xi+1,yi+1,zi+1)=

(2)

該系取值空間為:

針對定義中參量gi、hi和si作如下表述:

(3)

式中:mi、ki和vi為動態參數,對定義于整數域空間的三維動態整數帳篷映射進行動態擾動;At表示隨三維系統的迭代時間以及迭代得到的偽隨機序列值,矩陣A對每行和每列做幻方變換,變換結束后僅取某一列向量,并表示為At,t=1,2,3。

矩陣A表示為:

(4)

對其進行幻方變換的過程可根據上一次迭代計算得到的x、y、z值來指定分別對每行和每列做循環位移,若值為奇數則每行每列循環左移,為偶數則每行每列循環右移。通過幻方變換并去某一列,從而將輸出的值重新代入到迭代方程中,構成環形耦合。三維動態整數帳篷映射如圖1所示。

圖1 三維動態整數帳篷映射

通過擴展維度可以將帳篷映射擴展至三維,增加運行混沌系統獲得的序列數。增加精度可以擴大混沌系統的取值空間,增加取值的隨機性。將帳篷映射由實數域轉換至整數域進行計算會較快地產生短周期現象,可以通過施加動態擾動避免短周期影響。

2 Spark大數據平臺

Spark大數據平臺架構如圖2所示,其中,任務控制節點負責構造任務執行的入口,并將其標注為SparkContext。任務進入后,需要集群資源管理器根據任務量進行資源的調度分配,并根據任務要求選擇合適的模式工作,控制工作節點以及執行進程占有計算資源并進行任務處理。

圖2 Spark大數據平臺架構

Spark進行數據處理的基礎是RDD。RDD有分區特性,可以分布于集群中的各個節點上,支持并行計算。Spark對RDD的Transformation操作采用了惰性操作,對于RDD的轉化不會立刻執行,只有在調用Action操作執行數據操作時才會進行計算,有效節約了計算資源。在需要對數據進行多次操作時,也可以使用內置方法將RDD持久化,避開惰性機制,提高運行效率。

Spark針對Hadoop平臺磁盤IO開銷大、MapReduce操作時延高等問題進行了優化設計。為了降低磁盤的IO開銷,Spark將數據塊盡可能存放于內存,減少每次計算后將數據寫入磁盤的次數。此外,Spark在實現Hadoop MapReduce操作的基礎上,還提供了各種便捷的API,便于進行數據塊操作,簡化了Hadoop中Map操作和Reduce操作的編程,縮減了整體的代碼量。此外,Spark平臺支持多種編程語言,可以運行于獨立的集群,也可以運行于Hadoop等生態環境中,同時能夠讀取HDFS、HBase等多種數據源,具有較強的靈活性[11-13]。

3 基于Spark平臺的圖像加密算法

采用三維動態整數帳篷映射作為偽隨機序列生成器,結合Spark大數據平臺處理數據的特點,設計一種彩色圖像加密方案,流程如圖3所示,其中主要包括了三維動態整數帳篷映射生成偽隨機序列、圖像RGB分量異或運算、Arnold置亂、DNA編碼混淆。基于Spark的加密算法操作流程如圖4所示,主要包括了明文圖像分片成為RDD數據集、map函數對數據塊進行加密操作、數據塊合成密文圖像三個部分。

圖3 基于三維動態整數帳篷映射的加密算法流程

圖4 基于Spark平臺的加密算法流程

根據圖4,基于Spark平臺和三維動態整數帳篷映射的加密算法具體流程表述如下:

1) 在準備階段,創建Spark應用程序接口SparkContext,讀取待加密明文圖像L,同時利用三維動態整數帳篷映射運行兩次,生成長度為M×N的偽隨機序列X1、Y1、Z1、X2、Y2、Z2,M×N為明文圖像L的大小。

2) 在分片階段,創建RDD數據集合,使用Spark中的parallelize函數對明文圖像進行分片,為了充分利用Spark集群并行處理數據的特性,提高運行的效率,可以設置數據分片數目為h,h為集群中Executor的數目,每片中包含的像素點數為b。

數據分片操作如下:

輸入:明文圖像L。

輸出:明文圖像L的RDD。

RDD←parallelize(L,h)

3) 在圖像加密階段,使用map函數實現對RDD數據的并行處理。輸入量為分片處理后得到的RDD數據集,使用偽隨機序列X1、Y1、Z1對應每塊數據中RGB各通道的像素點LRj、LGj和LBj做異或運算,得到中間密文CRj、CGj和CBj,其中,j=1,2,…,h,對應了分片后得到的RDD數目。

對中間密文CRj、CGj和CBj中的像素點及偽隨機序列X2、Y2、Z2做任意一種DNA編碼,編碼規則如表1所示。

表1 DNA編碼規則

針對每個像素點和偽隨機序列數,按照一定的規則從DNA加法、DNA減法、DNA異或中取一種方法進行計算,計算遵循二進制計算規則,結果僅保留最后兩位。以表1中第一種規則為例,DNA加法、DNA減法、DNA異或的計算結果如表2至表4所示。

表2 規則1做DNA加法

表3 規則1做DNA減法

表4 規則1做DNA加異或

對經過DNA編碼處理的做DNA解碼獲得像素點數值,對每個像素點分解出八個位平面,對位平面中的每個比特位使用Arnold映射進行置亂,Arnold映射定義如下:

(5)

式中:參數x和y表示比特位的坐標值;x′和y′表示原比特位坐標值經過Arnold映射變換后得到的新比特位坐標值;p和q為參數,可以從對應的X、Y、Z序列中任意取值為p和q賦值。

經過map函數中的異或運算和Arnold映射置亂后,得到結果,輸出量為加密操作后得到的RGB各通道的密文矩陣。

RDD數據map操作如下:

輸入:明文圖像L的RDD。

輸出:圖像L各密文通道的RDD。

(LRj,LGj,LBj)←split(RDD)

fori=1;i≤b;i++ do

forj=1;j≤h;j++ do

CRj(i)=X1(i)?LRj(i)

CGj(i)=Y1(i)?LGj(i)

CBj(i)=Z1(i)?LBj(i)

end

end

(X2(i)′,CRj(i)′)←DNA(X2(i),CRj(i))

(Y2(i)′,CGj(i)′)←DNA(Y2(i),CGj(i))

(Z2(i)′,CBj(i)′)←DNA(Z2(i),CBj(i))

forj=1;j≤h;j++ do

ifX2(i)′%3=0 then

RDD←Arnold(CRj(i)′+X2(i)′)

else ifX2(i)′%3=1 then

RDD←Arnold(CRj(i)′-X2(i)′)

else ifX2(i)′%3=2 then

RDD←Arnold(CRj(i)′?X2(i)′)

ifY2(i)′%3=0 then

RDD←Arnold(CGj(i)′+Y2(i)′)

else ifY2(i)′%3=1 then

RDD←Arnold(CGj(i)′-Y2(i)′)

else ifY2(i)′%3=2 then

RDD←Arnold(CGj(i)′?Y2(i)′)

ifZ2(i)′%3=0 then

RDD←Arnold(CBj(i)′+Z2(i)′)

else ifZ2(i)′%3=1 then

RDD←Arnold(CBj(i)′-Z2(i)′)

else ifX2(i)′%3=2 then

RDD←Arnold(CBj(i)′?Z2(i)′)

end

map操作中,split為數據分片,RDD表示明文或密文的彈性數據分布集,Arnold表示將加密像素點的每個位平面的比特位進行位置變換,DNA表示將偽隨機序列和像素點轉二進制后按照從規則1到規則8的順序依次做相加、相減和異或的運算,運算法則同表2至表4,最后解碼得到加密像素點。

4) 在輸出階段,調用PIL庫中的fromarray函數將RDD數據處理為矩陣形式,將各分量的矩陣進行合并可以得到密文圖像L′。

4 實驗及結果分析

4.1 Spark平臺環境及算法實現

Spark平臺安裝于VMware虛擬機中,共搭建了三個虛擬節點模擬集群效果。其中,兩個節點作為Worker節點,用于并行處理明文圖像分塊后得到的Application數據塊,另一個節點既作為Worker節點處理數據塊,還作為Cluster Manager節點,負責監控管理Worker節點的狀態,控制集群的運行,并獲取各個節點的資源調度信息。

實驗用物理機使用的處理器為Intel(R) Core(TM) i5-9300H CPU @ 2.40 GHz,物理機的內存大小為8 GB。虛擬機VMware版本為12.5.9,為了在不影響物理機性能的基礎上最大化虛擬機性能,考慮將VMware中的每個虛擬機節點內存配置為1 GB,處理器個數設置為1,每個節點安裝的操作系統版本為64位Linux Ubuntu 16.04.6,JDK采用了JDK1.8,Scala版本為Scala2.11.11,搭載的Hadoop版本為Hadoop2.7.3,使用Spark版本為Spark2.2.0。

對算法使用Python編程實現,其中需要調用PIL、numpy、matplotlib庫進行圖像處理。Spark啟動后采用Standalone client模式調用Python程序,相較于Standalone cluster模式,Standalone client模式將任務進程驅動運行在客戶端,便于對程序進行相關操作。

4.2 Spark平臺運行效率分析

測試數據使用aerials標準測試圖像,其中包括了Lena、Peppers、Lake、Baboon等常用于圖像加密測試的圖像,圖像集中單幅圖片大小為768 KB,分辨率為512×512。

在Spark集群中對多幅圖片進行加密處理,記錄處理過程所消耗的時間,同時在單機環境下對相同數量的圖片進行加密處理,并記錄所消耗的時間。將兩種不同情況下圖像加密處理所消耗的時間作對比,對比結果如圖5所示。

圖5 不同環境下圖像加密的時間消耗

可以看出,當需要處理的圖像數據量較小時,單機環境下所消耗的時間與集群并行環境下所消耗的時間差別很小,運行環境的差別對加密算法的效率影響很小。當圖像數據量逐漸增大到20幅時,Spark并行環境下處理數據所消耗的時間要小于單機環境下的耗時,兩者的時間差距也逐漸增大到約28 s。當使用分辨率更高、數據量更大的圖片進行加密時,集群并行對于加密效率的提升會更加明顯。

設置數據分片數為h=1,2,3,4,研究不同分片數對運行時間的影響,結果如表5所示。

表5 分片數對運行效率的影響

由表5可得,當分片數h取值越接近集群中Executor的數目,效率的提升越明顯,用時越短,當分片數取值超過Executor的數目時,集群運行效率不再有顯著提升。

4.3 NIST測試

對密文圖像做NIST隨機數測試可以判斷密文圖像像素點的隨機程度。若得到的15項測試結果均大于1%,則表明密文圖像像素點總體的隨機性較好,復雜度較高[14]。

利用本文提出的基于Spark平臺和三維動態整數帳篷映射的算法對圖像Peppers進行加密,加密效果如圖6所示。對得到的Peppers密文圖像的RGB各通道做NIST測試,測試結果如表6所示。

表6 Peppers密文RGB通道NIST測試

圖6 Peppers明文圖像和密文圖像

由表6可得,明文圖像經過Spark并行加密處理后,得到的密文圖像的RGB各通道像素值均可以通過NIST測試,各項測試的P-value值均在1%以上,說明密文圖像具有一定的安全性。

4.4 直方圖分析

通過圖像直方圖可以分析密文圖像中灰度值的分布情況,進而分析加密算法對圖像的置亂程度,評估密文圖像所包含的信息量。對明文Peppers和密文Peppers的RGB各通道進行直方圖分析,分析結果如圖7至圖8所示。

(a) 明文R分量直方圖

(a) 密文R分量直方圖

可以看出,Peppers明文圖像的直方圖落差較大,說明明文圖像中像素點的分布包含了較多的信息量,不同數值的像素點分布不均勻。經過Spark平臺加密處理后,得到的密文圖像直方圖較為均勻,各個像素點被置亂,明文信息被隱藏到置亂的像素點中。

4.5 信息熵分析

通過對圖像進行信息熵測試,可以分析圖像的置亂程度。理想的信息熵值為8,計算結果越接近8,圖像整體的混亂程度越高,各像素點的排列越接近于無序[15-16]。信息熵定義為:

(6)

式中:p(Ai)表示序列A中第i個數出現的頻率。

利用式(6)分別計算Peppers明文圖像和Peppers密文圖像RGB各通道的信息熵值,計算結果如表7所示。

表7 Peppers明文圖像和密文圖像信息熵

分析表7結果,相對于明文圖像,密文圖像的計算結果更趨近于理想值,說明密文圖像達到了理想的置亂效果。

5 結 語

本文提出一種以三維動態整數帳篷映射為偽隨機序列發生器,基于Spark大數據平臺運行的混沌并行圖像加密算法。研究的主要目的在于解決大數據安全問題,同時提高加密算法的運行效率。實驗研究表明,三維動態整數帳篷映射的引入使得密文圖像具有良好的安全性,Spark大數據平臺的引入顯著提升了大數據量圖像信息的加密效率。

本文方法針對Spark大數據平臺的安全問題以及圖像加密的效率問題提出,但不局限于Spark平臺,在Hadoop、Storm等平臺中也有一定的適用性,在海量機密圖像數據的高效加密和安全傳輸方面具有一定的應用前景。

主站蜘蛛池模板: 色亚洲成人| 伦伦影院精品一区| 欧美精品亚洲精品日韩专区| 国产自在线拍| 国产精品网址在线观看你懂的| 国产亚洲视频中文字幕视频| 精品福利视频网| 色婷婷色丁香| 影音先锋丝袜制服| 自偷自拍三级全三级视频| 制服丝袜 91视频| 久热这里只有精品6| 2022精品国偷自产免费观看| 日韩小视频网站hq| 婷婷色中文| 成人在线综合| 亚洲视频二| 动漫精品中文字幕无码| 午夜啪啪福利| 中国精品久久| 青青久在线视频免费观看| 97人人做人人爽香蕉精品| 婷婷五月在线| 中国国产一级毛片| 91精品国产麻豆国产自产在线| 欧洲免费精品视频在线| 亚洲精品在线影院| 国产欧美精品午夜在线播放| 久久精品一卡日本电影| 国产Av无码精品色午夜| 国产日本视频91| 无码内射中文字幕岛国片| 91伊人国产| 免费观看精品视频999| 久久这里只精品国产99热8| 久久亚洲国产视频| 国精品91人妻无码一区二区三区| 国产99久久亚洲综合精品西瓜tv| 55夜色66夜色国产精品视频| 欧美中文一区| 日本一本在线视频| 国产精品成人观看视频国产 | 欧美日韩国产综合视频在线观看 | 亚洲精品动漫在线观看| 亚洲伊人天堂| 性视频久久| 久久精品最新免费国产成人| 四虎免费视频网站| 日韩毛片免费| 欧美日韩午夜| 99久久精品视香蕉蕉| 欧美精品伊人久久| 国产精品久久久久久久久久98| 亚洲一级毛片在线观播放| 欧美亚洲中文精品三区| 亚洲国产精品日韩专区AV| 欧美狠狠干| 亚洲精品在线影院| 国产一区二区三区精品欧美日韩| 中文字幕有乳无码| www欧美在线观看| 高清大学生毛片一级| 精品国产成人三级在线观看| 国产美女叼嘿视频免费看| 区国产精品搜索视频| 成人久久18免费网站| 日韩中文字幕免费在线观看| 狂欢视频在线观看不卡| 日韩午夜福利在线观看| 国产精品美人久久久久久AV| 狠狠操夜夜爽| 亚洲人成网站在线播放2019| 青青久久91| 亚洲色图欧美一区| 欧美日韩第三页| 成年人福利视频| 日韩在线第三页| 人人妻人人澡人人爽欧美一区| 四虎国产永久在线观看| 国产精品极品美女自在线网站| 亚洲国产中文在线二区三区免| 欧美另类第一页|