【密码学】消息认证

        你发送给朋友一条消息(内容:明天下午来我家吃饭),这一过程中你不想让除你朋友以外的人看到消息的内容,这就叫做消息的机密性,用来保护消息机密性的方式被叫做加密机制。

        现在站在朋友的视角,某一天他收到了一封来信,他怎么知道消息是谁发给他的呢?(也许你想到了,签个名不就好了,但如果有人伪造我的签名给我朋友发消息怎么办),他怎么得知消息里面的内容是真实的呢?(万一有人篡改了消息内容:“后天早上来我家吃饭”)

        这时候我们想确保对消息内容的真实性和完整性(比如没有被篡改),也想确保消息来源的真实性(是我的朋友发给我的,不是其他别的什么人)。那么这就需要一种方式来对消息进行处理,用来保护消息的完整性,内容真实性和来源真实性,这种方式被叫做消息认证!

一、什么是消息认证?

        消息认证(Message Authentication),也称为数据源认证,是信息安全领域的一个关键概念,主要涉及验证接收到的数据是否真实无误地来源于声称的发送方,以及数据在传输过程中是否未被篡改。消息认证确保了信息的完整性真实性防止中间人攻击重放攻击等安全威胁。

【注】拿上面的例子来说明重放攻击,比如我朋友上周已经来我家吃过饭了,这周我的朋友又收到了一条消息,和上周我发他的一模一样,因为是一模一样所以我的朋友自然也就不会怀疑,他屁颠屁颠的跑来我家吃饭,结果我说我没有发消息给他,他失落的回到家,发现家里被入室盗窃了。(这只是一种重放攻击所造成的损失的假设,实际上网络安全中重放攻击更多的是重放某个获取东西的请求,这样攻击者就能通过重放攻击得到只有授权用户才能得到的响应)

消息认证的目的:消息认证的主要目的是验证消息的完整性(完整性认证)确认消息的来源(源点认证)。它确保消息在传输过程中未被篡改,并且来自声称的发送方。

【注】在消息认证之前,收发双发就已经通过某种方式建立了信任关系,并且共享了密钥。这里更确切的说,我可以和一群人建立信任关系,我们都共享了密钥,所以消息认证并不能让我知道我收到的消息到底是谁发来的,我只知道是我信任的人(持有密钥的人)发给我的。

二、实现消息认证的方式

(1)消息认证码 MAC

        消息认证码(Message Authentication Code,简称MAC)是消息认证的一种实现方式,它通常基于共享密钥,由发送方使用密钥和消息内容生成一个短的固定长度的值,然后将这个值附加在消息后面一起发送。接收方收到消息后,使用同样的密钥和消息内容重新计算MAC值,然后与接收到的MAC值进行比较,以此来验证消息的真实性和完整性。

MAC的主要特性包括:

  1. 完整性:MAC能够检测出传输过程中的任何更改,无论是无意的错误还是恶意的篡改。

  2. 真实性:由于MAC是使用共享密钥计算的,所以只有持有相同密钥的实体才能生成有效的MAC,这保证了消息来源于持有正确密钥的实体。因此消息的真实性问题转换为了如何安全的分发密钥。一旦密钥泄露那么也没有办法确认对方的真实性。

  3. 机密性MAC本身并不提供对消息内容的加密,但是它可以与加密技术结合使用,以实现同时保护消息的隐私和完整性。

(2)消息检测码 MDC

        消息检测码(Message Detection Code,简称MDC)是一种用于检测数据是否发生变化的校验码,但与消息认证码(MAC)不同的是,MDC不提供数据源的身份验证或保密性

        MDC主要用于检测数据在传输过程中是否发生了非故意的改变,例如由噪声、干扰或其他物理因素引起的错误。它不提供防止恶意篡改的功能,因为任何人都可以生成正确的MDC,只要他们有原始数据。

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

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

相关文章

css预编译器--sass

Sass Sass 提供了 变量(variables)、嵌套规则(nested rules)、 混合(mixins)、 函数(functions),目前我使用最多的还是变量和嵌套规则,貌似目前css也支持嵌套…

华为HCIP Datacom H12-821 卷38

1.多选题 下面关于 BGP中的公认属性的描述,正确的是 A、公认必遵属性是所有BGP路由器都识别,且必须存在于Updata消息中心 B、BGP必须识别所有公认属性 C、公认属性分为公认必遵和可选过渡两种 D、公认任意属性是所有BGP造由器都可以识别&#xff0c…

第100+15步 ChatGPT学习:R实现Ababoost分类

基于R 4.2.2版本演示 一、写在前面 有不少大佬问做机器学习分类能不能用R语言,不想学Python咯。 答曰:可!用GPT或者Kimi转一下就得了呗。 加上最近也没啥内容写了,就帮各位搬运一下吧。 二、R代码实现Ababoost分类 &#xff…

mybatis动态传入参数 pgsql 日期 Interval ,day,minute

