密码学概论
1.密码学的三大历史阶段:
- 第一阶段 古典密码学 依赖设备,主要特点 数据安全基于算法的保密,算法不公开,只要破译算法 密文就会被破解, 在1883年第一次提出 加密算法应该基于算法公开 不影响密文和秘钥的安全;衡量加密算法的安全 是所需要话费的时间,一般电脑需要300年才能破译 认为强度是安全的

- 第二阶段 计算机的出现 进入电子密码学阶段, 加密算法公开 主要特点: 数据安全基于秘钥安全 而不是算法的保密。衡量保密强度是破译的时间
- 第三阶段: 公钥密码使得 发送端和接收端无秘钥传输的保密通讯成为可能。
2.加解密的基础操作:
1. 置换:按照规则替换内容信息
- 置换是用一个特定的值替换另一个特定值得过程
- 置换需要通信双方事先通知置换的方法
- 置换比较简单,频繁使用会找到规律

- 上例中置换基础原则为: 基数未ASCII 码值加1, 偶数为 ASCII 码值加2
2. 移位:打乱字母的排列顺序
- 移位 把某个字母以前或其后几位的某个特定字母替代
- 移位具有规律,容易被攻破

3. 编码:ASCII编码 BASE64编码

3.加密算法分类
- 密码设计的基本公理是 算法公开
- 系统安全性仅依赖于 秘钥的保密性
加密算法的分类:
- 对称秘钥密码算法 (又称私有秘钥算法)
- 非对称秘钥密码算法 (又称公钥密码算法)
加密算法秘钥强度对比:

4.对称加密算法 :
- 使用同一秘钥进行加密解密

- 优势: 加解密速度快,密文是紧凑(密文和原文大小相差不大) 安全的
- 缺点: 秘钥分发,秘钥存储和管理 无法解决秘钥在传输、存储过程中的安全。缺乏对数字签名/不可否认的支持

著名对称加密算法:
➥ DES 3DES
- DES 是一种块或分组加密算法 (Data Encryption Standard)
- 20世纪70年代 IBM 公司发明
- DES 秘钥固定 56bit太短 不安全(暴力破解),需要经常更换秘钥, 3DES 可解决秘钥短带来的安全性
- DES 以块模式对 64bit 的源文块 进行操作

- 使用 DES CBC模式( IV 向量) 增加安全性, 3DES 秘钥放大3倍,168位 以提高安全性

➥ ASE (Advanced Encrytion Standard)
- 1997年颁布 用于取代 DES加密算法
- 适合高速网络,适合在硬件上实现
- 使用128位, 192位 或256位的秘钥块(还能以32bit 扩展)
- 3DES 的替代加密方案, 硬件运行效率高 适用于无线、音视频加密
➥ RC 系列 轻量级 速度块 对硬件要求低 (RC2, RC4, RC5)这里主要讲下 RC4
- Rivest 设计
- 秘钥长度可变
- 流模式加解密算法,面向bit 操作
- 算法基于随机置换
- RC4 应用范围广(https/WEP/WPA) WPA2-AES
➥ IDEA 国际数据加密算法
- 分组长度64位, 秘钥长度128位
- 设计原理: 来自不同代数群的 混合运算
➥ 异或 ➥ 模216加 ➥ 模216 + 1 乘
➥ CASR
➥ Blowfish
- Bruce Schneier 设计
- 秘钥长度可变
- 易于软件快速实现, 所需存储控件不到5KB
- 安全性可以通过改变秘钥长度进行调整
- 适用于秘钥不经常改变的加密
- 不适用于需要经常交换秘钥的情况
5. 公钥加密算法(非对称加密算法) :
- 公钥加密比私钥出现的晚
- 私钥加密使用同一个秘钥来加密和解密信息
- 私钥可以生成公钥,私钥加密公钥解密;公钥加密私钥解密
- 公钥加密使用两个秘钥,一个秘钥用来加密信息,另外一个用来解密信息
- 应用: 公钥加密 保密性, 私钥签名 数字签名

