天天看點

密碼學基礎知識(四)分組密碼

首先再說說密碼體制那點事,密碼體制按密鑰分為兩派,對稱和公鑰,不過也可以分為分組密碼和流密碼(序列密碼)。剛才看了一眼,發現忘把圖檔傳上來了,下次有功夫的。

說句廢話,分組密碼主要采用混淆原則和擴散原則來抵抗攻擊者對該密碼體制的統計分析。

那分組密碼是什麼東西呢?

通俗講就是将明文分塊,然後分塊加密。

分組密碼設計的準則:

①分組長度

分組長度越長意味着安全性越高,但是會影響加密解密的速度。1977年之後,由于計算速度和分析技術的提高,建議使用分組長度128位。

②密鑰長度

密鑰越長同樣意味着安全性越高,但會影響加密和解密的速度。現在一般認為64位的密鑰是不安全的,通常使用的密鑰長度為128位。

③輪函數F

輪函數F通常之疊代分組密碼中單輪加密解密算法的實作部分,是分組密碼結構的核心,由其實作資料的混亂和擴散。在設計中,輪函數要遵循雪崩效應準則和位獨立準則。評價輪函數實際品質的名額有安全性,速度和靈活性。

④疊代的輪數

疊代分組密碼的本質是單輪不能提供足夠的安全性而多倫疊代增強其安全性。一般而言,疊代輪數越多,密碼分析越困難,但過多的疊代會使輸入和輸出的關系複雜化,影響加解密速度,而安全性增強不明顯,一般而言,決定疊代輪數的準則是:是密碼分析的難度大于簡單窮舉攻擊的難度。

⑤子密鑰的生成方法

理論設計目标是子密鑰的統計獨立性和密鑰更換的有效性。包括:實作簡單,便于硬體實作,子密鑰的生成不影響疊代輪函數的執行;不存在簡單關系;種子密鑰的所有比特對每個子密鑰比特影響大緻相同;沒有弱密鑰或弱密鑰容易避開;保證密鑰和密文符合位獨立準則和雪崩效應。

分組密碼的設計應滿足的要求:

①分組要足夠長。假設n為分組長度,則要使分組代換字母表中的元素個數2n足夠大,以防止明文窮舉攻擊。

②密鑰長度要足夠長,以防止密鑰窮舉攻擊。但密鑰又不能過長,這不利于密鑰的管理且影響加解密的速度。

③由密鑰确定的置換算法要足夠複雜,足以抵抗各種已知的攻擊,如查分攻擊和線性攻擊等,使攻擊者除了利用窮舉攻擊外,無其他更好的攻擊方法。

④加密解密運算簡單,易于軟體和硬體的快速實作。為了便于軟體程式設計和通過邏輯電路實作,算法中的運算應盡量簡單,如二進制加法或移位運算,參與運算的參數長度也應選擇在8的整數倍,可以充分發揮計算機中位元組運算的優勢。

⑤一般無資料擴充,即明文和密文長度相同。在采用同态置換和随機話加密技術時可引入資料擴充。

⑥差錯傳播盡可能的小。

設計密碼時,①②③的安全性為必要條件,同時還需考慮④⑤⑥。

歸納起來,一個分組密碼在實際應用中需要在安全性和實用性之間尋求一種平衡,使算法在足夠安全的同時,又具有盡可能短的密鑰,盡可能小的存儲空間以及盡可能快的運作速度。

------------------越是喧嚣的世界,越需要甯靜的思考------------------

合抱之木,生于毫末;九層之台,起于壘土;千裡之行,始于足下。

積土成山,風雨興焉;積水成淵,蛟龍生焉;積善成德,而神明自得,聖心備焉。故不積跬步,無以至千裡;不積小流,無以成江海。骐骥一躍,不能十步;驽馬十駕,功在不舍。锲而舍之,朽木不折;锲而不舍,金石可镂。蚓無爪牙之利,筋骨之強,上食埃土,下飲黃泉,用心一也。蟹六跪而二螯,非蛇鳝之穴無可寄托者,用心躁也。