什麼是私有金鑰密碼技術——金鑰加密演算法採用同一把金鑰進行加密和解密

桃子紅了吶發表於2017-11-16

什麼是私有金鑰密碼技術

私有金鑰(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演算法等。

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


本文轉自張昺華-sky部落格園部落格,原文連結:http://www.cnblogs.com/bonelee/p/7072858.html,如需轉載請自行聯絡原作者


相關文章