- 优点:私钥不用 存储/传输 公钥可传输,可以保证秘钥在传输过程中的安全。
- 缺点:加密相对速度慢,密文不紧凑 , 可以和对称加密 相互配合使用
常用的公钥加密算法:
➥ RSA 最主流的公钥加密算法
- 1977年由 Ron Rivest, Adi Shamir 和 Len Adelman 开发
- 专利于2000年9月到期
- 秘钥长度在512 - 8192 bit 之间
- 安全性基于 大素数因子分解的困难性
- RSA 比用软件实现的DES慢 100倍
- RSA 比用硬件实现的DES慢 1000倍
- RSA 的主要用途: 解码 数字签名和密钥交换(加密散列 秘钥)
➥ HD (Diffie-Hellman)
- 1976年 Whitfield Diffie 和 Martin Hellman 发明
- 解决对称加密系统中的秘钥的 发布问题
- 无需使用代价高昂既可对秘钥达成共识
- 安全性来基于 很难计算出 很大的离散对数
- 现在秘钥管理中提供其他算法的秘钥管理
➥ DSA
➥ ECC 区块链中的 椭圆加密算法
- 1985年提出
- 原理:给定椭圆曲线上的两个点 A和B, 如A = kB,要找到整数 k非常困难
- 秘钥更小: 与1024位和RSA秘钥具有同样的安全性的 秘钥只有 160位
公钥加密算法常见的应用:
- 加密&解密
- 数字签名:发送方用自己的私钥签署报文, 接收方用对方的公钥验证对方的签名
- 秘钥交换:双方协商回话秘钥

6. 数字签名 :
➥ RSA 提供认证和抗抵赖性(私钥签名)

➥ 数字签名 Digital Signature

