密码学基础概念

加密性

什么是加密?

1.对原有的明文数据,执行某种运算,得到密文数据。

2.密文数据对于未授权人员而言,在一定上程度上加大了解读的难度

3.加密功能用于实现机密性

什么是密钥?

1.如同持有保险柜钥匙才能打开保险柜一样。

2.执行加密或解密过程中,均需要“密钥”的参与

明文+算法+密钥=密文

什么是算法?

1.依据密钥的使用方法,可以将算法分为两种,包括对称加密算法,非对称加密算法。

什么是对称加密算法?

1.使用“同一把密钥”来执行加密和解密(明文加密密钥和密文解密密钥相同)

2.对称加密算法有 DES、3DES、AES

明文加密密钥 Huawei@123

密文解密密钥 Huawei@123

对称加密算法-DES

1.DES(数据加密标准),IBM开发于1975年。

2.将数据包划分为等长的64比特,从而进行加密的对称密码算法:

1)加密数据块大小为64比特

2)密钥长度为64比特,实际长度为56比特,剩下的8位用来校验

3.由于密钥长度太短问题,DES算法存在较大的风险。

对称加密算法 3DES

1.基于DES密钥长度导致的安全问题,IBM在1999年创建了3DES

2.3DES密钥长度放大3倍,达到168bi6

3.3DES处理速度不高

原始数据---key1(加密)---key2(解密)---key3(加密)---加密数据

加密数据---key3(解密)---key2(加密)---key1(解密)---原始数据

对称加密算法-AES

1.高级加密标准,用于真正替代DES算法

2.美国国家标准与技术研究院于2001年11月26日发布

3.将数据包划分为等长的128比特(DES的2倍),从而进行加密的对称算法

1)块大小为128比特

2)密钥长度有三种:128、192、256比特(密钥的长度越长越安全,消耗的资源也越多)

4.AES是现在主流的国家密码算法

中国国家商用密码算法-对称算法

1.兼容性不强,外国的厂商设备可能不支持

2.SM1,分组与密钥长度均为128位,不公开算法

3.SM4,分组与密钥长度均为128位,公开算法

4.SM7,分组与长度均为128位,不公开算法,常用于身份识别卡、电子门票等。

5.祖冲之算法

什么是分组密码?

1.每次只能处理特定长度的一块数据。

2.一块就是一个分组

3.分组的大小被称为分组长度

分组密码块加密的两种模式之一:ECB

1.电子密码本块加密方式

1)将一个数据包,分为多个64位的块

2)通过DES算法,用相应的密钥,加密对应的块

3)得到对应的密文

2.该加密模存在的问题:

1)相同的明文,相同的密钥和算法,得到相同的密文

2)块之间加解密是独立的,加解密的失败不会影响后续块的进行

分组密码块加密的两种模式之一:CBC

1.加密块链接方式

1)将一个数据包,分位多个64位的块

2)在发送的时候,附加一个明文IV初始化向量位(随机数)

3)利用初始化向量位,和第一个包做混淆

4)通过DES算法,用相应的密钥,加密对应的块

5)得出对应的密文

4)再利用得到的密文与第二个明文做混淆,以此类推

2.该加密模式的优点:

1)依靠初始化向量位的扰乱,相同的明文,得到不同的密文

2)块之间加密是联系的,加解密的失败会影响后续块的进行

对称加密算法的优缺点

1.优点:算法简单,加密速度快,效率高

2.缺点:使用同一把密钥加解密,如何解决密钥安全共享问题?

什么是非对称加密算法?

1.使用“不同密钥”来执行加密和解密

2.常见非对称加密算法有RSA,DH

非对称加密算法-RSA

1.公共密钥加密系统

2.支持密钥长度为1024、2048位甚至更长

3.工作原理 使用公钥/私钥加密,就必须使用私钥/公钥解密

1)接收方使用RSA算法,生成一对密钥(公钥+私钥)

2)接收方将公钥发给发送方,私钥自己严格保存

3)发送方使用接收方发送的公钥对数据进行加密,再把加密后的数据发送给接收方

4)接收方使用自己的私钥来解密数据

非对称加密算法的优缺点

1.优点:更高的安全性

2.缺点:算法复杂,加解密效率低

非对称加密算法存在的风险:接收方无法判断接收到的公钥是否是发送方发的

完整性

什么是完整性?

1.确保发送的数据和接收的数据一致,称为完整性

2.使用的技术“单向散列函数”

什么是单向散列函数?

1.单向散列函数,有一个输入和输出:

1)输入称为‘消息’

2)输出称为‘散列值’,又称‘哈希值’

