分组密码有五种工作*:1.电码本模式(Electronic Codebook Book (ECB));2.密码分组链接模式(Cipher Block Chaining (CBC));3.计算器模式(Counter (CTR));4.密码反馈模式(Cipher FeedBack (CFB));5.输出反馈模式(Output FeedBack (OFB))。
1.电码本模式(Electronic Codebook Book (ECB)
原理:将整个明文分成若干段相同的小段,然后对每一小段进行加密。
2.密码分组链接模式(Cipher Block Chaining (CBC))
原理:将明文切分成若干小段,然后每一小段与初始块或者上一段的密文段进行异或运算后,再与**进行加密。
3.计算器模式(Counter (CTR))
此模式不常见, 使用一个自增的算子,这个算子用**加密之后的输出和明文异或的结果得到密文,相当于一次一密。这种加密方式简单快速,安全可靠,而且可以并行加密,但是在计算器不能维持很长的情况下,**只能使用一次。
CTR的示意图
4.密码反馈模式(Cipher FeedBack (CFB))
这种模式较复杂。
IV(initialization vector) :初始化向量
将加密后的密文length-n位再次加密,每次能加密n位;
5.输出反馈模式(Output FeedBack (OFB))
这种模式较复杂。
OFB模式又称输出反馈模式(Output feedback):是在初始化向量加密后再加密,与明文异或产生密文;
GCM( Galois/Counter Mode )
Ek | 使用秘钥k对输入做对称加密运算 |
XOR | 异或运算 |
Mh | 将输入与秘钥h在有限域GF(2^128)上做乘法 |
GCM中的G就是指GMAC,C就是指CTR。
GCM可以提供对消息的加密和完整性校验,另外,它还可以提供附加消息的完整性校验。在实际应用场景中,有些信息是我们不需要保密,但信息的接收者需要确认它的真实性的,例如源IP,源端口,目的IP,IV,等等。因此,我们可以将这一部分作为附加消息加入到MAC值的计算当中。下图的Ek表示用对称秘钥k对输入做AES运算。最后,密文接收者会收到密文、IV(计数器CTR的初始值)、MAC值。
参考:
http://www.360doc.com/content/19/0217/23/34445812_815649396.shtml
https://www.jianshu.com/p/79a225c2650e