基于動態(tài)循環(huán)位移的地理數(shù)據(jù)加密系統(tǒng)及方法與流程
1.本發(fā)明涉及到地理信息數(shù)據(jù)處理技術(shù)領(lǐng)域,具體涉及一種基于動態(tài)循環(huán)位移的地理數(shù)據(jù)加密系統(tǒng)及方法。
背景技術(shù):
2.隨著信息技術(shù)的迅速發(fā)展和地理信息的廣泛應用,秘密監(jiān)測和地理信息制圖的安全管理面臨著嚴峻的挑戰(zhàn)。一些單位制作和使用地理信息進行監(jiān)視和秘密測繪沒有保密意義,測繪地理信息載體類型和形式較多,數(shù)字化成果應用廣泛,傳播渠道更加多樣,這對地理信息測繪和秘密測繪的安全性提出了嚴峻的挑戰(zhàn)。地理信息安全是地理信息機構(gòu)面臨的一個日益復雜的問題:
3.(1)分發(fā)數(shù)據(jù)存在著被二次傳播、挪為它用等行為;
4.(2)外發(fā)數(shù)據(jù)在第三方造成泄露,無法斷定泄密責任問題;
5.(3)數(shù)據(jù)出現(xiàn)版權(quán)糾紛等情況,無法有效維護權(quán)益和責任界定;
6.(4)外發(fā)數(shù)據(jù)加解密操作只有一層加密,安全級別系數(shù)較低。
技術(shù)實現(xiàn)要素:
7.針對現(xiàn)有技術(shù)的不足,本發(fā)明的目的是提供一種基于動態(tài)循環(huán)位移的地理數(shù)據(jù)加密系統(tǒng)及方法,以實現(xiàn)地理信息數(shù)據(jù)的加密,避免泄密和篡改。
8.為達到上述目的,本發(fā)明采用的技術(shù)方案如下:
9.一種基于動態(tài)循環(huán)位移的地理數(shù)據(jù)加密方法,其關(guān)鍵在于包括如下步驟:
10.步驟1、將原始地理信息數(shù)據(jù)文件轉(zhuǎn)換成二進制,得到128位二進制表示的地理信息數(shù)據(jù)a;
11.步驟2、將地理信息數(shù)據(jù)a采用國密算法進行加密,得到加密后的二進制位序列b;
12.步驟3、對二進制位序列b進行雙向移位加密,得到地理信息數(shù)據(jù)c;
13.步驟4、對于地理信息數(shù)據(jù)c,輸入n個初始化種子以及n個循環(huán)移位子過程的疊加順序s1,s2,
···
,sn;
14.步驟5、令i=1;
15.步驟6、抽取和si;
16.步驟7、根據(jù)抽取si的值確定循環(huán)移位子過程的種類,將作為隨機數(shù)種子生成一組隨機數(shù),記為[x(1),x(2),
···
,x(t)],并采用所述一組隨機數(shù)對待加密數(shù)據(jù)進行所確定的循環(huán)移位子過程,每個所述隨機數(shù)為si對應的循環(huán)移位子過程的移位步數(shù),是第i行,或第i列,或第i斜線,或第i反斜線,或第i圈的移位步數(shù);其中,t的值根據(jù)循環(huán)移位子過程的種類及輸入數(shù)據(jù)的尺寸自動確定;
[0017]
步驟8、令i=i+1,并返回步驟6循環(huán)進行,直至i=n,獲得所需的地理信息加密數(shù)據(jù)d。
[0018]
進一步的,步驟2中采用sm4算法對地理信息數(shù)據(jù)a進行加密。
[0019]
進一步的,步驟3中對二進制位序列b進行雙向移位加密的具體步驟如下:
[0020]
步驟3.1、對二進制位序列b的正向移位加密:
[0021]
利用外部加密密鑰(α,β),按照公式計算得到傾斜帳篷混沌映射的初值x1,并按照公式計算得到傾斜帳篷混沌映射的μ,其中,pb_1為二進制位序列b中元素為二進制
‘1’
的總個數(shù),pb_0為二進制位序列b中元素為二進制
‘0’
的總個數(shù),m為二進制位序列b的長度,利用初值x1和參數(shù)μ,按照公式對傾斜帳篷混沌映射xk進行200次迭代,得到第200次迭代后的混沌信號x
201
,
[0022]
令混沌信號初值y1=x
201
,并從二進制位序列b中從頭到尾正向取m個元素,得到第一個二進制位分組序列bf{1}={b1,b2,
···
,bm},令j=1,進行如下操作:
[0023]
s11、由混沌信號yj和參數(shù)μ,對所示傾斜帳篷混沌映射xk進行單次迭代,得到混沌信號y
j+1
,同時利用混沌信號y
j+1
,按照公式direction_shift1=mod(y
1i-y
2i
,2),k_shift1=mod(y
1i
+y
2i
,9)計算分別得到移位方向direction_shift1、移位個數(shù)k_shift1,
[0024]
其中,y
1j
=[(y
j+1
·
10
m-[y
j+1
·
10m])
·
10000],y
2j
=[(y
j+1
·
10
m-[y
j+1
·
10m])
·
10000];
[0025]
s12、當direction_shift1=0時,將二進制位分組序列bf{j}中元素循環(huán)左移k_shift1位,得到正向移位后的二進制位分組序列表示為;
[0026]
s13、比較j與m的大小,若j<m-1,則利用正向移位后的二進制位分組序列中前m-2個元素,按照公式對混沌信號y
j+1
進行調(diào)整,
[0027]
其中,bin2dec({bbm×
j-(m-1)
,bbm×
j-(m-2)
,
···
,bbm×
j-2
})操作表示將二進制位分組序列{bbm×
j-(m-1)
,bbm×
j-(m-2)
,
···
,bbm×j}轉(zhuǎn)換為數(shù)值型數(shù)據(jù),同時按照公式{b
(m-1)
×
j-(m-2)
,b
(m-1)
×
j-(m-3)
,
···
,b
(m-1)
×j,b
(m-1)
×
j+1
}={bbm×
j-(m-1)
,bbm×
j-(m-2)
,
···
,bbm×j}將二進制位序列b中相應元素替換為正向移位后的二進制位分組序列,并令j=j+1,隨后從二進制位序列b中正向取m個相應元素,得到第j個二進制位分組序列bf{m}={b
(m-1)
×
m-(m-1)
,b
(m-1)
×
m-(m-2)
,
···
,b
(m-1)
×m},然后轉(zhuǎn)到步驟s11;
[0028]
若j=m-1,則利用正向移位后的二進制位分組序列中前m-2個元素,按照公式對混沌信號y
j+1
進行調(diào)
整,同時將二進制位序列b中相應元素替換為正向移位后的二進制位分組序列替換公式為{b
(m-1)
×
j-(m-2)
,b
(m-1)
×
j-(m-3)
,
···
,b
(m-1)
×j,b
(m-1)
×
j+1
}={bbm×
j-(m-1)
,bbm×
j-(m-2)
,
···
,bbm×j},并令j=j+1,隨后從二進制位序列b中正向取m個相應元素,得到第m個二進制位分組序列,表示為bf{m}={b
(m-1)
×
m-(m-1)
,b
(m-1)
×
m-(m-2)
,
···
,b
(m-1)
×m},然后轉(zhuǎn)到步驟s11;
[0029]
若j=m,則將二進制位序列b中相應元素替換為正向移位后的二進制位分組序列替換公式為{b
(m-1)
×
m-(m-1)
,b
(m-1)
×
m-(m-2)
,
···
,b
(m-1)
×m}={bbm×
m-(m-1)
,bbm×
m-(m-2)
,
···
,bbm×m},并令序列與序列b相等停止操作,從而得到正向移位加密后的二進制位序列
[0030]
步驟3.2、對正向移位加密后的二進制位序列進行逆向移位加密:
[0031]
首先利用初值x1和參數(shù)μ,對傾斜帳篷混沌映射xk進行300次迭代,得到第300次迭代后的混沌信號x
301
,然后令混沌信號初值z1=x
301
,并從二進制位序列中從尾到頭逆向取m個元素,得到第一個二進制位分組序列,表示為令j=1,進行如下操作:
[0032]
s21、由混沌信號zj和參數(shù)μ,對所述傾斜帳篷混沌映射xk進行單次迭代,得到混沌信號z
j+1
,同時利用混沌信號z
j+1
,分別按照公式direction_shift2=mod(z
1j-z
2j-1,2)、k_shift2=mod(z
1j
+z
2j
+1,m)計算分別得到移位方向direction_shift2、移位個數(shù)k_shift2,
[0033]
其中,z
1j
=[(z
j+1
·
10
m-[z
j+1
·
10m])
·
10000],z
2j
=[(z
j+1
·
10
m-[z
j+1
·
10m])
·
10000];
[0034]
s22、當direction_shift2=0時,將二進制位分組序列中元素循環(huán)左移k_shift2位,得到逆向移位后的二進制位分組序列表示為
[0035]
當direction_shift2=1時,將二進制位分組序列bn{j}中元素循環(huán)右移k_shift2位,得到逆向移位后的二進制位分組序列表示為
[0036]
s23、比較j與m的大小,若j<m-1,則利用逆向移位后的二進制位分組序列中前m-2個元素,按照公式對混沌信號z
j+1
進行調(diào)整,
[0037]
同時將二進制位序列中相應元素替換為逆向移位后的二進制位分組序列中相應元素替換為逆向移位后的二進制位分組序列
[0038]
并令j=j+1,隨后從二進制位序列中逆向取m個相應元素,得到第j個二進制位
分組序列,表示為然后轉(zhuǎn)到步驟s21;
[0039]
若j=m-1,則利用逆向移位后的二進制位分組序列中前m-2個元素,按照公式對混沌信號z
j+1
進行調(diào)整,同時將二進制位序列中相應元素替換為逆向移位后的二進制位分組序列并令j=j+1,隨后從二進制位序列b中逆向取m個相應元素,得到第m個二進制位分組序列然后轉(zhuǎn)到步驟21;
[0040]
若j=m,則將二進制位序列中相應元素替換為逆向移位后的二進制位分組序列bn{m},并令序列c與序列相等,從而得到雙向移位加密后的二進制位序列
[0041]
進一步的,所述循環(huán)移位子過程的種類包括:行循環(huán)移位rowshift、列循環(huán)移位columnshift、斜線循環(huán)移位slashshift、反斜線循環(huán)移位backslashshift和圈循環(huán)移位roundshift。
[0042]
進一步的,所述采用一組隨機數(shù)對待加密數(shù)據(jù)進行所確定的循環(huán)移位子過程,包括:
[0043]
對待加密數(shù)據(jù)從第1行到第t行依次執(zhí)行行循環(huán)移位rowshift,即將第一行執(zhí)行行循環(huán)移位rowshift(1,x(1)),將第2行執(zhí)行行循環(huán)移位rowshift(2,x(2)),依此類推將第t行執(zhí)行行循環(huán)移位rowshift(t,x(t));或
[0044]
對待加密數(shù)據(jù)從第1列到第t列依次執(zhí)行列循環(huán)移位columnshift,即將第一列執(zhí)行列循環(huán)移位columnshift(1,x(1)),將第2列執(zhí)行列循環(huán)移位columnshift(2,x(2)),依此類推將第t列執(zhí)行列循環(huán)移位columnshift(t,x(t));或
[0045]
對待加密數(shù)據(jù)從第1斜線到第t斜線依次執(zhí)行斜線循環(huán)移位slashshift,即將第1斜線執(zhí)行斜線循環(huán)移位slashshift(1,x(1)),將第2斜線執(zhí)行斜線循環(huán)移位slashshift(2,x(2)),依此類推將第t斜線執(zhí)行斜線循環(huán)移位slashshift(t,x(t));或
[0046]
對待加密數(shù)據(jù)從第1反斜線到第t反斜線依次執(zhí)行反斜線循環(huán)移位backslashshift,即將第1反斜線執(zhí)行反斜線循環(huán)移位backslashshift(1,x(1)),將第2反斜線執(zhí)行反斜線循環(huán)移位backslash shift(2,x(2)),依此類推將第t反斜線執(zhí)行反斜線循環(huán)移位backslashshift(t,x(t));或
[0047]
對待加密數(shù)據(jù)從第1圈到第t圈依次執(zhí)行圈循環(huán)移位roundshift,即將第1圈執(zhí)行圈循環(huán)移位roundshift(1,x(1)),將第2圈執(zhí)行圈循環(huán)移位roundshift(2,x(2)),依此類推將第t圈執(zhí)行圈循環(huán)移位roundshift(t,x(t));
[0048]
所述行循環(huán)移位rowshift(t,x(t))表示對待加密數(shù)據(jù)的第t行自左向右平移x(t)
個數(shù)據(jù);
[0049]
所述列循環(huán)移位columnshift(t,x(t))表示對待加密數(shù)據(jù)的第t行自上而下平移x(t)個數(shù)據(jù);
[0050]
所述斜線循環(huán)移位slashshift(t,x(t))表示對待加密數(shù)據(jù)的第t斜線從西南到東北方向循環(huán)移動x(t)個數(shù)據(jù);
[0051]
所述反斜線循環(huán)移位backslashshift(t,x(t))表示對待加密數(shù)據(jù)的第t反斜線沿著西北到東南方向循環(huán)移動x(t)個數(shù)據(jù);
[0052]
所述圈循環(huán)移位roundshift(t,x(t))表示對待加密數(shù)據(jù)的第t圈做順時針循環(huán)轉(zhuǎn)動x(t)個數(shù)據(jù)。
[0053]
本技術(shù)還提出了一種基于動態(tài)循環(huán)位移的地理數(shù)據(jù)加密系統(tǒng),包括多通道地理信息采集模塊與地理信息管理子系統(tǒng),
[0054]
所述多通道地理信息采集模塊用于獲取地理信息數(shù)據(jù);
[0055]
所述地理信息管理子系統(tǒng)包括數(shù)據(jù)加密模塊、數(shù)據(jù)解密模塊、北斗gps監(jiān)測開啟模塊以及權(quán)限認證模塊,
[0056]
所述數(shù)據(jù)加密模塊用于執(zhí)行上述方法的步驟,對地理信息數(shù)據(jù)進行加密操作;
[0057]
所述數(shù)據(jù)解密模塊用于實現(xiàn)地理信息數(shù)據(jù)的解密操作;
[0058]
所述北斗gps監(jiān)測開啟模塊用于實現(xiàn)在特定區(qū)域的特定用戶能夠訪問數(shù)據(jù)的輔助手段,限定只有在特定區(qū)域能夠執(zhí)行操作或者在特定區(qū)域執(zhí)行不同地理信息主管部門自帶加密算法的切換操作,
[0059]
所述權(quán)限認證模塊用于在加密文件獲得授權(quán)且處于當前安全區(qū)域內(nèi)時開啟相關(guān)權(quán)限。
[0060]
進一步的,所述權(quán)限認證模塊卡其的相關(guān)權(quán)限包括地理信息數(shù)據(jù)的上傳、訪問、更新或下載的權(quán)限。
[0061]
本發(fā)明的顯著效果是:基于sm4國密加密算法、雙向移位加密算法和動態(tài)循環(huán)位移加密算法的多元素加密方式,實現(xiàn)了對地理信息數(shù)據(jù)的多層加密處理,使得地理信息數(shù)據(jù)內(nèi)的信息不可篡改,有效避免了分發(fā)數(shù)據(jù)、外發(fā)數(shù)據(jù)時存在的風險,還可避免數(shù)據(jù)的版權(quán)糾紛,在無授權(quán)或單一授權(quán)環(huán)境下無法使用,大大提高了地理信息數(shù)據(jù)的安全性。
附圖說明
[0062]
圖1是本發(fā)明的方法流程圖;
[0063]
圖2是本發(fā)明的系統(tǒng)框圖。
具體實施方式
[0064]
下面結(jié)合附圖對本發(fā)明的具體實施方式以及工作原理作進一步詳細說明。
[0065]
如圖1所示,一種基于動態(tài)循環(huán)位移的地理數(shù)據(jù)加密方法,其具體步驟如下:
[0066]
步驟1、將原始地理信息數(shù)據(jù)文件轉(zhuǎn)換成二進制,得到128位二進制表示的地理信息數(shù)據(jù)a;
[0067]
步驟2、將地理信息數(shù)據(jù)a采用國密算法進行加密,得到加密后的二進制位序列b;
[0068]
本例中,采用sm4算法對地理信息數(shù)據(jù)a進行加密,該算法采用密鑰擴展算法基于
加密密鑰生產(chǎn)輪密鑰,然后采用輪密鑰將128位的二進制數(shù)據(jù)進行迭代處理,之后采用反序變換算法獲得加密后的數(shù)據(jù),具體的:
[0069]
所述輪函數(shù)f采用非線性迭代結(jié)構(gòu),以字為單位進行加密運算,稱一次迭代運算為一輪變換。設輸入為輪密鑰為則輪函數(shù)f為:sm4的輪函數(shù)將輸入部分看做4個32bit長度的數(shù)據(jù),每輪的后3個部分都向左移動32bit的數(shù)據(jù)長度,這三組數(shù)據(jù)異或后進入非線性部分τ和線性部分l,運算后的結(jié)果與第一組數(shù)據(jù)異或置于最右面。如此循環(huán)往復32輪,也就是數(shù)據(jù)一共左轉(zhuǎn)了8個周期,將其中的混亂因素不斷擴散至每個bit位中。
[0070]
步驟3、對二進制位序列b進行雙向移位加密,得到地理信息數(shù)據(jù)c;
[0071]
具體步驟如下:
[0072]
步驟3中對二進制位序列b進行雙向移位加密的具體步驟如下:
[0073]
步驟3.1、對二進制位序列b的正向移位加密:
[0074]
利用外部加密密鑰(α,β),按照公式計算得到傾斜帳篷混沌映射的初值x1,并按照公式計算得到傾斜帳篷混沌映射的μ,其中,pb_1為二進制位序列b中元素為二進制
‘1’
的總個數(shù),pb_0為二進制位序列b中元素為二進制
‘0’
的總個數(shù),m為二進制位序列b的長度,利用初值x1和參數(shù)μ,按照公式對傾斜帳篷混沌映射xk進行200次迭代,得到第200次迭代后的混沌信號x
201
,
[0075]
令混沌信號初值y1=x
201
,并從二進制位序列b中從頭到尾正向取m(本例中m的取值為9)個元素,得到第一個二進制位分組序列bf{1}={b1,b2,
···
,bm},令j=1,進行如下操作:
[0076]
s11、由混沌信號yj和參數(shù)μ,對所示傾斜帳篷混沌映射xk進行單次迭代,得到混沌信號y
j+1
,同時利用混沌信號y
j+1
,按照公式direction_shift1=mod(y
1i-y
2i
,2),k_shift1=mod(y
1i
+y
2i
,9)計算分別得到移位方向direction_shift1、移位個數(shù)k_shift1,
[0077]
其中,y
1j
=[(y
j+1
·
10
m-[y
j+1
·
10m])
·
10000],y
2j
=[(y
j+1
·
10
m-[y
j+1
·
10m])
·
10000];
[0078]
s12、當direction_shift1=0時,將二進制位分組序列bf{j}中元素循環(huán)左移k_shift1位,得到正向移位后的二進制位分組序列表示為;
[0079]
s13、比較j與m的大小,若j<m-1,則利用正向移位后的二進制位分組序列中前m-2個元素,按照公式對混沌信號y
j+1
進行調(diào)
整,
[0080]
其中,bin2dec({bbm×
j-(m-1)
,bbm×
j-(m-2)
,
···
,bbm×
j-2
})操作表示將二進制位分組序列{bbm×
j-(m-1)
,bbm×
j-(m-2)
,
···
,bbm×j}轉(zhuǎn)換為數(shù)值型數(shù)據(jù),同時按照公式{b
(m-1)
×
j-(m-2)
,b
(m-1)
×
j-(m-3)
,
···
,b
(m-1)
×j,b
(m-1)
×
j+1
}={bbm×
j-(m-1)
,bbm×
j-(m-2)
,
···
,bbm×j}將二進制位序列b中相應元素替換為正向移位后的二進制位分組序列,并令j=j+1,隨后從二進制位序列b中正向取m個相應元素,得到第j個二進制位分組序列bf{m}={b
(m-1)
×
m-(m-1)
,b
(m-1)
×
m-(m-2)
,
···
,b
(m-1)
×m},然后轉(zhuǎn)到步驟s11;
[0081]
若j=m-1,則利用正向移位后的二進制位分組序列中前m-2個元素,按照公式對混沌信號y
j+1
進行調(diào)整,同時將二進制位序列b中相應元素替換為正向移位后的二進制位分組序列替換公式為{b
(m-1)
×
j-(m-2)
,b
(m-1)
×
j-(m-3)
,
···
,b
(m-1)
×j,b
(m-1)
×
j+1
}={bbm×
j-(m-1)
,bbm×
j-(m-2)
,
···
,bbm×j},并令j=j+1,隨后從二進制位序列b中正向取m個相應元素,得到第m個二進制位分組序列,表示為bf{m}={b
(m-1)
×
m-(m-1)
,b
(m-1)
×
m-(m-2)
,
···
,b
(m-1)
×m},然后轉(zhuǎn)到步驟s11;
[0082]
若j=m,則將二進制位序列b中相應元素替換為正向移位后的二進制位分組序列替換公式為{b
(m-1)
×
m-(m-1)
,b
(m-1)
×
m-(m-2)
,
···
,b
(m-1)
×m}={bbm×
m-(m-1)
,bbm×
m-(m-2)
,
···
,bbm×m},并令序列與序列b相等停止操作,從而得到正向移位加密后的二進制位序列
[0083]
步驟3.2、對正向移位加密后的二進制位序列進行逆向移位加密:
[0084]
首先利用初值x1和參數(shù)μ,對傾斜帳篷混沌映射xk進行300次迭代,得到第300次迭代后的混沌信號x
301
,然后令混沌信號初值z1=x
301
,并從二進制位序列中從尾到頭逆向取m個元素,得到第一個二進制位分組序列,表示為令j=1,進行如下操作:
[0085]
s21、由混沌信號zj和參數(shù)μ,對所述傾斜帳篷混沌映射xk進行單次迭代,得到混沌信號z
j+1
,同時利用混沌信號z
j+1
,分別按照公式direction_shift2=mod(z
1j-z
2j-1,2)、k_shift2=mod(z
1j
+z
2j
+1,9)計算分別得到移位方向direction_shift2、移位個數(shù)k_shift2,
[0086]
其中,z
1j
=[(z
j+1
·
10
m-[z
j+1
·
10m])
·
10000],z
2j
=[(z
j+1
·
10
m-[z
j+1
·
10m])
·
10000];
[0087]
s22、當direction_shift2=0時,將二進制位分組序列中元素循環(huán)左移k_shift2位,得到逆向移位后的二進制位分組序列表示為
[0088]
當direction_shift2=1時,將二進制位分組序列bn{j}中元素循環(huán)右移k_shift2
位,得到逆向移位后的二進制位分組序列表示為
[0089]
s23、比較j與m的大小,若j<m-1,則利用逆向移位后的二進制位分組序列中前m-2個元素,按照公式對混沌信號z
j+1
進行調(diào)整,
[0090]
同時將二進制位序列中相應元素替換為逆向移位后的二進制位分組序列中相應元素替換為逆向移位后的二進制位分組序列
[0091]
并令j=j+1,隨后從二進制位序列中逆向取m個相應元素,得到第j個二進制位分組序列,表示為然后轉(zhuǎn)到步驟s21;
[0092]
若j=m-1,則利用逆向移位后的二進制位分組序列中前m-2個元素,按照公式對混沌信號z
j+1
進行調(diào)整,同時將二進制位序列中相應元素替換為逆向移位后的二進制位分組序列列并令j=j+1,隨后從二進制位序列b中逆向取m個相應元素,得到第m個二進制位分組序列然后轉(zhuǎn)到步驟21;
[0093]
若j=m,則將二進制位序列中相應元素替換為逆向移位后的二進制位分組序列bn{m},并令序列c與序列相等,從而得到雙向移位加密后的二進制位序列
[0094]
步驟4、對于地理信息數(shù)據(jù)c,輸入n個初始化種子以及n個循環(huán)移位子過程的疊加順序s1,s2,
···
,sn;
[0095]
步驟5、令i=1;
[0096]
步驟6、抽取和si;
[0097]
步驟7、根據(jù)抽取si的值確定循環(huán)移位子過程的種類,將作為隨機數(shù)種子生成一組隨機數(shù),記為[x(1),x(2),
···
,x(t)],并采用所述一組隨機數(shù)對待加密數(shù)據(jù)進行所確定的循環(huán)移位子過程,每個所述隨機數(shù)為si對應的循環(huán)移位子過程的移位步數(shù),是第i行,或第i列,或第i斜線,或第i反斜線,或第i圈的移位步數(shù);其中,t的值根據(jù)循環(huán)移位子過程的種類及輸入數(shù)據(jù)的尺寸自動確定;
[0098]
本例中,所述循環(huán)移位子過程的種類包括:行循環(huán)移位rowshift、列循環(huán)移位columnshift、斜線循環(huán)移位slashshift、反斜線循環(huán)移位backslashshift和圈循環(huán)移位roundshift。
[0099]
所述采用一組隨機數(shù)對待加密數(shù)據(jù)進行所確定的循環(huán)移位子過程,包括:
[0100]
第一種方式:對待加密數(shù)據(jù)從第1行到第t行依次執(zhí)行行循環(huán)移位rowshift,即將第一行執(zhí)行行循環(huán)移位rowshift(1,x(1)),將第2行執(zhí)行行循環(huán)移位rowshift(2,x(2)),依此類推將第t行執(zhí)行行循環(huán)移位rowshift(t,x(t));
[0101]
第二種方式:對待加密數(shù)據(jù)從第1列到第t列依次執(zhí)行列循環(huán)移位columnshift,即將第一列執(zhí)行列循環(huán)移位columnshift(1,x(1)),將第2列執(zhí)行列循環(huán)移位columnshift(2,x(2)),依此類推將第t列執(zhí)行列循環(huán)移位columnshift(t,x(t));
[0102]
第三種方式:對待加密數(shù)據(jù)從第1斜線到第t斜線依次執(zhí)行斜線循環(huán)移位slashshift,即將第1斜線執(zhí)行斜線循環(huán)移位slashshift(1,x(1)),將第2斜線執(zhí)行斜線循環(huán)移位slashshift(2,x(2)),依此類推將第t斜線執(zhí)行斜線循環(huán)移位slashshift(t,x(t));
[0103]
第四種方式:對待加密數(shù)據(jù)從第1反斜線到第t反斜線依次執(zhí)行反斜線循環(huán)移位backslashshift,即將第1反斜線執(zhí)行反斜線循環(huán)移位backslashshift(1,x(1)),將第2反斜線執(zhí)行反斜線循環(huán)移位backslash shift(2,x(2)),依此類推將第t反斜線執(zhí)行反斜線循環(huán)移位backslashshift(t,x(t));
[0104]
第五種方式:對待加密數(shù)據(jù)從第1圈到第t圈依次執(zhí)行圈循環(huán)移位roundshift,即將第1圈執(zhí)行圈循環(huán)移位roundshift(1,x(1)),將第2圈執(zhí)行圈循環(huán)移位roundshift(2,x(2)),依此類推將第t圈執(zhí)行圈循環(huán)移位roundshift(t,x(t));
[0105]
其中,所述行循環(huán)移位rowshift(t,x(t))表示對待加密數(shù)據(jù)的第t行自左向右平移x(t)個數(shù)據(jù);所述列循環(huán)移位columnshift(t,x(t))表示對待加密數(shù)據(jù)的第t行自上而下平移x(t)個數(shù)據(jù);所述斜線循環(huán)移位slashshift(t,x(t))表示對待加密數(shù)據(jù)的第t斜線從西南到東北方向循環(huán)移動x(t)個數(shù)據(jù);所述反斜線循環(huán)移位backslashshift(t,x(t))表示對待加密數(shù)據(jù)的第t反斜線沿著西北到東南方向循環(huán)移動x(t)個數(shù)據(jù);所述圈循環(huán)移位roundshift(t,x(t))表示對待加密數(shù)據(jù)的第t圈做順時針循環(huán)轉(zhuǎn)動x(t)個數(shù)據(jù)。
[0106]
步驟8、令i=i+1,并返回步驟6循環(huán)進行,直至i=n,獲得所需的地理信息加密數(shù)據(jù)d。
[0107]
本實施例還提出了一種基于動態(tài)循環(huán)位移的地理數(shù)據(jù)加密系統(tǒng),包括多通道地理信息采集模塊與地理信息管理子系統(tǒng),如圖2所示:
[0108]
所述多通道地理信息采集模塊用于獲取地理信息數(shù)據(jù);
[0109]
所述地理信息管理子系統(tǒng)包括數(shù)據(jù)存儲模塊、數(shù)據(jù)加密模塊(加密芯片)、數(shù)據(jù)解密模塊、北斗gps監(jiān)測開啟模塊以及權(quán)限認證模塊,
[0110]
所述數(shù)據(jù)存儲模塊用于存儲獲取的地理信息數(shù)據(jù);
[0111]
所述數(shù)據(jù)加密模塊也即是加密芯片用于執(zhí)行上述方法的步驟,對地理信息數(shù)據(jù)進行加密操作;
[0112]
所述數(shù)據(jù)解密模塊用于實現(xiàn)地理信息數(shù)據(jù)的解密操作;
[0113]
所述北斗gps監(jiān)測開啟模塊用于實現(xiàn)在特定區(qū)域的特定用戶能夠訪問數(shù)據(jù)的輔助手段,限定只有在特定區(qū)域能夠執(zhí)行操作或者在特定區(qū)域執(zhí)行不同地理信息主管部門自帶加密算法的切換操作,
[0114]
所述權(quán)限認證模塊用于在加密文件獲得授權(quán)且處于當前安全區(qū)域內(nèi)時開啟客戶端的相關(guān)權(quán)限。
[0115]
進一步的,所述權(quán)限認證模塊卡其的相關(guān)權(quán)限包括地理信息數(shù)據(jù)的上傳、訪問、更
新或下載的權(quán)限。
[0116]
本實施例基于sm4國密加密算法、雙向移位加密算法和動態(tài)循環(huán)位移加密算法的多元素加密方式,實現(xiàn)了對地理信息數(shù)據(jù)的多層加密處理,使得地理信息數(shù)據(jù)內(nèi)的信息不可篡改,有效避免了分發(fā)數(shù)據(jù)、外發(fā)數(shù)據(jù)時存在的風險,還可避免數(shù)據(jù)的版權(quán)糾紛,在無授權(quán)或單一授權(quán)環(huán)境下無法使用,大大提高了地理信息數(shù)據(jù)的安全性。
[0117]
以上對本發(fā)明所提供的技術(shù)方案進行了詳細介紹。本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。
技術(shù)特征:
1.一種基于動態(tài)循環(huán)位移的地理數(shù)據(jù)加密方法,其特征在于包括如下步驟:步驟1、將原始地理信息數(shù)據(jù)文件轉(zhuǎn)換成二進制,得到128位二進制表示的地理信息數(shù)據(jù)a;步驟2、將地理信息數(shù)據(jù)a采用國密算法進行加密,得到加密后的二進制位序列b;步驟3、對二進制位序列b進行雙向移位加密,得到地理信息數(shù)據(jù)c;步驟4、對于地理信息數(shù)據(jù)c,輸入n個初始化種子以及n個循環(huán)移位子過程的疊加順序s1,s2,
···
,s
n
;步驟5、令i=1;步驟6、抽取和s
i
;步驟7、根據(jù)抽取s
i
的值確定循環(huán)移位子過程的種類,將作為隨機數(shù)種子生成一組隨機數(shù),記為[x(1),x(2),
···
,x(t)],并采用所述一組隨機數(shù)對待加密數(shù)據(jù)進行所確定的循環(huán)移位子過程,每個所述隨機數(shù)為s
i
對應的循環(huán)移位子過程的移位步數(shù),是第i行,或第i列,或第i斜線,或第i反斜線,或第i圈的移位步數(shù);其中,t的值根據(jù)循環(huán)移位子過程的種類及輸入數(shù)據(jù)的尺寸自動確定;步驟8、令i=i+1,并返回步驟6循環(huán)進行,直至i=n,獲得所需的地理信息加密數(shù)據(jù)d。2.根據(jù)權(quán)利要求1所述的基于動態(tài)循環(huán)位移的地理數(shù)據(jù)加密方法,其特征在于:步驟2中采用sm4算法對地理信息數(shù)據(jù)a進行加密。3.根據(jù)權(quán)利要求1所述的基于動態(tài)循環(huán)位移的地理數(shù)據(jù)加密方法,其特征在于:步驟3中對二進制位序列b進行雙向移位加密的具體步驟如下:步驟3.1、對二進制位序列b的正向移位加密:利用外部加密密鑰(α,β),按照公式計算得到傾斜帳篷混沌映射的初值x1,并按照公式計算得到傾斜帳篷混沌映射的μ,其中,pb_1為二進制位序列b中元素為二進制
‘1’
的總個數(shù),pb_0為二進制位序列b中元素為二進制
‘0’
的總個數(shù),m為二進制位序列b的長度,利用初值x1和參數(shù)μ,按照公式對傾斜帳篷混沌映射x
k
進行200次迭代,得到第200次迭代后的混沌信號x
201
,令混沌信號初值y1=x
201
,并從二進制位序列b中從頭到尾正向取m個元素,得到第一個二進制位分組序列bf{1}={b1,b2,
···
,b
m
},令j=1,進行如下操作:s11、由混沌信號y
j
和參數(shù)μ,對所示傾斜帳篷混沌映射x
k
進行單次迭代,得到混沌信號y
j+1
,同時利用混沌信號y
j+1
,按照公式direction_shift1=mod(y
1i-y
2i
,2),k_shift1=mod(y
1i
+y
2i
,9)計算分別得到移位方向direction_shift1、移位個數(shù)k_shift1,其中,y
1j
=[(y
j+1
·
10
m-[y
j+1
·
10
m
])
·
10000],y
2j
=[(y
j+1
·
10
m-[y
j+1
·
10
m
])
·
10000];
s12、當direction_shift1=0時,將二進制位分組序列bf{j}中元素循環(huán)左移k_shift1位,得到正向移位后的二進制位分組序列表示為;s13、比較j與m的大小,若j<m-1,則利用正向移位后的二進制位分組序列中前m-2個元素,按照公式對混沌信號y
j+1
進行調(diào)整,其中,bin2dec({bb
m
×
j-(m-1)
,bb
m
×
j-(m-2)
,
···
,bb
m
×
j-2
})操作表示將二進制位分組序列{bb
m
×
j-(m-1)
,bb
m
×
j-(m-2)
,
···
,bb
m
×
j
}轉(zhuǎn)換為數(shù)值型數(shù)據(jù),同時按照公式{b
(m-1)
×
j-(m-2)
,b
(m-1)
×
j-(m-3)
,
···
,b
(m-1)
×
j
,b
(m-1)
×
j+1
}={bb
m
×
j-(m-1)
,bb
m
×
j-(m-2)
,
···
,bb
m
×
j
}將二進制位序列b中相應元素替換為正向移位后的二進制位分組序列,并令j=j+1,隨后從二進制位序列b中正向取m個相應元素,得到第j個二進制位分組序列bf{m}={b
(m-1)
×
m-(m-1)
,b
(m-1)
×
m-(m-2)
,
···
,b
(m-1)
×
m
},然后轉(zhuǎn)到步驟s11;若j=m-1,則利用正向移位后的二進制位分組序列中前m-2個元素,按照公式對混沌信號y
j+1
進行調(diào)整,同時將二進制位序列b中相應元素替換為正向移位后的二進制位分組序列替換公式為{b
(m-1)
×
j-(m-2)
,b
(m-1)
×
j-(m-3)
,
···
,b
(m-1)
×
j
,b
(m-1)
×
j+1
}={bb
m
×
j-(m-1)
,bb
m
×
j-(m-2)
,
···
,bb
m
×
j
},并令j=j+1,隨后從二進制位序列b中正向取m個相應元素,得到第m個二進制位分組序列,表示為bf{m}={b
(m-1)
×
m-(m-1)
,b
(m-1)
×
m-(m-2)
,
···
,b
(m-1)
×
m
},然后轉(zhuǎn)到步驟s11;若j=m,則將二進制位序列b中相應元素替換為正向移位后的二進制位分組序列替換公式為{b
(m-1)
×
m-(m-1)
,b
(m-1)
×
m-(m-2)
,
···
,b
(m-1)
×
m
}={bb
m
×
m-(m-1)
,bb
m
×
m-(m-2)
,
···
,bb
m
×
m
},并令序列與序列b相等停止操作,從而得到正向移位加密后的二進制位序列步驟3.2、對正向移位加密后的二進制位序列進行逆向移位加密:首先利用初值x1和參數(shù)μ,對傾斜帳篷混沌映射x
k
進行300次迭代,得到第300次迭代后的混沌信號x
301
,然后令混沌信號初值z1=x
301
,并從二進制位序列中從尾到頭逆向取m個元素,得到第一個二進制位分組序列,表示為令j=1,進行如下操作:s21、由混沌信號z
j
和參數(shù)μ,對所述傾斜帳篷混沌映射x
k
進行單次迭代,得到混沌信號z
j+1
,同時利用混沌信號z
j+1
,分別按照公式direction_shift2=mod(z
1j-z
2j-1,2)、k_shift2=mod(z
1j
+z
2j
+1,9)計算分別得到移位方向direction_shift2、移位個數(shù)k_shift2,其中,z
1j
=[(z
j+1
·
10
m-[z
j+1
·
10
m
])
·
10000],z
2j
=[(z
j+1
·
10
m-[z
j+1
·
10
m
])
·
10000];s22、當direction_shift2=0時,將二進制位分組序列中元素循環(huán)左移k_shift2
位,得到逆向移位后的二進制位分組序列表示為當direction_shift2=1時,將二進制位分組序列bn{j}中元素循環(huán)右移k_shift2位,得到逆向移位后的二進制位分組序列表示為s23、比較j與m的大小,若j<m-1,則利用逆向移位后的二進制位分組序列中前m-2個元素,按照公式對混沌信號z
j+1
進行調(diào)整,同時將二進制位序列中相應元素替換為逆向移位后的二進制位分組序列并令j=j+1,隨后從二進制位序列中逆向取m個相應元素,得到第j個二進制位分組序列,表示為然后轉(zhuǎn)到步驟s21;若j=m-1,則利用逆向移位后的二進制位分組序列中前m-2個元素,按照公式對混沌信號z
j+1
進行調(diào)整,同時將二進制位序列中相應元素替換為逆向移位后的二進制位分組序列并令j=j+1,隨后從二進制位序列b中逆向取m個相應元素,得到第m個二進制位分組序列然后轉(zhuǎn)到步驟21;若j=m,則將二進制位序列中相應元素替換為逆向移位后的二進制位分組序列bn{m},并令序列c與序列相等,從而得到雙向移位加密后的二進制位序列4.根據(jù)權(quán)利要求1所述的基于動態(tài)循環(huán)位移的地理數(shù)據(jù)加密方法,其特征在于:所述循環(huán)移位子過程的種類包括:行循環(huán)移位rowshift、列循環(huán)移位columnshift、斜線循環(huán)移位slashshift、反斜線循環(huán)移位backslashshift和圈循環(huán)移位roundshift。5.根據(jù)權(quán)利要求4所述的基于動態(tài)循環(huán)位移的地理數(shù)據(jù)加密方法,其特征在于:所述采用一組隨機數(shù)對待加密數(shù)據(jù)進行所確定的循環(huán)移位子過程,包括:對待加密數(shù)據(jù)從第1行到第t行依次執(zhí)行行循環(huán)移位rowshift,即將第一行執(zhí)行行循環(huán)移位rowshift(1,x(1)),將第2行執(zhí)行行循環(huán)移位rowshift(2,x(2)),依此類推將第t行執(zhí)行行循環(huán)移位rowshift(t,x(t));或
對待加密數(shù)據(jù)從第1列到第t列依次執(zhí)行列循環(huán)移位columnshift,即將第一列執(zhí)行列循環(huán)移位columnshift(1,x(1)),將第2列執(zhí)行列循環(huán)移位columnshift(2,x(2)),依此類推將第t列執(zhí)行列循環(huán)移位columnshift(t,x(t));或?qū)Υ用軘?shù)據(jù)從第1斜線到第t斜線依次執(zhí)行斜線循環(huán)移位slashshift,即將第1斜線執(zhí)行斜線循環(huán)移位slashshift(1,x(1)),將第2斜線執(zhí)行斜線循環(huán)移位slashshift(2,x(2)),依此類推將第t斜線執(zhí)行斜線循環(huán)移位slashshift(t,x(t));或?qū)Υ用軘?shù)據(jù)從第1反斜線到第t反斜線依次執(zhí)行反斜線循環(huán)移位backslashshift,即將第1反斜線執(zhí)行反斜線循環(huán)移位backslashshift(1,x(1)),將第2反斜線執(zhí)行反斜線循環(huán)移位backslash shift(2,x(2)),依此類推將第t反斜線執(zhí)行反斜線循環(huán)移位backslashshift(t,x(t));或?qū)Υ用軘?shù)據(jù)從第1圈到第t圈依次執(zhí)行圈循環(huán)移位roundshift,即將第1圈執(zhí)行圈循環(huán)移位roundshift(1,x(1)),將第2圈執(zhí)行圈循環(huán)移位roundshift(2,x(2)),依此類推將第t圈執(zhí)行圈循環(huán)移位roundshift(t,x(t));所述行循環(huán)移位rowshift(t,x(t))表示對待加密數(shù)據(jù)的第t行自左向右平移x(t)個數(shù)據(jù);所述列循環(huán)移位columnshift(t,x(t))表示對待加密數(shù)據(jù)的第t行自上而下平移x(t)個數(shù)據(jù);所述斜線循環(huán)移位slashshift(t,x(t))表示對待加密數(shù)據(jù)的第t斜線從西南到東北方向循環(huán)移動x(t)個數(shù)據(jù);所述反斜線循環(huán)移位backslashshift(t,x(t))表示對待加密數(shù)據(jù)的第t反斜線沿著西北到東南方向循環(huán)移動x(t)個數(shù)據(jù);所述圈循環(huán)移位roundshift(t,x(t))表示對待加密數(shù)據(jù)的第t圈做順時針循環(huán)轉(zhuǎn)動x(t)個數(shù)據(jù)。6.一種基于動態(tài)循環(huán)位移的地理數(shù)據(jù)加密系統(tǒng),其特征在于:包括多通道地理信息采集模塊與地理信息管理子系統(tǒng),所述多通道地理信息采集模塊用于獲取地理信息數(shù)據(jù);所述地理信息管理子系統(tǒng)包括數(shù)據(jù)加密模塊、數(shù)據(jù)解密模塊、北斗gps監(jiān)測開啟模塊以及權(quán)限認證模塊,所述數(shù)據(jù)加密模塊用于執(zhí)行權(quán)利要求1-5任一項所述方法的步驟,對地理信息數(shù)據(jù)進行加密操作;所述數(shù)據(jù)解密模塊用于實現(xiàn)地理信息數(shù)據(jù)的解密操作;所述北斗gps監(jiān)測開啟模塊用于實現(xiàn)在特定區(qū)域的特定用戶能夠訪問數(shù)據(jù)的輔助手段,限定只有在特定區(qū)域能夠執(zhí)行操作或者在特定區(qū)域執(zhí)行不同地理信息主管部門自帶加密算法的切換操作,所述權(quán)限認證模塊用于在加密文件獲得授權(quán)且處于當前安全區(qū)域內(nèi)時開啟相關(guān)權(quán)限。7.根據(jù)權(quán)利要求6所述的基于動態(tài)循環(huán)位移的地理數(shù)據(jù)加密系統(tǒng),其特征在于:所述權(quán)限認證模塊卡其的相關(guān)權(quán)限包括地理信息數(shù)據(jù)的上傳、訪問、更新或下載的權(quán)限。
技術(shù)總結(jié)
本發(fā)明公開了一種基于動態(tài)循環(huán)位移的地理數(shù)據(jù)加密系統(tǒng)及方法,方法包括:將原始地理信息數(shù)據(jù)文件轉(zhuǎn)換成二進制生成數(shù)據(jù)A,將地理信息數(shù)據(jù)A采用國密算法進行加密,得到加密后的二進制位序列B;對二進制位序列B進行雙向移位加密,得到地理信息數(shù)據(jù)C;對于地理信息數(shù)據(jù)C,進行循環(huán)移位加密處理獲得所需的地理信息加密數(shù)據(jù)D。其顯著效果是:實現(xiàn)了對地理信息數(shù)據(jù)的多層加密處理,使得地理信息數(shù)據(jù)內(nèi)的信息不可篡改,有效避免了分發(fā)數(shù)據(jù)、外發(fā)數(shù)據(jù)時存在的風險,還可避免數(shù)據(jù)的版權(quán)糾紛,在無授權(quán)或單一授權(quán)環(huán)境下無法使用,大大提高了地理信息數(shù)據(jù)的安全性。息數(shù)據(jù)的安全性。息數(shù)據(jù)的安全性。