2.依据消息的内容来计算出散列值,再利用散列值来验证‘数据完整性’。

3.单向散列函数算-MD4/MD5,能够产生128比特的散列值。

4.单向散列函数算法-SHA

1)SHA0,1993年发布,已撤回

2)SHA1,1995年发布,2005年被破解

3)SHA2,可固定输出224/256/384/512比特的散列值,SHA2为目前的主流算法

4)SHA3,未完全普及,相关资料较少

5)中国国密的算法SM3,类似于SHA2-256

5.单向散列函数的特点

1)依据任意长度的消息计算出固定长度的散列值

2)能够快速计算出散列值

3)散列值具有唯一性

4)具备单向性

什么是认证?

1.为了确保发送源的合法性,需要对发送源执行认证

什么是消息认证码?

1.一种确认‘完整性’并进行‘认证’的技术。

2.输入任意长度的消息和共享的密钥,输出固定长度的MAC值。

消息认证码的工作流程,共享密钥不会从发送者发给接受者

消息认证码常用算法

1.HMAC。

2.一种使用单向散列函数来构造消息认证码的方法

3.任何高强度的单向散列函数都可以被用于HMAC,例 HMAC-SHA-224

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

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

相关文章

HTML基本元素包含HTML表单验证

可将以下代码复制另存为一个HTML文件浏览器打开自己去看看实际使用效果 <!DOCTYPE html> <html> <head> <meta charset"utf-8"><title>测试</title> </head> <body> <h1>很多事</h1> <h1><b&…

【linux】开机调用python脚本

linux中&#xff0c;可以使用crontab 设置开机自动调用 crontab的安装在前面文章里写过了&#xff0c;不再重复 首先&#xff0c;还是进入crontab配置文件 crontab -e 进入之后&#xff0c;跟其他定时任务不同&#xff0c;只需要在时间配置那里用rebooot 这类之后的两个文件的…

生成随机图片

