密碼學系列之:SAFER


密碼學系列之: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算法的基本流程:

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

最通俗的解讀,最深刻的干貨,最簡潔的教程,眾多你不知道的小技巧等你來發現!

歡迎關注我的公眾號:「程序那些事」,懂技術,更懂你!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM