密码学科普

news2025/1/8 23:52:39

1 信息传输中的安全隐患

1. 窃听

解决方案:明文加密,X只能窃听到密文

2. 假冒

解决方案:消息认证码或者数字签名

3. 篡改

解决方案:消息认证码或者数字签名

4. 事后否认

解决方案:数字签名

2 对称加密/非对称加密

1. 对称加密

优点:加密解密速度快

缺点:两方需要使用同一个密钥,密钥的传递有风险

2. 非对称加密

优点:不会有密钥分配问题

缺点:

  1. 加密解密速度慢

  2. 还是有窃听风险

3. 混合加密

用非对称加密算法去加密对称密钥

3 hash函数/消息认证码

1. hash函数

哈希值是一种将任意长度的输入数据通过哈希函数计算得到的固定长度输出值,具有不可逆、唯一和抗碰撞等特性。

  • 不可逆性:给定一个哈希值,无法通过任何有效的方法推导出其对应的输入数据,除非通过穷举法尝试所有可能的输入数据。

  • 唯一性:给定一个输入数据,其对应的哈希值是唯一确定的,不会因为时间、地点、环境等因素而发生变化。

  • 抗碰撞性:很难或者不可能找到两个不同或者不等价的输入数据,使得它们具有相同的哈希值。

2. 消息认证码

Message Authentication Code,简称 MAC

常见的 MAC 算法

1. HMAC(基于哈希的消息认证码):

使用哈希函数(如 SHA-256)和一个秘密密钥来生成 MAC 值。

常用于 HTTPS、IPsec 等协议中。

2. CMAC(基于块密码的消息认证码):

使用块加密算法(如 AES)生成 MAC 值。

常用于无线通信和支付系统中。

4 数字签名

中间人攻击:替换公钥,B不知道收到的公钥是否是A的

5 数字证书/证书链与CA

数字证书的生成

数字证书的验证

风险:X假冒CA

证书链

6 Https

证书的颁发和认证

  1. 公开密钥(Public Key) 🔑

数字证书的核心功能之一是包含证书持有者的公开密钥。这是一个非常关键的信息,因为它允许数据发送者加密信息,仅证书持有者的私钥能解开。这种机制确保了数据在传输过程中的安全性。

  1. 主体信息(Subject) 🆔

证书中还会详细记录主体信息,即证书持有者的身份信息。这可能包括个人名称、组织名称、部门名称等。通过这些信息,可以验证证书持有者的真实身份,从而增加交易的信任度。

  1. 颁发者(Issuer) 🏢

颁发者信息表明了哪一个权威机构颁发了这个证书。这是证书信任链的重要一环,帮助用户识别和信任证书的有效性。权威机构的严格审核流程保证了证书的可靠性。

  1. 有效期(Validity Period) 📅

每个数字证书都有其有效期限,这是证书可被认为有效的时间范围。有效期通常包含起始日期和结束日期。过期的证书不能被信任,需及时更新。

  1. 证书序列号(Serial Number) 🔢

为了确保每个证书的唯一性,每个证书都会被赋予一个独一无二的序列号。这个号码在证书的生命周期内保持不变,可以用来追踪或撤销证书。

  1. 数字签名(Digital Signature) 🖋️

证书中还包含了颁发机构对证书的数字签名。这是一种算法处理的结果,用来验证证书的完整性和真实性。只有通过了数字签名的验证,证书内容才被认为是未被篡改的。

  1. 使用限制(Usage Restrictions) 🚫

有些证书可能会有特定的使用限制,例如只能用于加密邮件、只能 用于身份验证等。这些限制确保证书不会被误用,同时也保护了证书持有者的权益

单向认证流程

单向认证流程中,服务器端保存着公钥证书和私钥两个文件,整个握手过程如下:

客户端发起建立HTTPS连接请求,将SSL/TLS 协议版本的信息发送给服务器端;

服务器端将本机的公钥证书(server.crt)发送给客户端;

客户端读取公钥证书(server.crt),取出了服务端公钥;

客户端生成一个随机数(密钥R),用刚才得到的服务器公钥去加密这个随机数形成密文,发送给服务端;

服务端用自己的私钥(server.key)去解密这个密文,得到了密钥R

服务端和客户端在后续通讯过程中就使用这个密钥R进行通信了

双向认证流程

客户端发起建立HTTPS连接请求,将SSL/TLS协议版本的信息发送给服务端;

服务器端将本机的公钥证书(server.crt)发送给客户端;

客户端读取公钥证书(server.crt),取出了服务端公钥;

客户端将客户端公钥证书(client.crt)发送给服务器端;

服务器端使用根证书(root.crt)解密客户端公钥证书,拿到客户端公钥;

客户端发送自己支持的加密方案给服务器端;

服务器端根据自己和客户端的能力,选择一个双方都能接受的加密方案,使用客户端的公钥加密后发送给客户端;

客户端使用自己的私钥解密加密方案,生成一个随机数R,使用服务器公钥加密后传给服务器端;

服务端用自己的私钥去解密这个密文,得到了密钥R

服务端和客户端在后续通讯过程中就使用这个密钥R进行通信了。

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

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

相关文章

复合机器人助力手机壳cnc加工向自动化升级

在当今竞争激烈的制造业领域,如何提高生产效率、降低成本、提升产品质量,成为众多企业面临的关键挑战。尤其是在手机壳 CNC 加工这一细分行业,随着市场需求的持续增长,对生产效能的要求愈发严苛。而复合机器人的出现,正…

爬虫学习记录

1.概念 通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程 通用爬虫:抓取的是一整张页面数据聚焦爬虫:抓取的是页面中的特定局部内容增量式爬虫:监测网站中数据更新的情况,只会抓取网站中最新更新出来的数据 robots.txt协议: 君子协议,网站后面添加robotx.txt…

黑马头条平台管理实战

黑马头条 08平台管理 1.开始准备和开发思路1.1.开发网关1.2编写admin-gateway 代码 2.开发登录微服务2.1编写登录微服务 3.频道管理4.敏感词管理5.用户认证审核6.自媒体文章人工审核99. 最后开发中碰到的问题汇总1.关于nacos 配置 问题2.在开发频道管理新增频道后端无法接收到前…

实验四 数组和函数

实验名称 实验四 数组和函数 实验目的 (1)掌握一维、二维数组以及字符数组的定义、元素引用和编程方法。 (2)掌握字符串常用程序的设计方法。 (3)掌握函数定义和调用的方法,以及函数参数传…

Idea(中文版) 项目结构/基本设置/设计背景

目录 1. Idea 项目结构 1.1 新建项目 1.2 新建项目的模块 1.3 新建项目模块的包 1.4 新建项目模块包的类 2. 基本设置 2.1 设置主题 2.2 设置字体 2.3 设置注释 2.4 自动导包 2.5 忽略大小写 2.6 设置背景图片 3. 项目与模块操作 3.1 修改类名 3.2 关闭项目 1. I…

Android Audio基础(53)——PCM逻辑设备Write数据

1. 前言 本文,我们将以回放(Playback,播放音频)为例,讲解PCM Data是如何从用户空间到内核空间,最后传递到Codec。 在 ASoC音频框架简介中,我们给出了回放(Playback)PCM数据流示意图。: 对于Linux来说,由于分为 user space 和kernel space,而且两者之间数据不能随便…

Android Audio基础(54)——数字音频接口 I2S、PCM(TDM) 、PDM

1. 概述 本文介绍的数字音频接口全部是硬件接口,是实际的物理连线方式,即同一个PCB板上IC芯片和IC芯片之间的通讯协议。 PCM、PDM也可以用于表示音频编码格式,。编码格式是指模拟信号数字化的方式。 I2S和PCM(TDM)接口传输的数据是PCM格式的音频数据。这两种协议是最为常见…

HDFS架构原理

一、HDFS架构整体概述 HDFS是Hadoop Distribute File System 的简称,意为:Hadoop分布式文件系统。HDFS是Hadoop核心组件之一,作为大数据生态圈最底层的分布式存储服务而存在。HDFS解决的问题就是大数据如何存储,它是横跨在多台计算机上的文件…

windows11(或centos7)安装nvidia显卡驱动、CUDA、cuDNN

本文是我瞎搞时写的问题汇总及参考文献,记录了一些问题解决的进度及对问题的思考。 最近一次更新时间:2025年1月4日 一、安装或更新nvidia显卡驱动 首先,需要确保你的设备安装了最新的显卡驱动。 (1)centos7安装显…

2025-01-04 Unity插件 YodaSheet2 —— 基础用法

文章目录 环境配置1 创建 YadeSheetData2 读取方式2.1 表格读取2.2 列表读取 3 自定义设置3.1 修改代码生成位置3.2 添加列表支持3.2.1 修改 DataTypeMapper.cs3.2.2 修改 SheetDataExtensions.cs3.2.3 修改 CodeGeneratorEditor.cs3.2.4 测试 ​ 官方文档: Unity …

STM32 拓展 RTC(实时时钟)

RTC简介 RTC(Real Time Clock,实时时钟)。是一个掉电后仍然可以继续运行的独立定时器。 RTC模块拥有一个连续计数的计数器,在相应的软件配置下,可以提供时钟日历的功能。修改计数器的值可以重新设置当前时间和日期 RTC还包含用于管理低功耗模式的自动唤醒单元。 RTC实质…

微信小程序实现登录注册

文章目录 1. 官方文档教程2. 注册实现3. 登录实现4. 关于作者其它项目视频教程介绍 1. 官方文档教程 https://developers.weixin.qq.com/miniprogram/dev/framework/路由跳转的几种方式: https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.switchTab…

[大模型开源]SecGPT 网络安全大模型

模型介绍 SecGPT的愿景是将人工智能技术引入网络安全领域,以提高网络防御的效率和效果。其使命是推动网络安全智能化,为社会提供更安全的数字生活环境。 ① SecGPT开源地址:https://github.com/Clouditera/secgpt② 模型地址:htt…

解决“KEIL5软件模拟仿真无法打印浮点数”之问题

在没有外部硬件支持时,我们会使用KEIL5软件模拟仿真,这是是仿真必须要掌握的技巧。 1、点击“Project”,然后点击“Options for target 项目名字”,点击“Device”,选择CPU型号。 2、点击“OK” 3、点击“Target”,勾选“Use Mi…

C语言 扫雷程序设计

目录 1.main函数 2.菜单打印menu函数 3.游戏game函数 4.宏定义 5.界面初始化 6.打印界面 7.设置雷 8.统计排查坐标周围雷的个数 9.排查雷 10.总代码 test.c代码 game.h代码 game.c代码 结语: 一个简单的扫雷游戏,通过宏定义可以修改行列的…

Excel 技巧03 - 如何对齐小数位数? (★)如何去掉小数点?如何不四舍五入去掉小数点?

这几个有点儿关联,我都给放到一起了,不影响大家分别使用。 目录 1,如何对齐小数位数? 2,如何去掉小数点? 3,如何不四舍五入去掉小数点? 1,如何对齐小数位数&#xff…

【大模型+本地自建知识图谱/GraphRAG/neo4j/ollama+Qwen千问(或llama3)】 python实战(中)

一、建立基本的知识图谱并导入neo4j 这里我举例用的属性表、关系表,大概格式如下 id名字颜色a1苹果红色 startrelenda1属于b1 启动neo4j(关于neo4j的安装此处不再赘述) import pandas as pd from py2neo import Graph, Node, Relationship…

量子计算遇上人工智能:突破算力瓶颈的关键?

引言:量子计算遇上人工智能——突破算力瓶颈的关键? 在数字化时代的浪潮中,人工智能(AI)正以前所未有的速度改变着我们的生活,从语音助手到自动驾驶,从医学诊断到金融分析,无不彰显其…

jenkins入门12-- 权限管理

Jenkins的权限管理 由于jenkins默认的权限管理体系不支持用户组或角色的配置,因此需要安装第三发插件来支持角色的配置,我们使用Role-based Authorization Strategy 插件 只有项目读权限 只有某个项目执行权限

IWOA-GRU和GRU时间序列预测(改进的鲸鱼算法优化门控循环单元)

时序预测 | MATLAB实现IWOA-GRU和GRU时间序列预测(改进的鲸鱼算法优化门控循环单元) 目录 时序预测 | MATLAB实现IWOA-GRU和GRU时间序列预测(改进的鲸鱼算法优化门控循环单元)预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现IWOA-GRU和GRU时间序列预测…