費斯妥密碼
佇密碼學中,費斯妥密碼(英語:Feistel cipher)是用於構造區內底加密法的對稱結構,以德國出世的物理學家佮密碼學家霍斯特 ・ 費斯妥(Horst Feistel)號名,伊佇美國 IBM 工作期間完成這項開拓性研究。通常嘛講號做費斯妥網路(Feistel network)。 大部份的分組密碼來使用這个方案,包括資料加密標準(DES)。 費斯妥結構的優點佇咧加密佮解密操作欲仝仔欲仝,佇某一寡狀況下甚至是仝款的,只要倒反金鎖編排。所以,實現這種密碼所需要的代碼抑是電路大細會當減半。
費斯妥網路是一種迵天代密碼,內底的內部函式叫輪函式。
歷史
Feistel 網路頭先佇咧 IBM 的 Lucifer 密碼中商業化,這款密碼是由霍斯特 ・ 費斯妥和 Don Coppersmith 佇一九七三年設計。美國聯邦政府咧設計 DES(是因為 Lucifer 密碼,由 NSA 進行修改)時間採用矣 Feistel 網路。像 DES 的其他組件仝款,Feistel 構造內底迵天代的特性致使佇硬體內底(特別是咧設計 DES 時陣有的硬體上)實現密碼系統閣較容易。
理論做工課
真濟現代佮一寡較舊的對稱區塊加密法因為 Feistel 網路(比如講 GOST 二石八千一百四十七分八十九區箍加密法), 而且密碼學家已經深入研究矣 Feistel 密碼的結構佮性質。具體來講,Michael Luby 和 Charles Rackoff 分析了 Feistel 密碼的構造,證明矣若輪函式是一个密碼安全的偽隨機函式,使用 Ki 成做種子,遐三輪足使用這種區域加密法成做偽隨機置換,抑若四輪伊會當成做「強」偽隨機置換(這意味對,著會使得著其逆排列諭示的攻擊者,伊嘛猶原是烏白停的)。
因為 Luby 和 Rackoff 的結果非常重要,Feistel 密碼有時仔嘛叫做 Luby-Rackoff 區塊加密法。進一步的理論工課著其進行矣推廣,予出閣較精確的安全界限。
構造細節
令 $ { \ rm { F } } $ 為著輪函式,並令 $ K _ { 零 } , K _ { 一 } , \ ldots , K _ { n } $ 分別為輪 $ 零 , 一 , \ ldots , n $ 的子金鎖。
基本操作如下:
共明文塊拆做兩个等長的塊,( $ L _ { 零 } $ , $ R _ { 零 } $ )
嘿逐輪 $ i=零 , 一 , \ dots , n $,計算
- $ L _ { i + 一 }=R _ { i } \ , $
- $ R _ { i + 一 }=L _ { i } \ oplus { \ rm { F } } ( R _ { i } , K _ { i } ) . $
是密文為 $ ( R _ { n + 一 } , L _ { n + 一 } ) $。
解密密文 $ ( R _ { n + 一 } , L _ { n + 一 } ) $ 則通過計算 $ i=n , n 影一 , \ ldots , 零 $
- $ R _ { i }=L _ { i + 一 } \ , $
- $ L _ { i }=R _ { i + 一 } \ oplus \ operatorname { F } ( L _ { i + 一 } , K _ { i } ) . $
著 $ ( L _ { 零 } , R _ { 零 } ) $ 就是明文。
佮代換-對網路來講,Feistel 模型的一个優點是輪函式 $ \ operatorname { F } $ 毋免是可逆的。
正圖顯示加密和解密的過程。注意解密時子金鎖順序反轉,這是加密佮解密之間的唯一區別。
非平衡 Feistel 密碼
非平衡 Feistel 密碼相比其有所修改,其中 $ L _ { 零 } $ 和 $ R _ { 零 } $ 的長度不等。Skipjack 密碼就是這種密碼的一个例。德州儀器數位簽章轉發器使用專有的非平衡 Feistel 密碼來執行挑戰-回應認證。
Thorp shuffle 是一種非平衡 Feistel 密碼的極端狀況,其中一爿干焦有一个。這比平衡 Feistel 密碼具有閣較好的可證明安全性,毋過需要閣較濟輪。
其他的用途
除了這區塊加密法以外,Feistel 結構嘛用其他的密碼佇咧演算法。比如講,最佳非對稱加密添充(OAEP)佇咧某一寡非對稱金鎖加密方案內底,使用簡單的 Feistel 網路密文進行隨機化。
一个廣義的 Feistel 演算法會當用來佇大細毋是二的冪的小域頂懸建立強排列(參見保留格式加密)。
Feistel 網路做設計組件
無論講規个密碼是毋是 Feistel 密碼,類 Feistel 網路攏會使來設計密碼的時陣用作其中一个組成的部份。比如講,MISTY 一是一个使用三輪 Feistel 網路的 Feistel 密碼函式,Skipjack 是一个修改的 Feistel 密碼,佇伊的 G 置換中使用 Feistel 網路,Threefish(Skein)是一个非 Feistel 的區塊加密法,其一部份使用類 Feistel 的 MIX 函式。
Feistel 密碼列表
Feistel 抑是修改過的 Feistel 密碼:
廣義 Feistel:
參見
- 密碼學
- 加密法
- 代換-對網路換
- 提升方案,用佇離散小波變換,誠有差不多仝款的結構
- 保留格式加密
- 萊-馬西方案