标签:递增 contain electron 目录 随机 ade put 工作 拼接
- \(b\): 分组位长度;
- \(n\): 明文中分组或分段个数;
- \(s\): 分段数据的位长度;
- \(u\): 最后一个明文块或密文块的位长度;
- \(C_i\): 第\(i\)个密文块(block);
- \(C_{i}^{\#}\): 第\(i\)个密文段(segment);
- \(C_{n}^{*}\): 最后一个密文块;
- \(O_i\): 第\(i\)个输出块;
- \(P_i\): 第\(i\)个明文块;
- \(P_{i}^{\#}\): 第\(i\)个明文段;
- \(P_{n}^{*}\): 最后一个明文块;
- \(T_i\): 第\(i\)个计数块;
- \(x\dots y\): y拼接到x之后;
- \(x\oplus y\): x异或y;
- \(CIPH_{K}(x)\): 对数据块\(x\)使用密钥\(K\)进行前向加密函数加密;
- \(CIPH_{K}^{-1}(x)\): 对数据块\(x\)使用密钥\(K\)进行逆加密函数解密;
- \([x]_{m}\): 非负整数\(x\)按m位二进制表示;
- \(IV\): 初始化向量, 可通过随机数生成算法生成一个位长度为\(b\)的向量;
- \(LSB_{m}(x)\): x的最低有效m位;
- \(MSB_{m}(x)\): x的最高有效n位;
ECB加密解密过程数学表达式如下:
\[\begin{aligned}
& C_i = CIPH_{K}(P_i), \qquad i = 0\cdots n \& P_i = CIPH_{K}^{-1}(C_i), \qquad i = 0\cdots n
\end{aligned}
\]
CBC加密解密过程数学表达式如下:
\[\begin{aligned}
& C_0 = CIPH_{K}(P_{0}\oplus IV) \& C_i = CIPH_{K}(P_{i}\oplus C_{i-1}), \qquad i = 1\cdots n \& P_0 = CIPH_{K}^{-1}(C_{0})\oplus IV \& P_i = CIPH_{K}^{-1}(C_{i})\oplus C_{i-1}, \qquad i = 1\cdots n
\end{aligned}
\]
CFB加密解密过程数学表达式如下:
\[\begin{aligned}
& I_0 = IV \& I_i = LSB_{b-s}(I_{i-1})\dots C_{i-1}^{\#}, \qquad i=1\cdots n \& O_i = CIPH_{K}(I_i), \qquad i=0\cdots n\& C_{i}^{\#} = P_{i}^{\#}\oplus MSB_{s}(O_i), \qquad i=0\cdots n \& \quad \& I_0 = IV \& I_i = LSB_{b-s}(I_{i-1})\dots C_{i-1}^{\#}, \qquad i=1\cdots n \& O_i = CIPH_{K}(I_i), \qquad i=0\cdots n \& P_{i}^{\#} = C_{i}^{\#} \oplus MSB_{s}(O_i), \qquad i=0\cdots n
\end{aligned}
\]
OFB加密解密过程数学表达式如下:
\[\begin{aligned}
& I_0 = IV \& I_i = O_{i-1}, \qquad i=1\cdots n \& O_i = CIPH_{K}(I_i), \qquad i=0\cdots n \& C_{i} = P_{i}\oplus O_{i}, \qquad i=0\cdots n-1 \& C_{n}^{*} = P_{n}^{*} \oplus MSB_{u}(O_n) \& \quad \& I_0 = IV \& I_i = O_{i-1}, \qquad i=1\cdots n \& O_i = CIPH_{K}(I_i), \qquad i=0\cdots n \& P_i = C_{i}\oplus O_{i}, \qquad i=0\cdots n-1 \& P_{n}^{*} = C_{n}^{*}\oplus MSB_{u}(O_n)
\end{aligned}
\]
CTR加密解密过程数学表达式如下:
\[\begin{aligned}
& O_{i} = CIPH_{K}(T_{i}), \qquad i=0\cdots n \& C_{i} = P_{i} \oplus O_{i}, \qquad i=0\cdots n-1 \& C_{n}^{*} = P_{n}^{*} \oplus MSB_{u}(O_n) \& \quad \& O_{i} = CIPH_{K}(T_{i}), \qquad i=0\cdots n \& P_{i} = C_{i} \oplus O_{i}, \qquad i = 0\cdots n-1 \& P_{n}^{*} = C_{n}^{*}\oplus MSB_{u}(O_n)
\end{aligned}
\]
CTR加密解密过程需要计数块\(T_{i}\)的参与, 其生成步骤如下:
记\(T_i\)的位长度为\(m\), 需保证\(n\lt m\le b\), 在\(2^m\)个数中任意选定一个作为初始值.
- 递增生成后续计数块\(T_{0\cdots n}\), 那么生成方法如下:
\[T_{i} = (T_{i-1}+1) \mod 2^{m}, \qquad i=1\cdots n
\]
分组加密工作模式(ECB/CBC/CFB/OFB/CTR)
标签:递增 contain electron 目录 随机 ade put 工作 拼接
原文地址:https://www.cnblogs.com/mengsuenyan/p/12704365.html