分組密碼

分組密碼

分組密碼是將明文訊息編碼表示後的數字(簡稱明文數字)序列,劃分成長度為n的組(可看成長度為n的矢量),每組分別在密鑰的控制下變換成等長的輸出數字(簡稱密文數字)序列。分組密碼的研究包括三方面:分組密碼的設計原理,分組密碼的安全性分析和分組密碼的統計性能測試。

簡介

現代分組密碼的研究始於20世紀70年代中期,至今已有20餘年歷史,這期間人們在這一研究領域已經取得了豐碩的研究成果。大體上,分組密碼的研究包括三方面:分組密碼的設計原理,分組密碼的安全性分析分組密碼的統計性能測試。

內容

分組密碼的設計與分析是兩個既相互對立又相互依存的研究方向,正是由於這種對立促進了分組密碼的飛速發展。早期的研究基本上是圍繞DES進行,推出了許多類似於DES的密碼,例如,LOKI、FEAL、GOST等。進入90年代,人們對DES類密碼的研究更加深入,特別是差分密碼分析(differential cryptanalysis)和線性密碼分析(linear cryptanalysis)的提出,迫使人們不得不研究新的密碼結構。IDEA密碼的出現打破了DES類密碼的壟斷局面,IDEA密碼的設計思想是混合使用來自不同代數群中的運算。隨後出現的Square、Shark和Safer-64都採用了結構非常清晰的代替-置換(SP)網路,每一輪由混淆層和擴散層組成。這種結構的最大優點是能夠從理論上給出最大差分特徵機率和最佳線性逼近優勢的界,也就是密碼對差分密碼分析和線性密碼分析是可證明安全的。
AES的徵集掀起了分組密碼研究的新高潮,15個AES候選算法反映了當前分組密碼設計的水平,可以說是近幾年研究成果的一個總匯。目前分組密碼所採用的整體結構可分為Feistel結構(如CAST-256、DEAL、DFC/E2等)、SP網路(如Safer+、Serpent等)及其他密碼結構(如Frog和HPC)。Feistel結構由於DES的公布而廣為人知,已被許多分組密碼所採用。Feistel結構的最大優點是容易保證加解密相似,這一點在實現中尤其重要。而SP網路比較難做到這一點,但是SP網路的擴散特性比較好。在現有的分組密碼中,所有的基本運算有異或、加、減、查表、乘及數據依賴循環等。查表運算提供了DES的安全基礎,仔細地選擇S-盒能較好地抗擊線性和差分密碼分析,提供好的數據及密鑰比特的雪崩特性。不過,S-盒需要一些存儲器,所以S-盒的規模不能太大。15個AES候選算法所採用的S-盒規模有6種,分別是4×4、8×8、8×32、11×8、13×8、及8×32。S-盒的另一中稱呼是黑盒子,它常給人造成故意設定陷阱的嫌疑,因此,Safer+等選取公開的數學函式,避免嫌疑。S-盒的設計與分析是分組密碼設計中的重要環節,它的好壞直接影響密碼體制的安全性,目前對S-盒的設計並沒有一個完備的要求,但總的希望是增強S-盒的非線性度、差分均勻性及分量函式的代數次數和項數。
目前對分組密碼安全性的討論主要包括差分密碼分析、線性密碼分析和強力攻擊等。從理論上講,差分密碼分析和線性密碼分析是目前攻擊分組密碼的最有效的方法,而從實際上說,強力攻擊是攻擊分組密碼最可靠的方法。到目前為止,已有大量文獻討論各種分組密碼的安全性。自AES候選算法公布以後,國內外許多專家都致力於候選算法的安全性分析,預計將會推出一些新的攻擊方法,這無疑將進一步推動分組密碼的發展。
與序列密碼每次加密處理數據流的一位或一個位元組不同,分組密碼處理的單位是一組明文,即將明文訊息編碼後的數字序列m0,m1,m2,…,mi劃分成長為L位的組m=(m0,m1,m2,…,mL-1),各個長為L的分組分別在密鑰k=(k0,k1,k2,…,kt-1)(密鑰長為t)的控制下變換成與明文組等長的一組密文輸出數字序列c=(c0,c1,c2,…,cL-1)。L通常為64或128。分組密碼的模型如圖2.3所示。
設明文m與密文c均為二進制0、1數字序列,它們的每一個分量mi,ciεDF(2)(i=0,1,2,…,n-1),則明文空間為{0,1,…,2n-1},密文空間也為0,1,…,2n-1},分組密碼是由密鑰k=(k0,k1,k2,…,kt-1)確定的一個一一映射,也就是空間{0,1,…,2n-1},到自身的一個置換F,由於置換F是由密鑰k所確定,一般地,我們把這個置換表示為C=Fk(m)。
分組密碼算法實際上就是密鑰控制下,通過某個置換來實現對明文分組的加密變換。為了保證密碼算法的安全強度,對密碼算法的要求如下。
(1)分組長度足夠大。當分組長度較小時,分組密碼類似於古典的代替密碼,它仍然保留了明文的統計信息,這種統計信息將給攻擊者留下可乘之機,攻擊者可以有效地窮舉明文空間,得到密碼變換本身。
(2)密鑰量足夠大。分組密碼的密鑰所確定密碼變換隻是所有置換中極小一部分。如果這一部分足夠小,攻擊者可以有效地窮舉明文空間所確定所有的置換。這時,攻擊者就可以對密文進行解密,以得到有意義的明文。
(3)密碼變換足夠複雜。使攻擊者除了窮舉法以外,找不到其他快捷的破譯方法。
分組密碼是將明文訊息編碼表示後的數字(簡稱明文數字)序列,劃分成長度為n的組(可看成長度為n的矢量),每組分別在密鑰的控制下變換成等長的輸出數字(簡稱密文數字)序列.
分組密碼將定長的明文塊轉換成等長的密文,這一過程在秘鑰的控制之下。使用逆向變換和同一密鑰來實現解密。對於當前的許多分組密碼,分組大小是 64 位,但這很可能會增加。
明文訊息通常要比特定的分組大小長得多,而且使用不同的技術或操作方式。這樣的方式示例有:電子編碼本(ECB)、密碼分組連結(CBC)或密碼反饋(CFB)。ECB 使用同一個密鑰簡單地將每個明文塊一個接一個地進行加密;在 CBC 方式中,每個明文塊在加密前先與前一密文塊進行“異或”運算,從而增加了複雜程度,可以使某些攻擊更難以實施。 “輸出反饋”方式(ofb)類似 CBC 方式,但是進行“異或”的量是獨立生成的。 CBC 受到廣泛使用,例如在 DES(qv)實現中,而且在有關密碼術的技術性方面的相應書籍中深入討論了各種方式。請注意:您自己建立的 密碼系統的普遍弱點就是以簡單的形式來使用某些公開的算法,而不是以提供了額外保護的特定方式使用。
疊代的分組密碼是那些其加密過程有多次循環的密碼,因此提高了安全性。在每個循環中,可以通過使用特殊的函式從初始秘鑰派生出的子密鑰來套用適當的變換。該附加的計算需求必然會影響可以管理加密的速度,因此在安全性需要和執行速度之間存在著一種平衡。天下沒有免費的午餐,密碼術也是如此;與其它地方一樣,套用適當方法的技巧中有一部分是源於對需要進行的權衡以及它們與需求平衡的關係如何的理解。
分組密碼包括 DES、IDEA、SAFER、Blowfish 和 Skipjack — 最後一個是“美國國家安全局(US National Security Agency,NSA)”限制器晶片中使用的算法。

相關詞條

相關搜尋

熱門詞條

聯絡我們