当前位置: 首页 > news >正文

密码学概论

1.密码学的三大历史阶段:
  1. 第一阶段 古典密码学 依赖设备,主要特点 数据安全基于算法的保密,算法不公开,只要破译算法 密文就会被破解, 在1883年第一次提出 加密算法应该基于算法公开 不影响密文和秘钥的安全;衡量加密算法的安全 是所需要话费的时间,一般电脑需要300年才能破译 认为强度是安全的
  2. 第二阶段 计算机的出现 进入电子密码学阶段, 加密算法公开  主要特点:   数据安全基于秘钥安全 而不是算法的保密。衡量保密强度是破译的时间
  3. 第三阶段: 公钥密码使得 发送端和接收端无秘钥传输的保密通讯成为可能。
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年第一次提出 加密算法应该基于算法公开 不影响密文和秘钥的安全&#xff…...

渗透测试中的前端调试(一)

前言 前端调试是安全测试的重要组成部分。它能够帮助我们掌握网页的运行原理,包括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 特性&#xf…...

jupyterlab开发环境最佳构建方式

文章目录 背景jupyterlab环境构建运行虚拟环境构建以及kernel映射验证总结 背景 从jupyter notebook切换到了jupyter lab. 这里记录一下本地环境的最佳构建方式. jupyter lab 安装在jupyterlab-local的anaconda 虚拟环境中.建立多个其他虚拟环境安装各种python包实现环境隔离,…...

Qt_C++读写NFC标签Ntag支持windows国产linux操作系统

本示例使用的发卡器&#xff1a;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 服务器是一种计算机程序&#xff0c;它通过 HTTP 协议接收和响应客户端发送的请求。Web 服务器将 HTML、CSS、JavaScript 和其他资源文件发送给客户端&#xff0c;…...

SpringMVC 学习(四)RestFul 风格

5. RestFul 风格 5.1 简介 概念 Restful就是一个资源定位及资源操作的风格。不是标准也不是协议&#xff0c;只是一种风格。基于这个风格设计的软件可以更简洁&#xff0c;更有层次&#xff0c;更易于实现缓存等机制。 功能 资源&#xff1a;互联网所有的事物都可以被抽象为…...

消息中间件相关知识

1、概述 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能&#xff0c;成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件&#xff0c;如老牌的ActiveMQ、RabbitMQ&#xff0c;炙手可热的Kafka…...

JackJson多态

JsonTypeInfo 处理多态、序列化对象类型_赵丙双的博客-CSDN博客 JsonTypeInfo实现jackson的多态解析_MonkeyKing_sunyuhua的博客-CSDN博客 Java Jackson JsonTypeInfo 多态类型处理 - 简书 JsonTypeInfo 逻辑名称 JsonSubTypes、JsonTypeName_赵丙双的博客-CSDN博客...

孟晚舟最新发声!华为吹响人工智能的号角,发布“全面智能化”战略部署

原创 | 文 BFT机器人 1、华为孟晚舟新发声&#xff0c;华为发布“全面智能化”战略 上周三&#xff08;9月30号&#xff09;上午&#xff0c;华为全联接大会2023正式在上海举行&#xff0c;作为华为副董事长、轮值董事长、CFO的孟晚舟代表华为再次发声&#xff01;在演讲上&am…...

open62541开发:添加sqlite3 历史数据库

历史数据库在OPCUA 应用中十分重要&#xff0c;例如OPCUA 网关和OPCUA 汇聚服务器中都需要历史数据库功能。但是open62541 协议栈中仅包含了基于内存的历史数据库&#xff0c;在实际应用中是不够的。本博文讨论open62541 中添加sqlite3 为基础的历史数据库若干问题。 借鉴 Gi…...

美国零售电商平台Target,值得入驻吗?如何入驻?

Target 是美国最大的零售商之一&#xff0c;在品牌出海为大势所趋的背景下&#xff0c;它在北美电商中的地位节节攀升。Target 商店在众多垂直领域提供各种价格实惠的自有品牌&#xff0c;吸引越来越多的跨境商家入驻&#xff0c;如美妆、家居、鞋服、日用百货等&#xff0c;随…...

docker freeswitch mysql驱动相关

1. docker环境 的freeswitch要连mysql数据库 2. centos版本&#xff1a;7.9 3. mysql版本&#xff1a;mysql8.0 4. odbc版本&#xff1a;适用以下命令查询 rpm -qa | grep -E "unixODBC|mysql-connector-odbc" mysql-connector-odbc-5.2.5-8.el7.x86_64 unixODB…...

Chrome iframe 跨域失败

原因&#xff1a; Chrome 稳定版禁用 document.domain setter 解决方案&#xff08;4种&#xff09;&#xff1a; 1 使用低版本Chrome 缺点&#xff1a;无法保证用户浏览器版本。 2 浏览器设置&#xff1a; 浏览器地址栏输入 chrome://flags/#origin-agent-cluster-default然…...

【Vue】vue-cli一站式搭建SPA项目

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《Vue快速入门》。&#x1f3af;&#x1f3af; &…...

CPP代码检查工具

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言CPP代码检查工具工具一:GCC编译器工具二:Cppcheck工具三:gbd调试器工具四:SonarCube嵌入式平台工具内存泄漏检查工具linux的cpu占用情况前言 认…...

