信息加密技术——对称密码体制
對稱密碼體制(symmetricencryption)也稱為秘密密鑰密碼體制、單密鑰密碼體制或常規密碼體制,其模型如圖3-4所示。如果一個密碼算法的加密密鑰和解密密鑰相同,或者由其中一個很容易推導出另一個,該算法就是對稱密碼算法,滿足關系M= Dk (C)=Dk (Ek(M))。
對稱密碼體制的安全性主要取決于兩個因素:
- 一是加密算法必須足夠安全,使得不必為算法保密,僅根據密文就能破譯出消息是計算上不可行的;
- 二是密鑰的安全性,即密鑰必須保密并保證有足夠大的密鑰空間。對稱密碼體制要求基于密文和加密/解密算法的知識能破譯出消息的做法在計算上是不可行的。
對稱密碼算法的優缺點如下:
(1)優點:
- 加密、解密處理速度快,保密度高等。
(2)缺點:
- ①密鑰是保密通信安全的關鍵,發信方必須安全、妥善地把密鑰護送到收信方,不能泄露其內容。如何才能把密鑰安全地送到收信方,是對稱密碼算法的突出問題。對稱密碼算法的密鑰分發過程復雜,所花代價高;
- ②多人通信時密鑰組合的數量會出現爆炸性膨脹,使密鑰分發更加復雜化,若有N個用戶進行兩兩通信,總共需要的密鑰數為N(N-1)/2個;
- ③通信雙方必須統一密鑰,才能發送保密的信息。如果發信人與收信人素不相識,這就無法向對方發送秘密信息了;
- ④除了密鑰管理與分發問題外,對稱密碼算法還存在數字簽名困難問題(通信雙方擁有同樣的消息,接收方可以偽造簽名,發送方也可以否認發送過某消息)。
對稱密碼體制分為兩類:
- 一類是對明文的單個位(或字節)進行運算的算法,稱為序列密碼算法,也稱為流密碼算法(streamcipher);
- 另一類是把明文信息劃分成不同的塊(或小組)結構,分別對每個塊(或小組)進行加密和解密,稱為分組密碼算法(Blockcipher)。
一 、序列密碼:
序列密碼分為同步序列密碼和自同步序列密碼兩種。
- 同步序列密碼要求發送方和接收方必須是同步的,在同樣的位置用同樣的密鑰才能保證正確的密。如果在傳輸過程中密文序列有被篡改、刪除、插人等錯誤導致同步失效,則不可能成功解密,只能通過重新同步來實現解密、恢復密文。在傳輸期間,一個密文位的改變只影響該位的恢復,不會對后繼位產生影響。
- 自同步序列密碼密鑰的產生與密鑰和已產生的固定數量的密文位有關,因此,密文中產生的一個錯誤會影響到后面有限位的正確解密。所以,自同步密碼的密碼分析比同步密碼的密碼分析更加困難。序列密碼具有實現簡單、便于硬件計算、加密與解密處理速度快、低錯誤(沒有或只有有限位的錯誤)傳播等優點,但同時也暴露出對錯誤的產生不敏感的缺點。序列密碼涉及大量的理論知識,許多研究成果并沒有完全公開,這也許是因為序列密碼目前主要用于軍事和外交等機要部門的緣故。目前,公開的序列密碼主要有RC4、SEAL等。
- 序列密碼的安全強度依賴于密鑰流產生器所產生的密鑰流序列的特性,關鍵是密鑰生成器的設計及收發兩端密鑰流產生的同步技術。
1. 偽隨機序列:
2.? 線性反饋移位寄存器:
3. RC4:
- RC4是由麻省理工學院的Ron Rivest教授在1987年為RSA公司設計的一種可變密鑰長度、面向字節流的序列密碼。RC4是目前使用最廣泛的序列密碼之一,已應用于Microsoft Windows、Lotus Notes和其他應用軟件中,特別是應用到SSL協議和無線通信方面。
- RC4算法很簡單,它以一個數據表為基礎,對表進行非線性變換,從而產生密碼流序列。
- RC4包含兩個主要算法:
- 密鑰調度算法(Key- Scheduling Algorithm, KSA)
- 偽隨機生成算法( Pseudo Random Generation Algorithm , PRGA)。
- KSA的作用是將一個隨機密鑰(大小為40~256位)變換成一個初始置換表S。
KSA過程如下:
?
二 、分組密碼:
分組密碼的本質就是由密鑰k=(k1,k2,..,kn)控制的從明文空間M(長為n的比特串的集合)到密文空間C(長為r的比特串的集合)的一個一對一映射。為了保證密碼算法的安全強度,加密變換的構造應遵循下列個原則。
- (1) 分組長度足夠大。當分組長度n較小時,容易受到暴力窮舉攻擊,因此要有足夠大的分組長度n來保證足夠大的明文空間,避免給攻擊者提供太多的明文統計特征信息。
- (2) 密鑰量空間足夠大,以抵抗攻擊者通過窮舉密鑰破譯密文或獲得密鑰信息。
- (3) 加密變換足夠復雜,以加強分組密碼算法自身的安全性,使攻擊者無法利用簡單的數學關系找到破譯缺口。
- (4) 加密和解密運算簡單,易于實現。分組加密算法將信息分成固定長度的二進制位串進行變換。為便于軟、硬件的實現,一般應選取加法、乘法、異或和移位等簡單的運算,以避免使用逐比特的轉換。
- (5) 加密和解密的邏輯結構最好一致。如果加密、解密過程的算法邏輯部件一致,那么加密、解密可以由同一部件實現,區別在于所使用的密鑰不同,以簡化密碼系統整體結構的復雜性。
實現分組密碼算法設計的具體操作包括替代、置換、乘積變換。
數據加密標準(DES) :
1.DES算法加密過程
- DES對64位的明文分組進行操作。通過一個初始置換,將明文分組分成左半部分和右半部分,各32位長。然后進行16輪完全相同的運算,這些運算被稱為函數f,在運算過程中數據與密鑰結合。經過16輪后,左、右半部分合在一起,經過一個末置換(初始置換的逆置換),這樣該算法就完了。
?
2. DES解密過程
DES解密過程的邏輯結構與加密過程一致,但必須注意以下兩點。
- (1) 第16輪迭代結束后須將左右兩個分組交換位置,即將L16與R16交換順序。
- (2) 解密過程中使用的子密鑰的順序與加密時的順序正好相反,依次為Kr6,Ks,...,Kr,即當把64位密文作為明文輸人時,解密過程的第1輪迭代使用子密鑰K]6,第2輪迭代使用子密鑰Ks,.,第16輪迭代使用子密鑰Kr,同理,第16輪迭代后須交換順序,最終輸出得到64位明文。
3. DES算法的安全隱患
- (1)密鑰太短。DES的初始密鑰實際長度只有56位,批評者擔心這個密鑰長度不足以抵抗窮舉搜索攻擊,窮舉搜索攻擊破解密鑰最多嘗試的次數為2的56次,不太可能提供足夠的安全性。1998 年前只有DES破譯機的理論設計,1998年后出現實用化的DES破譯機。
- (2) DES的半公開性。DES算法中的8個S盒替換表的設計標準(指詳細準則)自DES公布以來仍未公開,替換表中的數據是否存在某種依存關系,用戶無法確認。
- (3) DES迭代次數偏少。DES算法的16輪迭代次數被認為偏少,在以后的DES改進算法中,都不同程度地進行了提高。
4. 三重DES應用
? ? ? 針對DES密鑰位數和迭代次數偏少等問題,有人提出了多重DES來克服這些缺陷,比較典型的是2DES、3DES和4DES等幾種形式,實用中一般廣泛采用3DES方案,即三重DES。它有以下4種使用模式。
- (1) DES EEE3模式:使用3個不同密鑰(Kr,K2,Kz),采用3次加密算法。
- (2) DES EDE3模式:使用3個不同密鑰(Kr,Kz,K3),采用加密一解密-加密算法。
- (3) DES EEE2模式:使用兩個不同密鑰(K:= K3,K2),采用3次加密算法。
- (4) DES EDE2模式:使用兩個不同密鑰(K,= Ks,K2),采用加密一解密一加密算法。
3DES的優點:
- 密鑰長度增加到112位或168位,抗窮舉攻擊的能力大大增強;
- DES基本算法仍然可以繼續使用。
3DES的缺點:
- 處理速度相對較慢,因為3DES中共需迭代48次,同時密鑰長度也增加了,計算時間明顯增大;
- 3DES算法的明文分組大小不變,仍為64位,加密的效率不高。
?
信息安全與技術(第二版)
總結
以上是生活随笔為你收集整理的信息加密技术——对称密码体制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux ubuntu18.04下so
- 下一篇: java 聊天室 私聊_Java聊天室—