在现代密码学中,分组密码是一个常见且优秀的加密结构,很多我们熟知的加密算法都是采用分组密码算法,如DES、AES等等。那么,今天我们就来了解一种分组加密算法——SAFER加密算法。
SAFER加密算法简介
确切的来说,SAFER加密算法不能算是“一种”加密算法,而是“一系列”,它主要分为SAFER K, SAFER SK ,SAFER+ 和SAFER++这四种类型。其中SAFER K 和 SAFER SK 是比较早期的设计,共享相同的加密函数,但是轮次和密钥调度是不一样的。SAFER+ 是AES算法的候选算法之一,而SAFER++ 则是NESSIE计划中十七个分组加密算法候选之一。
SAFER加密算法发展史
第一个SAFER密码是由Massey在1993年发布的SAFER K-64,具有64位块大小。“K-64”表示64位的密钥大小。因为64位的块太小了,不适合加密大的数据,所以第二年,Massey发布了支持128位的变体,叫做SAFER K-128。
但是,Lars Knudsen和Sean Murphy发现这个版本存在一些问题,于是将密钥调度按照Knudsen的建议从新设计。这些变种算法分别被命名为SAFER SK-64和SAFER SK-128。其中 “SK”代表”Strengthened Key schedule”也就是强化过的时间调度。除此之外,还有一种40位块大小的变种算法SAFER SK-40。
SAFER+ 和 SAFER++ 是对原有的SAFER加密算法的改进,是由亚美尼亚密码学家Gurgen Khachatrian和Melsik Kuregian与Massey共同设计的。
SAFER + 是在1998年提出的,但是是以AES的候选算法提交的,它的块大小是128位。
SAFER ++ 是在2000年通过两个版本提交给NESSIE项目的,一个版本是64位,另一个版本是128位。
SAFER算法的特点
- 它们都是面向字节的算法,如、解密及密钥扩展算法中使用的都是字节到字节的运算、这使得它在Smart卡等方面的应用很有优势;
- 加密的轮函数采用“代换2线性变换”(S2LP)结构,在迭代的每一轮中,先对轮输入作用一个由轮子密钥控制的可逆函数 S,然后被作用于一个可逆的线性变换LP。由于置换是一种特殊的线性变换,这种结构可以看为SP结构的推广;
- 在密钥扩展算法中,使用了“密钥偏差”,即给每一个子密钥加上一个常数,避免产生弱密钥。
从最早的SAFER K到后来的 SAFER++,SAFER系列算法不断得到改进,使得算法的安全程度更高,抵抗现有攻击的能力更强,速度也更快,成为一款较为优秀的分组加密算法。
免责声明:素材源于网络,如有侵权,请联系删稿。