电子密码本模式,需要加密的消息按照块密码的块大小被分为数个块,并对每个块进行独立加密,密文按顺序连接
将数据按块大小分组
第一组数据与向量I异或后的结果加密得到第一组密文C1
第二组数据与C1异或后的结果加密得到第二组密文C2
以此类推,最后将密文按顺序连接
加密:
$ C_1 = Enc(XOR(IV, P_1) $
$C_i = Enc( XOR(C_{i-1}, P_i) $
解密
$P_1 = XOR(IV, Dec(C_1)) $
$ P_i = XOR(C_{i-1}, Dec(C_i)) $
特点
加密解密
加密
$S_0 = IV$
$O_i = Enc(S_i)$
$C_i = XOR( P_i, Lef(O_i))$
$ S_i = A(S_{i-1}, C_i) $
解密
$S_0 = IV$
$O_i = Enc(Key, S_i)$
$P_i = XOR( C_i, Lef(O_i))$
$ S_i = A(S_{i-1}, C_i)$
$Lef(a)$表示取a最左x位
$A(a,b)$表示x左移x位,空位用b填充
加密
$O_0 = IV$
$O_i = Enc(O_{i-1})$
$C_i = XOR( P_i, O_i)$
解密
$O_0 = IV$
$O_i = Enc(O_{i-1})$
$P_i = XOR( C_i, O_i)$
特点
数据长度不对齐时使用0填充,否则不填充。
假设数据长度需要填充n(n>0)个字节才对齐,那么填充n个字节,每个字节都是n;如果数据本身就已经对齐了,则填充一块长度为块大小的数据,每个字节都是块大小。
PKCS7Padding的子集,块大小固定为8字节。
本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议(CC BY-NC-ND 4.0)进行许可。
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License (CC BY-NC-ND 4.0).