应用篇——随机数
目錄
一、隨機數(shù)的應用
二、隨機數(shù)的性質(zhì)
三、偽隨機數(shù)生成器
1.偽隨機數(shù)生成器的結(jié)構(gòu)
1)偽隨機數(shù)生成器的內(nèi)部狀態(tài)
2)偽隨機數(shù)生成器的種子
四、對偽隨機數(shù)生成器的攻擊
一、隨機數(shù)的應用
1)生成密鑰
對稱密碼和消息認證碼
2)生成密鑰對
公鑰密碼和數(shù)字簽名
3)生成初始化向量
分組密碼的模式(CBC、CFB、OFB)
4)生成nonce
防御重放攻擊和分組密碼的CTR模式
5)生成salt(鹽)
基于口令的密碼(PBE)
?
二、隨機數(shù)的性質(zhì)
1)隨機性
不存在統(tǒng)計學偏差,完全雜亂的數(shù)列
2)不可預測性
不能從過去的數(shù)列中推測出下一個要出現(xiàn)的數(shù)
3)不可重現(xiàn)性
不能出現(xiàn)重復數(shù)列(除非保存下來)
由此可分為三類隨機數(shù):
1)弱偽隨機數(shù):只具有隨機性,不具有不可預測性和不可重現(xiàn)性
2)強偽隨機數(shù):具有隨機性和不可預測性,但不具有不可重現(xiàn)性
3)真隨機數(shù):具有隨機性、不可預測性和不可重現(xiàn)性
注:軟件只能生成偽隨機數(shù),是因為運行軟件的計算機自身僅具備有限的內(nèi)部狀態(tài),在內(nèi)部條件相同時,軟件只能生成相同的數(shù);我們將首次出現(xiàn)到出現(xiàn)之前的數(shù)列長度稱為周期,凡是具有周期的數(shù)列都不具備不可重現(xiàn)性;想要生成真隨機數(shù),就要從不可重現(xiàn)的事物中獲取(聲音、溫度等)
三、偽隨機數(shù)生成器
通過硬件生成的數(shù)列(根據(jù)溫度、聲音的變化)的設備稱為隨機數(shù)生成器(RNG)
使用軟件生成的數(shù)列稱為偽隨機數(shù)生成器(PRNG)
1.偽隨機數(shù)生成器的結(jié)構(gòu)
1)偽隨機數(shù)生成器的內(nèi)部狀態(tài)
指生成器中管理的內(nèi)存中的數(shù)值,根據(jù)內(nèi)部狀態(tài)計算隨機數(shù)的方法和改變內(nèi)部狀態(tài)的方法組合后,就是偽隨機數(shù)生成器的算法
由于內(nèi)部狀態(tài)決定了下一個生成的偽隨機數(shù),因此內(nèi)部狀態(tài)不能被攻擊者知道
2)偽隨機數(shù)生成器的種子
用于對內(nèi)部狀態(tài)進行初始化,種子本身是一串隨機的比特序列,根據(jù)種子可算出偽隨機數(shù)
種子需要保密
四、對偽隨機數(shù)生成器的攻擊
1)對種子進行攻擊
當種子被攻擊后,攻擊者就可以知道這給偽隨機數(shù)生成器生成的全部偽隨機數(shù)列;為了防止被攻擊,使用不可重現(xiàn)性的真隨機數(shù)作為種子
2)對隨機數(shù)池進行攻擊
一般使用隨機數(shù)池的文件積累隨機比特數(shù)列,當需要使用時,從池中取出所需長度的比特序列來使用
隨機數(shù)池被攻擊后,偽隨機數(shù)的種子會被預測出來
總結(jié)
- 上一篇: 应用篇——密钥
- 下一篇: 应用篇——SSL/TLS