FPGA小项目:基于Arnold与Logistic的图像加解密实现

FPGA小项目:基于Arnold与Logistic的图像加解密实现

  • 目录
    • 概述
    • 原理
    • 设计方案
    • FPGA实现
    • 实验与测试

目录

概述

该文章来源于之前做过的一个小项目,属于FPGA图像处理领域,具体而言,是基于FPGA实现arnold和logistic加密解密算法。

原理

arnold置乱参考:

图像加密——matlab实现Arnold置乱算法及矩阵幂的求解,https://blog.csdn.net/H19981118/article/details/123577591?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168068215616782427430956%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=168068215616782427430956&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_positive~default-1-123577591-null-null.142v81wechat,201v4add_ask,239v2insert_chatgpt&utm_term=arnold%E7%BD%AE%E4%B9%B1&spm=1018.2226.3001.4187

logistic置乱参考:

【图像加密】图像处理之Logistic混沌置乱加密,https://blog.csdn.net/hujingshuang/article/details/45718069?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168068224116800180683823%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=168068224116800180683823&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-11-45718069-null-null.142v81wechat,201v4add_ask,239v2insert_chatgpt&utm_term=logistic%E5%8A%A0%E5%AF%86&spm=1018.2226.3001.4187

设计方案

该项目整体流程如下:首先将一张图片提前存入FPGA的ROM中,将ROM中的图像数据读出,分解为RGB三个通道。其中,R通道和G通道使用,B通道使用。最终整合三个通道,合并为RGB图像,并在HDMI端进行显示。同时,将加密后的图像进行相应算法的逆解密过程,并同样将解密图像输出至HDMI端进行显示。
具体而言,首先从硬件选型的方面来看,A7系列的板卡完全能够满足资源要求,但本次项目所需要的RAM数量较多,结合实际情况最终选用XC7A35TFGG484-2板卡作为本次实验的FPGA板卡。
其次从输出设备来看,选用HDMI作为本次实验的输出设备,这是由于HDMI是非常高速且性能表现良好的图像接口,同时板卡中也带有HDMI接口。
最后是方案设计:将图片通过工具转换为COE文件,加载进ROM的IP核中,将图像从ROM中读出,分通道进行加密,加密图像存入RAM中,等待同步信号,将加密图像合并输出并进行显示,而后将加密后的图像存入RAM中,读出进行解密,解密后的图像存入RAM中,等待同步信号出现释放图像,合并图像并进行HDMI输出显示,最开始在显示端,想用VIO控制加密和解密图像显示,但是觉得很麻烦,还需要人工操作,最终通过计数的方法,在计满一定帧数后切换至另一图像,实现加密图像和解密图像的交替显示。

FPGA实现

最终整体RTL图如图所示:
请添加图片描述图1-1RTL图

代码如图 所示:
请添加图片描述
图1-2 代码图

实验与测试

资源占用率如图所示:
请添加图片描述
图2-1资源占用率

板卡验证结果:
请添加图片描述图2-2 解密图显示
请添加图片描述图2-3 加密图像显示

图2-2为加密图显示于hdmi显示器,图2-3为加密后图像显示于HDMI端。从图2-2和2-3可以看出,该工程能够有效、快速地将图像加密,置乱轮数由自己决定,同时可以通过解密算法将加密图像进行还原,由于本文rom资源有限,因此分辨率较低,后续也可以通过串口、sd卡等方式输入高分辨率的图像。

总结:整体而言,该设计还有许多优化之处,比如资源的优化,大可不必使用如此多的RAM资源,但是为了便于调试本次项目中还是用了许多RAM。但从结果来说,实现了项目要求,正确的加密并解密了图像,同时产生极低的时间开销,这也归功于FPGA并行处理优势和流水线操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/26718.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python主要数据探索函数

