基于分组码的消息验证码的程序实现

news2025/7/29 14:16:05

目 录
摘 要 I
1 绪论 1
1.1 课题研究背景和意义 1
1.2 课题研究现状 1
2 CBC MAC的特征和基本工作原理 2
2.1 CBC MAC的特征和码集选择的原则 2
2.2 CBC MAC生成原理 2
2.3 CBC MAC模块结构图 3
3 FPGA和VHDL语言 4
3.1 概述 4
3.2 VHDL语言特点 5
3.2.1 常用硬件描述语言简介 5
3.2.3 VHDL程序的基本结构 6
3.3 Quartus II 简介 6
4 程序实现及结果分析 8
4.1 设计方案论证 8
4.2 生成模块设计 8
4.2.1 设计原理 8
4.2.2 仿真波形 9
4.3 校验模块设计 9
4.3.1 设计原理 9
4.3.2 仿真波形 10
4.4 顶层设计 10
4.4.1 顶层设计原理 10
4.4.2 顶层设计仿真波形 11
参考文献 12
附 录 13
致 谢 16
1.2 课题研究现状
循环码是具有循环移位特性且能纠错的分组码。纠错码的译码是该编码能否得到实际应用的关键所在。译码器往往比编码较难实现,对于纠错能力强的纠错码更复杂。根据不同的纠错或检错目的,循环码译码器可分为用于
纠错目的和用于检错目的的循环码译码器。任何两个相邻的循环码只有一位数字不同,因此循环码具有可靠性高的优点,在通信、军事等领域中应用非常广泛。由于循环码是无权码,书写和编制都比普通二进制码麻烦,正确的编制是电路设计的关键。
目前常用的实现CBC MAC编码语言有C语言、Verilog和VHDL语言。但由于VHDL有更强的行为描述能力及其对硬件设计的独立性,从而避开具体的器件结构,从逻辑行为上描述和设计该电子系统使得程序实现较为方便。从以上方面考虑,本设计中采用VHDL程序实现。

2 CBC MAC的特征和基本工作原理
2.1 CBC MAC的特征和码集选择的原则
CBC MAC即分组码的消息验证码是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。但是信息字段和校验字段的长度也要满足一定的要求,即有码集选择原则。
CBC MAC码集选择的原则:若设码字长度为N,信息字段为K位,校验字段为R位(N=K+R),则对于CBC MAC码集中的任一码字,存在且仅存在一个R次多项式g(x),使得 V(x)=A(x)g(x)=xRm(x)+r(x);
  其中: m(x)为K-1次信息多项式, r(x)为R-1次校验多项式,
  g(x)称为生成多项式:
  g(x)=g0+g1x1+ g2x2+…+g(R-1)x(R-1)+gRxR
  发送方通过指定的g(x)产生CBC MAC码字,接收方则通过该g(x)来验证收到的CBC MAC码字。
2.2 CBC MAC生成原理
经过CBC MAC方式编码的串行发送序列码,可称为CBC MAC码,共有两个部分组成:k位有效信息数据和r位CBC MAC校验码。其中r位CBC MAC校验码是通过k位有效信息序列被一个事先选择的r+1位“生成多项式”相“除”后得到的(r位余数即是CBC MAC校验码)。CBC MAC校验码一般在有效信息发送时产生,拼接在有效信息后被发送;在接收端,CBC MAC码用同样的生成多项式相除,除尽表示无误,弃掉r位CBC MAC校验码,接收有效信息;反之,则表示传输出错,纠错或请求重发。
实际的CBC MAC校验生成是采用二进制模2算法得到的,即加法不进位,减法不借位,是一种异或操作。生成多项式G(x)是经过严格的数学分析和实验后确定的,有相应的国际标准。

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164. ALL;
USE IEEE.STD_LOGIC_UNSIGNED. ALL;
USE IEEE.STD_LOGIC_SIGNED. ALL;
USE IEEE.STD_LOGIC_ARITH. ALL;
ENTITY CBC MACm IS
	PORT ( clk,datald : IN STD_LOGIC;
		sdata   :IN STD_LOGIC_VECTOR(11 DOWNTO 0);
		dataCBC MACo:OUT STD_LOGIC_VECTOR(16 DOWNTO 0);
		hsend :out std_logic);
end CBC MACm;
architecture one of CBC MACm is
	constant multi_coef:std_logic_vector(5 downto 0):="110101";
	signal cnt:std_logic_vector(4 downto 0);
	signal sdatam:std_logic_vector(11 downto 0);
	signal dtemp,rdataCBC MAC:std_logic_vector(16 downto 0);
	signal st:std_logic:='0';
