密碼工程讀后感-第二章-第四節(jié)

書還是同一本書,作者還是同一個作者。
這一節(jié)主要說的是DRNG。
第一部分是“純種”的DRNG(Pure DRNG), PDRNG。
在這個系統(tǒng)中,我們有兩個類,分別是S和R。
S叫state space,R叫output space。在這里可以簡單地當(dāng)成seed和"result"。
也叫seed,就是第一個數(shù),然后
之后的就是接下來的隨機數(shù)種子。
和之后的r都是生成的隨機數(shù)。
整個隨機數(shù)的過程就是,這個過程有些抽象:
“產(chǎn)生”了
,這個過程可以簡單地
,或者用其他方法生成。
生成第一個隨機數(shù),
,
是“隨機數(shù)生成函數(shù)”(Output transition function),并沒有特指某個方法。
與此同時,
,
是“狀態(tài)轉(zhuǎn)化函數(shù)”(State transition function),這一步是生成下一個s,以用來進行下一個隨機數(shù)的生成,和
一樣,并不特指某個方法。
簡單地說就是,一個DRNG的設(shè)計由5個元素組成:狀態(tài)空間(種子),“結(jié)果”空間(隨機數(shù)),新狀態(tài)生成器,隨機數(shù)生成器和。
最后一個是隨機種子的概率分布(Probability of random seed)。
一般上種子是由TRNG生成的。
如果說這DRNG有什么缺點的話,那應(yīng)該就是結(jié)果完全依賴種子,而接下來的隨機數(shù)完全依賴當(dāng)前的“種子”。也就是說這玩意兒某種意義上很容易被預(yù)測。
當(dāng)然,這玩意兒有個好,就是弄起來便宜,不需要特定的設(shè)備來完成。一般智能卡這種東西是用這個的。

在我們無法假設(shè)隨機數(shù)的生成,和“新狀態(tài)生成”是保密的情況下(Kerckhoff?principle也不鼓勵這樣設(shè)計),我們需要加一個新的規(guī)則,就姑且稱之為R3吧。一個合格的DRNG,需要確?!?/p>
R3:知道了內(nèi)部狀態(tài),或者是狀態(tài)生成的方法之后,誰也也無法透過這一點來“反推”下一個或者前一個的狀態(tài),也就是說,沒有人能透過現(xiàn)在的種子數(shù)去反推上一個或者下一個種子數(shù)是什么。
R3的具體意思就是,理論上不可能透過和
去反推
是什么,就跟哈希函數(shù)一樣。
接下來就是“混種”DRNG,Hybric DRNG
混種DRNG有個特點,就是純DRNG的兩個函數(shù)中加了個E(不一定全都一樣)。正式來說,所有純粹的DRNG其實都是混種DRNG,只不過,這個符號的意思是說,整個過程沒有E。
所以,混種DRNG需要添加兩個額外的東西,一個就是E,額外的輸入值,另一個是,也就是E的概率分布。
因為E的存在增加了隨機性和不可預(yù)測性,所以DRNG的安全性提升了,但是如果E的衍生方式過于簡單,那么安全性的提升可能會很有限。
在某些情況下,攻擊者可能可以獲取“當(dāng)前內(nèi)部狀態(tài)”(Current intenal state),也就是“當(dāng)前種子”,而生成接下來的隨機數(shù)。所以就有了第四個要求,R4:
R4:簡單的說就是,知道內(nèi)部的當(dāng)前種子后,也無法自行推測出下一個隨機數(shù),增加了幾率,但是微乎其微。

還有什么要說的話,大概就是敏感的東西別貪小便宜用簡單的隨機數(shù)生成方式,比如什么線性同余之類的?;蛘哒f如果這些隨機數(shù)是用在加密方面,就挑些不好破解的,比如RSA-2048(bushi)