密碼體制的分類算法
隨機性安全
任何人考慮用數學的方法產生隨機數確定是不合理的函數
計算機自己只能產生僞隨機序列加密
隨機序列類型設計
如何獲得真隨機序列3d
使用一種專門的設備(真隨機數發生器),輸入是各類沒法預測的信號:周圍空氣情況、電流的變化率…blog
輸入是不斷變化的,輸出也就不可重複。ip
有人能預測產生的下一個數嗎? 他必須重構輸入信號,這沒人能作到內存
一次一密資源
證實:
密鑰流是隨機的,則每一個密鑰比特的機率知足: Pr[k=0]=1/2, Pr[k=1]=1/2
假設明文流某個比特的機率知足: Pr[m=0]=p, Pr[m=1]=1-p
對應的密文比特的機率:
Pr[c=0] = Pr[k=0]Pr[m=0]+Pr[k=1]Pr[m=1]=1/2
Pr[c=1] = Pr[k=0]Pr[m=1]+Pr[k=1]Pr[m=0]=1/2
流密碼
基本思想
用一個較短的密鑰生成密鑰流,在攻擊者(計算能力是有限的)看來是隨機的(僞隨機的)。不是無條件安全的,僅是計算上安全的
同步流密碼
密鑰流只根據密鑰產生與明文流無關
自同步流密碼
密鑰流不只與密鑰有關還與明文流有關
驅動部分
爲非線性組合部分提供統計特性「好」的序列 (通常僞隨機序列)
非線性組合部分
將提供的輸入序列組合成密碼學特性「好」的序列 (密碼學意義上安全的僞隨機序列)
FSR的功能
分組密碼
實質
實質是設計一種算法,能在密鑰控制下,把 n比特明文分組 簡單而迅速地置換成 惟一的 n比特的密文分組,而且這種變換是可逆的(解密)因此,它必須是一個 雙射函數 (由於明文分組空間等於密文分組空間)
混亂
使明文和密文之間、密鑰和密文之間的相關統計特性極小化,從而使攻擊者沒法找到密鑰(經常使用方法代換)
擴散
將明文及密鑰的影響儘量迅速地散佈到較多個密文比特中(經常使用方法置換)
混亂和擴散的思想由香農提出,目的:抵抗攻擊者對密碼系統的統計分析
什麼叫 代換?
加密時,明文的每一個分組都應產生惟一的密文分組 (具備可逆性,爲了解密),稱這種明文分組到密文分組的可逆變換爲代換若是明文分組爲n比特,則明文分組有多少個可能的取值?
2^n
不一樣可逆變換有多少個?
2^n!
實際中,常將明文分組再分紅較小的「段」,對每一個「段」用不一樣的代換結構(子代換)進行變換,稱每一個子代換爲代換盒,簡稱爲 S盒
數據加密標準(DES)
流密碼與分組密碼的比較
一般,明文長度是不固定的,按固定長度分組時,每每最後一個分組長度不足,如何解決?
填充(Padding)分組密碼的工做模式
爲何須要工做模式?
分組密碼的輸入是一個明文分組,是定長的。
要加密的明文是變長的,長度每每大於一個明文分組。
即便有了安全的分組密碼體制,也須要採用適當的工做模式來隱蔽明文的統計特性,以提升總體的安全性。
模式名稱 | 縮寫 | 英文全稱 |
---|---|---|
電子密碼本 | ECB | Electronic CodeBook |
密碼分組鏈 | CBC | Cipher Block Chaining |
密碼反饋 | CFB | Cipher FeedBack |
輸出反饋 | OFB | Output FeedBack |
計數器 | CTR | Counter |
ECB
CBC
CFB
OFB
CTR