序列(流)密碼的特點:加解密速度快,無錯誤擴散。
分組(塊)密碼的特點:應用模式靈活多樣,組內有錯誤擴散。
在傳統觀念里,往往僅注重信息的秘密性;但近代人們認為,信息的真實性、完整性以及不可否認性,在應用上往往比秘密性更重要。
密鑰的生命周期:
密鑰產生:應該排除弱密鑰和使密鑰具有隨機性;另外,密鑰還須安全封裝和導入到安全介質中。
證書簽發:證書是將用戶、密鑰、以及密鑰生存期等綁定在一起的合適方式,證書需由可信機關簽發。
證書檢驗:這是為了驗證證書是否合法、是否過期。
密鑰使用:這是密鑰應有的自然功能。
密鑰吊銷:當密鑰過期或安全性受到懷疑時必須這樣做。
密鑰更新:這是維持系統周轉的必然需要。
一個安全的非對稱密鑰密碼體制,可以達成下列功能:
(1)保護信息機密性:任何人均可將明文加密成密文,此后只有擁有解密密鑰的人,才能解密。
(2)自身的密鑰分配問題容易。
(3)可以用於對稱密鑰密碼體制的密鑰分配。
(4)直接認證發送方的身份。
(5)可達成不可否認功能
公開密鑰密碼體制雖具有許多優點,但仍然有缺點存在。其受人批評最多的方面,即在於加解密運算規模巨大、且速度緩慢。
在達成信息的真實性、完整性及不可否認性方面,利用基於公開密鑰密碼體制思想的數字簽名;
在信息的秘密性方面,仍以對稱密鑰密碼體制來達成,但是利用公開密鑰密碼體制解決其密鑰分配問題。
分組密碼安全性的一般設計原則:
分組長度n要足夠大,以防止對明文的窮搜攻擊奏效。
密鑰空間K要足夠大,以防止對密鑰的窮搜攻擊奏效。
混亂:要使密文和明文以及密鑰之間的依賴關系相當復雜,以至於這種依賴性對密碼分析者來說是無法利用的。這即要求密文所依賴於明文和密鑰的函數關系是高度非線性的、且處處勻強的。
擴散:要使密鑰的每一位數字影響密文的許多位數字以防止對密鑰進行逐段破譯,而且明文的每一位數字也應影響密文的許多位數字以便隱蔽明文數字的統計特性。
典型分組密碼介紹
美國數據加密標准(DES)
歐洲國際數據加密算法(IDEA)
美國高級加密標准(AES)
DES使用一個長為56比特的密鑰,每次對一個長為64比特的明文組進行加密,得到的密文組長仍為64比特。即M=F264,C= F264,K= F256 。
每個S-盒Si(i=1,2,,8)均以6bit作為輸入、而輸出4bit。
用S-盒實現小塊的非線性變換,達到混亂目的;
用置換P實現大塊的線性變換,達到擴散目的。
DES安全性完全依賴於所用的密鑰。
DES的編碼過程可使每個密文比特都是所有明文比特和所有密鑰比特的復雜混合函數,而要達到這一要求至少需要DES的迭代:5輪。
DES的攻擊方法:目前攻擊DES的主要方法有時間-空間權衡攻擊、差分攻擊、線性攻擊和相關密鑰攻擊等方法,在這些攻擊方法中,線性攻擊方法是最有效的一種方法。
IDEA使用一個長為128比特的密鑰,每次對一個長為64比特的明文組進行加密,得到的密文組長仍為64比特。即=F264,C= F264,K= F2128 。
AES評估准則:
安全性;
代價;
算法和實現特性。
典型分組密碼介紹——AES
RIJNDAEL使用一個長為32*Nk比特的密鑰,每次對一個長為32*Nb比特的明文組進行加密,得到的密文組長仍為32*Nb比特。即M=F232*Nb ,C=F232*Nb,K=F232*Nk。
Hash函數又稱為雜湊函數,一般用於對消息進行摘要,這摘要可用於保證消息的完整性和數字簽名。
分組密碼常見的工作模式:
分組模式
①電碼本(ECB―Electronic Code Book)模式:對給定的密鑰K,集合{(M, C)|C=AESK(M), MF2128}中一共有2128個明密文對,相當於一個譯碼本,上述工作模式理論上可按查此譯碼本的思想實現,故名。
②密文分組鏈接(CBC―Cipher Block Chaining)模式:可見,第i組密文Ci不但與當前的明文組Mi有關,還與前面一組密文Ci-1有關,從而Ci歷史地與M1,M2,,Mi都有關。
CBC模式克服了ECB模式存在的兩個缺陷,但該模式有錯誤擴散。
CBC模式較ECB模式慢、且需要另加存儲器和分組的異或運算,但安全性得到加強;原則上兩者都適合上述應用:小規格數據組(塊)應用ECB、大規格數據組(塊)應用CBC 。
序列模式
①輸出反饋(OFB―Output feedback)模式:
②計數器(CTR―Counter Register)模式:
OFB、 CTR模式具有同步序列密碼優點:無錯誤擴散。
③密文反饋(CFB―Cipher Feedback)模式:
CFB模式存在有限的錯誤擴散:當傳輸的密文塊Ci出現1 bit錯誤時,解密的明文塊Mi也有1bit錯誤。
分組密碼的序列應用模式有可能效率較低它們(包括其它序列密碼)一般用於數據網中較低層次、且允許有一定延時的系統。
具體地,在字符為單元的加密中多選用CFB模式,如終端―主機或客戶端―網絡服務器之間的會話加密;而OFB、 CTR模式常用於高度同步的、不容差錯傳播的系統,如衛星通信中的加密。
加密算法的設計
設計加密算法的思想往往是:構造一個稱為某種網絡的固定結構,然后以該種網絡的若干次迭代來對明文及密鑰數據提供必要的混亂和擴散。
一個完整的網絡應使每一輸入比特經其變換以后都可能使形態改變至少一次。此外,按照Feistel構造中m與n是否相等可把Feistel網絡分為平衡與非平衡的。
最基本的要素:S-盒、P-置換、以及結構(輪)函數
S-盒的設計准則:
非線性度
差分均勻性
代數次數及項數分布
完全性和雪崩效應. 稱S滿足雪崩效應,是指改變其輸入的1個比特,大約有一半輸出比特改變。
擴散特性
沒有陷門
輪函數的設計准則:
安全性.
速度
靈活性.
輪函數的構造方法:
加法、減法和異或
乘法
固定循環/移位
依賴於數據的循環
現有的密碼算法的輪函數可以分為兩種,
一種是有S-盒的,例如DES、E2、Rijndael等;
另一種是沒有S-盒的,例如IDEA、RC6等。
密鑰擴展算法的設計
對於一般的迭代分組密碼,都有一個由種子密鑰生成子密鑰的算法,稱為密鑰擴展算法(又稱為密鑰擴展方案)。
密鑰擴展算法的設計應遵循下面幾個准則:
實現簡單.
速度.
不存在簡單關系
種子密鑰的所有比特對每個子密鑰比特的影響應大致相同
從一些子密鑰比特獲得其它的子密鑰(或種子密鑰)比特在計算上是“難”的.
沒有弱密鑰.
差分攻擊的基本思想是通過分析明文對的差值對密文對的差值的影響來恢復某些密鑰比特
公鑰密碼(PKC)
典型PKC介紹
RSA體制
Merkle-Hellman體制
Rabin體制
ElGamal體制
鑰基礎設施(簡稱PKI)從概念上講,PKI就是利用公鑰密碼理論和技術建立的提供安全服務的基礎設施。
在使用公鑰密碼的系統中,一個用戶的公鑰是應該傳遞或廣播給其他用戶的;但如果只是直截了當地這樣做會產生一個被冒充欺騙的問題:
用戶C可能向用戶B聲稱自己是用戶A而讓其得到一個公鑰,用戶B使用這個自己以為是用戶A的公鑰、卻原來是在跟用戶C秘密通信。
——避免被這種欺騙的較好辦法是引進公眾信任的第三方:簽證機關(CA),並由CA頒發由其簽名的所謂公鑰證書。(當然整個系統建設之初應公開CA所用的一個簽名-驗證方法)
簽證機關(CA) 人們成立一個使用某PKC體制的證書簽發中心(公眾信任機關)。
一個用戶首先向CA提出申請,CA在驗明其法性以后予以登記,並給其生成此種PKC算法的一對密鑰,其中解密密鑰存放到安全介質(如IC卡或USB-Key等)中交給用戶妥善保管、而將加密密鑰與對應用戶的身份號ID一起做成證書發給用戶或象電話號碼簿一樣列表后在一個公共服務器上公布。
(“證書”或“列表”須經CA簽名以防偽造!)
一般會話密鑰都由KDC來產生。
消息認證碼是指消息被一密鑰控制的公開函數作用后產生的、用作認證符的、固定長度的數值,也稱為密碼校驗和。此時需要通信雙方A和B共享一密鑰K。設A欲發送給B的消息是M,A首先計算MAC= CK(M) ,其中CK是密鑰控制的公開函數;然后向B發送M||MAC,B收到后做與A相同的計算,求得一新MAC,並與收到的MAC做比較
MAC函數與加密算法類似,不同之處為MAC函數不必是可逆的,因此與加密算法相比更不易被攻破。
上述過程中,由於消息本身在發送過程中是明文形式,所以這一過程只提供認證性而未提供保密性。為提供保密性,可在MAC函數以后(后面圖(a))或以前(后面圖(b))進行一次加密,而且加密密鑰也需被收發雙方共享。
Hash函數亦稱雜湊函數或散列函數,它的作用是:由任意長度的消息形成某一固定長度的消息摘要(Message Digest)。
很多將Hash函數用於構造MAC的方法,HMAC是其中著名的一個hash函數創新性設計思想—MD4(MD是Message digest一詞首字母的縮寫)
MD5算法,按512位的分組進行處理,輸出(摘要)的長度為128比特。
安全Hash算法SHA(128位)1995年4月17日公布了修改后的版本SHA-1(160位)。
SHA-1限定輸入消息M的長度|M|<264,也是按512位的分組進行處理,輸出(摘要)的長度為160 比特。
RIPEMD-160也限定輸入消息M的長度|M|<264,且按512位的分組進行處理,輸出(摘要)的長度為160 比特。
