AES-128-CFB,AES-128-GCM,ChaCha20-Poly1305加密算法对比
AES加密方式
大家不难发现AES-128-CFB、AES-128-GCM均是AES-128-开头,很明显他们有着相似的特性。AES(Advanced Encryption Standard)高级加密标准,这类加密标准是十分常见的对称加密算法。所谓的对称加密算法也就是加密和解密用相同的密钥,具体的加密流程如下图:
具体的加密细节由于篇幅加之文章目的不再展示了。这里的AES-128就是密钥的长度为128位,加密轮数为10轮。此种方式在日常生活中应用极广,你现在看到了这篇文章,你就有可能在应用这类加密,因为网站的HTTPS也是基于这种加密方式的。
AES-128-CFB
在知道了AES大概是什么后,相信大家就能猜到了AES-128-CFB、AES-128-GCM都是在AES加密方式下的不同的加密模式。那么两者又有怎样的差别呢?对于CFB模式来说,其全称为Cipher FeedBack模式(密文反馈模式)。在CFB模式中,前一个密文分组会被送回到密码算法的输入端。而所谓反馈,这里指的就是返回输入端的意思。以下是其示意图:
从上图中可以发现,对于AES-128-CFB而言其优点在于它隐藏了明文模式,同时它可以及时加密传送小于分组的数据。但它也有缺点,CFB并不利于并行计算、一个明文单元损坏影响多个单元。
AES-128-GCM
对于GCM 模式来说,其全称为Galois/Counter Mode,也就是该对称加密采用Counter模式,并带有GMAC消息认证码。其工作原理是相对较为复杂的,与CFB不同,它可以提供对消息的加密和完整性校验,另外,它还可以提供附加消息的完整性校验。以下是其粗略的示意图:
同样的笔者也不展开讨论了。这里依然说一下GCM的优缺点。对于GCM而言其最大的优势便是有利于并行计算,并且有消息的完整性校验。缺点自然是要考虑运行加密时硬件的支持程度。
ChaCha20-Poly1305
对于ChaCha20-Poly1305,其全称就是ChaCha20-Poly1305,它是由ChaCha20流密码和Poly1305消息认证码(MAC)结合的一种加密算法。ChaCha20-Poly1305是基于RC4流加密的一种加密方式,它与AES有本质的区别,对于RC4而言,已经被证实并不安全,那么为什么还要发展ChaCha20-Poly1305呢?原因很简单,兼容性。
对于精简指令集的ARM平台,由于没有AES-NI指令集,ChaCha20-Poly1305在同等配置的手机中表现是AES的4倍(ARM v8之后加入了AES指令,所以在ARM v8平台上的设备,AES方式反而比chacha20-Poly1305方式更快,性能更好),这样可减少加密解密所产生的数据量,使得性能更好。
来源:https://www.idleleo.com/09/3058.html
评论