本文作者:kaifamei

基于动态循环位移的地理数据加密系统及方法与流程

更新时间:2025-03-23 13:00:05 0条评论

基于动态循环位移的地理数据加密系统及方法与流程



1.本发明涉及到地理信息数据处理技术领域,具体涉及一种基于动态循环位移的地理数据加密系统及方法。


背景技术:



2.随着信息技术的迅速发展和地理信息的广泛应用,秘密监测和地理信息制图的安全管理面临着严峻的挑战。一些单位制作和使用地理信息进行监视和秘密测绘没有保密意义,测绘地理信息载体类型和形式较多,数字化成果应用广泛,传播渠道更加多样,这对地理信息测绘和秘密测绘的安全性提出了严峻的挑战。地理信息安全是地理信息机构面临的一个日益复杂的问题:
3.(1)分发数据存在着被二次传播、挪为它用等行为;
4.(2)外发数据在第三方造成泄露,无法断定泄密责任问题;
5.(3)数据出现版权纠纷等情况,无法有效维护权益和责任界定;
6.(4)外发数据加解密操作只有一层加密,安全级别系数较低。


技术实现要素:



7.针对现有技术的不足,本发明的目的是提供一种基于动态循环位移的地理数据加密系统及方法,以实现地理信息数据的加密,避免泄密和篡改。
8.为达到上述目的,本发明采用的技术方案如下:
9.一种基于动态循环位移的地理数据加密方法,其关键在于包括如下步骤:
10.步骤1、将原始地理信息数据文件转换成二进制,得到128位二进制表示的地理信息数据a;
11.步骤2、将地理信息数据a采用国密算法进行加密,得到加密后的二进制位序列b;
12.步骤3、对二进制位序列b进行双向移位加密,得到地理信息数据c;
13.步骤4、对于地理信息数据c,输入n个初始化种子以及n个循环移位子过程的叠加顺序s1,s2,
···
,sn;
14.步骤5、令i=1;
15.步骤6、抽取和si;
16.步骤7、根据抽取si的值确定循环移位子过程的种类,将作为随机数种子生成一组随机数,记为[x(1),x(2),
···
,x(t)],并采用所述一组随机数对待加密数据进行所确定的循环移位子过程,每个所述随机数为si对应的循环移位子过程的移位步数,是第i行,或第i列,或第i斜线,或第i反斜线,或第i圈的移位步数;其中,t的值根据循环移位子过程的种类及输入数据的尺寸自动确定;
[0017]
步骤8、令i=i+1,并返回步骤6循环进行,直至i=n,获得所需的地理信息加密数据d。
[0018]
进一步的,步骤2中采用sm4算法对地理信息数据a进行加密。
[0019]
进一步的,步骤3中对二进制位序列b进行双向移位加密的具体步骤如下:
[0020]
步骤3.1、对二进制位序列b的正向移位加密:
[0021]
利用外部加密密钥(α,β),按照公式计算得到倾斜帐篷混沌映射的初值x1,并按照公式计算得到倾斜帐篷混沌映射的μ,其中,pb_1为二进制位序列b中元素为二进制
‘1’
的总个数,pb_0为二进制位序列b中元素为二进制
‘0’
的总个数,m为二进制位序列b的长度,利用初值x1和参数μ,按照公式对倾斜帐篷混沌映射xk进行200次迭代,得到第200次迭代后的混沌信号x
201

