文章目录
- 1. 扩散、混淆的意义和区别
- 2. Feistel结构的特点
- 3. 公开的算法和保密的密钥、无条件安全
- 4. 代替和置换、SP网的特点、雪崩效应
- 5. AES、DES的参数和优点、3-DES的特点
- 6. 几种密码攻击方式(安全算法要抵抗的攻击方式)
- 7. 对称加解密的几种工作模式和特点
- 8. 求模运算和多项式求模运算
- 9. 群、域的理解和求逆运算
- 10. 中国剩余定理(包括计算)
- 11. Diff-Hellman密钥交换的基本原理
- 12. 散列函数的几种原像
- 13. RSA基本原理和证明过程
- 14. 几种基于散列签名协议方案的掌握
- 15. MD5、SHA-1、SHA-2
- 16. 数字证书内容、公钥、私钥各自的作用
- 17. 密码学基本三要素、加密五元组
- 18. 椭圆曲线加密的优点
1. 扩散、混淆的意义和区别
扩散:使明文的统计特性消失在密文中,即明文的一个比特发生变化,将会有50%的密文发生变化
混淆:使密钥的统计特性消失在密文中,即密钥的一个比特发生变化,将会有50%的密文发生变化
2. Feistel结构的特点
本质上:Feistel是分组的一半被用来修改数据分组中的另一半,然后交换这两部分
结构上:交替的使用代替和置换技术,实际上这是混淆和扩散的实际应用
算法上:每轮的轮函数F是相同的,但是密钥是不同的,迭代的典型轮数是16轮
安全性:分组长度越长、密钥长度越长、迭代轮数越多、子密钥算法越复杂、轮函数F越复杂,安全强度越高
3. 公开的算法和保密的密钥、无条件安全
公开加密算法,以验证算法的安全性,密钥保密,以获得使用时的机密性;
无条件安全是指:无论有多少可使用的密文,都不足以唯一地确定密文所对应的明文
4. 代替和置换、SP网的特点、雪崩效应
代替:将明文替换成其他字母、数字或符号的方法
置换:本质上是明文的不同序列
SP网的特点:即代替和置换技术的使用,可以加速雪崩效应
雪崩效应:明文或密钥的微小变化会对密文产生很大的影响
5. AES、DES的参数和优点、3-DES的特点
AES:明文长度128bit,密钥长度为128/192/256bit,轮数为10/12/14
优点:运算速度快、安全性高、资源消耗少、支持可变分组长度
DES:明文长度64bit,密钥长度56bit(其余8bit用作奇偶校验或其他),轮数为16轮
优点:密钥较短,加密处理简单,加解密速度快,易于硬件实现,适用于加密大量数据的场合
3-DES:明文64bit,密钥分两个密钥和三个密钥(2*56/3*56)
优点:安全性大幅提高
6. 几种密码攻击方式(安全算法要抵抗的攻击方式)
攻击类型 | 密码分析者已知的信息 |
---|---|
唯密文攻击 | 加密算法E、密文C |
已知明文攻击 | 加密算法E、密文C、用同一密钥加密的一个或多个明密文对 |
选择明文攻击 | 加密算法E、密文C、分析者选择的明文及对应的密文 |
选择密文攻击 | 加密算法E、密文C、分析者选择的一些密文及对应的明文 |
选择文本攻击 | 综合3、4 |
一个被视为安全的算法至少要抵御前三种攻击
7. 对称加解密的几种工作模式和特点
模式 | 描述 | 典型应用 |
---|---|---|
ECB电子密码本 | 用相同的密钥分别对明文分组独立加密 | 单个数据的安全传输(如一个加密密钥) |
CBC密文分组链接 | 加密算法的输入是上一个密文组和下一个明文组的异或 | 面向分组的通用传输、认证 |
CFB密文反馈 | 一次处理s位,上一块密文作为加密算法的输入,产生的伪随机数输出与明文异或作为下一单元的密文 | 面向数据流的通用传输、认证 |
OFB输出反馈 | 与CFB类似,只是加密算法的输入是上一次加密的输出,且使用整个分组 | 噪声信道上的数据流传输(如卫星通信) |
CTR计数器 | 每个明文分组都与一个经过加密计数器相异或,对每个后续分组计数器递增 | 面向分组的通用数据传输、用于高速需求 |
1. ECB模式特点:使用相同密钥对明文分组进行独立加密,可并行执行加解密过程,相同的明文会产生相同的密文,造成安全隐患,适用于数据较少的情况(最好是明文与密钥等长),例如传输单个密钥
2. CBC模式特点:加密算法输入是当前明文与上一个密文分组的异或,可以将相同的明文加密成为不同的密文,加密时串行工作,解密时可以并行执行,初始向量的产生可以用随机数或者加密函数加密的一个时变值,同样要求如果明文最后一个分组不是完整的,需填充至b位,适合加密长度大于b的消息,也可以用来进行认证
3. CFB的特点: 可将分组密码当成流密码使用,与明文异或的位流是与明文相关的,加密操作是串行的,解密时一些操作是可以并行执行的
4. OFB特点:与CFB很相似,但是对整个明文和密文分组进行运算,传输过程中某位发生错误不会影响到其他位,缺点是抗消息流篡改攻击能力不如CFB
5. CTR模式特点: 面向消息流,并且不需要填充分组,能并行加密和解密,硬件效率很高,软件效率由于能充分利用cpu的处理器,也很高,并且可以进行预处理,大大加快执行速度和吞吐量,操作简单,支持随机访问,具有可证明安全性
- 可调分组密码
1.
8. 求模运算和多项式求模运算
9. 群、域的理解和求逆运算
10. 中国剩余定理(包括计算)
中国剩余定理的表述
设
m
1
,
.
.
.
,
m
k
\ m_{1},...,m_{k}
m1,...,mk是k个两两互素的正整数,则对任意的整数
b
1
,
.
.
.
,
b
k
\ b_{1},...,b_{k}
b1,...,bk,
同余式组
{
x
≡
b
1
(
m
o
d
m
1
)
.
.
.
.
.
.
x
≡
b
k
(
m
o
d
m
k
)
\ \left\{\begin{matrix} x\equiv b_{1}(mod\ m_{1})\\ \ ......\\ \ x\equiv b_{k}(mod\ m_{k}) \end{matrix}\right.
⎩⎨⎧x≡b1(mod m1) ...... x≡bk(mod mk)一定有解,且解是唯一的,可表示为
x ≡ b 1 ∗ M 1 ∗ M 1 ′ + . . . + b k ∗ M k ∗ M k ′ ( m o d m ) \ \ x\equiv b_{1}*M_{1}*M'_{1}+...+b_{k}*M_{k}*M'_{k}(mod\ m) x≡b1∗M1∗M1′+...+bk∗Mk∗Mk′(mod m)
11. Diff-Hellman密钥交换的基本原理
一般流程:
Diff-Hellman密钥交换基于离散对数求解的困难性,但易受中间人攻击和阻塞攻击
12. 散列函数的几种原像
抗第一原像(单向性) | 抗第二原像(抗弱碰撞) | 抗第三原像(抗强碰撞) | |
---|---|---|---|
Hash+数字签名 | 是 | 是 | 是* |
入侵检测和病毒检测 | 是 | ||
Hash+对称加密 | |||
单向口令文件 | 是 | ||
MAC | 是 | 是 | 是* |
1. 抗第一原像(单向性攻击):给定任何hash码m,找到h(y)=m在计算上不可行
2. 抗第二原像攻击(抗弱碰撞):给定任意分块x,找到x≠y,但h(x)=h(y)的y在计算上不可行
3. 抗第三原像攻击(抗强碰撞):找到任意的h(x)=h(y)的偶对在计算上不可行
注:*处要求攻击者能够实现选择消息攻击
13. RSA基本原理和证明过程
- 算法描述
加密和解密过程:
C = M e m o d n \ C=M^e\ mod\ n C=Me mod n
C是密文,M是明文,e是公钥,n是一个随机大整数、
M = C d m o d n = ( M e ) d m o d n = M e d m o d n \ M=C^d\ mod\ n=(M^e)^d\ mod\ n=M^{ed}\ mod\ n M=Cd mod n=(Me)d mod n=Med mod n
其中,发送方已知e,n接收方已知n,d,因此
公钥为 P U = { e , n } \ PU=\{e,n\} PU={e,n},私钥为 P R = { d , n } \ PR=\{d,n\} PR={d,n}
证明过程
证明 M ≡ C d m o d N \ M\equiv C^d\ mod\ N M≡Cd mod N
∵ C ≡ M e m o d N , d ≡ e − 1 m o d ϕ ( N ) \ ∵C\equiv M^e\ mod\ N,d\equiv e^{-1}\ mod\ \phi(N) ∵C≡Me mod N,d≡e−1 mod ϕ(N)
∴ 即 证 明 M e d = M 1 m o d ϕ ( N ) = M k ϕ ( N ) + 1 ≡ M m o d N \ ∴即证明M^{ed}=M^{1\ mod\ \phi(N)}=M^{k\phi(N)+1}\equiv M\ mod \ N ∴即证明Med=M1 mod ϕ(N)=Mkϕ(N)+1≡M mod N
当 ( M , N ) = 1 时 , 显 然 M k ϕ ( N ) = 1 m o d N , 此 时 M k ϕ ( N ) + 1 ≡ M m o d N 成 立 \ 当(M,N)=1时,显然M^{k\phi(N)}=1\ mod \ N,此时M^{k\phi(N)+1}\equiv M\ mod \ N成立 当(M,N)=1时,显然Mkϕ(N)=1 mod N,此时Mkϕ(N)+1≡M mod N成立
当 ( M , N ) ≠ 1 时 , ∵ N = p q , 设 M = t p , 则 ( M , q ) = 1 \ 当(M,N)≠1时,∵N=pq,设M=tp,则(M,q)=1 当(M,N)̸=1时,∵N=pq,设M=tp,则(M,q)=1
∵ M ϕ ( N ) = M ϕ ( p ) ϕ ( q ) ≡ 1 m o d q \ ∵M^{\phi(N)}=M^{\phi(p)\phi(q)}\equiv1\ mod\ q ∵Mϕ(N)=Mϕ(p)ϕ(q)≡1 mod q
∴ M ϕ ( N ) = r q + 1 , M ϕ ( N ) + 1 = t p ( r q + 1 ) = r t p q + t p = r t N + M ≡ M m o d N \ ∴M^{\phi(N)}=rq+1,M^{\phi(N)+1}=tp(rq+1)=rtpq+tp=rtN+M\equiv M\ mod\ N ∴Mϕ(N)=rq+1,Mϕ(N)+1=tp(rq+1)=rtpq+tp=rtN+M≡M mod N
综上,得证.
14. 几种基于散列签名协议方案的掌握
- EIgamal密码体制
公开全局量:素数q,α<q,且是q的本原根 |
---|
Alice的密钥:私钥 X A < q − 1 , Y A = α X A ( m o d q ) , 公 钥 为 { q , α , Y A } \ X_A<q-1,Y_A=α^{X_A}(mod\ q),公钥为\{q,α,Y_A\} XA<q−1,YA=αXA(mod q),公钥为{q,α,YA} |
Bob用Alice的公钥进行加密 |
明文M,随机整数k,计算 K = ( Y A ) k m o d q , C 1 = α k m o d q C 2 = K M m o d q , 密 文 是 ( C 1 , C 2 ) \ K=(Y_A)^k mod\ q,C_1=α^kmod\ q\\C_2=KM\ mod\ q,密文是(C_1,C_2) K=(YA)kmod q,C1=αkmod qC2=KM mod q,密文是(C1,C2) |
用Alice的私钥解密 |
计算 K = ( C 1 ) X A m o d q , M = ( C 2 K − 1 ) m o d q \ K=(C_1)^{X_A}mod\ q,M=(C_2K^{-1})mod\ q K=(C1)XAmod q,M=(C2K−1)mod q |
- EIgamal数字签名方案:
- A产生密钥的放式与EIgamal机制相同
- A签名步骤:
1. 计算消息的hash值m=H(M),0≤m≤q-1
2. 选择随机整数K使得1≤K≤q-1且gcd(K,q-1)=1
3. 计算 S 1 = α K m o d q \ S_1=α^K\ mod\ q S1=αK mod q,与EIgmaml机制的 C 1 \ C_1 C1相同
4. 计算 K − 1 m o d ( q − 1 ) \ K^{-1}mod\ (q-1) K−1mod (q−1),即计算K模q-1的逆元
5. 计算 S 2 = K − 1 ( m − X A S 1 ) m o d ( q − 1 ) \ S_2=K^{-1}(m-X_AS_1)mod\ (q-1) S2=K−1(m−XAS1)mod (q−1)
6. 签名包括 ( S 1 , S 2 ) \ (S_1,S_2) (S1,S2)对- 其他用户验证签名:
1. 计算 V 1 = α m m o d q \ V_1=α^m\ mod\ q V1=αm mod q
2. 计算 V 2 = ( Y A ) S 1 ( S 1 ) S 2 m o d q \ V_2=(Y_A)^{S_1}(S_1)^{S_2}mod\ q V2=(YA)S1(S1)S2mod q
3. 如果 V 1 = V 2 则 签 名 合 法 \ V_1=V_2则签名合法 V1=V2则签名合法
- 数字签名标准DSA
DSA虽然是一种公钥密码方案,但不能用于加密或密钥交换
DSA签名方案 |
---|
全局公钥: p , q , g \ p,q,g p,q,g |
p 为 素 数 , 2 L − 1 < p < 2 L , 512 ≤ L ≤ 1024 , L 是 64 的 倍 数 , 增 量 为 64 q 为 ( p − 1 ) 的 素 因 子 , 2 N − 1 < p < 2 N , g = h ( p − 1 ) q m o d p , 1 < h < ( p − 1 ) \ p为素数,2^{L-1}<p<2^{L},512≤L≤1024,L是64的倍数,增量为64\\q为(p-1)的素因子,2^{N-1}<p<2^{N},g=\frac{h(p-1)}{q}mod\ p,1<h<(p-1) p为素数,2L−1<p<2L,512≤L≤1024,L是64的倍数,增量为64q为(p−1)的素因子,2N−1<p<2N,g=qh(p−1)mod p,1<h<(p−1) |
用户的私钥 x 为 随 机 数 , 0 < x < q \ x为随机数,0<x<q x为随机数,0<x<q |
用户的公钥 y = g x m o d p \ y=g^x\ mod\ p y=gx mod p |
与用户每条消息相关的秘密值k,0<k<1 |
签名: r = ( g k m o d p ) m o d q s = [ k − 1 ( H ( M ) + x r ) ] m o d q 签 名 = ( r , s ) \ r=(g^k\ mod\ p)mod\ q\\s=[k^{-1}(H(M)+xr)]\ mod\ q\\签名=(r,s) r=(gk mod p)mod qs=[k−1(H(M)+xr)] mod q签名=(r,s) |
验证: w = ( s ′ ) − 1 m o d q u 1 = [ H ( M ′ ) w ] m o d q u 2 = ( r ′ ) w m o d q v = [ ( g u 1 y u 2 m o d p ] m o d q 验 证 v = r ′ \ w=(s')^{-1}\ mod\ q\\u_1=[H(M')w]\ mod\ q\\u_2=(r')w\ mod\ q\\v=[(g^{u_1}y^{u_2}\ mod p]\ mod\ q\\验证v=r' w=(s′)−1 mod qu1=[H(M′)w] mod qu2=(r′)w mod qv=[(gu1yu2 modp] mod q验证v=r′ |
15. MD5、SHA-1、SHA-2
MD5:面向分组或字节流:任意长度的字符串或字节流,经过MD5的编码后,生成一个128bit的二进制串,通常表示为32个十六进制数字连成的字符串,MD5不可逆,常用来加密密码和数据检验
SHA-1:可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数
SHA-2:是SHA-1的后继者,其下又可再分为六个不同的算法标准,包括了:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256,
16. 数字证书内容、公钥、私钥各自的作用
数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件
公钥的作用:为一组用户所共享,用于加密和验证签名
私钥的作用:仅为本人所知的私有密钥(私钥),用它进行解密和签名
17. 密码学基本三要素、加密五元组
三要素:机密性、完整性、可用性
加密五元组:明文、密钥、密文、加密算法、解密算法
18. 椭圆曲线加密的优点
它的安全性基于椭圆曲线对数问题,可以用比RSA短得多的密钥长度来得到相同的安全性,因此在处理速度上大有提升,可用于密钥交换或加密