熟悉著名科幻小说《指环王》的朋友对Khazad这个名字一定不会陌生,而我们今天要说的就是以其命名的加密算法——Khazad算法。

Khazad算法简介

Khazad加密算法是欧洲NESSIE密码计划中进入第二阶段的候选加密算法之一,由巴西的Paulo Barreto和比利时的Vincent Rijmen共同设计,后者也是AES的设计者。

Khazad算法是一种迭代对合分组密码,采用64比特的分组长度,密钥长度为128比特,整体结构是代换/置换网络。

Khazad算法

Khazad算法的加密

Khazad算法共有8轮,每轮加密分为3个部分:S-盒,矩阵形式的乘积运算(线性扩散层)和密钥加。整个密码算法遵循宽轨迹策略,支持密码模块的重复使用,适合各类实现的折衷考虑。

Khazad算法是根据宽轨迹策略设计的,采用宽轨迹策略时,分组密码的轮变换由不用的可逆变换组成,每种变换有各自的功能和要求,线性扩散层保证经过几轮变换后,全部的输出比特取决于全部的输入比特,非线性层保证这种依赖关系是复杂的并具有非线性的性质,密钥加产生各轮所需的子密钥。宽轨迹策略的优点之一是不同的模块之间可以彼此相互独立。

Khazad算法

Khazad算法的安全性

Khazad算法两轮的差分特征概率不大于2的负45次方,四轮密码迭代就可以抵抗饱和攻击,三轮迭代就可以抵抗Biham-Keller攻击,同时密码对内插攻击、相关密钥攻击是免疫的,四轮以上迭代的函数对截断攻击时免疫的。

并且Khazad算法具有很好的随机特性,简单的来说就是,对于Khazad算法而言,最有效的攻击就是穷举密钥搜索,因此它对所有已知攻击具有足够的安全冗余度。


综上所述,Khazad算法具有很强的灵活性,可以节省大量的储存空间,并减少处理器指令,使得其可以在各种平台上实现应用。

免责声明:素材源于网络,如有侵权,请联系删稿。