国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種DEM置亂加密與還原方法與流程

      文檔序號:11156091閱讀:1079來源:國知局
      一種DEM置亂加密與還原方法與制造工藝

      本發(fā)明屬于地理信息安全領(lǐng)域,具體涉及一種基于三維混沌序列對DEM進行置亂加密與還原的方法。



      背景技術(shù):

      DEM(Digital Elevation Model,即數(shù)字高程模型),是用一組有序數(shù)值陣列表示地面高程值的一種實體地面模型。由于DEM描述的是地面高程信息,它在測繪、水文、氣象、地貌、地質(zhì)、土壤、工程建設、通訊、軍事等國民經(jīng)濟和國防建設以及人文和自然科學領(lǐng)域有著廣泛的應用。DEM作為一種基礎(chǔ)地理信息資源,具有重要的軍事價值和經(jīng)濟價值,是測繪部門和應用單位的重點保護對象,有必要在傳輸和存儲過程中進行置亂加密操作。

      長期以來,針對DEM的加密技術(shù)研究甚少,且主要集中于應用傳統(tǒng)流式文件的一般加密方法進行加密。這種簡單粗暴的加密方法,既破環(huán)了文件的基本結(jié)構(gòu),又容易引發(fā)數(shù)據(jù)破譯者的興趣。因此迫切需要研發(fā)一種安全性高、隱蔽性好的DEM置亂加密與還原方法。



      技術(shù)實現(xiàn)要素:

      本發(fā)明的目的在于,克服現(xiàn)有技術(shù)存在的缺陷,提供一種DEM置亂加密與還原方法,利用三維混沌技術(shù),分別通過對頭文件置亂、對高程置亂和對位置置亂,形成針對DEM的置亂加密與還原,可有效解決DEM數(shù)據(jù)的安全傳輸與封裝存貯環(huán)節(jié)中的地理信息安全問題。

      為了實現(xiàn)上述目的,本發(fā)明采取的技術(shù)方案如下:

      一、DEM的置亂加密方法,其步驟如下:

      步驟1:基于ArcMap軟件,通過ArcToolbox->轉(zhuǎn)換工具->由柵格轉(zhuǎn)出->柵格轉(zhuǎn)ASCII操作,將Esri Grid格式的DEM數(shù)據(jù)轉(zhuǎn)化為ASCII編碼的txt文件。

      步驟2:將txt文件以行為主序存入一M×N矩陣A中,其中M為DEM的行數(shù),N為DEM的列數(shù),并從DEM的頭文件中讀取出DEM的像元大小cellsize,左上角x起始坐標xllcorner和左上角y起始坐標yllcorner。

      步驟3:輸入x1、y1、z1作為混沌系統(tǒng)的初值,且x1∈(0,1),y1∈(0,1),z1∈(0,1)。輸入置亂因子ρ的值,且ρ∈[1,1000]。定義參數(shù)σ的值,且σ∈(0,1)。

      步驟4:根據(jù)公式(1),生成混沌序列X、Y和Z;其中X={xk|k=1,2,3,...,max{M+N+13,10000}},Y={yk|k=1,2,3,...,max{M+N+13,10000}},Z={zk|k=1,2,3,...,max{M+N+13,10000}};

      步驟5:獲取序列S、J、Q、J′、Q′、I和T。其中S為待和Z進行異或操作的序列。J、Q為對行號進行位置置亂操作的序列。J′、Q′為對列號進行位置置亂操作的序列。I和T為對Z值進行位置置亂操作的序列。

      步驟5.1,根據(jù)公式(2)和(3),對混沌序列Z進行非線性離散化,生成序列S,S={sk|k=1,2,3,...,M+N+13};

      步驟5.2,設混沌序列X的子集X′={x1,x2,x3,...,x10000}的索引號序列{1,2,3,…,10000}為序列J;將組元(xn,jn)以xn為主要關(guān)鍵字進行升序排序,將排序后的序列J記為序列Q。

      步驟5.3,設混沌序列Y的子集Y′={y1,y2,y3,...,y10000}的索引號序列{1,2,3,…,10000}為序列J′;將組元(yn,jn′)以yn為主要關(guān)鍵字進行升序排序,將排序后的序列J′記為序列Q′。

      步驟5.4,設混沌序列Z的子集Z′={z1,z2,z3,...,z10000}索引號序列{1,2,3,…,10000}為序列I;將組元(zn,in)以zn為主要關(guān)鍵字進行升序排序,將排序后的序列I記為序列T。

      步驟6:對DEM數(shù)據(jù)的頭文件進行置亂

      根據(jù)公式(4)對cellsize、xllcorner和yllcorner進行加密操作,得到加密數(shù)據(jù)scellsize、sxllcorner和syllcorner;

      步驟7:根據(jù)序列S、T對矩陣A進行高程置亂

      步驟7.1,將矩陣A的一點的高程值Cmn轉(zhuǎn)為14位的二進制數(shù)表示,其中m和n為對應的行號與列號;m∈[1,M],n∈[1,N]。

      步驟7.2,若m+n為奇數(shù),則先將Cmn的低7位與高7位進行交換;若m+n為偶數(shù)則不變;選取S的一14位子序列{sm+n,sm+n+1,sm+n+2,…,sm+n+13}按位與Cmn異或。

      步驟7.3,將異或后的結(jié)果轉(zhuǎn)化為十進制數(shù)表示,得到變化后的高程值C′mn。

      步驟7.4,基于C′mn,根據(jù)公式(5)生成臨時變量b;

      b=C′mn modρ (5)。

      步驟7.5,在序列T中遍歷尋找值為b的元素,將其序列號記為serialID,則根據(jù)公式(6)計算出C″mn;

      C″mn=C′mn-b+serialID (6)。

      循環(huán)執(zhí)行步驟7.1-步驟7.5,對矩陣A中的每一點都進行如上操作,得到新矩陣A′,其中m和n為對應的行號與列號。

      步驟8:根據(jù)序列Q、Q′對矩陣A′進行位置置亂:

      從矩陣A′的首行首列開始,循環(huán)執(zhí)行步驟8.1-步驟8.4,逐個將矩陣A′中元素C″mn與C″m′n′位置互換,得到矩陣A″;矩陣A″即為對DEM置亂后的最終結(jié)果。

      步驟8.1,根據(jù)公式(7),利用矩陣A′中的每一元素C″mn的行號m,生成臨時變量p;

      p=m modρ (7)。

      步驟8.2,在序列Q中遍歷尋找與p值相等的元素,記其下標為serialID′,則根據(jù)公式(8),生成m′;

      m′=m-p+serialID′ (8)。

      步驟8.3,根據(jù)公式(9),利用矩陣A′中的元素C″mn的列號n,生成p′;

      p′=n modρ (9)。

      步驟8.4,在序列Q′中遍歷尋找與p′值相等的元素,記其下標為serialID″,則根據(jù)公式(10),生成n′;

      n′=n-p′+serialID″ (10)。

      步驟9:基于置亂加密后的數(shù)據(jù),生成置亂加密后的txt文件。

      步驟10:基于ArcMap軟件,通過“ArcToolbox->轉(zhuǎn)換工具->轉(zhuǎn)為柵格->ASCII轉(zhuǎn)柵格”操作,將txt文件轉(zhuǎn)換為Esri Grid格式的DEM數(shù)據(jù)。

      (二)DEM置亂還原方法(DEM置亂的還原過程),包括如下步驟:

      步驟A:基于ArcMap軟件,通過“ArcToolbox->轉(zhuǎn)換工具->由柵格轉(zhuǎn)出->柵格轉(zhuǎn)ASCII”操作,將DEM數(shù)據(jù)轉(zhuǎn)化為ASCII編碼的txt文件;從txt中讀取數(shù)據(jù)至矩陣A″。

      步驟B:將置亂后的DEM以行為主序存入行數(shù)為M,列數(shù)為N的矩陣A″中,其中M為置亂后的DEM的行數(shù),N為置亂后的DEM的列數(shù),并從DEM的頭文件中讀取出置亂后的DEM數(shù)據(jù)的像元大小scellsize、左上角x起始坐標sxllcorner和左上角y起始坐標syllcorner

      步驟C:輸入x1、y1、z1作為混沌系統(tǒng)的初值,且x1∈(0,1),y1∈(0,1),z1∈(0,1)。輸入置亂因子ρ的值,且ρ∈[1,10000]。定義參數(shù)σ的值,且σ∈(0,1)。

      步驟D:根據(jù)公式(1),生成混沌序列X、Y和Z;其中X={xk|k=1,2,3,...,max{M+N+13,10000}},Y={yk|k=1,2,3,...,max{M+N+13,10000}},Z={zk|k=1,2,3,...,max{M+N+13,10000}}。

      步驟E:獲取序列S、J、Q、J′、Q′、I和T

      步驟E.1,根據(jù)公式(2)和(3),對混沌序列Z進行非線性離散化,生成序列S,S={sk|k=1,2,3,...,M+N+13}。

      步驟E.2,設混沌序列X的子集X′={x1,x2,x3,...,x10000}的索引號序列{1,2,3,…,10000}為序列J;將組元(xn,jn)以xn為主要關(guān)鍵字進行升序排序,將排序后的序列J記為序列Q;

      步驟E.3,設混沌序列Y的子集Y′={y1,y2,y3,...,y10000}的索引號序列{1,2,3,…,10000}為序列J′;將組元(yn,jn′)以yn為主要關(guān)鍵字進行升序排序,將排序后的序列J′記為序列Q′。

      步驟E.4,設混沌序列Z的子集Z′={z1,z2,z3,...,z10000}索引號序列{1,2,3,…,10000}為序列I。將組元(zn,in)以zn為主要關(guān)鍵字進行升序排序,將排序后的序列I記為序列T。

      步驟F:對DEM的頭文件進行還原

      根據(jù)公式(11)對scellsize、sxllcorner和syllcorner進行還原操作,得到還原數(shù)據(jù)cellsize、xllcorner和yllcorner;

      步驟G:根據(jù)序列Q和Q′對矩陣A″中的置亂后的位置進行還原

      從矩陣A″末行末列開始,循環(huán)執(zhí)行步驟G.1-步驟G.1,逐個往前將矩陣A′中元素C″m′n′與C″mn互換,得到矩陣A′,其中m和n為矩陣A′中對應的行號與列號:

      步驟G.1,根據(jù)公式(12),利用矩陣A″中的元素C″m′n′的行號m′,生成serialID′;其中m′和n′為對應的行號與列號

      serialID′=m′modρ (12)。

      步驟G.2,尋找序列Q中索引號為serialID′的元素,記其值為p,根據(jù)公式(13),生成m;

      m=m′+p-serialID′ (13)。

      步驟G.3,根據(jù)公式(14),利用矩陣A″中的元素C″m′n′的列號n′,生成serialID″;

      serialID′′=n′modρ (14)。

      步驟G.4,尋找序列Q′中索引號為serialID′′的元素,記其值為p′,根據(jù)公式(15),生成n;

      n=n′+p′-serialID″ (15)。

      步驟H:根據(jù)序列S、T對矩陣A′中的數(shù)據(jù)進行高程還原

      循環(huán)執(zhí)行步驟H.2-步驟H.5,對矩陣A′中的每個點循環(huán)執(zhí)行上述操作,得到矩陣A,矩

      陣A即為還原后的最終結(jié)果:

      步驟H.1,根據(jù)公式(16),利用矩陣A′中的元素C″mn,生成serialID;

      serialID=C″mn modρ (16)。

      步驟H.2,尋找矩陣A′中索引號為serialID的元素,記其值為b,則根據(jù)公式(17),得到

      C′mn=C″mn+b-serialID (17)。

      步驟H.3,將C′mn用14位的二進制數(shù)表示,其中m∈[1,M],n∈[1,N]。

      步驟H.4,選取S的一14位子序列{Sm+n,Sm+n+1,Sm+n+2,…,Sm+n+13}與C′mn的14位二進制數(shù),進行按位異或操作;若m+n為奇數(shù),則將異或結(jié)果的低7位與高7位進行交換,若m+n為偶數(shù),則不變。

      步驟H.5,將變換后的高程值轉(zhuǎn)化為十進制得到Cmn。

      步驟I:基于ArcMap軟件,通過“ArcToolbox->轉(zhuǎn)換工具->轉(zhuǎn)為柵格->ASCII轉(zhuǎn)柵格”操作,將txt文件轉(zhuǎn)換為Esri Grid格式的DEM數(shù)據(jù),完成DEM的還原處理。

      本發(fā)明方法利用三維混沌技術(shù),分別通過對頭文件置亂、對高程置亂和對位置置亂,形成針對DEM的置亂加密與還原,可有效解決DEM數(shù)據(jù)的安全傳輸與封裝存貯環(huán)節(jié)中的地理信息安全問題。

      附圖說明

      圖1本發(fā)明的流程圖(a.置亂加密流程,b.還原流程)。

      圖2實驗數(shù)據(jù)。

      圖3置亂加密后的處理結(jié)果。

      圖4還原后的處理結(jié)果。

      具體實施方式

      下面結(jié)合附圖和實施例做進一步詳細說明

      實施例1

      本實例選取的是1:50000的廬山局部DEM數(shù)據(jù),數(shù)據(jù)格式為Esri Grid格式。針對數(shù)據(jù)格式的轉(zhuǎn)化、數(shù)據(jù)讀取、置亂加密、還原的整個過程,給出本發(fā)明的一個實施例。

      1、基于混沌序列的DEM的置亂加密過程

      步驟11:

      1)在ArcMap打開數(shù)據(jù),用ArcToolbox->轉(zhuǎn)換工具->由柵格轉(zhuǎn)出->柵格轉(zhuǎn)ASCII,將DEM數(shù)據(jù)轉(zhuǎn)化為ASCII編碼的txt文件。本實例選取的數(shù)據(jù)在ArcScene中三維顯示如圖2。

      步驟12:

      首先,讀取txt格式的DEM數(shù)據(jù)的頭文件。其中xllcorner=390996,yllcorner=3274219,cellsize=5。其次,讀取各點高程值。該實例中開辟的是935行,1220列的二維陣列。

      步驟13:輸入三維混沌序列的初值x1=0.21,y1=0.32,z1=0.44。并設置σ=0.45,ρ=10000。

      步驟14:根據(jù)公式(1),生成序列長度為2168的混沌序列X,X={0.21,0.97,0.81,…,0.88}、序列長度為2168的混沌序列Y,Y={0.32,0.94,0.63,…,0.77}和序列長度為2168的混沌序列Z,Z={0.44,0.91,0.45,…,0.67}。

      步驟15:獲取序列S、J、Q、J′、Q′、I和T

      1)對混沌序列Z進行非線性離散化。根據(jù)公式(2)、(3)得到含2168個元素的0-1序列S,S={0,1,0,1,…,1}。

      2)設混沌序列X的子集X′={x1,x2,x3,...,x10000}中元素的索引號序列{1,2,3,...,10000}為序列J。將組元(xn,jn)以xn為主要關(guān)鍵字進行升序排序,將排序后的序列J記為序列Q,Q={2,4,6,...,2167,1}。

      3)設混沌序列Y的子集Y′={y1,y2,y3,…,y10000}中元素的索引號序列{1,2,3,...,10000}為序列J′。將組元(yn,jn′)以yn為主要關(guān)鍵字進行升序排序,將排序后的序列J′記為序列Q′,Q′={2,4,6,...,2167,1}。

      4)設混沌序列Z的子集Z′={z1,z2,z3,…,z10000}的索引號序列{1,2,3,...,10000}為序列I。將組元(zn,in)以zn為主要關(guān)鍵字進行升序排序,將排序后的序列I記為序列T,T={5,7,9,…,3,1}。

      步驟16:進行頭文件置亂。

      根據(jù)公式(14)對cellsize=5、xllcorner=390996和yllcorner=3274219進行置亂加密操作,得到置亂加密數(shù)據(jù)Scellsize=1140697、Sxllcorner=1347720和Syllcorner=2134583。

      步驟17:進行高程置亂。

      1)以m=15,n=98為例。將該點處的高程值202用14位的二進制數(shù)表示為00000011001010,記為Cmn(m、n分別為行列號,m∈[1,935],n∈[1,1220])。

      2)m+n=113為奇數(shù),則將低7位與高7位進行交換,得到10010100000001。選取離散化產(chǎn)生的部分序列S113,S114,S115,…,S126與Cmn異或,即將01010101010101與10010100000001進行異或。

      3)將異或后的結(jié)果11000001010100轉(zhuǎn)化為十進制,得到變化后的高程值C′mn=12372。

      4)基于C′mn,根據(jù)公式(5)生成臨時變量b=2372。

      5)在序列T中遍歷尋找到值為b的元素,其序列號serialID=7368,則根據(jù)公式(6)計算C′mn=17368。

      6)對矩陣A中的每一點都進行如上操作,得到新矩陣A′。其中m和n為對應的行號與列號。

      步驟18:進行位置置亂。

      1)以m=15,n=98為例,根據(jù)公式(7),利用矩陣A′中的元素C″mn的行號m生成臨時變量p=15。

      2)遍歷尋找序列Q中與p值相等的元素,其下標serialID′=1095,則根據(jù)公式(8),生成m′=1095。

      3)根據(jù)公式(9),利用矩陣A′中的元素C″mn的列號n生成p′=98。

      4)遍歷尋找序列Q′中與p′值相等的元素,其下標serialID″=48,則根據(jù)公式(10),生成n′=48。

      5)從首行首列開始逐個將A′中元素C″mn與C″m′n′位置互換,得到矩陣A″。A″即為對DEM置亂后的最終結(jié)果。

      步驟19:基于置亂加密后的數(shù)據(jù),生成置亂加密后的txt文件。

      步驟20:基于ArcMap軟件,通過“ArcToolbox->轉(zhuǎn)換工具->轉(zhuǎn)為柵格->ASCII轉(zhuǎn)柵格”操作,將txt文件轉(zhuǎn)換為Esri Grid格式的DEM數(shù)據(jù),完成DEM的還原處理。置亂后的效果在ArcScene中查看,如圖3。

      2.還原過程

      步驟21:基于ArcMap軟件,通過“ArcToolbox->轉(zhuǎn)換工具->由柵格轉(zhuǎn)出->柵格轉(zhuǎn)ASCII”操作,將DEM數(shù)據(jù)轉(zhuǎn)化為ASCII編碼的txt文件。

      步驟22:首先,讀取txt格式的DEM數(shù)據(jù)的文件頭。其中Scellsize=1140697、Sxllcorner=1347720和Syllcorner=2134583。,將相關(guān)參數(shù)保存。其次,讀取各點高程值。該實例中開辟的是935行,1220列的二維陣列。

      步驟23:生成混沌序列。

      輸入三維混沌序列的初值x1=0.23,y1=0.24,z1=0.25。設置σ=0.45,ρ=10000。

      步驟24:根據(jù)公式(1),生成序列長度為2168的混沌序列X,X={0.21,0.97,0.81,…,0.88}、序列長度為2168的混沌序列Y,Y={0.32,0.94,0.63,…,0.77}和序列長度為2168的混沌序列Z,Z={0.44,0.91,0.45,…,0.67}。

      步驟25:獲取序列S、J、Q、J′、Q′、I和T

      對混沌序列Z進行非線性離散化。根據(jù)公式(2)和(3)得到含2168個元素的0-1序列S,S={0,1,0,1,…,1}。

      2)設混沌序列X的子集X′={x1,x2,x3,...,x10000}中元素的索引號序列{1,2,3,...,10000}為序列J。將組元(xn,jn)以xn為主要關(guān)鍵字進行升序排序,將排序后的序列J記為序列Q,Q={2,4,6,...,2167,1}。

      3)設混沌序列Y的子集Y′={y1,y2,y3,...,y10000}中元素的索引號序列{1,2,3,...,10000}為序列J′。將組元(yn,jn′)以yn為主要關(guān)鍵字進行升序排序,將排序后的序列J′記為序列Q′,Q′={2,4,6,...,2167,1}。

      4)設混沌序列Z的子集Z′={z1,z2,z3,...,z10000}的索引號序列{1,2,3,...,10000}為序列I。將組元(zn,in)以zn為主要關(guān)鍵字進行升序排序,將排序后的序列I記為序列T,T={5,7,9,…,3,1}。

      步驟26:頭文件還原。

      根據(jù)公式(14)對Scellsize=1140697、Sxllcorner=1347720和Syllcorner=2134583進行還原操作,得到還原數(shù)據(jù)cellsize=5、xllcorner=390996和yllcorner=3274219。

      步驟27:位置置亂還原。

      具體過程如下:

      1)以m′=1095,n′=48為例,根據(jù)公式(12),利用矩陣A″中的元素C″m′n′的行號m′=1095生成serialID′=1095。其中m′和n′為對應的行號與列號。

      2)尋找序列Q中索引號為serialID′的元素,生成p=15,則根據(jù)公式(13),生成m=15。

      3)根據(jù)公式(14),利用矩陣A″中的元素C″m′n′的列號n′=48,生成serialID″=48。

      4)尋找序列Q′中序列號為serialID″的元素,其值p′=98,則根據(jù)公式(15),生成n=98。

      5)從末行末列逐個往前將A′中元素C″m′n′與C″mn互換,得到矩陣A′。其中m和n為A′中對應的行號與列號。

      步驟27:高程還原。

      1)以m=15,n=98,對應高程為17368為例,根據(jù)公式(16)生成serialID=7368。

      2)尋找序列A′中索引號為serialID的元素,其值b=2372,則根據(jù)公式(17),得到C′mn=12372。

      3)將C′mn用14位的二進制數(shù)表示,其中m∈[1,M],n∈[1,N]。

      4)選取離散化產(chǎn)生的部分序列S113,S114,S115,…,S126與Cmn異或,即將01010101010101與11000001010100進行異或,得到10010100000001,因為m+n為奇數(shù),所以交換前七位和后七位得到00000011001010。

      3)將異或后的結(jié)果轉(zhuǎn)化為十進制,得到變化后的高程值C′mn=202;

      5)將變換后的高程值轉(zhuǎn)化為十進制,得到矩陣A,A即為還原后的最終結(jié)果。

      步驟28:基于還原處理后的數(shù)據(jù),生成還原后的DEM的txt文件。

      步驟29:在ArcMap中用ArcToolbox->轉(zhuǎn)換工具->轉(zhuǎn)為柵格->ASCII轉(zhuǎn)柵格,將ASCII編碼的txt文件轉(zhuǎn)化為Esri Grid格式顯示。本實例選取的數(shù)據(jù)在ArcScene中三維顯示如圖4。

      本發(fā)明的有益效果:通過針對DEM數(shù)據(jù)的置亂加密與還原處理,可安全、高效地解決DEM數(shù)據(jù)的安全傳輸與封裝存貯環(huán)節(jié)中的地理信息安全問題。

      當前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1