北京做网站费用,办个网站多少钱,广州网站建设设计哪家好,拍卖行 网站建设一.什么是CBC模式? CBC模式的全称是Cipher Block Chaining模式#xff08;密文分组链接模式#xff09;#xff0c;之所以叫这个名字#xff0c;是因为密文分组像链条一样相互连接在一起。 在CBC模式中#xff0c;首先将明文分组与前一个密文分组进行异或运算#xff0c…一.什么是CBC模式? CBC模式的全称是Cipher Block Chaining模式密文分组链接模式之所以叫这个名字是因为密文分组像链条一样相互连接在一起。 在CBC模式中首先将明文分组与前一个密文分组进行异或运算然后再进行加密。
异或运算:
异或英文为exclusive OR缩写成xor
异或xor是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”计算机符号为“xor”。其运算法则为
a⊕b (¬a ∧ b) ∨ (a ∧¬b)
如果a、b两个值不相同则异或结果为1。如果a、b两个值相同异或结果为0。
异或也叫半加运算其运算法则相当于不带进位的二进制加法二进制下用1表示真0表示假则异或的运算法则为0⊕001⊕010⊕111⊕10同为0异为1这些法则与加法是相同的只是不带进位所以异或常被认作不进位加法。
异或略称为XOR、EOR、EX-OR
程序中有三种演算子XOR、xor、⊕。
使用方法如下
z x ⊕ y
z x xor y
二.CBC模式加解密过程如下
1.加密过程例如以下 首先将数据依照8个字节一组进行分组得到D1D2......Dn若数据不是8的整数倍用指定的PADDING数据补位 第一组数据D1与初始化向量iv异或后的结果进行DES加密得到第一组密文C1初始化向量I为全零第二组数据D2与第一组的加密结果C1异或以后的结果进行DES加密得到第二组密文C2之后的数据以此类推得到Cn按顺序连为C1C2C3......Cn即为加密结果。
2. 解密密过程例如以下
首先将数据依照8个字节一组进行分组得到C1C2C3......Cn将第一组数据进行解密后与初始化向量I进行异或得到第一组明文D1注意一定是先解密再异或将第二组数据C2进行解密后与第一组密文数据进行异或得到第二组数据D2之后依此类推。得到Dn按顺序连为D1D2D3......Dn即为解密结果。
这里注意一点解密的结果并不一定是我们原来的加密数据可能还含有你补得位。一定要把补位去掉才是你的原来的数据。
三.CBC模式特点
cbc模式在进行加密之前一定会与前一个密文组进行异或运算,因此即使明文D1与明文D2值相等,密文C1与密文C2也不一定是相等的cbc模式无法单独的对一个明文组进行加密,必须有前一个密文组,第一个密文组依赖于IV产生解密时如果其中一个密文组损坏,只要密文分组的长度没有发生变化则解密时最多只有2个分组受到数据损坏的影响资源下载地址 https://download.csdn.net/download/qq_27969037/11327461