在SpringBoot中利用Redis实现互斥锁

在SpringBoot中利用Redis实现互斥锁 基本知识 前提条件&#xff0c;有一个能够在Springboot中使用Redis的项目&#xff0c;或者能够直接开也行 为什么要实现互斥锁&#xff1a;当我们利用Redis存储热点数据时&#xff0c;突然就过期失效或者被删除了&#xff0c;导致大量请求同…...

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…...

GLM-OCR与LSTM网络融合实践:提升连续手写体文本识别效果

GLM-OCR与LSTM网络融合实践&#xff1a;提升连续手写体文本识别效果 最近在折腾一个挺有意思的项目&#xff0c;朋友那边有个需求&#xff0c;要识别一些手写的病历和处方。你懂的&#xff0c;医生那笔迹&#xff0c;龙飞凤舞&#xff0c;连笔连得飞起&#xff0c;传统的OCR工…...

Linux文件系统驱动实战:exfat-nofuse跨平台存储解决方案全解析

Linux文件系统驱动实战&#xff1a;exfat-nofuse跨平台存储解决方案全解析 【免费下载链接】exfat-nofuse Android ARM Linux non-fuse read/write kernel driver for exFat and VFat Android file systems 项目地址: https://gitcode.com/gh_mirrors/ex/exfat-nofuse 开…...

LLaMA-Factory推理性能优化指南:如何用vLLM和量化技术提升3倍吞吐量

LLaMA-Factory推理性能优化实战&#xff1a;从参数调优到量化部署 当你的LLaMA-Factory模型推理请求从每秒10次飙升到1000次时&#xff0c;服务器突然开始报警——显存爆满、响应延迟激增、API错误率直线上升。这不是灾难片的开场&#xff0c;而是每个AI工程师终将面对的性能瓶…...

救命!2026 转行网络安全值不值?薪资 + 工作 + 前景一篇讲透,不踩坑!

网络安全赛道 1、薪资情况 薪资影响因素 2、工作安排与内容 (1) 工作时间(2) 工作内容 3、网络安全前景展望4、如何提升竞争力5、职业技能总结6、学习资源分享 如果你计划在2025年转行到网络安全领域&#xff0c;以下是一些建议&#xff0c;可以帮助你顺利过渡并打下坚实的…...

从PLC到Kubernetes:工业Python网关高可用配置的6层安全加固体系(含CVE-2024-XXXX漏洞规避方案)

第一章&#xff1a;工业Python网关的演进逻辑与高可用本质工业现场设备协议繁杂、环境严苛、响应实时性要求高&#xff0c;传统嵌入式网关受限于固件封闭、扩展能力弱和生态割裂&#xff0c;难以支撑现代智能制造对数据柔性接入与边缘智能协同的需求。Python凭借其丰富的工业协…...

【PyO3/Rust-Python测试权威框架】:Rust生态下Python扩展的零信任CI流水线设计

第一章&#xff1a;Python 扩展模块测试Python 扩展模块&#xff08;如用 C/C、Rust 或 Cython 编写的模块&#xff09;在提升性能的同时&#xff0c;也引入了跨语言交互的复杂性。对其开展系统性测试&#xff0c;是保障功能正确性、内存安全性和 ABI 兼容性的关键环节。测试环…...

C++的std--ranges中的检测引用悬垂

C的std::ranges中的检测引用悬垂&#xff1a;安全迭代的守护者 在现代C编程中&#xff0c;std::ranges库为序列操作提供了更简洁、更安全的抽象。迭代器与范围的使用常伴随一个隐蔽风险&#xff1a;引用悬垂&#xff08;Dangling References&#xff09;。当迭代器指向的底层数…...

5步搞定Qwen3-ASR语音识别:支持多语言和方言,快速上手教程

5步搞定Qwen3-ASR语音识别&#xff1a;支持多语言和方言&#xff0c;快速上手教程 语音识别技术正在改变我们与数字世界的交互方式&#xff0c;而Qwen3-ASR以其强大的多语言和方言支持能力脱颖而出。本文将带你用最简单的方式&#xff0c;在5个步骤内完成这个专业级语音识别系…...

PP-DocLayoutV3惊艳案例:印章(seal)+ 页眉图片(header_image)+ 视觉脚注(vision_footnote)联合定位

PP-DocLayoutV3惊艳案例&#xff1a;印章&#xff08;seal&#xff09; 页眉图片&#xff08;header_image&#xff09; 视觉脚注&#xff08;vision_footnote&#xff09;联合定位 1. 引言&#xff1a;当文档布局分析遇到“硬骨头” 想象一下这个场景&#xff1a;你拿到一份…...

GTE中文文本嵌入模型实战教程:与LangChain集成构建中文RAG流程

GTE中文文本嵌入模型实战教程&#xff1a;与LangChain集成构建中文RAG流程 1. 引言&#xff1a;为什么需要中文文本嵌入模型 在人工智能快速发展的今天&#xff0c;让计算机真正"理解"中文文本变得越来越重要。无论是智能客服、文档检索还是知识问答&#xff0c;都…...