密码技术学习二:认证

news2025/1/15 14:08:50

1、单向散列函数

概念:单向散列函数有一个输入和一个输出,其中输入称为消息,输出称为散列值。单向散列函数可以根据消息的内容计算出散列值,而散列值就可以被用来检查消息的完整性;

        单向散列函数输出的散列值也称为消息摘要或指纹。

 

1.1、MD4、MD5

MD4:1990年Rivest设计的单向散列函数,能够产生128位的散列值。不过现在已经不安全了。

MD5:Rivest1991年设计的,同样产生128位的散列值,也不安全了。

1.2、SHA-1、SHA-256、SHA-384、SHA-512

这些都是美国国家标准技术研究所设计的,SHA-1能产生160位长度的散列值,其中SHA-256、SHA-384、SHA-512能分别产生长度为256、384、512比特的散列值,但是消息长度也有上限,SHA-256是2^64比特,SHA-384和SHA-512消息长度上限是2^128比特。

1.3、单向散列函数无法解决的问题

单向散列函数能够辨别出篡改,但无法辨别伪装,因为有可能你得到的散列值,是另有其人通过一样的单向散列函数计算后给你的。想解决这个问题还要用到认证;用于认证的技术包括消息验证码和数字签名。

2、消息认证码

概念:消息认证码是一种确认完整性并进行认证的技术,取三个单词的首字母大写,简称MAC。

可以勉强理解为,消息认证码是密钥加密过的散列值。

 

2.1、密钥配送问题

这个问题和对称密码中密钥配送问题很像,解决办法也有:密钥分配中心、公钥密码等。

2.2、无法防止否认

假如A收到了包含MAC的消息,然后密钥只有A和B共享的,所以作为A一定能确定消息是B发送的,但是A无法像第三个人证明消息是B发送的。因为在第三个人看来,密钥只有A和B有,B能说“我没有给A发消息,A可能是自己编的消息”。结论:A和B虽然都明白是谁发的,但是第三者无法确定,这叫做否认,消息认证码无法解决否认。

3、数字签名

3.1概念:

数字签名技术中有两种行为:

  • 生成消息签名:由消息发送者来生成签名,即由消息内容计算数字签名的值。
  • 验证消息签名:一般有消息接收者验证,也可由需要验证消息第三方来完成。

注意:

        数字签名相当于现实世界中的盖章签字,使用数字签名能识别篡改和伪装,因为数字签名技术中消息发送者和接收者使用了不同的密钥;数字签名对签名密钥和验证密钥进行了区分,使用验证密钥是无法生成签名的,此外,签名密钥只能由签名的人持有,而验证密钥可以由任何需要验证签名的人持有。

        这里发现没,它和公钥密码十分类似,公钥密码中是,加密密钥无法进行解密,解密密钥只有需要解密的人持有,而加密密钥可以是任何需要加密的人持有。没错,数字签名就是将公钥密码“反过来使用

 

3.2具体实现方法

  • 直接对消息进行签名
  • 对消息的散列值进行签名

3.2.1直接对消息进行签名

前提是发送消息者事先生成密钥对,将验签密钥(公钥)交给消息接收者。

 3.2.2对消息的散列值签名

        上面方法是对消息进行签名,若是消息长度太大,那么加密的过程会非常耗时,所以可以通过对消息的散列值进行签名,即消息的发送者和接收者都多了一步计算单向散列函数的步骤:

 3.3作用

  • 识别篡改:就是验签过程,若是比对失败那就是篡改了;
  • 防止否认:因为签名密钥只有一个人有,就是发送者,它无法抵赖;
  • 不保证机密性:因为连消息原文都直接发送过去了,肯定不存在机密性。

4、证书——为公钥加上数字签名

4.1、证书简介

公钥证书:和驾照很类似,里面有本人的各种个人信息和相关部门的公章,证书也有所有者的个人信息以及相关认证机构施加的数字签名,只要看到公钥证书我们就知道认证机构认定此证书属于本人,公钥证书简称证书。

