基于国产CH32V307单片机的图像混沌加密

技术报告

基于国产CH32V307单片机的图像混沌加密

作者:

夏明 李佩冉

学校:

南京信息工程大学

时间:

2022年12月18

目录

第一章 开发应用背景

1.1混沌图像加密、混沌系统简介

1.2 国内外研究现状以及发展趋势

第二章 开发理论基础与理论验证

第三章 CH32V307单片机开发的可视化操作

3.1 CH32V307单片机图像混沌加密开发硬件设备

3.1.1CH32V307开发板

3.1.2 LCD显示屏MSP1803

3.1.3 混沌加密的PCB硬件结构实现

3.2 基于CH32V307单片机图像混沌加密软件开发

3.2.3图像解密部分

第四章:开发成果可视化展示

第五章 实践结语

第一章 开发应用背景

1.1混沌图像加密、混沌系统简介

伴随5G时代与后疫情时代的到来,越来越多的人际交流迁移到了线上。出于对个人隐私的保护及确保信息安全,人们对于图像加密的需求也越来越大。目前的图像加密算法普遍存在加密过程复杂,耗时较长等缺点。对一些要求能够进行实时加密传输的场合,现有加密算法并不能满足要求。在当前图像加密技术中,主要为基于混沌加密、置换加密、基于光学加密等等。现阶段的加密算法普遍存在着加密过程复杂、耗时较长等缺限,尤其是对一些要求须进行实时加密传输的领域,现有加密算法并不能很好满足其需求。1963年,美国著名学者爱德华·洛伦兹教授率先提出混沌理论,十几年之后,李天岩约克(T. Y. Li-J. A. Yorke)第一次正式在数值分析中提到“混沌”(chaos)这个名词。之后科研学者们又相继发现了确定系统的非周期性和长期不可预测性等混沌特性,这些重要特性 的发现为后来全面了解耗散系统的动力学行为提供了重要依据。1971 年,法国数学家 D. Ruelle 和荷兰人 F. Takens 率先提出用混沌理论来解释湍流形成的机理。 混沌信号的高度随机性、不可预测性、高度复杂性、宽带特性和系统方程、参数及初始条件的确定性,以及易于实现性,使得它在信息安全中具有极好的应用前景。一维混沌系统多数具有迭代速度快、实现方法简单等特点,但是由于一维混沌系统的系统控制参数较少,相空间轨道分布较为单薄,极易受到相空间重构等方法的攻击,从而导致密文被恶意破解。但是上述研究中所提混沌映射系统,其动力学特性较为单一,在面对基于深度神经网络的新型攻击算法时,极易遭到攻击,从而导致加密失败。基于此,为了提高混沌映射系统的动力学复杂度,本文引用出了一个经典的洛伦兹混沌系统。对该系统的混沌特性进行研究,发现该系统具有更加复杂的混沌特性,相空间轨道分布复杂。在该系统的基础上,提出了图像加密算法。理论分析与仿真实验,发现该算法具有较强的鲁棒性和较好的加密效果。

基于此,本次开发以国产CH32V307单片机为工具,并结合混沌系统的相关特性,成功开发出基于国产 CH32V307单片机下的图像混沌加密技术的实现与应用。

1.2 国内外研究现状以及发展趋势

现在被广泛应用于图像加密的置乱和扩散是 Shannon 教授于 1949 年提出的,由于其良好的加密效果,后来被许多科学家应用并改进。1989 年,英国数学家Matthews 提出了一种新的加密方法—混沌加密方法,从而开始了对混沌密码学的研究。在过去的十多年中,随着对混沌理论研究的不断深人,混沌理论的应用范围也不断扩展,混沌在密码学中的应用也成了热门研究领域,并提出了大量混沌加密算法。

