Linux加密框架中的算法和算法模式(三)

汇总

  1. 加密框架中的对称密码算法汇总

加密框架中共有14个对称密码算法源码文件,如下所示。
Linux加密框架中的算法和算法模式(三)_第1张图片
如上所示,在arc4.c中定义了两个与RC4算法相关的算法实现,分别为arc4和ecb(arc4),其中arc4是RC算法的算法实现,而ecb(arc4)是RC算法ECB模式的算法实现,在加密框架中,将arc4称为基础算法,ecb(arc4)称为衍生算法。就RC4算法而言,arc4和ecb(arc4)是等价的,但在加密框架中,算法应用(如IPSEC)不能通过arc4访问RC4算法,只能通过ecb(arc4)访问RC4算法,也就是说arc4是面向加密框架的,而ecb(arc4)是面向算法应用的。
由于加密框架中对称密码算法绝大部分都是分组算法,因此后续章节内容中将以分组算法代指对称密码算法。

  1. 加密框架中的哈希算法汇总

加密框架中共有13个哈希算法源码文件,如下所示。
Linux加密框架中的算法和算法模式(三)_第2张图片

  1. 加密框架中的算法模式汇总

加密框架中将算法模式抽象为算法模板(template),加密框架中包括13个算法模式(算法模板)源码文件,如下所示。
Linux加密框架中的算法和算法模式(三)_第3张图片

  1. 最后一点说明

在密码学上,密码算法的工作模式很有限,如哈希算法只有hash计算一种模式,分组算法只有加密和解密两种模式。在实际应用中,密码算法一般是和算法模式配合使用的,以分组算法为例,在实际应用中基本上不会直接使用基本工作模式的加密或解密接口,绝大部分情况下使用的是某种算法模式的加密或解密接口。
算法模式不是针对某个特定密码算法的,而是适用于某一类型的密码算法,如HMAC模式适用于所有哈希算法,CBC模式适用于所有分组算法。
在加密框架中,将使用特定算法模式的算法也认为是一种新的算法,新算法的命名规则为:算法模板名(基础算法,…),其中基础算法可以有多个。如将使用HMAC模式的MD5算法,定义为名为“hmac(md5)”的新算法,这些新算法也可以称为创建其他算个发的基础算法,如名为“authenc(hmac(md5),cbc(aes))的算法的基础算法为hmac(md5)和cbc(aes)本身也是由算法模板创建的算法。
在加密框架中,将不带算法模式的算法称为基础算法,如md5和aes,这些算法是静态定义、编译到加密框架中的,因此也称为静态算法;将带算法模式的算法称为衍生算法,如hmac(md5)和cbc(aes),这些算法是动态创建的,因此也称为动态算法。

你可能感兴趣的:(加密框架)