mybatis动态传入参数 pgsql 日期 Interval 在navicat中,标准写法 SELECT * FROM test WHERE time > (NOW() - INTERVAL 5 day)在mybatis中,错误写法 SELECT * FROM test WHERE time > (NOW() - INTERVAL#{numbers,jdbcTypeINTEGER} day)报错内…

根据脚手架archetype快速构建spring boot/cloud项目

1、找到archetype,并从私仓下载添加archetype到本地 点击IDEA的file,选择new project 选择maven项目,勾选create from archetype 填写archetype信息,(repository填写私仓地址) 2、选择自定义的脚手架arche…

C++进阶:继承和多态

文章目录 ❤️继承🩷继承与友元🧡继承和静态成员💛菱形继承及菱形虚拟继承💚继承和组合 ❤️多态🩷什么是多态?🧡多态的定义以及实现💛虚函数💚虚函数的重写&#x1f499…

海外媒体发稿-全媒体百科

全球知名媒体机构 在全球范围内,有许多知名的新闻机构负责报道世界各地的新闻事件。以下是一些国外常见的媒体机构: AP(美联社)合众国际社(UPI)AFP(法新社)EFE(埃菲通讯社)Europa …

iPhone删除所有照片的高效三部曲

苹果手机用久了,系统缓存包括自己使用手机留下的内存肯定会越来越多。其中,相册中的照片数量可能会急剧增加,占据大量的存储空间。当用户们想要对相册进行彻底清理,实现iPhone删除所有照片时,不妨跟随以下详细的三部曲…

【Redis】哨兵(sentinel)

文章目录 一、哨兵是什么?二、 哨兵sentinel文件参数三、 模仿主机redis宕机四、哨兵运行流程和选举原理SDOWN主观下线ODOWN客观下线 五、 使用建议 以下是本篇文章正文内容 一、哨兵是什么? 哨兵巡查监控后台master主机是否故障,如果故障了…

Elasticsearch 更新指定字段

Elasticsearch 更新指定字段 准备条件查询数据更新指定字段更新子级字段 准备条件 以下查询操作都基于索引crm_clue来操作,索引已经建过了,本文主要讲Elasticsearch更新指定字段语句,下面开始写更新语句执行更新啦! 查询数据 查…

Linux(Ubuntu)/Windows-C++云备份实现

目录 项目介绍:概要设计:技术调研 详细设计:目录监控模块样例编写(c17的filesystem中的文件遍历功能) 数据管理模块样例编写(unordered_map格式存储) 文件压缩与解压缩模块bundle数据压缩库使用…

【C++】开源:paho-mqtt-cpp库配置与使用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍paho-mqtt-cpp库配置与使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下&#xff…

【qt】客户端连接到服务器

获取到IP地址和端口号. 通过connectToHost() 来进行连接. 对于客户端来讲,只需要socket即可. 客户端连接服务端只需要使用套接字(Socket)来进行通信。客户端通过创建一个套接字来连接服务端,然后可以通过套接字发送和接收数据。套接字提供了一种简单而灵活的方式来…

pycharm 占满磁盘

磁盘里没装什么大文件,发现磁盘被占的越来越满,使用工具查看到底是哪个文件如此之大。 发现罪魁祸首是pycharm!!! 根据工具的提示找到对应的路径文件:E:\pycharm\PyCharmCE2022.3\python_packages 发现pa…

海外短剧开源系统UNIAPP源码(支持多语言/海外支付/快捷登录)

给大家推荐一款非常好的海外短剧系统源码,这款源码案例应该最多的。 他们的开源地址:https://gitee.com/qiao-yonggang/haiwaiduanju 这套系统的优势: 支持世界的所有语言,可后台自定义设置支持paypal stripe pix等多种海外支付…

Redis的配置优化、数据类型、消息队列

文章目录 一、Redis的配置优化redis主要配置项CONFIG 动态修改配置慢查询持久化RDB模式AOF模式 Redis多实例Redis命令相关 二、Redis数据类型字符串string列表list集合 set有序集合sorted set哈希hash 三、消息队列生产者消费者模式发布者订阅者模式 一、Redis的配置优化 redi…

easyExcel 不规则模板导入数据

文章目录 前言一、需求和效果二、难点和思路三、全部代码踩坑 前言 之前分享的 EasyExcel 批量导入并校验数据,仅支持规则excel,即首行表头,下面对应数据,无合并单元格情况。 本篇主要解决问题: 模板excel 表头不在首…

基于PCIe总线架构的2路1GSPS AD、4路1GSPS DA信号处理平台(100%国产化)

板卡概述 PCIE723-165是基于PCIE总线架构的2通道1GSPS采样率14位分辨率、4通道1GSPS采样率16位分辨率信号处理平台,该板卡采用国产16nm FPGA作为实时处理器,支持2路高速采集以及4路高速数据回放,板载2组DDR4 SDRAM大容量数据缓存,…

ElasticSearch 深度分页详解

原文链接:https://zhuanlan.zhihu.com/p/667036768 1 前言 ElasticSearch 是一个实时的分布式搜索与分析引擎,常用于大量非结构化数据的存储和快速检索场景,具有很强的扩展性。纵使其有诸多优点,在搜索领域远超关系型数据库&…

IDEA 中的调试方式(以 java 为例)

文章目录 IDEA 中的调试方式(以 java 为例)1. 基本介绍2. 断点调试的快捷键2.1 设置断点并启动调试2.3 快捷键 IDEA 中的调试方式(以 java 为例) 在开发中查找错误的时候,我们可以用断点调试,一步一步的看源码执行的过程,从而发现错误所在。 …