天天看點

密碼學系列之:SAFER

簡介

分組密碼是一個非常優秀的加密結構,很多常用加的加密算法使用的都是分組算法,比如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算法的基本流程:

密碼學系列之:SAFER

從最上面開始,是明文的輸入階段,每個明文都被分成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/

繼續閱讀