1.基础概念
密码编制学:研究密码编制。
密码分析学:研究密码破译。
2.攻击模式
①唯密文攻击。密码分析者只拥有一个或多个用同一密钥加密的密文。一般用于穷举攻击。
②已知明文攻击。密码分析者仅知道当前密钥下部分明文对应的密文。
③选择明文攻击。密码分析者能够得到当前密钥下选定明文对应的密文。适用于针对数据库和文件系统的攻击。
④密文验证攻击。密码分析者对于任何选定的密文,能够得到该密文"是否合法"。
⑤选择密文攻击。除挑战密文外,密码分析者能够得到任何密文对应的明文。适用于针对数字签名的攻击。
3.密码体制分类
密码体制即密码系统,一般由5部分组成:密文空间C、明文空间M、密钥空间K、加密算法E、解密算法D。
(1)私钥密码体制
指对称密码体制,即加密、解密使用相同的密钥。
(2)公钥密码体制
指非对称密码体制,公钥加密、私钥解密,私钥签名、公钥验证。
(3)混合密码体制工作原理
发送者A使用对称密钥将消息加密;
发送者A使用B的公钥将对称密钥进行加密,将加密后的消息和密钥发送B;
接收者B收到消息后,使用私钥对密钥进行解密,取得A对消息加密时使用的对称密钥;
接收者B使用对称密钥对消息进行解密,取得消息原文
4.常见密码算法
|---------|-------------------------------------|
| 算法名称 | 说明 |
| DES | 明文分组64位、密钥56位(不含8位校验位) |
| 3DES | **密钥112位(**一般位112位,具体看加解密过程密钥选择) |
| IDEA | 密钥长度128位 |
| AES | 密钥长度128、192、256位 |
| SM1、SM4 | 对称算法,密钥长度128位。SM4常用于无线局域网WAPI使用 |
| RC4、RC5 | 流密码 |
[常见对称密码算法]
|------|-----------------------|
| 算法名称 | 说明 |
| DSA | 仅可用于签名 |
| RSA | 基于"大合数分解" |
| ECC | 椭圆加密算法 |
| SM2 | 国家推荐使用素数域256位椭圆曲线 |
| SM9 | 标识密码算法 |
[常见非对称密码算法]
4.DES算法
(1)DES算法流程
初始置换IP
生成16个48位子密钥
16轮feistel迭代
扩展置换E
S盒代换
置换P
逆初始置换
(2)DES算法的安全性
①密钥较短。DES采用56位密钥,其密钥量仅为约为
个。
②存在弱密钥。存在4个弱密钥,弱密钥不受循环位移的影响,将产生相同子密钥。
③存在半弱密钥。至少存在12个半弱密钥,若密钥会将明文加密为相同密文。
(3)DES的S盒计算
DES共有8个S盒,S盒是一个4×16的查找表,S盒将6位输入信息映射位4位输出信息。
行号。由输入信息的首位和末位组成,范围00-11(十进制0-3).
列号。由输入信息的中间4位组成,范围0000-1111(十进制0-15)
根据行号和列号在查找表中进行查找。
5.RSA算法
(1)RSA的算法流程
①选取两个大素数p和q(保密);
②计算n=p×q,φ(n)=(p-1)(q-1),n公开。φ(n)保密;
③选取一个整数e,1<e<φ(n),gcd(e,φ(n))=1。e公开,gcd为最大公约数;
④计算d,d×e≡1modφ(n)。d保密。
加密算法 c≡modn
解密算法 m≡modn
签名算法 s≡modn
验证算法 m≡modn
同余的概念。两个整数a、b,若他们除以整数m的余数相等,则称a与b对于模m同余或a同余于b模m,记作a≡bmodn,读作a同余于b模m,或读作a于b对模m同余。a≡bmodn等同于ab≡1modn。
(2)RSA算法的安全性
RSA算法的安全性在于大合数分解(将一个大合数分解为两个以上素数的乘积),应采用足够大的n,一般至少取1024位,最好取2048位。国际可信计算组织(TCG)规定:一般加密密钥和认证密钥选1024位,而平台根和存储根密钥选2048位。
参数选择:p和q因足够大且为强素数,e和d的选择不能太小,不要许多用户公用同一个模n。
6.辗转相除法求逆元
Ax≡1modN
N=A×+
A=×
+
=
×
+
...
=
×
+
=
×
+0 (除尽为止)
对x的值逆向排序(不含商为0的),计算y值,默认为0
|------------------------------------------|-----------------------------------------|-------------------------------------------|---------|-------------------------------------------|-----------------------------------------|
| 0 | |
| ... |
|
|
| |
|
| ... |
|
|
=
×
+
=
×
+
若的个数为偶数,则逆元值为
若的个数为奇数,则逆元值为N-
7.哈希算法
Hash函数将任意长的报文M映射为定长的hash码h,其形式为h=Hash(M),也称为报文摘要。
(1)基本性质
单向性
抗弱碰撞性
抗强碰撞性
(2)常见哈希算法
|------|------------------------------|
| 算法名称 | 说明 |
| MD5 | 以512位的数据块作为输入,输出128位的哈希值 |
| SHA | 以512位的数据块作为输入,输出160位的哈希值 |
| SM3 | 以512位的数据块作为输入,输出256位的哈希值 |
8.数字签名
数字签名要至少满足非否认、真实性、可鉴别性三个条件。
数字签名工作流程:
①发送方:
A使用hash算法对需要发送的文件生成一个文件摘要;
A使用私钥对文件摘要进行加密,形成数字签名;
A将文件原文和数字签名一同发给B。
②接收方:
B使用相同的hash算法计算文件摘要;
B使用A的公钥对数字签名进行解密,还原摘要信息;
B对两个摘要信息进行比对,若一致则认为该文件是A发送的,若不一致则认为该文件已被篡改。
9.密钥管理
密钥管理主要包括密钥生成、存储、分发、使用、更新、撤销、备份、恢复、销毁、审计。
10.数字证书
|----------|
| 版本号 |
| 序列号 |
| 颁发者 |
| 有效日期 |
| 主体 |
| 主体公钥信息 |
| 颁发者唯一标识符 |
| 主体唯一标识符 |
| 扩展项 |
[数字证书基本信息域格式]
11.Diffie-Hellman密钥交换协议
基于求离散对数的困难性。
步骤:
①A和B确定一个适当的素数α和ρ,α为ρ的原根,可公开;
②A秘密选取一个整数,计算
=
modρ,并将
发送给B;
③B秘密选取一个整数,计算
=
modρ,并将
发送给A;
④A和B分别计算密钥K,A计算K=modρ,B计算K=
modρ。
和
为diffie-hellman公开值。
12.SSH
SSH(安全外壳协议)是基于公钥的安全应用协议。
组成:
①SSH传输层。
②SSH用户认证协议。
③SSH连接协议。