基于国产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单片机开发的可视化操作
3.1.1 CH32V307开发板
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显示屏、展示加解密图片使用
3.1.3 混沌加密的PCB硬件结构实现
屏幕焊接:
硬件结构图:
3.2 基于CH32V307单片机图像混沌加密软件开发
3.2.1流程
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是基于 32 位 RISC V 指令集及架构的MCU,主频最高可达144MHz,具有256KB的Flash 和64KB的SRAM,支持硬件浮点运算,大大加快了浮点运算的速度,使计算速度足以达到即时混沌图像加解密的要求,运算性能极优。
本次实践通过与混沌系统的结合,以CH32V307作为操作的载体,成果演示出了基于混沌系统的图像加密,且显示出了CH32V307强大的工作性能。CH32V307以其极优的性能使我们的眼前焕然一新。我们相信,RISC V在国内会更好的扎根落地,并在应用中快速发展壮大。
基于国产CH32V307单片机的图像混沌加密相关推荐
- 【论文摘要】基于多数投票模式和超混沌加密的彩色图像鲁棒安全零水印算法
Robust and secure zero-watermarking algorithm for color images based on majority voting pattern and ...
- MATLAB图像置乱混沌加密解密设计
MATLAB基于GUI图像置乱+混沌加密解密 一.课题介绍 1 混沌的解释 混沌密码学是一种新的密码加密算法,具有简单.高效.安全等优点.混沌密码学是混沌理论的一个重要的应用领域.混沌用于密码学主要依 ...
- 基于51单片机的智能鱼缸设计。 有原理图,程序,原文,可代做实物。 才用STC12C5A60S2,最新款国产51单片机
基于51单片机的智能鱼缸设计. 有原理图,程序,原文,可代做实物. 才用STC12C5A60S2,最新款国产51单片机. 本系统设计的主要是基于单片机为核心,设计一款集温度检测.恒温控制.步进电机控制 ...
- Opencv实现图像的加密解密
1.基础:基于异或操作实现图像加密解密 一般情况下,图像的加密和解密过程是通过按位异或运算实现的.将原始图像与密钥图像进行按位异或,可以实现加密,将加密后的图像与密钥图像再进行按位异或可以实现解密过程 ...
- 沁恒CH32V307单片机入门(01):基础说明与流程体验
文章目录 目的 基础说明 芯片介绍 资料与工具 开发环境 流程体验 开发 调试 下载 总结 目的 工作这几年单片机主要就接触过 Atmel.Renesas.Microchip.ST 这些厂家的,最近几 ...
- 【开源项目推荐-ColugoMum】这群本科生基于国产深度学习框架PaddlePadddle开源了零售行业解决方案
零售行业是我国非常重要的行业之一,随着手机支付和购物用户数量的不断提高,以及数字化技术的不断发展,零售行业的企业尤其是线下体验店对数字化转型的意愿不断加强,未来我国智慧零售行业有望持续快速发展. 那么 ...
- 基于PC与单片机串口通信的温度监控系统程序设计
基于PC与单片机串口通信的温度监控系统程序设计 1.系统介绍 1)本系统主要讲解基于PC与单片机串口通信的温度监控系统程序设计(如图1),上位机采用常用的PC机,下位机使用的是STC89C52单片机, ...
- 复合混沌加密(python版)
复合混沌加密 以下代码使用python实现的复合混沌加密一张图片,该加密算法原理就不讲了,到目前为止破解的人还没出现,先看一看效果图. 图片从左到右分别为原始图像.加密图像.以及解密后的图像,下面为代 ...
- 基于国产IPSec 盒子的物联网密改方案
在IOT背景下的万物智联时代,视频监控系统摄像头广泛分布在路边.楼顶.广场等室外场所.以及家庭.学校.医院等室内场所,在城市管理.交通监测等领域的公共摄像头和家庭监控摄像头都存在着诸多安全隐患.同时, ...
最新文章
- 聚类分析案例:探究用户对物品类别的喜好细分降维
- PMP-【第3章 项目管理过程】-2021-1-11(61页-87页)
- 欧盟正研究用三种标准技术应对DNS漏洞
- 服务端 I/O 性能大比拼:Node、PHP、Java、Go哪家强?
- Python:Python多种集成开发环境(IDE,编译器)的简介、安装、入门、使用方法之详细攻略
- 【机器视觉】 par_join算子
- 5.5 准备创建bean
- Windows10安装TeXlive和TeXstudio
- 教资考试 科目一 笔记小结 0227
- Android 系统性能优化(39)---Android内存优化之三:打开MAT中的Bitmap原图
- 电子商务概论_走进经管优质线上课堂(二)之电子商务概论
- mysql8.0. linux二进制_linux下安装mysql8.0(二进制方式)
- 关于外部测试字段解释冲突
- 利用传输矩阵法求解布拉格光栅的透射谱
- C语言求最小公倍数和最大公约数三种算法(经典)----ACM
- 小米路由器同一wifi局域网下,各主机无法ping连
- 利用python分析电商_基于Word2Vec+SVM对电商的评论数据进行情感分析
- 看顶级渣男如何邀约100个女朋友(一)
- 计算机网络连接显示678是什么意思,网络连接错误678什么意思 网络连接错误678解决方法【图文】...
- 尚硅谷01 数据结构与算法_数据结构与算法介绍+稀疏数组
热门文章
- dnf时装预览怎么打开_dnf坐骑套礼包预览2018 dnf坐骑套礼包时装外观详情
- log4j2 在开发环境(win)和测试环境(win)下均可以输出日志,但在生产环境(linux)无日志输出
- 零跑股价带领零跑汽车,冲锋新能源市场
- jmeter与fiddler结合使用
- 下列sql语句中哪条语句可为用户zhangsan分配数据库userdb表userinfo的查询和插入数据权限
- IOS9 UISearchBar详解
- 盐城工学院计算机专业分数线,盐城工学院
- 物联网LPWA通信技术(1):NB-IOT通信特点及主要场景应用
- 朴素贝叶斯文本分类java_基于朴素贝叶斯的文本分类算法
- IOS 视频直播/智能家居(一行行敲代码,从零开始)lesson:1整体架构