[0022]
令混沌信号初值y1=x
201
,并从二进制位序列b中从头到尾正向取m个元素,得到第一个二进制位分组序列bf{1}={b1,b2,
···
,bm},令j=1,进行如下操作:
[0023]
s11、由混沌信号yj和参数μ,对所示倾斜帐篷混沌映射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、移位个数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}中元素循环左移k_shift1位,得到正向移位后的二进制位分组序列表示为;
[0026]
s13、比较j与m的大小,若j<m-1,则利用正向移位后的二进制位分组序列中前m-2个元素,按照公式对混沌信号y
j+1
进行调整,
[0027]
其中,bin2dec({bbm×
j-(m-1)
,bbm×
j-(m-2)
,
···
,bbm×
j-2
})操作表示将二进制位分组序列{bbm×
j-(m-1)
,bbm×
j-(m-2)
,
···
,bbm×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},然后转到步骤s11;
[0028]
若j=m-1,则利用正向移位后的二进制位分组序列中前m-2个元素,按照公式对混沌信号y
j+1
进行调
整,同时将二进制位序列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},然后转到步骤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和参数μ,对倾斜帐篷混沌映射xk进行300次迭代,得到第300次迭代后的混沌信号x
301
,然后令混沌信号初值z1=x
301
,并从二进制位序列中从尾到头逆向取m个元素,得到第一个二进制位分组序列,表示为令j=1,进行如下操作:
[0032]
s21、由混沌信号zj和参数μ,对所述倾斜帐篷混沌映射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、移位个数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时,将二进制位分组序列中元素循环左移k_shift2位,得到逆向移位后的二进制位分组序列表示为
[0035]
当direction_shift2=1时,将二进制位分组序列bn{j}中元素循环右移k_shift2位,得到逆向移位后的二进制位分组序列表示为
[0036]
s23、比较j与m的大小,若j<m-1,则利用逆向移位后的二进制位分组序列中前m-2个元素,按照公式对混沌信号z
j+1
进行调整,
[0037]
同时将二进制位序列中相应元素替换为逆向移位后的二进制位分组序列中相应元素替换为逆向移位后的二进制位分组序列
[0038]
并令j=j+1,随后从二进制位序列中逆向取m个相应元素,得到第j个二进制位
分组序列,表示为然后转到步骤s21;
[0039]
若j=m-1,则利用逆向移位后的二进制位分组序列中前m-2个元素,按照公式对混沌信号z
j+1
进行调整,同时将二进制位序列中相应元素替换为逆向移位后的二进制位分组序列并令j=j+1,随后从二进制位序列b中逆向取m个相应元素,得到第m个二进制位分组序列然后转到步骤21;
[0040]
若j=m,则将二进制位序列中相应元素替换为逆向移位后的二进制位分组序列bn{m},并令序列c与序列相等,从而得到双向移位加密后的二进制位序列
[0041]
进一步的,所述循环移位子过程的种类包括:行循环移位rowshift、列循环移位columnshift、斜线循环移位slashshift、反斜线循环移位backslashshift和圈循环移位roundshift。
[0042]
进一步的,所述采用一组随机数对待加密数据进行所确定的循环移位子过程,包括:
[0043]
对待加密数据从第1行到第t行依次执行行循环移位rowshift,即将第一行执行行循环移位rowshift(1,x(1)),将第2行执行行循环移位rowshift(2,x(2)),依此类推将第t行执行行循环移位rowshift(t,x(t));或
[0044]
对待加密数据从第1列到第t列依次执行列循环移位columnshift,即将第一列执行列循环移位columnshift(1,x(1)),将第2列执行列循环移位columnshift(2,x(2)),依此类推将第t列执行列循环移位columnshift(t,x(t));或
[0045]
对待加密数据从第1斜线到第t斜线依次执行斜线循环移位slashshift,即将第1斜线执行斜线循环移位slashshift(1,x(1)),将第2斜线执行斜线循环移位slashshift(2,x(2)),依此类推将第t斜线执行斜线循环移位slashshift(t,x(t));或
[0046]
对待加密数据从第1反斜线到第t反斜线依次执行反斜线循环移位backslashshift,即将第1反斜线执行反斜线循环移位backslashshift(1,x(1)),将第2反斜线执行反斜线循环移位backslash shift(2,x(2)),依此类推将第t反斜线执行反斜线循环移位backslashshift(t,x(t));或
[0047]
对待加密数据从第1圈到第t圈依次执行圈循环移位roundshift,即将第1圈执行圈循环移位roundshift(1,x(1)),将第2圈执行圈循环移位roundshift(2,x(2)),依此类推将第t圈执行圈循环移位roundshift(t,x(t));
[0048]
所述行循环移位rowshift(t,x(t))表示对待加密数据的第t行自左向右平移x(t)
个数据;
[0049]
所述列循环移位columnshift(t,x(t))表示对待加密数据的第t行自上而下平移x(t)个数据;
[0050]
所述斜线循环移位slashshift(t,x(t))表示对待加密数据的第t斜线从西南到东北方向循环移动x(t)个数据;
[0051]
所述反斜线循环移位backslashshift(t,x(t))表示对待加密数据的第t反斜线沿着西北到东南方向循环移动x(t)个数据;
[0052]
所述圈循环移位roundshift(t,x(t))表示对待加密数据的第t圈做顺时针循环转动x(t)个数据。
[0053]
本技术还提出了一种基于动态循环位移的地理数据加密系统,包括多通道地理信息采集模块与地理信息管理子系统,
[0054]
所述多通道地理信息采集模块用于获取地理信息数据;
[0055]
所述地理信息管理子系统包括数据加密模块、数据解密模块、北斗gps监测开启模块以及权限认证模块,
[0056]
所述数据加密模块用于执行上述方法的步骤,对地理信息数据进行加密操作;
[0057]
所述数据解密模块用于实现地理信息数据的解密操作;
[0058]
所述北斗gps监测开启模块用于实现在特定区域的特定用户能够访问数据的辅助手段,限定只有在特定区域能够执行操作或者在特定区域执行不同地理信息主管部门自带加密算法的切换操作,
[0059]
所述权限认证模块用于在加密文件获得授权且处于当前安全区域内时开启相关权限。
[0060]
进一步的,所述权限认证模块卡其的相关权限包括地理信息数据的上传、访问、更新或下载的权限。
[0061]
本发明的显著效果是:基于sm4国密加密算法、双向移位加密算法和动态循环位移加密算法的多元素加密方式,实现了对地理信息数据的多层加密处理,使得地理信息数据内的信息不可篡改,有效避免了分发数据、外发数据时存在的风险,还可避免数据的版权纠纷,在无授权或单一授权环境下无法使用,大大提高了地理信息数据的安全性。
附图说明
[0062]
图1是本发明的方法流程图;
[0063]
图2是本发明的系统框图。
具体实施方式
[0064]
下面结合附图对本发明的具体实施方式以及工作原理作进一步详细说明。
[0065]
如图1所示,一种基于动态循环位移的地理数据加密方法,其具体步骤如下:
[0066]
步骤1、将原始地理信息数据文件转换成二进制,得到128位二进制表示的地理信息数据a;
[0067]
步骤2、将地理信息数据a采用国密算法进行加密,得到加密后的二进制位序列b;
[0068]
本例中,采用sm4算法对地理信息数据a进行加密,该算法采用密钥扩展算法基于
加密密钥生产轮密钥,然后采用轮密钥将128位的二进制数据进行迭代处理,之后采用反序变换算法获得加密后的数据,具体的:
[0069]
所述轮函数f采用非线性迭代结构,以字为单位进行加密运算,称一次迭代运算为一轮变换。设输入为轮密钥为则轮函数f为:sm4的轮函数将输入部分看做4个32bit长度的数据,每轮的后3个部分都向左移动32bit的数据长度,这三组数据异或后进入非线性部分τ和线性部分l,运算后的结果与第一组数据异或置于最右面。如此循环往复32轮,也就是数据一共左转了8个周期,将其中的混乱因素不断扩散至每个bit位中。
[0070]
步骤3、对二进制位序列b进行双向移位加密,得到地理信息数据c;
[0071]
具体步骤如下:
[0072]
步骤3中对二进制位序列b进行双向移位加密的具体步骤如下:
[0073]
步骤3.1、对二进制位序列b的正向移位加密:
[0074]
利用外部加密密钥(α,β),按照公式计算得到倾斜帐篷混沌映射的初值x1,并按照公式计算得到倾斜帐篷混沌映射的μ,其中,pb_1为二进制位序列b中元素为二进制
‘1’
的总个数,pb_0为二进制位序列b中元素为二进制
‘0’
的总个数,m为二进制位序列b的长度,利用初值x1和参数μ,按照公式对倾斜帐篷混沌映射xk进行200次迭代,得到第200次迭代后的混沌信号x
201