2002年Jakimoski 和 Kocarev也相继发表了混沌系统应用于图像加密有关的高质量文章。2009 年以后广东工业大学的禹思敏教授团队也开始对混沌保密方面展开了一系列深入的研究。现如今,图像加密的方法已经越来越丰富加密性能也在不断提高。Gan等人基于三维Chen混沌映射系统,提出了一种三维比特平面重排列的彩色图像加密算法。利用该算法加密后的图像,可以有效降低彩色图像RGB三通道间的像素相关性,并且整个加密过程具有更大的算法特异性。Qi等人在四阶超混沌系统的基础上,利用广度优先搜索策略,构建了一种新的图像加密算法。该算法提高了加密的安全性和灵敏度。Luo等人在baker映射及Logistic映射的基础上提出了一种新的混沌图像加密算法,该算法通过二维baker映射来控制Logistic映射的参数空间选择,从而使得Logistic映射的混沌行为更加的复杂。通过使用一次置乱-扩散策略,该算法能够有效的提高图像加密的有效性与抗攻击能力。Khan等人通过整合多个混沌映射系统,构造出了一个新型的图像加密算法,该算法构建了一个图像加密流,首先通过二维Henon映射来对原始图像的像素点进行空间置乱操作,之后再利用一维圆映射来进行混沌扩散操作。经过上述加密步骤后,得到了加密图像数据,通过对加密图像数据进行有效性分析,表明该算法具有较好的加密性能和抗攻击能力。Ye等人利用二维正弦映射构造了一个混沌参数空间,并采用置乱-重写-扩散的加密策略,提出了一种新的混沌加密算法。该算法对传统加密算法中彼此分离的两个加密步骤:置乱与扩散过程进行了整合,从而提高了算法的抗攻击能力。同时该算法在像素位置变换与对应像素点灰度值变换之间建立起了联系,从而增强了算法的加密效果。Liu等人基于正弦混沌映射,提出了同步置乱-扩散加密算法,该算法通过生成动态密钥流和索引的方法,将图像的置乱与扩散过程整合在一起,提高了图像加密效率的同时也加强了算法的敏感性。

近年来,越来越多的混沌加密相关的大型学术会议在不同的高校和科研机构展开,吸引了无数海内外学者蜂拥而至。混沌加密技术进入了一个空前的研究热度之中。

 

 第二章 开发理论基础与理论验证

图像是由像素组成,图像即为像素中最小的单位。图像由很多色点拼凑而成,我们在将图像进行最大程度放大时,可以看到许多小方块。这其中每一个小方块即为像素。当图像分辨率确定后,各像素有序排列,即可构成可视化的目标图像。相反,若构成图像像素无序排列后,图像即脱离目标可视存在,这就达到了图像加密的效果,也是图像加密方法中“置乱”法的一种简单解释。

自然界中广泛存在的非线性行为都可能会产生混沌现象,混沌是非线性动力学系统中具有的内在随机性、初始条件和系统参数的敏感性等。由于混沌对初始条件的敏感依赖性,即使是两个完全相同的混沌系统从几乎相同的初始条件开始演化,经过一段时间后,它们的轨 道也很快变得互不相关,这使得混沌信号具有长期不可预测性和抗截获能力;同时混沌系统本身又是确定性的,它由非线性系统的方程、参数和初始条件所完全确定,因此混沌信号易于产生和复制。混沌信号的高度随机性、不可预测性、高度复杂性、宽带特性和系统方程、参数及初始 条件的确定性,以及易于实现性,使得它在信息安全中具有极好的应用前景。混沌加密采用数字化技术,对电路元件的精度要求不高,易于硬件实现,便于计算机处理,传输中信息损失少,通用性强,尤其是它可用于实时信号处理,加密的信息很难破译,具有很高的保密性,因而在信息安全领域显示出强大的生命力。  

   与混沌模拟通信不同,混沌加密通信具有较高的抗破译能力,采用小信号调制的混沌模拟通信,抵抗不了神经网络和回归映射的攻击,而对于混沌加密通信,由于攻击者得不到完整的原始数据,也就无法通过神经网络或回归方法获得产生混沌信号的原始方程或回归映射重构。经过加密输出的信号,在不知道密钥的情况下,破译者将无法知道加密前的信号,也就无法破译,所以混沌加密信号是难以破译的,可以应用于需要高度保密的通信系统。

