1.一种基于国密算法与双混沌系统的三波段加密方法,其特征在于,具体包括如下步骤:S1,输入大小为M×N×3的明文栅格数据P以及初始密钥 ,其中M和N分别代表数据的长和宽,3代表数据的波段数;
S2,解析明文栅格数据中的像素信息和地理空间属性信息;
S3,利用SM3算法、明文栅格数据和初始密钥更新混沌系统的初始值和参数;
S4,更新后的初始值和参数,进入Logistic混沌系统和Lorenz混沌系统迭代产生混沌序列,该序列被转化为使用SM4算法对像素和地理空间属性信息进行加密所需要的密钥流K,和控制像素置乱所需的密钥流Y1、Y2、Y3;
S5,对像素信息和地理空间属性信息进行扩散加密,得到加密后的图像数据 ;
S6,将图像数据 分离出红、绿、蓝三色波段分量的像素位置完成置乱;
S7,合并波段通道得到密文栅格数据。
2.根据权利要求1所述的一种基于国密算法与双混沌系统的三波段加密方法,其特征在于,步骤S4具体包括如下步骤:S4.1,从明文栅格数据P中计算出256位哈希值H,将H转换为32个十进制数字,每组8位,表示为 ;
S4.2,利用公式(1)、公式(2)和公式(3)更新Logistic混沌系统和Lorenz混沌系统的初始值和参数;
(1);
(2);
(3);
式中,为按位异或运算符号;为按位同或运算符号;&为按位与运算符号;
S4.3,对Logistic系统设置参数和初始值 、 ,迭代Logistic系统n0+32(n0≥1000)次,丢弃序列前n0项,得到一个长度为32的混沌序列X;
S4.4,用公式(4)计算得到混沌序列X的密钥流K,用于SM4算法的密钥和初始化向量;
(4);
式中, ;mod()是取模运算;
S4.5,对Lorenz混沌系统设置初始值 、 、 ,迭代n0+M+N(n0≥1000)次;
抛弃序列的前n0项,得到三个长度为M+N的混沌序列Y1、Y2、Y3作为控制像素置乱的密钥流,其中,M和N分别为明文栅格数据的长和宽。
3.根据权利要求1所述的一种基于国密算法与双混沌系统的三波段加密方法,其特征在于,步骤S6具体为:分离图像 的红、绿、蓝三波段分量,得到三个M×N大小的矩阵R、G、B,按照先行置乱后列置乱的顺序分别对三个分量矩阵进行置乱操作,对矩阵R计进行置乱操作的公式为:(5);
(6);
式中, , ;mod()是取模运算; 表示矩阵R中第i行全部列, 表示矩阵R中第j列全部行。
4.根据权利要求1所述的一种基于国密算法与双混沌系统的三波段加密方法,其特征在于,步骤S7具体为:得到 、 、 矩阵是置乱后的红、绿、蓝三波段分量,合并这个三个波段分量得到密文数据C。
5.根据权利要求1所述的一种基于国密算法与双混沌系统的三波段加密方法,其特征在于,步骤S4中的Logistic混沌系统的映射的方程式为:(7);
其中 是控制参数,满足 ,自变量 。
6.根据权利要求1所述的一种基于国密算法与双混沌系统的三波段加密方法,其特征在于,步骤S4中的Lorenz混沌系统的数学模型为:(8);其中, , , 时系统处于混沌状态。