[0075]
令混沌信号初值y1=x
201
,并从二进制位序列b中从头到尾正向取m(本例中m的取值为9)个元素,得到第一个二进制位分组序列bf{1}={b1,b2,
···
,bm},令j=1,进行如下操作:
[0076]
s11、由混沌信号yj和参数μ,对所示倾斜帐篷混沌映射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、移位个数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}中元素循环左移k_shift1位,得到正向移位后的二进制位分组序列表示为;
[0079]
s13、比较j与m的大小,若j<m-1,则利用正向移位后的二进制位分组序列中前m-2个元素,按照公式对混沌信号y
j+1
进行调
整,
[0080]
其中,bin2dec({bbm×
j-(m-1)
,bbm×
j-(m-2)
,
···
,bbm×
j-2
})操作表示将二进制位分组序列{bbm×
j-(m-1)
,bbm×
j-(m-2)
,
···
,bbm×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},然后转到步骤s11;
[0081]
若j=m-1,则利用正向移位后的二进制位分组序列中前m-2个元素,按照公式对混沌信号y
j+1
进行调整,同时将二进制位序列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},然后转到步骤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和参数μ,对倾斜帐篷混沌映射xk进行300次迭代,得到第300次迭代后的混沌信号x
301
,然后令混沌信号初值z1=x
301
,并从二进制位序列中从尾到头逆向取m个元素,得到第一个二进制位分组序列,表示为令j=1,进行如下操作:
[0085]
s21、由混沌信号zj和参数μ,对所述倾斜帐篷混沌映射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、移位个数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时,将二进制位分组序列中元素循环左移k_shift2位,得到逆向移位后的二进制位分组序列表示为
[0088]
当direction_shift2=1时,将二进制位分组序列bn{j}中元素循环右移k_shift2
位,得到逆向移位后的二进制位分组序列表示为
[0089]
s23、比较j与m的大小,若j<m-1,则利用逆向移位后的二进制位分组序列中前m-2个元素,按照公式对混沌信号z
j+1
进行调整,
[0090]
同时将二进制位序列中相应元素替换为逆向移位后的二进制位分组序列中相应元素替换为逆向移位后的二进制位分组序列
[0091]
并令j=j+1,随后从二进制位序列中逆向取m个相应元素,得到第j个二进制位分组序列,表示为然后转到步骤s21;
[0092]
若j=m-1,则利用逆向移位后的二进制位分组序列中前m-2个元素,按照公式对混沌信号z
j+1
进行调整,同时将二进制位序列中相应元素替换为逆向移位后的二进制位分组序列列并令j=j+1,随后从二进制位序列b中逆向取m个相应元素,得到第m个二进制位分组序列然后转到步骤21;
[0093]
若j=m,则将二进制位序列中相应元素替换为逆向移位后的二进制位分组序列bn{m},并令序列c与序列相等,从而得到双向移位加密后的二进制位序列
[0094]
步骤4、对于地理信息数据c,输入n个初始化种子以及n个循环移位子过程的叠加顺序s1,s2,
···
,sn;
[0095]
步骤5、令i=1;
[0096]
步骤6、抽取和si;
[0097]
步骤7、根据抽取si的值确定循环移位子过程的种类,将作为随机数种子生成一组随机数,记为[x(1),x(2),
···
,x(t)],并采用所述一组随机数对待加密数据进行所确定的循环移位子过程,每个所述随机数为si对应的循环移位子过程的移位步数,是第i行,或第i列,或第i斜线,或第i反斜线,或第i圈的移位步数;其中,t的值根据循环移位子过程的种类及输入数据的尺寸自动确定;
[0098]
本例中,所述循环移位子过程的种类包括:行循环移位rowshift、列循环移位columnshift、斜线循环移位slashshift、反斜线循环移位backslashshift和圈循环移位roundshift。
[0099]
所述采用一组随机数对待加密数据进行所确定的循环移位子过程,包括:
[0100]
第一种方式:对待加密数据从第1行到第t行依次执行行循环移位rowshift,即将第一行执行行循环移位rowshift(1,x(1)),将第2行执行行循环移位rowshift(2,x(2)),依此类推将第t行执行行循环移位rowshift(t,x(t));
[0101]
第二种方式:对待加密数据从第1列到第t列依次执行列循环移位columnshift,即将第一列执行列循环移位columnshift(1,x(1)),将第2列执行列循环移位columnshift(2,x(2)),依此类推将第t列执行列循环移位columnshift(t,x(t));
[0102]
第三种方式:对待加密数据从第1斜线到第t斜线依次执行斜线循环移位slashshift,即将第1斜线执行斜线循环移位slashshift(1,x(1)),将第2斜线执行斜线循环移位slashshift(2,x(2)),依此类推将第t斜线执行斜线循环移位slashshift(t,x(t));
[0103]
第四种方式:对待加密数据从第1反斜线到第t反斜线依次执行反斜线循环移位backslashshift,即将第1反斜线执行反斜线循环移位backslashshift(1,x(1)),将第2反斜线执行反斜线循环移位backslash shift(2,x(2)),依此类推将第t反斜线执行反斜线循环移位backslashshift(t,x(t));
[0104]
第五种方式:对待加密数据从第1圈到第t圈依次执行圈循环移位roundshift,即将第1圈执行圈循环移位roundshift(1,x(1)),将第2圈执行圈循环移位roundshift(2,x(2)),依此类推将第t圈执行圈循环移位roundshift(t,x(t));
[0105]
其中,所述行循环移位rowshift(t,x(t))表示对待加密数据的第t行自左向右平移x(t)个数据;所述列循环移位columnshift(t,x(t))表示对待加密数据的第t行自上而下平移x(t)个数据;所述斜线循环移位slashshift(t,x(t))表示对待加密数据的第t斜线从西南到东北方向循环移动x(t)个数据;所述反斜线循环移位backslashshift(t,x(t))表示对待加密数据的第t反斜线沿着西北到东南方向循环移动x(t)个数据;所述圈循环移位roundshift(t,x(t))表示对待加密数据的第t圈做顺时针循环转动x(t)个数据。
[0106]
步骤8、令i=i+1,并返回步骤6循环进行,直至i=n,获得所需的地理信息加密数据d。
[0107]
本实施例还提出了一种基于动态循环位移的地理数据加密系统,包括多通道地理信息采集模块与地理信息管理子系统,如图2所示:
[0108]
所述多通道地理信息采集模块用于获取地理信息数据;
[0109]
所述地理信息管理子系统包括数据存储模块、数据加密模块(加密芯片)、数据解密模块、北斗gps监测开启模块以及权限认证模块,
[0110]
所述数据存储模块用于存储获取的地理信息数据;
[0111]
所述数据加密模块也即是加密芯片用于执行上述方法的步骤,对地理信息数据进行加密操作;
[0112]
所述数据解密模块用于实现地理信息数据的解密操作;
[0113]
所述北斗gps监测开启模块用于实现在特定区域的特定用户能够访问数据的辅助手段,限定只有在特定区域能够执行操作或者在特定区域执行不同地理信息主管部门自带加密算法的切换操作,
[0114]
所述权限认证模块用于在加密文件获得授权且处于当前安全区域内时开启客户端的相关权限。
[0115]
进一步的,所述权限认证模块卡其的相关权限包括地理信息数据的上传、访问、更
新或下载的权限。
[0116]
本实施例基于sm4国密加密算法、双向移位加密算法和动态循环位移加密算法的多元素加密方式,实现了对地理信息数据的多层加密处理,使得地理信息数据内的信息不可篡改,有效避免了分发数据、外发数据时存在的风险,还可避免数据的版权纠纷,在无授权或单一授权环境下无法使用,大大提高了地理信息数据的安全性。
[0117]
以上对本发明所提供的技术方案进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

