写点什么

密码学系列之:SAFER

发布于: 2021 年 05 月 28 日

简介

分组密码是一个非常优秀的加密结构,很多常用加的加密算法使用的都是分组算法,比如 DES。SAFER 表示的也是一种分组密码算法。一起来看看吧。

SAFER 简介

SAFER 的全称是 Secure And Fast Encryption Routine,在密码学中,SAFER 主要是由 James Massey(IDEA 的设计师之一)代表 Cylink 公司设计的一组分组密码。

SAFER 主要有四种类型分别是:SAFER K, SAFER SK ,SAFER+ 和 SAFER++ 。

其中 SAFER K 和 SAFER SK 是比较早期的设计,共享相同的加密函数,但是轮次和密钥调度是不一样的。

后面的 SAFER+ 和 SAFER++ 是作为 AES 算法的候选算法提交给 NESSIE 的。 SAFER 系列中的所有算法都没有专利限制,可以免费使用。

SAFER K 和 SAFER SK

第一个 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 K 算法的基本流程:



从最上面开始,是明文的输入阶段,每个明文都被分成 8 块。

接着就是密钥混合阶段,在这个阶段,明文分别和子密钥进行加法模 256 或者 XOR 运算。

然后是替换阶段,将上一阶段生成的结果通过两个相反的 S 盒映射成为新的数据。

这两个 S 盒分别是由 45x和 log45这两个函数派生出来的。有想了解 S 盒的朋友可以参考 “密码学系列之:blowfish 对称密钥分组算法” 一文。

然后是第二次的密钥混合阶段。

在第二次密钥混合阶段之后,会使用 pseudo-Hadamard transform (PHT)来进行扩散。

这四个阶段组成了一轮加密。

SAFER+ 和 SAFER++

SAFER+ 和 SAFER++ 是对原有的 SAFER 加密算法的改进。他们是由亚美尼亚密码学家 Gurgen Khachatrian(亚美尼亚大学)和 Melsik Kuregian 与 Massey 共同设计的。

SAFER + 是在 1998 年提出的,但是是以 AES 的候选算法提交的,它的块大小是 128 位。蓝牙的密钥是基于 SAFER +的自定义算法来实现的(称为 E21 和 E22),

SAFER ++ 是在 2000 年通过两个版本提交给 NESSIE 项目的,一个版本是 64 位,另一个版本是 128 位。

本文已收录于 http://www.flydean.com/safer/

最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧等你来发现!

欢迎关注我的公众号:「程序那些事」,懂技术,更懂你!

发布于: 2021 年 05 月 28 日阅读数: 8
用户头像

关注公众号:程序那些事,更多精彩等着你! 2020.06.07 加入

最通俗的解读,最深刻的干货,最简洁的教程,众多你不知道的小技巧,尽在公众号:程序那些事!

评论

发布
暂无评论
密码学系列之:SAFER