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