技术特征:


1.一种基于动态循环位移的地理数据加密方法,其特征在于包括如下步骤:步骤1、将原始地理信息数据文件转换成二进制,得到128位二进制表示的地理信息数据a;步骤2、将地理信息数据a采用国密算法进行加密,得到加密后的二进制位序列b;步骤3、对二进制位序列b进行双向移位加密,得到地理信息数据c;步骤4、对于地理信息数据c,输入n个初始化种子以及n个循环移位子过程的叠加顺序s1,s2,
···
,s
n
;步骤5、令i=1;步骤6、抽取和s
i
;步骤7、根据抽取s
i
的值确定循环移位子过程的种类,将作为随机数种子生成一组随机数,记为[x(1),x(2),
···
,x(t)],并采用所述一组随机数对待加密数据进行所确定的循环移位子过程,每个所述随机数为s
i
对应的循环移位子过程的移位步数,是第i行,或第i列,或第i斜线,或第i反斜线,或第i圈的移位步数;其中,t的值根据循环移位子过程的种类及输入数据的尺寸自动确定;步骤8、令i=i+1,并返回步骤6循环进行,直至i=n,获得所需的地理信息加密数据d。2.根据权利要求1所述的基于动态循环位移的地理数据加密方法,其特征在于:步骤2中采用sm4算法对地理信息数据a进行加密。3.根据权利要求1所述的基于动态循环位移的地理数据加密方法,其特征在于:步骤3中对二进制位序列b进行双向移位加密的具体步骤如下:步骤3.1、对二进制位序列b的正向移位加密:利用外部加密密钥(α,β),按照公式计算得到倾斜帐篷混沌映射的初值x1,并按照公式计算得到倾斜帐篷混沌映射的μ,其中,pb_1为二进制位序列b中元素为二进制
‘1’
的总个数,pb_0为二进制位序列b中元素为二进制
‘0’
的总个数,m为二进制位序列b的长度,利用初值x1和参数μ,按照公式对倾斜帐篷混沌映射x
k
进行200次迭代,得到第200次迭代后的混沌信号x
201
,令混沌信号初值y1=x
201
,并从二进制位序列b中从头到尾正向取m个元素,得到第一个二进制位分组序列bf{1}={b1,b2,
···
,b
m
},令j=1,进行如下操作:s11、由混沌信号y
j
和参数μ,对所示倾斜帐篷混沌映射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、移位个数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}中元素循环左移k_shift1位,得到正向移位后的二进制位分组序列表示为;s13、比较j与m的大小,若j<m-1,则利用正向移位后的二进制位分组序列中前m-2个元素,按照公式对混沌信号y
j+1
进行调整,其中,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
}转换为数值型数据,同时按照公式{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
},然后转到步骤s11;若j=m-1,则利用正向移位后的二进制位分组序列中前m-2个元素,按照公式对混沌信号y
j+1
进行调整,同时将二进制位序列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
},然后转到步骤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和参数μ,对倾斜帐篷混沌映射x
k
进行300次迭代,得到第300次迭代后的混沌信号x
301
,然后令混沌信号初值z1=x
301
,并从二进制位序列中从尾到头逆向取m个元素,得到第一个二进制位分组序列,表示为令j=1,进行如下操作:s21、由混沌信号z
j
和参数μ,对所述倾斜帐篷混沌映射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、移位个数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时,将二进制位分组序列中元素循环左移k_shift2
位,得到逆向移位后的二进制位分组序列表示为当direction_shift2=1时,将二进制位分组序列bn{j}中元素循环右移k_shift2位,得到逆向移位后的二进制位分组序列表示为s23、比较j与m的大小,若j<m-1,则利用逆向移位后的二进制位分组序列中前m-2个元素,按照公式对混沌信号z
j+1
进行调整,同时将二进制位序列中相应元素替换为逆向移位后的二进制位分组序列并令j=j+1,随后从二进制位序列中逆向取m个相应元素,得到第j个二进制位分组序列,表示为然后转到步骤s21;若j=m-1,则利用逆向移位后的二进制位分组序列中前m-2个元素,按照公式对混沌信号z
j+1
进行调整,同时将二进制位序列中相应元素替换为逆向移位后的二进制位分组序列并令j=j+1,随后从二进制位序列b中逆向取m个相应元素,得到第m个二进制位分组序列然后转到步骤21;若j=m,则将二进制位序列中相应元素替换为逆向移位后的二进制位分组序列bn{m},并令序列c与序列相等,从而得到双向移位加密后的二进制位序列4.根据权利要求1所述的基于动态循环位移的地理数据加密方法,其特征在于:所述循环移位子过程的种类包括:行循环移位rowshift、列循环移位columnshift、斜线循环移位slashshift、反斜线循环移位backslashshift和圈循环移位roundshift。5.根据权利要求4所述的基于动态循环位移的地理数据加密方法,其特征在于:所述采用一组随机数对待加密数据进行所确定的循环移位子过程,包括:对待加密数据从第1行到第t行依次执行行循环移位rowshift,即将第一行执行行循环移位rowshift(1,x(1)),将第2行执行行循环移位rowshift(2,x(2)),依此类推将第t行执行行循环移位rowshift(t,x(t));或
对待加密数据从第1列到第t列依次执行列循环移位columnshift,即将第一列执行列循环移位columnshift(1,x(1)),将第2列执行列循环移位columnshift(2,x(2)),依此类推将第t列执行列循环移位columnshift(t,x(t));或对待加密数据从第1斜线到第t斜线依次执行斜线循环移位slashshift,即将第1斜线执行斜线循环移位slashshift(1,x(1)),将第2斜线执行斜线循环移位slashshift(2,x(2)),依此类推将第t斜线执行斜线循环移位slashshift(t,x(t));或对待加密数据从第1反斜线到第t反斜线依次执行反斜线循环移位backslashshift,即将第1反斜线执行反斜线循环移位backslashshift(1,x(1)),将第2反斜线执行反斜线循环移位backslash shift(2,x(2)),依此类推将第t反斜线执行反斜线循环移位backslashshift(t,x(t));或对待加密数据从第1圈到第t圈依次执行圈循环移位roundshift,即将第1圈执行圈循环移位roundshift(1,x(1)),将第2圈执行圈循环移位roundshift(2,x(2)),依此类推将第t圈执行圈循环移位roundshift(t,x(t));所述行循环移位rowshift(t,x(t))表示对待加密数据的第t行自左向右平移x(t)个数据;所述列循环移位columnshift(t,x(t))表示对待加密数据的第t行自上而下平移x(t)个数据;所述斜线循环移位slashshift(t,x(t))表示对待加密数据的第t斜线从西南到东北方向循环移动x(t)个数据;所述反斜线循环移位backslashshift(t,x(t))表示对待加密数据的第t反斜线沿着西北到东南方向循环移动x(t)个数据;所述圈循环移位roundshift(t,x(t))表示对待加密数据的第t圈做顺时针循环转动x(t)个数据。6.一种基于动态循环位移的地理数据加密系统,其特征在于:包括多通道地理信息采集模块与地理信息管理子系统,所述多通道地理信息采集模块用于获取地理信息数据;所述地理信息管理子系统包括数据加密模块、数据解密模块、北斗gps监测开启模块以及权限认证模块,所述数据加密模块用于执行权利要求1-5任一项所述方法的步骤,对地理信息数据进行加密操作;所述数据解密模块用于实现地理信息数据的解密操作;所述北斗gps监测开启模块用于实现在特定区域的特定用户能够访问数据的辅助手段,限定只有在特定区域能够执行操作或者在特定区域执行不同地理信息主管部门自带加密算法的切换操作,所述权限认证模块用于在加密文件获得授权且处于当前安全区域内时开启相关权限。7.根据权利要求6所述的基于动态循环位移的地理数据加密系统,其特征在于:所述权限认证模块卡其的相关权限包括地理信息数据的上传、访问、更新或下载的权限。

技术总结


本发明公开了一种基于动态循环位移的地理数据加密系统及方法,方法包括:将原始地理信息数据文件转换成二进制生成数据A,将地理信息数据A采用国密算法进行加密,得到加密后的二进制位序列B;对二进制位序列B进行双向移位加密,得到地理信息数据C;对于地理信息数据C,进行循环移位加密处理获得所需的地理信息加密数据D。其显著效果是:实现了对地理信息数据的多层加密处理,使得地理信息数据内的信息不可篡改,有效避免了分发数据、外发数据时存在的风险,还可避免数据的版权纠纷,在无授权或单一授权环境下无法使用,大大提高了地理信息数据的安全性。息数据的安全性。息数据的安全性。


技术研发人员:

陈培恩 袁超 张孝成 胡艳 陈俊霖 李宇晗 夏定辉 雷小虎 曾攀 吴国梁 陈静 吕帅 蒋雪 姜紫薇 张国琴

受保护的技术使用者:

重庆市地理信息和遥感应用中心

技术研发日:

2022.08.18

技术公布日:

2023/1/19


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-1-86386-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2023-01-29 06:34:18

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论