证书的应用场景

 简单理解,证书就是由第三方保证公钥的合法性。

证书标准规范X.509:大致包括三部分内容

  • 签名前的证书:签名对象的信息
  • 数字签名算法:对证书签名时所使用的算法
  • 数字签名:对证书施加的数字签名

4.2 公钥基础设施PKI

公钥基础设施:为了更有效地运用公钥而制定的一系列规范和规格的总称。

组成要素

  • 用户——使用PKI的人
  • 认证机构——颁发证书的人
  • 仓库——保存证书的数据库

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

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

相关文章

ArcGis制作深度学习标签

项目场景: 在导入的tif文件上制作深度学习标签文件 问题描述 cv2读取导出标签tif文件是出现错误: imread_(/kaggle/input/a-small-jpg/headwrong.tif): cant read header: OpenCV(4.5.4) /tmp/pip-req-build-jpmv6t9_/opencv/modules/imgcodecs/src/grf…

independent watchdog 独立看门狗 window watchdog 窗口看门狗

看门狗(watchdog) 防止硬件因外界电磁场干扰或其他导致不能正常工作的,导致不可预料后果,对芯片进行实时检测的模块或芯片称为看门狗。 看门狗工作过程 启动看门狗后,有一个计数器从最大值递减,计数器减…

双层pdf-不用手动添加目录超链接教程

双层pdf最大的特点是文件既可以是文本型的(比如由word生成的文件),也可以是图像型的,既可以100%保留原始版面效果,又便于建立索引数据库,进行科学的管理。在标书中应用广泛。 使用软件:wordAdo…

Linux文件操作(基础IO)

在C、C、Python等语言中存在对文件操作的接口,通过这些接口我们可以创建文件,并实现文件内容的写入和读取,本文将介绍Linux下我们是如何进行文件操作的,并且深入底层的解析文件操作的原理。 文章目录一、C语言中的文件接口1.1 fop…

【pandas】教程:1-处理什么样的数据

