[发明专利]一种DEM置乱加密与还原方法有效
申请号: | 201610911208.8 | 申请日: | 2016-10-19 |
公开(公告)号: | CN106650343B | 公开(公告)日: | 2019-02-01 |
发明(设计)人: | 王中元;王凯亮;王顺利;李安波 | 申请(专利权)人: | 南京师范大学 |
主分类号: | G06F21/16 | 分类号: | G06F21/16;G06T1/00 |
代理公司: | 江苏圣典律师事务所 32237 | 代理人: | 程化铭 |
地址: | 210023 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 dem 加密 还原 方法 | ||
1.一种DEM的置乱加密方法,其步骤如下:
步骤1:基于ArcMap软件,通过ArcToolbox->转换工具->由栅格转出->栅格转ASCII操作,将Esri Grid格式的DEM数据转化为ASCII编码的txt文件;
步骤2:将txt文件以行为主序存入一M×N矩阵A中,其中M为DEM的行数,N为DEM的列数,并从DEM的头文件中读取出DEM的像元大小cellsize,左上角x起始坐标xllcorner和左上角y起始坐标yllcorner;
步骤3:输入x1、y1、z1作为混沌系统的初值,且x1∈(0,1),y1∈(0,1),z1∈(0,1);输入置乱因子ρ的值,且ρ∈[1,1000];定义参数σ的值,且σ∈(0,1);
步骤4:根据公式(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,根据公式(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为主要关键字进行升序排序,将排序后的序列J记为序列Q;
步骤5.3,设混沌序列Y的子集Y′={y1,y2,y3,...,y10000}的索引号序列{1,2,3,…,10000}为序列J′;将组元(yn,jn′)以yn为主要关键字进行升序排序,将排序后的序列J′记为序列Q′;
步骤5.4,设混沌序列Z的子集Z′={z1,z2,z3,...,z10000}索引号序列{1,2,3,…,10000}为序列I;将组元(zn,in)以zn为主要关键字进行升序排序,将排序后的序列I记为序列T;
步骤6:对DEM数据的头文件进行置乱
根据公式(4)对cellsize、xllcorner和yllcorner进行加密操作,得到加密数据scellsize、sxllcorner和syllcorner;
步骤7:根据序列S、T对矩阵A进行高程置乱
步骤7.1,将矩阵A的一点的高程值Cmn转为14位的二进制数表示,其中m和n为对应的行号与列号;m∈[1,M],n∈[1,N];
步骤7.2,若m+n为奇数,则先将Cmn的低7位与高7位进行交换;若m+n为偶数则不变;选取S的一14位子序列{sm+n,sm+n+1,sm+n+2,…,sm+n+13}按位与Cmn异或;
步骤7.3,将异或后的结果转化为十进制数表示,得到变化后的高程值C′mn;
步骤7.4,基于C′mn,根据公式(5)生成临时变量b;
b=C′mn mod ρ (5);
步骤7.5,在序列T中遍历寻找值为b的元素,将其序列号记为serialID,则根据公式(6)计算出C″mn;
C″mn=C′mn-b+serialID (6);
循环执行步骤7.1-步骤7.5,对矩阵A中的每一点都进行如上操作,得到新矩阵A′,其中m和n为对应的行号与列号;
步骤8:根据序列Q、Q′对矩阵A′进行位置置乱:
从矩阵A′的首行首列开始,循环执行步骤8.1-步骤8.4,逐个将矩阵A′中元素C″mn与C″m′n′位置互换,得到矩阵A″;矩阵A″即为对DEM置乱后的最终结果;
步骤8.1,根据公式(7),利用矩阵A′中的每一元素C″mn的行号m,生成临时变量p;
p=m mod ρ (7);
步骤8.2,在序列Q中遍历寻找与p值相等的元素,记其下标为serialID′,则根据公式(8),生成m′;
m′=m-p+serialID′ (8);
步骤8.3,根据公式(9),利用矩阵A′中的元素C″mn的列号n,生成p′;
p′=n mod ρ (9);
步骤8.4,在序列Q′中遍历寻找与p′值相等的元素,记其下标为serialID″,则根据公式(10),生成n′;
n′=n-p′+serialID″ (10);
步骤9:基于置乱加密后的数据,生成置乱加密后的txt文件;
步骤10:基于ArcMap软件,通过“ArcToolbox->转换工具->转为栅格->ASCII转栅格”操作,将txt文件转换为Esri Grid格式的DEM数据。
2.一种用权利要求1所述的DEM的置乱加密方法置乱加密后的DEM置乱的还原方法,包括如下步骤:
步骤A:基于ArcMap软件,通过“ArcToolbox->转换工具->由栅格转出->栅格转ASCII”操作,将DEM数据转化为ASCII编码的txt文件;从txt中读取数据至矩阵A″;
步骤B:将置乱后的DEM以行为主序存入行数为M,列数为N的矩阵A″中,其中M为置乱后的DEM的行数,N为置乱后的DEM的列数,并从DEM的头文件中读取出置乱后的DEM数据的像元大小scellsize、左上角x起始坐标sxllcorner和左上角y起始坐标syllcorner;
步骤C:输入x1、y1、z1作为混沌系统的初值,且x1∈(0,1),y1∈(0,1),z1∈(0,1);输入置乱因子ρ的值,且ρ∈[1,10000];定义参数σ的值,且σ∈(0,1);
步骤D:根据公式(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,根据公式(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为主要关键字进行升序排序,将排序后的序列J记为序列Q;
步骤E.3,设混沌序列Y的子集Y′={y1,y2,y3,...,y10000}的索引号序列{1,2,3,…,10000} 为序列J′;将组元(yn,jn′)以yn为主要关键字进行升序排序,将排序后的序列J′记为序列Q′;
步骤E.4,设混沌序列Z的子集Z′={z1,z2,z3,...,z10000}索引号序列{1,2,3,…,10000}为序列I;将组元(zn,in)以zn为主要关键字进行升序排序,将排序后的序列I记为序列T;
步骤F:对DEM的头文件进行还原
根据公式(11)对scellsize、sxllcorner和syllcorner进行还原操作,得到还原数据cellsize、xllcorner和yllcorner;
步骤G:根据序列Q和Q′对矩阵A″中的置乱后的位置进行还原
从矩阵A″末行末列开始,循环执行步骤G.1-步骤G.1,逐个往前将矩阵A′中元素C″m′n′与C″mn互换,得到矩阵A′,其中m和n为矩阵A′中对应的行号与列号:
步骤G.1,根据公式(12),利用矩阵A″中的元素C″m′n′的行号m′,生成serialID′:其中m′和n′为对应的行号与列号
serialID′=m′mod ρ (12):步骤G.2,寻找序列Q中索引号为serialID′的元素,记其值为p,根据公式(13),生成m;
m=m′+p-serialID′ (13);
步骤G.3,根据公式(14),利用矩阵A″中的元素C″m′n′的列号n′,生成serialID″;
serialID″=n′mod ρ (14);
步骤G.4,寻找序列Q′中索引号为serialID″的元素,记其值为p′,根据公式(15),生成n;
n=n′+p′-serialID″ (15);
步骤H:根据序列S、T对矩阵A′中的数据进行高程还原
循环执行步骤H.2-步骤H.5,对矩阵A′中的每个点循环执行上述操作,得到矩阵A,矩阵A即为还原后的最终结果:
步骤H.1,根据公式(16),利用矩阵A′中的元素C″mn,生成serialID;
serialID=C″mn mod ρ (16);
步骤H.2,寻找矩阵A′中索引号为serialID的元素,记其值为b,则根据公式(17),得到
C″mn=C″mn+b-serialID (17);
步骤H.3,将C′mn用14位的二进制数表示,其中m∈[1,M],n∈[1,N];
步骤H.4,选取s的一14位子序列{Sm+n,Sm+n+1,Sm+n+2,…,Sm+n+13}与C′mn的14位二进制数,进行按位异或操作;若m+n为奇数,则将异或结果的低7位与高7位进行交换,若m+n为偶数,则不变;
步骤H.5,将变换后的高程值转化为十进制得到Cmn;
步骤I:基于ArcMap软件,通过“ArcToolbox->转换工具->转为栅格->ASCII转栅格”操作,将txt文件转换为Esri Grid格式的DEM数据,完成DEM的还原处理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京师范大学,未经南京师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610911208.8/1.html,转载请声明来源钻瓜专利网。