begin
process(clk)
	variable CBC MACvar:std_logic_vector(5 downto 0);
begin
	if (clk'event and clk='1') then
	if (st='0' and datald='1') then dtemp<=sdata &"00000"; 
        sdatam<=sdata; cnt<= (others=>'0'); hsend<='0'; st<='1'; 
elsif(st='1' and cnt<12) then cnt<=cnt+1;  
	if(dtemp(16)='1') then CBC MACvar:=dtemp(16downto11) xor multi_coef;
		       dtemp<=CBC MACvar(4 downto 0) & dtemp(10 downto 0) & '0';
			else dtemp<=dtemp(15 downto 0) & '0'; 
			end if;
elsif(st='1' and cnt=12) then dataCBC MACo<=sdatam & dtemp(16 downto 12);
			hsend<='1'; cnt<=cnt+1;
		elsif(st='1' and cnt=13) then hsend<='0'; st<='0';
		end if;
	end if;
end process;
end one;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GUI编程--PyQt5--QAbstractButton

文章目录绘制事件设置文本设置快捷键设置自动重复按钮状态排他性按钮的点击按钮点击有效区域按钮的信号QAbstractButton是一个抽象类&#xff0c;无法直接使用。绘制事件 from PyQt5.QtWidgets import QAbstractButton from PyQt5.QtGui import QPainter, QPen, QColor # 定义…

loki单机对接minio

安装minio 请参考minio官方文档部署 创建Buckets 配置Policy策略 创建一个loki的policy&#xff0c;授权内容如下 &#xff08;权限配置请参考aws的s3权限配置&#xff09; { "Version": "2012-10-17", "Statement": [ { …

部署安装yapi

配置环境 部署安装yapi 前提是配置环境&#xff0c;需要 nodejs&#xff08;7.6)mongodb&#xff08;2.6&#xff09; 这里我使用docker 安装上面的nodejs 或 mongodb docker 安装 mongodb 教程&#xff1a; 使用docker 安装MongoDB数据库_小周sir的码农的博客-CSDN博客Doc…

删除pip下载的所有第三方库,最快的方法,没有之一

1、问题描述 初学Python的朋友&#xff0c;经常会使用pip下载各种各样的第三方库&#xff0c;例如自动化办公的专用库&#xff1a;python-office。 下载了很多库会占用电脑空间&#xff0c;而且互相之间有很多依赖关系&#xff0c;也不知道怎么样才能卸载干净。 虽然卸载的方法…

一起学习集合框架之 TreeSet

什么是 TreeSet TreeSet 是一个具有唯一元素的二叉树的集合&#xff0c;又被翻译为 树集。Java 中的 TreeSet 类是 Java 集合框架的一部分&#xff0c;从 Java 6 开始&#xff0c;它实现了 NavigableSet 接口&#xff08;这个接口增加了几个查找元素以及反向遍历的便利方法&am…

【快速上手系列】使用MD5加密对密码进行加密

【快速上手系列】使用MD5加密对密码进行加密 介绍 MD5加密 Message Digest Algorithm MD5&#xff08;中文名为消息摘要算法第五版&#xff09;应用程序的密码通常不会明文保存&#xff0c;会使用各种各样的加密算法对密码进行加密MD5算法相对来说较为安全。初始的MD5算法是…

开发微信小程序的流程_微信小程序开发的作用

小程序的快速发展和围绕其诞生的产业链逐步完善&#xff0c;更多的平台和流量开始参与到小程序的开发领域&#xff0c;推出属于平台的小程序接口。相较于传统的线下广告宣传模式&#xff0c;小程序的传播和推广拥有互联网便捷高效的属性。用户扫描二维码就能关注公众号&#xf…

【安全测试学习】自动化注入攻击之 FuzzDB和Burp 组合拳

一、FuzzDB 开源的应用程序模糊测试数据库&#xff0c;包含了各种攻击 payload 的测试用例集合。 主要功能&#xff1a; OS 命令注入 目录遍历 文件上传绕过 身份验证绕过 XSS SQL 注入 HTTP 头注入 CRLF 注入 NoSQL 注入等 还包含了一些用不同语言写成的 webshell 与常用的账…

什么是 MQ

MQ的概念 MQ &#xff08;Message Queue&#xff09;消息队列&#xff0c;是在消息传输过程中存储消息的容器。多用于分布式系统之间的通信。 队列是基础数据结构中 “先进先出” 的一种数据结构。 消息对列&#xff0c;指把要传输的数据消息放在队列中&#xff0c;用队列机制…

spring之基于p命名c命名空间的注入

文章目录前言一、p命名空间1.1、编写一个普通的Java类1.2、spring配置文件1.3、测试1.4、运行结果二、c命名空间2.1、编写一个普通的Java类2.2、spring配置文件2.3、测试2.4、运行结果总结前言 P命名空间注入&#xff1a; 目的&#xff1a;简化set方法注入 使用p命名空间注入的…

C++ 哈希表的总结与例题

文章目录CSTL哈希表设计哈希集合设计哈希映射哈希集合例题一&#xff1a;只出现一次的数字例题二&#xff1a;快乐数哈希映射例题一&#xff1a;两数之和例题二&#xff1a;两个列表的最小索引总和例题三&#xff1a;字符串中的第一个唯一字符设置键例题一&#xff1a;字母异位…

安全进阶:虚拟防火墙基础实验

实验拓扑 网络拓扑及IP编址如上图所示&#xff1b; 实验需求 PC2与Server2属于一个敏感的业务&#xff0c;这个业务的流量要求与防火墙上的其他流量完全隔离&#xff0c;使用虚拟防火墙技术实现这个需求&#xff1b; PC2要求能够访问Server2&#xff1b;PC2属于Trust域&#…

Exception in thread “main“ java.lang.UnsupportedOperationException解决办法

1.首先报错UnsupportedOperationException 是因为我们用的是 List<Integer> list1 Arrays.asList(2, 3, 5);这个方式获取的集合,该集合底层没有重写一些方法,所以报错 解决方案 定义新集合接收上一步的数据,然后用新集合来操作就行 package day01;import java.util.A…

元数据管理-解决方案调研二:元数据管理解决方案——Saas/内部解决方案(1)

Saas/内部解决方案 2.1、Data Galaxy 地址&#xff1a;The 360 Data Catalog for datagovernance - DataGalaxy 特点&#xff1a;实现数据治理最佳方式 1、理解业务数据并可以共享通用定义&#xff1b;即由团队成员共同维护定义业务术语词汇的知识库 2、统一企业数据字典&…

DolphinDB Python API 离线安装教程

出于安全考虑&#xff0c;通常生产环境与互联网隔离&#xff0c;因此无法使用 pip install 在线安装 DolphinDB Python API&#xff08;以下简称 Python API&#xff09;。本文介绍如何离线安装 Python API 环境&#xff0c;包括 conda 环境和 wheel 安装两种方式。用户可根据生…

RobotFramework 接口测试实战落地

目前我在负责一个APP的测试工作。在项目中使用 RobotFramework作为工具搭建接口自动化框架&#xff0c;进行接口自动化的工作。 本文将从我个人对接口测试和自动化框架的理解以及RobotFramework在实际项目中落地两个大方面进行讲解。 对接口测试的理解 浅谈接口自动化框架 …

图片批量转为PDF怎么转?这些方法亲测实用

你们平时在整理照片的时候&#xff0c;有把多张图片转为PDF文件的需求吗&#xff1f;我因为工作需要&#xff0c;会拍摄和存储很多照片&#xff0c;而且经常需要将这些照片归类&#xff0c;整合到一个PDF文件中。可能有的小伙伴还不知道多张图片转PDF怎么转&#xff1f;别着急&…

2022全球智慧城市大会 升哲科技:以人为核心推动智慧城市建设

11 月 15 日 至 16 日&#xff0c;“全球智慧城市大会 成都”在成都召开。此次会议主题为“人民 激活 城市”&#xff0c;与“全球智慧城市大会 巴塞罗那”同期举办&#xff0c;采用线上与线下结合模式&#xff0c;链接全球 80 多个国家 600 多座城市参会代表。升哲科技&am…

三冲IPO的思派健康如何承载腾讯的互联网医疗梦?

腾讯在互联网医疗领域的“大将”思派健康10月27日向港交所主板递交第三次上市申请&#xff0c;在2021年8月6日和2022年2月25日两次“折戟”港交所后&#xff0c;此次能否如愿以偿仍未可知。 我国当前正步入老龄化社会&#xff0c;慢性病人口增加&#xff0c;市场对医疗健康方面…

2000年-2020年31省市城乡收入差距泰尔指数

2000年-2020年31省市城乡收入差距泰尔指数 1、来源&#xff1a;统计NJ和各省NJ 2、时间区间为2000-2020年 3、指标包括&#xff1a;居民人均可支配收入、城镇家庭可支配收入、农村家庭可支配收入、总人口、城镇化率、城镇总人口、农村总人口、城镇总收入、农村总收入、总收…