基于国产CH32V307单片机的图像混沌加密_第1张图片

第三章 CH32V307单片机开发的可视化操作

3.1 CH32V307单片机图像混沌加密开发硬件设备

3.1.1 CH32V307开发板

基于国产CH32V307单片机的图像混沌加密_第2张图片

 基于国产CH32V307单片机的图像混沌加密_第3张图片

 CH32V307是基于 32 位 RISC-V 指令集及架构的MCU,主频最高可达144MHz,具有256KB的Flash 和64KB的SRAM,支持硬件浮点运算,大大加快了浮点运算的速度,使计算速度足以达到即时混沌图像加解密的要求(加密或解密120*120的图片仅需0.1秒左右)。它配备了硬件堆栈区、快速中断入口,在标准RISC-V基础上大大提高了中断响应速度。加入单精度浮点指令集,扩充堆栈区,具有更高的运算性能。扩展串口UART数量到8组,电机定时器到4组。提供USB2.0高速接口(480Mbps)并内置了PHY收发器,以太网MAC升级到千兆并集成了10M-PHY模块。

CH32V307产品特点

  • 青稞V4F处理器,最高144MHz系统主频
  • 支持单周期乘法和硬件除法,支持硬件浮点运算(FPU)
  • 64KB SRAM,256KB Flash
  • 供电电压:2.5/3.3V,GPIO单元独立供电
  • 多种低功耗模式:睡眠、停止、待机
  • 上/下电复位、可编程电压检测器
  • 2组18路通用DMA
  • 4组运放比较器
  • 1个随机数发生器TRNG
  • 2组12位DAC转换
  • 2单元16通道12位ADC转换,16路触摸按键TouchKey
  • 10组定时器
  • USB2.0全速OTG接口
  • USB2.0高速主机/设备接口(480Mbps 内置PHY)
  • 3个USART接口和5个UART接口
  • 2个CAN接口(2.0B主动)
  • SDIO接口、FSMC接口、DVP数字图像接口
  • 2组IIC接口、3组SPI接口、2组IIS接口
  • 千兆以太网控制器ETH(内置10M PHY)
  • 80个I/O口,可以映射到16外部中断
  • CRC计算单元,96位芯片唯一ID
  • 串行2线调试接口
  • 封装形式:LQFP64M、LQFP100

3.1.2 LCD显示屏MSP1803

ST7735S驱动、SPI通信LCD显示屏、展示加解密图片使用

基于国产CH32V307单片机的图像混沌加密_第4张图片

基于国产CH32V307单片机的图像混沌加密_第5张图片

 3.1.3 混沌加密的PCB硬件结构实现

屏幕焊接:

基于国产CH32V307单片机的图像混沌加密_第6张图片

硬件结构图:

基于国产CH32V307单片机的图像混沌加密_第7张图片

 基于国产CH32V307单片机的图像混沌加密_第8张图片

 3.2 基于CH32V307单片机图像混沌加密软件开发

3.2.1流程

基于国产CH32V307单片机的图像混沌加密_第9张图片

 3.2.2图像加密部分

获取加密混沌序列:

采用欧拉算法离散混沌映射,循环次数为图像的大小+5000,为了避免混沌序列在迭代早期存在的单值性与周期性,因此将序列中前8000 点数据废弃不用,将计算出的序列线性对应到0-255之间,得到加密序列。

