一段时间不看就都忘了,做一个思维导图复习一下。
对应markdown:
代码语言:javascript复制# 现代密码学
## 对称密码
### 加解密密钥相同
### 加密算法
* DES
* 3DES
* AES
## 公钥密码
### 加解密密钥不同
* 公钥加密,私钥解密 > 数据通信
* 私钥加密,公钥解密 > 数字签名
### 分组方式
* ECB 电码本:用相同的密钥分别对明文分组独立加密
* CBC 密文分组链接:每轮的输入是上一个密文组与下一个明文组的异或
* CFB 密文反馈
* OFB 输出反馈
* CTR 计数器
### 加密算法
* RSA
* 密钥对生成
* 求N:准备两个很大的质数p,q,N=p*q
* 求L:L=lcm(p-1,q-1)
* 求E:用随机数生成E,使其满足(1<E<L) && (gcd(E,L)=1)
* 求D:求出D,使其满足(1<D<L) && (E*D mod L =1)
* (E,N)和(D,N)分别为公私钥
* 加密:密文=明文^E mod N
* 解密:明文=密文^D mod N
* ECC
* 椭圆曲线算法
* 居民二代身份证/比特币/TLS/SSH
### 子主题 3
## 哈希函数
### 定义与应用
* 将输入转换成固定长度的字符串
* 数据校验
* 消息认证码
* 数字签名
* 伪随机数生成器
### 特性
* 输出固定长度
* 快速计算出散列值
* 弱抗碰撞性:找出与该条消息散列值相同的另一条消息
* 强抗碰撞性:找到两条散列值相同的消息(王小云破解)
* 单向性
### 哈希算法
* md4/md5 散列值:16字节(Byte)
* sha1 20Byte
* sha256 32B
* sha512 64B
## 国密
### SM1
* 对称加密 128位 硬件实现 对比AES,该算法不公开,需要通过芯片接口调用
### SM4
* 对称加密 无线局域网使用的的分组加密
### SM2
* 公钥算法(椭圆曲线算法) 256位,基于ECC,速度和强度都好于RSA
### SM3
* 杂凑算法/哈希算法 32字节 对比MD5
## 思想与原则
### 混淆与扩散
### 柯克霍夫原则
## 消息认证码
### 用来确认消息在传送之后是否完整的技术
### 通过密钥或哈希函数生成消息认证码,之后跟加密后的消息一块发送,接收者解密消息之后生成消息认证码判断是否相同
### 无法解决第三方证明的问题 不能防止否认
## 数字签名
### 就像现实生活中的签字,用来判断消息是谁发出的,并且消息发出者本人不能否认。
### 由私钥对消息进行加密,用公钥进行解密
### 可以对消息直接签名/对散列值签名
## 证书
### 认证机构T用自己的私钥来对B的公钥进行签名之后就得到T颁发给B的证书
欢迎与我分享你的看法。 转载请注明出处:http://taowusheng.cn/