python中主要数据探索函数在pandas和matplotlib两个库中。其中前者主要对数据进行分析,后者主要进行数据可视化。本节结合两个库进行初步的整理。 (提一嘴:matplotlib里面默认执行的操作对象是matrix矩阵,所以即使是一个数也可以…

chatgpt赋能python:Python读取Mat文件的完整教程

Python 读取Mat文件的完整教程 在数据科学领域,Matlab(或简称Mat)是最受欢迎的编程语言之一。Matlab可用于数学计算、数据预处理、建模和数据分析。然而,Matlab的开销和许可证成本会限制公司和个人的使用。因此,Pytho…

【原创】理解ChatGPT之Transformer工作原理

作者:黑夜路人 时间:2023年4月26日 想要连贯学习本内容请阅读之前文章: 【原创】理解ChatGPT之注意力机制和Transformer入门 【原创】理解ChatGPT之GPT工作原理 【原创】理解ChatGPT之机器学习入门 【原创】AIGC之 ChatGPT 高级使用技巧…

毕业论文:支持向量机在铝电解槽况分类中的应用

1、前言 机器学习在分类中已经非常成熟,受限于本人的专业能力与认知,所以本论文/课题是我在机器学习领域的初步探索,在关键的算法和代码部分其实我也一知半解,所以我重点讲述机器学习应用的过程,及探讨如何增强自己论文…

chatgpt赋能Python-pythonmeshgrid

Python中的Meshgrid 在Python中,我们经常需要对多维数据进行操作和分析。这时候就需要用到一个非常有用的函数——meshgrid。本文将从什么是meshgrid、怎样使用meshgrid、常见的应用场景等方面来介绍Python中的meshgrid函数。 什么是Meshgrid meshgrid是matlab中…

chatgpt赋能python:Python怎么可以接收MATLAB矩阵类型数据?

Python怎么可以接收MATLAB矩阵类型数据? 在数据科学领域中,MATLAB和Python都是非常流行的数据分析工具。然而,有时在不同的平台之间传输数据时,我们需要把MATLAB中的矩阵数据转换成Python可以接收的数据类型。 什么是MATLAB矩阵…

在Python中载入大量图片型数据集,与matlab结合使用时,如何解决RAM的占用爆炸性增长的问题

在Python中载入大量图片时,由于每张图片都会被转换成Numpy数组并存储在内存中,因此可能会导致RAM的占用爆炸性增长。为了减少RAM的使用,可以考虑采用以下方法: Python和Matlab结合使用。首先,可以使用Python的Pillow库…

chatgpt赋能Python-python_numel__

Python的numel函数:介绍和使用 在Python编程语言中,numel()是一个常用的函数。该函数的主要作用是返回数组或者列表中元素的个数。这个函数在编写程序时经常会用到,因此学会如何使用numel()函数将有助于您更好地掌握Python编程。 什么是num…

chatgpt赋能python:Python怎么跑MATLAB代码

Python怎么跑MATLAB代码 MATLAB是一种专门用于数学计算和科学工程的程序语言,而Python则是一门广泛应用于各种领域的高级编程语言。许多科学家和工程师使用MATLAB进行研究和开发,但是Python具有更广泛的应用性和更强大的社区支持。因此,编写…

LQR的理解与运用 第一期——理解篇

目录标题 0.本系列目的理解六个问题 运用一阶倒立摆matlabsimscape multibody实现 简单的轮足模型(二阶倒立摆) 1 理解LQR写在前面Q1:LQR控制的是什么Q2:LQR的适用场景与形式Q3:LQR的变量、输入、输出Q4:LQR的解决思路Q4.1 LQR控制器设计步骤&#xff1a…

【GPT4】微软 GPT-4 测试报告(5)与外界环境的交互能力

欢迎关注【youcans的AGI学习笔记】原创作品 微软 GPT-4 测试报告(1)总体介绍 微软 GPT-4 测试报告(2)多模态与跨学科能力 微软 GPT-4 测试报告(3)编程能力 微软 GPT-4 测试报告(4)数…

GPT-4 即将问世!不仅能搞文字,还支持视频

整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 作为当前全球最火的生成式 AI,ChatGPT 仅用了 3 个月,就几乎搅动了整个科技圈,人们不断惊叹于 ChatGPT 的强大——但微软和 OpenAI 想要的,显然不至于此…

文心一言 VS ChatGPT测评--多轮对话

上面的图,蓝色图表是文心一言;下面的图,绿色图标是chatGPT。 Round1 chatGPT还会抢答了。。。 Round2 chatGPT更有条理,1,2,3,4.。。。 Round3 文心一言的时效性更强一点,这回合算文心一言赢 Round4 还是chatGPT更有条…

多模态版ChatGPT,拿下视觉语言新SOTA, 代码已开源

点击上方“AI遇见机器学习”,选择“星标”公众号 重磅干货,第一时间送 文|羿阁 发自 凹非寺源|量子位 2022年流行“文生图”模型,那2023年流行什么? 机器学习工程师Daniel Bourke的答案是:反过来…

担心工作被AI取代?大模型再造一个“黄金时代”

文|光锥智能,作者|雷宇 随着人工智能在数据、算力、算法、工具、模型等方面的技术推进,AI已经实现由实验室到产业应用的层级跃升,更广范围、更深层次地影响着人们的经济发展与生产生活方式变革。 IDC数据显示&#xf…

从 Linus Torvalds 的成功中,我发现了这五个“残酷”真相

摘要:在每一位成功人士身上,我们总希望找出其与众不同之处,并以此来勉励自己。但事实证明,成功之路上还有许多我们忽略的残酷真相。 链接:https://medium.com/codex/5-harsh-truths-from-linus-torvalds-406ab20cea02 …

小米手机任意版本MIUI安装Google Play服务

声明:因年代久远,本文方法已失效。 2022-05-17:如有需要,可以试下直接下载安装gmail,因本人无测试环境,不保证可行 链接:https://share.weiyun.com/OknKLICv 打开小米应用商店 → 搜索“gmail…

小米商城项目

一、基本要求 1.1、小米商城PC Web 5-10个页面 功能:产品列表,注册,登录,产品详细,产品分类列表,瀑布流展示商品 数据使用ajax从服务器获得,技术不限(.Net,java,php,node.js,python.…

支付系统设计三:渠道网关设计02-客户端报文解析

文章目录 前言一、后台配置管理1.1 渠道配置1.1.1 渠道基本信息新增1.1.2 渠道交易类型配置1.1.3 渠道商户信息配置1.1.4 账户配置1.1.5 交易类型机构配置 1.2 渠道通讯配置1.2.1 内部渠道通讯1.2.1 外部渠道通讯 1.3 资源配置1.4 证书管理1.5 路由配置 二、运行时逻辑处理1. 控…

完美解决小爱同学蓝牙音箱(包括触屏版)连接电脑后找不到音频设备问题

前言: 最近入手了一台Redmi小爱同学触屏版8Pro,发现正常连接手机蓝牙是可以播放音乐的,但是连接电脑后虽然提示连接成功,但是不能播放音乐,在选择播放设备处没有显示该设备,如下图是正常的状态 (正常的样子…