密码学相关技术常应用于认证、授权、审计
一、密码学历史
第一阶段(20世纪—1949):古典密码学。数据安全基于算法的保密
第二阶段(1949-1975):数据的安全基于密钥(算法公开)
第三阶段(1975至今):公钥密码学。公钥(用于加密)和私钥(用于解密)
二、相关概念
(一)进制与计量
进制
-
一种技术方法
-
二进制:计算及机器语言唯一能明白的。
-
二进制优势:减少误差
计量
-
位(bit) 最小的数据单位
-
字节(Byte) =8bit 存储空间的最小单位
-
K =1024B
-
M =1024kb
-
G =1024MB
-
T =1024GB
-
P =1024T
计算机能力上限
-
2^80 不能
-
2^128 绝对不能
(二)移位与置换
移位:打乱内容排列顺序
置换:按照规则替换内容
注:移位和置换都是可逆的操作,容易恢复信息
(三)数字证书与CA
数字证书:类似于身份证的作用,证明公钥是某人的
CA:电子商务认证授权机构
数字证书(包含姓名、地址、证书有效期、所有者公钥、认证机构数据签名)
(四)哈希Hash
Hash将一段任意长度的数据经过一道运算转换为一段定长的数据
特性:不可逆性、无碰撞性、雪崩效应、单项
三、加密算法
(一)散列算法
不需要密钥
名称 | 安全性 | 运行速度 |
---|---|---|
MD5 | 中 | 快 |
SHA-1 | 高 | 慢 |
1、MD5
(消息摘要算法,Message-Digest Algorithm 5)
-
哈希;
-
输出128bit的信息摘要;
安全性较高的场景不建议使用;
2、SHA
(安全散列算法,Secure Hash Algorithm)
-
哈希;
-
输出160bit的信息摘要;
-
运行速度较MD5慢,但安全性更强
加盐:在原本需要加密的信息基础上,加入动态的salt
3、HMAC
(Hash-based Message Authentication Code) 哈希运算消息认证码
-
哈希算法
-
以一个密钥和一个消息为输入,生成一个信息摘要为输出;
-
发送方和接收方都必须有key进行计算;
多线程环境下是不安全的
4、国密SM3
(二)对称加密算法(私钥加密)
过程:
-
明文 => 私钥 => 密文 => 网络传输 => 密文 => 私钥 => 明文
特点:
-
使用同一密钥进行加密和解密;
-
加解密速度快,密文是紧凑的,适合大数量量;
-
密钥管理:比较难(不适合互联网,一般用于内部系统);
-
安全性:中;
长度 | 安全性 | 运行速度 | 资源消耗 | |
---|---|---|---|---|
DES | 56 | 低 | 较快 | 中 |
3DES | 112、168 | 中 | 慢 | 高 |
AES | 128、192、256 | 高 | 快 | 低 |
IDEA | 128 | 强 | 中 | 中 |
1、DES
( Data Encryption Standard)数据加密标准
-
目前被暴力破解的时间在24小时内
2、3DES
基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高
3、AES
(Advanced Encryption Standard)高级加密标准
-
采用对称分组密码体制;
4、RC系列
-
RC2:运行速度比DES快、RC4、RC5
5、EDEA
(International Data Encryption Algorithm)国际数据加密算法
-
没有专利的限制
-
使用较少
6、Blowfish
轻量级,易于软件快速实现,所需存储空间不到5Kb
适用于密钥不经常改变的加密
7、国密SM1、SM4
SM1:算法保密
SM4:算法公开
(三)非对称加密算法(公钥加密)
过程:
-
明文 => 公钥 => 密文 => 网络传输 => 密文 => 私钥 => 明文
特点:
-
公钥加密,私密解密(私钥可以推出公钥,私钥不能推出公钥)
-
加密速度慢,密文非紧密,适合小数据量;
-
密钥管理难度小;
-
安全性高;
应用:
-
加解密;数字签名;密钥交换;
-
SSH登录、git上传等,都是将公钥上传服务端,客户端保存私钥;
1、RSA
最有影响力的公钥加密算法;已被ISO推荐位公钥数据加密标准
-
密钥长度512-8192bit;速度很慢
-
第一个能同时用于加密和数字签名的算法;
-
能抵抗目前为止已知的所有密码攻击;
2、Diffie-Hellman
用于私钥交换
3、DSA
数字签名;
只允许认证,不能提供保密性
4、ECC
椭圆曲线加密
-
大小:使用密钥更小;160位;
-
速度:加解密的实现时间长;
-
强度:是加密强度最高的非对称加密算法;
-
场景:适用于多对一认证;
5、Elgamal
可以加密和提供认证
6、国密 SM2
SM2:基于ECC设计