for(i = 0; i < IMAGINE_SIZE + START; i++)

    {

        X[1] = X[0]+delta_t*(X[0]*Y[0]-a*X[0]) ;

        Y[1] = Y[0]+delta_t*(Z[0]*Z[0]+X[0]*Z[0]);

        Z[1] = Z[0]+delta_t*(Y[0]*Y[0]-b*Y[0]*Z[0]) ;

        X[0]=X[1];

        Y[0]=Y[1];

        Z[0]=Z[1];

        if(i>=START)

        {

            encode[i-START] = 25*X[1]+255;

        }

    }

图像置乱:

对于图像数组,从第一位开始,将对应的加密序列的值乘以下标再取模,得到的值作为此像素点的新下标。遍历整个图像数组得到置乱后的图像数组。

  for(i = 0; i < IMAGINE_SIZE; i++)

    {

        q = ((long int)encode[i]*i)%IMAGINE_SIZE;

        temp = gImage_out[i];

        gImage_out[i] = gImage_out[q];

        gImage_out[q] = temp;

    }

图像加密:

对于置乱后的图像数组,从第一位开始,与加密序列异或加密,遍历整个数组得到加密后图像。

for(i = 0; i < IMAGINE_SIZE; i++)

    {

        gImage_out[i] = encode[i]^gImage_out[i];

    }

3.2.3图像解密部分

计算解密序列:

接收到密钥(混沌映射初始值和剔除初始序列的位数)后,将初值密钥带入混沌映射进行计算,剔除前n位初值序列(n的值由密钥获得)后,将计算出的序列线性对应到0-255之间,得到解密序列。

for(i = 0; i < IMAGINE_SIZE + START; i++)

    {

        X[1] = X[0]+delta_t*(X[0]*Y[0]-a*X[0]) ;

        Y[1] = Y[0]+delta_t*(Z[0]*Z[0]+X[0]*Z[0]);

        Z[1] = Z[0]+delta_t*(Y[0]*Y[0]-b*Y[0]*Z[0]) ;

        X[0]=X[1];

        Y[0]=Y[1];

        Z[0]=Z[1];

        if(i>=START)

        {

            discode[i-START] = 25*X[1]+255;

        }

    }

图像解密:

对于接收到的加密图像数组,从第一位开始,与解密密序列异或解密,遍历整个数组得到解密后图像。

for(i = 0; i < IMAGINE_SIZE; i++)

    {

        gImage_out[i] = discode[i]^gImage_out[i];

    }

置乱还原:

对于解密后的图像,此时的图像是置乱后的图像,需进行置乱还原。从图像数组的最后一位开始,将对应的加密序列的值乘以下标再取模,得到的值作为此像素点的新下标。遍历整个图像数组得到置乱还原后的图像数组。即最终解密后的数组。

 for(i = IMAGINE_SIZE-1; i >=0; i--)

    {

        q = ((long int)discode[i]*i)%IMAGINE_SIZE;

        temp = gImage_out[i];

        gImage_out[i] = gImage_out[q];

        gImage_out[q] = temp;

    }

第四章:开发成果可视化展示

视频展示

链接:基于国产CH32V307单片机的图像混沌加密可视化成果_哔哩哔哩_bilibili

           基于国产CH32V307单片机的图像混沌加密_哔哩哔哩_bilibili

图片展示

基于国产CH32V307单片机的图像混沌加密_第10张图片

 第五章 实践结语

CH32V307是基于 32 位 RISC V 指令集及架构的MCU,主频最高可达144MHz,具有256KB的Flash 和64KB的SRAM,支持硬件浮点运算,大大加快了浮点运算的速度,使计算速度足以达到即时混沌图像加解密的要求,运算性能极优。

本次实践通过与混沌系统的结合,以CH32V307作为操作的载体,成果演示出了基于混沌系统的图像加密,且显示出了CH32V307强大的工作性能。CH32V307以其极优的性能使我们的眼前焕然一新。我们相信,RISC V在国内会更好的扎根落地,并在应用中快速发展壮大。

你可能感兴趣的:(FPGA,混沌系统,单片机,5G,嵌入式硬件)