基于动态循环位移的地理数据加密系统及方法转让专利
申请号 : CN202210995530.9
文献号 : CN115632756B
文献日 : 2023-08-04
发明人 : 陈培恩 , 袁超 , 张孝成 , 胡艳 , 陈俊霖 , 李宇晗 , 夏定辉 , 雷小虎 , 曾攀 , 吴国梁 , 陈静 , 吕帅 , 蒋雪 , 姜紫薇 , 张国琴
申请人 : 重庆市地理信息和遥感应用中心
摘要 :
权利要求 :
1.一种基于动态循环位移的地理数据加密方法,其特征在于包括如下步骤:步骤1、将原始地理信息数据文件转换成二进制,得到128位二进制表示的地理信息数据A;
步骤2、将地理信息数据A采用国密算法进行加密,得到加密后的二进制位序列B;
步骤3、对二进制位序列B进行双向移位加密,得到地理信息数据C;
步骤3中对二进制位序列B进行双向移位加密的具体步骤如下:步骤3.1、对二进制位序列B的正向移位加密:利用外部加密密钥(α,β),按照公式 计算得到倾斜帐篷混沌映射的初值x1,并按照公式 计算得到倾斜帐篷混沌映射的μ,其中,PB_1为二进制位序列B中元素为二进制‘1’的总个数,PB_0为二进制位序列B中元素为二进制‘0’的总个数,m为二进制位序列B的长度,利用初值x1和参数μ,按照公式 对倾斜帐篷混沌映射xk进行200次迭代,得到第200次迭代后的混沌信号x201,
令混沌信号初值y1=x201,并从二进制位序列B中从头到尾正向取M个元素,得到第一个二进制位分组序列BF{1}={B1,B2,…,BM},令j=1,进行如下操作:S11、由混沌信号yj和参数μ,对所示倾斜帐篷混沌映射xk进行单次迭代,得到混沌信号yj+1,同时利用混沌信号yj+1,按照公式direction_shift1=mod(Y1i‑Y2i,2),k_shift1=mod(Y1i+Y2i,9)计算分别得到移位方向direction_shift1、移位个数k_shift1,M M M M
其中,Y1j=[(yj+1·10‑[yj+1.10])·10000],Y2j=[(yj+1·10‑[yj+1·10])·10000];
S12、当direction_shift1=0时,将二进制位分组序列BF{j}中元素循环左移kshift1位,得到正向移位后的二进制位分组序列 表示为;
S13、比较j与m的大小,若j<m‑1,则利用正向移位后的二进制位分组序列中前M‑2个元素,按照公式
对混沌信号yj+1进行调
整,
其中,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;
若j=m‑1,则利用正向移位后的二进制位分组序列中前M‑2个元素,按照公式
对混沌信号yj+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;
若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相等停止操作,从而得到正向移位加密后的二进制位序列
步骤3.2、对正向移位加密后的二进制位序列 进行逆向移位加密:首先利用初值x1和参数μ,对倾斜帐篷混沌映射xk进行300次迭代,得到第300次迭代后的混沌信号x301,然后令混沌信号初值z1=x301,并从二进制位序列中从尾到头逆向取M个元素,得到第一个二进制位分组序列,表示为 令j=
1,进行如下操作:
S21、由混沌信号zj和参数μ,对所述倾斜帐篷混沌映射xk进行单次迭代,得到混沌信号zj+1,同时利用混沌信号zj+1,分别按照公式direction_shift2=mod(Z1j‑Z2j‑1,2)、k_shift2=mod(Z1j+Z2j+1,9)计算分别得到移位方向direction_shift2、移位个数k_shift2,M M M M
其中,Z1j=[(zj+1·10 ‑[zj+1·10 ])·10000],Z2j=[(zj+1·10 ‑[zj+1·10 ])·
10000];
S22、当direction_shift2=0时,将二进制位分组序列 中元素循环左移k_shift2位,得到逆向移位后的二进制位分组序列 表示为当direction_shift2=1时,将二进制位分组序列BN{j}中元素循环右移k_shift2位,得到逆向移位后的二进制位分组序列 表示为S23、比较j与m的大小,若j<m‑1,则利用逆向移位后的二进制位分组序列中前M‑2个元素,按照公式
对混沌信号zj+1进行调整,
同时将二进制位序列 中相应元素替换为逆向移位后的二进制位分组序列并令j=j+
1,随后从二进制位序列 中逆向取M个相应元素,得到第j个二进制位分组序列,表示为然后转到步骤S21;
若j=m‑1,则利用逆向移位后的二进制位分组序列中前M‑2个元素,按照公式
对混沌信号zj+1进行调整,同时
将二进制位序列 中相应元素替换为逆向移位后的二进制位分组序列并令j=j+
1,随后从二进制位序列B中逆向取M个相应元素,得到第m个二进制位分组序列然后转到步骤21;
若j=m,则将二进制位序列 中相应元素替换为逆向移位后的二进制位分组序列BN{m}, 并令序列C与序列 相
等,从而得到双向移位加密后的二进制位序列步骤4、对于地理信息数据C,输入N个初始化种子 以及N个循环移位子过程的叠加顺序S1,S2,…,SN;
步骤5、令i=1;
步骤6、抽取 和Si;
步骤7、根据抽取Si的值确定循环移位子过程的种类,将 作为随机数种子生成一组随机数,记为[X(1),X(2),…,X(T)],并采用所述一组随机数对待加密数据进行所确定的循环移位子过程,每个所述随机数为Si对应的循环移位子过程的移位步数,是第i行,或第i列,或第i斜线,或第i反斜线,或第i圈的移位步数;其中,T的值根据循环移位子过程的种类及输入数据的尺寸自动确定;
步骤8、令i=i+1,并返回步骤6循环进行,直至i=N,获得所需的地理信息加密数据D。
2.根据权利要求1所述的基于动态循环位移的地理数据加密方法,其特征在于:步骤2中采用SM4算法对地理信息数据A进行加密。
3.根据权利要求1所述的基于动态循环位移的地理数据加密方法,其特征在于:所述循环移位子过程的种类包括:行循环移位RowShift、列循环移位ColumnShift、斜线循环移位SlashShift、反斜线循环移位BackslashShift和圈循环移位RoundShift。
4.根据权利要求3所述的基于动态循环位移的地理数据加密方法,其特征在于:所述采用一组随机数对待加密数据进行所确定的循环移位子过程,包括:对待加密数据从第1行到第T行依次执行行循环移位RowShift,即将第一行执行行循环移位RowShifi(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列执行列循环移位ColunmShift(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)个数据。
5.一种基于动态循环位移的地理数据加密系统,其特征在于:包括多通道地理信息采集模块与地理信息管理子系统,
所述多通道地理信息采集模块用于获取地理信息数据;
所述地理信息管理子系统包括数据加密模块、数据解密模块、北斗GPS监测开启模块以及权限认证模块,
所述数据加密模块用于执行权利要求1‑4任一项所述方法的步骤,对地理信息数据进行加密操作;
所述数据解密模块用于实现地理信息数据的解密操作;
所述北斗GPS监测开启模块用于实现在特定区域的特定用户能够访问数据的辅助手段,限定只有在特定区域能够执行操作或者在特定区域执行不同地理信息主管部门自带加密算法的切换操作,
所述权限认证模块用于在加密文件获得授权且处于当前安全区域内时开启相关权限。
6.根据权利要求5所述的基于动态循环位移的地理数据加密系统,其特征在于:所述权限认证模块卡其的相关权限包括地理信息数据的上传、访问、更新或下载的权限。
说明书 :
基于动态循环位移的地理数据加密系统及方法
技术领域
背景技术
发明内容
倾斜帐篷混沌映射的μ,其中,PB_1为二进制位序列B中元素为二进制‘1’的总个数,PB_0为二进制位序列B中元素为二进制‘0’的总个数,m为二进制位序列B的长度,利用初值x1和参数μ,按照公式 对倾斜帐篷混沌映射xk进行200次迭代,得到第200
次迭代后的混沌信号x201,
对混沌信号yj+1进行调
整,
对混沌信号yj+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;
对混沌信号zj+1进行调整,
对混沌信号zj+1进行调整,同时
将二进制位序列 中 相应元素替换为逆向移位后的二进制位分组序列
并令j=j
+1,随后从二进制位序列B中逆向取M个相应元素,得到第m个二进制位分组序列
然后转到步骤21;
附图说明
具体实施方式
据,每轮的后3个部分都向左移动32bit的数据长度,这三组数据异或后进入非线性部分τ和线性部分L,运算后的结果与第一组数据异或置于最右面。如此循环往复32轮,也就是数据一共左转了8个周期,将其中的混乱因素不断扩散至每个bit位中。
倾斜帐篷混沌映射的μ,其中,PB_1为二进制位序列B中元素为二进制‘1’的总个数,PB_0为二进制位序列B中元素为二进制‘0’的总个数,m为二进制位序列B的长度,利用初值x1和参数μ,按照公式 对倾斜帐篷混沌映射xk进行200次迭代,得到第200
次迭代后的混沌信号x201,
对混沌信号yj+1进行调
整,
对混沌信号yj+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;
对混沌信号zj+1进行调整,
对混沌信号zj+1进行调整,同时
将二进制位序列 中相应元素替换为逆向移位后的二进制位分组序列
并令j=j+1,随后从
二进制位序列B中逆向取M个 相应元素 ,得到第m个二进制位分组序列
然后转到步骤21;