pandas 处理什么样的数据? pandas 数据表格的表示 想存储一些 Titanic 乘客数据,知道姓名,年龄,性别等; df pd.DataFrame({"Name": ["Braund, Mr. Owen Harris","Allen, Mr. William Henry…

仪表板工具Stimulsoft Dashboards仪表板中的数据筛选元素介绍

Stimulsoft Ultimate是用于创建报告和仪表盘的通用工具集,包含九种产品,可以为任何受支持的平台创建报告和仪表板,适用于WinForms,ASP.NET,.NET Core,JavaScript,WPF,PHP&#xff0c…

Java EE 期末复习提纲【太原理工大学】

目录 一、题型 二、考点 1. MyBatis 2. Spring 3. Spring MVC 一、题型 1. 选择题 20 个,每个 1 分,共 20 分。 2. 填空题 20 个,每个 1 分,共 20 分。 3. 判断题 10 个,每个 1 分,共 10 分。 4. 程…

SSM1---MyBatis

MyBatis MyBatis环境搭建 我这个是使用IDEA&#xff0c;基于Maven搭建的 首先建立一个空的Maven项目或者模块在pom.xml中引入所需依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"…

技术分享| 复盘一起看球场景

卡塔尔世界杯已经落幕&#xff0c;作为“后新冠时代”的首个大型全球体育赛事&#xff0c;也同时被多个“史上首次”与“历史之最”所装点&#xff0c;但同时也是国内疫情的高峰期&#xff0c;相信大多数人都是顶着高烧咳嗽跟好友线上看完了总决赛&#xff0c;对于线上互动一起…

民锋国际期货:期货交易 | 博弈之道,遵守法则

期货交易 | 博弈之道&#xff0c;遵守法则 对于一些好的书籍我会阶段性复读&#xff0c;因为每一次阅读都会有新的收获和更深的理解。这么做的目的是经过反复的咀嚼消化将其运用到交易实践中&#xff0c;为己所用。 最近重温了《海龟交易法则》&#xff0c;而第一次读这本书应…

C++TensorRT | TensorRT模型编译流程

tensorrt的工作流程如下图: 首先定义网络 优化builder参数 通过builder生成engine,用于模型保存、推理等 engine可以通过序列化和逆序列化转化模型数据类型(转化为二进制byte文件,加快传输速率) 再进一步推动模型由输入张量到输出张量的推理 代码结构: 定义 builder, con…

由手机号正则引发的思考,正则属性 lastIndex

问题&#xff1a; let reg /^1[3456789]\d{9}$/g 正则是验证手机号的证&#xff0c;为何突然不能验证正确的手机号了呢&#xff1f;其中有何蹊跷&#xff1f; 解决方案&#xff1a;底部有3种解决方案&#xff0c;方案3解决最稳妥 先来看一段正则&#xff1a; let reg /^1[3…

物联网架构实例—部标过检工具使用(物联网套件压测)

1.安装包 下载 2.安装MySQL数据库 如果安装时提示缺少C 2015的组件&#xff0c;需要执行vc_redist.x64.exe进行修改&#xff0c;直接双击执行vc_redist.x64.exe即可。 安装到这里&#xff0c;除了root账户外&#xff0c;另外需要增加一个gps账户&#xff0c;这个是过检工具连…

【电商】电商后台---价税管理

文章对电商后台系统中的价税管理进行了系统的介绍&#xff0c;希望通过此文能够加深你对电商系统的认识。 前面介绍了商品管理部分&#xff0c;从商品的属性、分类到商品资质、商品图片都做了说明&#xff0c;在梳理的过程中越发的感觉到每部分细节才是关键。但实话实说通过前几…

2023年全国NPDP产品经理国际认证火热招生啦

产品经理国际资格认证NPDP是国际公认的唯一的新产品开发专业认证&#xff0c;集理论、方法与实践为一体的全方位的知识体系&#xff0c;为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会&#xff08;PDMA&#xff09;成立于1979年…

3节点Fate集群实战记录 -- 纵向联邦学习

前一篇博客记录了3节点fate集群实现横向联邦学习的实践过程link&#xff0c;本篇接着记录纵向联邦学习的实践过程&#xff0c;其中有些简单步骤未详细列出&#xff0c;具体执行方法可以参考上篇博客。 纵向联邦的场景简单说就是A和B两数据方&#xff0c;A知道B有A没有的特征bx&…

自监督学习UNSUPERVISED REPRESENTATION LEARNING BY PREDICTING IMAGE ROTATIONS论文笔记

文章目录一、自监督简介1.监督和无监督学习2.无监督学习3.自监督学习二、论文内容0.辅助任务1.出发点2.符号假设3.网络模型4.优点三、实验结果1.CIFAR实验a.评估学习到的特征层次结构b.探讨学习到的特征质量和辅助任务旋转角度之间的关系c.对比实验2.在IMageNet上不同任务的实验…

使用固定TCP端口地址远程MySQL数据库【内网穿透】

系列文章 公网远程连接内网MySQL数据库【内网穿透】使用固定TCP端口地址远程MySQL数据库【内网穿透】 在上篇文章中&#xff0c; 我们成功实现了在公网环境下远程连接内网MySQL数据库。但由于使用的免费的cpolar内网穿透&#xff0c;其所生成的公网地址为随机临时地址&#xf…

Java swing实现的一款餐厅点餐系统

一、项目简介 本项目是一套Java swing实现的一款餐厅点餐系统&#xff0c;主要针对计算机相关专业的正在做bishe的学生和需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目可以直接作为bishe使用。 项目都经过严格调试&#xff0c;确…

Python 面向对象编程 (二) —— 类函数的定义和构造

【无限嚣张&#xff08;菜菜&#xff09;】&#xff1a;hello您好&#xff0c;我是菜菜&#xff0c;很高兴您能来访我的博客&#xff0c;我是一名爱好编程学习研究的菜菜&#xff0c;每天分享自己的学习&#xff0c;想法&#xff0c;博客来源与自己的学习项目以及编程中遇到问题…