7. 数字证书与CA
CA(Certificate Authority, 电子商务认证授权机构 ) 解决签名认证问题,类似身份证颁发机构
8. 哈希与HMAC
哈希 Hash(也叫散列函数), 常用的有:MD5 SHA
- 将一段数据(任意长度)经过计算, 转化为一段 定长的数据
- 不可逆性 几乎无法通过Hash 结果推导出原文,既无法通过 x 的 hash 推导出 x
- 无碰撞性 几乎没有可能找到一个 y, 使得 y的 Hash 值等于x的 hash值
- 雪崩效应 输入轻微变化 Hash 输出值 产生巨大变化
- 单向 不可能从散列值推出原始数据
- 使用场景
1.发布文件的完整性验证 篡改, 如金融类软件 MD5 2.服务器中保存用户密码 3.数据签名
感谢大佬分享 整理来自==》:01 密码学概述_哔哩哔哩_bilibili
相关文章:
密码学概论
1.密码学的三大历史阶段: 第一阶段 古典密码学 依赖设备,主要特点 数据安全基于算法的保密,算法不公开,只要破译算法 密文就会被破解, 在1883年第一次提出 加密算法应该基于算法公开 不影响密文和秘钥的安全ÿ…...
渗透测试中的前端调试(一)
前言 前端调试是安全测试的重要组成部分。它能够帮助我们掌握网页的运行原理,包括js脚本的逻辑、加解密的方法、网络请求的参数等。利用这些信息,我们就可以更准确地发现网站的漏洞,制定出有效的攻击策略。前端知识对于安全来说,…...
SPA项目之登录注册--请求问题(POSTGET)以及跨域问题
🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于VueElementUI的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.ElementUI是什么 💡…...
Spring Cloud Alibaba Gateway全局token过滤、局部过滤访问时间超过50ms日志提示
文章目录 Spring Cloud Alibaba Gateway验证token在前篇的基础上加入依赖在filter包中创建tokenFilter Spring Cloud Alibaba Gateway局部过滤1.继承AbstractGatewayFilterFactory2.仿照AddRequestHeaderGatewayFilterFactory Spring Cloud Alibaba Gateway验证token 基础搭建…...
运算符 - Go语言从入门到实战
运算符 - Go语言从入门到实战 算术运算符 假设A变量等于10,B变量等于20。 运算符描述实例相加A B 输出结果 30-相减A - B 输出结果 -10*相乘A * B 输出结果 200/相除B / A 输出结果 2%求余B % A 输出结果 0⾃增A 输出结果 11–⾃减A-- 输出结果 9 特性…...
jupyterlab开发环境最佳构建方式
文章目录 背景jupyterlab环境构建运行虚拟环境构建以及kernel映射验证总结 背景 从jupyter notebook切换到了jupyter lab. 这里记录一下本地环境的最佳构建方式. jupyter lab 安装在jupyterlab-local的anaconda 虚拟环境中.建立多个其他虚拟环境安装各种python包实现环境隔离,…...
Qt_C++读写NFC标签Ntag支持windows国产linux操作系统
本示例使用的发卡器:Android Linux RFID读写器NFC发卡器WEB可编程NDEF文本/智能海报/-淘宝网 (taobao.com) ntag2标签存储结构说明 #include "mainwindow.h" #include "./ui_mainwindow.h" #include <QDebug> #include "QLibrary&…...
Web开发-基础知识扫盲
目录 Web 服务器Web 服务器例子 MVC架构Web 项目运行过程负载均衡和反向代理持久化Java对象JPA Web 服务器 Web 服务器是一种计算机程序,它通过 HTTP 协议接收和响应客户端发送的请求。Web 服务器将 HTML、CSS、JavaScript 和其他资源文件发送给客户端,…...
SpringMVC 学习(四)RestFul 风格
5. RestFul 风格 5.1 简介 概念 Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。 功能 资源:互联网所有的事物都可以被抽象为…...
消息中间件相关知识
1、概述 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka…...
JackJson多态
JsonTypeInfo 处理多态、序列化对象类型_赵丙双的博客-CSDN博客 JsonTypeInfo实现jackson的多态解析_MonkeyKing_sunyuhua的博客-CSDN博客 Java Jackson JsonTypeInfo 多态类型处理 - 简书 JsonTypeInfo 逻辑名称 JsonSubTypes、JsonTypeName_赵丙双的博客-CSDN博客...
孟晚舟最新发声!华为吹响人工智能的号角,发布“全面智能化”战略部署
原创 | 文 BFT机器人 1、华为孟晚舟新发声,华为发布“全面智能化”战略 上周三(9月30号)上午,华为全联接大会2023正式在上海举行,作为华为副董事长、轮值董事长、CFO的孟晚舟代表华为再次发声!在演讲上&am…...
open62541开发:添加sqlite3 历史数据库
历史数据库在OPCUA 应用中十分重要,例如OPCUA 网关和OPCUA 汇聚服务器中都需要历史数据库功能。但是open62541 协议栈中仅包含了基于内存的历史数据库,在实际应用中是不够的。本博文讨论open62541 中添加sqlite3 为基础的历史数据库若干问题。 借鉴 Gi…...
美国零售电商平台Target,值得入驻吗?如何入驻?
Target 是美国最大的零售商之一,在品牌出海为大势所趋的背景下,它在北美电商中的地位节节攀升。Target 商店在众多垂直领域提供各种价格实惠的自有品牌,吸引越来越多的跨境商家入驻,如美妆、家居、鞋服、日用百货等,随…...
docker freeswitch mysql驱动相关
1. docker环境 的freeswitch要连mysql数据库 2. centos版本:7.9 3. mysql版本:mysql8.0 4. odbc版本:适用以下命令查询 rpm -qa | grep -E "unixODBC|mysql-connector-odbc" mysql-connector-odbc-5.2.5-8.el7.x86_64 unixODB…...
Chrome iframe 跨域失败
原因: Chrome 稳定版禁用 document.domain setter 解决方案(4种): 1 使用低版本Chrome 缺点:无法保证用户浏览器版本。 2 浏览器设置: 浏览器地址栏输入 chrome://flags/#origin-agent-cluster-default然…...
【Vue】vue-cli一站式搭建SPA项目
🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Vue快速入门》。🎯🎯 &…...
CPP代码检查工具
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言CPP代码检查工具工具一:GCC编译器工具二:Cppcheck工具三:gbd调试器工具四:SonarCube嵌入式平台工具内存泄漏检查工具linux的cpu占用情况前言 认…...
在SpringBoot中利用Redis实现互斥锁
在SpringBoot中利用Redis实现互斥锁 基本知识 前提条件,有一个能够在Springboot中使用Redis的项目,或者能够直接开也行 为什么要实现互斥锁:当我们利用Redis存储热点数据时,突然就过期失效或者被删除了,导致大量请求同…...
vue3+eleement plus日历选择季度
<template><div class"el-quarter-wrap"><el-popover width"280" v-model"visible"><template #reference><el-input v-model"quarterDate" placeholder"请选择季度" clearable :prefix-icon&qu…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...