package com.zhuguohui.app.lib.tools;/*** Created by zhuguohui* Date: 2024/6/1* Time: 13:39* Desc:获取随机图片*/ public class RandomImage {// static final String url "https://picsum.photos/%d/%d?random%d";static final String url "https://…

力扣174题动态规划:地下城游戏(含模拟面试)

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容&#xff0c;和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣&#xff01; 推荐&#xff1a;数据分析螺丝钉的首页 关注微信公众号 数据分析螺丝钉 免费领取价值万元的python/java/商业…

贝锐向日葵分组策略:减少重复操作,提升管理效率

面对大数量级的IT设备&#xff0c;如何高效实施管理是运维的关键所在&#xff0c;如何快速准确的对大量的设备按需分组&#xff0c;则是管理精准触达的第一步。 但是&#xff0c;传统的分组方式应付少量设备还可行&#xff0c;设备数量级一旦来到上千台甚至更多时&#xff0c;…

计算机视觉与模式识别实验2-1 角点检测算法(Harris,SUSAN,Moravec)

文章目录 &#x1f9e1;&#x1f9e1;实验流程&#x1f9e1;&#x1f9e1;Harris算法SUSAN算法Moravec算法 &#x1f9e1;&#x1f9e1;全部代码&#x1f9e1;&#x1f9e1; &#x1f9e1;&#x1f9e1;实验流程&#x1f9e1;&#x1f9e1; Harris算法 Harris算法实现步骤&…

重学java 59.Properties属性集集合嵌套集合下总结

不要咀嚼小小悲观&#xff0c;而忘掉整个世界 —— 24.6.3 一、Properties集合&#xff08;属性集&#xff09; 1.概述 Properties 继承 于HashTable 2.特点 a、key唯一&#xff0c;value可重复 b、无序 c、无索引 d、线程安全 e、不能存null键&#xff0c;null值 f、Propertie…

AI 赋能前端 -- 文本内容概要生成

幸福不在于你获得了什么,而在于你比他人多获得了什么 是比较出来的 大家好,我是柒八九。一个专注于前端开发技术/Rust及AI应用知识分享的Coder 此篇文章所涉及到的技术有 OpenAILangChainRust/WebAssemblyWeb Workerreact+ts+vite配置环境变量(env)因为,行文字数所限,有些概…

前端将DOM元素导出为图片

前端工作中经常会用到把一些元素导出&#xff0c;比如表格&#xff0c;正好项目有遇到导出为excel和导出为图片&#xff0c;就都封装实现了一下&#xff0c;以供其他需求的开发者使用&#xff1a; 1.导出为文档 这个说白了就是下载的功能&#xff0c;传过去检索参数&#xff…

小熊家务帮day10- 门户管理

门户管理 1 门户介绍1.1 介绍1.2 常用技术方案 2 缓存技术方案2.1 需求分析2.1.1 C端用户界面原型2.1.2 缓存需求2.1.3 使用的工具 2.2 项目基础使用2.2.1 项目集成SpringCache2.2.2 测试Cacheable需求Service测试 2.1.3 缓存管理器&#xff08;设置过期时间&#xff09;2.1.4 …

使用软件分享--剪映(不需要会员版)剪映 Jianying_pro_3_2_0_8778_beta9_jianyingpro_beta(Windows)

专栏介绍&#xff1a;本专栏主要分享一些实用的软件&#xff08;Po Jie版&#xff09;&#xff1b; 声明1&#xff1a;软件不保证时效性&#xff1b;只能保证在写本文时&#xff0c;该软件是可用的&#xff1b;不保证后续时间该软件能一直正常运行&#xff1b;不保证没有bug&am…

关于网络编程

目录 1、InetAdress类 2、Socket套接字 3、UDP数据报套接字编程 &#xff08;1&#xff09;DatagramSocket 类 &#xff08;2&#xff09;DatagramPacket类 &#xff08;3&#xff09;处理无连接问题 UdpEchoServer.java UdpEchoClient.java 4、TCP流套接字编程 &…

机器学习之数学基础(六)~时间复杂度和空间复杂度

目录 算法背景 background 1. 时间复杂度 Time Complexity 1.1 时间复杂度分类 1.1.1 O(1) 常数阶 1.1.2 O(n) 线性阶 1.1.3 O(n^2) 平方阶 1.1.4 O(logn) 对数阶 1.1.5 O(nlogn) 线性对数阶 1.1.6 O(2^n) 指数阶 1.1.7 O(n!) 阶乘阶 1.1.8 时间复杂度分类 1.2 时…

基于FPGA的SystemVerilog练习

文章目录 一、认识SystemVerilogSystemVerilog的语言特性SystemVerilog的应用领域SystemVerilog的优势SystemVerilog的未来发展方向 二、流水灯代码流水灯部分testbench仿真文件 三、用systemVerilog实现超声波测距计时器测距部分led部分数码管部分采样部分顶层文件引脚绑定效果…

华为昇腾310B初体验,OrangePi AIpro开发板使用测评

0、写在前面 很高兴收到官方的OrangePi AIpro开发板测试邀请&#xff0c;在过去的几年中&#xff0c;我在自己的博客写了一系列有关搭载嵌入式Linux系统的SBC&#xff08;单板计算机&#xff09;的博文&#xff0c;包括树莓派4系列、2K1000龙芯教育派、Radxa Rock5B、BeagleBo…

001----flask

flask---001 flask与django对比今日概要问答今日详细1.flask快速使用1.2 快速使用flask1.3 用户名密码登录 flask与django对比 django是个大而全的框架&#xff0c;flask是一个轻量级的框架。 django内部为我们提供了非常多的组件&#xff1a;orm/session/cookie/admin/from/mo…

mysql 分区

目标 给一个表&#xff08;半年有800万&#xff09;增加分区以增加查询速度 约束 分区不能有外键否则会报错 https://blog.csdn.net/yabingshi_tech/article/details/52241034 主键 按照时间列进行分区 https://blog.csdn.net/winerpro/article/details/135736454 参看以…

时序预测 | Matlab灰色-马尔科夫预测

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab灰色-马尔科夫预测 灰色马尔科夫预测&#xff08;Grey-Markov Prediction&#xff09;是一种用于时间序列预测的方法&#xff0c;它结合了灰色系统理论和马尔科夫链模型。灰色系统理论是一种非参数化的预测方法…

[vue2项目]vue2+supermap[mapboxgl]+天地图之地图的初始化

Supermap参考教程 天地图 一、安装 1、终端:npm install supermap/vue-iclient-mapboxgl 2、在package.json文件的dependencies查看supermap/vue-iclient-mapboxgl依赖是否安装成功。 3、在mian.js全局引入 import VueiClient from supermap/vue-iclient-mapboxgl; Vue.use(…

研学活动报名收集材料怎么写?教程来了!

研学活动作为学校教育的重要组成部分&#xff0c;不仅能够拓宽学生的视野&#xff0c;还能促进家校沟通。学生们报名还是十分积极踊跃的&#xff0c;然而研学活动报名收集材料该怎么写却困扰着不少老师&#xff0c;其实只需要把姓名和联系方式等收集全就可以了&#xff0c;主要…