密码学概论

news2024/11/26 6:02:33

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

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

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

相关文章

《Kubernetes部署篇:Ubuntu20.04基于外部etcd+部署kubernetes1.25.14集群(多主多从)》

一、部署架构图 1、架构图如下所示: 2、部署流程图如下所示: 二、环境信息 1、资源下载基于外部etcd+部署容器版kubernetes1.25.14集群资源合集 2、部署规划主机名K8S版本系统版本内核版本IP地址备注k8s-master-121.25.14Ubuntu 20.04.5 LTS5.15.0-69-generic192.168.1.12ma…

【音视频】AAC音频压缩格式

AAC音频压缩格式 ADTSvsADIF 总结: ADTS可以在任意帧解码,也就是说它每一顿都有头信息【默认使用格式】 ADIF只有一个统一的头,所以必须得到所有的数据后解码【一般不使用】 每一帧结构 每一帧的ADTS的头文件都包含了音频的采样率&#x…

【Linux学习】01Linux初识与安装

Linux(B站黑马)学习笔记 01Linux初识与安装 文章目录 Linux(B站黑马)学习笔记前言01Linux初识与安装操作系统简述Linux初识虚拟机介绍安装VMware Workstation虚拟化软件VMware中安装CentOS7 Linux操作系统下载CentOS操作系统VMwa…

kafka安装部署,和基本操作

kafka下载地址:Apache Kafka 我这里下载3.5.1 ​ 2、通过rz命令上传到linux服务器 3、解压 tar -zxvf kafka_2.12-3.5.1.tgz 4、在config目录下修改配置文件server.properties 主要修改这两处: #监听的端口advertised.listenersPLAINTEXT://自己…

【音视频】MP4封装格式

基本概念 使用MP4box.js查看MP4内部组成结构 整体结构 数据索引(moov)数据流包(mdat) 各个包的位置,大小,信息,时间戳,编码方式等全在数据索引 数据流包只有纯二进制码流数据 数据…

Linux基础开发工具

目录 前言 一、yum —— 软件包管理工具 1.1 yum的简介 1.2 yum的使用 1.3 yum源更新 二、vim —— 文本编辑器 2.1 vim的基本概念 2.2 vim的基本操作 2.3 vim正常模式命令集 2.4 vim末行模式命令集 extra vim补充 extra1 批量化注释 extra2 创建文件的…

腾讯云微服务平台 TSF 异地多活单元化能力重磅升级

导语 2023腾讯全球数字生态大会已于9月7-8日完美落幕,40专场活动展示了腾讯最新的前沿技术、核心产品、解决方案。 微服务与消息队列专场,腾讯云微服务平台 TSF 产品经理张桢带来了《腾讯云微服务平台 TSF 异地多活单元化能力重磅升级》的精彩演讲。本…

【LeetCode热题100】--48.找到字符串中所有字母异位词

48.找到字符串中所有字母异位词 使用滑动窗口: 由于字符串p的异位词的长度一定与字符串p的长度相同,所以我们可以在字符串s中构造一个长度为字符串p的长度相同的滑动窗口,并在滑动中维护窗口中每种字母的数量;当窗口中每种字母的数…

编译原理 —— 编译器

文章目录 编译原理阶段词法分析器语法分析器语义分析器中间代码生成器代码优化器代码生成器 编译原理阶段 编译器分为9个阶段来将我们所编写的高级代码编译为计算机可执行的机器码 源程序词法分析器语法分析器语义分析器中间代码生成器独立于机器的代码优化器代码生成器依赖于…

activiti流程变量

activiti流程变量 定义 流程变量在Activiti 中是一个十分重要的角色,流程运转时,需要靠流程变量,业务系统和activiti 结合时少不了流程变量,流程变量就是activiti 在管理工作流时根据管理需要而设置的变量。比如:在出…

JADE盲分离算法仿真

JADE算法原理 JADE 算法首先通过去均值预白化等预处理过程得到解相关的混合信号,预处理后的信号构建的协方差矩阵变为单位阵,为后续的联合对角化奠定基础;其次,通过建立四阶累积量矩阵,利用高阶累积量的统计独立性等性…

React+Node——next.js 构建前后端项目

一、安装全局依赖 npm i -g create-next-app二、创建next项目 create-next-app react-next-demo //或 create-next-app react-next-demo --typescript三、加载mysql依赖 npm i -S mysql2四、运行项目 npm run dev五、创建db文件目录,目录下创建index.ts import…

WebRTC系列--sdp协商中的answer编解码协商过程

关于createAnswer的流程在前面的文章WebRTC系列-SDP之CreateAnswer这篇文章中有详细的分析。 这篇文章主要对于MediaSessionDescriptionFactory的AddAudioContentForAnswer做详细的分析,也就是说对于音频编码的匹配也是在这个方法里实现: 首先主要的函数调用如下图: 这篇文…

怒赞,阿里P8推荐的Java面试宝典:41个专题PDF(史上最全+面试必备)

《尼恩Java面试宝典》 40岁老架构师 尼恩 经过对大量 Java面试题 的不断梳理、迭代, 编著成5000页的《尼恩Java面试宝典》,致力于体系化, 系统化,形象化 梳理,形成一个大的知识体系,从而帮助大家 进大厂&a…

20-SpringCloudAlibaba-1

一 Spring Cloud Alibaba简介 什么是Spring Cloud Alibaba Spring Cloud Alibaba致力于提供微服务开发的一站式解决方案。 此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。 为什么要推出Sp…

Python处理英文文档(添加音标和翻译)

Python处理英文文档(添加音标和翻译) Python处理英文文档单词标注音标英文翻译对word文档的操作方法整合待改进之处 Python处理英文文档 上英语课的时候老师总喜欢找人读文章和翻译文章,一点点的准备太浪费时间,就用Python写了一…

已解决 Python Error: ImportError: No module named ‘module_name‘

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页: 🐅🐾猫头虎的博客🎐《面试题大全专栏》 🦕 文章图文并茂&#x1f996…

人声分离网站,帮你快速提取视频中的人声和背景音乐

今天给大家带来一个可以分离人声的网站——音分轨,他运用人工智能算法可以将音频中的人声部分和音乐部分分离,使我们的视频制作过程可以更方便。 我们点击右下角“选择文件”上传一个音频,上传好音频后,人工智能就开始处理我们上传…

同步 -- 信号量

本篇文章基于Linux-6.5源码 建议:搭配Linux源码观看更佳 struct semaphore {raw_spinlock_t lock; // 保护信号量的自旋锁unsigned int count; // 最大同时可访问临界区的进程数量struct list_head wait_list; // 等待队列,wait_list指…

linux 磁盘命令之du和df命令

du相关的命令: du -ah 显示所有目录或文件所占空间 du -KG 显示所有目录或文件所占空间 块大小K为单位 du -BM 显示所有目录或文件所占空间 块大小M为单位 du -BG 显示所有目录或文件所占空间 块大小G为单位du -sh [目录名] 返回该目录的大小 du -sm [文件夹] 返回该文…