1. 程式人生 > >什麽是私有密鑰密碼技術——密鑰加密算法采用同一把密鑰進行加密和解密

什麽是私有密鑰密碼技術——密鑰加密算法采用同一把密鑰進行加密和解密

解密 網絡安全 位操作 線性復雜 對稱 大量 控制 全局 相位

什麽是私有密鑰密碼技術

私有密鑰(Symmetric Key),又叫對稱密鑰。密鑰加密算法采用同一把密鑰進行加密和解密。它的優點是加密和解密速度非常快,但密鑰的分發和管理比較困難。信息的發送者和接收者必須明確同一把密鑰。因此,必須進行密鑰交流,這通常需要其他更安全的信道來傳送密鑰。另外,每一對用戶都需要有自己的一個獨一無二的密鑰。因此,如果一個發送者與很多人通信,就需要管理很多密鑰。主要的對稱密鑰加密算法有DES、3DES、RC2、RC4、RC5、Blowtish和CAST等。在VPN中常用的有DES和3DES。DES是一個分組加密算法,它利用56位密鑰對64位的分組進行數據加密。64位一組的明文從算法的一端輸入,64位一組的密文從另一端輸出。加密和解密用的是同一個算法。3DES利用3個密鑰加密3次,但速度要慢得多。


對稱(傳統)密碼體制是從傳統的簡單換位,代替密碼發展而來的,自1977年美國頒布DES密碼算法作為美國數據加密標準以來,對稱密鑰密碼體制得到了迅猛地發展,在世界各國得到了關註和使用。對稱密鑰密碼體制從加密模式上可分為序列密碼和分組密碼兩大類。


1、序列密碼


序列密碼一直是作為軍事和外交場合使用的主要密碼技術之一,它的主要原理是,通過有限狀態機產生性能優良的偽隨機序列,使用該序列加密信息流,(逐比特加密)得到密文序列,所以,序列密碼算法的安全強度完全決定於它所產生的偽隨機序列的好壞。衡量一個偽隨機序列好壞的標準有多種,比較通用的有著名的Golamb的三個條件,Rueppel的線性復雜度隨機走動條件,線性逼近以及產生該序列的布爾函數滿足的相關免疫條件等。


產生好的序列密碼的主要途徑之一是利用移位寄存器產生偽隨機序列, 典型方法有:


反饋移位寄存器:采用n階非線性反饋函數產生大周期的非線性序列,例如M序列,具有較好的密碼學性質,只是反饋函數的選擇有難度,如何產生全部的M序列至今仍是世界難題。


利用線性移位寄存器序列加非線性前饋函數,產生前饋序列,如何控制序列相位及非線性前饋函數也是相當困難的問題,Bent序列就是其中一類好的序列,我國學者對反饋序列和前饋序列的研究都取得了相當多的成果。


鐘控序列,利用一個寄存器序列作為時鐘控制另一寄存器序列(或自己控制自己)來產生鐘控序列,這種序列具有大的線性復雜度。 組合網絡及其他序列,通過組合運用以上方法,產生更復雜的網絡,來實現復雜的序列,這種序列的密碼性質理論上比較難控制。 利用混沌理論,細胞自動機等方法產生的偽隨機序列。


對序列密碼攻擊的主要手段有代數方法和概率統計方法,兩者結合可以達到較好的效果。目前要求寄存器的階數大於100階,才能保證必要的安全。


序列密碼的優點是錯誤擴展小,速度快,利於同步,安全程度高。


2、分組密碼


分組密碼的工作方式是將明文分成固定長度的組(塊),如64比特一組 ,用同一密鑰和算法對每一塊加密,輸出也是固定長度的密文。例如DES密碼算法的輸入為64比特明文,密鑰長度56比特,密文長度64比特。


設計分組密碼算法的核心技術是:在相信復雜函數可以通過簡單函數叠代若幹圈得到的原則下,利用簡單圈函數及對合等運算,充分利用非線性運算。以DES算法為例,它采用美國國家安全局精心設計的8個S-Box 和P-置換,經過16圈叠代,最終產生64比特密文,每圈叠代使用的48比特子密鑰是由原始的56比特產生的。


DES算法加密時把明文以64bit為單位分成塊,而後用密鑰把每一塊明文轉化成同樣64bit的密文塊。DES可提供72,000,000,000,000,000個密鑰,用每微秒可進行一次DES加密的機器來破譯密碼需兩千年。采用DES的一個著名的網絡安全系統是Kerberos,由MIT開發,是網絡通信中身份認證的工業上的事實標準。


DES(或其他分組密碼)算法的使用方式有4種,電子密本(ECB), 密碼分組鏈接(CBC),輸出反饋(OFB)和密文反饋(CFB)。


DES的密鑰存在弱密鑰,半弱密鑰和互補密鑰,選擇密鑰時要註意這些問題。DES受到的最大攻擊是它的密鑰長度僅有56比特,強力攻擊的代價低於1000萬美元,1990年S.Biham 和 A.Shamir提出了差分攻擊的方法,采用選擇明文247攻擊,最終找到可能的密鑰,M.Matsui 提出的線性分析方法,利用243個已知明文,成功地破譯了16圈DES算法,到目前為止,這是最有效的破譯方法。


基於以上弱點,人們將DES算法作了多種變形,三重DES方式,獨立子密鑰方法,可變的S-Box及其使用次序以及推廣的GDES等。這些改變有些是增強了密碼算法的安全性,有些作用不大,有些還削弱了DES的安全性。


自從DES算法頒布以來,世界各地相繼出現了多種密碼算法,之所以出現這些算法,有政治原因和技術原因,各國在商用方面都需要自己設計的密碼算法,不能依靠外國的算法,又因為DES算法的弱點和軟件實現中面臨的位操作及大量的置換,設計壽命僅有5年,所以必須設計出更高強度的密碼算法,以代替DES,這些算法有:


LUCIFER算法,Madryga算法,NewDES算法,FEAL-N算法,REDOC算法, LOKI算法,KHUFU算法, KHAFRE算法,RC2及RC4算法,IDEA算法, MMB算法,CA-1.1算法,SKIPJACK算法,Karn 算法以及MDC算法等。其中多數算法為專利算法。以上這些算法有些已經遭到了破譯,有些安全強度不如DES,有些強度高於DES,有些強度不明,還有待於進一步分析。其中安全強度高於DES算法的如RC2及RC4算法,IDEA算法, SKIPJACK算法等。


總之,因為對稱密鑰密碼系統具有加解密速度快,安全強度高等優點,在軍事,外交以及商業應用中使用越來越普遍。

什麽是私有密鑰密碼技術——密鑰加密算法采用同一把密鑰進行加密和解密